From 58b5f879780b435fedc4ec5cde45512ae711bb47 Mon Sep 17 00:00:00 2001 From: Lutz Bender Date: Thu, 18 Sep 2025 17:41:11 +0200 Subject: [PATCH 1/8] remove console logs --- .../modules/web_themes/koala/source/quasar.config.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/modules/web_themes/koala/source/quasar.config.ts b/packages/modules/web_themes/koala/source/quasar.config.ts index fd6cbe03cc..ddb0a6d6af 100644 --- a/packages/modules/web_themes/koala/source/quasar.config.ts +++ b/packages/modules/web_themes/koala/source/quasar.config.ts @@ -5,7 +5,7 @@ import { defineConfig } from '#q-app/wrappers'; -export default defineConfig((/* ctx */) => { +export default defineConfig((ctx) => { return { // https://v2.quasar.dev/quasar-cli-vite/prefetch-feature // preFetch: true, @@ -56,6 +56,15 @@ export default defineConfig((/* ctx */) => { distDir: '../web/', // extendViteConf (viteConf) {}, + extendViteConf(viteConf) { + if (ctx.prod === true) { + // drop console statements in production build + viteConf.esbuild = { + ...viteConf.esbuild, + drop: ['console', 'debugger'], + }; + } + }, // viteVuePluginOptions: {}, vitePlugins: [ From 1869504b9bd801da79baa249c4200aa42aaeba30 Mon Sep 17 00:00:00 2001 From: Lutz Bender Date: Fri, 19 Sep 2025 09:38:53 +0200 Subject: [PATCH 2/8] keep console.warn and .error --- packages/modules/web_themes/koala/source/quasar.config.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/modules/web_themes/koala/source/quasar.config.ts b/packages/modules/web_themes/koala/source/quasar.config.ts index ddb0a6d6af..5765ecf616 100644 --- a/packages/modules/web_themes/koala/source/quasar.config.ts +++ b/packages/modules/web_themes/koala/source/quasar.config.ts @@ -61,7 +61,8 @@ export default defineConfig((ctx) => { // drop console statements in production build viteConf.esbuild = { ...viteConf.esbuild, - drop: ['console', 'debugger'], + drop: ['debugger'], + pure: ['console.log', 'console.info', 'console.debug', 'console.table'], }; } }, From e08c0c6ecd27a4dc2e019a6d47863c34f88eec9f Mon Sep 17 00:00:00 2001 From: benderl Date: Fri, 19 Sep 2025 07:44:24 +0000 Subject: [PATCH 3/8] Build Web Theme: Koala --- ...-DeQh6Nki.js => ErrorNotFound-D4_c-LqI.js} | 2 +- ...Page-DTxmUw0t.js => IndexPage-BDkTNmuK.js} | 2 +- ...out-BOJLco8c.js => MainLayout-Cd3W0PCb.js} | 2 +- ... => _plugin-vue_export-helper-BTeormdj.js} | 2 +- .../{index-BBNHe89s.js => index-CmDneGoC.js} | 4 ++-- ...ore-BaDE5XKf.js => mqtt-store-CdQu5WWJ.js} | 20 +++++++++---------- .../koala/web/assets/store-init-BPiEnDMl.js | 1 + .../koala/web/assets/store-init-DA2xVgRy.js | 1 - .../modules/web_themes/koala/web/index.html | 2 +- 9 files changed, 18 insertions(+), 18 deletions(-) rename packages/modules/web_themes/koala/web/assets/{ErrorNotFound-DeQh6Nki.js => ErrorNotFound-D4_c-LqI.js} (88%) rename packages/modules/web_themes/koala/web/assets/{IndexPage-DTxmUw0t.js => IndexPage-BDkTNmuK.js} (99%) rename packages/modules/web_themes/koala/web/assets/{MainLayout-BOJLco8c.js => MainLayout-Cd3W0PCb.js} (99%) rename packages/modules/web_themes/koala/web/assets/{_plugin-vue_export-helper-BHb7KgjF.js => _plugin-vue_export-helper-BTeormdj.js} (99%) rename packages/modules/web_themes/koala/web/assets/{index-BBNHe89s.js => index-CmDneGoC.js} (99%) rename packages/modules/web_themes/koala/web/assets/{mqtt-store-BaDE5XKf.js => mqtt-store-CdQu5WWJ.js} (72%) create mode 100644 packages/modules/web_themes/koala/web/assets/store-init-BPiEnDMl.js delete mode 100644 packages/modules/web_themes/koala/web/assets/store-init-DA2xVgRy.js diff --git a/packages/modules/web_themes/koala/web/assets/ErrorNotFound-DeQh6Nki.js b/packages/modules/web_themes/koala/web/assets/ErrorNotFound-D4_c-LqI.js similarity index 88% rename from packages/modules/web_themes/koala/web/assets/ErrorNotFound-DeQh6Nki.js rename to packages/modules/web_themes/koala/web/assets/ErrorNotFound-D4_c-LqI.js index 550457b1bf..7fe5c80b6a 100644 --- a/packages/modules/web_themes/koala/web/assets/ErrorNotFound-DeQh6Nki.js +++ b/packages/modules/web_themes/koala/web/assets/ErrorNotFound-D4_c-LqI.js @@ -1 +1 @@ -import{C as o,a3 as s,F as l,a4 as t,H as n,Q as r}from"./index-BBNHe89s.js";const a={class:"fullscreen bg-blue text-white text-center q-pa-md flex flex-center"},p=o({name:"ErrorNotFound",__name:"ErrorNotFound",setup(c){return(d,e)=>(l(),s("div",a,[t("div",null,[e[0]||(e[0]=t("div",{style:{"font-size":"30vh"}},"404",-1)),e[1]||(e[1]=t("div",{class:"text-h2",style:{opacity:"0.4"}},"Oops. Nothing here...",-1)),n(r,{class:"q-mt-xl",color:"white","text-color":"blue",unelevated:"",to:"/",label:"Go Home","no-caps":""})])]))}});export{p as default}; +import{C as o,a3 as s,F as l,a4 as t,H as n,Q as r}from"./index-CmDneGoC.js";const a={class:"fullscreen bg-blue text-white text-center q-pa-md flex flex-center"},p=o({name:"ErrorNotFound",__name:"ErrorNotFound",setup(c){return(d,e)=>(l(),s("div",a,[t("div",null,[e[0]||(e[0]=t("div",{style:{"font-size":"30vh"}},"404",-1)),e[1]||(e[1]=t("div",{class:"text-h2",style:{opacity:"0.4"}},"Oops. Nothing here...",-1)),n(r,{class:"q-mt-xl",color:"white","text-color":"blue",unelevated:"",to:"/",label:"Go Home","no-caps":""})])]))}});export{p as default}; diff --git a/packages/modules/web_themes/koala/web/assets/IndexPage-DTxmUw0t.js b/packages/modules/web_themes/koala/web/assets/IndexPage-BDkTNmuK.js similarity index 99% rename from packages/modules/web_themes/koala/web/assets/IndexPage-DTxmUw0t.js rename to packages/modules/web_themes/koala/web/assets/IndexPage-BDkTNmuK.js index 2329f365d2..034cc40a16 100644 --- a/packages/modules/web_themes/koala/web/assets/IndexPage-DTxmUw0t.js +++ b/packages/modules/web_themes/koala/web/assets/IndexPage-BDkTNmuK.js @@ -1,4 +1,4 @@ -var eg=Object.defineProperty;var tg=(t,e,n)=>e in t?eg(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var Ee=(t,e,n)=>tg(t,typeof e!="symbol"?e+"":e,n);import{i as Lo,e as Pn,K as Pd,g as Ye,r as N,a as g,o as qt,m as hn,j as sn,R as Td,h as S,J as xe,t as mi,L as aa,M as jr,N as Vt,c as Be,w as fe,q as ra,s as la,d as it,x as ng,O as Id,P as La,S as zn,T as Ra,n as Dd,U as io,V as Ro,W as ig,X as As,Y as sg,Z as og,v as ua,l as ag,y as rg,_ as lg,$ as Fl,a0 as Ur,a1 as qs,Q as ke,C as be,a2 as Od,a3 as Q,F as M,a4 as q,a5 as De,a6 as Ke,a7 as Re,a8 as le,I as Ve,a9 as se,aa as Vd,ab as ug,B as cg,ac as Tn,u as bt,ad as Ed,ae as dg,af as Ad,z as fg,ag as qd,ah as hg,ai as In,E as X,G as A,H as C,aj as Pe,ak as mg,al as ln,am as zi,an as Vi,ao as Ld,ap as gg,p as Rd,aq as si,ar as Bn,as as vg,f as pg,k as zl,at as Yr,au as Zr,av as bg,aw as ls,ax as yg,ay as Bl,az as Io,aA as xg,aB as wg,aC as _g,aD as Sg,aE as Nl,aF as Wl,aG as kg,aH as Cg,aI as Mg,aJ as Xr,aK as $d,aL as Pg}from"./index-BBNHe89s.js";import{y as Ps,j as Ls,Q as Tg,z as Hl,A as Ig,B as jl,u as mn,c as gn,_ as mt,o as gi,h as Fd,s as zd,C as Dg,D as Ul,E as Kr,i as Bd,F as Og,G as Nd,H as Vg,I as Eg,k as Wd,J as Hd,K as Yl,L as Ag,M as Zl,g as jd,N as qg,O as Lg,P as ca,w as xn,p as Bi,q as Ni,r as Xn,v as Wi,l as Rg,m as $g,R as Fg,S as Xl,t as At,U as zg,V as Bg,T as Ng,d as Ii,x as Vn}from"./_plugin-vue_export-helper-BHb7KgjF.js";import{u as Fe}from"./mqtt-store-BaDE5XKf.js";let $a,so=0;const Pt=new Array(256);for(let t=0;t<256;t++)Pt[t]=(t+256).toString(16).substring(1);const Wg=(()=>{const t=typeof crypto<"u"?crypto:typeof window<"u"?window.crypto||window.msCrypto:void 0;if(t!==void 0){if(t.randomBytes!==void 0)return t.randomBytes;if(t.getRandomValues!==void 0)return e=>{const n=new Uint8Array(e);return t.getRandomValues(n),n}}return e=>{const n=[];for(let i=e;i>0;i--)n.push(Math.floor(Math.random()*256));return n}})(),Kl=4096;function mr(){($a===void 0||so+16>Kl)&&(so=0,$a=Wg(Kl));const t=Array.prototype.slice.call($a,so,so+=16);return t[6]=t[6]&15|64,t[8]=t[8]&63|128,Pt[t[0]]+Pt[t[1]]+Pt[t[2]]+Pt[t[3]]+"-"+Pt[t[4]]+Pt[t[5]]+"-"+Pt[t[6]]+Pt[t[7]]+"-"+Pt[t[8]]+Pt[t[9]]+"-"+Pt[t[10]]+Pt[t[11]]+Pt[t[12]]+Pt[t[13]]+Pt[t[14]]+Pt[t[15]]}let Hg=0;const jg=["click","keydown"],Ug={icon:String,label:[Number,String],alert:[Boolean,String],alertIcon:String,name:{type:[Number,String],default:()=>`t_${Hg++}`},noCaps:Boolean,tabindex:[String,Number],disable:Boolean,contentClass:String,ripple:{type:[Boolean,Object],default:!0}};function Yg(t,e,n,i){const s=Lo(Pd,Pn);if(s===Pn)return console.error("QTab/QRouteTab component needs to be child of QTabs"),Pn;const{proxy:o}=Ye(),a=N(null),r=N(null),l=N(null),u=g(()=>t.disable===!0||t.ripple===!1?!1:Object.assign({keyCodes:[13,32],early:!0},t.ripple===!0?{}:t.ripple)),c=g(()=>s.currentModel.value===t.name),d=g(()=>"q-tab relative-position self-stretch flex flex-center text-center"+(c.value===!0?" q-tab--active"+(s.tabProps.value.activeClass?" "+s.tabProps.value.activeClass:"")+(s.tabProps.value.activeColor?` text-${s.tabProps.value.activeColor}`:"")+(s.tabProps.value.activeBgColor?` bg-${s.tabProps.value.activeBgColor}`:""):" q-tab--inactive")+(t.icon&&t.label&&s.tabProps.value.inlineLabel===!1?" q-tab--full":"")+(t.noCaps===!0||s.tabProps.value.noCaps===!0?" q-tab--no-caps":"")+(t.disable===!0?" disabled":" q-focusable q-hoverable cursor-pointer")),f=g(()=>"q-tab__content self-stretch flex-center relative-position q-anchor--skip non-selectable "+(s.tabProps.value.inlineLabel===!0?"row no-wrap q-tab__content--inline":"column")+(t.contentClass!==void 0?` ${t.contentClass}`:"")),h=g(()=>t.disable===!0||s.hasFocus.value===!0||c.value===!1&&s.hasActiveTab.value===!0?-1:t.tabindex||0);function m(x,w){if(w!==!0&&x?.qAvoidFocus!==!0&&a.value?.focus(),t.disable!==!0){s.updateModel({name:t.name}),n("click",x);return}}function p(x){aa(x,[13,32])?m(x,!0):jr(x)!==!0&&x.keyCode>=35&&x.keyCode<=40&&x.altKey!==!0&&x.metaKey!==!0&&s.onKbdNavigate(x.keyCode,o.$el)===!0&&Vt(x),n("keydown",x)}function v(){const x=s.tabProps.value.narrowIndicator,w=[],y=S("div",{ref:l,class:["q-tab__indicator",s.tabProps.value.indicatorClass]});t.icon!==void 0&&w.push(S(xe,{class:"q-tab__icon",name:t.icon})),t.label!==void 0&&w.push(S("div",{class:"q-tab__label"},t.label)),t.alert!==!1&&w.push(t.alertIcon!==void 0?S(xe,{class:"q-tab__alert-icon",color:t.alert!==!0?t.alert:void 0,name:t.alertIcon}):S("div",{class:"q-tab__alert"+(t.alert!==!0?` text-${t.alert}`:"")})),x===!0&&w.push(y);const V=[S("div",{class:"q-focus-helper",tabindex:-1,ref:a}),S("div",{class:f.value},mi(e.default,w))];return x===!1&&V.push(y),V}const b={name:g(()=>t.name),rootRef:r,tabIndicatorRef:l,routeData:i};qt(()=>{s.unregisterTab(b)}),hn(()=>{s.registerTab(b)});function _(x,w){const y={ref:r,class:d.value,tabindex:h.value,role:"tab","aria-selected":c.value===!0?"true":"false","aria-disabled":t.disable===!0?"true":void 0,onClick:m,onKeydown:p,...w};return sn(S(x,y,v()),[[Td,u.value]])}return{renderTab:_,$tabs:s}}const Fa=Be({name:"QTab",props:Ug,emits:jg,setup(t,{slots:e,emit:n}){const{renderTab:i}=Yg(t,e,n);return()=>i("div")}});let Rs=!1;{const t=document.createElement("div");t.setAttribute("dir","rtl"),Object.assign(t.style,{width:"1px",height:"1px",overflow:"auto"});const e=document.createElement("div");Object.assign(e.style,{width:"1000px",height:"1px"}),document.body.appendChild(t),t.appendChild(e),t.scrollLeft=-1e3,Rs=t.scrollLeft>=0,t.remove()}function Zg(t,e,n){const i=n===!0?["left","right"]:["top","bottom"];return`absolute-${e===!0?i[0]:i[1]}${t?` text-${t}`:""}`}const Xg=["left","center","right","justify"],Kg=Be({name:"QTabs",props:{modelValue:[Number,String],align:{type:String,default:"center",validator:t=>Xg.includes(t)},breakpoint:{type:[String,Number],default:600},vertical:Boolean,shrink:Boolean,stretch:Boolean,activeClass:String,activeColor:String,activeBgColor:String,indicatorColor:String,leftIcon:String,rightIcon:String,outsideArrows:Boolean,mobileArrows:Boolean,switchIndicator:Boolean,narrowIndicator:Boolean,inlineLabel:Boolean,noCaps:Boolean,dense:Boolean,contentClass:String,"onUpdate:modelValue":[Function,Array]},setup(t,{slots:e,emit:n}){const{proxy:i}=Ye(),{$q:s}=i,{registerTick:o}=Ps(),{registerTick:a}=Ps(),{registerTick:r}=Ps(),{registerTimeout:l,removeTimeout:u}=Ls(),{registerTimeout:c,removeTimeout:d}=Ls(),f=N(null),h=N(null),m=N(t.modelValue),p=N(!1),v=N(!0),b=N(!1),_=N(!1),x=[],w=N(0),y=N(!1);let V=null,E=null,L;const D=g(()=>({activeClass:t.activeClass,activeColor:t.activeColor,activeBgColor:t.activeBgColor,indicatorClass:Zg(t.indicatorColor,t.switchIndicator,t.vertical),narrowIndicator:t.narrowIndicator,inlineLabel:t.inlineLabel,noCaps:t.noCaps})),T=g(()=>{const $=w.value,Z=m.value;for(let K=0;K<$;K++)if(x[K].name.value===Z)return!0;return!1}),R=g(()=>`q-tabs__content--align-${p.value===!0?"left":_.value===!0?"justify":t.align}`),I=g(()=>`q-tabs row no-wrap items-center q-tabs--${p.value===!0?"":"not-"}scrollable q-tabs--${t.vertical===!0?"vertical":"horizontal"} q-tabs__arrows--${t.outsideArrows===!0?"outside":"inside"} q-tabs--mobile-with${t.mobileArrows===!0?"":"out"}-arrows`+(t.dense===!0?" q-tabs--dense":"")+(t.shrink===!0?" col-shrink":"")+(t.stretch===!0?" self-stretch":"")),H=g(()=>"q-tabs__content scroll--mobile row no-wrap items-center self-stretch hide-scrollbar relative-position "+R.value+(t.contentClass!==void 0?` ${t.contentClass}`:"")),z=g(()=>t.vertical===!0?{container:"height",content:"offsetHeight",scroll:"scrollHeight"}:{container:"width",content:"offsetWidth",scroll:"scrollWidth"}),Y=g(()=>t.vertical!==!0&&s.lang.rtl===!0),j=g(()=>Rs===!1&&Y.value===!0);fe(Y,P),fe(()=>t.modelValue,$=>{ee({name:$,setCurrent:!0,skipEmit:!0})}),fe(()=>t.outsideArrows,U);function ee({name:$,setCurrent:Z,skipEmit:K}){m.value!==$&&(K!==!0&&t["onUpdate:modelValue"]!==void 0&&n("update:modelValue",$),(Z===!0||t["onUpdate:modelValue"]===void 0)&&(ce(m.value,$),m.value=$))}function U(){o(()=>{f.value&&re({width:f.value.offsetWidth,height:f.value.offsetHeight})})}function re($){if(z.value===void 0||h.value===null)return;const Z=$[z.value.container],K=Math.min(h.value[z.value.scroll],Array.prototype.reduce.call(h.value.children,(He,Me)=>He+(Me[z.value.content]||0),0)),Oe=Z>0&&K>Z;p.value=Oe,Oe===!0&&a(P),_.value=ZHe.name.value===$):null,Oe=Z!=null&&Z!==""?x.find(He=>He.name.value===Z):null;if(Le===!0)Le=!1;else if(K&&Oe){const He=K.tabIndicatorRef.value,Me=Oe.tabIndicatorRef.value;V!==null&&(clearTimeout(V),V=null),He.style.transition="none",He.style.transform="none",Me.style.transition="none",Me.style.transform="none";const Ie=He.getBoundingClientRect(),rt=Me.getBoundingClientRect();Me.style.transform=t.vertical===!0?`translate3d(0,${Ie.top-rt.top}px,0) scale3d(1,${rt.height?Ie.height/rt.height:1},1)`:`translate3d(${Ie.left-rt.left}px,0,0) scale3d(${rt.width?Ie.width/rt.width:1},1,1)`,r(()=>{V=setTimeout(()=>{V=null,Me.style.transition="transform .25s cubic-bezier(.4, 0, .2, 1)",Me.style.transform="none"},70)})}Oe&&p.value===!0&&O(Oe.rootRef.value)}function O($){const{left:Z,width:K,top:Oe,height:He}=h.value.getBoundingClientRect(),Me=$.getBoundingClientRect();let Ie=t.vertical===!0?Me.top-Oe:Me.left-Z;if(Ie<0){h.value[t.vertical===!0?"scrollTop":"scrollLeft"]+=Math.floor(Ie),P();return}Ie+=t.vertical===!0?Me.height-He:Me.width-K,Ie>0&&(h.value[t.vertical===!0?"scrollTop":"scrollLeft"]+=Math.ceil(Ie),P())}function P(){const $=h.value;if($===null)return;const Z=$.getBoundingClientRect(),K=t.vertical===!0?$.scrollTop:Math.abs($.scrollLeft);Y.value===!0?(v.value=Math.ceil(K+Z.width)<$.scrollWidth-1,b.value=K>0):(v.value=K>0,b.value=t.vertical===!0?Math.ceil(K+Z.height)<$.scrollHeight:Math.ceil(K+Z.width)<$.scrollWidth)}function J($){E!==null&&clearInterval(E),E=setInterval(()=>{G($)===!0&&B()},5)}function ue(){J(j.value===!0?Number.MAX_SAFE_INTEGER:0)}function he(){J(j.value===!0?0:Number.MAX_SAFE_INTEGER)}function B(){E!==null&&(clearInterval(E),E=null)}function te($,Z){const K=Array.prototype.filter.call(h.value.children,rt=>rt===Z||rt.matches&&rt.matches(".q-tab.q-focusable")===!0),Oe=K.length;if(Oe===0)return;if($===36)return O(K[0]),K[0].focus(),!0;if($===35)return O(K[Oe-1]),K[Oe-1].focus(),!0;const He=$===(t.vertical===!0?38:37),Me=$===(t.vertical===!0?40:39),Ie=He===!0?-1:Me===!0?1:void 0;if(Ie!==void 0){const rt=Y.value===!0?-1:1,st=K.indexOf(Z)+Ie*rt;return st>=0&&stj.value===!0?{get:$=>Math.abs($.scrollLeft),set:($,Z)=>{$.scrollLeft=-Z}}:t.vertical===!0?{get:$=>$.scrollTop,set:($,Z)=>{$.scrollTop=Z}}:{get:$=>$.scrollLeft,set:($,Z)=>{$.scrollLeft=Z}});function G($){const Z=h.value,{get:K,set:Oe}=_e.value;let He=!1,Me=K(Z);const Ie=$=$)&&(He=!0,Me=$),Oe(Z,Me),P(),He}function qe($,Z){for(const K in $)if($[K]!==Z[K])return!1;return!0}function Qe(){let $=null,Z={matchedLen:0,queryDiff:9999,hrefLen:0};const K=x.filter(Ie=>Ie.routeData?.hasRouterLink.value===!0),{hash:Oe,query:He}=i.$route,Me=Object.keys(He).length;for(const Ie of K){const rt=Ie.routeData.exact.value===!0;if(Ie.routeData[rt===!0?"linkIsExactActive":"linkIsActive"].value!==!0)continue;const{hash:st,query:xt,matched:Rt,href:W}=Ie.routeData.resolvedLink.value,me=Object.keys(xt).length;if(rt===!0){if(st!==Oe||me!==Me||qe(He,xt)===!1)continue;$=Ie.name.value;break}if(st!==""&&st!==Oe||me!==0&&qe(xt,He)===!1)continue;const Se={matchedLen:Rt.length,queryDiff:Me-me,hrefLen:W.length-st.length};if(Se.matchedLen>Z.matchedLen){$=Ie.name.value,Z=Se;continue}else if(Se.matchedLen!==Z.matchedLen)continue;if(Se.queryDiffZ.hrefLen&&($=Ie.name.value,Z=Se)}if($===null&&x.some(Ie=>Ie.routeData===void 0&&Ie.name.value===m.value)===!0){Le=!1;return}ee({name:$,setCurrent:!0})}function Nt($){if(u(),y.value!==!0&&f.value!==null&&$.target&&typeof $.target.closest=="function"){const Z=$.target.closest(".q-tab");Z&&f.value.contains(Z)===!0&&(y.value=!0,p.value===!0&&O(Z))}}function ft(){l(()=>{y.value=!1},30)}function gt(){Dt.avoidRouteWatcher===!1?c(Qe):d()}function yt(){if(L===void 0){const $=fe(()=>i.$route.fullPath,gt);L=()=>{$(),L=void 0}}}function Je($){x.push($),w.value++,U(),$.routeData===void 0||i.$route===void 0?c(()=>{if(p.value===!0){const Z=m.value,K=Z!=null&&Z!==""?x.find(Oe=>Oe.name.value===Z):null;K&&O(K.rootRef.value)}}):(yt(),$.routeData.hasRouterLink.value===!0&>())}function wt($){x.splice(x.indexOf($),1),w.value--,U(),L!==void 0&&$.routeData!==void 0&&(x.every(Z=>Z.routeData===void 0)===!0&&L(),gt())}const Dt={currentModel:m,tabProps:D,hasFocus:y,hasActiveTab:T,registerTab:Je,unregisterTab:wt,verifyRouteModel:gt,updateModel:ee,onKbdNavigate:te,avoidRouteWatcher:!1};ng(Pd,Dt);function Yt(){V!==null&&clearTimeout(V),B(),L?.()}let Lt,Le;return qt(Yt),ra(()=>{Lt=L!==void 0,Yt()}),la(()=>{Lt===!0&&(yt(),Le=!0,gt()),U()}),()=>S("div",{ref:f,class:I.value,role:"tablist",onFocusin:Nt,onFocusout:ft},[S(Tg,{onResize:re}),S("div",{ref:h,class:H.value,onScroll:P},it(e.default)),S(xe,{class:"q-tabs__arrow q-tabs__arrow--left absolute q-tab__icon"+(v.value===!0?"":" q-tabs__arrow--faded"),name:t.leftIcon||s.iconSet.tabs[t.vertical===!0?"up":"left"],onMousedownPassive:ue,onTouchstartPassive:ue,onMouseupPassive:B,onMouseleavePassive:B,onTouchendPassive:B}),S(xe,{class:"q-tabs__arrow q-tabs__arrow--right absolute q-tab__icon"+(b.value===!0?"":" q-tabs__arrow--faded"),name:t.rightIcon||s.iconSet.tabs[t.vertical===!0?"down":"right"],onMousedownPassive:he,onTouchstartPassive:he,onMouseupPassive:B,onMouseleavePassive:B,onTouchendPassive:B})])}});function Qg(t){const e=[.06,6,50];return typeof t=="string"&&t.length&&t.split(":").forEach((n,i)=>{const s=parseFloat(n);s&&(e[i]=s)}),e}const Gg=Id({name:"touch-swipe",beforeMount(t,{value:e,arg:n,modifiers:i}){if(i.mouse!==!0&&zn.has.touch!==!0)return;const s=i.mouseCapture===!0?"Capture":"",o={handler:e,sensitivity:Qg(n),direction:Hl(i),noop:Dd,mouseStart(a){jl(a,o)&&ig(a)&&(io(o,"temp",[[document,"mousemove","move",`notPassive${s}`],[document,"mouseup","end","notPassiveCapture"]]),o.start(a,!0))},touchStart(a){if(jl(a,o)){const r=a.target;io(o,"temp",[[r,"touchmove","move","notPassiveCapture"],[r,"touchcancel","end","notPassiveCapture"],[r,"touchend","end","notPassiveCapture"]]),o.start(a)}},start(a,r){zn.is.firefox===!0&&Ra(t,!0);const l=Ro(a);o.event={x:l.left,y:l.top,time:Date.now(),mouse:r===!0,dir:!1}},move(a){if(o.event===void 0)return;if(o.event.dir!==!1){Vt(a);return}const r=Date.now()-o.event.time;if(r===0)return;const l=Ro(a),u=l.left-o.event.x,c=Math.abs(u),d=l.top-o.event.y,f=Math.abs(d);if(o.event.mouse!==!0){if(co.sensitivity[0]&&(o.event.dir=d<0?"up":"down"),o.direction.horizontal===!0&&c>f&&f<100&&h>o.sensitivity[0]&&(o.event.dir=u<0?"left":"right"),o.direction.up===!0&&co.sensitivity[0]&&(o.event.dir="up"),o.direction.down===!0&&c0&&c<100&&m>o.sensitivity[0]&&(o.event.dir="down"),o.direction.left===!0&&c>f&&u<0&&f<100&&h>o.sensitivity[0]&&(o.event.dir="left"),o.direction.right===!0&&c>f&&u>0&&f<100&&h>o.sensitivity[0]&&(o.event.dir="right"),o.event.dir!==!1?(Vt(a),o.event.mouse===!0&&(document.body.classList.add("no-pointer-events--children"),document.body.classList.add("non-selectable"),Ig(),o.styleCleanup=p=>{o.styleCleanup=void 0,document.body.classList.remove("non-selectable");const v=()=>{document.body.classList.remove("no-pointer-events--children")};p===!0?setTimeout(v,50):v()}),o.handler({evt:a,touch:o.event.mouse!==!0,mouse:o.event.mouse,direction:o.event.dir,duration:r,distance:{x:c,y:f}})):o.end(a)},end(a){o.event!==void 0&&(La(o,"temp"),zn.is.firefox===!0&&Ra(t,!1),o.styleCleanup?.(!0),a!==void 0&&o.event.dir!==!1&&Vt(a),o.event=void 0)}};if(t.__qtouchswipe=o,i.mouse===!0){const a=i.mouseCapture===!0||i.mousecapture===!0?"Capture":"";io(o,"main",[[t,"mousedown","mouseStart",`passive${a}`]])}zn.has.touch===!0&&io(o,"main",[[t,"touchstart","touchStart",`passive${i.capture===!0?"Capture":""}`],[t,"touchmove","noop","notPassiveCapture"]])},updated(t,e){const n=t.__qtouchswipe;n!==void 0&&(e.oldValue!==e.value&&(typeof e.value!="function"&&n.end(),n.handler=e.value),n.direction=Hl(e.modifiers))},beforeUnmount(t){const e=t.__qtouchswipe;e!==void 0&&(La(e,"main"),La(e,"temp"),zn.is.firefox===!0&&Ra(t,!1),e.styleCleanup?.(),delete t.__qtouchswipe)}});function Jg(){let t=Object.create(null);return{getCache:(e,n)=>t[e]===void 0?t[e]=typeof n=="function"?n():n:t[e],setCache(e,n){t[e]=n},hasCache(e){return Object.hasOwnProperty.call(t,e)},clearCache(e){e!==void 0?delete t[e]:t=Object.create(null)}}}const Ud={name:{required:!0},disable:Boolean},Ql={setup(t,{slots:e}){return()=>S("div",{class:"q-panel scroll",role:"tabpanel"},it(e.default))}},Yd={modelValue:{required:!0},animated:Boolean,infinite:Boolean,swipeable:Boolean,vertical:Boolean,transitionPrev:String,transitionNext:String,transitionDuration:{type:[String,Number],default:300},keepAlive:Boolean,keepAliveInclude:[String,Array,RegExp],keepAliveExclude:[String,Array,RegExp],keepAliveMax:Number},Zd=["update:modelValue","beforeTransition","transition"];function Xd(){const{props:t,emit:e,proxy:n}=Ye(),{getCache:i}=Jg(),{registerTimeout:s}=Ls();let o,a;const r=N(null),l={value:null};function u(z){const Y=t.vertical===!0?"up":"left";L((n.$q.lang.rtl===!0?-1:1)*(z.direction===Y?1:-1))}const c=g(()=>[[Gg,u,void 0,{horizontal:t.vertical!==!0,vertical:t.vertical,mouse:!0}]]),d=g(()=>t.transitionPrev||`slide-${t.vertical===!0?"down":"right"}`),f=g(()=>t.transitionNext||`slide-${t.vertical===!0?"up":"left"}`),h=g(()=>`--q-transition-duration: ${t.transitionDuration}ms`),m=g(()=>typeof t.modelValue=="string"||typeof t.modelValue=="number"?t.modelValue:String(t.modelValue)),p=g(()=>({include:t.keepAliveInclude,exclude:t.keepAliveExclude,max:t.keepAliveMax})),v=g(()=>t.keepAliveInclude!==void 0||t.keepAliveExclude!==void 0);fe(()=>t.modelValue,(z,Y)=>{const j=w(z)===!0?y(z):-1;a!==!0&&E(j===-1?0:j{e("transition",z,Y)},t.transitionDuration))});function b(){L(1)}function _(){L(-1)}function x(z){e("update:modelValue",z)}function w(z){return z!=null&&z!==""}function y(z){return o.findIndex(Y=>Y.props.name===z&&Y.props.disable!==""&&Y.props.disable!==!0)}function V(){return o.filter(z=>z.props.disable!==""&&z.props.disable!==!0)}function E(z){const Y=z!==0&&t.animated===!0&&l.value!==-1?"q-transition--"+(z===-1?d.value:f.value):null;r.value!==Y&&(r.value=Y)}function L(z,Y=l.value){let j=Y+z;for(;j!==-1&&j{a=!1});return}j+=z}t.infinite===!0&&o.length!==0&&Y!==-1&&Y!==o.length&&L(z,z===-1?o.length:-1)}function D(){const z=y(t.modelValue);return l.value!==z&&(l.value=z),!0}function T(){const z=w(t.modelValue)===!0&&D()&&o[l.value];return t.keepAlive===!0?[S(og,p.value,[S(v.value===!0?i(m.value,()=>({...Ql,name:m.value})):Ql,{key:m.value,style:h.value},()=>z)])]:[S("div",{class:"q-panel scroll",style:h.value,key:m.value,role:"tabpanel"},[z])]}function R(){if(o.length!==0)return t.animated===!0?[S(As,{name:r.value},T)]:T()}function I(z){return o=sg(it(z.default,[])).filter(Y=>Y.props!==null&&Y.props.slot===void 0&&w(Y.props.name)===!0),o.length}function H(){return o}return Object.assign(n,{next:b,previous:_,goTo:x}),{panelIndex:l,panelDirectives:c,updatePanelsList:I,updatePanelIndex:D,getPanelContent:R,getEnabledPanels:V,getPanels:H,isValidPanelName:w,keepAliveProps:p,needsUniqueKeepAliveWrapper:v,goToPanelByOffset:L,goToPanel:x,nextPanel:b,previousPanel:_}}const za=Be({name:"QTabPanel",props:Ud,setup(t,{slots:e}){return()=>S("div",{class:"q-tab-panel",role:"tabpanel"},it(e.default))}}),ev=Be({name:"QTabPanels",props:{...Yd,...mn},emits:Zd,setup(t,{slots:e}){const n=Ye(),i=gn(t,n.proxy.$q),{updatePanelsList:s,getPanelContent:o,panelDirectives:a}=Xd(),r=g(()=>"q-tab-panels q-panel-parent"+(i.value===!0?" q-tab-panels--dark q-dark":""));return()=>(s(e),ua("div",{class:r.value},o(),"pan",t.swipeable,()=>a.value))}}),tv=Be({name:"QPage",props:{padding:Boolean,styleFn:Function},setup(t,{slots:e}){const{proxy:{$q:n}}=Ye(),i=Lo(ag,Pn);if(i===Pn)return console.error("QPage needs to be a deep child of QLayout"),Pn;if(Lo(rg,Pn)===Pn)return console.error("QPage needs to be child of QPageContainer"),Pn;const o=g(()=>{const r=(i.header.space===!0?i.header.size:0)+(i.footer.space===!0?i.footer.size:0);if(typeof t.styleFn=="function"){const l=i.isContainer.value===!0?i.containerHeight.value:n.screen.height;return t.styleFn(r,l)}return{minHeight:i.isContainer.value===!0?i.containerHeight.value-r+"px":n.screen.height===0?r!==0?`calc(100vh - ${r}px)`:"100vh":n.screen.height-r+"px"}}),a=g(()=>`q-page${t.padding===!0?" q-layout-padding":""}`);return()=>S("main",{class:a.value,style:o.value},it(e.default))}}),Kd=Be({name:"QCarouselSlide",props:{...Ud,imgSrc:String},setup(t,{slots:e}){const n=g(()=>t.imgSrc?{backgroundImage:`url("${t.imgSrc}")`}:{});return()=>S("div",{class:"q-carousel__slide",style:n.value},it(e.default))}}),nv=Be({name:"QCarouselControl",props:{position:{type:String,default:"bottom-right",validator:t=>["top-right","top-left","bottom-right","bottom-left","top","right","bottom","left"].includes(t)},offset:{type:Array,default:()=>[18,18],validator:t=>t.length===2}},setup(t,{slots:e}){const n=g(()=>`q-carousel__control absolute absolute-${t.position}`),i=g(()=>({margin:`${t.offset[1]}px ${t.offset[0]}px`}));return()=>S("div",{class:n.value,style:i.value},it(e.default))}});let us=0;const Qd={fullscreen:Boolean,noRouteFullscreenExit:Boolean},Gd=["update:fullscreen","fullscreen"];function Jd(){const t=Ye(),{props:e,emit:n,proxy:i}=t;let s,o,a;const r=N(!1);lg(t)===!0&&fe(()=>i.$route.fullPath,()=>{e.noRouteFullscreenExit!==!0&&c()}),fe(()=>e.fullscreen,d=>{r.value!==d&&l()}),fe(r,d=>{n("update:fullscreen",d),n("fullscreen",d)});function l(){r.value===!0?c():u()}function u(){r.value!==!0&&(r.value=!0,a=i.$el.parentNode,a.replaceChild(o,i.$el),document.body.appendChild(i.$el),us++,us===1&&document.body.classList.add("q-body--fullscreen-mixin"),s={handler:c},Fl.add(s))}function c(){r.value===!0&&(s!==void 0&&(Fl.remove(s),s=void 0),a.replaceChild(i.$el,o),r.value=!1,us=Math.max(0,us-1),us===0&&(document.body.classList.remove("q-body--fullscreen-mixin"),i.$el.scrollIntoView!==void 0&&setTimeout(()=>{i.$el.scrollIntoView()})))}return Ur(()=>{o=document.createElement("span")}),hn(()=>{e.fullscreen===!0&&u()}),qt(c),Object.assign(i,{toggleFullscreen:l,setFullscreen:u,exitFullscreen:c}),{inFullscreen:r,toggleFullscreen:l}}const iv=["top","right","bottom","left"],sv=["regular","flat","outline","push","unelevated"],ef=Be({name:"QCarousel",props:{...mn,...Yd,...Qd,transitionPrev:{type:String,default:"fade"},transitionNext:{type:String,default:"fade"},height:String,padding:Boolean,controlColor:String,controlTextColor:String,controlType:{type:String,validator:t=>sv.includes(t),default:"flat"},autoplay:[Number,Boolean],arrows:Boolean,prevIcon:String,nextIcon:String,navigation:Boolean,navigationPosition:{type:String,validator:t=>iv.includes(t)},navigationIcon:String,navigationActiveIcon:String,thumbnails:Boolean},emits:[...Gd,...Zd],setup(t,{slots:e}){const{proxy:{$q:n}}=Ye(),i=gn(t,n);let s=null,o;const{updatePanelsList:a,getPanelContent:r,panelDirectives:l,goToPanel:u,previousPanel:c,nextPanel:d,getEnabledPanels:f,panelIndex:h}=Xd(),{inFullscreen:m}=Jd(),p=g(()=>m.value!==!0&&t.height!==void 0?{height:t.height}:{}),v=g(()=>t.vertical===!0?"vertical":"horizontal"),b=g(()=>t.navigationPosition||(t.vertical===!0?"right":"bottom")),_=g(()=>`q-carousel q-panel-parent q-carousel--with${t.padding===!0?"":"out"}-padding`+(m.value===!0?" fullscreen":"")+(i.value===!0?" q-carousel--dark q-dark":"")+(t.arrows===!0?` q-carousel--arrows-${v.value}`:"")+(t.navigation===!0?` q-carousel--navigation-${b.value}`:"")),x=g(()=>{const T=[t.prevIcon||n.iconSet.carousel[t.vertical===!0?"up":"left"],t.nextIcon||n.iconSet.carousel[t.vertical===!0?"down":"right"]];return t.vertical===!1&&n.lang.rtl===!0?T.reverse():T}),w=g(()=>t.navigationIcon||n.iconSet.carousel.navigationIcon),y=g(()=>t.navigationActiveIcon||w.value),V=g(()=>({color:t.controlColor,textColor:t.controlTextColor,round:!0,[t.controlType]:!0,dense:!0}));fe(()=>t.modelValue,()=>{t.autoplay&&E()}),fe(()=>t.autoplay,T=>{T?E():s!==null&&(clearTimeout(s),s=null)});function E(){const T=qs(t.autoplay)===!0?Math.abs(t.autoplay):5e3;s!==null&&clearTimeout(s),s=setTimeout(()=>{s=null,T>=0?d():c()},T)}hn(()=>{t.autoplay&&E()}),qt(()=>{s!==null&&clearTimeout(s)});function L(T,R){return S("div",{class:`q-carousel__control q-carousel__navigation no-wrap absolute flex q-carousel__navigation--${T} q-carousel__navigation--${b.value}`+(t.controlColor!==void 0?` text-${t.controlColor}`:"")},[S("div",{class:"q-carousel__navigation-inner flex flex-center no-wrap"},f().map(R))])}function D(){const T=[];if(t.navigation===!0){const R=e["navigation-icon"]!==void 0?e["navigation-icon"]:H=>S(ke,{key:"nav"+H.name,class:`q-carousel__navigation-icon q-carousel__navigation-icon--${H.active===!0?"":"in"}active`,...H.btnProps,onClick:H.onClick}),I=o-1;T.push(L("buttons",(H,z)=>{const Y=H.props.name,j=h.value===z;return R({index:z,maxIndex:I,name:Y,active:j,btnProps:{icon:j===!0?y.value:w.value,size:"sm",...V.value},onClick:()=>{u(Y)}})}))}else if(t.thumbnails===!0){const R=t.controlColor!==void 0?` text-${t.controlColor}`:"";T.push(L("thumbnails",I=>{const H=I.props;return S("img",{key:"tmb#"+H.name,class:`q-carousel__thumbnail q-carousel__thumbnail--${H.name===t.modelValue?"":"in"}active`+R,src:H.imgSrc||H["img-src"],onClick:()=>{u(H.name)}})}))}return t.arrows===!0&&h.value>=0&&((t.infinite===!0||h.value>0)&&T.push(S("div",{key:"prev",class:`q-carousel__control q-carousel__arrow q-carousel__prev-arrow q-carousel__prev-arrow--${v.value} absolute flex flex-center`},[S(ke,{icon:x.value[0],...V.value,onClick:c})])),(t.infinite===!0||h.value(o=a(e),S("div",{class:_.value,style:p.value},[ua("div",{class:"q-carousel__slides-container"},r(),"sl-cont",t.swipeable,()=>l.value)].concat(D())))}}),ov={class:"svg-container"},av=["viewBox"],rv={id:"layer1",style:{display:"inline"}},lv=["d"],uv={id:"layer2",style:{display:"inline"}},cv=["cx","cy","r"],dv=["transform","onClick"],fv=["id"],hv=["x","y","width","height"],mv=["id"],gv=["x","y","width","height","rx","ry"],vv=["x","y","width","height","rx","ry"],pv=["clip-path"],bv=["id","x","y"],yv=["id","values"],xv=["id","x","y"],wv=["transform"],_v=["r"],Sv=["r"],kv=["r","clip-path"],Cv=["href","x","y","height","width"],Mv=be({__name:"EnergyFlowChart",setup(t){Od($=>({"7061f1f7":s.value,"7c22ee07":r.value}));const e=Fe(),n=N({xMin:0,xMax:150,yMin:0,yMax:105,circleRadius:10,strokeWidth:.5,textSize:5,numRows:4,numColumns:3}),i=g(()=>`${n.value.xMin} ${n.value.yMin} ${n.value.xMax} ${n.value.yMax}`),s=g(()=>n.value.strokeWidth),o=g(()=>n.value.circleRadius),a=g(()=>n.value.circleRadius),r=g(()=>`${n.value.textSize}px`),l=$=>{let Z={...$};return Z.textValue&&(Z.textValue=Z.textValue.replace(/^-/,"")),Z.value&&(Z.value=Math.abs(Z.value)),Z.scaledValue&&(Z.scaledValue=Math.abs(Z.scaledValue)),Z},u=g(()=>e.getGridPower("object")),c=g(()=>Number(u.value.value)>0),d=g(()=>Number(u.value.value)<0),f=g(()=>e.batteryTotalPower("object")),h=g(()=>Number(e.batteryTotalPower("value"))<0),m=g(()=>Number(e.batteryTotalPower("value"))>0),p=g(()=>Number(e.batterySocTotal)/100),v=g(()=>e.getHomePower("object")),b=g(()=>Number(v.value.value)>0),_=g(()=>Number(v.value.value)<0),x=g(()=>e.getPvPower("object")),w=g(()=>{const $=Number(x.value.value);return Math.abs($)>=50}),y=g(()=>e.chargePointIds),V=g(()=>e.chargePointName(y.value[0])||"---"),E=g(()=>e.chargePointName(y.value[1])||"---"),L=g(()=>e.chargePointName(y.value[2])||"---"),D=g(()=>y.value.length>0?e.chargePointPower(y.value[0],"object")||{textValue:"Loading..."}:{textValue:"N/A"}),T=g(()=>y.value.length>0?e.chargePointPower(y.value[1],"object")||{textValue:"Loading..."}:{textValue:"N/A"}),R=g(()=>y.value.length>0?e.chargePointPower(y.value[2],"object")||{textValue:"Loading..."}:{textValue:"N/A"}),I=g(()=>Number(D.value.value)>0),H=g(()=>Number(D.value.value)<0),z=g(()=>Number(T.value.value)>0),Y=g(()=>Number(T.value.value)<0),j=g(()=>Number(R.value.value)>0),ee=g(()=>Number(R.value.value)<0),U=$=>{switch($){case"instant_charging":return{label:"Sofort",class:"danger"};case"pv_charging":return{label:"PV",class:"success"};case"scheduled_charging":return{label:"Zielladen",class:"primary"};case"time_charging":return{label:"Zeitladen",class:"warning"};case"eco_charging":return{label:"Eco",class:"secondary"};case"stop":return{label:"Stop",class:"dark"};default:return{label:"Stop",class:"dark"}}},re=g(()=>e.chargePointPlugState(y.value[0])),ce=g(()=>{const $=e.chargePointConnectedVehicleChargeMode(y.value[0]);return U($.value||"")}),O=g(()=>e.chargePointConnectedVehicleInfo(y.value[0]).value?.name||"---"),P=g(()=>e.chargePointConnectedVehicleSoc(y.value[0])),J=g(()=>e.chargePointPlugState(y.value[1])),ue=g(()=>{const $=e.chargePointConnectedVehicleChargeMode(y.value[1]);return U($.value||"")}),he=g(()=>e.chargePointConnectedVehicleInfo(y.value[1]).value?.name||"---"),B=g(()=>e.chargePointConnectedVehicleSoc(y.value[1])),te=g(()=>e.chargePointPlugState(y.value[2])),_e=g(()=>{const $=e.chargePointConnectedVehicleChargeMode(y.value[2]);return U($.value||"")}),G=g(()=>e.chargePointConnectedVehicleInfo(y.value[2]).value?.name||"---"),qe=g(()=>e.chargePointConnectedVehicleSoc(y.value[2])),Qe=g(()=>e.chargePointSumPower("object")),Nt=g(()=>Number(Qe.value.value)<0),ft=g(()=>Number(Qe.value.value)>0),gt=g(()=>{const $=[];return $.push({id:"grid",class:{base:"grid",valueLabel:d.value?"fill-success":c.value?"fill-danger":"",animated:c.value,animatedReverse:d.value},position:{row:0,column:0},label:["EVU",l(u.value).textValue],icon:"icons/owbGrid.svg"}),$.push({id:"home",class:{base:"home",valueLabel:"",animated:_.value,animatedReverse:b.value},position:{row:0,column:2},label:["Haus",l(v.value).textValue],icon:"icons/owbHouse.svg"}),e.getPvConfigured&&$.push({id:"pv",class:{base:"pv",valueLabel:"fill-success",animated:w.value,animatedReverse:!1},position:{row:1,column:0},label:["PV",l(x.value).textValue],icon:"icons/owbPV.svg"}),e.batteryConfigured&&$.push({id:"battery",class:{base:"battery",valueLabel:"",animated:h.value,animatedReverse:m.value},position:{row:1,column:2},label:["Speicher",l(f.value).textValue],soc:p.value,icon:"icons/owbBattery.svg"}),y.value.length>0&&(y.value.length<=3?($.push({id:"charge-point-1",class:{base:"charge-point",valueLabel:"",animated:H.value,animatedReverse:I.value},position:{row:2,column:y.value.length>1?0:1},label:[V.value,l(D.value).textValue],icon:"icons/owbChargePoint.svg"}),re.value&&$.push({id:"vehicle-1",class:{base:"vehicle",valueLabel:"fill-"+ce.value.class,animated:H.value,animatedReverse:I.value},position:{row:3,column:y.value.length>1?0:1},label:[O.value||"---",ce.value.label||"---"],soc:(P.value.value?.soc||0)/100,icon:"icons/owbVehicle.svg"}),y.value.length>1&&$.push({id:"charge-point-2",class:{base:"charge-point",valueLabel:"",animated:Y.value,animatedReverse:z.value},position:{row:2,column:y.value.length>2?1:2},label:[E.value,l(T.value).textValue],icon:"icons/owbChargePoint.svg"}),J.value&&$.push({id:"vehicle-2",class:{base:"vehicle",valueLabel:"fill-"+ue.value.class,animated:Y.value,animatedReverse:z.value},position:{row:3,column:y.value.length>2?1:2},label:[he.value||"---",ue.value.label||"---"],soc:(B.value.value?.soc||0)/100,icon:"icons/owbVehicle.svg"}),y.value.length>2&&$.push({id:"charge-point-3",class:{base:"charge-point",valueLabel:"",animated:ee.value,animatedReverse:j.value},position:{row:2,column:2},label:[L.value,l(R.value).textValue],icon:"icons/owbChargePoint.svg"}),te.value&&$.push({id:"vehicle-3",class:{base:"vehicle",valueLabel:"fill-"+_e.value.class,animated:ee.value,animatedReverse:j.value},position:{row:3,column:2},label:[G.value||"---",_e.value.label||"---"],soc:(qe.value.value?.soc||0)/100,icon:"icons/owbVehicle.svg"})):$.push({id:"charge-point-sum",class:{base:"charge-point",valueLabel:"",animated:Nt.value,animatedReverse:ft.value},position:{row:2,column:1},label:["Ladepunkte",l(Qe.value).textValue],icon:"icons/owbChargePoint.svg"})),$}),yt=g(()=>y.value?.length>0?y.value.length>3?3:4:3);fe(yt,$=>{n.value.numRows=$},{immediate:!0});const Je=$=>{const Z=n.value.yMin+n.value.strokeWidth+n.value.circleRadius,Oe=n.value.yMax-n.value.strokeWidth-n.value.circleRadius-Z;return $*(Oe/(n.value.numRows-1))+Z},wt=$=>{const Z=n.value.xMin+n.value.strokeWidth+Le.value/2,Oe=n.value.xMax-n.value.strokeWidth-Le.value/2-Z;return $*(Oe/(n.value.numColumns-1))+Z},Dt=$=>{const Z=wt($);return $<(n.value.numColumns-1)/2?Z+Le.value/2-n.value.circleRadius:$>(n.value.numColumns-1)/2?Z-Le.value/2+n.value.circleRadius:Z},Yt=$=>{const Z=document.getElementById($);if(Z==null||!(Z instanceof SVGGraphicsElement))return{x:0,y:0,width:0,height:0};const K=Z.getBBox();return{x:K.x,y:K.y,width:K.width,height:K.height}},Lt=$=>{const Z=document.querySelector(`#${$}`);Z&&Z.beginElement()},Le=g(()=>(n.value.xMax-n.value.xMin-n.value.strokeWidth-n.value.numColumns)/n.value.numColumns);return($,Z)=>(M(),Q("div",ov,[(M(),Q("svg",{viewBox:i.value,version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg"},[q("g",rv,[(M(!0),Q(De,null,Ke(gt.value,K=>(M(),Q("path",{key:K.id,class:Re([K.class.base,{animated:K.class.animated},{animatedReverse:K.class.animatedReverse}]),d:K.class.base!=="vehicle"?`M ${Dt(K.position.column)}, ${Je(K.position.row)} ${wt(1)}, ${Je(1)}`:`M ${Dt(K.position.column)}, ${Je(K.position.row)} ${Dt(K.position.column)}, ${Je(K.position.row-1)}`},null,10,lv))),128))]),q("g",uv,[q("circle",{id:"center",cx:wt(1),cy:Je(1),r:n.value.circleRadius/3},null,8,cv),(M(!0),Q(De,null,Ke(gt.value,K=>(M(),Q("g",{key:K.id,class:Re(K.class.base),transform:`translate(${wt(K.position.column)}, ${Je(K.position.row)})`,onClick:Oe=>Lt(`animate-label-${K.id}`)},[q("defs",null,[K.soc?(M(),Q("clipPath",{key:0,id:`clip-soc-${K.id}`},[q("rect",{x:-n.value.circleRadius-n.value.strokeWidth,y:(n.value.circleRadius+n.value.strokeWidth)*(1-2*K.soc),width:(n.value.circleRadius+n.value.strokeWidth)*2,height:(n.value.circleRadius+n.value.strokeWidth)*2*K.soc},null,8,hv)],8,fv)):le("",!0),q("clipPath",{id:`clip-label-${K.id}`},[q("rect",{x:-Le.value/2,y:-n.value.circleRadius,width:Le.value,height:n.value.circleRadius*2,rx:n.value.circleRadius,ry:n.value.circleRadius},null,8,gv)],8,mv)]),q("rect",{x:-Le.value/2,y:-n.value.circleRadius,width:Le.value,height:n.value.circleRadius*2,rx:n.value.circleRadius,ry:n.value.circleRadius},null,8,vv),q("text",{"clip-path":`url(#clip-label-${K.id})`},[q("tspan",{id:`label-${K.id}`,"text-anchor":"start",x:-Le.value/2+2*n.value.circleRadius+n.value.strokeWidth,y:-n.value.textSize/2},[Yt(`label-${K.id}`).width>Le.value-2*n.value.circleRadius-2*n.value.strokeWidth?(M(),Q("animate",{key:0,id:`animate-label-${K.id}`,xmlns:"http://www.w3.org/2000/svg",attributeName:"x",dur:"5s",values:"0; "+(-Yt(`label-${K.id}`).width+Le.value-2.5*n.value.circleRadius-2*n.value.strokeWidth)+"; 0;",repeatCount:"0",additive:"sum"},null,8,yv)):le("",!0),Ve(" "+se(K.label[0]),1)],8,bv),q("tspan",{id:`value-${K.id}`,class:Re(K.class.valueLabel),"text-anchor":"end",x:2*n.value.circleRadius+n.value.strokeWidth,y:n.value.textSize},se(K.label[1]),11,xv)],8,pv),q("g",{transform:`translate(${n.value.circleRadius-Le.value/2}, 0)`},[q("circle",{cx:"0",cy:"0",r:n.value.circleRadius,class:"background-circle"},null,8,_v),q("circle",{cx:"0",cy:"0",r:n.value.circleRadius,class:Re({soc:K.soc})},null,10,Sv),K.soc?(M(),Q("circle",{key:0,cx:"0",cy:"0",r:n.value.circleRadius,"clip-path":`url(#clip-soc-${K.id})`},null,8,kv)):le("",!0),q("image",{href:K.icon,x:-o.value/2,y:-a.value/2,height:a.value,width:o.value},null,8,Cv)],8,wv)],10,dv))),128))])],8,av))]))}}),Pv=mt(Mv,[["__scopeId","data-v-62f971c1"]]);/*! +var eg=Object.defineProperty;var tg=(t,e,n)=>e in t?eg(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var Ee=(t,e,n)=>tg(t,typeof e!="symbol"?e+"":e,n);import{i as Lo,e as Pn,K as Pd,g as Ye,r as N,a as g,o as qt,m as hn,j as sn,R as Td,h as S,J as xe,t as mi,L as aa,M as jr,N as Vt,c as Be,w as fe,q as ra,s as la,d as it,x as ng,O as Id,P as La,S as zn,T as Ra,n as Dd,U as io,V as Ro,W as ig,X as As,Y as sg,Z as og,v as ua,l as ag,y as rg,_ as lg,$ as Fl,a0 as Ur,a1 as qs,Q as ke,C as be,a2 as Od,a3 as Q,F as M,a4 as q,a5 as De,a6 as Ke,a7 as Re,a8 as le,I as Ve,a9 as se,aa as Vd,ab as ug,B as cg,ac as Tn,u as bt,ad as Ed,ae as dg,af as Ad,z as fg,ag as qd,ah as hg,ai as In,E as X,G as A,H as C,aj as Pe,ak as mg,al as ln,am as zi,an as Vi,ao as Ld,ap as gg,p as Rd,aq as si,ar as Bn,as as vg,f as pg,k as zl,at as Yr,au as Zr,av as bg,aw as ls,ax as yg,ay as Bl,az as Io,aA as xg,aB as wg,aC as _g,aD as Sg,aE as Nl,aF as Wl,aG as kg,aH as Cg,aI as Mg,aJ as Xr,aK as $d,aL as Pg}from"./index-CmDneGoC.js";import{y as Ps,j as Ls,Q as Tg,z as Hl,A as Ig,B as jl,u as mn,c as gn,_ as mt,o as gi,h as Fd,s as zd,C as Dg,D as Ul,E as Kr,i as Bd,F as Og,G as Nd,H as Vg,I as Eg,k as Wd,J as Hd,K as Yl,L as Ag,M as Zl,g as jd,N as qg,O as Lg,P as ca,w as xn,p as Bi,q as Ni,r as Xn,v as Wi,l as Rg,m as $g,R as Fg,S as Xl,t as At,U as zg,V as Bg,T as Ng,d as Ii,x as Vn}from"./_plugin-vue_export-helper-BTeormdj.js";import{u as Fe}from"./mqtt-store-CdQu5WWJ.js";let $a,so=0;const Pt=new Array(256);for(let t=0;t<256;t++)Pt[t]=(t+256).toString(16).substring(1);const Wg=(()=>{const t=typeof crypto<"u"?crypto:typeof window<"u"?window.crypto||window.msCrypto:void 0;if(t!==void 0){if(t.randomBytes!==void 0)return t.randomBytes;if(t.getRandomValues!==void 0)return e=>{const n=new Uint8Array(e);return t.getRandomValues(n),n}}return e=>{const n=[];for(let i=e;i>0;i--)n.push(Math.floor(Math.random()*256));return n}})(),Kl=4096;function mr(){($a===void 0||so+16>Kl)&&(so=0,$a=Wg(Kl));const t=Array.prototype.slice.call($a,so,so+=16);return t[6]=t[6]&15|64,t[8]=t[8]&63|128,Pt[t[0]]+Pt[t[1]]+Pt[t[2]]+Pt[t[3]]+"-"+Pt[t[4]]+Pt[t[5]]+"-"+Pt[t[6]]+Pt[t[7]]+"-"+Pt[t[8]]+Pt[t[9]]+"-"+Pt[t[10]]+Pt[t[11]]+Pt[t[12]]+Pt[t[13]]+Pt[t[14]]+Pt[t[15]]}let Hg=0;const jg=["click","keydown"],Ug={icon:String,label:[Number,String],alert:[Boolean,String],alertIcon:String,name:{type:[Number,String],default:()=>`t_${Hg++}`},noCaps:Boolean,tabindex:[String,Number],disable:Boolean,contentClass:String,ripple:{type:[Boolean,Object],default:!0}};function Yg(t,e,n,i){const s=Lo(Pd,Pn);if(s===Pn)return console.error("QTab/QRouteTab component needs to be child of QTabs"),Pn;const{proxy:o}=Ye(),a=N(null),r=N(null),l=N(null),u=g(()=>t.disable===!0||t.ripple===!1?!1:Object.assign({keyCodes:[13,32],early:!0},t.ripple===!0?{}:t.ripple)),c=g(()=>s.currentModel.value===t.name),d=g(()=>"q-tab relative-position self-stretch flex flex-center text-center"+(c.value===!0?" q-tab--active"+(s.tabProps.value.activeClass?" "+s.tabProps.value.activeClass:"")+(s.tabProps.value.activeColor?` text-${s.tabProps.value.activeColor}`:"")+(s.tabProps.value.activeBgColor?` bg-${s.tabProps.value.activeBgColor}`:""):" q-tab--inactive")+(t.icon&&t.label&&s.tabProps.value.inlineLabel===!1?" q-tab--full":"")+(t.noCaps===!0||s.tabProps.value.noCaps===!0?" q-tab--no-caps":"")+(t.disable===!0?" disabled":" q-focusable q-hoverable cursor-pointer")),f=g(()=>"q-tab__content self-stretch flex-center relative-position q-anchor--skip non-selectable "+(s.tabProps.value.inlineLabel===!0?"row no-wrap q-tab__content--inline":"column")+(t.contentClass!==void 0?` ${t.contentClass}`:"")),h=g(()=>t.disable===!0||s.hasFocus.value===!0||c.value===!1&&s.hasActiveTab.value===!0?-1:t.tabindex||0);function m(x,w){if(w!==!0&&x?.qAvoidFocus!==!0&&a.value?.focus(),t.disable!==!0){s.updateModel({name:t.name}),n("click",x);return}}function p(x){aa(x,[13,32])?m(x,!0):jr(x)!==!0&&x.keyCode>=35&&x.keyCode<=40&&x.altKey!==!0&&x.metaKey!==!0&&s.onKbdNavigate(x.keyCode,o.$el)===!0&&Vt(x),n("keydown",x)}function v(){const x=s.tabProps.value.narrowIndicator,w=[],y=S("div",{ref:l,class:["q-tab__indicator",s.tabProps.value.indicatorClass]});t.icon!==void 0&&w.push(S(xe,{class:"q-tab__icon",name:t.icon})),t.label!==void 0&&w.push(S("div",{class:"q-tab__label"},t.label)),t.alert!==!1&&w.push(t.alertIcon!==void 0?S(xe,{class:"q-tab__alert-icon",color:t.alert!==!0?t.alert:void 0,name:t.alertIcon}):S("div",{class:"q-tab__alert"+(t.alert!==!0?` text-${t.alert}`:"")})),x===!0&&w.push(y);const V=[S("div",{class:"q-focus-helper",tabindex:-1,ref:a}),S("div",{class:f.value},mi(e.default,w))];return x===!1&&V.push(y),V}const b={name:g(()=>t.name),rootRef:r,tabIndicatorRef:l,routeData:i};qt(()=>{s.unregisterTab(b)}),hn(()=>{s.registerTab(b)});function _(x,w){const y={ref:r,class:d.value,tabindex:h.value,role:"tab","aria-selected":c.value===!0?"true":"false","aria-disabled":t.disable===!0?"true":void 0,onClick:m,onKeydown:p,...w};return sn(S(x,y,v()),[[Td,u.value]])}return{renderTab:_,$tabs:s}}const Fa=Be({name:"QTab",props:Ug,emits:jg,setup(t,{slots:e,emit:n}){const{renderTab:i}=Yg(t,e,n);return()=>i("div")}});let Rs=!1;{const t=document.createElement("div");t.setAttribute("dir","rtl"),Object.assign(t.style,{width:"1px",height:"1px",overflow:"auto"});const e=document.createElement("div");Object.assign(e.style,{width:"1000px",height:"1px"}),document.body.appendChild(t),t.appendChild(e),t.scrollLeft=-1e3,Rs=t.scrollLeft>=0,t.remove()}function Zg(t,e,n){const i=n===!0?["left","right"]:["top","bottom"];return`absolute-${e===!0?i[0]:i[1]}${t?` text-${t}`:""}`}const Xg=["left","center","right","justify"],Kg=Be({name:"QTabs",props:{modelValue:[Number,String],align:{type:String,default:"center",validator:t=>Xg.includes(t)},breakpoint:{type:[String,Number],default:600},vertical:Boolean,shrink:Boolean,stretch:Boolean,activeClass:String,activeColor:String,activeBgColor:String,indicatorColor:String,leftIcon:String,rightIcon:String,outsideArrows:Boolean,mobileArrows:Boolean,switchIndicator:Boolean,narrowIndicator:Boolean,inlineLabel:Boolean,noCaps:Boolean,dense:Boolean,contentClass:String,"onUpdate:modelValue":[Function,Array]},setup(t,{slots:e,emit:n}){const{proxy:i}=Ye(),{$q:s}=i,{registerTick:o}=Ps(),{registerTick:a}=Ps(),{registerTick:r}=Ps(),{registerTimeout:l,removeTimeout:u}=Ls(),{registerTimeout:c,removeTimeout:d}=Ls(),f=N(null),h=N(null),m=N(t.modelValue),p=N(!1),v=N(!0),b=N(!1),_=N(!1),x=[],w=N(0),y=N(!1);let V=null,E=null,L;const D=g(()=>({activeClass:t.activeClass,activeColor:t.activeColor,activeBgColor:t.activeBgColor,indicatorClass:Zg(t.indicatorColor,t.switchIndicator,t.vertical),narrowIndicator:t.narrowIndicator,inlineLabel:t.inlineLabel,noCaps:t.noCaps})),T=g(()=>{const $=w.value,Z=m.value;for(let K=0;K<$;K++)if(x[K].name.value===Z)return!0;return!1}),R=g(()=>`q-tabs__content--align-${p.value===!0?"left":_.value===!0?"justify":t.align}`),I=g(()=>`q-tabs row no-wrap items-center q-tabs--${p.value===!0?"":"not-"}scrollable q-tabs--${t.vertical===!0?"vertical":"horizontal"} q-tabs__arrows--${t.outsideArrows===!0?"outside":"inside"} q-tabs--mobile-with${t.mobileArrows===!0?"":"out"}-arrows`+(t.dense===!0?" q-tabs--dense":"")+(t.shrink===!0?" col-shrink":"")+(t.stretch===!0?" self-stretch":"")),H=g(()=>"q-tabs__content scroll--mobile row no-wrap items-center self-stretch hide-scrollbar relative-position "+R.value+(t.contentClass!==void 0?` ${t.contentClass}`:"")),z=g(()=>t.vertical===!0?{container:"height",content:"offsetHeight",scroll:"scrollHeight"}:{container:"width",content:"offsetWidth",scroll:"scrollWidth"}),Y=g(()=>t.vertical!==!0&&s.lang.rtl===!0),j=g(()=>Rs===!1&&Y.value===!0);fe(Y,P),fe(()=>t.modelValue,$=>{ee({name:$,setCurrent:!0,skipEmit:!0})}),fe(()=>t.outsideArrows,U);function ee({name:$,setCurrent:Z,skipEmit:K}){m.value!==$&&(K!==!0&&t["onUpdate:modelValue"]!==void 0&&n("update:modelValue",$),(Z===!0||t["onUpdate:modelValue"]===void 0)&&(ce(m.value,$),m.value=$))}function U(){o(()=>{f.value&&re({width:f.value.offsetWidth,height:f.value.offsetHeight})})}function re($){if(z.value===void 0||h.value===null)return;const Z=$[z.value.container],K=Math.min(h.value[z.value.scroll],Array.prototype.reduce.call(h.value.children,(He,Me)=>He+(Me[z.value.content]||0),0)),Oe=Z>0&&K>Z;p.value=Oe,Oe===!0&&a(P),_.value=ZHe.name.value===$):null,Oe=Z!=null&&Z!==""?x.find(He=>He.name.value===Z):null;if(Le===!0)Le=!1;else if(K&&Oe){const He=K.tabIndicatorRef.value,Me=Oe.tabIndicatorRef.value;V!==null&&(clearTimeout(V),V=null),He.style.transition="none",He.style.transform="none",Me.style.transition="none",Me.style.transform="none";const Ie=He.getBoundingClientRect(),rt=Me.getBoundingClientRect();Me.style.transform=t.vertical===!0?`translate3d(0,${Ie.top-rt.top}px,0) scale3d(1,${rt.height?Ie.height/rt.height:1},1)`:`translate3d(${Ie.left-rt.left}px,0,0) scale3d(${rt.width?Ie.width/rt.width:1},1,1)`,r(()=>{V=setTimeout(()=>{V=null,Me.style.transition="transform .25s cubic-bezier(.4, 0, .2, 1)",Me.style.transform="none"},70)})}Oe&&p.value===!0&&O(Oe.rootRef.value)}function O($){const{left:Z,width:K,top:Oe,height:He}=h.value.getBoundingClientRect(),Me=$.getBoundingClientRect();let Ie=t.vertical===!0?Me.top-Oe:Me.left-Z;if(Ie<0){h.value[t.vertical===!0?"scrollTop":"scrollLeft"]+=Math.floor(Ie),P();return}Ie+=t.vertical===!0?Me.height-He:Me.width-K,Ie>0&&(h.value[t.vertical===!0?"scrollTop":"scrollLeft"]+=Math.ceil(Ie),P())}function P(){const $=h.value;if($===null)return;const Z=$.getBoundingClientRect(),K=t.vertical===!0?$.scrollTop:Math.abs($.scrollLeft);Y.value===!0?(v.value=Math.ceil(K+Z.width)<$.scrollWidth-1,b.value=K>0):(v.value=K>0,b.value=t.vertical===!0?Math.ceil(K+Z.height)<$.scrollHeight:Math.ceil(K+Z.width)<$.scrollWidth)}function J($){E!==null&&clearInterval(E),E=setInterval(()=>{G($)===!0&&B()},5)}function ue(){J(j.value===!0?Number.MAX_SAFE_INTEGER:0)}function he(){J(j.value===!0?0:Number.MAX_SAFE_INTEGER)}function B(){E!==null&&(clearInterval(E),E=null)}function te($,Z){const K=Array.prototype.filter.call(h.value.children,rt=>rt===Z||rt.matches&&rt.matches(".q-tab.q-focusable")===!0),Oe=K.length;if(Oe===0)return;if($===36)return O(K[0]),K[0].focus(),!0;if($===35)return O(K[Oe-1]),K[Oe-1].focus(),!0;const He=$===(t.vertical===!0?38:37),Me=$===(t.vertical===!0?40:39),Ie=He===!0?-1:Me===!0?1:void 0;if(Ie!==void 0){const rt=Y.value===!0?-1:1,st=K.indexOf(Z)+Ie*rt;return st>=0&&stj.value===!0?{get:$=>Math.abs($.scrollLeft),set:($,Z)=>{$.scrollLeft=-Z}}:t.vertical===!0?{get:$=>$.scrollTop,set:($,Z)=>{$.scrollTop=Z}}:{get:$=>$.scrollLeft,set:($,Z)=>{$.scrollLeft=Z}});function G($){const Z=h.value,{get:K,set:Oe}=_e.value;let He=!1,Me=K(Z);const Ie=$=$)&&(He=!0,Me=$),Oe(Z,Me),P(),He}function qe($,Z){for(const K in $)if($[K]!==Z[K])return!1;return!0}function Qe(){let $=null,Z={matchedLen:0,queryDiff:9999,hrefLen:0};const K=x.filter(Ie=>Ie.routeData?.hasRouterLink.value===!0),{hash:Oe,query:He}=i.$route,Me=Object.keys(He).length;for(const Ie of K){const rt=Ie.routeData.exact.value===!0;if(Ie.routeData[rt===!0?"linkIsExactActive":"linkIsActive"].value!==!0)continue;const{hash:st,query:xt,matched:Rt,href:W}=Ie.routeData.resolvedLink.value,me=Object.keys(xt).length;if(rt===!0){if(st!==Oe||me!==Me||qe(He,xt)===!1)continue;$=Ie.name.value;break}if(st!==""&&st!==Oe||me!==0&&qe(xt,He)===!1)continue;const Se={matchedLen:Rt.length,queryDiff:Me-me,hrefLen:W.length-st.length};if(Se.matchedLen>Z.matchedLen){$=Ie.name.value,Z=Se;continue}else if(Se.matchedLen!==Z.matchedLen)continue;if(Se.queryDiffZ.hrefLen&&($=Ie.name.value,Z=Se)}if($===null&&x.some(Ie=>Ie.routeData===void 0&&Ie.name.value===m.value)===!0){Le=!1;return}ee({name:$,setCurrent:!0})}function Nt($){if(u(),y.value!==!0&&f.value!==null&&$.target&&typeof $.target.closest=="function"){const Z=$.target.closest(".q-tab");Z&&f.value.contains(Z)===!0&&(y.value=!0,p.value===!0&&O(Z))}}function ft(){l(()=>{y.value=!1},30)}function gt(){Dt.avoidRouteWatcher===!1?c(Qe):d()}function yt(){if(L===void 0){const $=fe(()=>i.$route.fullPath,gt);L=()=>{$(),L=void 0}}}function Je($){x.push($),w.value++,U(),$.routeData===void 0||i.$route===void 0?c(()=>{if(p.value===!0){const Z=m.value,K=Z!=null&&Z!==""?x.find(Oe=>Oe.name.value===Z):null;K&&O(K.rootRef.value)}}):(yt(),$.routeData.hasRouterLink.value===!0&>())}function wt($){x.splice(x.indexOf($),1),w.value--,U(),L!==void 0&&$.routeData!==void 0&&(x.every(Z=>Z.routeData===void 0)===!0&&L(),gt())}const Dt={currentModel:m,tabProps:D,hasFocus:y,hasActiveTab:T,registerTab:Je,unregisterTab:wt,verifyRouteModel:gt,updateModel:ee,onKbdNavigate:te,avoidRouteWatcher:!1};ng(Pd,Dt);function Yt(){V!==null&&clearTimeout(V),B(),L?.()}let Lt,Le;return qt(Yt),ra(()=>{Lt=L!==void 0,Yt()}),la(()=>{Lt===!0&&(yt(),Le=!0,gt()),U()}),()=>S("div",{ref:f,class:I.value,role:"tablist",onFocusin:Nt,onFocusout:ft},[S(Tg,{onResize:re}),S("div",{ref:h,class:H.value,onScroll:P},it(e.default)),S(xe,{class:"q-tabs__arrow q-tabs__arrow--left absolute q-tab__icon"+(v.value===!0?"":" q-tabs__arrow--faded"),name:t.leftIcon||s.iconSet.tabs[t.vertical===!0?"up":"left"],onMousedownPassive:ue,onTouchstartPassive:ue,onMouseupPassive:B,onMouseleavePassive:B,onTouchendPassive:B}),S(xe,{class:"q-tabs__arrow q-tabs__arrow--right absolute q-tab__icon"+(b.value===!0?"":" q-tabs__arrow--faded"),name:t.rightIcon||s.iconSet.tabs[t.vertical===!0?"down":"right"],onMousedownPassive:he,onTouchstartPassive:he,onMouseupPassive:B,onMouseleavePassive:B,onTouchendPassive:B})])}});function Qg(t){const e=[.06,6,50];return typeof t=="string"&&t.length&&t.split(":").forEach((n,i)=>{const s=parseFloat(n);s&&(e[i]=s)}),e}const Gg=Id({name:"touch-swipe",beforeMount(t,{value:e,arg:n,modifiers:i}){if(i.mouse!==!0&&zn.has.touch!==!0)return;const s=i.mouseCapture===!0?"Capture":"",o={handler:e,sensitivity:Qg(n),direction:Hl(i),noop:Dd,mouseStart(a){jl(a,o)&&ig(a)&&(io(o,"temp",[[document,"mousemove","move",`notPassive${s}`],[document,"mouseup","end","notPassiveCapture"]]),o.start(a,!0))},touchStart(a){if(jl(a,o)){const r=a.target;io(o,"temp",[[r,"touchmove","move","notPassiveCapture"],[r,"touchcancel","end","notPassiveCapture"],[r,"touchend","end","notPassiveCapture"]]),o.start(a)}},start(a,r){zn.is.firefox===!0&&Ra(t,!0);const l=Ro(a);o.event={x:l.left,y:l.top,time:Date.now(),mouse:r===!0,dir:!1}},move(a){if(o.event===void 0)return;if(o.event.dir!==!1){Vt(a);return}const r=Date.now()-o.event.time;if(r===0)return;const l=Ro(a),u=l.left-o.event.x,c=Math.abs(u),d=l.top-o.event.y,f=Math.abs(d);if(o.event.mouse!==!0){if(co.sensitivity[0]&&(o.event.dir=d<0?"up":"down"),o.direction.horizontal===!0&&c>f&&f<100&&h>o.sensitivity[0]&&(o.event.dir=u<0?"left":"right"),o.direction.up===!0&&co.sensitivity[0]&&(o.event.dir="up"),o.direction.down===!0&&c0&&c<100&&m>o.sensitivity[0]&&(o.event.dir="down"),o.direction.left===!0&&c>f&&u<0&&f<100&&h>o.sensitivity[0]&&(o.event.dir="left"),o.direction.right===!0&&c>f&&u>0&&f<100&&h>o.sensitivity[0]&&(o.event.dir="right"),o.event.dir!==!1?(Vt(a),o.event.mouse===!0&&(document.body.classList.add("no-pointer-events--children"),document.body.classList.add("non-selectable"),Ig(),o.styleCleanup=p=>{o.styleCleanup=void 0,document.body.classList.remove("non-selectable");const v=()=>{document.body.classList.remove("no-pointer-events--children")};p===!0?setTimeout(v,50):v()}),o.handler({evt:a,touch:o.event.mouse!==!0,mouse:o.event.mouse,direction:o.event.dir,duration:r,distance:{x:c,y:f}})):o.end(a)},end(a){o.event!==void 0&&(La(o,"temp"),zn.is.firefox===!0&&Ra(t,!1),o.styleCleanup?.(!0),a!==void 0&&o.event.dir!==!1&&Vt(a),o.event=void 0)}};if(t.__qtouchswipe=o,i.mouse===!0){const a=i.mouseCapture===!0||i.mousecapture===!0?"Capture":"";io(o,"main",[[t,"mousedown","mouseStart",`passive${a}`]])}zn.has.touch===!0&&io(o,"main",[[t,"touchstart","touchStart",`passive${i.capture===!0?"Capture":""}`],[t,"touchmove","noop","notPassiveCapture"]])},updated(t,e){const n=t.__qtouchswipe;n!==void 0&&(e.oldValue!==e.value&&(typeof e.value!="function"&&n.end(),n.handler=e.value),n.direction=Hl(e.modifiers))},beforeUnmount(t){const e=t.__qtouchswipe;e!==void 0&&(La(e,"main"),La(e,"temp"),zn.is.firefox===!0&&Ra(t,!1),e.styleCleanup?.(),delete t.__qtouchswipe)}});function Jg(){let t=Object.create(null);return{getCache:(e,n)=>t[e]===void 0?t[e]=typeof n=="function"?n():n:t[e],setCache(e,n){t[e]=n},hasCache(e){return Object.hasOwnProperty.call(t,e)},clearCache(e){e!==void 0?delete t[e]:t=Object.create(null)}}}const Ud={name:{required:!0},disable:Boolean},Ql={setup(t,{slots:e}){return()=>S("div",{class:"q-panel scroll",role:"tabpanel"},it(e.default))}},Yd={modelValue:{required:!0},animated:Boolean,infinite:Boolean,swipeable:Boolean,vertical:Boolean,transitionPrev:String,transitionNext:String,transitionDuration:{type:[String,Number],default:300},keepAlive:Boolean,keepAliveInclude:[String,Array,RegExp],keepAliveExclude:[String,Array,RegExp],keepAliveMax:Number},Zd=["update:modelValue","beforeTransition","transition"];function Xd(){const{props:t,emit:e,proxy:n}=Ye(),{getCache:i}=Jg(),{registerTimeout:s}=Ls();let o,a;const r=N(null),l={value:null};function u(z){const Y=t.vertical===!0?"up":"left";L((n.$q.lang.rtl===!0?-1:1)*(z.direction===Y?1:-1))}const c=g(()=>[[Gg,u,void 0,{horizontal:t.vertical!==!0,vertical:t.vertical,mouse:!0}]]),d=g(()=>t.transitionPrev||`slide-${t.vertical===!0?"down":"right"}`),f=g(()=>t.transitionNext||`slide-${t.vertical===!0?"up":"left"}`),h=g(()=>`--q-transition-duration: ${t.transitionDuration}ms`),m=g(()=>typeof t.modelValue=="string"||typeof t.modelValue=="number"?t.modelValue:String(t.modelValue)),p=g(()=>({include:t.keepAliveInclude,exclude:t.keepAliveExclude,max:t.keepAliveMax})),v=g(()=>t.keepAliveInclude!==void 0||t.keepAliveExclude!==void 0);fe(()=>t.modelValue,(z,Y)=>{const j=w(z)===!0?y(z):-1;a!==!0&&E(j===-1?0:j{e("transition",z,Y)},t.transitionDuration))});function b(){L(1)}function _(){L(-1)}function x(z){e("update:modelValue",z)}function w(z){return z!=null&&z!==""}function y(z){return o.findIndex(Y=>Y.props.name===z&&Y.props.disable!==""&&Y.props.disable!==!0)}function V(){return o.filter(z=>z.props.disable!==""&&z.props.disable!==!0)}function E(z){const Y=z!==0&&t.animated===!0&&l.value!==-1?"q-transition--"+(z===-1?d.value:f.value):null;r.value!==Y&&(r.value=Y)}function L(z,Y=l.value){let j=Y+z;for(;j!==-1&&j{a=!1});return}j+=z}t.infinite===!0&&o.length!==0&&Y!==-1&&Y!==o.length&&L(z,z===-1?o.length:-1)}function D(){const z=y(t.modelValue);return l.value!==z&&(l.value=z),!0}function T(){const z=w(t.modelValue)===!0&&D()&&o[l.value];return t.keepAlive===!0?[S(og,p.value,[S(v.value===!0?i(m.value,()=>({...Ql,name:m.value})):Ql,{key:m.value,style:h.value},()=>z)])]:[S("div",{class:"q-panel scroll",style:h.value,key:m.value,role:"tabpanel"},[z])]}function R(){if(o.length!==0)return t.animated===!0?[S(As,{name:r.value},T)]:T()}function I(z){return o=sg(it(z.default,[])).filter(Y=>Y.props!==null&&Y.props.slot===void 0&&w(Y.props.name)===!0),o.length}function H(){return o}return Object.assign(n,{next:b,previous:_,goTo:x}),{panelIndex:l,panelDirectives:c,updatePanelsList:I,updatePanelIndex:D,getPanelContent:R,getEnabledPanels:V,getPanels:H,isValidPanelName:w,keepAliveProps:p,needsUniqueKeepAliveWrapper:v,goToPanelByOffset:L,goToPanel:x,nextPanel:b,previousPanel:_}}const za=Be({name:"QTabPanel",props:Ud,setup(t,{slots:e}){return()=>S("div",{class:"q-tab-panel",role:"tabpanel"},it(e.default))}}),ev=Be({name:"QTabPanels",props:{...Yd,...mn},emits:Zd,setup(t,{slots:e}){const n=Ye(),i=gn(t,n.proxy.$q),{updatePanelsList:s,getPanelContent:o,panelDirectives:a}=Xd(),r=g(()=>"q-tab-panels q-panel-parent"+(i.value===!0?" q-tab-panels--dark q-dark":""));return()=>(s(e),ua("div",{class:r.value},o(),"pan",t.swipeable,()=>a.value))}}),tv=Be({name:"QPage",props:{padding:Boolean,styleFn:Function},setup(t,{slots:e}){const{proxy:{$q:n}}=Ye(),i=Lo(ag,Pn);if(i===Pn)return console.error("QPage needs to be a deep child of QLayout"),Pn;if(Lo(rg,Pn)===Pn)return console.error("QPage needs to be child of QPageContainer"),Pn;const o=g(()=>{const r=(i.header.space===!0?i.header.size:0)+(i.footer.space===!0?i.footer.size:0);if(typeof t.styleFn=="function"){const l=i.isContainer.value===!0?i.containerHeight.value:n.screen.height;return t.styleFn(r,l)}return{minHeight:i.isContainer.value===!0?i.containerHeight.value-r+"px":n.screen.height===0?r!==0?`calc(100vh - ${r}px)`:"100vh":n.screen.height-r+"px"}}),a=g(()=>`q-page${t.padding===!0?" q-layout-padding":""}`);return()=>S("main",{class:a.value,style:o.value},it(e.default))}}),Kd=Be({name:"QCarouselSlide",props:{...Ud,imgSrc:String},setup(t,{slots:e}){const n=g(()=>t.imgSrc?{backgroundImage:`url("${t.imgSrc}")`}:{});return()=>S("div",{class:"q-carousel__slide",style:n.value},it(e.default))}}),nv=Be({name:"QCarouselControl",props:{position:{type:String,default:"bottom-right",validator:t=>["top-right","top-left","bottom-right","bottom-left","top","right","bottom","left"].includes(t)},offset:{type:Array,default:()=>[18,18],validator:t=>t.length===2}},setup(t,{slots:e}){const n=g(()=>`q-carousel__control absolute absolute-${t.position}`),i=g(()=>({margin:`${t.offset[1]}px ${t.offset[0]}px`}));return()=>S("div",{class:n.value,style:i.value},it(e.default))}});let us=0;const Qd={fullscreen:Boolean,noRouteFullscreenExit:Boolean},Gd=["update:fullscreen","fullscreen"];function Jd(){const t=Ye(),{props:e,emit:n,proxy:i}=t;let s,o,a;const r=N(!1);lg(t)===!0&&fe(()=>i.$route.fullPath,()=>{e.noRouteFullscreenExit!==!0&&c()}),fe(()=>e.fullscreen,d=>{r.value!==d&&l()}),fe(r,d=>{n("update:fullscreen",d),n("fullscreen",d)});function l(){r.value===!0?c():u()}function u(){r.value!==!0&&(r.value=!0,a=i.$el.parentNode,a.replaceChild(o,i.$el),document.body.appendChild(i.$el),us++,us===1&&document.body.classList.add("q-body--fullscreen-mixin"),s={handler:c},Fl.add(s))}function c(){r.value===!0&&(s!==void 0&&(Fl.remove(s),s=void 0),a.replaceChild(i.$el,o),r.value=!1,us=Math.max(0,us-1),us===0&&(document.body.classList.remove("q-body--fullscreen-mixin"),i.$el.scrollIntoView!==void 0&&setTimeout(()=>{i.$el.scrollIntoView()})))}return Ur(()=>{o=document.createElement("span")}),hn(()=>{e.fullscreen===!0&&u()}),qt(c),Object.assign(i,{toggleFullscreen:l,setFullscreen:u,exitFullscreen:c}),{inFullscreen:r,toggleFullscreen:l}}const iv=["top","right","bottom","left"],sv=["regular","flat","outline","push","unelevated"],ef=Be({name:"QCarousel",props:{...mn,...Yd,...Qd,transitionPrev:{type:String,default:"fade"},transitionNext:{type:String,default:"fade"},height:String,padding:Boolean,controlColor:String,controlTextColor:String,controlType:{type:String,validator:t=>sv.includes(t),default:"flat"},autoplay:[Number,Boolean],arrows:Boolean,prevIcon:String,nextIcon:String,navigation:Boolean,navigationPosition:{type:String,validator:t=>iv.includes(t)},navigationIcon:String,navigationActiveIcon:String,thumbnails:Boolean},emits:[...Gd,...Zd],setup(t,{slots:e}){const{proxy:{$q:n}}=Ye(),i=gn(t,n);let s=null,o;const{updatePanelsList:a,getPanelContent:r,panelDirectives:l,goToPanel:u,previousPanel:c,nextPanel:d,getEnabledPanels:f,panelIndex:h}=Xd(),{inFullscreen:m}=Jd(),p=g(()=>m.value!==!0&&t.height!==void 0?{height:t.height}:{}),v=g(()=>t.vertical===!0?"vertical":"horizontal"),b=g(()=>t.navigationPosition||(t.vertical===!0?"right":"bottom")),_=g(()=>`q-carousel q-panel-parent q-carousel--with${t.padding===!0?"":"out"}-padding`+(m.value===!0?" fullscreen":"")+(i.value===!0?" q-carousel--dark q-dark":"")+(t.arrows===!0?` q-carousel--arrows-${v.value}`:"")+(t.navigation===!0?` q-carousel--navigation-${b.value}`:"")),x=g(()=>{const T=[t.prevIcon||n.iconSet.carousel[t.vertical===!0?"up":"left"],t.nextIcon||n.iconSet.carousel[t.vertical===!0?"down":"right"]];return t.vertical===!1&&n.lang.rtl===!0?T.reverse():T}),w=g(()=>t.navigationIcon||n.iconSet.carousel.navigationIcon),y=g(()=>t.navigationActiveIcon||w.value),V=g(()=>({color:t.controlColor,textColor:t.controlTextColor,round:!0,[t.controlType]:!0,dense:!0}));fe(()=>t.modelValue,()=>{t.autoplay&&E()}),fe(()=>t.autoplay,T=>{T?E():s!==null&&(clearTimeout(s),s=null)});function E(){const T=qs(t.autoplay)===!0?Math.abs(t.autoplay):5e3;s!==null&&clearTimeout(s),s=setTimeout(()=>{s=null,T>=0?d():c()},T)}hn(()=>{t.autoplay&&E()}),qt(()=>{s!==null&&clearTimeout(s)});function L(T,R){return S("div",{class:`q-carousel__control q-carousel__navigation no-wrap absolute flex q-carousel__navigation--${T} q-carousel__navigation--${b.value}`+(t.controlColor!==void 0?` text-${t.controlColor}`:"")},[S("div",{class:"q-carousel__navigation-inner flex flex-center no-wrap"},f().map(R))])}function D(){const T=[];if(t.navigation===!0){const R=e["navigation-icon"]!==void 0?e["navigation-icon"]:H=>S(ke,{key:"nav"+H.name,class:`q-carousel__navigation-icon q-carousel__navigation-icon--${H.active===!0?"":"in"}active`,...H.btnProps,onClick:H.onClick}),I=o-1;T.push(L("buttons",(H,z)=>{const Y=H.props.name,j=h.value===z;return R({index:z,maxIndex:I,name:Y,active:j,btnProps:{icon:j===!0?y.value:w.value,size:"sm",...V.value},onClick:()=>{u(Y)}})}))}else if(t.thumbnails===!0){const R=t.controlColor!==void 0?` text-${t.controlColor}`:"";T.push(L("thumbnails",I=>{const H=I.props;return S("img",{key:"tmb#"+H.name,class:`q-carousel__thumbnail q-carousel__thumbnail--${H.name===t.modelValue?"":"in"}active`+R,src:H.imgSrc||H["img-src"],onClick:()=>{u(H.name)}})}))}return t.arrows===!0&&h.value>=0&&((t.infinite===!0||h.value>0)&&T.push(S("div",{key:"prev",class:`q-carousel__control q-carousel__arrow q-carousel__prev-arrow q-carousel__prev-arrow--${v.value} absolute flex flex-center`},[S(ke,{icon:x.value[0],...V.value,onClick:c})])),(t.infinite===!0||h.value(o=a(e),S("div",{class:_.value,style:p.value},[ua("div",{class:"q-carousel__slides-container"},r(),"sl-cont",t.swipeable,()=>l.value)].concat(D())))}}),ov={class:"svg-container"},av=["viewBox"],rv={id:"layer1",style:{display:"inline"}},lv=["d"],uv={id:"layer2",style:{display:"inline"}},cv=["cx","cy","r"],dv=["transform","onClick"],fv=["id"],hv=["x","y","width","height"],mv=["id"],gv=["x","y","width","height","rx","ry"],vv=["x","y","width","height","rx","ry"],pv=["clip-path"],bv=["id","x","y"],yv=["id","values"],xv=["id","x","y"],wv=["transform"],_v=["r"],Sv=["r"],kv=["r","clip-path"],Cv=["href","x","y","height","width"],Mv=be({__name:"EnergyFlowChart",setup(t){Od($=>({"7061f1f7":s.value,"7c22ee07":r.value}));const e=Fe(),n=N({xMin:0,xMax:150,yMin:0,yMax:105,circleRadius:10,strokeWidth:.5,textSize:5,numRows:4,numColumns:3}),i=g(()=>`${n.value.xMin} ${n.value.yMin} ${n.value.xMax} ${n.value.yMax}`),s=g(()=>n.value.strokeWidth),o=g(()=>n.value.circleRadius),a=g(()=>n.value.circleRadius),r=g(()=>`${n.value.textSize}px`),l=$=>{let Z={...$};return Z.textValue&&(Z.textValue=Z.textValue.replace(/^-/,"")),Z.value&&(Z.value=Math.abs(Z.value)),Z.scaledValue&&(Z.scaledValue=Math.abs(Z.scaledValue)),Z},u=g(()=>e.getGridPower("object")),c=g(()=>Number(u.value.value)>0),d=g(()=>Number(u.value.value)<0),f=g(()=>e.batteryTotalPower("object")),h=g(()=>Number(e.batteryTotalPower("value"))<0),m=g(()=>Number(e.batteryTotalPower("value"))>0),p=g(()=>Number(e.batterySocTotal)/100),v=g(()=>e.getHomePower("object")),b=g(()=>Number(v.value.value)>0),_=g(()=>Number(v.value.value)<0),x=g(()=>e.getPvPower("object")),w=g(()=>{const $=Number(x.value.value);return Math.abs($)>=50}),y=g(()=>e.chargePointIds),V=g(()=>e.chargePointName(y.value[0])||"---"),E=g(()=>e.chargePointName(y.value[1])||"---"),L=g(()=>e.chargePointName(y.value[2])||"---"),D=g(()=>y.value.length>0?e.chargePointPower(y.value[0],"object")||{textValue:"Loading..."}:{textValue:"N/A"}),T=g(()=>y.value.length>0?e.chargePointPower(y.value[1],"object")||{textValue:"Loading..."}:{textValue:"N/A"}),R=g(()=>y.value.length>0?e.chargePointPower(y.value[2],"object")||{textValue:"Loading..."}:{textValue:"N/A"}),I=g(()=>Number(D.value.value)>0),H=g(()=>Number(D.value.value)<0),z=g(()=>Number(T.value.value)>0),Y=g(()=>Number(T.value.value)<0),j=g(()=>Number(R.value.value)>0),ee=g(()=>Number(R.value.value)<0),U=$=>{switch($){case"instant_charging":return{label:"Sofort",class:"danger"};case"pv_charging":return{label:"PV",class:"success"};case"scheduled_charging":return{label:"Zielladen",class:"primary"};case"time_charging":return{label:"Zeitladen",class:"warning"};case"eco_charging":return{label:"Eco",class:"secondary"};case"stop":return{label:"Stop",class:"dark"};default:return{label:"Stop",class:"dark"}}},re=g(()=>e.chargePointPlugState(y.value[0])),ce=g(()=>{const $=e.chargePointConnectedVehicleChargeMode(y.value[0]);return U($.value||"")}),O=g(()=>e.chargePointConnectedVehicleInfo(y.value[0]).value?.name||"---"),P=g(()=>e.chargePointConnectedVehicleSoc(y.value[0])),J=g(()=>e.chargePointPlugState(y.value[1])),ue=g(()=>{const $=e.chargePointConnectedVehicleChargeMode(y.value[1]);return U($.value||"")}),he=g(()=>e.chargePointConnectedVehicleInfo(y.value[1]).value?.name||"---"),B=g(()=>e.chargePointConnectedVehicleSoc(y.value[1])),te=g(()=>e.chargePointPlugState(y.value[2])),_e=g(()=>{const $=e.chargePointConnectedVehicleChargeMode(y.value[2]);return U($.value||"")}),G=g(()=>e.chargePointConnectedVehicleInfo(y.value[2]).value?.name||"---"),qe=g(()=>e.chargePointConnectedVehicleSoc(y.value[2])),Qe=g(()=>e.chargePointSumPower("object")),Nt=g(()=>Number(Qe.value.value)<0),ft=g(()=>Number(Qe.value.value)>0),gt=g(()=>{const $=[];return $.push({id:"grid",class:{base:"grid",valueLabel:d.value?"fill-success":c.value?"fill-danger":"",animated:c.value,animatedReverse:d.value},position:{row:0,column:0},label:["EVU",l(u.value).textValue],icon:"icons/owbGrid.svg"}),$.push({id:"home",class:{base:"home",valueLabel:"",animated:_.value,animatedReverse:b.value},position:{row:0,column:2},label:["Haus",l(v.value).textValue],icon:"icons/owbHouse.svg"}),e.getPvConfigured&&$.push({id:"pv",class:{base:"pv",valueLabel:"fill-success",animated:w.value,animatedReverse:!1},position:{row:1,column:0},label:["PV",l(x.value).textValue],icon:"icons/owbPV.svg"}),e.batteryConfigured&&$.push({id:"battery",class:{base:"battery",valueLabel:"",animated:h.value,animatedReverse:m.value},position:{row:1,column:2},label:["Speicher",l(f.value).textValue],soc:p.value,icon:"icons/owbBattery.svg"}),y.value.length>0&&(y.value.length<=3?($.push({id:"charge-point-1",class:{base:"charge-point",valueLabel:"",animated:H.value,animatedReverse:I.value},position:{row:2,column:y.value.length>1?0:1},label:[V.value,l(D.value).textValue],icon:"icons/owbChargePoint.svg"}),re.value&&$.push({id:"vehicle-1",class:{base:"vehicle",valueLabel:"fill-"+ce.value.class,animated:H.value,animatedReverse:I.value},position:{row:3,column:y.value.length>1?0:1},label:[O.value||"---",ce.value.label||"---"],soc:(P.value.value?.soc||0)/100,icon:"icons/owbVehicle.svg"}),y.value.length>1&&$.push({id:"charge-point-2",class:{base:"charge-point",valueLabel:"",animated:Y.value,animatedReverse:z.value},position:{row:2,column:y.value.length>2?1:2},label:[E.value,l(T.value).textValue],icon:"icons/owbChargePoint.svg"}),J.value&&$.push({id:"vehicle-2",class:{base:"vehicle",valueLabel:"fill-"+ue.value.class,animated:Y.value,animatedReverse:z.value},position:{row:3,column:y.value.length>2?1:2},label:[he.value||"---",ue.value.label||"---"],soc:(B.value.value?.soc||0)/100,icon:"icons/owbVehicle.svg"}),y.value.length>2&&$.push({id:"charge-point-3",class:{base:"charge-point",valueLabel:"",animated:ee.value,animatedReverse:j.value},position:{row:2,column:2},label:[L.value,l(R.value).textValue],icon:"icons/owbChargePoint.svg"}),te.value&&$.push({id:"vehicle-3",class:{base:"vehicle",valueLabel:"fill-"+_e.value.class,animated:ee.value,animatedReverse:j.value},position:{row:3,column:2},label:[G.value||"---",_e.value.label||"---"],soc:(qe.value.value?.soc||0)/100,icon:"icons/owbVehicle.svg"})):$.push({id:"charge-point-sum",class:{base:"charge-point",valueLabel:"",animated:Nt.value,animatedReverse:ft.value},position:{row:2,column:1},label:["Ladepunkte",l(Qe.value).textValue],icon:"icons/owbChargePoint.svg"})),$}),yt=g(()=>y.value?.length>0?y.value.length>3?3:4:3);fe(yt,$=>{n.value.numRows=$},{immediate:!0});const Je=$=>{const Z=n.value.yMin+n.value.strokeWidth+n.value.circleRadius,Oe=n.value.yMax-n.value.strokeWidth-n.value.circleRadius-Z;return $*(Oe/(n.value.numRows-1))+Z},wt=$=>{const Z=n.value.xMin+n.value.strokeWidth+Le.value/2,Oe=n.value.xMax-n.value.strokeWidth-Le.value/2-Z;return $*(Oe/(n.value.numColumns-1))+Z},Dt=$=>{const Z=wt($);return $<(n.value.numColumns-1)/2?Z+Le.value/2-n.value.circleRadius:$>(n.value.numColumns-1)/2?Z-Le.value/2+n.value.circleRadius:Z},Yt=$=>{const Z=document.getElementById($);if(Z==null||!(Z instanceof SVGGraphicsElement))return{x:0,y:0,width:0,height:0};const K=Z.getBBox();return{x:K.x,y:K.y,width:K.width,height:K.height}},Lt=$=>{const Z=document.querySelector(`#${$}`);Z&&Z.beginElement()},Le=g(()=>(n.value.xMax-n.value.xMin-n.value.strokeWidth-n.value.numColumns)/n.value.numColumns);return($,Z)=>(M(),Q("div",ov,[(M(),Q("svg",{viewBox:i.value,version:"1.1",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg"},[q("g",rv,[(M(!0),Q(De,null,Ke(gt.value,K=>(M(),Q("path",{key:K.id,class:Re([K.class.base,{animated:K.class.animated},{animatedReverse:K.class.animatedReverse}]),d:K.class.base!=="vehicle"?`M ${Dt(K.position.column)}, ${Je(K.position.row)} ${wt(1)}, ${Je(1)}`:`M ${Dt(K.position.column)}, ${Je(K.position.row)} ${Dt(K.position.column)}, ${Je(K.position.row-1)}`},null,10,lv))),128))]),q("g",uv,[q("circle",{id:"center",cx:wt(1),cy:Je(1),r:n.value.circleRadius/3},null,8,cv),(M(!0),Q(De,null,Ke(gt.value,K=>(M(),Q("g",{key:K.id,class:Re(K.class.base),transform:`translate(${wt(K.position.column)}, ${Je(K.position.row)})`,onClick:Oe=>Lt(`animate-label-${K.id}`)},[q("defs",null,[K.soc?(M(),Q("clipPath",{key:0,id:`clip-soc-${K.id}`},[q("rect",{x:-n.value.circleRadius-n.value.strokeWidth,y:(n.value.circleRadius+n.value.strokeWidth)*(1-2*K.soc),width:(n.value.circleRadius+n.value.strokeWidth)*2,height:(n.value.circleRadius+n.value.strokeWidth)*2*K.soc},null,8,hv)],8,fv)):le("",!0),q("clipPath",{id:`clip-label-${K.id}`},[q("rect",{x:-Le.value/2,y:-n.value.circleRadius,width:Le.value,height:n.value.circleRadius*2,rx:n.value.circleRadius,ry:n.value.circleRadius},null,8,gv)],8,mv)]),q("rect",{x:-Le.value/2,y:-n.value.circleRadius,width:Le.value,height:n.value.circleRadius*2,rx:n.value.circleRadius,ry:n.value.circleRadius},null,8,vv),q("text",{"clip-path":`url(#clip-label-${K.id})`},[q("tspan",{id:`label-${K.id}`,"text-anchor":"start",x:-Le.value/2+2*n.value.circleRadius+n.value.strokeWidth,y:-n.value.textSize/2},[Yt(`label-${K.id}`).width>Le.value-2*n.value.circleRadius-2*n.value.strokeWidth?(M(),Q("animate",{key:0,id:`animate-label-${K.id}`,xmlns:"http://www.w3.org/2000/svg",attributeName:"x",dur:"5s",values:"0; "+(-Yt(`label-${K.id}`).width+Le.value-2.5*n.value.circleRadius-2*n.value.strokeWidth)+"; 0;",repeatCount:"0",additive:"sum"},null,8,yv)):le("",!0),Ve(" "+se(K.label[0]),1)],8,bv),q("tspan",{id:`value-${K.id}`,class:Re(K.class.valueLabel),"text-anchor":"end",x:2*n.value.circleRadius+n.value.strokeWidth,y:n.value.textSize},se(K.label[1]),11,xv)],8,pv),q("g",{transform:`translate(${n.value.circleRadius-Le.value/2}, 0)`},[q("circle",{cx:"0",cy:"0",r:n.value.circleRadius,class:"background-circle"},null,8,_v),q("circle",{cx:"0",cy:"0",r:n.value.circleRadius,class:Re({soc:K.soc})},null,10,Sv),K.soc?(M(),Q("circle",{key:0,cx:"0",cy:"0",r:n.value.circleRadius,"clip-path":`url(#clip-soc-${K.id})`},null,8,kv)):le("",!0),q("image",{href:K.icon,x:-o.value/2,y:-a.value/2,height:a.value,width:o.value},null,8,Cv)],8,wv)],10,dv))),128))])],8,av))]))}}),Pv=mt(Mv,[["__scopeId","data-v-62f971c1"]]);/*! * @kurkle/color v0.3.4 * https://github.com/kurkle/color#readme * (c) 2024 Jukka Kurkela diff --git a/packages/modules/web_themes/koala/web/assets/MainLayout-BOJLco8c.js b/packages/modules/web_themes/koala/web/assets/MainLayout-Cd3W0PCb.js similarity index 99% rename from packages/modules/web_themes/koala/web/assets/MainLayout-BOJLco8c.js rename to packages/modules/web_themes/koala/web/assets/MainLayout-Cd3W0PCb.js index d02f28eaa5..f034482e33 100644 --- a/packages/modules/web_themes/koala/web/assets/MainLayout-BOJLco8c.js +++ b/packages/modules/web_themes/koala/web/assets/MainLayout-Cd3W0PCb.js @@ -1 +1 @@ -import{c as N,a as r,h as _,d as de,g as ee,i as Ce,e as E,l as fe,r as w,w as k,o as he,f as tt,j as Z,k as lt,m as $e,n as at,p as ot,q as nt,s as rt,t as Ae,u as xe,v as Me,x as De,y as it,z as ut,A as se,B as st,C as ct,D as vt,E as le,F as ae,G as h,H as f,Q as ce,I as D,J as oe,R as ve}from"./index-BBNHe89s.js";import{Q as ie,s as dt,g as ft,a as ht,b as mt,u as Ve,c as We,d as j,e as Se,T as re,f as Pe,h as bt,i as gt,j as yt,k as zt,l as St,m as wt,n as we,o as _t,p as qt,q as ne,r as V,t as _e,v as qe,w as Tt,x as Te,_ as kt}from"./_plugin-vue_export-helper-BHb7KgjF.js";const Ct=N({name:"QToolbarTitle",props:{shrink:Boolean},setup(e,{slots:C}){const d=r(()=>"q-toolbar__title ellipsis"+(e.shrink===!0?" col-shrink":""));return()=>_("div",{class:d.value},de(C.default))}}),$t=N({name:"QToolbar",props:{inset:Boolean},setup(e,{slots:C}){const d=r(()=>"q-toolbar row no-wrap items-center"+(e.inset===!0?" q-toolbar--inset":""));return()=>_("div",{class:d.value,role:"toolbar"},de(C.default))}}),Bt=N({name:"QHeader",props:{modelValue:{type:Boolean,default:!0},reveal:Boolean,revealOffset:{type:Number,default:250},bordered:Boolean,elevated:Boolean,heightHint:{type:[String,Number],default:50}},emits:["reveal","focusin"],setup(e,{slots:C,emit:d}){const{proxy:{$q:u}}=ee(),i=Ce(fe,E);if(i===E)return console.error("QHeader needs to be child of QLayout"),E;const c=w(parseInt(e.heightHint,10)),t=w(!0),a=r(()=>e.reveal===!0||i.view.value.indexOf("H")!==-1||u.platform.is.ios&&i.isContainer.value===!0),q=r(()=>{if(e.modelValue!==!0)return 0;if(a.value===!0)return t.value===!0?c.value:0;const v=c.value-i.scroll.value.position;return v>0?v:0}),$=r(()=>e.modelValue!==!0||a.value===!0&&t.value!==!0),o=r(()=>e.modelValue===!0&&$.value===!0&&e.reveal===!0),L=r(()=>"q-header q-layout__section--marginal "+(a.value===!0?"fixed":"absolute")+"-top"+(e.bordered===!0?" q-header--bordered":"")+($.value===!0?" q-header--hidden":"")+(e.modelValue!==!0?" q-layout--prevent-focus":"")),T=r(()=>{const v=i.rows.value.top,P={};return v[0]==="l"&&i.left.space===!0&&(P[u.lang.rtl===!0?"right":"left"]=`${i.left.size}px`),v[2]==="r"&&i.right.space===!0&&(P[u.lang.rtl===!0?"left":"right"]=`${i.right.size}px`),P});function S(v,P){i.update("header",v,P)}function z(v,P){v.value!==P&&(v.value=P)}function Q({height:v}){z(c,v),S("size",v)}function O(v){o.value===!0&&z(t,!0),d("focusin",v)}k(()=>e.modelValue,v=>{S("space",v),z(t,!0),i.animate()}),k(q,v=>{S("offset",v)}),k(()=>e.reveal,v=>{v===!1&&z(t,e.modelValue)}),k(t,v=>{i.animate(),d("reveal",v)}),k(i.scroll,v=>{e.reveal===!0&&z(t,v.direction==="up"||v.position<=e.revealOffset||v.position-v.inflectionPoint<100)});const b={};return i.instances.header=b,e.modelValue===!0&&S("size",c.value),S("space",e.modelValue),S("offset",q.value),he(()=>{i.instances.header===b&&(i.instances.header=void 0,S("size",0),S("offset",0),S("space",!1))}),()=>{const v=tt(C.default,[]);return e.elevated===!0&&v.push(_("div",{class:"q-layout__shadow absolute-full overflow-hidden no-pointer-events"})),v.push(_(ie,{debounce:0,onResize:Q})),_("header",{class:L.value,style:T.value,onFocusin:O},v)}}}),Ot=N({props:["store","barStyle","verticalBarStyle","horizontalBarStyle"],setup(e){return()=>[_("div",{class:e.store.scroll.vertical.barClass.value,style:[e.barStyle,e.verticalBarStyle],"aria-hidden":"true",onMousedown:e.store.onVerticalMousedown}),_("div",{class:e.store.scroll.horizontal.barClass.value,style:[e.barStyle,e.horizontalBarStyle],"aria-hidden":"true",onMousedown:e.store.onHorizontalMousedown}),Z(_("div",{ref:e.store.scroll.vertical.ref,class:e.store.scroll.vertical.thumbClass.value,style:e.store.scroll.vertical.style.value,"aria-hidden":"true"}),e.store.thumbVertDir),Z(_("div",{ref:e.store.scroll.horizontal.ref,class:e.store.scroll.horizontal.thumbClass.value,style:e.store.scroll.horizontal.style.value,"aria-hidden":"true"}),e.store.thumbHorizDir)]}}),{passive:Le}=lt,xt=["both","horizontal","vertical"],Re=N({name:"QScrollObserver",props:{axis:{type:String,validator:e=>xt.includes(e),default:"vertical"},debounce:[String,Number],scrollTarget:dt},emits:["scroll"],setup(e,{emit:C}){const d={position:{top:0,left:0},direction:"down",directionChanged:!1,delta:{top:0,left:0},inflectionPoint:{top:0,left:0}};let u=null,i,c;k(()=>e.scrollTarget,()=>{q(),a()});function t(){u?.();const L=Math.max(0,ht(i)),T=mt(i),S={top:L-d.position.top,left:T-d.position.left};if(e.axis==="vertical"&&S.top===0||e.axis==="horizontal"&&S.left===0)return;const z=Math.abs(S.top)>=Math.abs(S.left)?S.top<0?"up":"down":S.left<0?"left":"right";d.position={top:L,left:T},d.directionChanged=d.direction!==z,d.delta=S,d.directionChanged===!0&&(d.direction=z,d.inflectionPoint=d.position),C("scroll",{...d})}function a(){i=ft(c,e.scrollTarget),i.addEventListener("scroll",$,Le),$(!0)}function q(){i!==void 0&&(i.removeEventListener("scroll",$,Le),i=void 0)}function $(L){if(L===!0||e.debounce===0||e.debounce==="0")t();else if(u===null){const[T,S]=e.debounce?[setTimeout(t,e.debounce),clearTimeout]:[requestAnimationFrame(t),cancelAnimationFrame];u=()=>{S(T),u=null}}}const{proxy:o}=ee();return k(()=>o.$q.lang.rtl,t),$e(()=>{c=o.$el.parentNode,a()}),he(()=>{u?.(),q()}),Object.assign(o,{trigger:$,getPosition:()=>d}),at}}),pe=["vertical","horizontal"],ke={vertical:{offset:"offsetY",scroll:"scrollTop",dir:"down",dist:"y"},horizontal:{offset:"offsetX",scroll:"scrollLeft",dir:"right",dist:"x"}},He={prevent:!0,mouse:!0,mouseAllDir:!0},Qe=e=>e>=250?50:Math.ceil(e/5),Mt=N({name:"QScrollArea",props:{...Ve,thumbStyle:Object,verticalThumbStyle:Object,horizontalThumbStyle:Object,barStyle:[Array,String,Object],verticalBarStyle:[Array,String,Object],horizontalBarStyle:[Array,String,Object],verticalOffset:{type:Array,default:[0,0]},horizontalOffset:{type:Array,default:[0,0]},contentStyle:[Array,String,Object],contentActiveStyle:[Array,String,Object],delay:{type:[String,Number],default:1e3},visible:{type:Boolean,default:null},tabindex:[String,Number],onScroll:Function},setup(e,{slots:C,emit:d}){const u=w(!1),i=w(!1),c=w(!1),t={vertical:w(0),horizontal:w(0)},a={vertical:{ref:w(null),position:w(0),size:w(0)},horizontal:{ref:w(null),position:w(0),size:w(0)}},{proxy:q}=ee(),$=We(e,q.$q);let o=null,L;const T=w(null),S=r(()=>"q-scrollarea"+($.value===!0?" q-scrollarea--dark":""));Object.assign(t,{verticalInner:r(()=>t.vertical.value-e.verticalOffset[0]-e.verticalOffset[1]),horizontalInner:r(()=>t.horizontal.value-e.horizontalOffset[0]-e.horizontalOffset[1])}),a.vertical.percentage=r(()=>{const n=a.vertical.size.value-t.vertical.value;if(n<=0)return 0;const s=j(a.vertical.position.value/n,0,1);return Math.round(s*1e4)/1e4}),a.vertical.thumbHidden=r(()=>(e.visible===null?c.value:e.visible)!==!0&&u.value===!1&&i.value===!1||a.vertical.size.value<=t.vertical.value+1),a.vertical.thumbStart=r(()=>e.verticalOffset[0]+a.vertical.percentage.value*(t.verticalInner.value-a.vertical.thumbSize.value)),a.vertical.thumbSize=r(()=>Math.round(j(t.verticalInner.value*t.verticalInner.value/a.vertical.size.value,Qe(t.verticalInner.value),t.verticalInner.value))),a.vertical.style=r(()=>({...e.thumbStyle,...e.verticalThumbStyle,top:`${a.vertical.thumbStart.value}px`,height:`${a.vertical.thumbSize.value}px`,right:`${e.horizontalOffset[1]}px`})),a.vertical.thumbClass=r(()=>"q-scrollarea__thumb q-scrollarea__thumb--v absolute-right"+(a.vertical.thumbHidden.value===!0?" q-scrollarea__thumb--invisible":"")),a.vertical.barClass=r(()=>"q-scrollarea__bar q-scrollarea__bar--v absolute-right"+(a.vertical.thumbHidden.value===!0?" q-scrollarea__bar--invisible":"")),a.horizontal.percentage=r(()=>{const n=a.horizontal.size.value-t.horizontal.value;if(n<=0)return 0;const s=j(Math.abs(a.horizontal.position.value)/n,0,1);return Math.round(s*1e4)/1e4}),a.horizontal.thumbHidden=r(()=>(e.visible===null?c.value:e.visible)!==!0&&u.value===!1&&i.value===!1||a.horizontal.size.value<=t.horizontal.value+1),a.horizontal.thumbStart=r(()=>e.horizontalOffset[0]+a.horizontal.percentage.value*(t.horizontalInner.value-a.horizontal.thumbSize.value)),a.horizontal.thumbSize=r(()=>Math.round(j(t.horizontalInner.value*t.horizontalInner.value/a.horizontal.size.value,Qe(t.horizontalInner.value),t.horizontalInner.value))),a.horizontal.style=r(()=>({...e.thumbStyle,...e.horizontalThumbStyle,[q.$q.lang.rtl===!0?"right":"left"]:`${a.horizontal.thumbStart.value}px`,width:`${a.horizontal.thumbSize.value}px`,bottom:`${e.verticalOffset[1]}px`})),a.horizontal.thumbClass=r(()=>"q-scrollarea__thumb q-scrollarea__thumb--h absolute-bottom"+(a.horizontal.thumbHidden.value===!0?" q-scrollarea__thumb--invisible":"")),a.horizontal.barClass=r(()=>"q-scrollarea__bar q-scrollarea__bar--h absolute-bottom"+(a.horizontal.thumbHidden.value===!0?" q-scrollarea__bar--invisible":""));const z=r(()=>a.vertical.thumbHidden.value===!0&&a.horizontal.thumbHidden.value===!0?e.contentStyle:e.contentActiveStyle);function Q(){const n={};return pe.forEach(s=>{const y=a[s];Object.assign(n,{[s+"Position"]:y.position.value,[s+"Percentage"]:y.percentage.value,[s+"Size"]:y.size.value,[s+"ContainerSize"]:t[s].value,[s+"ContainerInnerSize"]:t[s+"Inner"].value})}),n}const O=ot(()=>{const n=Q();n.ref=q,d("scroll",n)},0);function b(n,s,y){if(pe.includes(n)===!1){console.error("[QScrollArea]: wrong first param of setScrollPosition (vertical/horizontal)");return}(n==="vertical"?Pe:Se)(T.value,s,y)}function v({height:n,width:s}){let y=!1;t.vertical.value!==n&&(t.vertical.value=n,y=!0),t.horizontal.value!==s&&(t.horizontal.value=s,y=!0),y===!0&&M()}function P({position:n}){let s=!1;a.vertical.position.value!==n.top&&(a.vertical.position.value=n.top,s=!0),a.horizontal.position.value!==n.left&&(a.horizontal.position.value=n.left,s=!0),s===!0&&M()}function g({height:n,width:s}){a.horizontal.size.value!==s&&(a.horizontal.size.value=s,M()),a.vertical.size.value!==n&&(a.vertical.size.value=n,M())}function B(n,s){const y=a[s];if(n.isFirst===!0){if(y.thumbHidden.value===!0)return;L=y.position.value,i.value=!0}else if(i.value!==!0)return;n.isFinal===!0&&(i.value=!1);const W=ke[s],F=(y.size.value-t[s].value)/(t[s+"Inner"].value-y.thumbSize.value),R=n.distance[W.dist],te=L+(n.direction===W.dir?1:-1)*R*F;U(te,s)}function x(n,s){const y=a[s];if(y.thumbHidden.value!==!0){const W=s==="vertical"?e.verticalOffset[0]:e.horizontalOffset[0],F=n[ke[s].offset]-W,R=y.thumbStart.value-W;if(FR+y.thumbSize.value){const te=F-y.thumbSize.value/2,me=j(te/(t[s+"Inner"].value-y.thumbSize.value),0,1);U(me*Math.max(0,y.size.value-t[s].value),s)}y.ref.value!==null&&y.ref.value.dispatchEvent(new MouseEvent(n.type,n))}}function M(){u.value=!0,o!==null&&clearTimeout(o),o=setTimeout(()=>{o=null,u.value=!1},e.delay),e.onScroll!==void 0&&O()}function U(n,s){T.value[ke[s].scroll]=n}let p=null;function A(){p!==null&&clearTimeout(p),p=setTimeout(()=>{p=null,c.value=!0},q.$q.platform.is.ios?50:0)}function G(){p!==null&&(clearTimeout(p),p=null),c.value=!1}let Y=null;k(()=>q.$q.lang.rtl,n=>{T.value!==null&&Se(T.value,Math.abs(a.horizontal.position.value)*(n===!0?-1:1))}),nt(()=>{Y={top:a.vertical.position.value,left:a.horizontal.position.value}}),rt(()=>{if(Y===null)return;const n=T.value;n!==null&&(Se(n,Y.left),Pe(n,Y.top))}),he(O.cancel),Object.assign(q,{getScrollTarget:()=>T.value,getScroll:Q,getScrollPosition:()=>({top:a.vertical.position.value,left:a.horizontal.position.value}),getScrollPercentage:()=>({top:a.vertical.percentage.value,left:a.horizontal.percentage.value}),setScrollPosition:b,setScrollPercentage(n,s,y){b(n,s*(a[n].size.value-t[n].value)*(n==="horizontal"&&q.$q.lang.rtl===!0?-1:1),y)}});const K={scroll:a,thumbVertDir:[[re,n=>{B(n,"vertical")},void 0,{vertical:!0,...He}]],thumbHorizDir:[[re,n=>{B(n,"horizontal")},void 0,{horizontal:!0,...He}]],onVerticalMousedown(n){x(n,"vertical")},onHorizontalMousedown(n){x(n,"horizontal")}};return()=>_("div",{class:S.value,onMouseenter:A,onMouseleave:G},[_("div",{ref:T,class:"q-scrollarea__container scroll relative-position fit hide-scrollbar",tabindex:e.tabindex!==void 0?e.tabindex:void 0},[_("div",{class:"q-scrollarea__content absolute",style:z.value},Ae(C.default,[_(ie,{debounce:0,onResize:g})])),_(Re,{axis:"both",onScroll:P})]),_(ie,{debounce:0,onResize:v}),_(Ot,{store:K,barStyle:e.barStyle,verticalBarStyle:e.verticalBarStyle,horizontalBarStyle:e.horizontalBarStyle})])}}),Ie=150,Pt=N({name:"QDrawer",inheritAttrs:!1,props:{...gt,...Ve,side:{type:String,default:"left",validator:e=>["left","right"].includes(e)},width:{type:Number,default:300},mini:Boolean,miniToOverlay:Boolean,miniWidth:{type:Number,default:57},noMiniAnimation:Boolean,breakpoint:{type:Number,default:1023},showIfAbove:Boolean,behavior:{type:String,validator:e=>["default","desktop","mobile"].includes(e),default:"default"},bordered:Boolean,elevated:Boolean,overlay:Boolean,persistent:Boolean,noSwipeOpen:Boolean,noSwipeClose:Boolean,noSwipeBackdrop:Boolean},emits:[...bt,"onLayout","miniState"],setup(e,{slots:C,emit:d,attrs:u}){const i=ee(),{proxy:{$q:c}}=i,t=We(e,c),{preventBodyScroll:a}=wt(),{registerTimeout:q,removeTimeout:$}=yt(),o=Ce(fe,E);if(o===E)return console.error("QDrawer needs to be child of QLayout"),E;let L,T=null,S;const z=w(e.behavior==="mobile"||e.behavior!=="desktop"&&o.totalWidth.value<=e.breakpoint),Q=r(()=>e.mini===!0&&z.value!==!0),O=r(()=>Q.value===!0?e.miniWidth:e.width),b=w(e.showIfAbove===!0&&z.value===!1?!0:e.modelValue===!0),v=r(()=>e.persistent!==!0&&(z.value===!0||te.value===!0));function P(l,m){if(M(),l!==!1&&o.animate(),I(0),z.value===!0){const H=o.instances[y.value];H?.belowBreakpoint===!0&&H.hide(!1),X(1),o.isContainer.value!==!0&&a(!0)}else X(0),l!==!1&&ge(!1);q(()=>{l!==!1&&ge(!0),m!==!0&&d("show",l)},Ie)}function g(l,m){U(),l!==!1&&o.animate(),X(0),I(G.value*O.value),ye(),m!==!0?q(()=>{d("hide",l)},Ie):$()}const{show:B,hide:x}=zt({showing:b,hideOnRouteChange:v,handleShow:P,handleHide:g}),{addToHistory:M,removeFromHistory:U}=St(b,x,v),p={belowBreakpoint:z,hide:x},A=r(()=>e.side==="right"),G=r(()=>(c.lang.rtl===!0?-1:1)*(A.value===!0?1:-1)),Y=w(0),K=w(!1),n=w(!1),s=w(O.value*G.value),y=r(()=>A.value===!0?"left":"right"),W=r(()=>b.value===!0&&z.value===!1&&e.overlay===!1?e.miniToOverlay===!0?e.miniWidth:O.value:0),F=r(()=>e.overlay===!0||e.miniToOverlay===!0||o.view.value.indexOf(A.value?"R":"L")!==-1||c.platform.is.ios===!0&&o.isContainer.value===!0),R=r(()=>e.overlay===!1&&b.value===!0&&z.value===!1),te=r(()=>e.overlay===!0&&b.value===!0&&z.value===!1),me=r(()=>"fullscreen q-drawer__backdrop"+(b.value===!1&&K.value===!1?" hidden":"")),Fe=r(()=>({backgroundColor:`rgba(0,0,0,${Y.value*.4})`})),Be=r(()=>A.value===!0?o.rows.value.top[2]==="r":o.rows.value.top[0]==="l"),je=r(()=>A.value===!0?o.rows.value.bottom[2]==="r":o.rows.value.bottom[0]==="l"),Ee=r(()=>{const l={};return o.header.space===!0&&Be.value===!1&&(F.value===!0?l.top=`${o.header.offset}px`:o.header.space===!0&&(l.top=`${o.header.size}px`)),o.footer.space===!0&&je.value===!1&&(F.value===!0?l.bottom=`${o.footer.offset}px`:o.footer.space===!0&&(l.bottom=`${o.footer.size}px`)),l}),Ne=r(()=>{const l={width:`${O.value}px`,transform:`translateX(${s.value}px)`};return z.value===!0?l:Object.assign(l,Ee.value)}),Ue=r(()=>"q-drawer__content fit "+(o.isContainer.value!==!0?"scroll":"overflow-auto")),Ge=r(()=>`q-drawer q-drawer--${e.side}`+(n.value===!0?" q-drawer--mini-animate":"")+(e.bordered===!0?" q-drawer--bordered":"")+(t.value===!0?" q-drawer--dark q-dark":"")+(K.value===!0?" no-transition":b.value===!0?"":" q-layout--prevent-focus")+(z.value===!0?" fixed q-drawer--on-top q-drawer--mobile q-drawer--top-padding":` q-drawer--${Q.value===!0?"mini":"standard"}`+(F.value===!0||R.value!==!0?" fixed":"")+(e.overlay===!0||e.miniToOverlay===!0?" q-drawer--on-top":"")+(Be.value===!0?" q-drawer--top-padding":""))),Ke=r(()=>{const l=c.lang.rtl===!0?e.side:y.value;return[[re,Ze,void 0,{[l]:!0,mouse:!0}]]}),Xe=r(()=>{const l=c.lang.rtl===!0?y.value:e.side;return[[re,Oe,void 0,{[l]:!0,mouse:!0}]]}),Je=r(()=>{const l=c.lang.rtl===!0?y.value:e.side;return[[re,Oe,void 0,{[l]:!0,mouse:!0,mouseAllDir:!0}]]});function be(){et(z,e.behavior==="mobile"||e.behavior!=="desktop"&&o.totalWidth.value<=e.breakpoint)}k(z,l=>{l===!0?(L=b.value,b.value===!0&&x(!1)):e.overlay===!1&&e.behavior!=="mobile"&&L!==!1&&(b.value===!0?(I(0),X(0),ye()):B(!1))}),k(()=>e.side,(l,m)=>{o.instances[m]===p&&(o.instances[m]=void 0,o[m].space=!1,o[m].offset=0),o.instances[l]=p,o[l].size=O.value,o[l].space=R.value,o[l].offset=W.value}),k(o.totalWidth,()=>{(o.isContainer.value===!0||document.qScrollPrevented!==!0)&&be()}),k(()=>e.behavior+e.breakpoint,be),k(o.isContainer,l=>{b.value===!0&&a(l!==!0),l===!0&&be()}),k(o.scrollbarWidth,()=>{I(b.value===!0?0:void 0)}),k(W,l=>{J("offset",l)}),k(R,l=>{d("onLayout",l),J("space",l)}),k(A,()=>{I()}),k(O,l=>{I(),ze(e.miniToOverlay,l)}),k(()=>e.miniToOverlay,l=>{ze(l,O.value)}),k(()=>c.lang.rtl,()=>{I()}),k(()=>e.mini,()=>{e.noMiniAnimation||e.modelValue===!0&&(Ye(),o.animate())}),k(Q,l=>{d("miniState",l)});function I(l){l===void 0?xe(()=>{l=b.value===!0?0:O.value,I(G.value*l)}):(o.isContainer.value===!0&&A.value===!0&&(z.value===!0||Math.abs(l)===O.value)&&(l+=G.value*o.scrollbarWidth.value),s.value=l)}function X(l){Y.value=l}function ge(l){const m=l===!0?"remove":o.isContainer.value!==!0?"add":"";m!==""&&document.body.classList[m]("q-body--drawer-toggle")}function Ye(){T!==null&&clearTimeout(T),i.proxy&&i.proxy.$el&&i.proxy.$el.classList.add("q-drawer--mini-animate"),n.value=!0,T=setTimeout(()=>{T=null,n.value=!1,i?.proxy?.$el?.classList.remove("q-drawer--mini-animate")},150)}function Ze(l){if(b.value!==!1)return;const m=O.value,H=j(l.distance.x,0,m);if(l.isFinal===!0){H>=Math.min(75,m)===!0?B():(o.animate(),X(0),I(G.value*m)),K.value=!1;return}I((c.lang.rtl===!0?A.value!==!0:A.value)?Math.max(m-H,0):Math.min(0,H-m)),X(j(H/m,0,1)),l.isFirst===!0&&(K.value=!0)}function Oe(l){if(b.value!==!0)return;const m=O.value,H=l.direction===e.side,ue=(c.lang.rtl===!0?H!==!0:H)?j(l.distance.x,0,m):0;if(l.isFinal===!0){Math.abs(ue){d("onLayout",R.value),d("miniState",Q.value),L=e.showIfAbove===!0;const l=()=>{(b.value===!0?P:g)(!1,!0)};if(o.totalWidth.value!==0){xe(l);return}S=k(o.totalWidth,()=>{S(),S=void 0,b.value===!1&&e.showIfAbove===!0&&z.value===!1?B(!1):l()})}),he(()=>{S?.(),T!==null&&(clearTimeout(T),T=null),b.value===!0&&ye(),o.instances[e.side]===p&&(o.instances[e.side]=void 0,J("size",0),J("offset",0),J("space",!1))}),()=>{const l=[];z.value===!0&&(e.noSwipeOpen===!1&&l.push(Z(_("div",{key:"open",class:`q-drawer__opener fixed-${e.side}`,"aria-hidden":"true"}),Ke.value)),l.push(Me("div",{ref:"backdrop",class:me.value,style:Fe.value,"aria-hidden":"true",onClick:x},void 0,"backdrop",e.noSwipeBackdrop!==!0&&b.value===!0,()=>Je.value)));const m=Q.value===!0&&C.mini!==void 0,H=[_("div",{...u,key:""+m,class:[Ue.value,u.class]},m===!0?C.mini():de(C.default))];return e.elevated===!0&&b.value===!0&&H.push(_("div",{class:"q-layout__shadow absolute-full overflow-hidden no-pointer-events"})),l.push(Me("aside",{ref:"content",class:Ge.value,style:Ne.value},H,"contentclose",e.noSwipeClose!==!0&&z.value===!0,()=>Xe.value)),_("div",{class:"q-drawer-container"},l)}}}),Lt=N({name:"QPageContainer",setup(e,{slots:C}){const{proxy:{$q:d}}=ee(),u=Ce(fe,E);if(u===E)return console.error("QPageContainer needs to be child of QLayout"),E;De(it,!0);const i=r(()=>{const c={};return u.header.space===!0&&(c.paddingTop=`${u.header.size}px`),u.right.space===!0&&(c[`padding${d.lang.rtl===!0?"Left":"Right"}`]=`${u.right.size}px`),u.footer.space===!0&&(c.paddingBottom=`${u.footer.size}px`),u.left.space===!0&&(c[`padding${d.lang.rtl===!0?"Right":"Left"}`]=`${u.left.size}px`),c});return()=>_("div",{class:"q-page-container",style:i.value},de(C.default))}}),pt=N({name:"QLayout",props:{container:Boolean,view:{type:String,default:"hhh lpr fff",validator:e=>/^(h|l)h(h|r) lpr (f|l)f(f|r)$/.test(e.toLowerCase())},onScroll:Function,onScrollHeight:Function,onResize:Function},setup(e,{slots:C,emit:d}){const{proxy:{$q:u}}=ee(),i=w(null),c=w(u.screen.height),t=w(e.container===!0?0:u.screen.width),a=w({position:0,direction:"down",inflectionPoint:0}),q=w(0),$=w(ut.value===!0?0:we()),o=r(()=>"q-layout q-layout--"+(e.container===!0?"containerized":"standard")),L=r(()=>e.container===!1?{minHeight:u.screen.height+"px"}:null),T=r(()=>$.value!==0?{[u.lang.rtl===!0?"left":"right"]:`${$.value}px`}:null),S=r(()=>$.value!==0?{[u.lang.rtl===!0?"right":"left"]:0,[u.lang.rtl===!0?"left":"right"]:`-${$.value}px`,width:`calc(100% + ${$.value}px)`}:null);function z(g){if(e.container===!0||document.qScrollPrevented!==!0){const B={position:g.position.top,direction:g.direction,directionChanged:g.directionChanged,inflectionPoint:g.inflectionPoint.top,delta:g.delta.top};a.value=B,e.onScroll!==void 0&&d("scroll",B)}}function Q(g){const{height:B,width:x}=g;let M=!1;c.value!==B&&(M=!0,c.value=B,e.onScrollHeight!==void 0&&d("scrollHeight",B),b()),t.value!==x&&(M=!0,t.value=x),M===!0&&e.onResize!==void 0&&d("resize",g)}function O({height:g}){q.value!==g&&(q.value=g,b())}function b(){if(e.container===!0){const g=c.value>q.value?we():0;$.value!==g&&($.value=g)}}let v=null;const P={instances:{},view:r(()=>e.view),isContainer:r(()=>e.container),rootRef:i,height:c,containerHeight:q,scrollbarWidth:$,totalWidth:r(()=>t.value+$.value),rows:r(()=>{const g=e.view.toLowerCase().split(" ");return{top:g[0].split(""),middle:g[1].split(""),bottom:g[2].split("")}}),header:se({size:0,offset:0,space:!1}),right:se({size:300,offset:0,space:!1}),footer:se({size:0,offset:0,space:!1}),left:se({size:300,offset:0,space:!1}),scroll:a,animate(){v!==null?clearTimeout(v):document.body.classList.add("q-body--layout-animate"),v=setTimeout(()=>{v=null,document.body.classList.remove("q-body--layout-animate")},155)},update(g,B,x){P[g][B]=x}};if(De(fe,P),we()>0){let g=function(){M=null,U.classList.remove("hide-scrollbar")},B=function(){if(M===null){if(U.scrollHeight>u.screen.height)return;U.classList.add("hide-scrollbar")}else clearTimeout(M);M=setTimeout(g,300)},x=function(p){M!==null&&p==="remove"&&(clearTimeout(M),g()),window[`${p}EventListener`]("resize",B)},M=null;const U=document.body;k(()=>e.container!==!0?"add":"remove",x),e.container!==!0&&x("add"),st(()=>{x("remove")})}return()=>{const g=Ae(C.default,[_(Re,{onScroll:z}),_(ie,{onResize:Q})]),B=_("div",{class:o.value,style:L.value,ref:e.container===!0?void 0:i,tabindex:-1},g);return e.container===!0?_("div",{class:"q-layout-container overflow-hidden",ref:i},[_(ie,{onResize:O}),_("div",{class:"absolute-full",style:T.value},[_("div",{class:"scroll",style:S.value},[B])])]):B}}}),Ht=ct({name:"MainLayout",__name:"MainLayout",setup(e){const C=_t(),d=w(!1),u=w("auto"),i=c=>{u.value=c,c==="auto"?(localStorage.removeItem("theme"),C.dark.set("auto")):(C.dark.set(c==="dark"),localStorage.setItem("theme",c))};return $e(()=>{const c=localStorage.getItem("theme");c?(u.value=c,C.dark.set(c==="dark")):(u.value="auto",C.dark.set("auto"))}),(c,t)=>{const a=vt("router-view");return ae(),le(pt,{view:"hHh lpr lFf"},{default:h(()=>[f(Bt,{elevated:""},{default:h(()=>[f($t,null,{default:h(()=>[f(ce,{dense:"",flat:"",round:"",icon:"menu",onClick:t[0]||(t[0]=q=>d.value=!d.value)}),f(Ct,null,{default:h(()=>t[5]||(t[5]=[D("openWB",-1)])),_:1,__:[5]})]),_:1})]),_:1}),f(Pt,{modelValue:d.value,"onUpdate:modelValue":t[4]||(t[4]=q=>d.value=q),side:"left",overlay:"",elevated:"",breakpoint:500},{default:h(()=>[f(Mt,{class:"fit","horizontal-thumb-style":{opacity:"0"}},{default:h(()=>[f(qt,{padding:""},{default:h(()=>[Z((ae(),le(ne,{clickable:"",href:"/openWB/web/settings/#/Status"},{default:h(()=>[f(V,{avatar:""},{default:h(()=>[f(oe,{name:"dashboard"})]),_:1}),f(V,null,{default:h(()=>t[6]||(t[6]=[D(" Status ",-1)])),_:1,__:[6]})]),_:1})),[[ve]]),f(_e),f(qe,{header:""},{default:h(()=>t[7]||(t[7]=[D("Auswertungen",-1)])),_:1,__:[7]}),Z((ae(),le(ne,{clickable:"",href:"/openWB/web/settings/#/Logging/ChargeLog"},{default:h(()=>[f(V,{avatar:""},{default:h(()=>[f(oe,{name:"table_chart"})]),_:1}),f(V,null,{default:h(()=>t[8]||(t[8]=[D(" Ladeprotokoll ",-1)])),_:1,__:[8]})]),_:1})),[[ve]]),Z((ae(),le(ne,{clickable:"",href:"/openWB/web/settings/#/Logging/Chart"},{default:h(()=>[f(V,{avatar:""},{default:h(()=>[f(oe,{name:"area_chart"})]),_:1}),f(V,null,{default:h(()=>t[9]||(t[9]=[D(" Diagramme ",-1)])),_:1,__:[9]})]),_:1})),[[ve]]),f(_e),Z((ae(),le(ne,{clickable:"",href:"/openWB/web/settings/"},{default:h(()=>[f(V,{avatar:""},{default:h(()=>[f(oe,{name:"settings"})]),_:1}),f(V,null,{default:h(()=>t[10]||(t[10]=[D(" Einstellungen ",-1)])),_:1,__:[10]})]),_:1})),[[ve]]),f(_e),f(qe,{header:""},{default:h(()=>t[11]||(t[11]=[D("Anzeigeeinstellungen",-1)])),_:1,__:[11]}),f(ne,null,{default:h(()=>[f(V,{avatar:""},{default:h(()=>[f(oe,{name:"light_mode"})]),_:1}),f(V,null,{default:h(()=>[f(qe,null,{default:h(()=>t[12]||(t[12]=[D("Darstellungsmodus",-1)])),_:1,__:[12]})]),_:1}),f(V,{side:""},{default:h(()=>[f(Tt,{flat:""},{default:h(()=>[f(ce,{flat:"",round:"",color:u.value==="light"?"primary":"",icon:"light_mode",onClick:t[1]||(t[1]=q=>i("light")),size:"sm",disable:u.value==="light","aria-label":"Light Mode"},{default:h(()=>[f(Te,null,{default:h(()=>t[13]||(t[13]=[D("Hell",-1)])),_:1,__:[13]})]),_:1},8,["color","disable"]),f(ce,{flat:"",round:"",color:u.value==="dark"?"primary":"",icon:"dark_mode",onClick:t[2]||(t[2]=q=>i("dark")),size:"sm",disable:u.value==="dark","aria-label":"Dark Mode"},{default:h(()=>[f(Te,null,{default:h(()=>t[14]||(t[14]=[D("Dunkel",-1)])),_:1,__:[14]})]),_:1},8,["color","disable"]),f(ce,{flat:"",round:"",color:u.value==="auto"?"primary":"",icon:"devices",onClick:t[3]||(t[3]=q=>i("auto")),size:"sm",disable:u.value==="auto","aria-label":"System Mode"},{default:h(()=>[f(Te,null,{default:h(()=>t[15]||(t[15]=[D("Systemeinstellung",-1)])),_:1,__:[15]})]),_:1},8,["color","disable"])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"]),f(Lt,{class:"column flex centered-container"},{default:h(()=>[f(a)]),_:1})]),_:1})}}}),Dt=kt(Ht,[["__scopeId","data-v-562c3b02"]]);export{Dt as default}; +import{c as N,a as r,h as _,d as de,g as ee,i as Ce,e as E,l as fe,r as w,w as k,o as he,f as tt,j as Z,k as lt,m as $e,n as at,p as ot,q as nt,s as rt,t as Ae,u as xe,v as Me,x as De,y as it,z as ut,A as se,B as st,C as ct,D as vt,E as le,F as ae,G as h,H as f,Q as ce,I as D,J as oe,R as ve}from"./index-CmDneGoC.js";import{Q as ie,s as dt,g as ft,a as ht,b as mt,u as Ve,c as We,d as j,e as Se,T as re,f as Pe,h as bt,i as gt,j as yt,k as zt,l as St,m as wt,n as we,o as _t,p as qt,q as ne,r as V,t as _e,v as qe,w as Tt,x as Te,_ as kt}from"./_plugin-vue_export-helper-BTeormdj.js";const Ct=N({name:"QToolbarTitle",props:{shrink:Boolean},setup(e,{slots:C}){const d=r(()=>"q-toolbar__title ellipsis"+(e.shrink===!0?" col-shrink":""));return()=>_("div",{class:d.value},de(C.default))}}),$t=N({name:"QToolbar",props:{inset:Boolean},setup(e,{slots:C}){const d=r(()=>"q-toolbar row no-wrap items-center"+(e.inset===!0?" q-toolbar--inset":""));return()=>_("div",{class:d.value,role:"toolbar"},de(C.default))}}),Bt=N({name:"QHeader",props:{modelValue:{type:Boolean,default:!0},reveal:Boolean,revealOffset:{type:Number,default:250},bordered:Boolean,elevated:Boolean,heightHint:{type:[String,Number],default:50}},emits:["reveal","focusin"],setup(e,{slots:C,emit:d}){const{proxy:{$q:u}}=ee(),i=Ce(fe,E);if(i===E)return console.error("QHeader needs to be child of QLayout"),E;const c=w(parseInt(e.heightHint,10)),t=w(!0),a=r(()=>e.reveal===!0||i.view.value.indexOf("H")!==-1||u.platform.is.ios&&i.isContainer.value===!0),q=r(()=>{if(e.modelValue!==!0)return 0;if(a.value===!0)return t.value===!0?c.value:0;const v=c.value-i.scroll.value.position;return v>0?v:0}),$=r(()=>e.modelValue!==!0||a.value===!0&&t.value!==!0),o=r(()=>e.modelValue===!0&&$.value===!0&&e.reveal===!0),L=r(()=>"q-header q-layout__section--marginal "+(a.value===!0?"fixed":"absolute")+"-top"+(e.bordered===!0?" q-header--bordered":"")+($.value===!0?" q-header--hidden":"")+(e.modelValue!==!0?" q-layout--prevent-focus":"")),T=r(()=>{const v=i.rows.value.top,P={};return v[0]==="l"&&i.left.space===!0&&(P[u.lang.rtl===!0?"right":"left"]=`${i.left.size}px`),v[2]==="r"&&i.right.space===!0&&(P[u.lang.rtl===!0?"left":"right"]=`${i.right.size}px`),P});function S(v,P){i.update("header",v,P)}function z(v,P){v.value!==P&&(v.value=P)}function Q({height:v}){z(c,v),S("size",v)}function O(v){o.value===!0&&z(t,!0),d("focusin",v)}k(()=>e.modelValue,v=>{S("space",v),z(t,!0),i.animate()}),k(q,v=>{S("offset",v)}),k(()=>e.reveal,v=>{v===!1&&z(t,e.modelValue)}),k(t,v=>{i.animate(),d("reveal",v)}),k(i.scroll,v=>{e.reveal===!0&&z(t,v.direction==="up"||v.position<=e.revealOffset||v.position-v.inflectionPoint<100)});const b={};return i.instances.header=b,e.modelValue===!0&&S("size",c.value),S("space",e.modelValue),S("offset",q.value),he(()=>{i.instances.header===b&&(i.instances.header=void 0,S("size",0),S("offset",0),S("space",!1))}),()=>{const v=tt(C.default,[]);return e.elevated===!0&&v.push(_("div",{class:"q-layout__shadow absolute-full overflow-hidden no-pointer-events"})),v.push(_(ie,{debounce:0,onResize:Q})),_("header",{class:L.value,style:T.value,onFocusin:O},v)}}}),Ot=N({props:["store","barStyle","verticalBarStyle","horizontalBarStyle"],setup(e){return()=>[_("div",{class:e.store.scroll.vertical.barClass.value,style:[e.barStyle,e.verticalBarStyle],"aria-hidden":"true",onMousedown:e.store.onVerticalMousedown}),_("div",{class:e.store.scroll.horizontal.barClass.value,style:[e.barStyle,e.horizontalBarStyle],"aria-hidden":"true",onMousedown:e.store.onHorizontalMousedown}),Z(_("div",{ref:e.store.scroll.vertical.ref,class:e.store.scroll.vertical.thumbClass.value,style:e.store.scroll.vertical.style.value,"aria-hidden":"true"}),e.store.thumbVertDir),Z(_("div",{ref:e.store.scroll.horizontal.ref,class:e.store.scroll.horizontal.thumbClass.value,style:e.store.scroll.horizontal.style.value,"aria-hidden":"true"}),e.store.thumbHorizDir)]}}),{passive:Le}=lt,xt=["both","horizontal","vertical"],Re=N({name:"QScrollObserver",props:{axis:{type:String,validator:e=>xt.includes(e),default:"vertical"},debounce:[String,Number],scrollTarget:dt},emits:["scroll"],setup(e,{emit:C}){const d={position:{top:0,left:0},direction:"down",directionChanged:!1,delta:{top:0,left:0},inflectionPoint:{top:0,left:0}};let u=null,i,c;k(()=>e.scrollTarget,()=>{q(),a()});function t(){u?.();const L=Math.max(0,ht(i)),T=mt(i),S={top:L-d.position.top,left:T-d.position.left};if(e.axis==="vertical"&&S.top===0||e.axis==="horizontal"&&S.left===0)return;const z=Math.abs(S.top)>=Math.abs(S.left)?S.top<0?"up":"down":S.left<0?"left":"right";d.position={top:L,left:T},d.directionChanged=d.direction!==z,d.delta=S,d.directionChanged===!0&&(d.direction=z,d.inflectionPoint=d.position),C("scroll",{...d})}function a(){i=ft(c,e.scrollTarget),i.addEventListener("scroll",$,Le),$(!0)}function q(){i!==void 0&&(i.removeEventListener("scroll",$,Le),i=void 0)}function $(L){if(L===!0||e.debounce===0||e.debounce==="0")t();else if(u===null){const[T,S]=e.debounce?[setTimeout(t,e.debounce),clearTimeout]:[requestAnimationFrame(t),cancelAnimationFrame];u=()=>{S(T),u=null}}}const{proxy:o}=ee();return k(()=>o.$q.lang.rtl,t),$e(()=>{c=o.$el.parentNode,a()}),he(()=>{u?.(),q()}),Object.assign(o,{trigger:$,getPosition:()=>d}),at}}),pe=["vertical","horizontal"],ke={vertical:{offset:"offsetY",scroll:"scrollTop",dir:"down",dist:"y"},horizontal:{offset:"offsetX",scroll:"scrollLeft",dir:"right",dist:"x"}},He={prevent:!0,mouse:!0,mouseAllDir:!0},Qe=e=>e>=250?50:Math.ceil(e/5),Mt=N({name:"QScrollArea",props:{...Ve,thumbStyle:Object,verticalThumbStyle:Object,horizontalThumbStyle:Object,barStyle:[Array,String,Object],verticalBarStyle:[Array,String,Object],horizontalBarStyle:[Array,String,Object],verticalOffset:{type:Array,default:[0,0]},horizontalOffset:{type:Array,default:[0,0]},contentStyle:[Array,String,Object],contentActiveStyle:[Array,String,Object],delay:{type:[String,Number],default:1e3},visible:{type:Boolean,default:null},tabindex:[String,Number],onScroll:Function},setup(e,{slots:C,emit:d}){const u=w(!1),i=w(!1),c=w(!1),t={vertical:w(0),horizontal:w(0)},a={vertical:{ref:w(null),position:w(0),size:w(0)},horizontal:{ref:w(null),position:w(0),size:w(0)}},{proxy:q}=ee(),$=We(e,q.$q);let o=null,L;const T=w(null),S=r(()=>"q-scrollarea"+($.value===!0?" q-scrollarea--dark":""));Object.assign(t,{verticalInner:r(()=>t.vertical.value-e.verticalOffset[0]-e.verticalOffset[1]),horizontalInner:r(()=>t.horizontal.value-e.horizontalOffset[0]-e.horizontalOffset[1])}),a.vertical.percentage=r(()=>{const n=a.vertical.size.value-t.vertical.value;if(n<=0)return 0;const s=j(a.vertical.position.value/n,0,1);return Math.round(s*1e4)/1e4}),a.vertical.thumbHidden=r(()=>(e.visible===null?c.value:e.visible)!==!0&&u.value===!1&&i.value===!1||a.vertical.size.value<=t.vertical.value+1),a.vertical.thumbStart=r(()=>e.verticalOffset[0]+a.vertical.percentage.value*(t.verticalInner.value-a.vertical.thumbSize.value)),a.vertical.thumbSize=r(()=>Math.round(j(t.verticalInner.value*t.verticalInner.value/a.vertical.size.value,Qe(t.verticalInner.value),t.verticalInner.value))),a.vertical.style=r(()=>({...e.thumbStyle,...e.verticalThumbStyle,top:`${a.vertical.thumbStart.value}px`,height:`${a.vertical.thumbSize.value}px`,right:`${e.horizontalOffset[1]}px`})),a.vertical.thumbClass=r(()=>"q-scrollarea__thumb q-scrollarea__thumb--v absolute-right"+(a.vertical.thumbHidden.value===!0?" q-scrollarea__thumb--invisible":"")),a.vertical.barClass=r(()=>"q-scrollarea__bar q-scrollarea__bar--v absolute-right"+(a.vertical.thumbHidden.value===!0?" q-scrollarea__bar--invisible":"")),a.horizontal.percentage=r(()=>{const n=a.horizontal.size.value-t.horizontal.value;if(n<=0)return 0;const s=j(Math.abs(a.horizontal.position.value)/n,0,1);return Math.round(s*1e4)/1e4}),a.horizontal.thumbHidden=r(()=>(e.visible===null?c.value:e.visible)!==!0&&u.value===!1&&i.value===!1||a.horizontal.size.value<=t.horizontal.value+1),a.horizontal.thumbStart=r(()=>e.horizontalOffset[0]+a.horizontal.percentage.value*(t.horizontalInner.value-a.horizontal.thumbSize.value)),a.horizontal.thumbSize=r(()=>Math.round(j(t.horizontalInner.value*t.horizontalInner.value/a.horizontal.size.value,Qe(t.horizontalInner.value),t.horizontalInner.value))),a.horizontal.style=r(()=>({...e.thumbStyle,...e.horizontalThumbStyle,[q.$q.lang.rtl===!0?"right":"left"]:`${a.horizontal.thumbStart.value}px`,width:`${a.horizontal.thumbSize.value}px`,bottom:`${e.verticalOffset[1]}px`})),a.horizontal.thumbClass=r(()=>"q-scrollarea__thumb q-scrollarea__thumb--h absolute-bottom"+(a.horizontal.thumbHidden.value===!0?" q-scrollarea__thumb--invisible":"")),a.horizontal.barClass=r(()=>"q-scrollarea__bar q-scrollarea__bar--h absolute-bottom"+(a.horizontal.thumbHidden.value===!0?" q-scrollarea__bar--invisible":""));const z=r(()=>a.vertical.thumbHidden.value===!0&&a.horizontal.thumbHidden.value===!0?e.contentStyle:e.contentActiveStyle);function Q(){const n={};return pe.forEach(s=>{const y=a[s];Object.assign(n,{[s+"Position"]:y.position.value,[s+"Percentage"]:y.percentage.value,[s+"Size"]:y.size.value,[s+"ContainerSize"]:t[s].value,[s+"ContainerInnerSize"]:t[s+"Inner"].value})}),n}const O=ot(()=>{const n=Q();n.ref=q,d("scroll",n)},0);function b(n,s,y){if(pe.includes(n)===!1){console.error("[QScrollArea]: wrong first param of setScrollPosition (vertical/horizontal)");return}(n==="vertical"?Pe:Se)(T.value,s,y)}function v({height:n,width:s}){let y=!1;t.vertical.value!==n&&(t.vertical.value=n,y=!0),t.horizontal.value!==s&&(t.horizontal.value=s,y=!0),y===!0&&M()}function P({position:n}){let s=!1;a.vertical.position.value!==n.top&&(a.vertical.position.value=n.top,s=!0),a.horizontal.position.value!==n.left&&(a.horizontal.position.value=n.left,s=!0),s===!0&&M()}function g({height:n,width:s}){a.horizontal.size.value!==s&&(a.horizontal.size.value=s,M()),a.vertical.size.value!==n&&(a.vertical.size.value=n,M())}function B(n,s){const y=a[s];if(n.isFirst===!0){if(y.thumbHidden.value===!0)return;L=y.position.value,i.value=!0}else if(i.value!==!0)return;n.isFinal===!0&&(i.value=!1);const W=ke[s],F=(y.size.value-t[s].value)/(t[s+"Inner"].value-y.thumbSize.value),R=n.distance[W.dist],te=L+(n.direction===W.dir?1:-1)*R*F;U(te,s)}function x(n,s){const y=a[s];if(y.thumbHidden.value!==!0){const W=s==="vertical"?e.verticalOffset[0]:e.horizontalOffset[0],F=n[ke[s].offset]-W,R=y.thumbStart.value-W;if(FR+y.thumbSize.value){const te=F-y.thumbSize.value/2,me=j(te/(t[s+"Inner"].value-y.thumbSize.value),0,1);U(me*Math.max(0,y.size.value-t[s].value),s)}y.ref.value!==null&&y.ref.value.dispatchEvent(new MouseEvent(n.type,n))}}function M(){u.value=!0,o!==null&&clearTimeout(o),o=setTimeout(()=>{o=null,u.value=!1},e.delay),e.onScroll!==void 0&&O()}function U(n,s){T.value[ke[s].scroll]=n}let p=null;function A(){p!==null&&clearTimeout(p),p=setTimeout(()=>{p=null,c.value=!0},q.$q.platform.is.ios?50:0)}function G(){p!==null&&(clearTimeout(p),p=null),c.value=!1}let Y=null;k(()=>q.$q.lang.rtl,n=>{T.value!==null&&Se(T.value,Math.abs(a.horizontal.position.value)*(n===!0?-1:1))}),nt(()=>{Y={top:a.vertical.position.value,left:a.horizontal.position.value}}),rt(()=>{if(Y===null)return;const n=T.value;n!==null&&(Se(n,Y.left),Pe(n,Y.top))}),he(O.cancel),Object.assign(q,{getScrollTarget:()=>T.value,getScroll:Q,getScrollPosition:()=>({top:a.vertical.position.value,left:a.horizontal.position.value}),getScrollPercentage:()=>({top:a.vertical.percentage.value,left:a.horizontal.percentage.value}),setScrollPosition:b,setScrollPercentage(n,s,y){b(n,s*(a[n].size.value-t[n].value)*(n==="horizontal"&&q.$q.lang.rtl===!0?-1:1),y)}});const K={scroll:a,thumbVertDir:[[re,n=>{B(n,"vertical")},void 0,{vertical:!0,...He}]],thumbHorizDir:[[re,n=>{B(n,"horizontal")},void 0,{horizontal:!0,...He}]],onVerticalMousedown(n){x(n,"vertical")},onHorizontalMousedown(n){x(n,"horizontal")}};return()=>_("div",{class:S.value,onMouseenter:A,onMouseleave:G},[_("div",{ref:T,class:"q-scrollarea__container scroll relative-position fit hide-scrollbar",tabindex:e.tabindex!==void 0?e.tabindex:void 0},[_("div",{class:"q-scrollarea__content absolute",style:z.value},Ae(C.default,[_(ie,{debounce:0,onResize:g})])),_(Re,{axis:"both",onScroll:P})]),_(ie,{debounce:0,onResize:v}),_(Ot,{store:K,barStyle:e.barStyle,verticalBarStyle:e.verticalBarStyle,horizontalBarStyle:e.horizontalBarStyle})])}}),Ie=150,Pt=N({name:"QDrawer",inheritAttrs:!1,props:{...gt,...Ve,side:{type:String,default:"left",validator:e=>["left","right"].includes(e)},width:{type:Number,default:300},mini:Boolean,miniToOverlay:Boolean,miniWidth:{type:Number,default:57},noMiniAnimation:Boolean,breakpoint:{type:Number,default:1023},showIfAbove:Boolean,behavior:{type:String,validator:e=>["default","desktop","mobile"].includes(e),default:"default"},bordered:Boolean,elevated:Boolean,overlay:Boolean,persistent:Boolean,noSwipeOpen:Boolean,noSwipeClose:Boolean,noSwipeBackdrop:Boolean},emits:[...bt,"onLayout","miniState"],setup(e,{slots:C,emit:d,attrs:u}){const i=ee(),{proxy:{$q:c}}=i,t=We(e,c),{preventBodyScroll:a}=wt(),{registerTimeout:q,removeTimeout:$}=yt(),o=Ce(fe,E);if(o===E)return console.error("QDrawer needs to be child of QLayout"),E;let L,T=null,S;const z=w(e.behavior==="mobile"||e.behavior!=="desktop"&&o.totalWidth.value<=e.breakpoint),Q=r(()=>e.mini===!0&&z.value!==!0),O=r(()=>Q.value===!0?e.miniWidth:e.width),b=w(e.showIfAbove===!0&&z.value===!1?!0:e.modelValue===!0),v=r(()=>e.persistent!==!0&&(z.value===!0||te.value===!0));function P(l,m){if(M(),l!==!1&&o.animate(),I(0),z.value===!0){const H=o.instances[y.value];H?.belowBreakpoint===!0&&H.hide(!1),X(1),o.isContainer.value!==!0&&a(!0)}else X(0),l!==!1&&ge(!1);q(()=>{l!==!1&&ge(!0),m!==!0&&d("show",l)},Ie)}function g(l,m){U(),l!==!1&&o.animate(),X(0),I(G.value*O.value),ye(),m!==!0?q(()=>{d("hide",l)},Ie):$()}const{show:B,hide:x}=zt({showing:b,hideOnRouteChange:v,handleShow:P,handleHide:g}),{addToHistory:M,removeFromHistory:U}=St(b,x,v),p={belowBreakpoint:z,hide:x},A=r(()=>e.side==="right"),G=r(()=>(c.lang.rtl===!0?-1:1)*(A.value===!0?1:-1)),Y=w(0),K=w(!1),n=w(!1),s=w(O.value*G.value),y=r(()=>A.value===!0?"left":"right"),W=r(()=>b.value===!0&&z.value===!1&&e.overlay===!1?e.miniToOverlay===!0?e.miniWidth:O.value:0),F=r(()=>e.overlay===!0||e.miniToOverlay===!0||o.view.value.indexOf(A.value?"R":"L")!==-1||c.platform.is.ios===!0&&o.isContainer.value===!0),R=r(()=>e.overlay===!1&&b.value===!0&&z.value===!1),te=r(()=>e.overlay===!0&&b.value===!0&&z.value===!1),me=r(()=>"fullscreen q-drawer__backdrop"+(b.value===!1&&K.value===!1?" hidden":"")),Fe=r(()=>({backgroundColor:`rgba(0,0,0,${Y.value*.4})`})),Be=r(()=>A.value===!0?o.rows.value.top[2]==="r":o.rows.value.top[0]==="l"),je=r(()=>A.value===!0?o.rows.value.bottom[2]==="r":o.rows.value.bottom[0]==="l"),Ee=r(()=>{const l={};return o.header.space===!0&&Be.value===!1&&(F.value===!0?l.top=`${o.header.offset}px`:o.header.space===!0&&(l.top=`${o.header.size}px`)),o.footer.space===!0&&je.value===!1&&(F.value===!0?l.bottom=`${o.footer.offset}px`:o.footer.space===!0&&(l.bottom=`${o.footer.size}px`)),l}),Ne=r(()=>{const l={width:`${O.value}px`,transform:`translateX(${s.value}px)`};return z.value===!0?l:Object.assign(l,Ee.value)}),Ue=r(()=>"q-drawer__content fit "+(o.isContainer.value!==!0?"scroll":"overflow-auto")),Ge=r(()=>`q-drawer q-drawer--${e.side}`+(n.value===!0?" q-drawer--mini-animate":"")+(e.bordered===!0?" q-drawer--bordered":"")+(t.value===!0?" q-drawer--dark q-dark":"")+(K.value===!0?" no-transition":b.value===!0?"":" q-layout--prevent-focus")+(z.value===!0?" fixed q-drawer--on-top q-drawer--mobile q-drawer--top-padding":` q-drawer--${Q.value===!0?"mini":"standard"}`+(F.value===!0||R.value!==!0?" fixed":"")+(e.overlay===!0||e.miniToOverlay===!0?" q-drawer--on-top":"")+(Be.value===!0?" q-drawer--top-padding":""))),Ke=r(()=>{const l=c.lang.rtl===!0?e.side:y.value;return[[re,Ze,void 0,{[l]:!0,mouse:!0}]]}),Xe=r(()=>{const l=c.lang.rtl===!0?y.value:e.side;return[[re,Oe,void 0,{[l]:!0,mouse:!0}]]}),Je=r(()=>{const l=c.lang.rtl===!0?y.value:e.side;return[[re,Oe,void 0,{[l]:!0,mouse:!0,mouseAllDir:!0}]]});function be(){et(z,e.behavior==="mobile"||e.behavior!=="desktop"&&o.totalWidth.value<=e.breakpoint)}k(z,l=>{l===!0?(L=b.value,b.value===!0&&x(!1)):e.overlay===!1&&e.behavior!=="mobile"&&L!==!1&&(b.value===!0?(I(0),X(0),ye()):B(!1))}),k(()=>e.side,(l,m)=>{o.instances[m]===p&&(o.instances[m]=void 0,o[m].space=!1,o[m].offset=0),o.instances[l]=p,o[l].size=O.value,o[l].space=R.value,o[l].offset=W.value}),k(o.totalWidth,()=>{(o.isContainer.value===!0||document.qScrollPrevented!==!0)&&be()}),k(()=>e.behavior+e.breakpoint,be),k(o.isContainer,l=>{b.value===!0&&a(l!==!0),l===!0&&be()}),k(o.scrollbarWidth,()=>{I(b.value===!0?0:void 0)}),k(W,l=>{J("offset",l)}),k(R,l=>{d("onLayout",l),J("space",l)}),k(A,()=>{I()}),k(O,l=>{I(),ze(e.miniToOverlay,l)}),k(()=>e.miniToOverlay,l=>{ze(l,O.value)}),k(()=>c.lang.rtl,()=>{I()}),k(()=>e.mini,()=>{e.noMiniAnimation||e.modelValue===!0&&(Ye(),o.animate())}),k(Q,l=>{d("miniState",l)});function I(l){l===void 0?xe(()=>{l=b.value===!0?0:O.value,I(G.value*l)}):(o.isContainer.value===!0&&A.value===!0&&(z.value===!0||Math.abs(l)===O.value)&&(l+=G.value*o.scrollbarWidth.value),s.value=l)}function X(l){Y.value=l}function ge(l){const m=l===!0?"remove":o.isContainer.value!==!0?"add":"";m!==""&&document.body.classList[m]("q-body--drawer-toggle")}function Ye(){T!==null&&clearTimeout(T),i.proxy&&i.proxy.$el&&i.proxy.$el.classList.add("q-drawer--mini-animate"),n.value=!0,T=setTimeout(()=>{T=null,n.value=!1,i?.proxy?.$el?.classList.remove("q-drawer--mini-animate")},150)}function Ze(l){if(b.value!==!1)return;const m=O.value,H=j(l.distance.x,0,m);if(l.isFinal===!0){H>=Math.min(75,m)===!0?B():(o.animate(),X(0),I(G.value*m)),K.value=!1;return}I((c.lang.rtl===!0?A.value!==!0:A.value)?Math.max(m-H,0):Math.min(0,H-m)),X(j(H/m,0,1)),l.isFirst===!0&&(K.value=!0)}function Oe(l){if(b.value!==!0)return;const m=O.value,H=l.direction===e.side,ue=(c.lang.rtl===!0?H!==!0:H)?j(l.distance.x,0,m):0;if(l.isFinal===!0){Math.abs(ue){d("onLayout",R.value),d("miniState",Q.value),L=e.showIfAbove===!0;const l=()=>{(b.value===!0?P:g)(!1,!0)};if(o.totalWidth.value!==0){xe(l);return}S=k(o.totalWidth,()=>{S(),S=void 0,b.value===!1&&e.showIfAbove===!0&&z.value===!1?B(!1):l()})}),he(()=>{S?.(),T!==null&&(clearTimeout(T),T=null),b.value===!0&&ye(),o.instances[e.side]===p&&(o.instances[e.side]=void 0,J("size",0),J("offset",0),J("space",!1))}),()=>{const l=[];z.value===!0&&(e.noSwipeOpen===!1&&l.push(Z(_("div",{key:"open",class:`q-drawer__opener fixed-${e.side}`,"aria-hidden":"true"}),Ke.value)),l.push(Me("div",{ref:"backdrop",class:me.value,style:Fe.value,"aria-hidden":"true",onClick:x},void 0,"backdrop",e.noSwipeBackdrop!==!0&&b.value===!0,()=>Je.value)));const m=Q.value===!0&&C.mini!==void 0,H=[_("div",{...u,key:""+m,class:[Ue.value,u.class]},m===!0?C.mini():de(C.default))];return e.elevated===!0&&b.value===!0&&H.push(_("div",{class:"q-layout__shadow absolute-full overflow-hidden no-pointer-events"})),l.push(Me("aside",{ref:"content",class:Ge.value,style:Ne.value},H,"contentclose",e.noSwipeClose!==!0&&z.value===!0,()=>Xe.value)),_("div",{class:"q-drawer-container"},l)}}}),Lt=N({name:"QPageContainer",setup(e,{slots:C}){const{proxy:{$q:d}}=ee(),u=Ce(fe,E);if(u===E)return console.error("QPageContainer needs to be child of QLayout"),E;De(it,!0);const i=r(()=>{const c={};return u.header.space===!0&&(c.paddingTop=`${u.header.size}px`),u.right.space===!0&&(c[`padding${d.lang.rtl===!0?"Left":"Right"}`]=`${u.right.size}px`),u.footer.space===!0&&(c.paddingBottom=`${u.footer.size}px`),u.left.space===!0&&(c[`padding${d.lang.rtl===!0?"Right":"Left"}`]=`${u.left.size}px`),c});return()=>_("div",{class:"q-page-container",style:i.value},de(C.default))}}),pt=N({name:"QLayout",props:{container:Boolean,view:{type:String,default:"hhh lpr fff",validator:e=>/^(h|l)h(h|r) lpr (f|l)f(f|r)$/.test(e.toLowerCase())},onScroll:Function,onScrollHeight:Function,onResize:Function},setup(e,{slots:C,emit:d}){const{proxy:{$q:u}}=ee(),i=w(null),c=w(u.screen.height),t=w(e.container===!0?0:u.screen.width),a=w({position:0,direction:"down",inflectionPoint:0}),q=w(0),$=w(ut.value===!0?0:we()),o=r(()=>"q-layout q-layout--"+(e.container===!0?"containerized":"standard")),L=r(()=>e.container===!1?{minHeight:u.screen.height+"px"}:null),T=r(()=>$.value!==0?{[u.lang.rtl===!0?"left":"right"]:`${$.value}px`}:null),S=r(()=>$.value!==0?{[u.lang.rtl===!0?"right":"left"]:0,[u.lang.rtl===!0?"left":"right"]:`-${$.value}px`,width:`calc(100% + ${$.value}px)`}:null);function z(g){if(e.container===!0||document.qScrollPrevented!==!0){const B={position:g.position.top,direction:g.direction,directionChanged:g.directionChanged,inflectionPoint:g.inflectionPoint.top,delta:g.delta.top};a.value=B,e.onScroll!==void 0&&d("scroll",B)}}function Q(g){const{height:B,width:x}=g;let M=!1;c.value!==B&&(M=!0,c.value=B,e.onScrollHeight!==void 0&&d("scrollHeight",B),b()),t.value!==x&&(M=!0,t.value=x),M===!0&&e.onResize!==void 0&&d("resize",g)}function O({height:g}){q.value!==g&&(q.value=g,b())}function b(){if(e.container===!0){const g=c.value>q.value?we():0;$.value!==g&&($.value=g)}}let v=null;const P={instances:{},view:r(()=>e.view),isContainer:r(()=>e.container),rootRef:i,height:c,containerHeight:q,scrollbarWidth:$,totalWidth:r(()=>t.value+$.value),rows:r(()=>{const g=e.view.toLowerCase().split(" ");return{top:g[0].split(""),middle:g[1].split(""),bottom:g[2].split("")}}),header:se({size:0,offset:0,space:!1}),right:se({size:300,offset:0,space:!1}),footer:se({size:0,offset:0,space:!1}),left:se({size:300,offset:0,space:!1}),scroll:a,animate(){v!==null?clearTimeout(v):document.body.classList.add("q-body--layout-animate"),v=setTimeout(()=>{v=null,document.body.classList.remove("q-body--layout-animate")},155)},update(g,B,x){P[g][B]=x}};if(De(fe,P),we()>0){let g=function(){M=null,U.classList.remove("hide-scrollbar")},B=function(){if(M===null){if(U.scrollHeight>u.screen.height)return;U.classList.add("hide-scrollbar")}else clearTimeout(M);M=setTimeout(g,300)},x=function(p){M!==null&&p==="remove"&&(clearTimeout(M),g()),window[`${p}EventListener`]("resize",B)},M=null;const U=document.body;k(()=>e.container!==!0?"add":"remove",x),e.container!==!0&&x("add"),st(()=>{x("remove")})}return()=>{const g=Ae(C.default,[_(Re,{onScroll:z}),_(ie,{onResize:Q})]),B=_("div",{class:o.value,style:L.value,ref:e.container===!0?void 0:i,tabindex:-1},g);return e.container===!0?_("div",{class:"q-layout-container overflow-hidden",ref:i},[_(ie,{onResize:O}),_("div",{class:"absolute-full",style:T.value},[_("div",{class:"scroll",style:S.value},[B])])]):B}}}),Ht=ct({name:"MainLayout",__name:"MainLayout",setup(e){const C=_t(),d=w(!1),u=w("auto"),i=c=>{u.value=c,c==="auto"?(localStorage.removeItem("theme"),C.dark.set("auto")):(C.dark.set(c==="dark"),localStorage.setItem("theme",c))};return $e(()=>{const c=localStorage.getItem("theme");c?(u.value=c,C.dark.set(c==="dark")):(u.value="auto",C.dark.set("auto"))}),(c,t)=>{const a=vt("router-view");return ae(),le(pt,{view:"hHh lpr lFf"},{default:h(()=>[f(Bt,{elevated:""},{default:h(()=>[f($t,null,{default:h(()=>[f(ce,{dense:"",flat:"",round:"",icon:"menu",onClick:t[0]||(t[0]=q=>d.value=!d.value)}),f(Ct,null,{default:h(()=>t[5]||(t[5]=[D("openWB",-1)])),_:1,__:[5]})]),_:1})]),_:1}),f(Pt,{modelValue:d.value,"onUpdate:modelValue":t[4]||(t[4]=q=>d.value=q),side:"left",overlay:"",elevated:"",breakpoint:500},{default:h(()=>[f(Mt,{class:"fit","horizontal-thumb-style":{opacity:"0"}},{default:h(()=>[f(qt,{padding:""},{default:h(()=>[Z((ae(),le(ne,{clickable:"",href:"/openWB/web/settings/#/Status"},{default:h(()=>[f(V,{avatar:""},{default:h(()=>[f(oe,{name:"dashboard"})]),_:1}),f(V,null,{default:h(()=>t[6]||(t[6]=[D(" Status ",-1)])),_:1,__:[6]})]),_:1})),[[ve]]),f(_e),f(qe,{header:""},{default:h(()=>t[7]||(t[7]=[D("Auswertungen",-1)])),_:1,__:[7]}),Z((ae(),le(ne,{clickable:"",href:"/openWB/web/settings/#/Logging/ChargeLog"},{default:h(()=>[f(V,{avatar:""},{default:h(()=>[f(oe,{name:"table_chart"})]),_:1}),f(V,null,{default:h(()=>t[8]||(t[8]=[D(" Ladeprotokoll ",-1)])),_:1,__:[8]})]),_:1})),[[ve]]),Z((ae(),le(ne,{clickable:"",href:"/openWB/web/settings/#/Logging/Chart"},{default:h(()=>[f(V,{avatar:""},{default:h(()=>[f(oe,{name:"area_chart"})]),_:1}),f(V,null,{default:h(()=>t[9]||(t[9]=[D(" Diagramme ",-1)])),_:1,__:[9]})]),_:1})),[[ve]]),f(_e),Z((ae(),le(ne,{clickable:"",href:"/openWB/web/settings/"},{default:h(()=>[f(V,{avatar:""},{default:h(()=>[f(oe,{name:"settings"})]),_:1}),f(V,null,{default:h(()=>t[10]||(t[10]=[D(" Einstellungen ",-1)])),_:1,__:[10]})]),_:1})),[[ve]]),f(_e),f(qe,{header:""},{default:h(()=>t[11]||(t[11]=[D("Anzeigeeinstellungen",-1)])),_:1,__:[11]}),f(ne,null,{default:h(()=>[f(V,{avatar:""},{default:h(()=>[f(oe,{name:"light_mode"})]),_:1}),f(V,null,{default:h(()=>[f(qe,null,{default:h(()=>t[12]||(t[12]=[D("Darstellungsmodus",-1)])),_:1,__:[12]})]),_:1}),f(V,{side:""},{default:h(()=>[f(Tt,{flat:""},{default:h(()=>[f(ce,{flat:"",round:"",color:u.value==="light"?"primary":"",icon:"light_mode",onClick:t[1]||(t[1]=q=>i("light")),size:"sm",disable:u.value==="light","aria-label":"Light Mode"},{default:h(()=>[f(Te,null,{default:h(()=>t[13]||(t[13]=[D("Hell",-1)])),_:1,__:[13]})]),_:1},8,["color","disable"]),f(ce,{flat:"",round:"",color:u.value==="dark"?"primary":"",icon:"dark_mode",onClick:t[2]||(t[2]=q=>i("dark")),size:"sm",disable:u.value==="dark","aria-label":"Dark Mode"},{default:h(()=>[f(Te,null,{default:h(()=>t[14]||(t[14]=[D("Dunkel",-1)])),_:1,__:[14]})]),_:1},8,["color","disable"]),f(ce,{flat:"",round:"",color:u.value==="auto"?"primary":"",icon:"devices",onClick:t[3]||(t[3]=q=>i("auto")),size:"sm",disable:u.value==="auto","aria-label":"System Mode"},{default:h(()=>[f(Te,null,{default:h(()=>t[15]||(t[15]=[D("Systemeinstellung",-1)])),_:1,__:[15]})]),_:1},8,["color","disable"])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["modelValue"]),f(Lt,{class:"column flex centered-container"},{default:h(()=>[f(a)]),_:1})]),_:1})}}}),Dt=kt(Ht,[["__scopeId","data-v-562c3b02"]]);export{Dt as default}; diff --git a/packages/modules/web_themes/koala/web/assets/_plugin-vue_export-helper-BHb7KgjF.js b/packages/modules/web_themes/koala/web/assets/_plugin-vue_export-helper-BTeormdj.js similarity index 99% rename from packages/modules/web_themes/koala/web/assets/_plugin-vue_export-helper-BHb7KgjF.js rename to packages/modules/web_themes/koala/web/assets/_plugin-vue_export-helper-BTeormdj.js index a081aa9af1..bd890c984c 100644 --- a/packages/modules/web_themes/koala/web/assets/_plugin-vue_export-helper-BHb7KgjF.js +++ b/packages/modules/web_themes/koala/web/assets/_plugin-vue_export-helper-BTeormdj.js @@ -1 +1 @@ -import{r as k,z as ut,m as Y,c as M,g as $,o as H,n as Re,u as R,h as T,k as q,a as b,d as U,aM as ct,aN as dt,L as je,N as oe,f as ft,aK as vt,ar as Z,U as z,w as _,P as F,_ as mt,aO as J,B as ht,aq as pt,aP as gt,aQ as bt,aR as wt,q as Ne,aS as Xe,aT as yt,aU as Ce,S as E,X as qt,O as Et,T as le,V as me,ai as re,W as Tt,$ as Le,aV as xt,i as St,aW as Ct}from"./index-BBNHe89s.js";function Lt(){const e=k(!ut.value);return e.value===!1&&Y(()=>{e.value=!0}),{isHydrated:e}}const Ye=typeof ResizeObserver<"u",Pe=Ye===!0?{}:{style:"display:block;position:absolute;top:0;left:0;right:0;bottom:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1;",url:"about:blank"},an=M({name:"QResizeObserver",props:{debounce:{type:[String,Number],default:100}},emits:["resize"],setup(e,{emit:t}){let o=null,i,n={width:-1,height:-1};function l(s){s===!0||e.debounce===0||e.debounce==="0"?r():o===null&&(o=setTimeout(r,e.debounce))}function r(){if(o!==null&&(clearTimeout(o),o=null),i){const{offsetWidth:s,offsetHeight:u}=i;(s!==n.width||u!==n.height)&&(n={width:s,height:u},t("resize",n))}}const{proxy:a}=$();if(a.trigger=l,Ye===!0){let s;const u=d=>{i=a.$el.parentNode,i?(s=new ResizeObserver(l),s.observe(i),r()):d!==!0&&R(()=>{u(!0)})};return Y(()=>{u()}),H(()=>{o!==null&&clearTimeout(o),s!==void 0&&(s.disconnect!==void 0?s.disconnect():i&&s.unobserve(i))}),Re}else{let s=function(){o!==null&&(clearTimeout(o),o=null),m!==void 0&&(m.removeEventListener!==void 0&&m.removeEventListener("resize",l,q.passive),m=void 0)},u=function(){s(),i?.contentDocument&&(m=i.contentDocument.defaultView,m.addEventListener("resize",l,q.passive),r())};const{isHydrated:d}=Lt();let m;return Y(()=>{R(()=>{i=a.$el,i&&u()})}),H(s),()=>{if(d.value===!0)return T("object",{class:"q--avoid-card-border",style:Pe.style,tabindex:-1,type:"text/html",data:Pe.url,"aria-hidden":"true",onLoad:u})}}}}),sn=M({name:"QItemSection",props:{avatar:Boolean,thumbnail:Boolean,side:Boolean,top:Boolean,noWrap:Boolean},setup(e,{slots:t}){const o=b(()=>`q-item__section column q-item__section--${e.avatar===!0||e.side===!0||e.thumbnail===!0?"side":"main"}`+(e.top===!0?" q-item__section--top justify-start":" justify-center")+(e.avatar===!0?" q-item__section--avatar":"")+(e.thumbnail===!0?" q-item__section--thumbnail":"")+(e.noWrap===!0?" q-item__section--nowrap":""));return()=>T("div",{class:o.value},U(t.default))}}),be={dark:{type:Boolean,default:null}};function we(e,t){return b(()=>e.dark===null?t.dark.isActive:e.dark)}const un=M({name:"QItem",props:{...be,...ct,tag:{type:String,default:"div"},active:{type:Boolean,default:null},clickable:Boolean,dense:Boolean,insetLevel:Number,tabindex:[String,Number],focused:Boolean,manualFocus:Boolean},emits:["click","keyup"],setup(e,{slots:t,emit:o}){const{proxy:{$q:i}}=$(),n=we(e,i),{hasLink:l,linkAttrs:r,linkClass:a,linkTag:s,navigateOnClick:u}=dt(),d=k(null),m=k(null),g=b(()=>e.clickable===!0||l.value===!0||e.tag==="label"),c=b(()=>e.disable!==!0&&g.value===!0),f=b(()=>"q-item q-item-type row no-wrap"+(e.dense===!0?" q-item--dense":"")+(n.value===!0?" q-item--dark":"")+(l.value===!0&&e.active===null?a.value:e.active===!0?` q-item--active${e.activeClass!==void 0?` ${e.activeClass}`:""}`:"")+(e.disable===!0?" disabled":"")+(c.value===!0?" q-item--clickable q-link cursor-pointer "+(e.manualFocus===!0?"q-manual-focusable":"q-focusable q-hoverable")+(e.focused===!0?" q-manual-focusable--focused":""):"")),w=b(()=>e.insetLevel===void 0?null:{["padding"+(i.lang.rtl===!0?"Right":"Left")]:16+e.insetLevel*56+"px"});function S(v){c.value===!0&&(m.value!==null&&v.qAvoidFocus!==!0&&(v.qKeyEvent!==!0&&document.activeElement===d.value?m.value.focus():document.activeElement===m.value&&d.value.focus()),u(v))}function B(v){if(c.value===!0&&je(v,[13,32])===!0){oe(v),v.qKeyEvent=!0;const C=new MouseEvent("click",v);C.qKeyEvent=!0,d.value.dispatchEvent(C)}o("keyup",v)}function h(){const v=ft(t.default,[]);return c.value===!0&&v.unshift(T("div",{class:"q-focus-helper",tabindex:-1,ref:m})),v}return()=>{const v={ref:d,class:f.value,style:w.value,role:"listitem",onClick:S,onKeyup:B};return c.value===!0?(v.tabindex=e.tabindex||"0",Object.assign(v,r.value)):g.value===!0&&(v["aria-disabled"]="true"),T(s.value,v,h())}}}),Pt={true:"inset",item:"item-inset","item-thumbnail":"item-thumbnail-inset"},ae={xs:2,sm:4,md:8,lg:16,xl:24},cn=M({name:"QSeparator",props:{...be,spaced:[Boolean,String],inset:[Boolean,String],vertical:Boolean,color:String,size:String},setup(e){const t=$(),o=we(e,t.proxy.$q),i=b(()=>e.vertical===!0?"vertical":"horizontal"),n=b(()=>` q-separator--${i.value}`),l=b(()=>e.inset!==!1?`${n.value}-${Pt[e.inset]}`:""),r=b(()=>`q-separator${n.value}${l.value}`+(e.color!==void 0?` bg-${e.color}`:"")+(o.value===!0?" q-separator--dark":"")),a=b(()=>{const s={};if(e.size!==void 0&&(s[e.vertical===!0?"width":"height"]=e.size),e.spaced!==!1){const u=e.spaced===!0?`${ae.md}px`:e.spaced in ae?`${ae[e.spaced]}px`:e.spaced,d=e.vertical===!0?["Left","Right"]:["Top","Bottom"];s[`margin${d[0]}`]=s[`margin${d[1]}`]=u}return s});return()=>T("hr",{class:r.value,style:a.value,"aria-orientation":i.value})}}),dn=M({name:"QItemLabel",props:{overline:Boolean,caption:Boolean,header:Boolean,lines:[Number,String]},setup(e,{slots:t}){const o=b(()=>parseInt(e.lines,10)),i=b(()=>"q-item__label"+(e.overline===!0?" q-item__label--overline text-overline":"")+(e.caption===!0?" q-item__label--caption text-caption":"")+(e.header===!0?" q-item__label--header":"")+(o.value===1?" ellipsis":"")),n=b(()=>e.lines!==void 0&&o.value>1?{overflow:"hidden",display:"-webkit-box","-webkit-box-orient":"vertical","-webkit-line-clamp":o.value}:null);return()=>T("div",{style:n.value,class:i.value},U(t.default))}});function ee(){if(window.getSelection!==void 0){const e=window.getSelection();e.empty!==void 0?e.empty():e.removeAllRanges!==void 0&&(e.removeAllRanges(),vt.is.mobile!==!0&&e.addRange(document.createRange()))}else document.selection!==void 0&&document.selection.empty()}const Ie={target:{type:[Boolean,String,Element],default:!0},noParentEvent:Boolean},fn={...Ie,contextMenu:Boolean};function kt({showing:e,avoidEmit:t,configureAnchorEl:o}){const{props:i,proxy:n,emit:l}=$(),r=k(null);let a=null;function s(c){return r.value===null?!1:c===void 0||c.touches===void 0||c.touches.length<=1}const u={};o===void 0&&(Object.assign(u,{hide(c){n.hide(c)},toggle(c){n.toggle(c),c.qAnchorHandled=!0},toggleKey(c){je(c,13)===!0&&u.toggle(c)},contextClick(c){n.hide(c),Z(c),R(()=>{n.show(c),c.qAnchorHandled=!0})},prevent:Z,mobileTouch(c){if(u.mobileCleanup(c),s(c)!==!0)return;n.hide(c),r.value.classList.add("non-selectable");const f=c.target;z(u,"anchor",[[f,"touchmove","mobileCleanup","passive"],[f,"touchend","mobileCleanup","passive"],[f,"touchcancel","mobileCleanup","passive"],[r.value,"contextmenu","prevent","notPassive"]]),a=setTimeout(()=>{a=null,n.show(c),c.qAnchorHandled=!0},300)},mobileCleanup(c){r.value.classList.remove("non-selectable"),a!==null&&(clearTimeout(a),a=null),e.value===!0&&c!==void 0&&ee()}}),o=function(c=i.contextMenu){if(i.noParentEvent===!0||r.value===null)return;let f;c===!0?n.$q.platform.is.mobile===!0?f=[[r.value,"touchstart","mobileTouch","passive"]]:f=[[r.value,"mousedown","hide","passive"],[r.value,"contextmenu","contextClick","notPassive"]]:f=[[r.value,"click","toggle","passive"],[r.value,"keyup","toggleKey","passive"]],z(u,"anchor",f)});function d(){F(u,"anchor")}function m(c){for(r.value=c;r.value.classList.contains("q-anchor--skip");)r.value=r.value.parentNode;o()}function g(){if(i.target===!1||i.target===""||n.$el.parentNode===null)r.value=null;else if(i.target===!0)m(n.$el.parentNode);else{let c=i.target;if(typeof i.target=="string")try{c=document.querySelector(i.target)}catch{c=void 0}c!=null?(r.value=c.$el||c,o()):(r.value=null,console.error(`Anchor: target "${i.target}" not found`))}}return _(()=>i.contextMenu,c=>{r.value!==null&&(d(),o(c))}),_(()=>i.target,()=>{r.value!==null&&d(),g()}),_(()=>i.noParentEvent,c=>{r.value!==null&&(c===!0?d():o())}),Y(()=>{g(),t!==!0&&i.modelValue===!0&&r.value===null&&l("update:modelValue",!1)}),H(()=>{a!==null&&clearTimeout(a),d()}),{anchorEl:r,canShow:s,anchorEvents:u}}function Ht(e,t){const o=k(null);let i;function n(a,s){const u=`${s!==void 0?"add":"remove"}EventListener`,d=s!==void 0?s:i;a!==window&&a[u]("scroll",d,q.passive),window[u]("scroll",d,q.passive),i=s}function l(){o.value!==null&&(n(o.value),o.value=null)}const r=_(()=>e.noParentEvent,()=>{o.value!==null&&(l(),t())});return H(r),{localScrollTarget:o,unconfigureScrollTarget:l,changeScrollEvent:n}}const Mt={modelValue:{type:Boolean,default:null},"onUpdate:modelValue":[Function,Array]},$t=["beforeShow","show","beforeHide","hide"];function Bt({showing:e,canShow:t,hideOnRouteChange:o,handleShow:i,handleHide:n,processOnMount:l}){const r=$(),{props:a,emit:s,proxy:u}=r;let d;function m(h){e.value===!0?f(h):g(h)}function g(h){if(a.disable===!0||h?.qAnchorHandled===!0||t!==void 0&&t(h)!==!0)return;const v=a["onUpdate:modelValue"]!==void 0;v===!0&&(s("update:modelValue",!0),d=h,R(()=>{d===h&&(d=void 0)})),(a.modelValue===null||v===!1)&&c(h)}function c(h){e.value!==!0&&(e.value=!0,s("beforeShow",h),i!==void 0?i(h):s("show",h))}function f(h){if(a.disable===!0)return;const v=a["onUpdate:modelValue"]!==void 0;v===!0&&(s("update:modelValue",!1),d=h,R(()=>{d===h&&(d=void 0)})),(a.modelValue===null||v===!1)&&w(h)}function w(h){e.value!==!1&&(e.value=!1,s("beforeHide",h),n!==void 0?n(h):s("hide",h))}function S(h){a.disable===!0&&h===!0?a["onUpdate:modelValue"]!==void 0&&s("update:modelValue",!1):h===!0!==e.value&&(h===!0?c:w)(d)}_(()=>a.modelValue,S),o!==void 0&&mt(r)===!0&&_(()=>u.$route.fullPath,()=>{o.value===!0&&e.value===!0&&f()}),l===!0&&Y(()=>{S(a.modelValue)});const B={show:g,hide:f,toggle:m};return Object.assign(u,B),B}let O=[],I=[];function Ue(e){I=I.filter(t=>t!==e)}function zt(e){Ue(e),I.push(e)}function ke(e){Ue(e),I.length===0&&O.length!==0&&(O[O.length-1](),O=[])}function vn(e){I.length===0?e():O.push(e)}function mn(e){O=O.filter(t=>t!==e)}const Q=[];function hn(e){return Q.find(t=>t.contentEl!==null&&t.contentEl.contains(e))}function _t(e,t){do{if(e.$options.name==="QMenu"){if(e.hide(t),e.$props.separateClosePopup===!0)return J(e)}else if(e.__qPortal===!0){const o=J(e);return o?.$options.name==="QPopupProxy"?(e.hide(t),o):e}e=J(e)}while(e!=null)}function pn(e,t,o){for(;o!==0&&e!==void 0&&e!==null;){if(e.__qPortal===!0){if(o--,e.$options.name==="QMenu"){e=_t(e,t);continue}e.hide(t)}e=J(e)}}const Wt=M({name:"QPortal",setup(e,{slots:t}){return()=>t.default()}});function At(e){for(e=e.parent;e!=null;){if(e.type.name==="QGlobalDialog")return!0;if(e.type.name==="QDialog"||e.type.name==="QMenu")return!1;e=e.parent}return!1}function Ot(e,t,o,i){const n=k(!1),l=k(!1);let r=null;const a={},s=i==="dialog"&&At(e);function u(m){if(m===!0){ke(a),l.value=!0;return}l.value=!1,n.value===!1&&(s===!1&&r===null&&(r=bt(!1,i)),n.value=!0,Q.push(e.proxy),zt(a))}function d(m){if(l.value=!1,m!==!0)return;ke(a),n.value=!1;const g=Q.indexOf(e.proxy);g!==-1&&Q.splice(g,1),r!==null&&(wt(r),r=null)}return ht(()=>{d(!0)}),e.proxy.__qPortal=!0,pt(e.proxy,"contentEl",()=>t.value),{showPortal:u,hidePortal:d,portalIsActive:n,portalIsAccessible:l,renderPortal:()=>s===!0?o():n.value===!0?[T(gt,{to:r},T(Wt,o))]:void 0}}const se={transitionShow:{type:String,default:"fade"},transitionHide:{type:String,default:"fade"},transitionDuration:{type:[String,Number],default:300}};function Vt(e,t=()=>{},o=()=>{}){return{transitionProps:b(()=>{const i=`q-transition--${e.transitionShow||t()}`,n=`q-transition--${e.transitionHide||o()}`;return{appear:!0,enterFromClass:`${i}-enter-from`,enterActiveClass:`${i}-enter-active`,enterToClass:`${i}-enter-to`,leaveFromClass:`${n}-leave-from`,leaveActiveClass:`${n}-leave-active`,leaveToClass:`${n}-leave-to`}}),transitionStyle:b(()=>`--q-transition-duration: ${e.transitionDuration}ms`)}}function Dt(){let e;const t=$();function o(){e=void 0}return Ne(o),H(o),{removeTick:o,registerTick(i){e=i,R(()=>{e===i&&(Xe(t)===!1&&e(),e=void 0)})}}}function Ft(){let e=null;const t=$();function o(){e!==null&&(clearTimeout(e),e=null)}return Ne(o),H(o),{removeTimeout:o,registerTimeout(i,n){o(),Xe(t)===!1&&(e=setTimeout(()=>{e=null,i()},n))}}}const Qt=[Element,String],Rt=[null,document,document.body,document.scrollingElement,document.documentElement];function jt(e,t){let o=yt(t);if(o===void 0){if(e==null)return window;o=e.closest(".scroll,.scroll-y,.overflow-auto")}return Rt.includes(o)?window:o}function Ke(e){return e===window?window.pageYOffset||window.scrollY||document.body.scrollTop||0:e.scrollTop}function Ge(e){return e===window?window.pageXOffset||window.scrollX||document.body.scrollLeft||0:e.scrollLeft}function Je(e,t,o=0){const i=arguments[3]===void 0?performance.now():arguments[3],n=Ke(e);if(o<=0){n!==t&&he(e,t);return}requestAnimationFrame(l=>{const r=l-i,a=n+(t-n)/Math.max(r,o)*r;he(e,a),a!==t&&Je(e,t,o-r,l)})}function Ze(e,t,o=0){const i=arguments[3]===void 0?performance.now():arguments[3],n=Ge(e);if(o<=0){n!==t&&pe(e,t);return}requestAnimationFrame(l=>{const r=l-i,a=n+(t-n)/Math.max(r,o)*r;pe(e,a),a!==t&&Ze(e,t,o-r,l)})}function he(e,t){if(e===window){window.scrollTo(window.pageXOffset||window.scrollX||document.body.scrollLeft||0,t);return}e.scrollTop=t}function pe(e,t){if(e===window){window.scrollTo(t,window.pageYOffset||window.scrollY||document.body.scrollTop||0);return}e.scrollLeft=t}function gn(e,t,o){if(o){Je(e,t,o);return}he(e,t)}function bn(e,t,o){if(o){Ze(e,t,o);return}pe(e,t)}let K;function Nt(){if(K!==void 0)return K;const e=document.createElement("p"),t=document.createElement("div");Ce(e,{width:"100%",height:"200px"}),Ce(t,{position:"absolute",top:"0px",left:"0px",visibility:"hidden",width:"200px",height:"150px",overflow:"hidden"}),t.appendChild(e),document.body.appendChild(t);const o=e.offsetWidth;t.style.overflow="scroll";let i=e.offsetWidth;return o===i&&(i=t.clientWidth),t.remove(),K=o-i,K}function Xt(e,t=!0){return!e||e.nodeType!==Node.ELEMENT_NODE?!1:t?e.scrollHeight>e.clientHeight&&(e.classList.contains("scroll")||e.classList.contains("overflow-auto")||["auto","scroll"].includes(window.getComputedStyle(e)["overflow-y"])):e.scrollWidth>e.clientWidth&&(e.classList.contains("scroll")||e.classList.contains("overflow-auto")||["auto","scroll"].includes(window.getComputedStyle(e)["overflow-x"]))}const{notPassiveCapture:te}=q,V=[];function ne(e){const t=e.target;if(t===void 0||t.nodeType===8||t.classList.contains("no-pointer-events")===!0)return;let o=Q.length-1;for(;o>=0;){const i=Q[o].$;if(i.type.name==="QTooltip"){o--;continue}if(i.type.name!=="QDialog")break;if(i.props.seamless!==!0)return;o--}for(let i=V.length-1;i>=0;i--){const n=V[i];if((n.anchorEl.value===null||n.anchorEl.value.contains(t)===!1)&&(t===document.body||n.innerRef.value!==null&&n.innerRef.value.contains(t)===!1))e.qClickOutside=!0,n.onClickOutside(e);else return}}function Yt(e){V.push(e),V.length===1&&(document.addEventListener("mousedown",ne,te),document.addEventListener("touchstart",ne,te))}function He(e){const t=V.findIndex(o=>o===e);t!==-1&&(V.splice(t,1),V.length===0&&(document.removeEventListener("mousedown",ne,te),document.removeEventListener("touchstart",ne,te)))}let Me,$e;function Be(e){const t=e.split(" ");return t.length!==2?!1:["top","center","bottom"].includes(t[0])!==!0?(console.error("Anchor/Self position must start with one of top/center/bottom"),!1):["left","middle","right","start","end"].includes(t[1])!==!0?(console.error("Anchor/Self position must end with one of left/middle/right/start/end"),!1):!0}function It(e){return e?!(e.length!==2||typeof e[0]!="number"||typeof e[1]!="number"):!0}const ge={"start#ltr":"left","start#rtl":"right","end#ltr":"right","end#rtl":"left"};["left","middle","right"].forEach(e=>{ge[`${e}#ltr`]=e,ge[`${e}#rtl`]=e});function ze(e,t){const o=e.split(" ");return{vertical:o[0],horizontal:ge[`${o[1]}#${t===!0?"rtl":"ltr"}`]}}function Ut(e,t){let{top:o,left:i,right:n,bottom:l,width:r,height:a}=e.getBoundingClientRect();return t!==void 0&&(o-=t[1],i-=t[0],l+=t[1],n+=t[0],r+=t[0],a+=t[1]),{top:o,bottom:l,height:a,left:i,right:n,width:r,middle:i+(n-i)/2,center:o+(l-o)/2}}function Kt(e,t,o){let{top:i,left:n}=e.getBoundingClientRect();return i+=t.top,n+=t.left,o!==void 0&&(i+=o[1],n+=o[0]),{top:i,bottom:i+1,height:1,left:n,right:n+1,width:1,middle:n,center:i}}function Gt(e,t){return{top:0,center:t/2,bottom:t,left:0,middle:e/2,right:e}}function _e(e,t,o,i){return{top:e[o.vertical]-t[i.vertical],left:e[o.horizontal]-t[i.horizontal]}}function et(e,t=0){if(e.targetEl===null||e.anchorEl===null||t>5)return;if(e.targetEl.offsetHeight===0||e.targetEl.offsetWidth===0){setTimeout(()=>{et(e,t+1)},10);return}const{targetEl:o,offset:i,anchorEl:n,anchorOrigin:l,selfOrigin:r,absoluteOffset:a,fit:s,cover:u,maxHeight:d,maxWidth:m}=e;if(E.is.ios===!0&&window.visualViewport!==void 0){const D=document.body.style,{offsetLeft:x,offsetTop:L}=window.visualViewport;x!==Me&&(D.setProperty("--q-pe-left",x+"px"),Me=x),L!==$e&&(D.setProperty("--q-pe-top",L+"px"),$e=L)}const{scrollLeft:g,scrollTop:c}=o,f=a===void 0?Ut(n,u===!0?[0,0]:i):Kt(n,a,i);Object.assign(o.style,{top:0,left:0,minWidth:null,minHeight:null,maxWidth:m,maxHeight:d,visibility:"visible"});const{offsetWidth:w,offsetHeight:S}=o,{elWidth:B,elHeight:h}=s===!0||u===!0?{elWidth:Math.max(f.width,w),elHeight:u===!0?Math.max(f.height,S):S}:{elWidth:w,elHeight:S};let v={maxWidth:m,maxHeight:d};(s===!0||u===!0)&&(v.minWidth=f.width+"px",u===!0&&(v.minHeight=f.height+"px")),Object.assign(o.style,v);const C=Gt(B,h);let p=_e(f,C,l,r);if(a===void 0||i===void 0)ue(p,f,C,l,r);else{const{top:D,left:x}=p;ue(p,f,C,l,r);let L=!1;if(p.top!==D){L=!0;const P=2*i[1];f.center=f.top-=P,f.bottom-=P+2}if(p.left!==x){L=!0;const P=2*i[0];f.middle=f.left-=P,f.right-=P+2}L===!0&&(p=_e(f,C,l,r),ue(p,f,C,l,r))}v={top:p.top+"px",left:p.left+"px"},p.maxHeight!==void 0&&(v.maxHeight=p.maxHeight+"px",f.height>p.maxHeight&&(v.minHeight=v.maxHeight)),p.maxWidth!==void 0&&(v.maxWidth=p.maxWidth+"px",f.width>p.maxWidth&&(v.minWidth=v.maxWidth)),Object.assign(o.style,v),o.scrollTop!==c&&(o.scrollTop=c),o.scrollLeft!==g&&(o.scrollLeft=g)}function ue(e,t,o,i,n){const l=o.bottom,r=o.right,a=Nt(),s=window.innerHeight-a,u=document.body.clientWidth;if(e.top<0||e.top+l>s)if(n.vertical==="center")e.top=t[i.vertical]>s/2?Math.max(0,s-l):0,e.maxHeight=Math.min(l,s);else if(t[i.vertical]>s/2){const d=Math.min(s,i.vertical==="center"?t.center:i.vertical===n.vertical?t.bottom:t.top);e.maxHeight=Math.min(l,d),e.top=Math.max(0,d-l)}else e.top=Math.max(0,i.vertical==="center"?t.center:i.vertical===n.vertical?t.top:t.bottom),e.maxHeight=Math.min(l,s-e.top);if(e.left<0||e.left+r>u)if(e.maxWidth=Math.min(r,u),n.horizontal==="middle")e.left=t[i.horizontal]>u/2?Math.max(0,u-r):0;else if(t[i.horizontal]>u/2){const d=Math.min(u,i.horizontal==="middle"?t.middle:i.horizontal===n.horizontal?t.right:t.left);e.maxWidth=Math.min(r,d),e.left=Math.max(0,d-e.maxWidth)}else e.left=Math.max(0,i.horizontal==="middle"?t.middle:i.horizontal===n.horizontal?t.left:t.right),e.maxWidth=Math.min(r,u-e.left)}const wn=M({name:"QTooltip",inheritAttrs:!1,props:{...Ie,...Mt,...se,maxHeight:{type:String,default:null},maxWidth:{type:String,default:null},transitionShow:{...se.transitionShow,default:"jump-down"},transitionHide:{...se.transitionHide,default:"jump-up"},anchor:{type:String,default:"bottom middle",validator:Be},self:{type:String,default:"top middle",validator:Be},offset:{type:Array,default:()=>[14,14],validator:It},scrollTarget:Qt,delay:{type:Number,default:0},hideDelay:{type:Number,default:0},persistent:Boolean},emits:[...$t],setup(e,{slots:t,emit:o,attrs:i}){let n,l;const r=$(),{proxy:{$q:a}}=r,s=k(null),u=k(!1),d=b(()=>ze(e.anchor,a.lang.rtl)),m=b(()=>ze(e.self,a.lang.rtl)),g=b(()=>e.persistent!==!0),{registerTick:c,removeTick:f}=Dt(),{registerTimeout:w}=Ft(),{transitionProps:S,transitionStyle:B}=Vt(e),{localScrollTarget:h,changeScrollEvent:v,unconfigureScrollTarget:C}=Ht(e,xe),{anchorEl:p,canShow:D,anchorEvents:x}=kt({showing:u,configureAnchorEl:rt}),{show:L,hide:P}=Bt({showing:u,canShow:D,handleShow:nt,handleHide:ot,hideOnRouteChange:g,processOnMount:!0});Object.assign(x,{delayShow:it,delayHide:lt});const{showPortal:qe,hidePortal:Ee,renderPortal:tt}=Ot(r,s,st,"tooltip");if(a.platform.is.mobile===!0){const y={anchorEl:p,innerRef:s,onClickOutside(W){return P(W),W.target.classList.contains("q-dialog__backdrop")&&oe(W),!0}},ie=b(()=>e.modelValue===null&&e.persistent!==!0&&u.value===!0);_(ie,W=>{(W===!0?Yt:He)(y)}),H(()=>{He(y)})}function nt(y){qe(),c(()=>{l=new MutationObserver(()=>j()),l.observe(s.value,{attributes:!1,childList:!0,characterData:!0,subtree:!0}),j(),xe()}),n===void 0&&(n=_(()=>a.screen.width+"|"+a.screen.height+"|"+e.self+"|"+e.anchor+"|"+a.lang.rtl,j)),w(()=>{qe(!0),o("show",y)},e.transitionDuration)}function ot(y){f(),Ee(),Te(),w(()=>{Ee(!0),o("hide",y)},e.transitionDuration)}function Te(){l!==void 0&&(l.disconnect(),l=void 0),n!==void 0&&(n(),n=void 0),C(),F(x,"tooltipTemp")}function j(){et({targetEl:s.value,offset:e.offset,anchorEl:p.value,anchorOrigin:d.value,selfOrigin:m.value,maxHeight:e.maxHeight,maxWidth:e.maxWidth})}function it(y){if(a.platform.is.mobile===!0){ee(),document.body.classList.add("non-selectable");const ie=p.value,W=["touchmove","touchcancel","touchend","click"].map(Se=>[ie,Se,"delayHide","passiveCapture"]);z(x,"tooltipTemp",W)}w(()=>{L(y)},e.delay)}function lt(y){a.platform.is.mobile===!0&&(F(x,"tooltipTemp"),ee(),setTimeout(()=>{document.body.classList.remove("non-selectable")},10)),w(()=>{P(y)},e.hideDelay)}function rt(){if(e.noParentEvent===!0||p.value===null)return;const y=a.platform.is.mobile===!0?[[p.value,"touchstart","delayShow","passive"]]:[[p.value,"mouseenter","delayShow","passive"],[p.value,"mouseleave","delayHide","passive"]];z(x,"anchor",y)}function xe(){if(p.value!==null||e.scrollTarget!==void 0){h.value=jt(p.value,e.scrollTarget);const y=e.noParentEvent===!0?j:P;v(h.value,y)}}function at(){return u.value===!0?T("div",{...i,ref:s,class:["q-tooltip q-tooltip--style q-position-engine no-pointer-events",i.class],style:[i.style,B.value],role:"tooltip"},U(t.default)):null}function st(){return T(qt,S.value,at)}return H(Te),Object.assign(r.proxy,{updatePosition:j}),tt}}),yn=M({name:"QBtnGroup",props:{unelevated:Boolean,outline:Boolean,flat:Boolean,rounded:Boolean,square:Boolean,push:Boolean,stretch:Boolean,glossy:Boolean,spread:Boolean},setup(e,{slots:t}){const o=b(()=>{const i=["unelevated","outline","flat","rounded","square","push","stretch","glossy"].filter(n=>e[n]===!0).map(n=>`q-btn-group--${n}`).join(" ");return`q-btn-group row no-wrap${i.length!==0?" "+i:""}`+(e.spread===!0?" q-btn-group--spread":" inline")});return()=>T("div",{class:o.value},U(t.default))}}),Jt=["ul","ol"],qn=M({name:"QList",props:{...be,bordered:Boolean,dense:Boolean,separator:Boolean,padding:Boolean,tag:{type:String,default:"div"}},setup(e,{slots:t}){const o=$(),i=we(e,o.proxy.$q),n=b(()=>Jt.includes(e.tag)?null:"list"),l=b(()=>"q-list"+(e.bordered===!0?" q-list--bordered":"")+(e.dense===!0?" q-list--dense":"")+(e.separator===!0?" q-list--separator":"")+(i.value===!0?" q-list--dark":"")+(e.padding===!0?" q-list--padding":""));return()=>T(e.tag,{class:l.value,role:n.value},U(t.default))}}),ye={left:!0,right:!0,up:!0,down:!0,horizontal:!0,vertical:!0},Zt=Object.keys(ye);ye.all=!0;function We(e){const t={};for(const o of Zt)e[o]===!0&&(t[o]=!0);return Object.keys(t).length===0?ye:(t.horizontal===!0?t.left=t.right=!0:t.left===!0&&t.right===!0&&(t.horizontal=!0),t.vertical===!0?t.up=t.down=!0:t.up===!0&&t.down===!0&&(t.vertical=!0),t.horizontal===!0&&t.vertical===!0&&(t.all=!0),t)}const en=["INPUT","TEXTAREA"];function Ae(e,t){return t.event===void 0&&e.target!==void 0&&e.target.draggable!==!0&&typeof t.handler=="function"&&en.includes(e.target.nodeName.toUpperCase())===!1&&(e.qClonedBy===void 0||e.qClonedBy.indexOf(t.uid)===-1)}function ce(e,t,o){const i=me(e);let n,l=i.left-t.event.x,r=i.top-t.event.y,a=Math.abs(l),s=Math.abs(r);const u=t.direction;u.horizontal===!0&&u.vertical!==!0?n=l<0?"left":"right":u.horizontal!==!0&&u.vertical===!0?n=r<0?"up":"down":u.up===!0&&r<0?(n="up",a>s&&(u.left===!0&&l<0?n="left":u.right===!0&&l>0&&(n="right"))):u.down===!0&&r>0?(n="down",a>s&&(u.left===!0&&l<0?n="left":u.right===!0&&l>0&&(n="right"))):u.left===!0&&l<0?(n="left",a0&&(n="down"))):u.right===!0&&l>0&&(n="right",a0&&(n="down")));let d=!1;if(n===void 0&&o===!1){if(t.event.isFirst===!0||t.event.lastDir===void 0)return{};n=t.event.lastDir,d=!0,n==="left"||n==="right"?(i.left-=l,a=0,l=0):(i.top-=r,s=0,r=0)}return{synthetic:d,payload:{evt:e,touch:t.event.mouse!==!0,mouse:t.event.mouse===!0,position:i,direction:n,isFirst:t.event.isFirst,isFinal:o===!0,duration:Date.now()-t.event.time,distance:{x:a,y:s},offset:{x:l,y:r},delta:{x:i.left-t.event.lastX,y:i.top-t.event.lastY}}}}let tn=0;const En=Et({name:"touch-pan",beforeMount(e,{value:t,modifiers:o}){if(o.mouse!==!0&&E.has.touch!==!0)return;function i(l,r){o.mouse===!0&&r===!0?oe(l):(o.stop===!0&&re(l),o.prevent===!0&&Z(l))}const n={uid:"qvtp_"+tn++,handler:t,modifiers:o,direction:We(o),noop:Re,mouseStart(l){Ae(l,n)&&Tt(l)&&(z(n,"temp",[[document,"mousemove","move","notPassiveCapture"],[document,"mouseup","end","passiveCapture"]]),n.start(l,!0))},touchStart(l){if(Ae(l,n)){const r=l.target;z(n,"temp",[[r,"touchmove","move","notPassiveCapture"],[r,"touchcancel","end","passiveCapture"],[r,"touchend","end","passiveCapture"]]),n.start(l)}},start(l,r){if(E.is.firefox===!0&&le(e,!0),n.lastEvt=l,r===!0||o.stop===!0){if(n.direction.all!==!0&&(r!==!0||n.modifiers.mouseAllDir!==!0&&n.modifiers.mousealldir!==!0)){const u=l.type.indexOf("mouse")!==-1?new MouseEvent(l.type,l):new TouchEvent(l.type,l);l.defaultPrevented===!0&&Z(u),l.cancelBubble===!0&&re(u),Object.assign(u,{qKeyEvent:l.qKeyEvent,qClickOutside:l.qClickOutside,qAnchorHandled:l.qAnchorHandled,qClonedBy:l.qClonedBy===void 0?[n.uid]:l.qClonedBy.concat(n.uid)}),n.initialEvent={target:l.target,event:u}}re(l)}const{left:a,top:s}=me(l);n.event={x:a,y:s,time:Date.now(),mouse:r===!0,detected:!1,isFirst:!0,isFinal:!1,lastX:a,lastY:s}},move(l){if(n.event===void 0)return;const r=me(l),a=r.left-n.event.x,s=r.top-n.event.y;if(a===0&&s===0)return;n.lastEvt=l;const u=n.event.mouse===!0,d=()=>{i(l,u);let c;o.preserveCursor!==!0&&o.preservecursor!==!0&&(c=document.documentElement.style.cursor||"",document.documentElement.style.cursor="grabbing"),u===!0&&document.body.classList.add("no-pointer-events--children"),document.body.classList.add("non-selectable"),ee(),n.styleCleanup=f=>{if(n.styleCleanup=void 0,c!==void 0&&(document.documentElement.style.cursor=c),document.body.classList.remove("non-selectable"),u===!0){const w=()=>{document.body.classList.remove("no-pointer-events--children")};f!==void 0?setTimeout(()=>{w(),f()},50):w()}else f!==void 0&&f()}};if(n.event.detected===!0){n.event.isFirst!==!0&&i(l,n.event.mouse);const{payload:c,synthetic:f}=ce(l,n,!1);c!==void 0&&(n.handler(c)===!1?n.end(l):(n.styleCleanup===void 0&&n.event.isFirst===!0&&d(),n.event.lastX=c.position.left,n.event.lastY=c.position.top,n.event.lastDir=f===!0?void 0:c.direction,n.event.isFirst=!1));return}if(n.direction.all===!0||u===!0&&(n.modifiers.mouseAllDir===!0||n.modifiers.mousealldir===!0)){d(),n.event.detected=!0,n.move(l);return}const m=Math.abs(a),g=Math.abs(s);m!==g&&(n.direction.horizontal===!0&&m>g||n.direction.vertical===!0&&m0||n.direction.left===!0&&m>g&&a<0||n.direction.right===!0&&m>g&&a>0?(n.event.detected=!0,n.move(l)):n.end(l,!0))},end(l,r){if(n.event!==void 0){if(F(n,"temp"),E.is.firefox===!0&&le(e,!1),r===!0)n.styleCleanup?.(),n.event.detected!==!0&&n.initialEvent!==void 0&&n.initialEvent.target.dispatchEvent(n.initialEvent.event);else if(n.event.detected===!0){n.event.isFirst===!0&&n.handler(ce(l===void 0?n.lastEvt:l,n).payload);const{payload:a}=ce(l===void 0?n.lastEvt:l,n,!0),s=()=>{n.handler(a)};n.styleCleanup!==void 0?n.styleCleanup(s):s()}n.event=void 0,n.initialEvent=void 0,n.lastEvt=void 0}}};if(e.__qtouchpan=n,o.mouse===!0){const l=o.mouseCapture===!0||o.mousecapture===!0?"Capture":"";z(n,"main",[[e,"mousedown","mouseStart",`passive${l}`]])}E.has.touch===!0&&z(n,"main",[[e,"touchstart","touchStart",`passive${o.capture===!0?"Capture":""}`],[e,"touchmove","noop","notPassiveCapture"]])},updated(e,t){const o=e.__qtouchpan;o!==void 0&&(t.oldValue!==t.value&&(typeof value!="function"&&o.end(),o.handler=t.value),o.direction=We(t.modifiers))},beforeUnmount(e){const t=e.__qtouchpan;t!==void 0&&(t.event!==void 0&&t.end(),F(t,"main"),F(t,"temp"),E.is.firefox===!0&&le(e,!1),t.styleCleanup?.(),delete e.__qtouchpan)}});function Tn(e,t,o){return o<=t?t:Math.min(o,Math.max(t,e))}function xn(e,t,o){if(o<=t)return t;const i=o-t+1;let n=t+(e-t)%i;return n{e.value===!0&&n()}),{removeFromHistory:n,addToHistory(){i={condition:()=>o.value===!0,handler:t},Le.add(i)}}}let N=0,de,fe,X,ve=!1,Oe,Ve,De,A=null;function nn(e){on(e)&&oe(e)}function on(e){if(e.target===document.body||e.target.classList.contains("q-layout__backdrop"))return!0;const t=xt(e),o=e.shiftKey&&!e.deltaX,i=!o&&Math.abs(e.deltaX)<=Math.abs(e.deltaY),n=o||i?e.deltaY:e.deltaX;for(let l=0;l0&&r.scrollTop+r.clientHeight===r.scrollHeight:n<0&&r.scrollLeft===0?!0:n>0&&r.scrollLeft+r.clientWidth===r.scrollWidth}return!0}function Fe(e){e.target===document&&(document.scrollingElement.scrollTop=document.scrollingElement.scrollTop)}function G(e){ve!==!0&&(ve=!0,requestAnimationFrame(()=>{ve=!1;const{height:t}=e.target,{clientHeight:o,scrollTop:i}=document.scrollingElement;(X===void 0||t!==window.innerHeight)&&(X=o-t,document.scrollingElement.scrollTop=i),i>X&&(document.scrollingElement.scrollTop-=Math.ceil((i-X)/8))}))}function Qe(e){const t=document.body,o=window.visualViewport!==void 0;if(e==="add"){const{overflowY:i,overflowX:n}=window.getComputedStyle(t);de=Ge(window),fe=Ke(window),Oe=t.style.left,Ve=t.style.top,De=window.location.href,t.style.left=`-${de}px`,t.style.top=`-${fe}px`,n!=="hidden"&&(n==="scroll"||t.scrollWidth>window.innerWidth)&&t.classList.add("q-body--force-scrollbar-x"),i!=="hidden"&&(i==="scroll"||t.scrollHeight>window.innerHeight)&&t.classList.add("q-body--force-scrollbar-y"),t.classList.add("q-body--prevent-scroll"),document.qScrollPrevented=!0,E.is.ios===!0&&(o===!0?(window.scrollTo(0,0),window.visualViewport.addEventListener("resize",G,q.passiveCapture),window.visualViewport.addEventListener("scroll",G,q.passiveCapture),window.scrollTo(0,0)):window.addEventListener("scroll",Fe,q.passiveCapture))}E.is.desktop===!0&&E.is.mac===!0&&window[`${e}EventListener`]("wheel",nn,q.notPassive),e==="remove"&&(E.is.ios===!0&&(o===!0?(window.visualViewport.removeEventListener("resize",G,q.passiveCapture),window.visualViewport.removeEventListener("scroll",G,q.passiveCapture)):window.removeEventListener("scroll",Fe,q.passiveCapture)),t.classList.remove("q-body--prevent-scroll"),t.classList.remove("q-body--force-scrollbar-x"),t.classList.remove("q-body--force-scrollbar-y"),document.qScrollPrevented=!1,t.style.left=Oe,t.style.top=Ve,window.location.href===De&&window.scrollTo(de,fe),X=void 0)}function ln(e){let t="add";if(e===!0){if(N++,A!==null){clearTimeout(A),A=null;return}if(N>1)return}else{if(N===0||(N--,N>0))return;if(t="remove",E.is.ios===!0&&E.is.nativeMobile===!0){A!==null&&clearTimeout(A),A=setTimeout(()=>{Qe(t),A=null},100);return}}Qe(t)}function Cn(){let e;return{preventBodyScroll(t){t!==e&&(e!==void 0||t===!0)&&(e=t,ln(t))}}}function Ln(){return St(Ct)}const Pn=(e,t)=>{const o=e.__vccOpts||e;for(const[i,n]of t)o[i]=n;return o};export{ee as A,Ae as B,It as C,Be as D,se as E,fn as F,Vt as G,Ht as H,kt as I,Ot as J,ze as K,Yt as L,He as M,_t as N,et as O,vn as P,an as Q,mn as R,xn as S,En as T,hn as U,pn as V,Pn as _,Ke as a,Ge as b,we as c,Tn as d,bn as e,gn as f,jt as g,$t as h,Mt as i,Ft as j,Bt as k,Sn as l,Cn as m,Nt as n,Ln as o,qn as p,un as q,sn as r,Qt as s,cn as t,be as u,dn as v,yn as w,wn as x,Dt as y,We as z}; +import{r as k,z as ut,m as Y,c as M,g as $,o as H,n as Re,u as R,h as T,k as q,a as b,d as U,aM as ct,aN as dt,L as je,N as oe,f as ft,aK as vt,ar as Z,U as z,w as _,P as F,_ as mt,aO as J,B as ht,aq as pt,aP as gt,aQ as bt,aR as wt,q as Ne,aS as Xe,aT as yt,aU as Ce,S as E,X as qt,O as Et,T as le,V as me,ai as re,W as Tt,$ as Le,aV as xt,i as St,aW as Ct}from"./index-CmDneGoC.js";function Lt(){const e=k(!ut.value);return e.value===!1&&Y(()=>{e.value=!0}),{isHydrated:e}}const Ye=typeof ResizeObserver<"u",Pe=Ye===!0?{}:{style:"display:block;position:absolute;top:0;left:0;right:0;bottom:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1;",url:"about:blank"},an=M({name:"QResizeObserver",props:{debounce:{type:[String,Number],default:100}},emits:["resize"],setup(e,{emit:t}){let o=null,i,n={width:-1,height:-1};function l(s){s===!0||e.debounce===0||e.debounce==="0"?r():o===null&&(o=setTimeout(r,e.debounce))}function r(){if(o!==null&&(clearTimeout(o),o=null),i){const{offsetWidth:s,offsetHeight:u}=i;(s!==n.width||u!==n.height)&&(n={width:s,height:u},t("resize",n))}}const{proxy:a}=$();if(a.trigger=l,Ye===!0){let s;const u=d=>{i=a.$el.parentNode,i?(s=new ResizeObserver(l),s.observe(i),r()):d!==!0&&R(()=>{u(!0)})};return Y(()=>{u()}),H(()=>{o!==null&&clearTimeout(o),s!==void 0&&(s.disconnect!==void 0?s.disconnect():i&&s.unobserve(i))}),Re}else{let s=function(){o!==null&&(clearTimeout(o),o=null),m!==void 0&&(m.removeEventListener!==void 0&&m.removeEventListener("resize",l,q.passive),m=void 0)},u=function(){s(),i?.contentDocument&&(m=i.contentDocument.defaultView,m.addEventListener("resize",l,q.passive),r())};const{isHydrated:d}=Lt();let m;return Y(()=>{R(()=>{i=a.$el,i&&u()})}),H(s),()=>{if(d.value===!0)return T("object",{class:"q--avoid-card-border",style:Pe.style,tabindex:-1,type:"text/html",data:Pe.url,"aria-hidden":"true",onLoad:u})}}}}),sn=M({name:"QItemSection",props:{avatar:Boolean,thumbnail:Boolean,side:Boolean,top:Boolean,noWrap:Boolean},setup(e,{slots:t}){const o=b(()=>`q-item__section column q-item__section--${e.avatar===!0||e.side===!0||e.thumbnail===!0?"side":"main"}`+(e.top===!0?" q-item__section--top justify-start":" justify-center")+(e.avatar===!0?" q-item__section--avatar":"")+(e.thumbnail===!0?" q-item__section--thumbnail":"")+(e.noWrap===!0?" q-item__section--nowrap":""));return()=>T("div",{class:o.value},U(t.default))}}),be={dark:{type:Boolean,default:null}};function we(e,t){return b(()=>e.dark===null?t.dark.isActive:e.dark)}const un=M({name:"QItem",props:{...be,...ct,tag:{type:String,default:"div"},active:{type:Boolean,default:null},clickable:Boolean,dense:Boolean,insetLevel:Number,tabindex:[String,Number],focused:Boolean,manualFocus:Boolean},emits:["click","keyup"],setup(e,{slots:t,emit:o}){const{proxy:{$q:i}}=$(),n=we(e,i),{hasLink:l,linkAttrs:r,linkClass:a,linkTag:s,navigateOnClick:u}=dt(),d=k(null),m=k(null),g=b(()=>e.clickable===!0||l.value===!0||e.tag==="label"),c=b(()=>e.disable!==!0&&g.value===!0),f=b(()=>"q-item q-item-type row no-wrap"+(e.dense===!0?" q-item--dense":"")+(n.value===!0?" q-item--dark":"")+(l.value===!0&&e.active===null?a.value:e.active===!0?` q-item--active${e.activeClass!==void 0?` ${e.activeClass}`:""}`:"")+(e.disable===!0?" disabled":"")+(c.value===!0?" q-item--clickable q-link cursor-pointer "+(e.manualFocus===!0?"q-manual-focusable":"q-focusable q-hoverable")+(e.focused===!0?" q-manual-focusable--focused":""):"")),w=b(()=>e.insetLevel===void 0?null:{["padding"+(i.lang.rtl===!0?"Right":"Left")]:16+e.insetLevel*56+"px"});function S(v){c.value===!0&&(m.value!==null&&v.qAvoidFocus!==!0&&(v.qKeyEvent!==!0&&document.activeElement===d.value?m.value.focus():document.activeElement===m.value&&d.value.focus()),u(v))}function B(v){if(c.value===!0&&je(v,[13,32])===!0){oe(v),v.qKeyEvent=!0;const C=new MouseEvent("click",v);C.qKeyEvent=!0,d.value.dispatchEvent(C)}o("keyup",v)}function h(){const v=ft(t.default,[]);return c.value===!0&&v.unshift(T("div",{class:"q-focus-helper",tabindex:-1,ref:m})),v}return()=>{const v={ref:d,class:f.value,style:w.value,role:"listitem",onClick:S,onKeyup:B};return c.value===!0?(v.tabindex=e.tabindex||"0",Object.assign(v,r.value)):g.value===!0&&(v["aria-disabled"]="true"),T(s.value,v,h())}}}),Pt={true:"inset",item:"item-inset","item-thumbnail":"item-thumbnail-inset"},ae={xs:2,sm:4,md:8,lg:16,xl:24},cn=M({name:"QSeparator",props:{...be,spaced:[Boolean,String],inset:[Boolean,String],vertical:Boolean,color:String,size:String},setup(e){const t=$(),o=we(e,t.proxy.$q),i=b(()=>e.vertical===!0?"vertical":"horizontal"),n=b(()=>` q-separator--${i.value}`),l=b(()=>e.inset!==!1?`${n.value}-${Pt[e.inset]}`:""),r=b(()=>`q-separator${n.value}${l.value}`+(e.color!==void 0?` bg-${e.color}`:"")+(o.value===!0?" q-separator--dark":"")),a=b(()=>{const s={};if(e.size!==void 0&&(s[e.vertical===!0?"width":"height"]=e.size),e.spaced!==!1){const u=e.spaced===!0?`${ae.md}px`:e.spaced in ae?`${ae[e.spaced]}px`:e.spaced,d=e.vertical===!0?["Left","Right"]:["Top","Bottom"];s[`margin${d[0]}`]=s[`margin${d[1]}`]=u}return s});return()=>T("hr",{class:r.value,style:a.value,"aria-orientation":i.value})}}),dn=M({name:"QItemLabel",props:{overline:Boolean,caption:Boolean,header:Boolean,lines:[Number,String]},setup(e,{slots:t}){const o=b(()=>parseInt(e.lines,10)),i=b(()=>"q-item__label"+(e.overline===!0?" q-item__label--overline text-overline":"")+(e.caption===!0?" q-item__label--caption text-caption":"")+(e.header===!0?" q-item__label--header":"")+(o.value===1?" ellipsis":"")),n=b(()=>e.lines!==void 0&&o.value>1?{overflow:"hidden",display:"-webkit-box","-webkit-box-orient":"vertical","-webkit-line-clamp":o.value}:null);return()=>T("div",{style:n.value,class:i.value},U(t.default))}});function ee(){if(window.getSelection!==void 0){const e=window.getSelection();e.empty!==void 0?e.empty():e.removeAllRanges!==void 0&&(e.removeAllRanges(),vt.is.mobile!==!0&&e.addRange(document.createRange()))}else document.selection!==void 0&&document.selection.empty()}const Ie={target:{type:[Boolean,String,Element],default:!0},noParentEvent:Boolean},fn={...Ie,contextMenu:Boolean};function kt({showing:e,avoidEmit:t,configureAnchorEl:o}){const{props:i,proxy:n,emit:l}=$(),r=k(null);let a=null;function s(c){return r.value===null?!1:c===void 0||c.touches===void 0||c.touches.length<=1}const u={};o===void 0&&(Object.assign(u,{hide(c){n.hide(c)},toggle(c){n.toggle(c),c.qAnchorHandled=!0},toggleKey(c){je(c,13)===!0&&u.toggle(c)},contextClick(c){n.hide(c),Z(c),R(()=>{n.show(c),c.qAnchorHandled=!0})},prevent:Z,mobileTouch(c){if(u.mobileCleanup(c),s(c)!==!0)return;n.hide(c),r.value.classList.add("non-selectable");const f=c.target;z(u,"anchor",[[f,"touchmove","mobileCleanup","passive"],[f,"touchend","mobileCleanup","passive"],[f,"touchcancel","mobileCleanup","passive"],[r.value,"contextmenu","prevent","notPassive"]]),a=setTimeout(()=>{a=null,n.show(c),c.qAnchorHandled=!0},300)},mobileCleanup(c){r.value.classList.remove("non-selectable"),a!==null&&(clearTimeout(a),a=null),e.value===!0&&c!==void 0&&ee()}}),o=function(c=i.contextMenu){if(i.noParentEvent===!0||r.value===null)return;let f;c===!0?n.$q.platform.is.mobile===!0?f=[[r.value,"touchstart","mobileTouch","passive"]]:f=[[r.value,"mousedown","hide","passive"],[r.value,"contextmenu","contextClick","notPassive"]]:f=[[r.value,"click","toggle","passive"],[r.value,"keyup","toggleKey","passive"]],z(u,"anchor",f)});function d(){F(u,"anchor")}function m(c){for(r.value=c;r.value.classList.contains("q-anchor--skip");)r.value=r.value.parentNode;o()}function g(){if(i.target===!1||i.target===""||n.$el.parentNode===null)r.value=null;else if(i.target===!0)m(n.$el.parentNode);else{let c=i.target;if(typeof i.target=="string")try{c=document.querySelector(i.target)}catch{c=void 0}c!=null?(r.value=c.$el||c,o()):(r.value=null,console.error(`Anchor: target "${i.target}" not found`))}}return _(()=>i.contextMenu,c=>{r.value!==null&&(d(),o(c))}),_(()=>i.target,()=>{r.value!==null&&d(),g()}),_(()=>i.noParentEvent,c=>{r.value!==null&&(c===!0?d():o())}),Y(()=>{g(),t!==!0&&i.modelValue===!0&&r.value===null&&l("update:modelValue",!1)}),H(()=>{a!==null&&clearTimeout(a),d()}),{anchorEl:r,canShow:s,anchorEvents:u}}function Ht(e,t){const o=k(null);let i;function n(a,s){const u=`${s!==void 0?"add":"remove"}EventListener`,d=s!==void 0?s:i;a!==window&&a[u]("scroll",d,q.passive),window[u]("scroll",d,q.passive),i=s}function l(){o.value!==null&&(n(o.value),o.value=null)}const r=_(()=>e.noParentEvent,()=>{o.value!==null&&(l(),t())});return H(r),{localScrollTarget:o,unconfigureScrollTarget:l,changeScrollEvent:n}}const Mt={modelValue:{type:Boolean,default:null},"onUpdate:modelValue":[Function,Array]},$t=["beforeShow","show","beforeHide","hide"];function Bt({showing:e,canShow:t,hideOnRouteChange:o,handleShow:i,handleHide:n,processOnMount:l}){const r=$(),{props:a,emit:s,proxy:u}=r;let d;function m(h){e.value===!0?f(h):g(h)}function g(h){if(a.disable===!0||h?.qAnchorHandled===!0||t!==void 0&&t(h)!==!0)return;const v=a["onUpdate:modelValue"]!==void 0;v===!0&&(s("update:modelValue",!0),d=h,R(()=>{d===h&&(d=void 0)})),(a.modelValue===null||v===!1)&&c(h)}function c(h){e.value!==!0&&(e.value=!0,s("beforeShow",h),i!==void 0?i(h):s("show",h))}function f(h){if(a.disable===!0)return;const v=a["onUpdate:modelValue"]!==void 0;v===!0&&(s("update:modelValue",!1),d=h,R(()=>{d===h&&(d=void 0)})),(a.modelValue===null||v===!1)&&w(h)}function w(h){e.value!==!1&&(e.value=!1,s("beforeHide",h),n!==void 0?n(h):s("hide",h))}function S(h){a.disable===!0&&h===!0?a["onUpdate:modelValue"]!==void 0&&s("update:modelValue",!1):h===!0!==e.value&&(h===!0?c:w)(d)}_(()=>a.modelValue,S),o!==void 0&&mt(r)===!0&&_(()=>u.$route.fullPath,()=>{o.value===!0&&e.value===!0&&f()}),l===!0&&Y(()=>{S(a.modelValue)});const B={show:g,hide:f,toggle:m};return Object.assign(u,B),B}let O=[],I=[];function Ue(e){I=I.filter(t=>t!==e)}function zt(e){Ue(e),I.push(e)}function ke(e){Ue(e),I.length===0&&O.length!==0&&(O[O.length-1](),O=[])}function vn(e){I.length===0?e():O.push(e)}function mn(e){O=O.filter(t=>t!==e)}const Q=[];function hn(e){return Q.find(t=>t.contentEl!==null&&t.contentEl.contains(e))}function _t(e,t){do{if(e.$options.name==="QMenu"){if(e.hide(t),e.$props.separateClosePopup===!0)return J(e)}else if(e.__qPortal===!0){const o=J(e);return o?.$options.name==="QPopupProxy"?(e.hide(t),o):e}e=J(e)}while(e!=null)}function pn(e,t,o){for(;o!==0&&e!==void 0&&e!==null;){if(e.__qPortal===!0){if(o--,e.$options.name==="QMenu"){e=_t(e,t);continue}e.hide(t)}e=J(e)}}const Wt=M({name:"QPortal",setup(e,{slots:t}){return()=>t.default()}});function At(e){for(e=e.parent;e!=null;){if(e.type.name==="QGlobalDialog")return!0;if(e.type.name==="QDialog"||e.type.name==="QMenu")return!1;e=e.parent}return!1}function Ot(e,t,o,i){const n=k(!1),l=k(!1);let r=null;const a={},s=i==="dialog"&&At(e);function u(m){if(m===!0){ke(a),l.value=!0;return}l.value=!1,n.value===!1&&(s===!1&&r===null&&(r=bt(!1,i)),n.value=!0,Q.push(e.proxy),zt(a))}function d(m){if(l.value=!1,m!==!0)return;ke(a),n.value=!1;const g=Q.indexOf(e.proxy);g!==-1&&Q.splice(g,1),r!==null&&(wt(r),r=null)}return ht(()=>{d(!0)}),e.proxy.__qPortal=!0,pt(e.proxy,"contentEl",()=>t.value),{showPortal:u,hidePortal:d,portalIsActive:n,portalIsAccessible:l,renderPortal:()=>s===!0?o():n.value===!0?[T(gt,{to:r},T(Wt,o))]:void 0}}const se={transitionShow:{type:String,default:"fade"},transitionHide:{type:String,default:"fade"},transitionDuration:{type:[String,Number],default:300}};function Vt(e,t=()=>{},o=()=>{}){return{transitionProps:b(()=>{const i=`q-transition--${e.transitionShow||t()}`,n=`q-transition--${e.transitionHide||o()}`;return{appear:!0,enterFromClass:`${i}-enter-from`,enterActiveClass:`${i}-enter-active`,enterToClass:`${i}-enter-to`,leaveFromClass:`${n}-leave-from`,leaveActiveClass:`${n}-leave-active`,leaveToClass:`${n}-leave-to`}}),transitionStyle:b(()=>`--q-transition-duration: ${e.transitionDuration}ms`)}}function Dt(){let e;const t=$();function o(){e=void 0}return Ne(o),H(o),{removeTick:o,registerTick(i){e=i,R(()=>{e===i&&(Xe(t)===!1&&e(),e=void 0)})}}}function Ft(){let e=null;const t=$();function o(){e!==null&&(clearTimeout(e),e=null)}return Ne(o),H(o),{removeTimeout:o,registerTimeout(i,n){o(),Xe(t)===!1&&(e=setTimeout(()=>{e=null,i()},n))}}}const Qt=[Element,String],Rt=[null,document,document.body,document.scrollingElement,document.documentElement];function jt(e,t){let o=yt(t);if(o===void 0){if(e==null)return window;o=e.closest(".scroll,.scroll-y,.overflow-auto")}return Rt.includes(o)?window:o}function Ke(e){return e===window?window.pageYOffset||window.scrollY||document.body.scrollTop||0:e.scrollTop}function Ge(e){return e===window?window.pageXOffset||window.scrollX||document.body.scrollLeft||0:e.scrollLeft}function Je(e,t,o=0){const i=arguments[3]===void 0?performance.now():arguments[3],n=Ke(e);if(o<=0){n!==t&&he(e,t);return}requestAnimationFrame(l=>{const r=l-i,a=n+(t-n)/Math.max(r,o)*r;he(e,a),a!==t&&Je(e,t,o-r,l)})}function Ze(e,t,o=0){const i=arguments[3]===void 0?performance.now():arguments[3],n=Ge(e);if(o<=0){n!==t&&pe(e,t);return}requestAnimationFrame(l=>{const r=l-i,a=n+(t-n)/Math.max(r,o)*r;pe(e,a),a!==t&&Ze(e,t,o-r,l)})}function he(e,t){if(e===window){window.scrollTo(window.pageXOffset||window.scrollX||document.body.scrollLeft||0,t);return}e.scrollTop=t}function pe(e,t){if(e===window){window.scrollTo(t,window.pageYOffset||window.scrollY||document.body.scrollTop||0);return}e.scrollLeft=t}function gn(e,t,o){if(o){Je(e,t,o);return}he(e,t)}function bn(e,t,o){if(o){Ze(e,t,o);return}pe(e,t)}let K;function Nt(){if(K!==void 0)return K;const e=document.createElement("p"),t=document.createElement("div");Ce(e,{width:"100%",height:"200px"}),Ce(t,{position:"absolute",top:"0px",left:"0px",visibility:"hidden",width:"200px",height:"150px",overflow:"hidden"}),t.appendChild(e),document.body.appendChild(t);const o=e.offsetWidth;t.style.overflow="scroll";let i=e.offsetWidth;return o===i&&(i=t.clientWidth),t.remove(),K=o-i,K}function Xt(e,t=!0){return!e||e.nodeType!==Node.ELEMENT_NODE?!1:t?e.scrollHeight>e.clientHeight&&(e.classList.contains("scroll")||e.classList.contains("overflow-auto")||["auto","scroll"].includes(window.getComputedStyle(e)["overflow-y"])):e.scrollWidth>e.clientWidth&&(e.classList.contains("scroll")||e.classList.contains("overflow-auto")||["auto","scroll"].includes(window.getComputedStyle(e)["overflow-x"]))}const{notPassiveCapture:te}=q,V=[];function ne(e){const t=e.target;if(t===void 0||t.nodeType===8||t.classList.contains("no-pointer-events")===!0)return;let o=Q.length-1;for(;o>=0;){const i=Q[o].$;if(i.type.name==="QTooltip"){o--;continue}if(i.type.name!=="QDialog")break;if(i.props.seamless!==!0)return;o--}for(let i=V.length-1;i>=0;i--){const n=V[i];if((n.anchorEl.value===null||n.anchorEl.value.contains(t)===!1)&&(t===document.body||n.innerRef.value!==null&&n.innerRef.value.contains(t)===!1))e.qClickOutside=!0,n.onClickOutside(e);else return}}function Yt(e){V.push(e),V.length===1&&(document.addEventListener("mousedown",ne,te),document.addEventListener("touchstart",ne,te))}function He(e){const t=V.findIndex(o=>o===e);t!==-1&&(V.splice(t,1),V.length===0&&(document.removeEventListener("mousedown",ne,te),document.removeEventListener("touchstart",ne,te)))}let Me,$e;function Be(e){const t=e.split(" ");return t.length!==2?!1:["top","center","bottom"].includes(t[0])!==!0?(console.error("Anchor/Self position must start with one of top/center/bottom"),!1):["left","middle","right","start","end"].includes(t[1])!==!0?(console.error("Anchor/Self position must end with one of left/middle/right/start/end"),!1):!0}function It(e){return e?!(e.length!==2||typeof e[0]!="number"||typeof e[1]!="number"):!0}const ge={"start#ltr":"left","start#rtl":"right","end#ltr":"right","end#rtl":"left"};["left","middle","right"].forEach(e=>{ge[`${e}#ltr`]=e,ge[`${e}#rtl`]=e});function ze(e,t){const o=e.split(" ");return{vertical:o[0],horizontal:ge[`${o[1]}#${t===!0?"rtl":"ltr"}`]}}function Ut(e,t){let{top:o,left:i,right:n,bottom:l,width:r,height:a}=e.getBoundingClientRect();return t!==void 0&&(o-=t[1],i-=t[0],l+=t[1],n+=t[0],r+=t[0],a+=t[1]),{top:o,bottom:l,height:a,left:i,right:n,width:r,middle:i+(n-i)/2,center:o+(l-o)/2}}function Kt(e,t,o){let{top:i,left:n}=e.getBoundingClientRect();return i+=t.top,n+=t.left,o!==void 0&&(i+=o[1],n+=o[0]),{top:i,bottom:i+1,height:1,left:n,right:n+1,width:1,middle:n,center:i}}function Gt(e,t){return{top:0,center:t/2,bottom:t,left:0,middle:e/2,right:e}}function _e(e,t,o,i){return{top:e[o.vertical]-t[i.vertical],left:e[o.horizontal]-t[i.horizontal]}}function et(e,t=0){if(e.targetEl===null||e.anchorEl===null||t>5)return;if(e.targetEl.offsetHeight===0||e.targetEl.offsetWidth===0){setTimeout(()=>{et(e,t+1)},10);return}const{targetEl:o,offset:i,anchorEl:n,anchorOrigin:l,selfOrigin:r,absoluteOffset:a,fit:s,cover:u,maxHeight:d,maxWidth:m}=e;if(E.is.ios===!0&&window.visualViewport!==void 0){const D=document.body.style,{offsetLeft:x,offsetTop:L}=window.visualViewport;x!==Me&&(D.setProperty("--q-pe-left",x+"px"),Me=x),L!==$e&&(D.setProperty("--q-pe-top",L+"px"),$e=L)}const{scrollLeft:g,scrollTop:c}=o,f=a===void 0?Ut(n,u===!0?[0,0]:i):Kt(n,a,i);Object.assign(o.style,{top:0,left:0,minWidth:null,minHeight:null,maxWidth:m,maxHeight:d,visibility:"visible"});const{offsetWidth:w,offsetHeight:S}=o,{elWidth:B,elHeight:h}=s===!0||u===!0?{elWidth:Math.max(f.width,w),elHeight:u===!0?Math.max(f.height,S):S}:{elWidth:w,elHeight:S};let v={maxWidth:m,maxHeight:d};(s===!0||u===!0)&&(v.minWidth=f.width+"px",u===!0&&(v.minHeight=f.height+"px")),Object.assign(o.style,v);const C=Gt(B,h);let p=_e(f,C,l,r);if(a===void 0||i===void 0)ue(p,f,C,l,r);else{const{top:D,left:x}=p;ue(p,f,C,l,r);let L=!1;if(p.top!==D){L=!0;const P=2*i[1];f.center=f.top-=P,f.bottom-=P+2}if(p.left!==x){L=!0;const P=2*i[0];f.middle=f.left-=P,f.right-=P+2}L===!0&&(p=_e(f,C,l,r),ue(p,f,C,l,r))}v={top:p.top+"px",left:p.left+"px"},p.maxHeight!==void 0&&(v.maxHeight=p.maxHeight+"px",f.height>p.maxHeight&&(v.minHeight=v.maxHeight)),p.maxWidth!==void 0&&(v.maxWidth=p.maxWidth+"px",f.width>p.maxWidth&&(v.minWidth=v.maxWidth)),Object.assign(o.style,v),o.scrollTop!==c&&(o.scrollTop=c),o.scrollLeft!==g&&(o.scrollLeft=g)}function ue(e,t,o,i,n){const l=o.bottom,r=o.right,a=Nt(),s=window.innerHeight-a,u=document.body.clientWidth;if(e.top<0||e.top+l>s)if(n.vertical==="center")e.top=t[i.vertical]>s/2?Math.max(0,s-l):0,e.maxHeight=Math.min(l,s);else if(t[i.vertical]>s/2){const d=Math.min(s,i.vertical==="center"?t.center:i.vertical===n.vertical?t.bottom:t.top);e.maxHeight=Math.min(l,d),e.top=Math.max(0,d-l)}else e.top=Math.max(0,i.vertical==="center"?t.center:i.vertical===n.vertical?t.top:t.bottom),e.maxHeight=Math.min(l,s-e.top);if(e.left<0||e.left+r>u)if(e.maxWidth=Math.min(r,u),n.horizontal==="middle")e.left=t[i.horizontal]>u/2?Math.max(0,u-r):0;else if(t[i.horizontal]>u/2){const d=Math.min(u,i.horizontal==="middle"?t.middle:i.horizontal===n.horizontal?t.right:t.left);e.maxWidth=Math.min(r,d),e.left=Math.max(0,d-e.maxWidth)}else e.left=Math.max(0,i.horizontal==="middle"?t.middle:i.horizontal===n.horizontal?t.left:t.right),e.maxWidth=Math.min(r,u-e.left)}const wn=M({name:"QTooltip",inheritAttrs:!1,props:{...Ie,...Mt,...se,maxHeight:{type:String,default:null},maxWidth:{type:String,default:null},transitionShow:{...se.transitionShow,default:"jump-down"},transitionHide:{...se.transitionHide,default:"jump-up"},anchor:{type:String,default:"bottom middle",validator:Be},self:{type:String,default:"top middle",validator:Be},offset:{type:Array,default:()=>[14,14],validator:It},scrollTarget:Qt,delay:{type:Number,default:0},hideDelay:{type:Number,default:0},persistent:Boolean},emits:[...$t],setup(e,{slots:t,emit:o,attrs:i}){let n,l;const r=$(),{proxy:{$q:a}}=r,s=k(null),u=k(!1),d=b(()=>ze(e.anchor,a.lang.rtl)),m=b(()=>ze(e.self,a.lang.rtl)),g=b(()=>e.persistent!==!0),{registerTick:c,removeTick:f}=Dt(),{registerTimeout:w}=Ft(),{transitionProps:S,transitionStyle:B}=Vt(e),{localScrollTarget:h,changeScrollEvent:v,unconfigureScrollTarget:C}=Ht(e,xe),{anchorEl:p,canShow:D,anchorEvents:x}=kt({showing:u,configureAnchorEl:rt}),{show:L,hide:P}=Bt({showing:u,canShow:D,handleShow:nt,handleHide:ot,hideOnRouteChange:g,processOnMount:!0});Object.assign(x,{delayShow:it,delayHide:lt});const{showPortal:qe,hidePortal:Ee,renderPortal:tt}=Ot(r,s,st,"tooltip");if(a.platform.is.mobile===!0){const y={anchorEl:p,innerRef:s,onClickOutside(W){return P(W),W.target.classList.contains("q-dialog__backdrop")&&oe(W),!0}},ie=b(()=>e.modelValue===null&&e.persistent!==!0&&u.value===!0);_(ie,W=>{(W===!0?Yt:He)(y)}),H(()=>{He(y)})}function nt(y){qe(),c(()=>{l=new MutationObserver(()=>j()),l.observe(s.value,{attributes:!1,childList:!0,characterData:!0,subtree:!0}),j(),xe()}),n===void 0&&(n=_(()=>a.screen.width+"|"+a.screen.height+"|"+e.self+"|"+e.anchor+"|"+a.lang.rtl,j)),w(()=>{qe(!0),o("show",y)},e.transitionDuration)}function ot(y){f(),Ee(),Te(),w(()=>{Ee(!0),o("hide",y)},e.transitionDuration)}function Te(){l!==void 0&&(l.disconnect(),l=void 0),n!==void 0&&(n(),n=void 0),C(),F(x,"tooltipTemp")}function j(){et({targetEl:s.value,offset:e.offset,anchorEl:p.value,anchorOrigin:d.value,selfOrigin:m.value,maxHeight:e.maxHeight,maxWidth:e.maxWidth})}function it(y){if(a.platform.is.mobile===!0){ee(),document.body.classList.add("non-selectable");const ie=p.value,W=["touchmove","touchcancel","touchend","click"].map(Se=>[ie,Se,"delayHide","passiveCapture"]);z(x,"tooltipTemp",W)}w(()=>{L(y)},e.delay)}function lt(y){a.platform.is.mobile===!0&&(F(x,"tooltipTemp"),ee(),setTimeout(()=>{document.body.classList.remove("non-selectable")},10)),w(()=>{P(y)},e.hideDelay)}function rt(){if(e.noParentEvent===!0||p.value===null)return;const y=a.platform.is.mobile===!0?[[p.value,"touchstart","delayShow","passive"]]:[[p.value,"mouseenter","delayShow","passive"],[p.value,"mouseleave","delayHide","passive"]];z(x,"anchor",y)}function xe(){if(p.value!==null||e.scrollTarget!==void 0){h.value=jt(p.value,e.scrollTarget);const y=e.noParentEvent===!0?j:P;v(h.value,y)}}function at(){return u.value===!0?T("div",{...i,ref:s,class:["q-tooltip q-tooltip--style q-position-engine no-pointer-events",i.class],style:[i.style,B.value],role:"tooltip"},U(t.default)):null}function st(){return T(qt,S.value,at)}return H(Te),Object.assign(r.proxy,{updatePosition:j}),tt}}),yn=M({name:"QBtnGroup",props:{unelevated:Boolean,outline:Boolean,flat:Boolean,rounded:Boolean,square:Boolean,push:Boolean,stretch:Boolean,glossy:Boolean,spread:Boolean},setup(e,{slots:t}){const o=b(()=>{const i=["unelevated","outline","flat","rounded","square","push","stretch","glossy"].filter(n=>e[n]===!0).map(n=>`q-btn-group--${n}`).join(" ");return`q-btn-group row no-wrap${i.length!==0?" "+i:""}`+(e.spread===!0?" q-btn-group--spread":" inline")});return()=>T("div",{class:o.value},U(t.default))}}),Jt=["ul","ol"],qn=M({name:"QList",props:{...be,bordered:Boolean,dense:Boolean,separator:Boolean,padding:Boolean,tag:{type:String,default:"div"}},setup(e,{slots:t}){const o=$(),i=we(e,o.proxy.$q),n=b(()=>Jt.includes(e.tag)?null:"list"),l=b(()=>"q-list"+(e.bordered===!0?" q-list--bordered":"")+(e.dense===!0?" q-list--dense":"")+(e.separator===!0?" q-list--separator":"")+(i.value===!0?" q-list--dark":"")+(e.padding===!0?" q-list--padding":""));return()=>T(e.tag,{class:l.value,role:n.value},U(t.default))}}),ye={left:!0,right:!0,up:!0,down:!0,horizontal:!0,vertical:!0},Zt=Object.keys(ye);ye.all=!0;function We(e){const t={};for(const o of Zt)e[o]===!0&&(t[o]=!0);return Object.keys(t).length===0?ye:(t.horizontal===!0?t.left=t.right=!0:t.left===!0&&t.right===!0&&(t.horizontal=!0),t.vertical===!0?t.up=t.down=!0:t.up===!0&&t.down===!0&&(t.vertical=!0),t.horizontal===!0&&t.vertical===!0&&(t.all=!0),t)}const en=["INPUT","TEXTAREA"];function Ae(e,t){return t.event===void 0&&e.target!==void 0&&e.target.draggable!==!0&&typeof t.handler=="function"&&en.includes(e.target.nodeName.toUpperCase())===!1&&(e.qClonedBy===void 0||e.qClonedBy.indexOf(t.uid)===-1)}function ce(e,t,o){const i=me(e);let n,l=i.left-t.event.x,r=i.top-t.event.y,a=Math.abs(l),s=Math.abs(r);const u=t.direction;u.horizontal===!0&&u.vertical!==!0?n=l<0?"left":"right":u.horizontal!==!0&&u.vertical===!0?n=r<0?"up":"down":u.up===!0&&r<0?(n="up",a>s&&(u.left===!0&&l<0?n="left":u.right===!0&&l>0&&(n="right"))):u.down===!0&&r>0?(n="down",a>s&&(u.left===!0&&l<0?n="left":u.right===!0&&l>0&&(n="right"))):u.left===!0&&l<0?(n="left",a0&&(n="down"))):u.right===!0&&l>0&&(n="right",a0&&(n="down")));let d=!1;if(n===void 0&&o===!1){if(t.event.isFirst===!0||t.event.lastDir===void 0)return{};n=t.event.lastDir,d=!0,n==="left"||n==="right"?(i.left-=l,a=0,l=0):(i.top-=r,s=0,r=0)}return{synthetic:d,payload:{evt:e,touch:t.event.mouse!==!0,mouse:t.event.mouse===!0,position:i,direction:n,isFirst:t.event.isFirst,isFinal:o===!0,duration:Date.now()-t.event.time,distance:{x:a,y:s},offset:{x:l,y:r},delta:{x:i.left-t.event.lastX,y:i.top-t.event.lastY}}}}let tn=0;const En=Et({name:"touch-pan",beforeMount(e,{value:t,modifiers:o}){if(o.mouse!==!0&&E.has.touch!==!0)return;function i(l,r){o.mouse===!0&&r===!0?oe(l):(o.stop===!0&&re(l),o.prevent===!0&&Z(l))}const n={uid:"qvtp_"+tn++,handler:t,modifiers:o,direction:We(o),noop:Re,mouseStart(l){Ae(l,n)&&Tt(l)&&(z(n,"temp",[[document,"mousemove","move","notPassiveCapture"],[document,"mouseup","end","passiveCapture"]]),n.start(l,!0))},touchStart(l){if(Ae(l,n)){const r=l.target;z(n,"temp",[[r,"touchmove","move","notPassiveCapture"],[r,"touchcancel","end","passiveCapture"],[r,"touchend","end","passiveCapture"]]),n.start(l)}},start(l,r){if(E.is.firefox===!0&&le(e,!0),n.lastEvt=l,r===!0||o.stop===!0){if(n.direction.all!==!0&&(r!==!0||n.modifiers.mouseAllDir!==!0&&n.modifiers.mousealldir!==!0)){const u=l.type.indexOf("mouse")!==-1?new MouseEvent(l.type,l):new TouchEvent(l.type,l);l.defaultPrevented===!0&&Z(u),l.cancelBubble===!0&&re(u),Object.assign(u,{qKeyEvent:l.qKeyEvent,qClickOutside:l.qClickOutside,qAnchorHandled:l.qAnchorHandled,qClonedBy:l.qClonedBy===void 0?[n.uid]:l.qClonedBy.concat(n.uid)}),n.initialEvent={target:l.target,event:u}}re(l)}const{left:a,top:s}=me(l);n.event={x:a,y:s,time:Date.now(),mouse:r===!0,detected:!1,isFirst:!0,isFinal:!1,lastX:a,lastY:s}},move(l){if(n.event===void 0)return;const r=me(l),a=r.left-n.event.x,s=r.top-n.event.y;if(a===0&&s===0)return;n.lastEvt=l;const u=n.event.mouse===!0,d=()=>{i(l,u);let c;o.preserveCursor!==!0&&o.preservecursor!==!0&&(c=document.documentElement.style.cursor||"",document.documentElement.style.cursor="grabbing"),u===!0&&document.body.classList.add("no-pointer-events--children"),document.body.classList.add("non-selectable"),ee(),n.styleCleanup=f=>{if(n.styleCleanup=void 0,c!==void 0&&(document.documentElement.style.cursor=c),document.body.classList.remove("non-selectable"),u===!0){const w=()=>{document.body.classList.remove("no-pointer-events--children")};f!==void 0?setTimeout(()=>{w(),f()},50):w()}else f!==void 0&&f()}};if(n.event.detected===!0){n.event.isFirst!==!0&&i(l,n.event.mouse);const{payload:c,synthetic:f}=ce(l,n,!1);c!==void 0&&(n.handler(c)===!1?n.end(l):(n.styleCleanup===void 0&&n.event.isFirst===!0&&d(),n.event.lastX=c.position.left,n.event.lastY=c.position.top,n.event.lastDir=f===!0?void 0:c.direction,n.event.isFirst=!1));return}if(n.direction.all===!0||u===!0&&(n.modifiers.mouseAllDir===!0||n.modifiers.mousealldir===!0)){d(),n.event.detected=!0,n.move(l);return}const m=Math.abs(a),g=Math.abs(s);m!==g&&(n.direction.horizontal===!0&&m>g||n.direction.vertical===!0&&m0||n.direction.left===!0&&m>g&&a<0||n.direction.right===!0&&m>g&&a>0?(n.event.detected=!0,n.move(l)):n.end(l,!0))},end(l,r){if(n.event!==void 0){if(F(n,"temp"),E.is.firefox===!0&&le(e,!1),r===!0)n.styleCleanup?.(),n.event.detected!==!0&&n.initialEvent!==void 0&&n.initialEvent.target.dispatchEvent(n.initialEvent.event);else if(n.event.detected===!0){n.event.isFirst===!0&&n.handler(ce(l===void 0?n.lastEvt:l,n).payload);const{payload:a}=ce(l===void 0?n.lastEvt:l,n,!0),s=()=>{n.handler(a)};n.styleCleanup!==void 0?n.styleCleanup(s):s()}n.event=void 0,n.initialEvent=void 0,n.lastEvt=void 0}}};if(e.__qtouchpan=n,o.mouse===!0){const l=o.mouseCapture===!0||o.mousecapture===!0?"Capture":"";z(n,"main",[[e,"mousedown","mouseStart",`passive${l}`]])}E.has.touch===!0&&z(n,"main",[[e,"touchstart","touchStart",`passive${o.capture===!0?"Capture":""}`],[e,"touchmove","noop","notPassiveCapture"]])},updated(e,t){const o=e.__qtouchpan;o!==void 0&&(t.oldValue!==t.value&&(typeof value!="function"&&o.end(),o.handler=t.value),o.direction=We(t.modifiers))},beforeUnmount(e){const t=e.__qtouchpan;t!==void 0&&(t.event!==void 0&&t.end(),F(t,"main"),F(t,"temp"),E.is.firefox===!0&&le(e,!1),t.styleCleanup?.(),delete e.__qtouchpan)}});function Tn(e,t,o){return o<=t?t:Math.min(o,Math.max(t,e))}function xn(e,t,o){if(o<=t)return t;const i=o-t+1;let n=t+(e-t)%i;return n{e.value===!0&&n()}),{removeFromHistory:n,addToHistory(){i={condition:()=>o.value===!0,handler:t},Le.add(i)}}}let N=0,de,fe,X,ve=!1,Oe,Ve,De,A=null;function nn(e){on(e)&&oe(e)}function on(e){if(e.target===document.body||e.target.classList.contains("q-layout__backdrop"))return!0;const t=xt(e),o=e.shiftKey&&!e.deltaX,i=!o&&Math.abs(e.deltaX)<=Math.abs(e.deltaY),n=o||i?e.deltaY:e.deltaX;for(let l=0;l0&&r.scrollTop+r.clientHeight===r.scrollHeight:n<0&&r.scrollLeft===0?!0:n>0&&r.scrollLeft+r.clientWidth===r.scrollWidth}return!0}function Fe(e){e.target===document&&(document.scrollingElement.scrollTop=document.scrollingElement.scrollTop)}function G(e){ve!==!0&&(ve=!0,requestAnimationFrame(()=>{ve=!1;const{height:t}=e.target,{clientHeight:o,scrollTop:i}=document.scrollingElement;(X===void 0||t!==window.innerHeight)&&(X=o-t,document.scrollingElement.scrollTop=i),i>X&&(document.scrollingElement.scrollTop-=Math.ceil((i-X)/8))}))}function Qe(e){const t=document.body,o=window.visualViewport!==void 0;if(e==="add"){const{overflowY:i,overflowX:n}=window.getComputedStyle(t);de=Ge(window),fe=Ke(window),Oe=t.style.left,Ve=t.style.top,De=window.location.href,t.style.left=`-${de}px`,t.style.top=`-${fe}px`,n!=="hidden"&&(n==="scroll"||t.scrollWidth>window.innerWidth)&&t.classList.add("q-body--force-scrollbar-x"),i!=="hidden"&&(i==="scroll"||t.scrollHeight>window.innerHeight)&&t.classList.add("q-body--force-scrollbar-y"),t.classList.add("q-body--prevent-scroll"),document.qScrollPrevented=!0,E.is.ios===!0&&(o===!0?(window.scrollTo(0,0),window.visualViewport.addEventListener("resize",G,q.passiveCapture),window.visualViewport.addEventListener("scroll",G,q.passiveCapture),window.scrollTo(0,0)):window.addEventListener("scroll",Fe,q.passiveCapture))}E.is.desktop===!0&&E.is.mac===!0&&window[`${e}EventListener`]("wheel",nn,q.notPassive),e==="remove"&&(E.is.ios===!0&&(o===!0?(window.visualViewport.removeEventListener("resize",G,q.passiveCapture),window.visualViewport.removeEventListener("scroll",G,q.passiveCapture)):window.removeEventListener("scroll",Fe,q.passiveCapture)),t.classList.remove("q-body--prevent-scroll"),t.classList.remove("q-body--force-scrollbar-x"),t.classList.remove("q-body--force-scrollbar-y"),document.qScrollPrevented=!1,t.style.left=Oe,t.style.top=Ve,window.location.href===De&&window.scrollTo(de,fe),X=void 0)}function ln(e){let t="add";if(e===!0){if(N++,A!==null){clearTimeout(A),A=null;return}if(N>1)return}else{if(N===0||(N--,N>0))return;if(t="remove",E.is.ios===!0&&E.is.nativeMobile===!0){A!==null&&clearTimeout(A),A=setTimeout(()=>{Qe(t),A=null},100);return}}Qe(t)}function Cn(){let e;return{preventBodyScroll(t){t!==e&&(e!==void 0||t===!0)&&(e=t,ln(t))}}}function Ln(){return St(Ct)}const Pn=(e,t)=>{const o=e.__vccOpts||e;for(const[i,n]of t)o[i]=n;return o};export{ee as A,Ae as B,It as C,Be as D,se as E,fn as F,Vt as G,Ht as H,kt as I,Ot as J,ze as K,Yt as L,He as M,_t as N,et as O,vn as P,an as Q,mn as R,xn as S,En as T,hn as U,pn as V,Pn as _,Ke as a,Ge as b,we as c,Tn as d,bn as e,gn as f,jt as g,$t as h,Mt as i,Ft as j,Bt as k,Sn as l,Cn as m,Nt as n,Ln as o,qn as p,un as q,sn as r,Qt as s,cn as t,be as u,dn as v,yn as w,wn as x,Dt as y,We as z}; diff --git a/packages/modules/web_themes/koala/web/assets/index-BBNHe89s.js b/packages/modules/web_themes/koala/web/assets/index-CmDneGoC.js similarity index 99% rename from packages/modules/web_themes/koala/web/assets/index-BBNHe89s.js rename to packages/modules/web_themes/koala/web/assets/index-CmDneGoC.js index 41a3eb8767..4c2e49199c 100644 --- a/packages/modules/web_themes/koala/web/assets/index-BBNHe89s.js +++ b/packages/modules/web_themes/koala/web/assets/index-CmDneGoC.js @@ -1,4 +1,4 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MainLayout-BOJLco8c.js","assets/_plugin-vue_export-helper-BHb7KgjF.js","assets/MainLayout-DZ5KVho1.css","assets/IndexPage-DTxmUw0t.js","assets/mqtt-store-BaDE5XKf.js","assets/IndexPage-BWGv4ucT.css","assets/store-init-DA2xVgRy.js"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MainLayout-Cd3W0PCb.js","assets/_plugin-vue_export-helper-BTeormdj.js","assets/MainLayout-DZ5KVho1.css","assets/IndexPage-BDkTNmuK.js","assets/mqtt-store-CdQu5WWJ.js","assets/IndexPage-BWGv4ucT.css","assets/store-init-BPiEnDMl.js"])))=>i.map(i=>d[i]); const Oa=(function(){const t=typeof document<"u"&&document.createElement("link").relList;return t&&t.supports&&t.supports("modulepreload")?"modulepreload":"preload"})(),Ma=function(e){return"/openWB/web/themes/koala/"+e},si={},Wn=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){let o=function(u){return Promise.all(u.map(c=>Promise.resolve(c).then(f=>({status:"fulfilled",value:f}),f=>({status:"rejected",reason:f}))))};document.getElementsByTagName("link");const l=document.querySelector("meta[property=csp-nonce]"),a=l?.nonce||l?.getAttribute("nonce");s=o(n.map(u=>{if(u=Ma(u),u in si)return;si[u]=!0;const c=u.endsWith(".css"),f=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${u}"]${f}`))return;const d=document.createElement("link");if(d.rel=c?"stylesheet":Oa,c||(d.as="script"),d.crossOrigin="",d.href=u,a&&d.setAttribute("nonce",a),document.head.appendChild(d),c)return new Promise((g,v)=>{d.addEventListener("load",g),d.addEventListener("error",()=>v(new Error(`Unable to preload CSS for ${u}`)))})}))}function i(o){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=o,window.dispatchEvent(l),!l.defaultPrevented)throw o}return s.then(o=>{for(const l of o||[])l.status==="rejected"&&i(l.reason);return t().catch(i)})};/** * @vue/shared v3.5.18 * (c) 2018-present Yuxi (Evan) You and Vue contributors @@ -23,4 +23,4 @@ const Oa=(function(){const t=typeof document<"u"&&document.createElement("link") * vue-router v4.5.1 * (c) 2025 Eduardo San Martin Morote * @license MIT - */const Jt=typeof document<"u";function la(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Kf(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&la(e.default)}const ie=Object.assign;function es(e,t){const n={};for(const r in t){const s=t[r];n[r]=Ve(s)?s.map(e):e(s)}return n}const En=()=>{},Ve=Array.isArray,aa=/#/g,Uf=/&/g,Wf=/\//g,Gf=/=/g,Qf=/\?/g,ca=/\+/g,Jf=/%5B/g,Yf=/%5D/g,ua=/%5E/g,Zf=/%60/g,fa=/%7B/g,Xf=/%7C/g,da=/%7D/g,ed=/%20/g;function Js(e){return encodeURI(""+e).replace(Xf,"|").replace(Jf,"[").replace(Yf,"]")}function td(e){return Js(e).replace(fa,"{").replace(da,"}").replace(ua,"^")}function Rs(e){return Js(e).replace(ca,"%2B").replace(ed,"+").replace(aa,"%23").replace(Uf,"%26").replace(Zf,"`").replace(fa,"{").replace(da,"}").replace(ua,"^")}function nd(e){return Rs(e).replace(Gf,"%3D")}function rd(e){return Js(e).replace(aa,"%23").replace(Qf,"%3F")}function sd(e){return e==null?"":rd(e).replace(Wf,"%2F")}function $n(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const id=/\/$/,od=e=>e.replace(id,"");function ts(e,t,n="/"){let r,s={},i="",o="";const l=t.indexOf("#");let a=t.indexOf("?");return l=0&&(a=-1),a>-1&&(r=t.slice(0,a),i=t.slice(a+1,l>-1?l:t.length),s=e(i)),l>-1&&(r=r||t.slice(0,l),o=t.slice(l,t.length)),r=ud(r??t,n),{fullPath:r+(i&&"?")+i+o,path:r,query:s,hash:$n(o)}}function ld(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Qi(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function ad(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&nn(t.matched[r],n.matched[s])&&ha(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function nn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function ha(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!cd(e[n],t[n]))return!1;return!0}function cd(e,t){return Ve(e)?Ji(e,t):Ve(t)?Ji(t,e):e===t}function Ji(e,t){return Ve(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function ud(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let i=n.length-1,o,l;for(o=0;o1&&i--;else break;return n.slice(0,i).join("/")+"/"+r.slice(o).join("/")}const ht={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var Nn;(function(e){e.pop="pop",e.push="push"})(Nn||(Nn={}));var Cn;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Cn||(Cn={}));function fd(e){if(!e)if(Jt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),od(e)}const dd=/^[^#]+#/;function hd(e,t){return e.replace(dd,"#")+t}function pd(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const jr=()=>({left:window.scrollX,top:window.scrollY});function gd(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=pd(s,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function Yi(e,t){return(history.state?history.state.position-t:-1)+e}const Ps=new Map;function md(e,t){Ps.set(e,t)}function vd(e){const t=Ps.get(e);return Ps.delete(e),t}let yd=()=>location.protocol+"//"+location.host;function pa(e,t){const{pathname:n,search:r,hash:s}=t,i=e.indexOf("#");if(i>-1){let l=s.includes(e.slice(i))?e.slice(i).length:1,a=s.slice(l);return a[0]!=="/"&&(a="/"+a),Qi(a,"")}return Qi(n,e)+r+s}function _d(e,t,n,r){let s=[],i=[],o=null;const l=({state:d})=>{const g=pa(e,location),v=n.value,S=t.value;let k=0;if(d){if(n.value=g,t.value=d,o&&o===v){o=null;return}k=S?d.position-S.position:0}else r(g);s.forEach(O=>{O(n.value,v,{delta:k,type:Nn.pop,direction:k?k>0?Cn.forward:Cn.back:Cn.unknown})})};function a(){o=n.value}function u(d){s.push(d);const g=()=>{const v=s.indexOf(d);v>-1&&s.splice(v,1)};return i.push(g),g}function c(){const{history:d}=window;d.state&&d.replaceState(ie({},d.state,{scroll:jr()}),"")}function f(){for(const d of i)d();i=[],window.removeEventListener("popstate",l),window.removeEventListener("beforeunload",c)}return window.addEventListener("popstate",l),window.addEventListener("beforeunload",c,{passive:!0}),{pauseListeners:a,listen:u,destroy:f}}function Zi(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?jr():null}}function bd(e){const{history:t,location:n}=window,r={value:pa(e,n)},s={value:t.state};s.value||i(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function i(a,u,c){const f=e.indexOf("#"),d=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+a:yd()+e+a;try{t[c?"replaceState":"pushState"](u,"",d),s.value=u}catch(g){console.error(g),n[c?"replace":"assign"](d)}}function o(a,u){const c=ie({},t.state,Zi(s.value.back,a,s.value.forward,!0),u,{position:s.value.position});i(a,c,!0),r.value=a}function l(a,u){const c=ie({},s.value,t.state,{forward:a,scroll:jr()});i(c.current,c,!0);const f=ie({},Zi(r.value,a,null),{position:c.position+1},u);i(a,f,!1),r.value=a}return{location:r,state:s,push:l,replace:o}}function wd(e){e=fd(e);const t=bd(e),n=_d(e,t.state,t.location,t.replace);function r(i,o=!0){o||n.pauseListeners(),history.go(i)}const s=ie({location:"",base:e,go:r,createHref:hd.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function xd(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),wd(e)}function Sd(e){return typeof e=="string"||e&&typeof e=="object"}function ga(e){return typeof e=="string"||typeof e=="symbol"}const ma=Symbol("");var Xi;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(Xi||(Xi={}));function rn(e,t){return ie(new Error,{type:e,[ma]:!0},t)}function nt(e,t){return e instanceof Error&&ma in e&&(t==null||!!(e.type&t))}const eo="[^/]+?",Ed={sensitive:!1,strict:!1,start:!0,end:!0},Cd=/[.+*?^${}()[\]/\\]/g;function Rd(e,t){const n=ie({},Ed,t),r=[];let s=n.start?"^":"";const i=[];for(const u of e){const c=u.length?[]:[90];n.strict&&!u.length&&(s+="/");for(let f=0;ft.length?t.length===1&&t[0]===80?1:-1:0}function va(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const Td={type:0,value:""},kd=/[a-zA-Z0-9_]/;function Ad(e){if(!e)return[[]];if(e==="/")return[[Td]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(g){throw new Error(`ERR (${n})/"${u}": ${g}`)}let n=0,r=n;const s=[];let i;function o(){i&&s.push(i),i=[]}let l=0,a,u="",c="";function f(){u&&(n===0?i.push({type:0,value:u}):n===1||n===2||n===3?(i.length>1&&(a==="*"||a==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),i.push({type:1,value:u,regexp:c,repeatable:a==="*"||a==="+",optional:a==="*"||a==="?"})):t("Invalid state to consume buffer"),u="")}function d(){u+=a}for(;l{o(C)}:En}function o(f){if(ga(f)){const d=r.get(f);d&&(r.delete(f),n.splice(n.indexOf(d),1),d.children.forEach(o),d.alias.forEach(o))}else{const d=n.indexOf(f);d>-1&&(n.splice(d,1),f.record.name&&r.delete(f.record.name),f.children.forEach(o),f.alias.forEach(o))}}function l(){return n}function a(f){const d=Nd(f,n);n.splice(d,0,f),f.record.name&&!so(f)&&r.set(f.record.name,f)}function u(f,d){let g,v={},S,k;if("name"in f&&f.name){if(g=r.get(f.name),!g)throw rn(1,{location:f});k=g.record.name,v=ie(no(d.params,g.keys.filter(C=>!C.optional).concat(g.parent?g.parent.keys.filter(C=>C.optional):[]).map(C=>C.name)),f.params&&no(f.params,g.keys.map(C=>C.name))),S=g.stringify(v)}else if(f.path!=null)S=f.path,g=n.find(C=>C.re.test(S)),g&&(v=g.parse(S),k=g.record.name);else{if(g=d.name?r.get(d.name):n.find(C=>C.re.test(d.path)),!g)throw rn(1,{location:f,currentLocation:d});k=g.record.name,v=ie({},d.params,f.params),S=g.stringify(v)}const O=[];let x=g;for(;x;)O.unshift(x.record),x=x.parent;return{name:k,path:S,params:v,matched:O,meta:$d(O)}}e.forEach(f=>i(f));function c(){n.length=0,r.clear()}return{addRoute:i,resolve:u,removeRoute:o,clearRoutes:c,getRoutes:l,getRecordMatcher:s}}function no(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function ro(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Ld(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Ld(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function so(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function $d(e){return e.reduce((t,n)=>ie(t,n.meta),{})}function io(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function Nd(e,t){let n=0,r=t.length;for(;n!==r;){const i=n+r>>1;va(e,t[i])<0?r=i:n=i+1}const s=Id(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function Id(e){let t=e;for(;t=t.parent;)if(ya(t)&&va(e,t)===0)return t}function ya({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function jd(e){const t={};if(e===""||e==="?")return t;const r=(e[0]==="?"?e.slice(1):e).split("&");for(let s=0;si&&Rs(i)):[r&&Rs(r)]).forEach(i=>{i!==void 0&&(t+=(t.length?"&":"")+n,i!=null&&(t+="="+i))})}return t}function Fd(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=Ve(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const Dd=Symbol(""),lo=Symbol(""),Ys=Symbol(""),_a=Symbol(""),Ts=Symbol("");function cn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function bt(e,t,n,r,s,i=o=>o()){const o=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,a)=>{const u=d=>{d===!1?a(rn(4,{from:n,to:t})):d instanceof Error?a(d):Sd(d)?a(rn(2,{from:t,to:d})):(o&&r.enterCallbacks[s]===o&&typeof d=="function"&&o.push(d),l())},c=i(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(c);e.length<3&&(f=f.then(u)),f.catch(d=>a(d))})}function ns(e,t,n,r,s=i=>i()){const i=[];for(const o of e)for(const l in o.components){let a=o.components[l];if(!(t!=="beforeRouteEnter"&&!o.instances[l]))if(la(a)){const c=(a.__vccOpts||a)[t];c&&i.push(bt(c,n,r,o,l,s))}else{let u=a();i.push(()=>u.then(c=>{if(!c)throw new Error(`Couldn't resolve component "${l}" at "${o.path}"`);const f=Kf(c)?c.default:c;o.mods[l]=c,o.components[l]=f;const g=(f.__vccOpts||f)[t];return g&&bt(g,n,r,o,l,s)()}))}}return i}function ao(e){const t=Ze(Ys),n=Ze(_a),r=Q(()=>{const a=Ot(e.to);return t.resolve(a)}),s=Q(()=>{const{matched:a}=r.value,{length:u}=a,c=a[u-1],f=n.matched;if(!c||!f.length)return-1;const d=f.findIndex(nn.bind(null,c));if(d>-1)return d;const g=co(a[u-2]);return u>1&&co(c)===g&&f[f.length-1].path!==g?f.findIndex(nn.bind(null,a[u-2])):d}),i=Q(()=>s.value>-1&&zd(n.params,r.value.params)),o=Q(()=>s.value>-1&&s.value===n.matched.length-1&&ha(n.params,r.value.params));function l(a={}){if(Vd(a)){const u=t[Ot(e.replace)?"replace":"push"](Ot(e.to)).catch(En);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Q(()=>r.value.href),isActive:i,isExactActive:o,navigate:l}}function qd(e){return e.length===1?e[0]:e}const Bd=Rr({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:ao,setup(e,{slots:t}){const n=Dt(ao(e)),{options:r}=Ze(Ys),s=Q(()=>({[uo(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[uo(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const i=t.default&&qd(t.default(n));return e.custom?i:G("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},i)}}}),Hd=Bd;function Vd(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function zd(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!Ve(s)||s.length!==r.length||r.some((i,o)=>i!==s[o]))return!1}return!0}function co(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const uo=(e,t,n)=>e??t??n,Kd=Rr({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=Ze(Ts),s=Q(()=>e.route||r.value),i=Ze(lo,0),o=Q(()=>{let u=Ot(i);const{matched:c}=s.value;let f;for(;(f=c[u])&&!f.components;)u++;return u}),l=Q(()=>s.value.matched[o.value]);Qn(lo,Q(()=>o.value+1)),Qn(Dd,l),Qn(Ts,s);const a=Nt();return $t(()=>[a.value,l.value,e.name],([u,c,f],[d,g,v])=>{c&&(c.instances[f]=u,g&&g!==c&&u&&u===d&&(c.leaveGuards.size||(c.leaveGuards=g.leaveGuards),c.updateGuards.size||(c.updateGuards=g.updateGuards))),u&&c&&(!g||!nn(c,g)||!d)&&(c.enterCallbacks[f]||[]).forEach(S=>S(u))},{flush:"post"}),()=>{const u=s.value,c=e.name,f=l.value,d=f&&f.components[c];if(!d)return fo(n.default,{Component:d,route:u});const g=f.props[c],v=g?g===!0?u.params:typeof g=="function"?g(u):g:null,k=G(d,ie({},v,t,{onVnodeUnmounted:O=>{O.component.isUnmounted&&(f.instances[c]=null)},ref:a}));return fo(n.default,{Component:k,route:u})||k}}});function fo(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Ud=Kd;function Wd(e){const t=Md(e.routes,e),n=e.parseQuery||jd,r=e.stringifyQuery||oo,s=e.history,i=cn(),o=cn(),l=cn(),a=Go(ht);let u=ht;Jt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=es.bind(null,b=>""+b),f=es.bind(null,sd),d=es.bind(null,$n);function g(b,D){let N,V;return ga(b)?(N=t.getRecordMatcher(b),V=D):V=b,t.addRoute(V,N)}function v(b){const D=t.getRecordMatcher(b);D&&t.removeRoute(D)}function S(){return t.getRoutes().map(b=>b.record)}function k(b){return!!t.getRecordMatcher(b)}function O(b,D){if(D=ie({},D||a.value),typeof b=="string"){const m=ts(n,b,D.path),_=t.resolve({path:m.path},D),E=s.createHref(m.fullPath);return ie(m,_,{params:d(_.params),hash:$n(m.hash),redirectedFrom:void 0,href:E})}let N;if(b.path!=null)N=ie({},b,{path:ts(n,b.path,D.path).path});else{const m=ie({},b.params);for(const _ in m)m[_]==null&&delete m[_];N=ie({},b,{params:f(m)}),D.params=f(D.params)}const V=t.resolve(N,D),ce=b.hash||"";V.params=c(d(V.params));const h=ld(r,ie({},b,{hash:td(ce),path:V.path})),p=s.createHref(h);return ie({fullPath:h,hash:ce,query:r===oo?Fd(b.query):b.query||{}},V,{redirectedFrom:void 0,href:p})}function x(b){return typeof b=="string"?ts(n,b,a.value.path):ie({},b)}function C(b,D){if(u!==b)return rn(8,{from:D,to:b})}function y(b){return q(b)}function T(b){return y(ie(x(b),{replace:!0}))}function H(b){const D=b.matched[b.matched.length-1];if(D&&D.redirect){const{redirect:N}=D;let V=typeof N=="function"?N(b):N;return typeof V=="string"&&(V=V.includes("?")||V.includes("#")?V=x(V):{path:V},V.params={}),ie({query:b.query,hash:b.hash,params:V.path!=null?{}:b.params},V)}}function q(b,D){const N=u=O(b),V=a.value,ce=b.state,h=b.force,p=b.replace===!0,m=H(N);if(m)return q(ie(x(m),{state:typeof m=="object"?ie({},ce,m.state):ce,force:h,replace:p}),D||N);const _=N;_.redirectedFrom=D;let E;return!h&&ad(r,V,N)&&(E=rn(16,{to:_,from:V}),Ke(V,V,!0,!1)),(E?Promise.resolve(E):B(_,V)).catch(w=>nt(w)?nt(w,2)?w:ft(w):se(w,_,V)).then(w=>{if(w){if(nt(w,2))return q(ie({replace:p},x(w.to),{state:typeof w.to=="object"?ie({},ce,w.to.state):ce,force:h}),D||_)}else w=L(_,V,!0,p,ce);return U(_,V,w),w})}function F(b,D){const N=C(b,D);return N?Promise.reject(N):Promise.resolve()}function R(b){const D=Ht.values().next().value;return D&&typeof D.runWithContext=="function"?D.runWithContext(b):b()}function B(b,D){let N;const[V,ce,h]=Gd(b,D);N=ns(V.reverse(),"beforeRouteLeave",b,D);for(const m of V)m.leaveGuards.forEach(_=>{N.push(bt(_,b,D))});const p=F.bind(null,b,D);return N.push(p),Le(N).then(()=>{N=[];for(const m of i.list())N.push(bt(m,b,D));return N.push(p),Le(N)}).then(()=>{N=ns(ce,"beforeRouteUpdate",b,D);for(const m of ce)m.updateGuards.forEach(_=>{N.push(bt(_,b,D))});return N.push(p),Le(N)}).then(()=>{N=[];for(const m of h)if(m.beforeEnter)if(Ve(m.beforeEnter))for(const _ of m.beforeEnter)N.push(bt(_,b,D));else N.push(bt(m.beforeEnter,b,D));return N.push(p),Le(N)}).then(()=>(b.matched.forEach(m=>m.enterCallbacks={}),N=ns(h,"beforeRouteEnter",b,D,R),N.push(p),Le(N))).then(()=>{N=[];for(const m of o.list())N.push(bt(m,b,D));return N.push(p),Le(N)}).catch(m=>nt(m,8)?m:Promise.reject(m))}function U(b,D,N){l.list().forEach(V=>R(()=>V(b,D,N)))}function L(b,D,N,V,ce){const h=C(b,D);if(h)return h;const p=D===ht,m=Jt?history.state:{};N&&(V||p?s.replace(b.fullPath,ie({scroll:p&&m&&m.scroll},ce)):s.push(b.fullPath,ce)),a.value=b,Ke(b,D,N,p),ft()}let X;function j(){X||(X=s.listen((b,D,N)=>{if(!qn.listening)return;const V=O(b),ce=H(V);if(ce){q(ie(ce,{replace:!0,force:!0}),V).catch(En);return}u=V;const h=a.value;Jt&&md(Yi(h.fullPath,N.delta),jr()),B(V,h).catch(p=>nt(p,12)?p:nt(p,2)?(q(ie(x(p.to),{force:!0}),V).then(m=>{nt(m,20)&&!N.delta&&N.type===Nn.pop&&s.go(-1,!1)}).catch(En),Promise.reject()):(N.delta&&s.go(-N.delta,!1),se(p,V,h))).then(p=>{p=p||L(V,h,!1),p&&(N.delta&&!nt(p,8)?s.go(-N.delta,!1):N.type===Nn.pop&&nt(p,20)&&s.go(-1,!1)),U(V,h,p)}).catch(En)}))}let ee=cn(),re=cn(),Z;function se(b,D,N){ft(b);const V=re.list();return V.length?V.forEach(ce=>ce(b,D,N)):console.error(b),Promise.reject(b)}function et(){return Z&&a.value!==ht?Promise.resolve():new Promise((b,D)=>{ee.add([b,D])})}function ft(b){return Z||(Z=!b,j(),ee.list().forEach(([D,N])=>b?N(b):D()),ee.reset()),b}function Ke(b,D,N,V){const{scrollBehavior:ce}=e;if(!Jt||!ce)return Promise.resolve();const h=!N&&vd(Yi(b.fullPath,0))||(V||!N)&&history.state&&history.state.scroll||null;return Bs().then(()=>ce(b,D,h)).then(p=>p&&gd(p)).catch(p=>se(p,b,D))}const Te=b=>s.go(b);let Bt;const Ht=new Set,qn={currentRoute:a,listening:!0,addRoute:g,removeRoute:v,clearRoutes:t.clearRoutes,hasRoute:k,getRoutes:S,resolve:O,options:e,push:y,replace:T,go:Te,back:()=>Te(-1),forward:()=>Te(1),beforeEach:i.add,beforeResolve:o.add,afterEach:l.add,onError:re.add,isReady:et,install(b){const D=this;b.component("RouterLink",Hd),b.component("RouterView",Ud),b.config.globalProperties.$router=D,Object.defineProperty(b.config.globalProperties,"$route",{enumerable:!0,get:()=>Ot(a)}),Jt&&!Bt&&a.value===ht&&(Bt=!0,y(s.location).catch(ce=>{}));const N={};for(const ce in ht)Object.defineProperty(N,ce,{get:()=>a.value[ce],enumerable:!0});b.provide(Ys,D),b.provide(_a,Uo(N)),b.provide(Ts,a);const V=b.unmount;Ht.add(b),b.unmount=function(){Ht.delete(b),Ht.size<1&&(u=ht,X&&X(),X=null,a.value=ht,Bt=!1,Z=!1),V()}}};function Le(b){return b.reduce((D,N)=>D.then(()=>R(N)),Promise.resolve())}return qn}function Gd(e,t){const n=[],r=[],s=[],i=Math.max(t.matched.length,e.matched.length);for(let o=0;onn(u,l))?r.push(l):n.push(l));const a=e.matched[o];a&&(t.matched.find(u=>nn(u,a))||s.push(a))}return[n,r,s]}const Qd=[{path:"/",component:()=>Wn(()=>import("./MainLayout-BOJLco8c.js"),__vite__mapDeps([0,1,2])),children:[{path:"",component:()=>Wn(()=>import("./IndexPage-DTxmUw0t.js"),__vite__mapDeps([3,1,4,5]))}]},{path:"/:catchAll(.*)*",component:()=>Wn(()=>import("./ErrorNotFound-DeQh6Nki.js"),[])}],rs=function(){return Wd({scrollBehavior:()=>({left:0,top:0}),routes:Qd,history:xd("/openWB/web/themes/koala/")})};async function Jd(e,t){const n=e(Ff);n.use(jf,t);const r=typeof Xr=="function"?await Xr({}):Xr;n.use(r);const s=qt(typeof rs=="function"?await rs({store:r}):rs);return r.use(({store:i})=>{i.router=s}),{app:n,store:r,router:s}}const Yd={isoName:"de-DE",nativeName:"Deutsch (DE)",label:{clear:"Leeren",ok:"Ok",cancel:"Abbrechen",close:"Schließen",set:"Setzen",select:"Auswählen",reset:"Zurücksetzen",remove:"Löschen",update:"Aktualisieren",create:"Erstellen",search:"Suche",filter:"Filter",refresh:"Aktualisieren",expand:e=>e?`Erweitern Sie "${e}"`:"Erweitern",collapse:e=>e?`"${e}" minimieren`:"Zusammenbruch"},date:{days:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),daysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan_Feb_März_Apr_Mai_Jun_Jul_Aug_Sep_Okt_Nov_Dez".split("_"),firstDayOfWeek:1,format24h:!0,pluralDay:"Tage",prevMonth:"Vorheriger Monat",nextMonth:"Nächster Monat",prevYear:"Vorheriges Jahr",nextYear:"Nächstes Jahr",today:"Heute",prevRangeYears:e=>`Vorherige ${e} Jahre`,nextRangeYears:e=>`Nächste ${e} Jahre`},table:{noData:"Keine Daten vorhanden.",noResults:"Keine Einträge gefunden",loading:"Lade...",selectedRecords:e=>e>1?e+" ausgewählte Zeilen":(e===0?"Keine":"1")+" ausgewählt.",recordsPerPage:"Zeilen pro Seite",allRows:"Alle",pagination:(e,t,n)=>e+"-"+t+" von "+n,columns:"Spalten"},pagination:{first:"Erste Seite",prev:"Vorherige Seite",next:"Nächste Seite",last:"Letzte Seite"},editor:{url:"URL",bold:"Fett",italic:"Kursiv",strikethrough:"Durchgestrichen",underline:"Unterstrichen",unorderedList:"Ungeordnete Liste",orderedList:"Geordnete Liste",subscript:"tiefgestellt",superscript:"hochgestellt",hyperlink:"Link",toggleFullscreen:"Vollbild umschalten",quote:"Zitat",left:"linksbündig",center:"zentriert",right:"rechtsbündig",justify:"Ausrichten",print:"Drucken",outdent:"ausrücken",indent:"einrücken",removeFormat:"Entferne Formatierung",formatting:"Formatiere",fontSize:"Schriftgröße",align:"Ausrichten",hr:"Horizontale Linie einfügen",undo:"Rückgänging",redo:"Wiederherstellen",heading1:"Überschrift 1",heading2:"Überschrift 2",heading3:"Überschrift 3",heading4:"Überschrift 4",heading5:"Überschrift 5",heading6:"Überschrift 6",paragraph:"Absatz",code:"Code",size1:"Sehr klein",size2:"klein",size3:"Normal",size4:"Groß",size5:"Größer",size6:"Sehr groß",size7:"Maximum",defaultFont:"Standard Schrift",viewSource:"Quelltext anzeigen"},tree:{noNodes:"Keine Knoten verfügbar",noResults:"Keine passenden Knoten gefunden"}},ks={xs:18,sm:24,md:32,lg:38,xl:46},Zs={size:String};function Xs(e,t=ks){return Q(()=>e.size!==void 0?{fontSize:e.size in t?`${t[e.size]}px`:e.size}:null)}function Zd(e,t){return e!==void 0&&e()||t}function gp(e,t){if(e!==void 0){const n=e();if(n!=null)return n.slice()}return t}function hn(e,t){return e!==void 0?t.concat(e()):t}function Xd(e,t){return e===void 0?t:t!==void 0?t.concat(e()):e()}function mp(e,t,n,r,s,i){t.key=r+s;const o=G(e,t,n);return s===!0?rl(o,i()):o}const ho="0 0 24 24",ss=e=>e,is=e=>`ionicons ${e}`,ba={"mdi-":e=>`mdi ${e}`,"icon-":ss,"bt-":e=>`bt ${e}`,"eva-":e=>`eva ${e}`,"ion-md":is,"ion-ios":is,"ion-logo":is,"iconfont ":ss,"ti-":e=>`themify-icon ${e}`,"bi-":e=>`bootstrap-icons ${e}`,"i-":ss},wa={o_:"-outlined",r_:"-round",s_:"-sharp"},xa={sym_o_:"-outlined",sym_r_:"-rounded",sym_s_:"-sharp"},eh=new RegExp("^("+Object.keys(ba).join("|")+")"),th=new RegExp("^("+Object.keys(wa).join("|")+")"),po=new RegExp("^("+Object.keys(xa).join("|")+")"),nh=/^[Mm]\s?[-+]?\.?\d/,rh=/^img:/,sh=/^svguse:/,ih=/^ion-/,oh=/^(fa-(classic|sharp|solid|regular|light|brands|duotone|thin)|[lf]a[srlbdk]?) /,vr=Dn({name:"QIcon",props:{...Zs,tag:{type:String,default:"i"},name:String,color:String,left:Boolean,right:Boolean},setup(e,{slots:t}){const{proxy:{$q:n}}=ze(),r=Xs(e),s=Q(()=>"q-icon"+(e.left===!0?" on-left":"")+(e.right===!0?" on-right":"")+(e.color!==void 0?` text-${e.color}`:"")),i=Q(()=>{let o,l=e.name;if(l==="none"||!l)return{none:!0};if(n.iconMapFn!==null){const c=n.iconMapFn(l);if(c!==void 0)if(c.icon!==void 0){if(l=c.icon,l==="none"||!l)return{none:!0}}else return{cls:c.cls,content:c.content!==void 0?c.content:" "}}if(nh.test(l)===!0){const[c,f=ho]=l.split("|");return{svg:!0,viewBox:f,nodes:c.split("&&").map(d=>{const[g,v,S]=d.split("@@");return G("path",{style:v,d:g,transform:S})})}}if(rh.test(l)===!0)return{img:!0,src:l.substring(4)};if(sh.test(l)===!0){const[c,f=ho]=l.split("|");return{svguse:!0,src:c.substring(7),viewBox:f}}let a=" ";const u=l.match(eh);if(u!==null)o=ba[u[1]](l);else if(oh.test(l)===!0)o=l;else if(ih.test(l)===!0)o=`ionicons ion-${n.platform.is.ios===!0?"ios":"md"}${l.substring(3)}`;else if(po.test(l)===!0){o="notranslate material-symbols";const c=l.match(po);c!==null&&(l=l.substring(6),o+=xa[c[1]]),a=l}else{o="notranslate material-icons";const c=l.match(th);c!==null&&(l=l.substring(2),o+=wa[c[1]]),a=l}return{cls:o,content:a}});return()=>{const o={class:s.value,style:r.value,"aria-hidden":"true"};return i.value.none===!0?G(e.tag,o,Zd(t.default)):i.value.img===!0?G(e.tag,o,hn(t.default,[G("img",{src:i.value.src})])):i.value.svg===!0?G(e.tag,o,hn(t.default,[G("svg",{viewBox:i.value.viewBox||"0 0 24 24"},i.value.nodes)])):i.value.svguse===!0?G(e.tag,o,hn(t.default,[G("svg",{viewBox:i.value.viewBox},[G("use",{"xlink:href":i.value.src})])])):(i.value.cls!==void 0&&(o.class+=" "+i.value.cls),G(e.tag,o,hn(t.default,[i.value.content])))}}}),lh=Dn({name:"QAvatar",props:{...Zs,fontSize:String,color:String,textColor:String,icon:String,square:Boolean,rounded:Boolean},setup(e,{slots:t}){const n=Xs(e),r=Q(()=>"q-avatar"+(e.color?` bg-${e.color}`:"")+(e.textColor?` text-${e.textColor} q-chip--colored`:"")+(e.square===!0?" q-avatar--square":e.rounded===!0?" rounded-borders":"")),s=Q(()=>e.fontSize?{fontSize:e.fontSize}:null);return()=>{const i=e.icon!==void 0?[G(vr,{name:e.icon})]:void 0;return G("div",{class:r.value,style:n.value},[G("div",{class:"q-avatar__content row flex-center overflow-hidden",style:s.value},Xd(t.default,i))])}}}),ah={size:{type:[String,Number],default:"1em"},color:String};function ch(e){return{cSize:Q(()=>e.size in ks?`${ks[e.size]}px`:e.size),classes:Q(()=>"q-spinner"+(e.color?` text-${e.color}`:""))}}const Sa=Dn({name:"QSpinner",props:{...ah,thickness:{type:Number,default:5}},setup(e){const{cSize:t,classes:n}=ch(e);return()=>G("svg",{class:n.value+" q-spinner-mat",width:t.value,height:t.value,viewBox:"25 25 50 50"},[G("circle",{class:"path",cx:"50",cy:"50",r:"20",fill:"none",stroke:"currentColor","stroke-width":e.thickness,"stroke-miterlimit":"10"})])}});function uh(e,t){const n=e.style;for(const r in t)n[r]=t[r]}function vp(e){if(e==null)return;if(typeof e=="string")try{return document.querySelector(e)||void 0}catch{return}const t=Ot(e);if(t)return t.$el||t}function yp(e,t){if(e==null||e.contains(t)===!0)return!0;for(let n=e.nextElementSibling;n!==null;n=n.nextElementSibling)if(n.contains(t))return!0;return!1}function fh(e,t=250){let n=!1,r;return function(){return n===!1&&(n=!0,setTimeout(()=>{n=!1},t),r=e.apply(this,arguments)),r}}function go(e,t,n,r){n.modifiers.stop===!0&&Zl(e);const s=n.modifiers.color;let i=n.modifiers.center;i=i===!0||r===!0;const o=document.createElement("span"),l=document.createElement("span"),a=gf(e),{left:u,top:c,width:f,height:d}=t.getBoundingClientRect(),g=Math.sqrt(f*f+d*d),v=g/2,S=`${(f-g)/2}px`,k=i?S:`${a.left-u-v}px`,O=`${(d-g)/2}px`,x=i?O:`${a.top-c-v}px`;l.className="q-ripple__inner",uh(l,{height:`${g}px`,width:`${g}px`,transform:`translate3d(${k},${x},0) scale3d(.2,.2,1)`,opacity:0}),o.className=`q-ripple${s?" text-"+s:""}`,o.setAttribute("dir","ltr"),o.appendChild(l),t.appendChild(o);const C=()=>{o.remove(),clearTimeout(y)};n.abort.push(C);let y=setTimeout(()=>{l.classList.add("q-ripple__inner--enter"),l.style.transform=`translate3d(${S},${O},0) scale3d(1,1,1)`,l.style.opacity=.2,y=setTimeout(()=>{l.classList.remove("q-ripple__inner--enter"),l.classList.add("q-ripple__inner--leave"),l.style.opacity=0,y=setTimeout(()=>{o.remove(),n.abort.splice(n.abort.indexOf(C),1)},275)},250)},50)}function mo(e,{modifiers:t,value:n,arg:r}){const s=Object.assign({},e.cfg.ripple,t,n);e.modifiers={early:s.early===!0,stop:s.stop===!0,center:s.center===!0,color:s.color||r,keyCodes:[].concat(s.keyCodes||13)}}const dh=pf({name:"ripple",beforeMount(e,t){const n=t.instance.$.appContext.config.globalProperties.$q.config||{};if(n.ripple===!1)return;const r={cfg:n,enabled:t.value!==!1,modifiers:{},abort:[],start(s){r.enabled===!0&&s.qSkipRipple!==!0&&s.type===(r.modifiers.early===!0?"pointerdown":"click")&&go(s,e,r,s.qKeyEvent===!0)},keystart:fh(s=>{r.enabled===!0&&s.qSkipRipple!==!0&&Ss(s,r.modifiers.keyCodes)===!0&&s.type===`key${r.modifiers.early===!0?"down":"up"}`&&go(s,e,r,!0)},300)};mo(r,t),e.__qripple=r,mf(r,"main",[[e,"pointerdown","start","passive"],[e,"click","start","passive"],[e,"keydown","keystart","passive"],[e,"keyup","keystart","passive"]])},updated(e,t){if(t.oldValue!==t.value){const n=e.__qripple;n!==void 0&&(n.enabled=t.value!==!1,n.enabled===!0&&Object(t.value)===t.value&&mo(n,t))}},beforeUnmount(e){const t=e.__qripple;t!==void 0&&(t.abort.forEach(n=>{n()}),vf(t,"main"),delete e._qripple)}}),Ea={left:"start",center:"center",right:"end",between:"between",around:"around",evenly:"evenly",stretch:"stretch"},hh=Object.keys(Ea),ph={align:{type:String,validator:e=>hh.includes(e)}};function gh(e){return Q(()=>{const t=e.align===void 0?e.vertical===!0?"stretch":"left":e.align;return`${e.vertical===!0?"items":"justify"}-${Ea[t]}`})}function _p(e){if(Object(e.$parent)===e.$parent)return e.$parent;let{parent:t}=e.$;for(;Object(t)===t;){if(Object(t.proxy)===t.proxy)return t.proxy;t=t.parent}}function Ca(e,t){typeof t.type=="symbol"?Array.isArray(t.children)===!0&&t.children.forEach(n=>{Ca(e,n)}):e.add(t)}function bp(e){const t=new Set;return e.forEach(n=>{Ca(t,n)}),Array.from(t)}function mh(e){return e.appContext.config.globalProperties.$router!==void 0}function wp(e){return e.isUnmounted===!0||e.isDeactivated===!0}function vo(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}function yo(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function vh(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(Array.isArray(s)===!1||s.length!==r.length||r.some((i,o)=>i!==s[o]))return!1}return!0}function _o(e,t){return Array.isArray(t)===!0?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function yh(e,t){return Array.isArray(e)===!0?_o(e,t):Array.isArray(t)===!0?_o(t,e):e===t}function _h(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(yh(e[n],t[n])===!1)return!1;return!0}const Ra={to:[String,Object],replace:Boolean,href:String,target:String,disable:Boolean},xp={...Ra,exact:Boolean,activeClass:{type:String,default:"q-router-link--active"},exactActiveClass:{type:String,default:"q-router-link--exact-active"}};function bh({fallbackTag:e,useDisableForRouterLinkProps:t=!0}={}){const n=ze(),{props:r,proxy:s,emit:i}=n,o=mh(n),l=Q(()=>r.disable!==!0&&r.href!==void 0),a=Q(t===!0?()=>o===!0&&r.disable!==!0&&l.value!==!0&&r.to!==void 0&&r.to!==null&&r.to!=="":()=>o===!0&&l.value!==!0&&r.to!==void 0&&r.to!==null&&r.to!==""),u=Q(()=>a.value===!0?x(r.to):null),c=Q(()=>u.value!==null),f=Q(()=>l.value===!0||c.value===!0),d=Q(()=>r.type==="a"||f.value===!0?"a":r.tag||e||"div"),g=Q(()=>l.value===!0?{href:r.href,target:r.target}:c.value===!0?{href:u.value.href,target:r.target}:{}),v=Q(()=>{if(c.value===!1)return-1;const{matched:T}=u.value,{length:H}=T,q=T[H-1];if(q===void 0)return-1;const F=s.$route.matched;if(F.length===0)return-1;const R=F.findIndex(yo.bind(null,q));if(R!==-1)return R;const B=vo(T[H-2]);return H>1&&vo(q)===B&&F[F.length-1].path!==B?F.findIndex(yo.bind(null,T[H-2])):R}),S=Q(()=>c.value===!0&&v.value!==-1&&vh(s.$route.params,u.value.params)),k=Q(()=>S.value===!0&&v.value===s.$route.matched.length-1&&_h(s.$route.params,u.value.params)),O=Q(()=>c.value===!0?k.value===!0?` ${r.exactActiveClass} ${r.activeClass}`:r.exact===!0?"":S.value===!0?` ${r.activeClass}`:"":"");function x(T){try{return s.$router.resolve(T)}catch{}return null}function C(T,{returnRouterError:H,to:q=r.to,replace:F=r.replace}={}){if(r.disable===!0)return T.preventDefault(),Promise.resolve(!1);if(T.metaKey||T.altKey||T.ctrlKey||T.shiftKey||T.button!==void 0&&T.button!==0||r.target==="_blank")return Promise.resolve(!1);T.preventDefault();const R=s.$router[F===!0?"replace":"push"](q);return H===!0?R:R.then(()=>{}).catch(()=>{})}function y(T){if(c.value===!0){const H=q=>C(T,q);i("click",T,H),T.defaultPrevented!==!0&&H()}else i("click",T)}return{hasRouterLink:c,hasHrefLink:l,hasLink:f,linkTag:d,resolvedLink:u,linkIsActive:S,linkIsExactActive:k,linkClass:O,linkAttrs:g,getLink:x,navigateToRouterLink:C,navigateOnClick:y}}const bo={none:0,xs:4,sm:8,md:16,lg:24,xl:32},wh={xs:8,sm:10,md:14,lg:20,xl:24},xh=["button","submit","reset"],Sh=/[^\s]\/[^\s]/,Eh=["flat","outline","push","unelevated"];function Pa(e,t){return e.flat===!0?"flat":e.outline===!0?"outline":e.push===!0?"push":e.unelevated===!0?"unelevated":t}function Sp(e){const t=Pa(e);return t!==void 0?{[t]:!0}:{}}const Ch={...Zs,...Ra,type:{type:String,default:"button"},label:[Number,String],icon:String,iconRight:String,...Eh.reduce((e,t)=>(e[t]=Boolean)&&e,{}),square:Boolean,rounded:Boolean,glossy:Boolean,size:String,fab:Boolean,fabMini:Boolean,padding:String,color:String,textColor:String,noCaps:Boolean,noWrap:Boolean,dense:Boolean,tabindex:[Number,String],ripple:{type:[Boolean,Object],default:!0},align:{...ph.align,default:"center"},stack:Boolean,stretch:Boolean,loading:{type:Boolean,default:null},disable:Boolean},Rh={...Ch,round:Boolean};function Ph(e){const t=Xs(e,wh),n=gh(e),{hasRouterLink:r,hasLink:s,linkTag:i,linkAttrs:o,navigateOnClick:l}=bh({fallbackTag:"button"}),a=Q(()=>{const k=e.fab===!1&&e.fabMini===!1?t.value:{};return e.padding!==void 0?Object.assign({},k,{padding:e.padding.split(/\s+/).map(O=>O in bo?bo[O]+"px":O).join(" "),minWidth:"0",minHeight:"0"}):k}),u=Q(()=>e.rounded===!0||e.fab===!0||e.fabMini===!0),c=Q(()=>e.disable!==!0&&e.loading!==!0),f=Q(()=>c.value===!0?e.tabindex||0:-1),d=Q(()=>Pa(e,"standard")),g=Q(()=>{const k={tabindex:f.value};return s.value===!0?Object.assign(k,o.value):xh.includes(e.type)===!0&&(k.type=e.type),i.value==="a"?(e.disable===!0?k["aria-disabled"]="true":k.href===void 0&&(k.role="button"),r.value!==!0&&Sh.test(e.type)===!0&&(k.type=e.type)):e.disable===!0&&(k.disabled="",k["aria-disabled"]="true"),e.loading===!0&&e.percentage!==void 0&&Object.assign(k,{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":e.percentage}),k}),v=Q(()=>{let k;e.color!==void 0?e.flat===!0||e.outline===!0?k=`text-${e.textColor||e.color}`:k=`bg-${e.color} text-${e.textColor||"white"}`:e.textColor&&(k=`text-${e.textColor}`);const O=e.round===!0?"round":`rectangle${u.value===!0?" q-btn--rounded":e.square===!0?" q-btn--square":""}`;return`q-btn--${d.value} q-btn--${O}`+(k!==void 0?" "+k:"")+(c.value===!0?" q-btn--actionable q-focusable q-hoverable":e.disable===!0?" disabled":"")+(e.fab===!0?" q-btn--fab":e.fabMini===!0?" q-btn--fab-mini":"")+(e.noCaps===!0?" q-btn--no-uppercase":"")+(e.dense===!0?" q-btn--dense":"")+(e.stretch===!0?" no-border-radius self-stretch":"")+(e.glossy===!0?" glossy":"")+(e.square?" q-btn--square":"")}),S=Q(()=>n.value+(e.stack===!0?" column":" row")+(e.noWrap===!0?" no-wrap text-no-wrap":"")+(e.loading===!0?" q-btn__content--hidden":""));return{classes:v,style:a,innerClasses:S,attributes:g,hasLink:s,linkTag:i,navigateOnClick:l,isActionable:c}}const{passiveCapture:Ne}=jt;let Ut=null,Wt=null,Gt=null;const Th=Dn({name:"QBtn",props:{...Rh,percentage:Number,darkPercentage:Boolean,onTouchstart:[Function,Array]},emits:["click","keydown","mousedown","keyup"],setup(e,{slots:t,emit:n}){const{proxy:r}=ze(),{classes:s,style:i,innerClasses:o,attributes:l,hasLink:a,linkTag:u,navigateOnClick:c,isActionable:f}=Ph(e),d=Nt(null),g=Nt(null);let v=null,S,k=null;const O=Q(()=>e.label!==void 0&&e.label!==null&&e.label!==""),x=Q(()=>e.disable===!0||e.ripple===!1?!1:{keyCodes:a.value===!0?[13,32]:[13],...e.ripple===!0?{}:e.ripple}),C=Q(()=>({center:e.round})),y=Q(()=>{const j=Math.max(0,Math.min(100,e.percentage));return j>0?{transition:"transform 0.6s",transform:`translateX(${j-100}%)`}:{}}),T=Q(()=>{if(e.loading===!0)return{onMousedown:X,onTouchstart:X,onClick:X,onKeydown:X,onKeyup:X};if(f.value===!0){const j={onClick:q,onKeydown:F,onMousedown:B};if(r.$q.platform.has.touch===!0){const ee=e.onTouchstart!==void 0?"":"Passive";j[`onTouchstart${ee}`]=R}return j}return{onClick:zt}}),H=Q(()=>({ref:d,class:"q-btn q-btn-item non-selectable no-outline "+s.value,style:i.value,...l.value,...T.value}));function q(j){if(d.value!==null){if(j!==void 0){if(j.defaultPrevented===!0)return;const ee=document.activeElement;if(e.type==="submit"&&ee!==document.body&&d.value.contains(ee)===!1&&ee.contains(d.value)===!1){j.qAvoidFocus!==!0&&d.value.focus();const re=()=>{document.removeEventListener("keydown",zt,!0),document.removeEventListener("keyup",re,Ne),d.value?.removeEventListener("blur",re,Ne)};document.addEventListener("keydown",zt,!0),document.addEventListener("keyup",re,Ne),d.value.addEventListener("blur",re,Ne)}}c(j)}}function F(j){d.value!==null&&(n("keydown",j),Ss(j,[13,32])===!0&&Wt!==d.value&&(Wt!==null&&L(),j.defaultPrevented!==!0&&(j.qAvoidFocus!==!0&&d.value.focus(),Wt=d.value,d.value.classList.add("q-btn--active"),document.addEventListener("keyup",U,!0),d.value.addEventListener("blur",U,Ne)),zt(j)))}function R(j){d.value!==null&&(n("touchstart",j),j.defaultPrevented!==!0&&(Ut!==d.value&&(Ut!==null&&L(),Ut=d.value,v=j.target,v.addEventListener("touchcancel",U,Ne),v.addEventListener("touchend",U,Ne)),S=!0,k!==null&&clearTimeout(k),k=setTimeout(()=>{k=null,S=!1},200)))}function B(j){d.value!==null&&(j.qSkipRipple=S===!0,n("mousedown",j),j.defaultPrevented!==!0&&Gt!==d.value&&(Gt!==null&&L(),Gt=d.value,d.value.classList.add("q-btn--active"),document.addEventListener("mouseup",U,Ne)))}function U(j){if(d.value!==null&&!(j?.type==="blur"&&document.activeElement===d.value)){if(j?.type==="keyup"){if(Wt===d.value&&Ss(j,[13,32])===!0){const ee=new MouseEvent("click",j);ee.qKeyEvent=!0,j.defaultPrevented===!0&&xs(ee),j.cancelBubble===!0&&Zl(ee),d.value.dispatchEvent(ee),zt(j),j.qKeyEvent=!0}n("keyup",j)}L()}}function L(j){const ee=g.value;j!==!0&&(Ut===d.value||Gt===d.value)&&ee!==null&&ee!==document.activeElement&&(ee.setAttribute("tabindex",-1),ee.focus()),Ut===d.value&&(v!==null&&(v.removeEventListener("touchcancel",U,Ne),v.removeEventListener("touchend",U,Ne)),Ut=v=null),Gt===d.value&&(document.removeEventListener("mouseup",U,Ne),Gt=null),Wt===d.value&&(document.removeEventListener("keyup",U,!0),d.value?.removeEventListener("blur",U,Ne),Wt=null),d.value?.classList.remove("q-btn--active")}function X(j){zt(j),j.qSkipRipple=!0}return Ar(()=>{L(!0)}),Object.assign(r,{click:j=>{f.value===!0&&q(j)}}),()=>{let j=[];e.icon!==void 0&&j.push(G(vr,{name:e.icon,left:e.stack!==!0&&O.value===!0,role:"img"})),O.value===!0&&j.push(G("span",{class:"block"},[e.label])),j=hn(t.default,j),e.iconRight!==void 0&&e.round===!1&&j.push(G(vr,{name:e.iconRight,right:e.stack!==!0&&O.value===!0,role:"img"}));const ee=[G("span",{class:"q-focus-helper",ref:g})];return e.loading===!0&&e.percentage!==void 0&&ee.push(G("span",{class:"q-btn__progress absolute-full overflow-hidden"+(e.darkPercentage===!0?" q-btn__progress--dark":"")},[G("span",{class:"q-btn__progress-indicator fit block",style:y.value})])),ee.push(G("span",{class:"q-btn__content text-center col items-center q-anchor--skip "+o.value},j)),e.loading!==null&&ee.push(G(Lu,{name:"q-transition--fade"},()=>e.loading===!0?[G("span",{key:"loading",class:"absolute-full flex flex-center"},t.loading!==void 0?t.loading():[G(Sa)])]:null)),rl(G(u.value,H.value,ee),[[dh,x.value,void 0,C.value]])}}});let kh=1,Ah=document.body;function Oh(e,t){const n=document.createElement("div");if(n.id=t!==void 0?`q-portal--${t}--${kh++}`:e,mr.globalNodes!==void 0){const r=mr.globalNodes.class;r!==void 0&&(n.className=r)}return Ah.appendChild(n),n}function Ep(e){e.remove()}let Mh=0;const Xn={},er={},De={},Ta={},Lh=/^\s*$/,ka=[],$h=[void 0,null,!0,!1,""],ei=["top-left","top-right","bottom-left","bottom-right","top","bottom","left","right","center"],Nh=["top-left","top-right","bottom-left","bottom-right"],pn={positive:{icon:e=>e.iconSet.type.positive,color:"positive"},negative:{icon:e=>e.iconSet.type.negative,color:"negative"},warning:{icon:e=>e.iconSet.type.warning,color:"warning",textColor:"dark"},info:{icon:e=>e.iconSet.type.info,color:"info"},ongoing:{group:!1,timeout:0,spinner:!0,color:"grey-8"}};function Aa(e,t,n){if(!e)return un("parameter required");let r;const s={textColor:"white"};if(e.ignoreDefaults!==!0&&Object.assign(s,Xn),Ln(e)===!1&&(s.type&&Object.assign(s,pn[s.type]),e={message:e}),Object.assign(s,pn[e.type||s.type],e),typeof s.icon=="function"&&(s.icon=s.icon(t)),s.spinner?(s.spinner===!0&&(s.spinner=Sa),s.spinner=qt(s.spinner)):s.spinner=!1,s.meta={hasMedia:!!(s.spinner!==!1||s.icon||s.avatar),hasText:wo(s.message)||wo(s.caption)},s.position){if(ei.includes(s.position)===!1)return un("wrong position",e)}else s.position="bottom";if($h.includes(s.timeout)===!0)s.timeout=5e3;else{const a=Number(s.timeout);if(isNaN(a)||a<0)return un("wrong timeout",e);s.timeout=Number.isFinite(a)?a:0}s.timeout===0?s.progress=!1:s.progress===!0&&(s.meta.progressClass="q-notification__progress"+(s.progressClass?` ${s.progressClass}`:""),s.meta.progressStyle={animationDuration:`${s.timeout+1e3}ms`});const i=(Array.isArray(e.actions)===!0?e.actions:[]).concat(e.ignoreDefaults!==!0&&Array.isArray(Xn.actions)===!0?Xn.actions:[]).concat(Array.isArray(pn[e.type]?.actions)===!0?pn[e.type].actions:[]),{closeBtn:o}=s;if(o&&i.push({label:typeof o=="string"?o:t.lang.label.close}),s.actions=i.map(({handler:a,noDismiss:u,...c})=>({flat:!0,...c,onClick:typeof a=="function"?()=>{a(),u!==!0&&l()}:()=>{l()}})),s.multiLine===void 0&&(s.multiLine=s.actions.length>1),Object.assign(s.meta,{class:`q-notification row items-stretch q-notification--${s.multiLine===!0?"multi-line":"standard"}`+(s.color!==void 0?` bg-${s.color}`:"")+(s.textColor!==void 0?` text-${s.textColor}`:"")+(s.classes!==void 0?` ${s.classes}`:""),wrapperClass:"q-notification__wrapper col relative-position border-radius-inherit "+(s.multiLine===!0?"column no-wrap justify-center":"row items-center"),contentClass:"q-notification__content row items-center"+(s.multiLine===!0?"":" col"),leftClass:s.meta.hasText===!0?"additional":"single",attrs:{role:"alert",...s.attrs}}),s.group===!1?(s.group=void 0,s.meta.group=void 0):((s.group===void 0||s.group===!0)&&(s.group=[s.message,s.caption,s.multiline].concat(s.actions.map(a=>`${a.label}*${a.icon}`)).join("|")),s.meta.group=s.group+"|"+s.position),s.actions.length===0?s.actions=void 0:s.meta.actionsClass="q-notification__actions row items-center "+(s.multiLine===!0?"justify-end":"col-auto")+(s.meta.hasMedia===!0?" q-notification__actions--with-media":""),n!==void 0){n.notif.meta.timer&&(clearTimeout(n.notif.meta.timer),n.notif.meta.timer=void 0),s.meta.uid=n.notif.meta.uid;const a=De[s.position].value.indexOf(n.notif);De[s.position].value[a]=s}else{const a=er[s.meta.group];if(a===void 0){if(s.meta.uid=Mh++,s.meta.badge=1,["left","right","center"].indexOf(s.position)!==-1)De[s.position].value.splice(Math.floor(De[s.position].value.length/2),0,s);else{const u=s.position.indexOf("top")!==-1?"unshift":"push";De[s.position].value[u](s)}s.group!==void 0&&(er[s.meta.group]=s)}else{if(a.meta.timer&&(clearTimeout(a.meta.timer),a.meta.timer=void 0),s.badgePosition!==void 0){if(Nh.includes(s.badgePosition)===!1)return un("wrong badgePosition",e)}else s.badgePosition=`top-${s.position.indexOf("left")!==-1?"right":"left"}`;s.meta.uid=a.meta.uid,s.meta.badge=a.meta.badge+1,s.meta.badgeClass=`q-notification__badge q-notification__badge--${s.badgePosition}`+(s.badgeColor!==void 0?` bg-${s.badgeColor}`:"")+(s.badgeTextColor!==void 0?` text-${s.badgeTextColor}`:"")+(s.badgeClass?` ${s.badgeClass}`:"");const u=De[s.position].value.indexOf(a);De[s.position].value[u]=er[s.meta.group]=s}}const l=()=>{Ih(s),r=void 0};if(s.timeout>0&&(s.meta.timer=setTimeout(()=>{s.meta.timer=void 0,l()},s.timeout+1e3)),s.group!==void 0)return a=>{a!==void 0?un("trying to update a grouped one which is forbidden",e):l()};if(r={dismiss:l,config:e,notif:s},n!==void 0){Object.assign(n,r);return}return a=>{if(r!==void 0)if(a===void 0)r.dismiss();else{const u=Object.assign({},r.config,a,{group:!1,position:s.position});Aa(u,t,r)}}}function Ih(e){e.meta.timer&&(clearTimeout(e.meta.timer),e.meta.timer=void 0);const t=De[e.position].value.indexOf(e);if(t!==-1){e.group!==void 0&&delete er[e.meta.group];const n=ka[""+e.meta.uid];if(n){const{width:r,height:s}=getComputedStyle(n);n.style.left=`${n.offsetLeft}px`,n.style.width=r,n.style.height=s}De[e.position].value.splice(t,1),typeof e.onDismiss=="function"&&e.onDismiss()}}function wo(e){return e!=null&&Lh.test(e)!==!0}function un(e,t){return console.error(`Notify: ${e}`,t),!1}function jh(){return Dn({name:"QNotifications",devtools:{hide:!0},setup(){return()=>G("div",{class:"q-notifications"},ei.map(e=>G(Zu,{key:e,class:Ta[e],tag:"div",name:`q-notification--${e}`},()=>De[e].value.map(t=>{const n=t.meta,r=[];if(n.hasMedia===!0&&(t.spinner!==!1?r.push(G(t.spinner,{class:"q-notification__spinner q-notification__spinner--"+n.leftClass,color:t.spinnerColor,size:t.spinnerSize})):t.icon?r.push(G(vr,{class:"q-notification__icon q-notification__icon--"+n.leftClass,name:t.icon,color:t.iconColor,size:t.iconSize,role:"img"})):t.avatar&&r.push(G(lh,{class:"q-notification__avatar q-notification__avatar--"+n.leftClass},()=>G("img",{src:t.avatar,"aria-hidden":"true"})))),n.hasText===!0){let i;const o={class:"q-notification__message col"};if(t.html===!0)o.innerHTML=t.caption?`
${t.message}
${t.caption}
`:t.message;else{const l=[t.message];i=t.caption?[G("div",l),G("div",{class:"q-notification__caption"},[t.caption])]:l}r.push(G("div",o,i))}const s=[G("div",{class:n.contentClass},r)];return t.progress===!0&&s.push(G("div",{key:`${n.uid}|p|${n.badge}`,class:n.progressClass,style:n.progressStyle})),t.actions!==void 0&&s.push(G("div",{class:n.actionsClass},t.actions.map(i=>G(Th,i)))),n.badge>1&&s.push(G("div",{key:`${n.uid}|${n.badge}`,class:t.meta.badgeClass,style:t.badgeStyle},[n.badge])),G("div",{ref:i=>{ka[""+n.uid]=i},key:n.uid,class:n.class,...n.attrs},[G("div",{class:n.wrapperClass},s)])}))))}})}const Fh={setDefaults(e){Ln(e)===!0&&Object.assign(Xn,e)},registerType(e,t){Ln(t)===!0&&(pn[e]=t)},install({$q:e,parentApp:t}){if(e.notify=this.create=n=>Aa(n,e),e.notify.setDefaults=this.setDefaults,e.notify.registerType=this.registerType,e.config.notify!==void 0&&this.setDefaults(e.config.notify),this.__installed!==!0){ei.forEach(r=>{De[r]=Nt([]);const s=["left","center","right"].includes(r)===!0?"center":r.indexOf("top")!==-1?"top":"bottom",i=r.indexOf("left")!==-1?"start":r.indexOf("right")!==-1?"end":"center",o=["left","right"].includes(r)?`items-${r==="left"?"start":"end"} justify-center`:r==="center"?"flex-center":`items-${i}`;Ta[r]=`q-notifications__list q-notifications__list--${s} fixed column no-wrap ${o}`});const n=Oh("q-notify");$f(jh(),t).mount(n)}}},Dh={config:{dark:"auto"},lang:Yd,plugins:{Notify:Fh}},qh="/openWB/web/themes/koala/";async function Bh({app:e,router:t,store:n},r){let s=!1;const i=a=>{try{return t.resolve(a).href}catch{}return Object(a)===a?null:a},o=a=>{if(s=!0,typeof a=="string"&&/^https?:\/\//.test(a)){window.location.href=a;return}const u=i(a);u!==null&&(window.location.href=u,window.location.reload())},l=window.location.href.replace(window.location.origin,"");for(let a=0;s===!1&&a{const[t,n]=Promise.allSettled!==void 0?["allSettled",r=>r.map(s=>{if(s.status==="rejected"){console.error("[Quasar] boot error:",s.reason);return}return s.value.default})]:["all",r=>r.map(s=>s.default)];return Promise[t]([Wn(()=>import("./store-init-DA2xVgRy.js"),__vite__mapDeps([6,4]))]).then(r=>{const s=n(r).filter(i=>typeof i=="function");Bh(e,s)})});export{Af as $,Dt as A,Ks as B,Rr as C,Dc as D,ur as E,cr as F,Rc as G,Pe as H,_u as I,vr as J,cp as K,Ss as L,xf as M,zt as N,pf as O,vf as P,Th as Q,dh as R,Xe as S,ip as T,mf as U,gf as V,rp as W,Lu as X,bp as Y,Kh as Z,mh as _,Q as a,$c as a0,dp as a1,ep as a2,Yh as a3,jl as a4,Re as a5,Wh as a6,Sr as a7,Zh as a8,Wa as a9,np as aA,Jh as aB,Gh as aC,Xh as aD,Hh as aE,yu as aF,bu as aG,ph as aH,gh as aI,pe as aJ,ws as aK,zh as aL,xp as aM,bh as aN,_p as aO,Vh as aP,Oh as aQ,Ep as aR,wp as aS,vp as aT,uh as aU,sp as aV,Mf as aW,Go as aa,Tu as ab,ne as ac,qs as ad,pp as ae,yp as af,Ch as ag,Sp as ah,Zl as ai,Ot as aj,Uh as ak,tp as al,_f as am,Qh as an,gl as ao,ap,$r as aq,xs as ar,Sa as as,Zs as at,Xs as au,Xd as av,Yr as aw,zs as ax,fp as ay,Ln as az,hp as b,Dn as c,Zd as d,up as e,gp as f,ze as g,G as h,Ze as i,rl as j,jt as k,op as l,kr as m,Mn as n,Ar as o,yf as p,Mc as q,Nt as r,Oc as s,hn as t,Bs as u,mp as v,$t as w,Qn as x,lp as y,It as z}; + */const Jt=typeof document<"u";function la(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Kf(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&la(e.default)}const ie=Object.assign;function es(e,t){const n={};for(const r in t){const s=t[r];n[r]=Ve(s)?s.map(e):e(s)}return n}const En=()=>{},Ve=Array.isArray,aa=/#/g,Uf=/&/g,Wf=/\//g,Gf=/=/g,Qf=/\?/g,ca=/\+/g,Jf=/%5B/g,Yf=/%5D/g,ua=/%5E/g,Zf=/%60/g,fa=/%7B/g,Xf=/%7C/g,da=/%7D/g,ed=/%20/g;function Js(e){return encodeURI(""+e).replace(Xf,"|").replace(Jf,"[").replace(Yf,"]")}function td(e){return Js(e).replace(fa,"{").replace(da,"}").replace(ua,"^")}function Rs(e){return Js(e).replace(ca,"%2B").replace(ed,"+").replace(aa,"%23").replace(Uf,"%26").replace(Zf,"`").replace(fa,"{").replace(da,"}").replace(ua,"^")}function nd(e){return Rs(e).replace(Gf,"%3D")}function rd(e){return Js(e).replace(aa,"%23").replace(Qf,"%3F")}function sd(e){return e==null?"":rd(e).replace(Wf,"%2F")}function $n(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const id=/\/$/,od=e=>e.replace(id,"");function ts(e,t,n="/"){let r,s={},i="",o="";const l=t.indexOf("#");let a=t.indexOf("?");return l=0&&(a=-1),a>-1&&(r=t.slice(0,a),i=t.slice(a+1,l>-1?l:t.length),s=e(i)),l>-1&&(r=r||t.slice(0,l),o=t.slice(l,t.length)),r=ud(r??t,n),{fullPath:r+(i&&"?")+i+o,path:r,query:s,hash:$n(o)}}function ld(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Qi(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function ad(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&nn(t.matched[r],n.matched[s])&&ha(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function nn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function ha(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!cd(e[n],t[n]))return!1;return!0}function cd(e,t){return Ve(e)?Ji(e,t):Ve(t)?Ji(t,e):e===t}function Ji(e,t){return Ve(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function ud(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let i=n.length-1,o,l;for(o=0;o1&&i--;else break;return n.slice(0,i).join("/")+"/"+r.slice(o).join("/")}const ht={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var Nn;(function(e){e.pop="pop",e.push="push"})(Nn||(Nn={}));var Cn;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Cn||(Cn={}));function fd(e){if(!e)if(Jt){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),od(e)}const dd=/^[^#]+#/;function hd(e,t){return e.replace(dd,"#")+t}function pd(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const jr=()=>({left:window.scrollX,top:window.scrollY});function gd(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=pd(s,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function Yi(e,t){return(history.state?history.state.position-t:-1)+e}const Ps=new Map;function md(e,t){Ps.set(e,t)}function vd(e){const t=Ps.get(e);return Ps.delete(e),t}let yd=()=>location.protocol+"//"+location.host;function pa(e,t){const{pathname:n,search:r,hash:s}=t,i=e.indexOf("#");if(i>-1){let l=s.includes(e.slice(i))?e.slice(i).length:1,a=s.slice(l);return a[0]!=="/"&&(a="/"+a),Qi(a,"")}return Qi(n,e)+r+s}function _d(e,t,n,r){let s=[],i=[],o=null;const l=({state:d})=>{const g=pa(e,location),v=n.value,S=t.value;let k=0;if(d){if(n.value=g,t.value=d,o&&o===v){o=null;return}k=S?d.position-S.position:0}else r(g);s.forEach(O=>{O(n.value,v,{delta:k,type:Nn.pop,direction:k?k>0?Cn.forward:Cn.back:Cn.unknown})})};function a(){o=n.value}function u(d){s.push(d);const g=()=>{const v=s.indexOf(d);v>-1&&s.splice(v,1)};return i.push(g),g}function c(){const{history:d}=window;d.state&&d.replaceState(ie({},d.state,{scroll:jr()}),"")}function f(){for(const d of i)d();i=[],window.removeEventListener("popstate",l),window.removeEventListener("beforeunload",c)}return window.addEventListener("popstate",l),window.addEventListener("beforeunload",c,{passive:!0}),{pauseListeners:a,listen:u,destroy:f}}function Zi(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?jr():null}}function bd(e){const{history:t,location:n}=window,r={value:pa(e,n)},s={value:t.state};s.value||i(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function i(a,u,c){const f=e.indexOf("#"),d=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+a:yd()+e+a;try{t[c?"replaceState":"pushState"](u,"",d),s.value=u}catch(g){console.error(g),n[c?"replace":"assign"](d)}}function o(a,u){const c=ie({},t.state,Zi(s.value.back,a,s.value.forward,!0),u,{position:s.value.position});i(a,c,!0),r.value=a}function l(a,u){const c=ie({},s.value,t.state,{forward:a,scroll:jr()});i(c.current,c,!0);const f=ie({},Zi(r.value,a,null),{position:c.position+1},u);i(a,f,!1),r.value=a}return{location:r,state:s,push:l,replace:o}}function wd(e){e=fd(e);const t=bd(e),n=_d(e,t.state,t.location,t.replace);function r(i,o=!0){o||n.pauseListeners(),history.go(i)}const s=ie({location:"",base:e,go:r,createHref:hd.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function xd(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),wd(e)}function Sd(e){return typeof e=="string"||e&&typeof e=="object"}function ga(e){return typeof e=="string"||typeof e=="symbol"}const ma=Symbol("");var Xi;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(Xi||(Xi={}));function rn(e,t){return ie(new Error,{type:e,[ma]:!0},t)}function nt(e,t){return e instanceof Error&&ma in e&&(t==null||!!(e.type&t))}const eo="[^/]+?",Ed={sensitive:!1,strict:!1,start:!0,end:!0},Cd=/[.+*?^${}()[\]/\\]/g;function Rd(e,t){const n=ie({},Ed,t),r=[];let s=n.start?"^":"";const i=[];for(const u of e){const c=u.length?[]:[90];n.strict&&!u.length&&(s+="/");for(let f=0;ft.length?t.length===1&&t[0]===80?1:-1:0}function va(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const Td={type:0,value:""},kd=/[a-zA-Z0-9_]/;function Ad(e){if(!e)return[[]];if(e==="/")return[[Td]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(g){throw new Error(`ERR (${n})/"${u}": ${g}`)}let n=0,r=n;const s=[];let i;function o(){i&&s.push(i),i=[]}let l=0,a,u="",c="";function f(){u&&(n===0?i.push({type:0,value:u}):n===1||n===2||n===3?(i.length>1&&(a==="*"||a==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),i.push({type:1,value:u,regexp:c,repeatable:a==="*"||a==="+",optional:a==="*"||a==="?"})):t("Invalid state to consume buffer"),u="")}function d(){u+=a}for(;l{o(C)}:En}function o(f){if(ga(f)){const d=r.get(f);d&&(r.delete(f),n.splice(n.indexOf(d),1),d.children.forEach(o),d.alias.forEach(o))}else{const d=n.indexOf(f);d>-1&&(n.splice(d,1),f.record.name&&r.delete(f.record.name),f.children.forEach(o),f.alias.forEach(o))}}function l(){return n}function a(f){const d=Nd(f,n);n.splice(d,0,f),f.record.name&&!so(f)&&r.set(f.record.name,f)}function u(f,d){let g,v={},S,k;if("name"in f&&f.name){if(g=r.get(f.name),!g)throw rn(1,{location:f});k=g.record.name,v=ie(no(d.params,g.keys.filter(C=>!C.optional).concat(g.parent?g.parent.keys.filter(C=>C.optional):[]).map(C=>C.name)),f.params&&no(f.params,g.keys.map(C=>C.name))),S=g.stringify(v)}else if(f.path!=null)S=f.path,g=n.find(C=>C.re.test(S)),g&&(v=g.parse(S),k=g.record.name);else{if(g=d.name?r.get(d.name):n.find(C=>C.re.test(d.path)),!g)throw rn(1,{location:f,currentLocation:d});k=g.record.name,v=ie({},d.params,f.params),S=g.stringify(v)}const O=[];let x=g;for(;x;)O.unshift(x.record),x=x.parent;return{name:k,path:S,params:v,matched:O,meta:$d(O)}}e.forEach(f=>i(f));function c(){n.length=0,r.clear()}return{addRoute:i,resolve:u,removeRoute:o,clearRoutes:c,getRoutes:l,getRecordMatcher:s}}function no(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function ro(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:Ld(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function Ld(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function so(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function $d(e){return e.reduce((t,n)=>ie(t,n.meta),{})}function io(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function Nd(e,t){let n=0,r=t.length;for(;n!==r;){const i=n+r>>1;va(e,t[i])<0?r=i:n=i+1}const s=Id(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function Id(e){let t=e;for(;t=t.parent;)if(ya(t)&&va(e,t)===0)return t}function ya({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function jd(e){const t={};if(e===""||e==="?")return t;const r=(e[0]==="?"?e.slice(1):e).split("&");for(let s=0;si&&Rs(i)):[r&&Rs(r)]).forEach(i=>{i!==void 0&&(t+=(t.length?"&":"")+n,i!=null&&(t+="="+i))})}return t}function Fd(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=Ve(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const Dd=Symbol(""),lo=Symbol(""),Ys=Symbol(""),_a=Symbol(""),Ts=Symbol("");function cn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function bt(e,t,n,r,s,i=o=>o()){const o=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((l,a)=>{const u=d=>{d===!1?a(rn(4,{from:n,to:t})):d instanceof Error?a(d):Sd(d)?a(rn(2,{from:t,to:d})):(o&&r.enterCallbacks[s]===o&&typeof d=="function"&&o.push(d),l())},c=i(()=>e.call(r&&r.instances[s],t,n,u));let f=Promise.resolve(c);e.length<3&&(f=f.then(u)),f.catch(d=>a(d))})}function ns(e,t,n,r,s=i=>i()){const i=[];for(const o of e)for(const l in o.components){let a=o.components[l];if(!(t!=="beforeRouteEnter"&&!o.instances[l]))if(la(a)){const c=(a.__vccOpts||a)[t];c&&i.push(bt(c,n,r,o,l,s))}else{let u=a();i.push(()=>u.then(c=>{if(!c)throw new Error(`Couldn't resolve component "${l}" at "${o.path}"`);const f=Kf(c)?c.default:c;o.mods[l]=c,o.components[l]=f;const g=(f.__vccOpts||f)[t];return g&&bt(g,n,r,o,l,s)()}))}}return i}function ao(e){const t=Ze(Ys),n=Ze(_a),r=Q(()=>{const a=Ot(e.to);return t.resolve(a)}),s=Q(()=>{const{matched:a}=r.value,{length:u}=a,c=a[u-1],f=n.matched;if(!c||!f.length)return-1;const d=f.findIndex(nn.bind(null,c));if(d>-1)return d;const g=co(a[u-2]);return u>1&&co(c)===g&&f[f.length-1].path!==g?f.findIndex(nn.bind(null,a[u-2])):d}),i=Q(()=>s.value>-1&&zd(n.params,r.value.params)),o=Q(()=>s.value>-1&&s.value===n.matched.length-1&&ha(n.params,r.value.params));function l(a={}){if(Vd(a)){const u=t[Ot(e.replace)?"replace":"push"](Ot(e.to)).catch(En);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>u),u}return Promise.resolve()}return{route:r,href:Q(()=>r.value.href),isActive:i,isExactActive:o,navigate:l}}function qd(e){return e.length===1?e[0]:e}const Bd=Rr({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:ao,setup(e,{slots:t}){const n=Dt(ao(e)),{options:r}=Ze(Ys),s=Q(()=>({[uo(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[uo(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const i=t.default&&qd(t.default(n));return e.custom?i:G("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},i)}}}),Hd=Bd;function Vd(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function zd(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!Ve(s)||s.length!==r.length||r.some((i,o)=>i!==s[o]))return!1}return!0}function co(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const uo=(e,t,n)=>e??t??n,Kd=Rr({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=Ze(Ts),s=Q(()=>e.route||r.value),i=Ze(lo,0),o=Q(()=>{let u=Ot(i);const{matched:c}=s.value;let f;for(;(f=c[u])&&!f.components;)u++;return u}),l=Q(()=>s.value.matched[o.value]);Qn(lo,Q(()=>o.value+1)),Qn(Dd,l),Qn(Ts,s);const a=Nt();return $t(()=>[a.value,l.value,e.name],([u,c,f],[d,g,v])=>{c&&(c.instances[f]=u,g&&g!==c&&u&&u===d&&(c.leaveGuards.size||(c.leaveGuards=g.leaveGuards),c.updateGuards.size||(c.updateGuards=g.updateGuards))),u&&c&&(!g||!nn(c,g)||!d)&&(c.enterCallbacks[f]||[]).forEach(S=>S(u))},{flush:"post"}),()=>{const u=s.value,c=e.name,f=l.value,d=f&&f.components[c];if(!d)return fo(n.default,{Component:d,route:u});const g=f.props[c],v=g?g===!0?u.params:typeof g=="function"?g(u):g:null,k=G(d,ie({},v,t,{onVnodeUnmounted:O=>{O.component.isUnmounted&&(f.instances[c]=null)},ref:a}));return fo(n.default,{Component:k,route:u})||k}}});function fo(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Ud=Kd;function Wd(e){const t=Md(e.routes,e),n=e.parseQuery||jd,r=e.stringifyQuery||oo,s=e.history,i=cn(),o=cn(),l=cn(),a=Go(ht);let u=ht;Jt&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=es.bind(null,b=>""+b),f=es.bind(null,sd),d=es.bind(null,$n);function g(b,D){let N,V;return ga(b)?(N=t.getRecordMatcher(b),V=D):V=b,t.addRoute(V,N)}function v(b){const D=t.getRecordMatcher(b);D&&t.removeRoute(D)}function S(){return t.getRoutes().map(b=>b.record)}function k(b){return!!t.getRecordMatcher(b)}function O(b,D){if(D=ie({},D||a.value),typeof b=="string"){const m=ts(n,b,D.path),_=t.resolve({path:m.path},D),E=s.createHref(m.fullPath);return ie(m,_,{params:d(_.params),hash:$n(m.hash),redirectedFrom:void 0,href:E})}let N;if(b.path!=null)N=ie({},b,{path:ts(n,b.path,D.path).path});else{const m=ie({},b.params);for(const _ in m)m[_]==null&&delete m[_];N=ie({},b,{params:f(m)}),D.params=f(D.params)}const V=t.resolve(N,D),ce=b.hash||"";V.params=c(d(V.params));const h=ld(r,ie({},b,{hash:td(ce),path:V.path})),p=s.createHref(h);return ie({fullPath:h,hash:ce,query:r===oo?Fd(b.query):b.query||{}},V,{redirectedFrom:void 0,href:p})}function x(b){return typeof b=="string"?ts(n,b,a.value.path):ie({},b)}function C(b,D){if(u!==b)return rn(8,{from:D,to:b})}function y(b){return q(b)}function T(b){return y(ie(x(b),{replace:!0}))}function H(b){const D=b.matched[b.matched.length-1];if(D&&D.redirect){const{redirect:N}=D;let V=typeof N=="function"?N(b):N;return typeof V=="string"&&(V=V.includes("?")||V.includes("#")?V=x(V):{path:V},V.params={}),ie({query:b.query,hash:b.hash,params:V.path!=null?{}:b.params},V)}}function q(b,D){const N=u=O(b),V=a.value,ce=b.state,h=b.force,p=b.replace===!0,m=H(N);if(m)return q(ie(x(m),{state:typeof m=="object"?ie({},ce,m.state):ce,force:h,replace:p}),D||N);const _=N;_.redirectedFrom=D;let E;return!h&&ad(r,V,N)&&(E=rn(16,{to:_,from:V}),Ke(V,V,!0,!1)),(E?Promise.resolve(E):B(_,V)).catch(w=>nt(w)?nt(w,2)?w:ft(w):se(w,_,V)).then(w=>{if(w){if(nt(w,2))return q(ie({replace:p},x(w.to),{state:typeof w.to=="object"?ie({},ce,w.to.state):ce,force:h}),D||_)}else w=L(_,V,!0,p,ce);return U(_,V,w),w})}function F(b,D){const N=C(b,D);return N?Promise.reject(N):Promise.resolve()}function R(b){const D=Ht.values().next().value;return D&&typeof D.runWithContext=="function"?D.runWithContext(b):b()}function B(b,D){let N;const[V,ce,h]=Gd(b,D);N=ns(V.reverse(),"beforeRouteLeave",b,D);for(const m of V)m.leaveGuards.forEach(_=>{N.push(bt(_,b,D))});const p=F.bind(null,b,D);return N.push(p),Le(N).then(()=>{N=[];for(const m of i.list())N.push(bt(m,b,D));return N.push(p),Le(N)}).then(()=>{N=ns(ce,"beforeRouteUpdate",b,D);for(const m of ce)m.updateGuards.forEach(_=>{N.push(bt(_,b,D))});return N.push(p),Le(N)}).then(()=>{N=[];for(const m of h)if(m.beforeEnter)if(Ve(m.beforeEnter))for(const _ of m.beforeEnter)N.push(bt(_,b,D));else N.push(bt(m.beforeEnter,b,D));return N.push(p),Le(N)}).then(()=>(b.matched.forEach(m=>m.enterCallbacks={}),N=ns(h,"beforeRouteEnter",b,D,R),N.push(p),Le(N))).then(()=>{N=[];for(const m of o.list())N.push(bt(m,b,D));return N.push(p),Le(N)}).catch(m=>nt(m,8)?m:Promise.reject(m))}function U(b,D,N){l.list().forEach(V=>R(()=>V(b,D,N)))}function L(b,D,N,V,ce){const h=C(b,D);if(h)return h;const p=D===ht,m=Jt?history.state:{};N&&(V||p?s.replace(b.fullPath,ie({scroll:p&&m&&m.scroll},ce)):s.push(b.fullPath,ce)),a.value=b,Ke(b,D,N,p),ft()}let X;function j(){X||(X=s.listen((b,D,N)=>{if(!qn.listening)return;const V=O(b),ce=H(V);if(ce){q(ie(ce,{replace:!0,force:!0}),V).catch(En);return}u=V;const h=a.value;Jt&&md(Yi(h.fullPath,N.delta),jr()),B(V,h).catch(p=>nt(p,12)?p:nt(p,2)?(q(ie(x(p.to),{force:!0}),V).then(m=>{nt(m,20)&&!N.delta&&N.type===Nn.pop&&s.go(-1,!1)}).catch(En),Promise.reject()):(N.delta&&s.go(-N.delta,!1),se(p,V,h))).then(p=>{p=p||L(V,h,!1),p&&(N.delta&&!nt(p,8)?s.go(-N.delta,!1):N.type===Nn.pop&&nt(p,20)&&s.go(-1,!1)),U(V,h,p)}).catch(En)}))}let ee=cn(),re=cn(),Z;function se(b,D,N){ft(b);const V=re.list();return V.length?V.forEach(ce=>ce(b,D,N)):console.error(b),Promise.reject(b)}function et(){return Z&&a.value!==ht?Promise.resolve():new Promise((b,D)=>{ee.add([b,D])})}function ft(b){return Z||(Z=!b,j(),ee.list().forEach(([D,N])=>b?N(b):D()),ee.reset()),b}function Ke(b,D,N,V){const{scrollBehavior:ce}=e;if(!Jt||!ce)return Promise.resolve();const h=!N&&vd(Yi(b.fullPath,0))||(V||!N)&&history.state&&history.state.scroll||null;return Bs().then(()=>ce(b,D,h)).then(p=>p&&gd(p)).catch(p=>se(p,b,D))}const Te=b=>s.go(b);let Bt;const Ht=new Set,qn={currentRoute:a,listening:!0,addRoute:g,removeRoute:v,clearRoutes:t.clearRoutes,hasRoute:k,getRoutes:S,resolve:O,options:e,push:y,replace:T,go:Te,back:()=>Te(-1),forward:()=>Te(1),beforeEach:i.add,beforeResolve:o.add,afterEach:l.add,onError:re.add,isReady:et,install(b){const D=this;b.component("RouterLink",Hd),b.component("RouterView",Ud),b.config.globalProperties.$router=D,Object.defineProperty(b.config.globalProperties,"$route",{enumerable:!0,get:()=>Ot(a)}),Jt&&!Bt&&a.value===ht&&(Bt=!0,y(s.location).catch(ce=>{}));const N={};for(const ce in ht)Object.defineProperty(N,ce,{get:()=>a.value[ce],enumerable:!0});b.provide(Ys,D),b.provide(_a,Uo(N)),b.provide(Ts,a);const V=b.unmount;Ht.add(b),b.unmount=function(){Ht.delete(b),Ht.size<1&&(u=ht,X&&X(),X=null,a.value=ht,Bt=!1,Z=!1),V()}}};function Le(b){return b.reduce((D,N)=>D.then(()=>R(N)),Promise.resolve())}return qn}function Gd(e,t){const n=[],r=[],s=[],i=Math.max(t.matched.length,e.matched.length);for(let o=0;onn(u,l))?r.push(l):n.push(l));const a=e.matched[o];a&&(t.matched.find(u=>nn(u,a))||s.push(a))}return[n,r,s]}const Qd=[{path:"/",component:()=>Wn(()=>import("./MainLayout-Cd3W0PCb.js"),__vite__mapDeps([0,1,2])),children:[{path:"",component:()=>Wn(()=>import("./IndexPage-BDkTNmuK.js"),__vite__mapDeps([3,1,4,5]))}]},{path:"/:catchAll(.*)*",component:()=>Wn(()=>import("./ErrorNotFound-D4_c-LqI.js"),[])}],rs=function(){return Wd({scrollBehavior:()=>({left:0,top:0}),routes:Qd,history:xd("/openWB/web/themes/koala/")})};async function Jd(e,t){const n=e(Ff);n.use(jf,t);const r=typeof Xr=="function"?await Xr({}):Xr;n.use(r);const s=qt(typeof rs=="function"?await rs({store:r}):rs);return r.use(({store:i})=>{i.router=s}),{app:n,store:r,router:s}}const Yd={isoName:"de-DE",nativeName:"Deutsch (DE)",label:{clear:"Leeren",ok:"Ok",cancel:"Abbrechen",close:"Schließen",set:"Setzen",select:"Auswählen",reset:"Zurücksetzen",remove:"Löschen",update:"Aktualisieren",create:"Erstellen",search:"Suche",filter:"Filter",refresh:"Aktualisieren",expand:e=>e?`Erweitern Sie "${e}"`:"Erweitern",collapse:e=>e?`"${e}" minimieren`:"Zusammenbruch"},date:{days:"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),daysShort:"So_Mo_Di_Mi_Do_Fr_Sa".split("_"),months:"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),monthsShort:"Jan_Feb_März_Apr_Mai_Jun_Jul_Aug_Sep_Okt_Nov_Dez".split("_"),firstDayOfWeek:1,format24h:!0,pluralDay:"Tage",prevMonth:"Vorheriger Monat",nextMonth:"Nächster Monat",prevYear:"Vorheriges Jahr",nextYear:"Nächstes Jahr",today:"Heute",prevRangeYears:e=>`Vorherige ${e} Jahre`,nextRangeYears:e=>`Nächste ${e} Jahre`},table:{noData:"Keine Daten vorhanden.",noResults:"Keine Einträge gefunden",loading:"Lade...",selectedRecords:e=>e>1?e+" ausgewählte Zeilen":(e===0?"Keine":"1")+" ausgewählt.",recordsPerPage:"Zeilen pro Seite",allRows:"Alle",pagination:(e,t,n)=>e+"-"+t+" von "+n,columns:"Spalten"},pagination:{first:"Erste Seite",prev:"Vorherige Seite",next:"Nächste Seite",last:"Letzte Seite"},editor:{url:"URL",bold:"Fett",italic:"Kursiv",strikethrough:"Durchgestrichen",underline:"Unterstrichen",unorderedList:"Ungeordnete Liste",orderedList:"Geordnete Liste",subscript:"tiefgestellt",superscript:"hochgestellt",hyperlink:"Link",toggleFullscreen:"Vollbild umschalten",quote:"Zitat",left:"linksbündig",center:"zentriert",right:"rechtsbündig",justify:"Ausrichten",print:"Drucken",outdent:"ausrücken",indent:"einrücken",removeFormat:"Entferne Formatierung",formatting:"Formatiere",fontSize:"Schriftgröße",align:"Ausrichten",hr:"Horizontale Linie einfügen",undo:"Rückgänging",redo:"Wiederherstellen",heading1:"Überschrift 1",heading2:"Überschrift 2",heading3:"Überschrift 3",heading4:"Überschrift 4",heading5:"Überschrift 5",heading6:"Überschrift 6",paragraph:"Absatz",code:"Code",size1:"Sehr klein",size2:"klein",size3:"Normal",size4:"Groß",size5:"Größer",size6:"Sehr groß",size7:"Maximum",defaultFont:"Standard Schrift",viewSource:"Quelltext anzeigen"},tree:{noNodes:"Keine Knoten verfügbar",noResults:"Keine passenden Knoten gefunden"}},ks={xs:18,sm:24,md:32,lg:38,xl:46},Zs={size:String};function Xs(e,t=ks){return Q(()=>e.size!==void 0?{fontSize:e.size in t?`${t[e.size]}px`:e.size}:null)}function Zd(e,t){return e!==void 0&&e()||t}function gp(e,t){if(e!==void 0){const n=e();if(n!=null)return n.slice()}return t}function hn(e,t){return e!==void 0?t.concat(e()):t}function Xd(e,t){return e===void 0?t:t!==void 0?t.concat(e()):e()}function mp(e,t,n,r,s,i){t.key=r+s;const o=G(e,t,n);return s===!0?rl(o,i()):o}const ho="0 0 24 24",ss=e=>e,is=e=>`ionicons ${e}`,ba={"mdi-":e=>`mdi ${e}`,"icon-":ss,"bt-":e=>`bt ${e}`,"eva-":e=>`eva ${e}`,"ion-md":is,"ion-ios":is,"ion-logo":is,"iconfont ":ss,"ti-":e=>`themify-icon ${e}`,"bi-":e=>`bootstrap-icons ${e}`,"i-":ss},wa={o_:"-outlined",r_:"-round",s_:"-sharp"},xa={sym_o_:"-outlined",sym_r_:"-rounded",sym_s_:"-sharp"},eh=new RegExp("^("+Object.keys(ba).join("|")+")"),th=new RegExp("^("+Object.keys(wa).join("|")+")"),po=new RegExp("^("+Object.keys(xa).join("|")+")"),nh=/^[Mm]\s?[-+]?\.?\d/,rh=/^img:/,sh=/^svguse:/,ih=/^ion-/,oh=/^(fa-(classic|sharp|solid|regular|light|brands|duotone|thin)|[lf]a[srlbdk]?) /,vr=Dn({name:"QIcon",props:{...Zs,tag:{type:String,default:"i"},name:String,color:String,left:Boolean,right:Boolean},setup(e,{slots:t}){const{proxy:{$q:n}}=ze(),r=Xs(e),s=Q(()=>"q-icon"+(e.left===!0?" on-left":"")+(e.right===!0?" on-right":"")+(e.color!==void 0?` text-${e.color}`:"")),i=Q(()=>{let o,l=e.name;if(l==="none"||!l)return{none:!0};if(n.iconMapFn!==null){const c=n.iconMapFn(l);if(c!==void 0)if(c.icon!==void 0){if(l=c.icon,l==="none"||!l)return{none:!0}}else return{cls:c.cls,content:c.content!==void 0?c.content:" "}}if(nh.test(l)===!0){const[c,f=ho]=l.split("|");return{svg:!0,viewBox:f,nodes:c.split("&&").map(d=>{const[g,v,S]=d.split("@@");return G("path",{style:v,d:g,transform:S})})}}if(rh.test(l)===!0)return{img:!0,src:l.substring(4)};if(sh.test(l)===!0){const[c,f=ho]=l.split("|");return{svguse:!0,src:c.substring(7),viewBox:f}}let a=" ";const u=l.match(eh);if(u!==null)o=ba[u[1]](l);else if(oh.test(l)===!0)o=l;else if(ih.test(l)===!0)o=`ionicons ion-${n.platform.is.ios===!0?"ios":"md"}${l.substring(3)}`;else if(po.test(l)===!0){o="notranslate material-symbols";const c=l.match(po);c!==null&&(l=l.substring(6),o+=xa[c[1]]),a=l}else{o="notranslate material-icons";const c=l.match(th);c!==null&&(l=l.substring(2),o+=wa[c[1]]),a=l}return{cls:o,content:a}});return()=>{const o={class:s.value,style:r.value,"aria-hidden":"true"};return i.value.none===!0?G(e.tag,o,Zd(t.default)):i.value.img===!0?G(e.tag,o,hn(t.default,[G("img",{src:i.value.src})])):i.value.svg===!0?G(e.tag,o,hn(t.default,[G("svg",{viewBox:i.value.viewBox||"0 0 24 24"},i.value.nodes)])):i.value.svguse===!0?G(e.tag,o,hn(t.default,[G("svg",{viewBox:i.value.viewBox},[G("use",{"xlink:href":i.value.src})])])):(i.value.cls!==void 0&&(o.class+=" "+i.value.cls),G(e.tag,o,hn(t.default,[i.value.content])))}}}),lh=Dn({name:"QAvatar",props:{...Zs,fontSize:String,color:String,textColor:String,icon:String,square:Boolean,rounded:Boolean},setup(e,{slots:t}){const n=Xs(e),r=Q(()=>"q-avatar"+(e.color?` bg-${e.color}`:"")+(e.textColor?` text-${e.textColor} q-chip--colored`:"")+(e.square===!0?" q-avatar--square":e.rounded===!0?" rounded-borders":"")),s=Q(()=>e.fontSize?{fontSize:e.fontSize}:null);return()=>{const i=e.icon!==void 0?[G(vr,{name:e.icon})]:void 0;return G("div",{class:r.value,style:n.value},[G("div",{class:"q-avatar__content row flex-center overflow-hidden",style:s.value},Xd(t.default,i))])}}}),ah={size:{type:[String,Number],default:"1em"},color:String};function ch(e){return{cSize:Q(()=>e.size in ks?`${ks[e.size]}px`:e.size),classes:Q(()=>"q-spinner"+(e.color?` text-${e.color}`:""))}}const Sa=Dn({name:"QSpinner",props:{...ah,thickness:{type:Number,default:5}},setup(e){const{cSize:t,classes:n}=ch(e);return()=>G("svg",{class:n.value+" q-spinner-mat",width:t.value,height:t.value,viewBox:"25 25 50 50"},[G("circle",{class:"path",cx:"50",cy:"50",r:"20",fill:"none",stroke:"currentColor","stroke-width":e.thickness,"stroke-miterlimit":"10"})])}});function uh(e,t){const n=e.style;for(const r in t)n[r]=t[r]}function vp(e){if(e==null)return;if(typeof e=="string")try{return document.querySelector(e)||void 0}catch{return}const t=Ot(e);if(t)return t.$el||t}function yp(e,t){if(e==null||e.contains(t)===!0)return!0;for(let n=e.nextElementSibling;n!==null;n=n.nextElementSibling)if(n.contains(t))return!0;return!1}function fh(e,t=250){let n=!1,r;return function(){return n===!1&&(n=!0,setTimeout(()=>{n=!1},t),r=e.apply(this,arguments)),r}}function go(e,t,n,r){n.modifiers.stop===!0&&Zl(e);const s=n.modifiers.color;let i=n.modifiers.center;i=i===!0||r===!0;const o=document.createElement("span"),l=document.createElement("span"),a=gf(e),{left:u,top:c,width:f,height:d}=t.getBoundingClientRect(),g=Math.sqrt(f*f+d*d),v=g/2,S=`${(f-g)/2}px`,k=i?S:`${a.left-u-v}px`,O=`${(d-g)/2}px`,x=i?O:`${a.top-c-v}px`;l.className="q-ripple__inner",uh(l,{height:`${g}px`,width:`${g}px`,transform:`translate3d(${k},${x},0) scale3d(.2,.2,1)`,opacity:0}),o.className=`q-ripple${s?" text-"+s:""}`,o.setAttribute("dir","ltr"),o.appendChild(l),t.appendChild(o);const C=()=>{o.remove(),clearTimeout(y)};n.abort.push(C);let y=setTimeout(()=>{l.classList.add("q-ripple__inner--enter"),l.style.transform=`translate3d(${S},${O},0) scale3d(1,1,1)`,l.style.opacity=.2,y=setTimeout(()=>{l.classList.remove("q-ripple__inner--enter"),l.classList.add("q-ripple__inner--leave"),l.style.opacity=0,y=setTimeout(()=>{o.remove(),n.abort.splice(n.abort.indexOf(C),1)},275)},250)},50)}function mo(e,{modifiers:t,value:n,arg:r}){const s=Object.assign({},e.cfg.ripple,t,n);e.modifiers={early:s.early===!0,stop:s.stop===!0,center:s.center===!0,color:s.color||r,keyCodes:[].concat(s.keyCodes||13)}}const dh=pf({name:"ripple",beforeMount(e,t){const n=t.instance.$.appContext.config.globalProperties.$q.config||{};if(n.ripple===!1)return;const r={cfg:n,enabled:t.value!==!1,modifiers:{},abort:[],start(s){r.enabled===!0&&s.qSkipRipple!==!0&&s.type===(r.modifiers.early===!0?"pointerdown":"click")&&go(s,e,r,s.qKeyEvent===!0)},keystart:fh(s=>{r.enabled===!0&&s.qSkipRipple!==!0&&Ss(s,r.modifiers.keyCodes)===!0&&s.type===`key${r.modifiers.early===!0?"down":"up"}`&&go(s,e,r,!0)},300)};mo(r,t),e.__qripple=r,mf(r,"main",[[e,"pointerdown","start","passive"],[e,"click","start","passive"],[e,"keydown","keystart","passive"],[e,"keyup","keystart","passive"]])},updated(e,t){if(t.oldValue!==t.value){const n=e.__qripple;n!==void 0&&(n.enabled=t.value!==!1,n.enabled===!0&&Object(t.value)===t.value&&mo(n,t))}},beforeUnmount(e){const t=e.__qripple;t!==void 0&&(t.abort.forEach(n=>{n()}),vf(t,"main"),delete e._qripple)}}),Ea={left:"start",center:"center",right:"end",between:"between",around:"around",evenly:"evenly",stretch:"stretch"},hh=Object.keys(Ea),ph={align:{type:String,validator:e=>hh.includes(e)}};function gh(e){return Q(()=>{const t=e.align===void 0?e.vertical===!0?"stretch":"left":e.align;return`${e.vertical===!0?"items":"justify"}-${Ea[t]}`})}function _p(e){if(Object(e.$parent)===e.$parent)return e.$parent;let{parent:t}=e.$;for(;Object(t)===t;){if(Object(t.proxy)===t.proxy)return t.proxy;t=t.parent}}function Ca(e,t){typeof t.type=="symbol"?Array.isArray(t.children)===!0&&t.children.forEach(n=>{Ca(e,n)}):e.add(t)}function bp(e){const t=new Set;return e.forEach(n=>{Ca(t,n)}),Array.from(t)}function mh(e){return e.appContext.config.globalProperties.$router!==void 0}function wp(e){return e.isUnmounted===!0||e.isDeactivated===!0}function vo(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}function yo(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function vh(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(Array.isArray(s)===!1||s.length!==r.length||r.some((i,o)=>i!==s[o]))return!1}return!0}function _o(e,t){return Array.isArray(t)===!0?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function yh(e,t){return Array.isArray(e)===!0?_o(e,t):Array.isArray(t)===!0?_o(t,e):e===t}function _h(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(yh(e[n],t[n])===!1)return!1;return!0}const Ra={to:[String,Object],replace:Boolean,href:String,target:String,disable:Boolean},xp={...Ra,exact:Boolean,activeClass:{type:String,default:"q-router-link--active"},exactActiveClass:{type:String,default:"q-router-link--exact-active"}};function bh({fallbackTag:e,useDisableForRouterLinkProps:t=!0}={}){const n=ze(),{props:r,proxy:s,emit:i}=n,o=mh(n),l=Q(()=>r.disable!==!0&&r.href!==void 0),a=Q(t===!0?()=>o===!0&&r.disable!==!0&&l.value!==!0&&r.to!==void 0&&r.to!==null&&r.to!=="":()=>o===!0&&l.value!==!0&&r.to!==void 0&&r.to!==null&&r.to!==""),u=Q(()=>a.value===!0?x(r.to):null),c=Q(()=>u.value!==null),f=Q(()=>l.value===!0||c.value===!0),d=Q(()=>r.type==="a"||f.value===!0?"a":r.tag||e||"div"),g=Q(()=>l.value===!0?{href:r.href,target:r.target}:c.value===!0?{href:u.value.href,target:r.target}:{}),v=Q(()=>{if(c.value===!1)return-1;const{matched:T}=u.value,{length:H}=T,q=T[H-1];if(q===void 0)return-1;const F=s.$route.matched;if(F.length===0)return-1;const R=F.findIndex(yo.bind(null,q));if(R!==-1)return R;const B=vo(T[H-2]);return H>1&&vo(q)===B&&F[F.length-1].path!==B?F.findIndex(yo.bind(null,T[H-2])):R}),S=Q(()=>c.value===!0&&v.value!==-1&&vh(s.$route.params,u.value.params)),k=Q(()=>S.value===!0&&v.value===s.$route.matched.length-1&&_h(s.$route.params,u.value.params)),O=Q(()=>c.value===!0?k.value===!0?` ${r.exactActiveClass} ${r.activeClass}`:r.exact===!0?"":S.value===!0?` ${r.activeClass}`:"":"");function x(T){try{return s.$router.resolve(T)}catch{}return null}function C(T,{returnRouterError:H,to:q=r.to,replace:F=r.replace}={}){if(r.disable===!0)return T.preventDefault(),Promise.resolve(!1);if(T.metaKey||T.altKey||T.ctrlKey||T.shiftKey||T.button!==void 0&&T.button!==0||r.target==="_blank")return Promise.resolve(!1);T.preventDefault();const R=s.$router[F===!0?"replace":"push"](q);return H===!0?R:R.then(()=>{}).catch(()=>{})}function y(T){if(c.value===!0){const H=q=>C(T,q);i("click",T,H),T.defaultPrevented!==!0&&H()}else i("click",T)}return{hasRouterLink:c,hasHrefLink:l,hasLink:f,linkTag:d,resolvedLink:u,linkIsActive:S,linkIsExactActive:k,linkClass:O,linkAttrs:g,getLink:x,navigateToRouterLink:C,navigateOnClick:y}}const bo={none:0,xs:4,sm:8,md:16,lg:24,xl:32},wh={xs:8,sm:10,md:14,lg:20,xl:24},xh=["button","submit","reset"],Sh=/[^\s]\/[^\s]/,Eh=["flat","outline","push","unelevated"];function Pa(e,t){return e.flat===!0?"flat":e.outline===!0?"outline":e.push===!0?"push":e.unelevated===!0?"unelevated":t}function Sp(e){const t=Pa(e);return t!==void 0?{[t]:!0}:{}}const Ch={...Zs,...Ra,type:{type:String,default:"button"},label:[Number,String],icon:String,iconRight:String,...Eh.reduce((e,t)=>(e[t]=Boolean)&&e,{}),square:Boolean,rounded:Boolean,glossy:Boolean,size:String,fab:Boolean,fabMini:Boolean,padding:String,color:String,textColor:String,noCaps:Boolean,noWrap:Boolean,dense:Boolean,tabindex:[Number,String],ripple:{type:[Boolean,Object],default:!0},align:{...ph.align,default:"center"},stack:Boolean,stretch:Boolean,loading:{type:Boolean,default:null},disable:Boolean},Rh={...Ch,round:Boolean};function Ph(e){const t=Xs(e,wh),n=gh(e),{hasRouterLink:r,hasLink:s,linkTag:i,linkAttrs:o,navigateOnClick:l}=bh({fallbackTag:"button"}),a=Q(()=>{const k=e.fab===!1&&e.fabMini===!1?t.value:{};return e.padding!==void 0?Object.assign({},k,{padding:e.padding.split(/\s+/).map(O=>O in bo?bo[O]+"px":O).join(" "),minWidth:"0",minHeight:"0"}):k}),u=Q(()=>e.rounded===!0||e.fab===!0||e.fabMini===!0),c=Q(()=>e.disable!==!0&&e.loading!==!0),f=Q(()=>c.value===!0?e.tabindex||0:-1),d=Q(()=>Pa(e,"standard")),g=Q(()=>{const k={tabindex:f.value};return s.value===!0?Object.assign(k,o.value):xh.includes(e.type)===!0&&(k.type=e.type),i.value==="a"?(e.disable===!0?k["aria-disabled"]="true":k.href===void 0&&(k.role="button"),r.value!==!0&&Sh.test(e.type)===!0&&(k.type=e.type)):e.disable===!0&&(k.disabled="",k["aria-disabled"]="true"),e.loading===!0&&e.percentage!==void 0&&Object.assign(k,{role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":e.percentage}),k}),v=Q(()=>{let k;e.color!==void 0?e.flat===!0||e.outline===!0?k=`text-${e.textColor||e.color}`:k=`bg-${e.color} text-${e.textColor||"white"}`:e.textColor&&(k=`text-${e.textColor}`);const O=e.round===!0?"round":`rectangle${u.value===!0?" q-btn--rounded":e.square===!0?" q-btn--square":""}`;return`q-btn--${d.value} q-btn--${O}`+(k!==void 0?" "+k:"")+(c.value===!0?" q-btn--actionable q-focusable q-hoverable":e.disable===!0?" disabled":"")+(e.fab===!0?" q-btn--fab":e.fabMini===!0?" q-btn--fab-mini":"")+(e.noCaps===!0?" q-btn--no-uppercase":"")+(e.dense===!0?" q-btn--dense":"")+(e.stretch===!0?" no-border-radius self-stretch":"")+(e.glossy===!0?" glossy":"")+(e.square?" q-btn--square":"")}),S=Q(()=>n.value+(e.stack===!0?" column":" row")+(e.noWrap===!0?" no-wrap text-no-wrap":"")+(e.loading===!0?" q-btn__content--hidden":""));return{classes:v,style:a,innerClasses:S,attributes:g,hasLink:s,linkTag:i,navigateOnClick:l,isActionable:c}}const{passiveCapture:Ne}=jt;let Ut=null,Wt=null,Gt=null;const Th=Dn({name:"QBtn",props:{...Rh,percentage:Number,darkPercentage:Boolean,onTouchstart:[Function,Array]},emits:["click","keydown","mousedown","keyup"],setup(e,{slots:t,emit:n}){const{proxy:r}=ze(),{classes:s,style:i,innerClasses:o,attributes:l,hasLink:a,linkTag:u,navigateOnClick:c,isActionable:f}=Ph(e),d=Nt(null),g=Nt(null);let v=null,S,k=null;const O=Q(()=>e.label!==void 0&&e.label!==null&&e.label!==""),x=Q(()=>e.disable===!0||e.ripple===!1?!1:{keyCodes:a.value===!0?[13,32]:[13],...e.ripple===!0?{}:e.ripple}),C=Q(()=>({center:e.round})),y=Q(()=>{const j=Math.max(0,Math.min(100,e.percentage));return j>0?{transition:"transform 0.6s",transform:`translateX(${j-100}%)`}:{}}),T=Q(()=>{if(e.loading===!0)return{onMousedown:X,onTouchstart:X,onClick:X,onKeydown:X,onKeyup:X};if(f.value===!0){const j={onClick:q,onKeydown:F,onMousedown:B};if(r.$q.platform.has.touch===!0){const ee=e.onTouchstart!==void 0?"":"Passive";j[`onTouchstart${ee}`]=R}return j}return{onClick:zt}}),H=Q(()=>({ref:d,class:"q-btn q-btn-item non-selectable no-outline "+s.value,style:i.value,...l.value,...T.value}));function q(j){if(d.value!==null){if(j!==void 0){if(j.defaultPrevented===!0)return;const ee=document.activeElement;if(e.type==="submit"&&ee!==document.body&&d.value.contains(ee)===!1&&ee.contains(d.value)===!1){j.qAvoidFocus!==!0&&d.value.focus();const re=()=>{document.removeEventListener("keydown",zt,!0),document.removeEventListener("keyup",re,Ne),d.value?.removeEventListener("blur",re,Ne)};document.addEventListener("keydown",zt,!0),document.addEventListener("keyup",re,Ne),d.value.addEventListener("blur",re,Ne)}}c(j)}}function F(j){d.value!==null&&(n("keydown",j),Ss(j,[13,32])===!0&&Wt!==d.value&&(Wt!==null&&L(),j.defaultPrevented!==!0&&(j.qAvoidFocus!==!0&&d.value.focus(),Wt=d.value,d.value.classList.add("q-btn--active"),document.addEventListener("keyup",U,!0),d.value.addEventListener("blur",U,Ne)),zt(j)))}function R(j){d.value!==null&&(n("touchstart",j),j.defaultPrevented!==!0&&(Ut!==d.value&&(Ut!==null&&L(),Ut=d.value,v=j.target,v.addEventListener("touchcancel",U,Ne),v.addEventListener("touchend",U,Ne)),S=!0,k!==null&&clearTimeout(k),k=setTimeout(()=>{k=null,S=!1},200)))}function B(j){d.value!==null&&(j.qSkipRipple=S===!0,n("mousedown",j),j.defaultPrevented!==!0&&Gt!==d.value&&(Gt!==null&&L(),Gt=d.value,d.value.classList.add("q-btn--active"),document.addEventListener("mouseup",U,Ne)))}function U(j){if(d.value!==null&&!(j?.type==="blur"&&document.activeElement===d.value)){if(j?.type==="keyup"){if(Wt===d.value&&Ss(j,[13,32])===!0){const ee=new MouseEvent("click",j);ee.qKeyEvent=!0,j.defaultPrevented===!0&&xs(ee),j.cancelBubble===!0&&Zl(ee),d.value.dispatchEvent(ee),zt(j),j.qKeyEvent=!0}n("keyup",j)}L()}}function L(j){const ee=g.value;j!==!0&&(Ut===d.value||Gt===d.value)&&ee!==null&&ee!==document.activeElement&&(ee.setAttribute("tabindex",-1),ee.focus()),Ut===d.value&&(v!==null&&(v.removeEventListener("touchcancel",U,Ne),v.removeEventListener("touchend",U,Ne)),Ut=v=null),Gt===d.value&&(document.removeEventListener("mouseup",U,Ne),Gt=null),Wt===d.value&&(document.removeEventListener("keyup",U,!0),d.value?.removeEventListener("blur",U,Ne),Wt=null),d.value?.classList.remove("q-btn--active")}function X(j){zt(j),j.qSkipRipple=!0}return Ar(()=>{L(!0)}),Object.assign(r,{click:j=>{f.value===!0&&q(j)}}),()=>{let j=[];e.icon!==void 0&&j.push(G(vr,{name:e.icon,left:e.stack!==!0&&O.value===!0,role:"img"})),O.value===!0&&j.push(G("span",{class:"block"},[e.label])),j=hn(t.default,j),e.iconRight!==void 0&&e.round===!1&&j.push(G(vr,{name:e.iconRight,right:e.stack!==!0&&O.value===!0,role:"img"}));const ee=[G("span",{class:"q-focus-helper",ref:g})];return e.loading===!0&&e.percentage!==void 0&&ee.push(G("span",{class:"q-btn__progress absolute-full overflow-hidden"+(e.darkPercentage===!0?" q-btn__progress--dark":"")},[G("span",{class:"q-btn__progress-indicator fit block",style:y.value})])),ee.push(G("span",{class:"q-btn__content text-center col items-center q-anchor--skip "+o.value},j)),e.loading!==null&&ee.push(G(Lu,{name:"q-transition--fade"},()=>e.loading===!0?[G("span",{key:"loading",class:"absolute-full flex flex-center"},t.loading!==void 0?t.loading():[G(Sa)])]:null)),rl(G(u.value,H.value,ee),[[dh,x.value,void 0,C.value]])}}});let kh=1,Ah=document.body;function Oh(e,t){const n=document.createElement("div");if(n.id=t!==void 0?`q-portal--${t}--${kh++}`:e,mr.globalNodes!==void 0){const r=mr.globalNodes.class;r!==void 0&&(n.className=r)}return Ah.appendChild(n),n}function Ep(e){e.remove()}let Mh=0;const Xn={},er={},De={},Ta={},Lh=/^\s*$/,ka=[],$h=[void 0,null,!0,!1,""],ei=["top-left","top-right","bottom-left","bottom-right","top","bottom","left","right","center"],Nh=["top-left","top-right","bottom-left","bottom-right"],pn={positive:{icon:e=>e.iconSet.type.positive,color:"positive"},negative:{icon:e=>e.iconSet.type.negative,color:"negative"},warning:{icon:e=>e.iconSet.type.warning,color:"warning",textColor:"dark"},info:{icon:e=>e.iconSet.type.info,color:"info"},ongoing:{group:!1,timeout:0,spinner:!0,color:"grey-8"}};function Aa(e,t,n){if(!e)return un("parameter required");let r;const s={textColor:"white"};if(e.ignoreDefaults!==!0&&Object.assign(s,Xn),Ln(e)===!1&&(s.type&&Object.assign(s,pn[s.type]),e={message:e}),Object.assign(s,pn[e.type||s.type],e),typeof s.icon=="function"&&(s.icon=s.icon(t)),s.spinner?(s.spinner===!0&&(s.spinner=Sa),s.spinner=qt(s.spinner)):s.spinner=!1,s.meta={hasMedia:!!(s.spinner!==!1||s.icon||s.avatar),hasText:wo(s.message)||wo(s.caption)},s.position){if(ei.includes(s.position)===!1)return un("wrong position",e)}else s.position="bottom";if($h.includes(s.timeout)===!0)s.timeout=5e3;else{const a=Number(s.timeout);if(isNaN(a)||a<0)return un("wrong timeout",e);s.timeout=Number.isFinite(a)?a:0}s.timeout===0?s.progress=!1:s.progress===!0&&(s.meta.progressClass="q-notification__progress"+(s.progressClass?` ${s.progressClass}`:""),s.meta.progressStyle={animationDuration:`${s.timeout+1e3}ms`});const i=(Array.isArray(e.actions)===!0?e.actions:[]).concat(e.ignoreDefaults!==!0&&Array.isArray(Xn.actions)===!0?Xn.actions:[]).concat(Array.isArray(pn[e.type]?.actions)===!0?pn[e.type].actions:[]),{closeBtn:o}=s;if(o&&i.push({label:typeof o=="string"?o:t.lang.label.close}),s.actions=i.map(({handler:a,noDismiss:u,...c})=>({flat:!0,...c,onClick:typeof a=="function"?()=>{a(),u!==!0&&l()}:()=>{l()}})),s.multiLine===void 0&&(s.multiLine=s.actions.length>1),Object.assign(s.meta,{class:`q-notification row items-stretch q-notification--${s.multiLine===!0?"multi-line":"standard"}`+(s.color!==void 0?` bg-${s.color}`:"")+(s.textColor!==void 0?` text-${s.textColor}`:"")+(s.classes!==void 0?` ${s.classes}`:""),wrapperClass:"q-notification__wrapper col relative-position border-radius-inherit "+(s.multiLine===!0?"column no-wrap justify-center":"row items-center"),contentClass:"q-notification__content row items-center"+(s.multiLine===!0?"":" col"),leftClass:s.meta.hasText===!0?"additional":"single",attrs:{role:"alert",...s.attrs}}),s.group===!1?(s.group=void 0,s.meta.group=void 0):((s.group===void 0||s.group===!0)&&(s.group=[s.message,s.caption,s.multiline].concat(s.actions.map(a=>`${a.label}*${a.icon}`)).join("|")),s.meta.group=s.group+"|"+s.position),s.actions.length===0?s.actions=void 0:s.meta.actionsClass="q-notification__actions row items-center "+(s.multiLine===!0?"justify-end":"col-auto")+(s.meta.hasMedia===!0?" q-notification__actions--with-media":""),n!==void 0){n.notif.meta.timer&&(clearTimeout(n.notif.meta.timer),n.notif.meta.timer=void 0),s.meta.uid=n.notif.meta.uid;const a=De[s.position].value.indexOf(n.notif);De[s.position].value[a]=s}else{const a=er[s.meta.group];if(a===void 0){if(s.meta.uid=Mh++,s.meta.badge=1,["left","right","center"].indexOf(s.position)!==-1)De[s.position].value.splice(Math.floor(De[s.position].value.length/2),0,s);else{const u=s.position.indexOf("top")!==-1?"unshift":"push";De[s.position].value[u](s)}s.group!==void 0&&(er[s.meta.group]=s)}else{if(a.meta.timer&&(clearTimeout(a.meta.timer),a.meta.timer=void 0),s.badgePosition!==void 0){if(Nh.includes(s.badgePosition)===!1)return un("wrong badgePosition",e)}else s.badgePosition=`top-${s.position.indexOf("left")!==-1?"right":"left"}`;s.meta.uid=a.meta.uid,s.meta.badge=a.meta.badge+1,s.meta.badgeClass=`q-notification__badge q-notification__badge--${s.badgePosition}`+(s.badgeColor!==void 0?` bg-${s.badgeColor}`:"")+(s.badgeTextColor!==void 0?` text-${s.badgeTextColor}`:"")+(s.badgeClass?` ${s.badgeClass}`:"");const u=De[s.position].value.indexOf(a);De[s.position].value[u]=er[s.meta.group]=s}}const l=()=>{Ih(s),r=void 0};if(s.timeout>0&&(s.meta.timer=setTimeout(()=>{s.meta.timer=void 0,l()},s.timeout+1e3)),s.group!==void 0)return a=>{a!==void 0?un("trying to update a grouped one which is forbidden",e):l()};if(r={dismiss:l,config:e,notif:s},n!==void 0){Object.assign(n,r);return}return a=>{if(r!==void 0)if(a===void 0)r.dismiss();else{const u=Object.assign({},r.config,a,{group:!1,position:s.position});Aa(u,t,r)}}}function Ih(e){e.meta.timer&&(clearTimeout(e.meta.timer),e.meta.timer=void 0);const t=De[e.position].value.indexOf(e);if(t!==-1){e.group!==void 0&&delete er[e.meta.group];const n=ka[""+e.meta.uid];if(n){const{width:r,height:s}=getComputedStyle(n);n.style.left=`${n.offsetLeft}px`,n.style.width=r,n.style.height=s}De[e.position].value.splice(t,1),typeof e.onDismiss=="function"&&e.onDismiss()}}function wo(e){return e!=null&&Lh.test(e)!==!0}function un(e,t){return console.error(`Notify: ${e}`,t),!1}function jh(){return Dn({name:"QNotifications",devtools:{hide:!0},setup(){return()=>G("div",{class:"q-notifications"},ei.map(e=>G(Zu,{key:e,class:Ta[e],tag:"div",name:`q-notification--${e}`},()=>De[e].value.map(t=>{const n=t.meta,r=[];if(n.hasMedia===!0&&(t.spinner!==!1?r.push(G(t.spinner,{class:"q-notification__spinner q-notification__spinner--"+n.leftClass,color:t.spinnerColor,size:t.spinnerSize})):t.icon?r.push(G(vr,{class:"q-notification__icon q-notification__icon--"+n.leftClass,name:t.icon,color:t.iconColor,size:t.iconSize,role:"img"})):t.avatar&&r.push(G(lh,{class:"q-notification__avatar q-notification__avatar--"+n.leftClass},()=>G("img",{src:t.avatar,"aria-hidden":"true"})))),n.hasText===!0){let i;const o={class:"q-notification__message col"};if(t.html===!0)o.innerHTML=t.caption?`
${t.message}
${t.caption}
`:t.message;else{const l=[t.message];i=t.caption?[G("div",l),G("div",{class:"q-notification__caption"},[t.caption])]:l}r.push(G("div",o,i))}const s=[G("div",{class:n.contentClass},r)];return t.progress===!0&&s.push(G("div",{key:`${n.uid}|p|${n.badge}`,class:n.progressClass,style:n.progressStyle})),t.actions!==void 0&&s.push(G("div",{class:n.actionsClass},t.actions.map(i=>G(Th,i)))),n.badge>1&&s.push(G("div",{key:`${n.uid}|${n.badge}`,class:t.meta.badgeClass,style:t.badgeStyle},[n.badge])),G("div",{ref:i=>{ka[""+n.uid]=i},key:n.uid,class:n.class,...n.attrs},[G("div",{class:n.wrapperClass},s)])}))))}})}const Fh={setDefaults(e){Ln(e)===!0&&Object.assign(Xn,e)},registerType(e,t){Ln(t)===!0&&(pn[e]=t)},install({$q:e,parentApp:t}){if(e.notify=this.create=n=>Aa(n,e),e.notify.setDefaults=this.setDefaults,e.notify.registerType=this.registerType,e.config.notify!==void 0&&this.setDefaults(e.config.notify),this.__installed!==!0){ei.forEach(r=>{De[r]=Nt([]);const s=["left","center","right"].includes(r)===!0?"center":r.indexOf("top")!==-1?"top":"bottom",i=r.indexOf("left")!==-1?"start":r.indexOf("right")!==-1?"end":"center",o=["left","right"].includes(r)?`items-${r==="left"?"start":"end"} justify-center`:r==="center"?"flex-center":`items-${i}`;Ta[r]=`q-notifications__list q-notifications__list--${s} fixed column no-wrap ${o}`});const n=Oh("q-notify");$f(jh(),t).mount(n)}}},Dh={config:{dark:"auto"},lang:Yd,plugins:{Notify:Fh}},qh="/openWB/web/themes/koala/";async function Bh({app:e,router:t,store:n},r){let s=!1;const i=a=>{try{return t.resolve(a).href}catch{}return Object(a)===a?null:a},o=a=>{if(s=!0,typeof a=="string"&&/^https?:\/\//.test(a)){window.location.href=a;return}const u=i(a);u!==null&&(window.location.href=u,window.location.reload())},l=window.location.href.replace(window.location.origin,"");for(let a=0;s===!1&&a{const[t,n]=Promise.allSettled!==void 0?["allSettled",r=>r.map(s=>{if(s.status==="rejected"){console.error("[Quasar] boot error:",s.reason);return}return s.value.default})]:["all",r=>r.map(s=>s.default)];return Promise[t]([Wn(()=>import("./store-init-BPiEnDMl.js"),__vite__mapDeps([6,4]))]).then(r=>{const s=n(r).filter(i=>typeof i=="function");Bh(e,s)})});export{Af as $,Dt as A,Ks as B,Rr as C,Dc as D,ur as E,cr as F,Rc as G,Pe as H,_u as I,vr as J,cp as K,Ss as L,xf as M,zt as N,pf as O,vf as P,Th as Q,dh as R,Xe as S,ip as T,mf as U,gf as V,rp as W,Lu as X,bp as Y,Kh as Z,mh as _,Q as a,$c as a0,dp as a1,ep as a2,Yh as a3,jl as a4,Re as a5,Wh as a6,Sr as a7,Zh as a8,Wa as a9,np as aA,Jh as aB,Gh as aC,Xh as aD,Hh as aE,yu as aF,bu as aG,ph as aH,gh as aI,pe as aJ,ws as aK,zh as aL,xp as aM,bh as aN,_p as aO,Vh as aP,Oh as aQ,Ep as aR,wp as aS,vp as aT,uh as aU,sp as aV,Mf as aW,Go as aa,Tu as ab,ne as ac,qs as ad,pp as ae,yp as af,Ch as ag,Sp as ah,Zl as ai,Ot as aj,Uh as ak,tp as al,_f as am,Qh as an,gl as ao,ap,$r as aq,xs as ar,Sa as as,Zs as at,Xs as au,Xd as av,Yr as aw,zs as ax,fp as ay,Ln as az,hp as b,Dn as c,Zd as d,up as e,gp as f,ze as g,G as h,Ze as i,rl as j,jt as k,op as l,kr as m,Mn as n,Ar as o,yf as p,Mc as q,Nt as r,Oc as s,hn as t,Bs as u,mp as v,$t as w,Qn as x,lp as y,It as z}; diff --git a/packages/modules/web_themes/koala/web/assets/mqtt-store-BaDE5XKf.js b/packages/modules/web_themes/koala/web/assets/mqtt-store-CdQu5WWJ.js similarity index 72% rename from packages/modules/web_themes/koala/web/assets/mqtt-store-BaDE5XKf.js rename to packages/modules/web_themes/koala/web/assets/mqtt-store-CdQu5WWJ.js index a25d0391bf..01c8a9623d 100644 --- a/packages/modules/web_themes/koala/web/assets/mqtt-store-BaDE5XKf.js +++ b/packages/modules/web_themes/koala/web/assets/mqtt-store-CdQu5WWJ.js @@ -1,11 +1,11 @@ -var jl=Object.defineProperty;var xo=f=>{throw TypeError(f)};var Ml=(f,h,s)=>h in f?jl(f,h,{enumerable:!0,configurable:!0,writable:!0,value:s}):f[h]=s;var it=(f,h,s)=>Ml(f,typeof h!="symbol"?h+"":h,s),rn=(f,h,s)=>h.has(f)||xo("Cannot "+s);var D=(f,h,s)=>(rn(f,h,"read from private field"),s?s.call(f):h.get(f)),qe=(f,h,s)=>h.has(f)?xo("Cannot add the same private member more than once"):h instanceof WeakSet?h.add(f):h.set(f,s),De=(f,h,s,a)=>(rn(f,h,"write to private field"),a?a.call(f,s):h.set(f,s),s),Ne=(f,h,s)=>(rn(f,h,"access private method"),s);var br=(f,h,s,a)=>({set _(c){De(f,h,c,s)},get _(){return D(f,h,a)}});import{ae as Bl,r as Io,a as Ie}from"./index-BBNHe89s.js";var ao=Object.defineProperty,Nl=Object.getOwnPropertyDescriptor,Ul=Object.getOwnPropertyNames,Ll=Object.prototype.hasOwnProperty,yt=(f,h)=>()=>(f&&(h=f(f=0)),h),Se=(f,h)=>()=>(h||f((h={exports:{}}).exports,h),h.exports),or=(f,h)=>{for(var s in h)ao(f,s,{get:h[s],enumerable:!0})},Dl=(f,h,s,a)=>{if(h&&typeof h=="object"||typeof h=="function")for(let c of Ul(h))!Ll.call(f,c)&&c!==s&&ao(f,c,{get:()=>h[c],enumerable:!(a=Nl(h,c))||a.enumerable});return f},Ke=f=>Dl(ao({},"__esModule",{value:!0}),f),ge=yt(()=>{}),Ge={};or(Ge,{_debugEnd:()=>Fn,_debugProcess:()=>Dn,_events:()=>ti,_eventsCount:()=>ri,_exiting:()=>xn,_fatalExceptions:()=>Nn,_getActiveHandles:()=>$s,_getActiveRequests:()=>Ws,_kill:()=>kn,_linkedBinding:()=>Ds,_maxListeners:()=>ei,_preload_modules:()=>Xn,_rawDebug:()=>Sn,_startProfilerIdleNotifier:()=>Wn,_stopProfilerIdleNotifier:()=>$n,_tickCallback:()=>Ln,abort:()=>Kn,addListener:()=>ni,allowedNodeEnvironmentFlags:()=>Mn,arch:()=>ln,argv:()=>hn,argv0:()=>Jn,assert:()=>qs,binding:()=>yn,browser:()=>_n,chdir:()=>vn,config:()=>In,cpuUsage:()=>ur,cwd:()=>bn,debugPort:()=>Yn,default:()=>uo,dlopen:()=>Fs,domain:()=>An,emit:()=>li,emitWarning:()=>gn,env:()=>cn,execArgv:()=>fn,execPath:()=>Qn,exit:()=>Rn,features:()=>Bn,hasUncaughtExceptionCaptureCallback:()=>Vs,hrtime:()=>_r,kill:()=>Cn,listeners:()=>Ks,memoryUsage:()=>Pn,moduleLoadList:()=>En,nextTick:()=>Us,off:()=>oi,on:()=>xt,once:()=>ii,openStdin:()=>jn,pid:()=>Hn,platform:()=>un,ppid:()=>Gn,prependListener:()=>ui,prependOnceListener:()=>ci,reallyExit:()=>On,release:()=>wn,removeAllListeners:()=>ai,removeListener:()=>si,resourceUsage:()=>Tn,setSourceMapsEnabled:()=>Zn,setUncaughtExceptionCaptureCallback:()=>Un,stderr:()=>Vn,stdin:()=>zn,stdout:()=>qn,title:()=>an,umask:()=>mn,uptime:()=>zs,version:()=>pn,versions:()=>dn});function lo(f){throw new Error("Node.js process "+f+" is not supported by JSPM core outside of Node.js")}function Fl(){!Jt||!Qt||(Jt=!1,Qt.length?_t=Qt.concat(_t):pr=-1,_t.length&&Ns())}function Ns(){if(!Jt){var f=setTimeout(Fl,0);Jt=!0;for(var h=_t.length;h;){for(Qt=_t,_t=[];++pr1)for(var s=1;s{ge(),me(),ye(),_t=[],Jt=!1,pr=-1,Ls.prototype.run=function(){this.fun.apply(null,this.array)},an="browser",ln="x64",un="browser",cn={PATH:"/usr/bin",LANG:typeof navigator<"u"?navigator.language+".UTF-8":void 0,PWD:"/",HOME:"/home",TMP:"/tmp"},hn=["/usr/bin/node"],fn=[],pn="v16.8.0",dn={},gn=function(f,h){console.warn((h?h+": ":"")+f)},yn=function(f){lo("binding")},mn=function(f){return 0},bn=function(){return"/"},vn=function(f){},wn={name:"node",sourceUrl:"",headersUrl:"",libUrl:""},_n=!0,Sn=ct,En=[],An={},xn=!1,In={},On=ct,kn=ct,ur=function(){return{}},Tn=ur,Pn=ur,Cn=ct,Rn=ct,jn=ct,Mn={},Bn={inspector:!1,debug:!1,uv:!1,ipv6:!1,tls_alpn:!1,tls_sni:!1,tls_ocsp:!1,tls:!1,cached_builtins:!0},Nn=ct,Un=ct,Ln=ct,Dn=ct,Fn=ct,Wn=ct,$n=ct,qn=void 0,Vn=void 0,zn=void 0,Kn=ct,Hn=2,Gn=1,Qn="/bin/usr/node",Yn=9229,Jn="node",Xn=[],Zn=ct,Ot={now:typeof performance<"u"?performance.now.bind(performance):void 0,timing:typeof performance<"u"?performance.timing:void 0},Ot.now===void 0&&(nn=Date.now(),Ot.timing&&Ot.timing.navigationStart&&(nn=Ot.timing.navigationStart),Ot.now=()=>Date.now()-nn),Sr=1e9,_r.bigint=function(f){var h=_r(f);return typeof BigInt>"u"?h[0]*Sr+h[1]:BigInt(h[0]*Sr)+BigInt(h[1])},ei=10,ti={},ri=0,ni=xt,ii=xt,oi=xt,si=xt,ai=xt,li=ct,ui=xt,ci=xt,uo={version:pn,versions:dn,arch:ln,platform:un,browser:_n,release:wn,_rawDebug:Sn,moduleLoadList:En,binding:yn,_linkedBinding:Ds,_events:ti,_eventsCount:ri,_maxListeners:ei,on:xt,addListener:ni,once:ii,off:oi,removeListener:si,removeAllListeners:ai,emit:li,prependListener:ui,prependOnceListener:ci,listeners:Ks,domain:An,_exiting:xn,config:In,dlopen:Fs,uptime:zs,_getActiveRequests:Ws,_getActiveHandles:$s,reallyExit:On,_kill:kn,cpuUsage:ur,resourceUsage:Tn,memoryUsage:Pn,kill:Cn,exit:Rn,openStdin:jn,allowedNodeEnvironmentFlags:Mn,assert:qs,features:Bn,_fatalExceptions:Nn,setUncaughtExceptionCaptureCallback:Un,hasUncaughtExceptionCaptureCallback:Vs,emitWarning:gn,nextTick:Us,_tickCallback:Ln,_debugProcess:Dn,_debugEnd:Fn,_startProfilerIdleNotifier:Wn,_stopProfilerIdleNotifier:$n,stdout:qn,stdin:zn,stderr:Vn,abort:Kn,umask:mn,chdir:vn,cwd:bn,env:cn,title:an,argv:hn,execArgv:fn,pid:Hn,ppid:Gn,execPath:Qn,debugPort:Yn,hrtime:_r,argv0:Jn,_preload_modules:Xn,setSourceMapsEnabled:Zn}}),ye=yt(()=>{Wl()});function $l(){if(hi)return rr;hi=!0,rr.byteLength=t,rr.toByteArray=i,rr.fromByteArray=p;for(var f=[],h=[],s=typeof Uint8Array<"u"?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",c=0,n=a.length;c0)throw new Error("Invalid string. Length must be a multiple of 4");var E=g.indexOf("=");E===-1&&(E=b);var S=E===b?0:4-E%4;return[E,S]}function t(g){var b=r(g),E=b[0],S=b[1];return(E+S)*3/4-S}function e(g,b,E){return(b+E)*3/4-E}function i(g){var b,E=r(g),S=E[0],x=E[1],y=new s(e(g,S,x)),v=0,A=x>0?S-4:S,_;for(_=0;_>16&255,y[v++]=b>>8&255,y[v++]=b&255;return x===2&&(b=h[g.charCodeAt(_)]<<2|h[g.charCodeAt(_+1)]>>4,y[v++]=b&255),x===1&&(b=h[g.charCodeAt(_)]<<10|h[g.charCodeAt(_+1)]<<4|h[g.charCodeAt(_+2)]>>2,y[v++]=b>>8&255,y[v++]=b&255),y}function l(g){return f[g>>18&63]+f[g>>12&63]+f[g>>6&63]+f[g&63]}function d(g,b,E){for(var S,x=[],y=b;yA?A:v+y));return S===1?(b=g[E-1],x.push(f[b>>2]+f[b<<4&63]+"==")):S===2&&(b=(g[E-2]<<8)+g[E-1],x.push(f[b>>10]+f[b>>4&63]+f[b<<2&63]+"=")),x.join("")}return rr}function ql(){return fi?cr:(fi=!0,cr.read=function(f,h,s,a,c){var n,r,t=c*8-a-1,e=(1<>1,l=-7,d=s?c-1:0,p=s?-1:1,g=f[h+d];for(d+=p,n=g&(1<<-l)-1,g>>=-l,l+=t;l>0;n=n*256+f[h+d],d+=p,l-=8);for(r=n&(1<<-l)-1,n>>=-l,l+=a;l>0;r=r*256+f[h+d],d+=p,l-=8);if(n===0)n=1-i;else{if(n===e)return r?NaN:(g?-1:1)*(1/0);r=r+Math.pow(2,a),n=n-i}return(g?-1:1)*r*Math.pow(2,n-a)},cr.write=function(f,h,s,a,c,n){var r,t,e,i=n*8-c-1,l=(1<>1,p=c===23?Math.pow(2,-24)-Math.pow(2,-77):0,g=a?0:n-1,b=a?1:-1,E=h<0||h===0&&1/h<0?1:0;for(h=Math.abs(h),isNaN(h)||h===1/0?(t=isNaN(h)?1:0,r=l):(r=Math.floor(Math.log(h)/Math.LN2),h*(e=Math.pow(2,-r))<1&&(r--,e*=2),r+d>=1?h+=p/e:h+=p*Math.pow(2,1-d),h*e>=2&&(r++,e/=2),r+d>=l?(t=0,r=l):r+d>=1?(t=(h*e-1)*Math.pow(2,c),r=r+d):(t=h*Math.pow(2,d-1)*Math.pow(2,c),r=0));c>=8;f[s+g]=t&255,g+=b,t/=256,c-=8);for(r=r<0;f[s+g]=r&255,g+=b,r/=256,i-=8);f[s+g-b]|=E*128},cr)}function Vl(){if(pi)return Ut;pi=!0;let f=$l(),h=ql(),s=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;Ut.Buffer=r,Ut.SlowBuffer=x,Ut.INSPECT_MAX_BYTES=50;let a=2147483647;Ut.kMaxLength=a,r.TYPED_ARRAY_SUPPORT=c(),!r.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function c(){try{let o=new Uint8Array(1),u={foo:function(){return 42}};return Object.setPrototypeOf(u,Uint8Array.prototype),Object.setPrototypeOf(o,u),o.foo()===42}catch{return!1}}Object.defineProperty(r.prototype,"parent",{enumerable:!0,get:function(){if(r.isBuffer(this))return this.buffer}}),Object.defineProperty(r.prototype,"offset",{enumerable:!0,get:function(){if(r.isBuffer(this))return this.byteOffset}});function n(o){if(o>a)throw new RangeError('The value "'+o+'" is invalid for option "size"');let u=new Uint8Array(o);return Object.setPrototypeOf(u,r.prototype),u}function r(o,u,m){if(typeof o=="number"){if(typeof u=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return l(o)}return t(o,u,m)}r.poolSize=8192;function t(o,u,m){if(typeof o=="string")return d(o,u);if(ArrayBuffer.isView(o))return g(o);if(o==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof o);if(Q(o,ArrayBuffer)||o&&Q(o.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(Q(o,SharedArrayBuffer)||o&&Q(o.buffer,SharedArrayBuffer)))return b(o,u,m);if(typeof o=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let C=o.valueOf&&o.valueOf();if(C!=null&&C!==o)return r.from(C,u,m);let N=E(o);if(N)return N;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof o[Symbol.toPrimitive]=="function")return r.from(o[Symbol.toPrimitive]("string"),u,m);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof o)}r.from=function(o,u,m){return t(o,u,m)},Object.setPrototypeOf(r.prototype,Uint8Array.prototype),Object.setPrototypeOf(r,Uint8Array);function e(o){if(typeof o!="number")throw new TypeError('"size" argument must be of type number');if(o<0)throw new RangeError('The value "'+o+'" is invalid for option "size"')}function i(o,u,m){return e(o),o<=0?n(o):u!==void 0?typeof m=="string"?n(o).fill(u,m):n(o).fill(u):n(o)}r.alloc=function(o,u,m){return i(o,u,m)};function l(o){return e(o),n(o<0?0:S(o)|0)}r.allocUnsafe=function(o){return l(o)},r.allocUnsafeSlow=function(o){return l(o)};function d(o,u){if((typeof u!="string"||u==="")&&(u="utf8"),!r.isEncoding(u))throw new TypeError("Unknown encoding: "+u);let m=y(o,u)|0,C=n(m),N=C.write(o,u);return N!==m&&(C=C.slice(0,N)),C}function p(o){let u=o.length<0?0:S(o.length)|0,m=n(u);for(let C=0;C=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return o|0}function x(o){return+o!=o&&(o=0),r.alloc(+o)}r.isBuffer=function(o){return o!=null&&o._isBuffer===!0&&o!==r.prototype},r.compare=function(o,u){if(Q(o,Uint8Array)&&(o=r.from(o,o.offset,o.byteLength)),Q(u,Uint8Array)&&(u=r.from(u,u.offset,u.byteLength)),!r.isBuffer(o)||!r.isBuffer(u))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(o===u)return 0;let m=o.length,C=u.length;for(let N=0,K=Math.min(m,C);NC.length?(r.isBuffer(K)||(K=r.from(K)),K.copy(C,N)):Uint8Array.prototype.set.call(C,K,N);else if(r.isBuffer(K))K.copy(C,N);else throw new TypeError('"list" argument must be an Array of Buffers');N+=K.length}return C};function y(o,u){if(r.isBuffer(o))return o.length;if(ArrayBuffer.isView(o)||Q(o,ArrayBuffer))return o.byteLength;if(typeof o!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof o);let m=o.length,C=arguments.length>2&&arguments[2]===!0;if(!C&&m===0)return 0;let N=!1;for(;;)switch(u){case"ascii":case"latin1":case"binary":return m;case"utf8":case"utf-8":return H(o).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return m*2;case"hex":return m>>>1;case"base64":return ve(o).length;default:if(N)return C?-1:H(o).length;u=(""+u).toLowerCase(),N=!0}}r.byteLength=y;function v(o,u,m){let C=!1;if((u===void 0||u<0)&&(u=0),u>this.length||((m===void 0||m>this.length)&&(m=this.length),m<=0)||(m>>>=0,u>>>=0,m<=u))return"";for(o||(o="utf8");;)switch(o){case"hex":return te(this,u,m);case"utf8":case"utf-8":return z(this,u,m);case"ascii":return he(this,u,m);case"latin1":case"binary":return ne(this,u,m);case"base64":return k(this,u,m);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ce(this,u,m);default:if(C)throw new TypeError("Unknown encoding: "+o);o=(o+"").toLowerCase(),C=!0}}r.prototype._isBuffer=!0;function A(o,u,m){let C=o[u];o[u]=o[m],o[m]=C}r.prototype.swap16=function(){let o=this.length;if(o%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let u=0;uu&&(o+=" ... "),""},s&&(r.prototype[s]=r.prototype.inspect),r.prototype.compare=function(o,u,m,C,N){if(Q(o,Uint8Array)&&(o=r.from(o,o.offset,o.byteLength)),!r.isBuffer(o))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof o);if(u===void 0&&(u=0),m===void 0&&(m=o?o.length:0),C===void 0&&(C=0),N===void 0&&(N=this.length),u<0||m>o.length||C<0||N>this.length)throw new RangeError("out of range index");if(C>=N&&u>=m)return 0;if(C>=N)return-1;if(u>=m)return 1;if(u>>>=0,m>>>=0,C>>>=0,N>>>=0,this===o)return 0;let K=N-C,de=m-u,$=Math.min(K,de),ie=this.slice(C,N),Re=o.slice(u,m);for(let Te=0;Te<$;++Te)if(ie[Te]!==Re[Te]){K=ie[Te],de=Re[Te];break}return K2147483647?m=2147483647:m<-2147483648&&(m=-2147483648),m=+m,_e(m)&&(m=N?0:o.length-1),m<0&&(m=o.length+m),m>=o.length){if(N)return-1;m=o.length-1}else if(m<0)if(N)m=0;else return-1;if(typeof u=="string"&&(u=r.from(u,C)),r.isBuffer(u))return u.length===0?-1:R(o,u,m,C,N);if(typeof u=="number")return u=u&255,typeof Uint8Array.prototype.indexOf=="function"?N?Uint8Array.prototype.indexOf.call(o,u,m):Uint8Array.prototype.lastIndexOf.call(o,u,m):R(o,[u],m,C,N);throw new TypeError("val must be string, number or Buffer")}function R(o,u,m,C,N){let K=1,de=o.length,$=u.length;if(C!==void 0&&(C=String(C).toLowerCase(),C==="ucs2"||C==="ucs-2"||C==="utf16le"||C==="utf-16le")){if(o.length<2||u.length<2)return-1;K=2,de/=2,$/=2,m/=2}function ie(Te,Le){return K===1?Te[Le]:Te.readUInt16BE(Le*K)}let Re;if(N){let Te=-1;for(Re=m;Rede&&(m=de-$),Re=m;Re>=0;Re--){let Te=!0;for(let Le=0;Le<$;Le++)if(ie(o,Re+Le)!==ie(u,Le)){Te=!1;break}if(Te)return Re}return-1}r.prototype.includes=function(o,u,m){return this.indexOf(o,u,m)!==-1},r.prototype.indexOf=function(o,u,m){return _(this,o,u,m,!0)},r.prototype.lastIndexOf=function(o,u,m){return _(this,o,u,m,!1)};function w(o,u,m,C){m=Number(m)||0;let N=o.length-m;C?(C=Number(C),C>N&&(C=N)):C=N;let K=u.length;C>K/2&&(C=K/2);let de;for(de=0;de>>0,isFinite(m)?(m=m>>>0,C===void 0&&(C="utf8")):(C=m,m=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let N=this.length-u;if((m===void 0||m>N)&&(m=N),o.length>0&&(m<0||u<0)||u>this.length)throw new RangeError("Attempt to write outside buffer bounds");C||(C="utf8");let K=!1;for(;;)switch(C){case"hex":return w(this,o,u,m);case"utf8":case"utf-8":return O(this,o,u,m);case"ascii":case"latin1":case"binary":return T(this,o,u,m);case"base64":return M(this,o,u,m);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return U(this,o,u,m);default:if(K)throw new TypeError("Unknown encoding: "+C);C=(""+C).toLowerCase(),K=!0}},r.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function k(o,u,m){return u===0&&m===o.length?f.fromByteArray(o):f.fromByteArray(o.slice(u,m))}function z(o,u,m){m=Math.min(o.length,m);let C=[],N=u;for(;N239?4:K>223?3:K>191?2:1;if(N+$<=m){let ie,Re,Te,Le;switch($){case 1:K<128&&(de=K);break;case 2:ie=o[N+1],(ie&192)===128&&(Le=(K&31)<<6|ie&63,Le>127&&(de=Le));break;case 3:ie=o[N+1],Re=o[N+2],(ie&192)===128&&(Re&192)===128&&(Le=(K&15)<<12|(ie&63)<<6|Re&63,Le>2047&&(Le<55296||Le>57343)&&(de=Le));break;case 4:ie=o[N+1],Re=o[N+2],Te=o[N+3],(ie&192)===128&&(Re&192)===128&&(Te&192)===128&&(Le=(K&15)<<18|(ie&63)<<12|(Re&63)<<6|Te&63,Le>65535&&Le<1114112&&(de=Le))}}de===null?(de=65533,$=1):de>65535&&(de-=65536,C.push(de>>>10&1023|55296),de=56320|de&1023),C.push(de),N+=$}return q(C)}let G=4096;function q(o){let u=o.length;if(u<=G)return String.fromCharCode.apply(String,o);let m="",C=0;for(;CC)&&(m=C);let N="";for(let K=u;Km&&(o=m),u<0?(u+=m,u<0&&(u=0)):u>m&&(u=m),um)throw new RangeError("Trying to access beyond buffer length")}r.prototype.readUintLE=r.prototype.readUIntLE=function(o,u,m){o=o>>>0,u=u>>>0,m||V(o,u,this.length);let C=this[o],N=1,K=0;for(;++K>>0,u=u>>>0,m||V(o,u,this.length);let C=this[o+--u],N=1;for(;u>0&&(N*=256);)C+=this[o+--u]*N;return C},r.prototype.readUint8=r.prototype.readUInt8=function(o,u){return o=o>>>0,u||V(o,1,this.length),this[o]},r.prototype.readUint16LE=r.prototype.readUInt16LE=function(o,u){return o=o>>>0,u||V(o,2,this.length),this[o]|this[o+1]<<8},r.prototype.readUint16BE=r.prototype.readUInt16BE=function(o,u){return o=o>>>0,u||V(o,2,this.length),this[o]<<8|this[o+1]},r.prototype.readUint32LE=r.prototype.readUInt32LE=function(o,u){return o=o>>>0,u||V(o,4,this.length),(this[o]|this[o+1]<<8|this[o+2]<<16)+this[o+3]*16777216},r.prototype.readUint32BE=r.prototype.readUInt32BE=function(o,u){return o=o>>>0,u||V(o,4,this.length),this[o]*16777216+(this[o+1]<<16|this[o+2]<<8|this[o+3])},r.prototype.readBigUInt64LE=fe(function(o){o=o>>>0,re(o,"offset");let u=this[o],m=this[o+7];(u===void 0||m===void 0)&&we(o,this.length-8);let C=u+this[++o]*2**8+this[++o]*2**16+this[++o]*2**24,N=this[++o]+this[++o]*2**8+this[++o]*2**16+m*2**24;return BigInt(C)+(BigInt(N)<>>0,re(o,"offset");let u=this[o],m=this[o+7];(u===void 0||m===void 0)&&we(o,this.length-8);let C=u*2**24+this[++o]*2**16+this[++o]*2**8+this[++o],N=this[++o]*2**24+this[++o]*2**16+this[++o]*2**8+m;return(BigInt(C)<>>0,u=u>>>0,m||V(o,u,this.length);let C=this[o],N=1,K=0;for(;++K=N&&(C-=Math.pow(2,8*u)),C},r.prototype.readIntBE=function(o,u,m){o=o>>>0,u=u>>>0,m||V(o,u,this.length);let C=u,N=1,K=this[o+--C];for(;C>0&&(N*=256);)K+=this[o+--C]*N;return N*=128,K>=N&&(K-=Math.pow(2,8*u)),K},r.prototype.readInt8=function(o,u){return o=o>>>0,u||V(o,1,this.length),this[o]&128?(255-this[o]+1)*-1:this[o]},r.prototype.readInt16LE=function(o,u){o=o>>>0,u||V(o,2,this.length);let m=this[o]|this[o+1]<<8;return m&32768?m|4294901760:m},r.prototype.readInt16BE=function(o,u){o=o>>>0,u||V(o,2,this.length);let m=this[o+1]|this[o]<<8;return m&32768?m|4294901760:m},r.prototype.readInt32LE=function(o,u){return o=o>>>0,u||V(o,4,this.length),this[o]|this[o+1]<<8|this[o+2]<<16|this[o+3]<<24},r.prototype.readInt32BE=function(o,u){return o=o>>>0,u||V(o,4,this.length),this[o]<<24|this[o+1]<<16|this[o+2]<<8|this[o+3]},r.prototype.readBigInt64LE=fe(function(o){o=o>>>0,re(o,"offset");let u=this[o],m=this[o+7];(u===void 0||m===void 0)&&we(o,this.length-8);let C=this[o+4]+this[o+5]*2**8+this[o+6]*2**16+(m<<24);return(BigInt(C)<>>0,re(o,"offset");let u=this[o],m=this[o+7];(u===void 0||m===void 0)&&we(o,this.length-8);let C=(u<<24)+this[++o]*2**16+this[++o]*2**8+this[++o];return(BigInt(C)<>>0,u||V(o,4,this.length),h.read(this,o,!0,23,4)},r.prototype.readFloatBE=function(o,u){return o=o>>>0,u||V(o,4,this.length),h.read(this,o,!1,23,4)},r.prototype.readDoubleLE=function(o,u){return o=o>>>0,u||V(o,8,this.length),h.read(this,o,!0,52,8)},r.prototype.readDoubleBE=function(o,u){return o=o>>>0,u||V(o,8,this.length),h.read(this,o,!1,52,8)};function le(o,u,m,C,N,K){if(!r.isBuffer(o))throw new TypeError('"buffer" argument must be a Buffer instance');if(u>N||uo.length)throw new RangeError("Index out of range")}r.prototype.writeUintLE=r.prototype.writeUIntLE=function(o,u,m,C){if(o=+o,u=u>>>0,m=m>>>0,!C){let de=Math.pow(2,8*m)-1;le(this,o,u,m,de,0)}let N=1,K=0;for(this[u]=o&255;++K>>0,m=m>>>0,!C){let de=Math.pow(2,8*m)-1;le(this,o,u,m,de,0)}let N=m-1,K=1;for(this[u+N]=o&255;--N>=0&&(K*=256);)this[u+N]=o/K&255;return u+m},r.prototype.writeUint8=r.prototype.writeUInt8=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,1,255,0),this[u]=o&255,u+1},r.prototype.writeUint16LE=r.prototype.writeUInt16LE=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,2,65535,0),this[u]=o&255,this[u+1]=o>>>8,u+2},r.prototype.writeUint16BE=r.prototype.writeUInt16BE=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,2,65535,0),this[u]=o>>>8,this[u+1]=o&255,u+2},r.prototype.writeUint32LE=r.prototype.writeUInt32LE=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,4,4294967295,0),this[u+3]=o>>>24,this[u+2]=o>>>16,this[u+1]=o>>>8,this[u]=o&255,u+4},r.prototype.writeUint32BE=r.prototype.writeUInt32BE=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,4,4294967295,0),this[u]=o>>>24,this[u+1]=o>>>16,this[u+2]=o>>>8,this[u+3]=o&255,u+4};function B(o,u,m,C,N){J(u,C,N,o,m,7);let K=Number(u&BigInt(4294967295));o[m++]=K,K=K>>8,o[m++]=K,K=K>>8,o[m++]=K,K=K>>8,o[m++]=K;let de=Number(u>>BigInt(32)&BigInt(4294967295));return o[m++]=de,de=de>>8,o[m++]=de,de=de>>8,o[m++]=de,de=de>>8,o[m++]=de,m}function ee(o,u,m,C,N){J(u,C,N,o,m,7);let K=Number(u&BigInt(4294967295));o[m+7]=K,K=K>>8,o[m+6]=K,K=K>>8,o[m+5]=K,K=K>>8,o[m+4]=K;let de=Number(u>>BigInt(32)&BigInt(4294967295));return o[m+3]=de,de=de>>8,o[m+2]=de,de=de>>8,o[m+1]=de,de=de>>8,o[m]=de,m+8}r.prototype.writeBigUInt64LE=fe(function(o,u=0){return B(this,o,u,BigInt(0),BigInt("0xffffffffffffffff"))}),r.prototype.writeBigUInt64BE=fe(function(o,u=0){return ee(this,o,u,BigInt(0),BigInt("0xffffffffffffffff"))}),r.prototype.writeIntLE=function(o,u,m,C){if(o=+o,u=u>>>0,!C){let $=Math.pow(2,8*m-1);le(this,o,u,m,$-1,-$)}let N=0,K=1,de=0;for(this[u]=o&255;++N>0)-de&255;return u+m},r.prototype.writeIntBE=function(o,u,m,C){if(o=+o,u=u>>>0,!C){let $=Math.pow(2,8*m-1);le(this,o,u,m,$-1,-$)}let N=m-1,K=1,de=0;for(this[u+N]=o&255;--N>=0&&(K*=256);)o<0&&de===0&&this[u+N+1]!==0&&(de=1),this[u+N]=(o/K>>0)-de&255;return u+m},r.prototype.writeInt8=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,1,127,-128),o<0&&(o=255+o+1),this[u]=o&255,u+1},r.prototype.writeInt16LE=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,2,32767,-32768),this[u]=o&255,this[u+1]=o>>>8,u+2},r.prototype.writeInt16BE=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,2,32767,-32768),this[u]=o>>>8,this[u+1]=o&255,u+2},r.prototype.writeInt32LE=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,4,2147483647,-2147483648),this[u]=o&255,this[u+1]=o>>>8,this[u+2]=o>>>16,this[u+3]=o>>>24,u+4},r.prototype.writeInt32BE=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,4,2147483647,-2147483648),o<0&&(o=4294967295+o+1),this[u]=o>>>24,this[u+1]=o>>>16,this[u+2]=o>>>8,this[u+3]=o&255,u+4},r.prototype.writeBigInt64LE=fe(function(o,u=0){return B(this,o,u,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),r.prototype.writeBigInt64BE=fe(function(o,u=0){return ee(this,o,u,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Z(o,u,m,C,N,K){if(m+C>o.length)throw new RangeError("Index out of range");if(m<0)throw new RangeError("Index out of range")}function ue(o,u,m,C,N){return u=+u,m=m>>>0,N||Z(o,u,m,4),h.write(o,u,m,C,23,4),m+4}r.prototype.writeFloatLE=function(o,u,m){return ue(this,o,u,!0,m)},r.prototype.writeFloatBE=function(o,u,m){return ue(this,o,u,!1,m)};function Ae(o,u,m,C,N){return u=+u,m=m>>>0,N||Z(o,u,m,8),h.write(o,u,m,C,52,8),m+8}r.prototype.writeDoubleLE=function(o,u,m){return Ae(this,o,u,!0,m)},r.prototype.writeDoubleBE=function(o,u,m){return Ae(this,o,u,!1,m)},r.prototype.copy=function(o,u,m,C){if(!r.isBuffer(o))throw new TypeError("argument should be a Buffer");if(m||(m=0),!C&&C!==0&&(C=this.length),u>=o.length&&(u=o.length),u||(u=0),C>0&&C=this.length)throw new RangeError("Index out of range");if(C<0)throw new RangeError("sourceEnd out of bounds");C>this.length&&(C=this.length),o.length-u>>0,m=m===void 0?this.length:m>>>0,o||(o=0);let N;if(typeof o=="number")for(N=u;N2**32?N=oe(String(m)):typeof m=="bigint"&&(N=String(m),(m>BigInt(2)**BigInt(32)||m<-(BigInt(2)**BigInt(32)))&&(N=oe(N)),N+="n"),C+=` It must be ${u}. Received ${N}`,C},RangeError);function oe(o){let u="",m=o.length,C=o[0]==="-"?1:0;for(;m>=C+4;m-=3)u=`_${o.slice(m-3,m)}${u}`;return`${o.slice(0,m)}${u}`}function X(o,u,m){re(u,"offset"),(o[u]===void 0||o[u+m]===void 0)&&we(u,o.length-(m+1))}function J(o,u,m,C,N,K){if(o>m||o= 0${de} and < 2${de} ** ${(K+1)*8}${de}`:$=`>= -(2${de} ** ${(K+1)*8-1}${de}) and < 2 ** ${(K+1)*8-1}${de}`,new Y.ERR_OUT_OF_RANGE("value",$,o)}X(C,N,K)}function re(o,u){if(typeof o!="number")throw new Y.ERR_INVALID_ARG_TYPE(u,"number",o)}function we(o,u,m){throw Math.floor(o)!==o?(re(o,m),new Y.ERR_OUT_OF_RANGE("offset","an integer",o)):u<0?new Y.ERR_BUFFER_OUT_OF_BOUNDS:new Y.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${u}`,o)}let pe=/[^+/0-9A-Za-z-_]/g;function L(o){if(o=o.split("=")[0],o=o.trim().replace(pe,""),o.length<2)return"";for(;o.length%4!==0;)o=o+"=";return o}function H(o,u){u=u||1/0;let m,C=o.length,N=null,K=[];for(let de=0;de55295&&m<57344){if(!N){if(m>56319){(u-=3)>-1&&K.push(239,191,189);continue}else if(de+1===C){(u-=3)>-1&&K.push(239,191,189);continue}N=m;continue}if(m<56320){(u-=3)>-1&&K.push(239,191,189),N=m;continue}m=(N-55296<<10|m-56320)+65536}else N&&(u-=3)>-1&&K.push(239,191,189);if(N=null,m<128){if((u-=1)<0)break;K.push(m)}else if(m<2048){if((u-=2)<0)break;K.push(m>>6|192,m&63|128)}else if(m<65536){if((u-=3)<0)break;K.push(m>>12|224,m>>6&63|128,m&63|128)}else if(m<1114112){if((u-=4)<0)break;K.push(m>>18|240,m>>12&63|128,m>>6&63|128,m&63|128)}else throw new Error("Invalid code point")}return K}function se(o){let u=[];for(let m=0;m>8,N=m%256,K.push(N),K.push(C);return K}function ve(o){return f.toByteArray(L(o))}function Ee(o,u,m,C){let N;for(N=0;N=u.length||N>=o.length);++N)u[N+m]=o[N];return N}function Q(o,u){return o instanceof u||o!=null&&o.constructor!=null&&o.constructor.name!=null&&o.constructor.name===u.name}function _e(o){return o!==o}let Oe=(function(){let o="0123456789abcdef",u=new Array(256);for(let m=0;m<16;++m){let C=m*16;for(let N=0;N<16;++N)u[C+N]=o[m]+o[N]}return u})();function fe(o){return typeof BigInt>"u"?Be:o}function Be(){throw new Error("BigInt not supported")}return Ut}var rr,hi,cr,fi,Ut,pi,zl=yt(()=>{ge(),me(),ye(),rr={},hi=!1,cr={},fi=!1,Ut={},pi=!1}),ot={};or(ot,{Buffer:()=>Gr,INSPECT_MAX_BYTES:()=>Hs,default:()=>It,kMaxLength:()=>Gs});var It,Gr,Hs,Gs,st=yt(()=>{ge(),me(),ye(),zl(),It=Vl(),It.Buffer,It.SlowBuffer,It.INSPECT_MAX_BYTES,It.kMaxLength,Gr=It.Buffer,Hs=It.INSPECT_MAX_BYTES,Gs=It.kMaxLength}),me=yt(()=>{st()}),Ze=Se((f,h)=>{ge(),me(),ye();var s=class extends Error{constructor(a){if(!Array.isArray(a))throw new TypeError(`Expected input to be an Array, got ${typeof a}`);let c="";for(let n=0;n{ge(),me(),ye(),h.exports={format(s,...a){return s.replace(/%([sdifj])/g,function(...[c,n]){let r=a.shift();return n==="f"?r.toFixed(6):n==="j"?JSON.stringify(r):n==="s"&&typeof r=="object"?`${r.constructor!==Object?r.constructor.name:""} {}`.trim():r.toString()})},inspect(s){switch(typeof s){case"string":if(s.includes("'"))if(s.includes('"')){if(!s.includes("`")&&!s.includes("${"))return`\`${s}\``}else return`"${s}"`;return`'${s}'`;case"number":return isNaN(s)?"NaN":Object.is(s,-0)?String(s):s;case"bigint":return`${String(s)}n`;case"boolean":case"undefined":return String(s);case"object":return"{}"}}}}),pt=Se((f,h)=>{ge(),me(),ye();var{format:s,inspect:a}=Qs(),{AggregateError:c}=Ze(),n=globalThis.AggregateError||c,r=Symbol("kIsNodeError"),t=["string","function","number","object","Function","Object","boolean","bigint","symbol"],e=/^([A-Z][a-z0-9]*)+$/,i="__node_internal_",l={};function d(y,v){if(!y)throw new l.ERR_INTERNAL_ASSERTION(v)}function p(y){let v="",A=y.length,_=y[0]==="-"?1:0;for(;A>=_+4;A-=3)v=`_${y.slice(A-3,A)}${v}`;return`${y.slice(0,A)}${v}`}function g(y,v,A){if(typeof v=="function")return d(v.length<=A.length,`Code: ${y}; The provided arguments length (${A.length}) does not match the required ones (${v.length}).`),v(...A);let _=(v.match(/%[dfijoOs]/g)||[]).length;return d(_===A.length,`Code: ${y}; The provided arguments length (${A.length}) does not match the required ones (${_}).`),A.length===0?v:s(v,...A)}function b(y,v,A){A||(A=Error);class _ extends A{constructor(...w){super(g(y,v,w))}toString(){return`${this.name} [${y}]: ${this.message}`}}Object.defineProperties(_.prototype,{name:{value:A.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${y}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),_.prototype.code=y,_.prototype[r]=!0,l[y]=_}function E(y){let v=i+y.name;return Object.defineProperty(y,"name",{value:v}),y}function S(y,v){if(y&&v&&y!==v){if(Array.isArray(v.errors))return v.errors.push(y),v;let A=new n([v,y],v.message);return A.code=v.code,A}return y||v}var x=class extends Error{constructor(y="The operation was aborted",v=void 0){if(v!==void 0&&typeof v!="object")throw new l.ERR_INVALID_ARG_TYPE("options","Object",v);super(y,v),this.code="ABORT_ERR",this.name="AbortError"}};b("ERR_ASSERTION","%s",Error),b("ERR_INVALID_ARG_TYPE",(y,v,A)=>{d(typeof y=="string","'name' must be a string"),Array.isArray(v)||(v=[v]);let _="The ";y.endsWith(" argument")?_+=`${y} `:_+=`"${y}" ${y.includes(".")?"property":"argument"} `,_+="must be ";let R=[],w=[],O=[];for(let M of v)d(typeof M=="string","All expected entries have to be of type string"),t.includes(M)?R.push(M.toLowerCase()):e.test(M)?w.push(M):(d(M!=="object",'The value "object" should be written as "Object"'),O.push(M));if(w.length>0){let M=R.indexOf("object");M!==-1&&(R.splice(R,M,1),w.push("Object"))}if(R.length>0){switch(R.length){case 1:_+=`of type ${R[0]}`;break;case 2:_+=`one of type ${R[0]} or ${R[1]}`;break;default:{let M=R.pop();_+=`one of type ${R.join(", ")}, or ${M}`}}(w.length>0||O.length>0)&&(_+=" or ")}if(w.length>0){switch(w.length){case 1:_+=`an instance of ${w[0]}`;break;case 2:_+=`an instance of ${w[0]} or ${w[1]}`;break;default:{let M=w.pop();_+=`an instance of ${w.join(", ")}, or ${M}`}}O.length>0&&(_+=" or ")}switch(O.length){case 0:break;case 1:O[0].toLowerCase()!==O[0]&&(_+="an "),_+=`${O[0]}`;break;case 2:_+=`one of ${O[0]} or ${O[1]}`;break;default:{let M=O.pop();_+=`one of ${O.join(", ")}, or ${M}`}}if(A==null)_+=`. Received ${A}`;else if(typeof A=="function"&&A.name)_+=`. Received function ${A.name}`;else if(typeof A=="object"){var T;if((T=A.constructor)!==null&&T!==void 0&&T.name)_+=`. Received an instance of ${A.constructor.name}`;else{let M=a(A,{depth:-1});_+=`. Received ${M}`}}else{let M=a(A,{colors:!1});M.length>25&&(M=`${M.slice(0,25)}...`),_+=`. Received type ${typeof A} (${M})`}return _},TypeError),b("ERR_INVALID_ARG_VALUE",(y,v,A="is invalid")=>{let _=a(v);return _.length>128&&(_=_.slice(0,128)+"..."),`The ${y.includes(".")?"property":"argument"} '${y}' ${A}. Received ${_}`},TypeError),b("ERR_INVALID_RETURN_VALUE",(y,v,A)=>{var _;let R=A!=null&&(_=A.constructor)!==null&&_!==void 0&&_.name?`instance of ${A.constructor.name}`:`type ${typeof A}`;return`Expected ${y} to be returned from the "${v}" function but got ${R}.`},TypeError),b("ERR_MISSING_ARGS",(...y)=>{d(y.length>0,"At least one arg needs to be specified");let v,A=y.length;switch(y=(Array.isArray(y)?y:[y]).map(_=>`"${_}"`).join(" or "),A){case 1:v+=`The ${y[0]} argument`;break;case 2:v+=`The ${y[0]} and ${y[1]} arguments`;break;default:{let _=y.pop();v+=`The ${y.join(", ")}, and ${_} arguments`}break}return`${v} must be specified`},TypeError),b("ERR_OUT_OF_RANGE",(y,v,A)=>{d(v,'Missing "range" argument');let _;if(Number.isInteger(A)&&Math.abs(A)>2**32)_=p(String(A));else if(typeof A=="bigint"){_=String(A);let R=BigInt(2)**BigInt(32);(A>R||A<-R)&&(_=p(_)),_+="n"}else _=a(A);return`The value of "${y}" is out of range. It must be ${v}. Received ${_}`},RangeError),b("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error),b("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error),b("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error),b("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error),b("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error),b("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),b("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error),b("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error),b("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error),b("ERR_STREAM_WRITE_AFTER_END","write after end",Error),b("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError),h.exports={AbortError:x,aggregateTwoErrors:E(S),hideStackFrames:E,codes:l}}),gr=Se((f,h)=>{ge(),me(),ye();var{AbortController:s,AbortSignal:a}=typeof self<"u"?self:typeof window<"u"?window:void 0;h.exports=s,h.exports.AbortSignal=a,h.exports.default=s}),qt={};or(qt,{EventEmitter:()=>Ys,default:()=>nr,defaultMaxListeners:()=>Js,init:()=>Xs,listenerCount:()=>Zs,on:()=>ea,once:()=>ta});function Kl(){if(di)return hr;di=!0;var f=typeof Reflect=="object"?Reflect:null,h=f&&typeof f.apply=="function"?f.apply:function(A,_,R){return Function.prototype.apply.call(A,_,R)},s;f&&typeof f.ownKeys=="function"?s=f.ownKeys:Object.getOwnPropertySymbols?s=function(A){return Object.getOwnPropertyNames(A).concat(Object.getOwnPropertySymbols(A))}:s=function(A){return Object.getOwnPropertyNames(A)};function a(A){console&&console.warn&&console.warn(A)}var c=Number.isNaN||function(A){return A!==A};function n(){n.init.call(this)}hr=n,hr.once=x,n.EventEmitter=n,n.prototype._events=void 0,n.prototype._eventsCount=0,n.prototype._maxListeners=void 0;var r=10;function t(A){if(typeof A!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof A)}Object.defineProperty(n,"defaultMaxListeners",{enumerable:!0,get:function(){return r},set:function(A){if(typeof A!="number"||A<0||c(A))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+A+".");r=A}}),n.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},n.prototype.setMaxListeners=function(A){if(typeof A!="number"||A<0||c(A))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+A+".");return this._maxListeners=A,this};function e(A){return A._maxListeners===void 0?n.defaultMaxListeners:A._maxListeners}n.prototype.getMaxListeners=function(){return e(this)},n.prototype.emit=function(A){for(var _=[],R=1;R0&&(T=_[0]),T instanceof Error)throw T;var M=new Error("Unhandled error."+(T?" ("+T.message+")":""));throw M.context=T,M}var U=O[A];if(U===void 0)return!1;if(typeof U=="function")h(U,this,_);else for(var k=U.length,z=b(U,k),R=0;R0&&M.length>O&&!M.warned){M.warned=!0;var U=new Error("Possible EventEmitter memory leak detected. "+M.length+" "+String(_)+" listeners added. Use emitter.setMaxListeners() to increase limit");U.name="MaxListenersExceededWarning",U.emitter=A,U.type=_,U.count=M.length,a(U)}return A}n.prototype.addListener=function(A,_){return i(this,A,_,!1)},n.prototype.on=n.prototype.addListener,n.prototype.prependListener=function(A,_){return i(this,A,_,!0)};function l(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function d(A,_,R){var w={fired:!1,wrapFn:void 0,target:A,type:_,listener:R},O=l.bind(w);return O.listener=R,w.wrapFn=O,O}n.prototype.once=function(A,_){return t(_),this.on(A,d(this,A,_)),this},n.prototype.prependOnceListener=function(A,_){return t(_),this.prependListener(A,d(this,A,_)),this},n.prototype.removeListener=function(A,_){var R,w,O,T,M;if(t(_),w=this._events,w===void 0)return this;if(R=w[A],R===void 0)return this;if(R===_||R.listener===_)--this._eventsCount===0?this._events=Object.create(null):(delete w[A],w.removeListener&&this.emit("removeListener",A,R.listener||_));else if(typeof R!="function"){for(O=-1,T=R.length-1;T>=0;T--)if(R[T]===_||R[T].listener===_){M=R[T].listener,O=T;break}if(O<0)return this;O===0?R.shift():E(R,O),R.length===1&&(w[A]=R[0]),w.removeListener!==void 0&&this.emit("removeListener",A,M||_)}return this},n.prototype.off=n.prototype.removeListener,n.prototype.removeAllListeners=function(A){var _,R,w;if(R=this._events,R===void 0)return this;if(R.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):R[A]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete R[A]),this;if(arguments.length===0){var O=Object.keys(R),T;for(w=0;w=0;w--)this.removeListener(A,_[w]);return this};function p(A,_,R){var w=A._events;if(w===void 0)return[];var O=w[_];return O===void 0?[]:typeof O=="function"?R?[O.listener||O]:[O]:R?S(O):b(O,O.length)}n.prototype.listeners=function(A){return p(this,A,!0)},n.prototype.rawListeners=function(A){return p(this,A,!1)},n.listenerCount=function(A,_){return typeof A.listenerCount=="function"?A.listenerCount(_):g.call(A,_)},n.prototype.listenerCount=g;function g(A){var _=this._events;if(_!==void 0){var R=_[A];if(typeof R=="function")return 1;if(R!==void 0)return R.length}return 0}n.prototype.eventNames=function(){return this._eventsCount>0?s(this._events):[]};function b(A,_){for(var R=new Array(_),w=0;w<_;++w)R[w]=A[w];return R}function E(A,_){for(;_+1{ge(),me(),ye(),hr={},di=!1,nr=Kl(),nr.once,nr.once=function(f,h){return new Promise((s,a)=>{function c(...r){n!==void 0&&f.removeListener("error",n),s(r)}let n;h!=="error"&&(n=r=>{f.removeListener(name,c),a(r)},f.once("error",n)),f.once(h,c)})},nr.on=function(f,h){let s=[],a=[],c=null,n=!1,r={async next(){let i=s.shift();if(i)return createIterResult(i,!1);if(c){let l=Promise.reject(c);return c=null,l}return n?createIterResult(void 0,!0):new Promise((l,d)=>a.push({resolve:l,reject:d}))},async return(){f.removeListener(h,t),f.removeListener("error",e),n=!0;for(let i of a)i.resolve(createIterResult(void 0,!0));return createIterResult(void 0,!0)},throw(i){c=i,f.removeListener(h,t),f.removeListener("error",e)},[Symbol.asyncIterator](){return this}};return f.on(h,t),f.on("error",e),r;function t(...i){let l=a.shift();l?l.resolve(createIterResult(i,!1)):s.push(i)}function e(i){n=!0;let l=a.shift();l?l.reject(i):c=i,r.return()}},{EventEmitter:Ys,defaultMaxListeners:Js,init:Xs,listenerCount:Zs,on:ea,once:ta}=nr}),gt=Se((f,h)=>{ge(),me(),ye();var s=(st(),Ke(ot)),{format:a,inspect:c}=Qs(),{codes:{ERR_INVALID_ARG_TYPE:n}}=pt(),{kResistStopPropagation:r,AggregateError:t,SymbolDispose:e}=Ze(),i=globalThis.AbortSignal||gr().AbortSignal,l=globalThis.AbortController||gr().AbortController,d=Object.getPrototypeOf(async function(){}).constructor,p=globalThis.Blob||s.Blob,g=typeof p<"u"?function(S){return S instanceof p}:function(S){return!1},b=(S,x)=>{if(S!==void 0&&(S===null||typeof S!="object"||!("aborted"in S)))throw new n(x,"AbortSignal",S)},E=(S,x)=>{if(typeof S!="function")throw new n(x,"Function",S)};h.exports={AggregateError:t,kEmptyObject:Object.freeze({}),once(S){let x=!1;return function(...y){x||(x=!0,S.apply(this,y))}},createDeferredPromise:function(){let S,x;return{promise:new Promise((y,v)=>{S=y,x=v}),resolve:S,reject:x}},promisify(S){return new Promise((x,y)=>{S((v,...A)=>v?y(v):x(...A))})},debuglog(){return function(){}},format:a,inspect:c,types:{isAsyncFunction(S){return S instanceof d},isArrayBufferView(S){return ArrayBuffer.isView(S)}},isBlob:g,deprecate(S,x){return S},addAbortListener:(Zt(),Ke(qt)).addAbortListener||function(S,x){if(S===void 0)throw new n("signal","AbortSignal",S);b(S,"signal"),E(x,"listener");let y;return S.aborted?queueMicrotask(()=>x()):(S.addEventListener("abort",x,{__proto__:null,once:!0,[r]:!0}),y=()=>{S.removeEventListener("abort",x)}),{__proto__:null,[e](){var v;(v=y)===null||v===void 0||v()}}},AbortSignalAny:i.any||function(S){if(S.length===1)return S[0];let x=new l,y=()=>x.abort();return S.forEach(v=>{b(v,"signals"),v.addEventListener("abort",y,{once:!0})}),x.signal.addEventListener("abort",()=>{S.forEach(v=>v.removeEventListener("abort",y))},{once:!0}),x.signal}},h.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")}),yr=Se((f,h)=>{ge(),me(),ye();var{ArrayIsArray:s,ArrayPrototypeIncludes:a,ArrayPrototypeJoin:c,ArrayPrototypeMap:n,NumberIsInteger:r,NumberIsNaN:t,NumberMAX_SAFE_INTEGER:e,NumberMIN_SAFE_INTEGER:i,NumberParseInt:l,ObjectPrototypeHasOwnProperty:d,RegExpPrototypeExec:p,String:g,StringPrototypeToUpperCase:b,StringPrototypeTrim:E}=Ze(),{hideStackFrames:S,codes:{ERR_SOCKET_BAD_PORT:x,ERR_INVALID_ARG_TYPE:y,ERR_INVALID_ARG_VALUE:v,ERR_OUT_OF_RANGE:A,ERR_UNKNOWN_SIGNAL:_}}=pt(),{normalizeEncoding:R}=gt(),{isAsyncFunction:w,isArrayBufferView:O}=gt().types,T={};function M(Q){return Q===(Q|0)}function U(Q){return Q===Q>>>0}var k=/^[0-7]+$/,z="must be a 32-bit unsigned integer or an octal string";function G(Q,_e,Oe){if(typeof Q>"u"&&(Q=Oe),typeof Q=="string"){if(p(k,Q)===null)throw new v(_e,Q,z);Q=l(Q,8)}return ne(Q,_e),Q}var q=S((Q,_e,Oe=i,fe=e)=>{if(typeof Q!="number")throw new y(_e,"number",Q);if(!r(Q))throw new A(_e,"an integer",Q);if(Qfe)throw new A(_e,`>= ${Oe} && <= ${fe}`,Q)}),he=S((Q,_e,Oe=-2147483648,fe=2147483647)=>{if(typeof Q!="number")throw new y(_e,"number",Q);if(!r(Q))throw new A(_e,"an integer",Q);if(Qfe)throw new A(_e,`>= ${Oe} && <= ${fe}`,Q)}),ne=S((Q,_e,Oe=!1)=>{if(typeof Q!="number")throw new y(_e,"number",Q);if(!r(Q))throw new A(_e,"an integer",Q);let fe=Oe?1:0,Be=4294967295;if(QBe)throw new A(_e,`>= ${fe} && <= ${Be}`,Q)});function te(Q,_e){if(typeof Q!="string")throw new y(_e,"string",Q)}function ce(Q,_e,Oe=void 0,fe){if(typeof Q!="number")throw new y(_e,"number",Q);if(Oe!=null&&Qfe||(Oe!=null||fe!=null)&&t(Q))throw new A(_e,`${Oe!=null?`>= ${Oe}`:""}${Oe!=null&&fe!=null?" && ":""}${fe!=null?`<= ${fe}`:""}`,Q)}var V=S((Q,_e,Oe)=>{if(!a(Oe,Q)){let fe="must be one of: "+c(n(Oe,Be=>typeof Be=="string"?`'${Be}'`:g(Be)),", ");throw new v(_e,Q,fe)}});function le(Q,_e){if(typeof Q!="boolean")throw new y(_e,"boolean",Q)}function B(Q,_e,Oe){return Q==null||!d(Q,_e)?Oe:Q[_e]}var ee=S((Q,_e,Oe=null)=>{let fe=B(Oe,"allowArray",!1),Be=B(Oe,"allowFunction",!1);if(!B(Oe,"nullable",!1)&&Q===null||!fe&&s(Q)||typeof Q!="object"&&(!Be||typeof Q!="function"))throw new y(_e,"Object",Q)}),Z=S((Q,_e)=>{if(Q!=null&&typeof Q!="object"&&typeof Q!="function")throw new y(_e,"a dictionary",Q)}),ue=S((Q,_e,Oe=0)=>{if(!s(Q))throw new y(_e,"Array",Q);if(Q.length{if(!O(Q))throw new y(_e,["Buffer","TypedArray","DataView"],Q)});function J(Q,_e){let Oe=R(_e),fe=Q.length;if(Oe==="hex"&&fe%2!==0)throw new v("encoding",_e,`is invalid for data of length ${fe}`)}function re(Q,_e="Port",Oe=!0){if(typeof Q!="number"&&typeof Q!="string"||typeof Q=="string"&&E(Q).length===0||+Q!==+Q>>>0||Q>65535||Q===0&&!Oe)throw new x(_e,Q,Oe);return Q|0}var we=S((Q,_e)=>{if(Q!==void 0&&(Q===null||typeof Q!="object"||!("aborted"in Q)))throw new y(_e,"AbortSignal",Q)}),pe=S((Q,_e)=>{if(typeof Q!="function")throw new y(_e,"Function",Q)}),L=S((Q,_e)=>{if(typeof Q!="function"||w(Q))throw new y(_e,"Function",Q)}),H=S((Q,_e)=>{if(Q!==void 0)throw new y(_e,"undefined",Q)});function se(Q,_e,Oe){if(!a(Oe,Q))throw new y(_e,`('${c(Oe,"|")}')`,Q)}var be=/^(?:<[^>]*>)(?:\s*;\s*[^;"\s]+(?:=(")?[^;"\s]*\1)?)*$/;function ve(Q,_e){if(typeof Q>"u"||!p(be,Q))throw new v(_e,Q,'must be an array or string of format "; rel=preload; as=style"')}function Ee(Q){if(typeof Q=="string")return ve(Q,"hints"),Q;if(s(Q)){let _e=Q.length,Oe="";if(_e===0)return Oe;for(let fe=0;fe<_e;fe++){let Be=Q[fe];ve(Be,"hints"),Oe+=Be,fe!==_e-1&&(Oe+=", ")}return Oe}throw new v("hints",Q,'must be an array or string of format "; rel=preload; as=style"')}h.exports={isInt32:M,isUint32:U,parseFileMode:G,validateArray:ue,validateStringArray:Ae,validateBooleanArray:Y,validateAbortSignalArray:W,validateBoolean:le,validateBuffer:X,validateDictionary:Z,validateEncoding:J,validateFunction:pe,validateInt32:he,validateInteger:q,validateNumber:ce,validateObject:ee,validateOneOf:V,validatePlainFunction:L,validatePort:re,validateSignalName:oe,validateString:te,validateUint32:ne,validateUndefined:H,validateUnion:se,validateAbortSignal:we,validateLinkHeaderValue:Ee}}),er=Se((f,h)=>{ge(),me(),ye();var s=h.exports={},a,c;function n(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?a=setTimeout:a=n}catch{a=n}try{typeof clearTimeout=="function"?c=clearTimeout:c=r}catch{c=r}})();function t(x){if(a===setTimeout)return setTimeout(x,0);if((a===n||!a)&&setTimeout)return a=setTimeout,setTimeout(x,0);try{return a(x,0)}catch{try{return a.call(null,x,0)}catch{return a.call(this,x,0)}}}function e(x){if(c===clearTimeout)return clearTimeout(x);if((c===r||!c)&&clearTimeout)return c=clearTimeout,clearTimeout(x);try{return c(x)}catch{try{return c.call(null,x)}catch{return c.call(this,x)}}}var i=[],l=!1,d,p=-1;function g(){!l||!d||(l=!1,d.length?i=d.concat(i):p=-1,i.length&&b())}function b(){if(!l){var x=t(g);l=!0;for(var y=i.length;y;){for(d=i,i=[];++p1)for(var v=1;v{ge(),me(),ye();var{SymbolAsyncIterator:s,SymbolIterator:a,SymbolFor:c}=Ze(),n=c("nodejs.stream.destroyed"),r=c("nodejs.stream.errored"),t=c("nodejs.stream.readable"),e=c("nodejs.stream.writable"),i=c("nodejs.stream.disturbed"),l=c("nodejs.webstream.isClosedPromise"),d=c("nodejs.webstream.controllerErrorFunction");function p(B,ee=!1){var Z;return!!(B&&typeof B.pipe=="function"&&typeof B.on=="function"&&(!ee||typeof B.pause=="function"&&typeof B.resume=="function")&&(!B._writableState||((Z=B._readableState)===null||Z===void 0?void 0:Z.readable)!==!1)&&(!B._writableState||B._readableState))}function g(B){var ee;return!!(B&&typeof B.write=="function"&&typeof B.on=="function"&&(!B._readableState||((ee=B._writableState)===null||ee===void 0?void 0:ee.writable)!==!1))}function b(B){return!!(B&&typeof B.pipe=="function"&&B._readableState&&typeof B.on=="function"&&typeof B.write=="function")}function E(B){return B&&(B._readableState||B._writableState||typeof B.write=="function"&&typeof B.on=="function"||typeof B.pipe=="function"&&typeof B.on=="function")}function S(B){return!!(B&&!E(B)&&typeof B.pipeThrough=="function"&&typeof B.getReader=="function"&&typeof B.cancel=="function")}function x(B){return!!(B&&!E(B)&&typeof B.getWriter=="function"&&typeof B.abort=="function")}function y(B){return!!(B&&!E(B)&&typeof B.readable=="object"&&typeof B.writable=="object")}function v(B){return S(B)||x(B)||y(B)}function A(B,ee){return B==null?!1:ee===!0?typeof B[s]=="function":ee===!1?typeof B[a]=="function":typeof B[s]=="function"||typeof B[a]=="function"}function _(B){if(!E(B))return null;let ee=B._writableState,Z=B._readableState,ue=ee||Z;return!!(B.destroyed||B[n]||ue!=null&&ue.destroyed)}function R(B){if(!g(B))return null;if(B.writableEnded===!0)return!0;let ee=B._writableState;return ee!=null&&ee.errored?!1:typeof ee?.ended!="boolean"?null:ee.ended}function w(B,ee){if(!g(B))return null;if(B.writableFinished===!0)return!0;let Z=B._writableState;return Z!=null&&Z.errored?!1:typeof Z?.finished!="boolean"?null:!!(Z.finished||ee===!1&&Z.ended===!0&&Z.length===0)}function O(B){if(!p(B))return null;if(B.readableEnded===!0)return!0;let ee=B._readableState;return!ee||ee.errored?!1:typeof ee?.ended!="boolean"?null:ee.ended}function T(B,ee){if(!p(B))return null;let Z=B._readableState;return Z!=null&&Z.errored?!1:typeof Z?.endEmitted!="boolean"?null:!!(Z.endEmitted||ee===!1&&Z.ended===!0&&Z.length===0)}function M(B){return B&&B[t]!=null?B[t]:typeof B?.readable!="boolean"?null:_(B)?!1:p(B)&&B.readable&&!T(B)}function U(B){return B&&B[e]!=null?B[e]:typeof B?.writable!="boolean"?null:_(B)?!1:g(B)&&B.writable&&!R(B)}function k(B,ee){return E(B)?_(B)?!0:!(ee?.readable!==!1&&M(B)||ee?.writable!==!1&&U(B)):null}function z(B){var ee,Z;return E(B)?B.writableErrored?B.writableErrored:(ee=(Z=B._writableState)===null||Z===void 0?void 0:Z.errored)!==null&&ee!==void 0?ee:null:null}function G(B){var ee,Z;return E(B)?B.readableErrored?B.readableErrored:(ee=(Z=B._readableState)===null||Z===void 0?void 0:Z.errored)!==null&&ee!==void 0?ee:null:null}function q(B){if(!E(B))return null;if(typeof B.closed=="boolean")return B.closed;let ee=B._writableState,Z=B._readableState;return typeof ee?.closed=="boolean"||typeof Z?.closed=="boolean"?ee?.closed||Z?.closed:typeof B._closed=="boolean"&&he(B)?B._closed:null}function he(B){return typeof B._closed=="boolean"&&typeof B._defaultKeepAlive=="boolean"&&typeof B._removedConnection=="boolean"&&typeof B._removedContLen=="boolean"}function ne(B){return typeof B._sent100=="boolean"&&he(B)}function te(B){var ee;return typeof B._consuming=="boolean"&&typeof B._dumped=="boolean"&&((ee=B.req)===null||ee===void 0?void 0:ee.upgradeOrConnect)===void 0}function ce(B){if(!E(B))return null;let ee=B._writableState,Z=B._readableState,ue=ee||Z;return!ue&&ne(B)||!!(ue&&ue.autoDestroy&&ue.emitClose&&ue.closed===!1)}function V(B){var ee;return!!(B&&((ee=B[i])!==null&&ee!==void 0?ee:B.readableDidRead||B.readableAborted))}function le(B){var ee,Z,ue,Ae,Y,W,oe,X,J,re;return!!(B&&((ee=(Z=(ue=(Ae=(Y=(W=B[r])!==null&&W!==void 0?W:B.readableErrored)!==null&&Y!==void 0?Y:B.writableErrored)!==null&&Ae!==void 0?Ae:(oe=B._readableState)===null||oe===void 0?void 0:oe.errorEmitted)!==null&&ue!==void 0?ue:(X=B._writableState)===null||X===void 0?void 0:X.errorEmitted)!==null&&Z!==void 0?Z:(J=B._readableState)===null||J===void 0?void 0:J.errored)!==null&&ee!==void 0?ee:!((re=B._writableState)===null||re===void 0)&&re.errored))}h.exports={isDestroyed:_,kIsDestroyed:n,isDisturbed:V,kIsDisturbed:i,isErrored:le,kIsErrored:r,isReadable:M,kIsReadable:t,kIsClosedPromise:l,kControllerErrorFunction:d,kIsWritable:e,isClosed:q,isDuplexNodeStream:b,isFinished:k,isIterable:A,isReadableNodeStream:p,isReadableStream:S,isReadableEnded:O,isReadableFinished:T,isReadableErrored:G,isNodeStream:E,isWebStream:v,isWritable:U,isWritableNodeStream:g,isWritableStream:x,isWritableEnded:R,isWritableFinished:w,isWritableErrored:z,isServerRequest:te,isServerResponse:ne,willEmitClose:ce,isTransformStream:y}}),Vt=Se((f,h)=>{ge(),me(),ye();var s=er(),{AbortError:a,codes:c}=pt(),{ERR_INVALID_ARG_TYPE:n,ERR_STREAM_PREMATURE_CLOSE:r}=c,{kEmptyObject:t,once:e}=gt(),{validateAbortSignal:i,validateFunction:l,validateObject:d,validateBoolean:p}=yr(),{Promise:g,PromisePrototypeThen:b,SymbolDispose:E}=Ze(),{isClosed:S,isReadable:x,isReadableNodeStream:y,isReadableStream:v,isReadableFinished:A,isReadableErrored:_,isWritable:R,isWritableNodeStream:w,isWritableStream:O,isWritableFinished:T,isWritableErrored:M,isNodeStream:U,willEmitClose:k,kIsClosedPromise:z}=Ct(),G;function q(V){return V.setHeader&&typeof V.abort=="function"}var he=()=>{};function ne(V,le,B){var ee,Z;if(arguments.length===2?(B=le,le=t):le==null?le=t:d(le,"options"),l(B,"callback"),i(le.signal,"options.signal"),B=e(B),v(V)||O(V))return te(V,le,B);if(!U(V))throw new n("stream",["ReadableStream","WritableStream","Stream"],V);let ue=(ee=le.readable)!==null&&ee!==void 0?ee:y(V),Ae=(Z=le.writable)!==null&&Z!==void 0?Z:w(V),Y=V._writableState,W=V._readableState,oe=()=>{V.writable||re()},X=k(V)&&y(V)===ue&&w(V)===Ae,J=T(V,!1),re=()=>{J=!0,V.destroyed&&(X=!1),!(X&&(!V.readable||ue))&&(!ue||we)&&B.call(V)},we=A(V,!1),pe=()=>{we=!0,V.destroyed&&(X=!1),!(X&&(!V.writable||Ae))&&(!Ae||J)&&B.call(V)},L=Q=>{B.call(V,Q)},H=S(V),se=()=>{H=!0;let Q=M(V)||_(V);if(Q&&typeof Q!="boolean")return B.call(V,Q);if(ue&&!we&&y(V,!0)&&!A(V,!1))return B.call(V,new r);if(Ae&&!J&&!T(V,!1))return B.call(V,new r);B.call(V)},be=()=>{H=!0;let Q=M(V)||_(V);if(Q&&typeof Q!="boolean")return B.call(V,Q);B.call(V)},ve=()=>{V.req.on("finish",re)};q(V)?(V.on("complete",re),X||V.on("abort",se),V.req?ve():V.on("request",ve)):Ae&&!Y&&(V.on("end",oe),V.on("close",oe)),!X&&typeof V.aborted=="boolean"&&V.on("aborted",se),V.on("end",pe),V.on("finish",re),le.error!==!1&&V.on("error",L),V.on("close",se),H?s.nextTick(se):Y!=null&&Y.errorEmitted||W!=null&&W.errorEmitted?X||s.nextTick(be):(!ue&&(!X||x(V))&&(J||R(V)===!1)||!Ae&&(!X||R(V))&&(we||x(V)===!1)||W&&V.req&&V.aborted)&&s.nextTick(be);let Ee=()=>{B=he,V.removeListener("aborted",se),V.removeListener("complete",re),V.removeListener("abort",se),V.removeListener("request",ve),V.req&&V.req.removeListener("finish",re),V.removeListener("end",oe),V.removeListener("close",oe),V.removeListener("finish",re),V.removeListener("end",pe),V.removeListener("error",L),V.removeListener("close",se)};if(le.signal&&!H){let Q=()=>{let _e=B;Ee(),_e.call(V,new a(void 0,{cause:le.signal.reason}))};if(le.signal.aborted)s.nextTick(Q);else{G=G||gt().addAbortListener;let _e=G(le.signal,Q),Oe=B;B=e((...fe)=>{_e[E](),Oe.apply(V,fe)})}}return Ee}function te(V,le,B){let ee=!1,Z=he;if(le.signal)if(Z=()=>{ee=!0,B.call(V,new a(void 0,{cause:le.signal.reason}))},le.signal.aborted)s.nextTick(Z);else{G=G||gt().addAbortListener;let Ae=G(le.signal,Z),Y=B;B=e((...W)=>{Ae[E](),Y.apply(V,W)})}let ue=(...Ae)=>{ee||s.nextTick(()=>B.apply(V,Ae))};return b(V[z].promise,ue,ue),he}function ce(V,le){var B;let ee=!1;return le===null&&(le=t),(B=le)!==null&&B!==void 0&&B.cleanup&&(p(le.cleanup,"cleanup"),ee=le.cleanup),new g((Z,ue)=>{let Ae=ne(V,le,Y=>{ee&&Ae(),Y?ue(Y):Z()})})}h.exports=ne,h.exports.finished=ce}),sr=Se((f,h)=>{ge(),me(),ye();var s=er(),{aggregateTwoErrors:a,codes:{ERR_MULTIPLE_CALLBACK:c},AbortError:n}=pt(),{Symbol:r}=Ze(),{kIsDestroyed:t,isDestroyed:e,isFinished:i,isServerRequest:l}=Ct(),d=r("kDestroy"),p=r("kConstruct");function g(k,z,G){k&&(k.stack,z&&!z.errored&&(z.errored=k),G&&!G.errored&&(G.errored=k))}function b(k,z){let G=this._readableState,q=this._writableState,he=q||G;return q!=null&&q.destroyed||G!=null&&G.destroyed?(typeof z=="function"&&z(),this):(g(k,q,G),q&&(q.destroyed=!0),G&&(G.destroyed=!0),he.constructed?E(this,k,z):this.once(d,function(ne){E(this,a(ne,k),z)}),this)}function E(k,z,G){let q=!1;function he(ne){if(q)return;q=!0;let te=k._readableState,ce=k._writableState;g(ne,ce,te),ce&&(ce.closed=!0),te&&(te.closed=!0),typeof G=="function"&&G(ne),ne?s.nextTick(S,k,ne):s.nextTick(x,k)}try{k._destroy(z||null,he)}catch(ne){he(ne)}}function S(k,z){y(k,z),x(k)}function x(k){let z=k._readableState,G=k._writableState;G&&(G.closeEmitted=!0),z&&(z.closeEmitted=!0),(G!=null&&G.emitClose||z!=null&&z.emitClose)&&k.emit("close")}function y(k,z){let G=k._readableState,q=k._writableState;q!=null&&q.errorEmitted||G!=null&&G.errorEmitted||(q&&(q.errorEmitted=!0),G&&(G.errorEmitted=!0),k.emit("error",z))}function v(){let k=this._readableState,z=this._writableState;k&&(k.constructed=!0,k.closed=!1,k.closeEmitted=!1,k.destroyed=!1,k.errored=null,k.errorEmitted=!1,k.reading=!1,k.ended=k.readable===!1,k.endEmitted=k.readable===!1),z&&(z.constructed=!0,z.destroyed=!1,z.closed=!1,z.closeEmitted=!1,z.errored=null,z.errorEmitted=!1,z.finalCalled=!1,z.prefinished=!1,z.ended=z.writable===!1,z.ending=z.writable===!1,z.finished=z.writable===!1)}function A(k,z,G){let q=k._readableState,he=k._writableState;if(he!=null&&he.destroyed||q!=null&&q.destroyed)return this;q!=null&&q.autoDestroy||he!=null&&he.autoDestroy?k.destroy(z):z&&(z.stack,he&&!he.errored&&(he.errored=z),q&&!q.errored&&(q.errored=z),G?s.nextTick(y,k,z):y(k,z))}function _(k,z){if(typeof k._construct!="function")return;let G=k._readableState,q=k._writableState;G&&(G.constructed=!1),q&&(q.constructed=!1),k.once(p,z),!(k.listenerCount(p)>1)&&s.nextTick(R,k)}function R(k){let z=!1;function G(q){if(z){A(k,q??new c);return}z=!0;let he=k._readableState,ne=k._writableState,te=ne||he;he&&(he.constructed=!0),ne&&(ne.constructed=!0),te.destroyed?k.emit(d,q):q?A(k,q,!0):s.nextTick(w,k)}try{k._construct(q=>{s.nextTick(G,q)})}catch(q){s.nextTick(G,q)}}function w(k){k.emit(p)}function O(k){return k?.setHeader&&typeof k.abort=="function"}function T(k){k.emit("close")}function M(k,z){k.emit("error",z),s.nextTick(T,k)}function U(k,z){!k||e(k)||(!z&&!i(k)&&(z=new n),l(k)?(k.socket=null,k.destroy(z)):O(k)?k.abort():O(k.req)?k.req.abort():typeof k.destroy=="function"?k.destroy(z):typeof k.close=="function"?k.close():z?s.nextTick(M,k,z):s.nextTick(T,k),k.destroyed||(k[t]=!0))}h.exports={construct:_,destroyer:U,destroy:b,undestroy:v,errorOrDestroy:A}}),co=Se((f,h)=>{ge(),me(),ye();var{ArrayIsArray:s,ObjectSetPrototypeOf:a}=Ze(),{EventEmitter:c}=(Zt(),Ke(qt));function n(t){c.call(this,t)}a(n.prototype,c.prototype),a(n,c),n.prototype.pipe=function(t,e){let i=this;function l(x){t.writable&&t.write(x)===!1&&i.pause&&i.pause()}i.on("data",l);function d(){i.readable&&i.resume&&i.resume()}t.on("drain",d),!t._isStdio&&(!e||e.end!==!1)&&(i.on("end",g),i.on("close",b));let p=!1;function g(){p||(p=!0,t.end())}function b(){p||(p=!0,typeof t.destroy=="function"&&t.destroy())}function E(x){S(),c.listenerCount(this,"error")===0&&this.emit("error",x)}r(i,"error",E),r(t,"error",E);function S(){i.removeListener("data",l),t.removeListener("drain",d),i.removeListener("end",g),i.removeListener("close",b),i.removeListener("error",E),t.removeListener("error",E),i.removeListener("end",S),i.removeListener("close",S),t.removeListener("close",S)}return i.on("end",S),i.on("close",S),t.on("close",S),t.emit("pipe",i),t};function r(t,e,i){if(typeof t.prependListener=="function")return t.prependListener(e,i);!t._events||!t._events[e]?t.on(e,i):s(t._events[e])?t._events[e].unshift(i):t._events[e]=[i,t._events[e]]}h.exports={Stream:n,prependListener:r}}),Yr=Se((f,h)=>{ge(),me(),ye();var{SymbolDispose:s}=Ze(),{AbortError:a,codes:c}=pt(),{isNodeStream:n,isWebStream:r,kControllerErrorFunction:t}=Ct(),e=Vt(),{ERR_INVALID_ARG_TYPE:i}=c,l,d=(p,g)=>{if(typeof p!="object"||!("aborted"in p))throw new i(g,"AbortSignal",p)};h.exports.addAbortSignal=function(p,g){if(d(p,"signal"),!n(g)&&!r(g))throw new i("stream",["ReadableStream","WritableStream","Stream"],g);return h.exports.addAbortSignalNoValidate(p,g)},h.exports.addAbortSignalNoValidate=function(p,g){if(typeof p!="object"||!("aborted"in p))return g;let b=n(g)?()=>{g.destroy(new a(void 0,{cause:p.reason}))}:()=>{g[t](new a(void 0,{cause:p.reason}))};if(p.aborted)b();else{l=l||gt().addAbortListener;let E=l(p,b);e(g,E[s])}return g}}),Hl=Se((f,h)=>{ge(),me(),ye();var{StringPrototypeSlice:s,SymbolIterator:a,TypedArrayPrototypeSet:c,Uint8Array:n}=Ze(),{Buffer:r}=(st(),Ke(ot)),{inspect:t}=gt();h.exports=class{constructor(){this.head=null,this.tail=null,this.length=0}push(e){let i={data:e,next:null};this.length>0?this.tail.next=i:this.head=i,this.tail=i,++this.length}unshift(e){let i={data:e,next:this.head};this.length===0&&(this.tail=i),this.head=i,++this.length}shift(){if(this.length===0)return;let e=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,e}clear(){this.head=this.tail=null,this.length=0}join(e){if(this.length===0)return"";let i=this.head,l=""+i.data;for(;(i=i.next)!==null;)l+=e+i.data;return l}concat(e){if(this.length===0)return r.alloc(0);let i=r.allocUnsafe(e>>>0),l=this.head,d=0;for(;l;)c(i,l.data,d),d+=l.data.length,l=l.next;return i}consume(e,i){let l=this.head.data;if(ep.length)i+=p,e-=p.length;else{e===p.length?(i+=p,++d,l.next?this.head=l.next:this.head=this.tail=null):(i+=s(p,0,e),this.head=l,l.data=s(p,e));break}++d}while((l=l.next)!==null);return this.length-=d,i}_getBuffer(e){let i=r.allocUnsafe(e),l=e,d=this.head,p=0;do{let g=d.data;if(e>g.length)c(i,g,l-e),e-=g.length;else{e===g.length?(c(i,g,l-e),++p,d.next?this.head=d.next:this.head=this.tail=null):(c(i,new n(g.buffer,g.byteOffset,e),l-e),this.head=d,d.data=g.slice(e));break}++p}while((d=d.next)!==null);return this.length-=p,i}[Symbol.for("nodejs.util.inspect.custom")](e,i){return t(this,{...i,depth:0,customInspect:!1})}}}),Jr=Se((f,h)=>{ge(),me(),ye();var{MathFloor:s,NumberIsInteger:a}=Ze(),{validateInteger:c}=yr(),{ERR_INVALID_ARG_VALUE:n}=pt().codes,r=16*1024,t=16;function e(p,g,b){return p.highWaterMark!=null?p.highWaterMark:g?p[b]:null}function i(p){return p?t:r}function l(p,g){c(g,"value",0),p?t=g:r=g}function d(p,g,b,E){let S=e(g,E,b);if(S!=null){if(!a(S)||S<0){let x=E?`options.${b}`:"options.highWaterMark";throw new n(x,S)}return s(S)}return i(p.objectMode)}h.exports={getHighWaterMark:d,getDefaultHighWaterMark:i,setDefaultHighWaterMark:l}}),Gl=Se((f,h)=>{ge(),me(),ye();var s=(st(),Ke(ot)),a=s.Buffer;function c(r,t){for(var e in r)t[e]=r[e]}a.from&&a.alloc&&a.allocUnsafe&&a.allocUnsafeSlow?h.exports=s:(c(s,f),f.Buffer=n);function n(r,t,e){return a(r,t,e)}n.prototype=Object.create(a.prototype),c(a,n),n.from=function(r,t,e){if(typeof r=="number")throw new TypeError("Argument must not be a number");return a(r,t,e)},n.alloc=function(r,t,e){if(typeof r!="number")throw new TypeError("Argument must be a number");var i=a(r);return t!==void 0?typeof e=="string"?i.fill(t,e):i.fill(t):i.fill(0),i},n.allocUnsafe=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return a(r)},n.allocUnsafeSlow=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return s.SlowBuffer(r)}}),Ql=Se(f=>{ge(),me(),ye();var h=Gl().Buffer,s=h.isEncoding||function(y){switch(y=""+y,y&&y.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function a(y){if(!y)return"utf8";for(var v;;)switch(y){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return y;default:if(v)return;y=(""+y).toLowerCase(),v=!0}}function c(y){var v=a(y);if(typeof v!="string"&&(h.isEncoding===s||!s(y)))throw new Error("Unknown encoding: "+y);return v||y}f.StringDecoder=n;function n(y){this.encoding=c(y);var v;switch(this.encoding){case"utf16le":this.text=p,this.end=g,v=4;break;case"utf8":this.fillLast=i,v=4;break;case"base64":this.text=b,this.end=E,v=3;break;default:this.write=S,this.end=x;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=h.allocUnsafe(v)}n.prototype.write=function(y){if(y.length===0)return"";var v,A;if(this.lastNeed){if(v=this.fillLast(y),v===void 0)return"";A=this.lastNeed,this.lastNeed=0}else A=0;return A>5===6?2:y>>4===14?3:y>>3===30?4:y>>6===2?-1:-2}function t(y,v,A){var _=v.length-1;if(_=0?(R>0&&(y.lastNeed=R-1),R):--_=0?(R>0&&(y.lastNeed=R-2),R):--_=0?(R>0&&(R===2?R=0:y.lastNeed=R-3),R):0))}function e(y,v,A){if((v[0]&192)!==128)return y.lastNeed=0,"�";if(y.lastNeed>1&&v.length>1){if((v[1]&192)!==128)return y.lastNeed=1,"�";if(y.lastNeed>2&&v.length>2&&(v[2]&192)!==128)return y.lastNeed=2,"�"}}function i(y){var v=this.lastTotal-this.lastNeed,A=e(this,y);if(A!==void 0)return A;if(this.lastNeed<=y.length)return y.copy(this.lastChar,v,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);y.copy(this.lastChar,v,0,y.length),this.lastNeed-=y.length}function l(y,v){var A=t(this,y,v);if(!this.lastNeed)return y.toString("utf8",v);this.lastTotal=A;var _=y.length-(A-this.lastNeed);return y.copy(this.lastChar,0,_),y.toString("utf8",v,_)}function d(y){var v=y&&y.length?this.write(y):"";return this.lastNeed?v+"�":v}function p(y,v){if((y.length-v)%2===0){var A=y.toString("utf16le",v);if(A){var _=A.charCodeAt(A.length-1);if(_>=55296&&_<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=y[y.length-2],this.lastChar[1]=y[y.length-1],A.slice(0,-1)}return A}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=y[y.length-1],y.toString("utf16le",v,y.length-1)}function g(y){var v=y&&y.length?this.write(y):"";if(this.lastNeed){var A=this.lastTotal-this.lastNeed;return v+this.lastChar.toString("utf16le",0,A)}return v}function b(y,v){var A=(y.length-v)%3;return A===0?y.toString("base64",v):(this.lastNeed=3-A,this.lastTotal=3,A===1?this.lastChar[0]=y[y.length-1]:(this.lastChar[0]=y[y.length-2],this.lastChar[1]=y[y.length-1]),y.toString("base64",v,y.length-A))}function E(y){var v=y&&y.length?this.write(y):"";return this.lastNeed?v+this.lastChar.toString("base64",0,3-this.lastNeed):v}function S(y){return y.toString(this.encoding)}function x(y){return y&&y.length?this.write(y):""}}),ra=Se((f,h)=>{ge(),me(),ye();var s=er(),{PromisePrototypeThen:a,SymbolAsyncIterator:c,SymbolIterator:n}=Ze(),{Buffer:r}=(st(),Ke(ot)),{ERR_INVALID_ARG_TYPE:t,ERR_STREAM_NULL_VALUES:e}=pt().codes;function i(l,d,p){let g;if(typeof d=="string"||d instanceof r)return new l({objectMode:!0,...p,read(){this.push(d),this.push(null)}});let b;if(d&&d[c])b=!0,g=d[c]();else if(d&&d[n])b=!1,g=d[n]();else throw new t("iterable",["Iterable"],d);let E=new l({objectMode:!0,highWaterMark:1,...p}),S=!1;E._read=function(){S||(S=!0,y())},E._destroy=function(v,A){a(x(v),()=>s.nextTick(A,v),_=>s.nextTick(A,_||v))};async function x(v){let A=v!=null,_=typeof g.throw=="function";if(A&&_){let{value:R,done:w}=await g.throw(v);if(await R,w)return}if(typeof g.return=="function"){let{value:R}=await g.return();await R}}async function y(){for(;;){try{let{value:v,done:A}=b?await g.next():g.next();if(A)E.push(null);else{let _=v&&typeof v.then=="function"?await v:v;if(_===null)throw S=!1,new e;if(E.push(_))continue;S=!1}}catch(v){E.destroy(v)}break}}return E}h.exports=i}),Xr=Se((f,h)=>{ge(),me(),ye();var s=er(),{ArrayPrototypeIndexOf:a,NumberIsInteger:c,NumberIsNaN:n,NumberParseInt:r,ObjectDefineProperties:t,ObjectKeys:e,ObjectSetPrototypeOf:i,Promise:l,SafeSet:d,SymbolAsyncDispose:p,SymbolAsyncIterator:g,Symbol:b}=Ze();h.exports=fe,fe.ReadableState=Oe;var{EventEmitter:E}=(Zt(),Ke(qt)),{Stream:S,prependListener:x}=co(),{Buffer:y}=(st(),Ke(ot)),{addAbortSignal:v}=Yr(),A=Vt(),_=gt().debuglog("stream",j=>{_=j}),R=Hl(),w=sr(),{getHighWaterMark:O,getDefaultHighWaterMark:T}=Jr(),{aggregateTwoErrors:M,codes:{ERR_INVALID_ARG_TYPE:U,ERR_METHOD_NOT_IMPLEMENTED:k,ERR_OUT_OF_RANGE:z,ERR_STREAM_PUSH_AFTER_EOF:G,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:q},AbortError:he}=pt(),{validateObject:ne}=yr(),te=b("kPaused"),{StringDecoder:ce}=Ql(),V=ra();i(fe.prototype,S.prototype),i(fe,S);var le=()=>{},{errorOrDestroy:B}=w,ee=1,Z=2,ue=4,Ae=8,Y=16,W=32,oe=64,X=128,J=256,re=512,we=1024,pe=2048,L=4096,H=8192,se=16384,be=32768,ve=65536,Ee=1<<17,Q=1<<18;function _e(j){return{enumerable:!1,get(){return(this.state&j)!==0},set(F){F?this.state|=j:this.state&=~j}}}t(Oe.prototype,{objectMode:_e(ee),ended:_e(Z),endEmitted:_e(ue),reading:_e(Ae),constructed:_e(Y),sync:_e(W),needReadable:_e(oe),emittedReadable:_e(X),readableListening:_e(J),resumeScheduled:_e(re),errorEmitted:_e(we),emitClose:_e(pe),autoDestroy:_e(L),destroyed:_e(H),closed:_e(se),closeEmitted:_e(be),multiAwaitDrain:_e(ve),readingMore:_e(Ee),dataEmitted:_e(Q)});function Oe(j,F,ke){typeof ke!="boolean"&&(ke=F instanceof Tt()),this.state=pe|L|Y|W,j&&j.objectMode&&(this.state|=ee),ke&&j&&j.readableObjectMode&&(this.state|=ee),this.highWaterMark=j?O(this,j,"readableHighWaterMark",ke):T(!1),this.buffer=new R,this.length=0,this.pipes=[],this.flowing=null,this[te]=null,j&&j.emitClose===!1&&(this.state&=~pe),j&&j.autoDestroy===!1&&(this.state&=~L),this.errored=null,this.defaultEncoding=j&&j.defaultEncoding||"utf8",this.awaitDrainWriters=null,this.decoder=null,this.encoding=null,j&&j.encoding&&(this.decoder=new ce(j.encoding),this.encoding=j.encoding)}function fe(j){if(!(this instanceof fe))return new fe(j);let F=this instanceof Tt();this._readableState=new Oe(j,this,F),j&&(typeof j.read=="function"&&(this._read=j.read),typeof j.destroy=="function"&&(this._destroy=j.destroy),typeof j.construct=="function"&&(this._construct=j.construct),j.signal&&!F&&v(j.signal,this)),S.call(this,j),w.construct(this,()=>{this._readableState.needReadable&&$(this,this._readableState)})}fe.prototype.destroy=w.destroy,fe.prototype._undestroy=w.undestroy,fe.prototype._destroy=function(j,F){F(j)},fe.prototype[E.captureRejectionSymbol]=function(j){this.destroy(j)},fe.prototype[p]=function(){let j;return this.destroyed||(j=this.readableEnded?null:new he,this.destroy(j)),new l((F,ke)=>A(this,Pe=>Pe&&Pe!==j?ke(Pe):F(null)))},fe.prototype.push=function(j,F){return Be(this,j,F,!1)},fe.prototype.unshift=function(j,F){return Be(this,j,F,!0)};function Be(j,F,ke,Pe){_("readableAddChunk",F);let Me=j._readableState,rt;if((Me.state&ee)===0&&(typeof F=="string"?(ke=ke||Me.defaultEncoding,Me.encoding!==ke&&(Pe&&Me.encoding?F=y.from(F,ke).toString(Me.encoding):(F=y.from(F,ke),ke=""))):F instanceof y?ke="":S._isUint8Array(F)?(F=S._uint8ArrayToBuffer(F),ke=""):F!=null&&(rt=new U("chunk",["string","Buffer","Uint8Array"],F))),rt)B(j,rt);else if(F===null)Me.state&=~Ae,N(j,Me);else if((Me.state&ee)!==0||F&&F.length>0)if(Pe)if((Me.state&ue)!==0)B(j,new q);else{if(Me.destroyed||Me.errored)return!1;o(j,Me,F,!0)}else if(Me.ended)B(j,new G);else{if(Me.destroyed||Me.errored)return!1;Me.state&=~Ae,Me.decoder&&!ke?(F=Me.decoder.write(F),Me.objectMode||F.length!==0?o(j,Me,F,!1):$(j,Me)):o(j,Me,F,!1)}else Pe||(Me.state&=~Ae,$(j,Me));return!Me.ended&&(Me.length0?((F.state&ve)!==0?F.awaitDrainWriters.clear():F.awaitDrainWriters=null,F.dataEmitted=!0,j.emit("data",ke)):(F.length+=F.objectMode?1:ke.length,Pe?F.buffer.unshift(ke):F.buffer.push(ke),(F.state&oe)!==0&&K(j)),$(j,F)}fe.prototype.isPaused=function(){let j=this._readableState;return j[te]===!0||j.flowing===!1},fe.prototype.setEncoding=function(j){let F=new ce(j);this._readableState.decoder=F,this._readableState.encoding=this._readableState.decoder.encoding;let ke=this._readableState.buffer,Pe="";for(let Me of ke)Pe+=F.write(Me);return ke.clear(),Pe!==""&&ke.push(Pe),this._readableState.length=Pe.length,this};var u=1073741824;function m(j){if(j>u)throw new z("size","<= 1GiB",j);return j--,j|=j>>>1,j|=j>>>2,j|=j>>>4,j|=j>>>8,j|=j>>>16,j++,j}function C(j,F){return j<=0||F.length===0&&F.ended?0:(F.state&ee)!==0?1:n(j)?F.flowing&&F.length?F.buffer.first().length:F.length:j<=F.length?j:F.ended?F.length:0}fe.prototype.read=function(j){_("read",j),j===void 0?j=NaN:c(j)||(j=r(j,10));let F=this._readableState,ke=j;if(j>F.highWaterMark&&(F.highWaterMark=m(j)),j!==0&&(F.state&=~X),j===0&&F.needReadable&&((F.highWaterMark!==0?F.length>=F.highWaterMark:F.length>0)||F.ended))return _("read: emitReadable",F.length,F.ended),F.length===0&&F.ended?He(this):K(this),null;if(j=C(j,F),j===0&&F.ended)return F.length===0&&He(this),null;let Pe=(F.state&oe)!==0;if(_("need readable",Pe),(F.length===0||F.length-j0?Me=tt(j,F):Me=null,Me===null?(F.needReadable=F.length<=F.highWaterMark,j=0):(F.length-=j,F.multiAwaitDrain?F.awaitDrainWriters.clear():F.awaitDrainWriters=null),F.length===0&&(F.ended||(F.needReadable=!0),ke!==j&&F.ended&&He(this)),Me!==null&&!F.errorEmitted&&!F.closeEmitted&&(F.dataEmitted=!0,this.emit("data",Me)),Me};function N(j,F){if(_("onEofChunk"),!F.ended){if(F.decoder){let ke=F.decoder.end();ke&&ke.length&&(F.buffer.push(ke),F.length+=F.objectMode?1:ke.length)}F.ended=!0,F.sync?K(j):(F.needReadable=!1,F.emittedReadable=!0,de(j))}}function K(j){let F=j._readableState;_("emitReadable",F.needReadable,F.emittedReadable),F.needReadable=!1,F.emittedReadable||(_("emitReadable",F.flowing),F.emittedReadable=!0,s.nextTick(de,j))}function de(j){let F=j._readableState;_("emitReadable_",F.destroyed,F.length,F.ended),!F.destroyed&&!F.errored&&(F.length||F.ended)&&(j.emit("readable"),F.emittedReadable=!1),F.needReadable=!F.flowing&&!F.ended&&F.length<=F.highWaterMark,Fe(j)}function $(j,F){!F.readingMore&&F.constructed&&(F.readingMore=!0,s.nextTick(ie,j,F))}function ie(j,F){for(;!F.reading&&!F.ended&&(F.length1&&Pe.pipes.includes(j)&&(_("false write response, pause",Pe.awaitDrainWriters.size),Pe.awaitDrainWriters.add(j)),ke.pause()),mt||(mt=Re(ke,j),j.on("drain",mt))}ke.on("data",Ht);function Ht(Qe){_("ondata");let wt=j.write(Qe);_("dest.write",wt),wt===!1&&Kt()}function Et(Qe){if(_("onerror",Qe),At(),j.removeListener("error",Et),j.listenerCount("error")===0){let wt=j._writableState||j._readableState;wt&&!wt.errorEmitted?B(j,Qe):j.emit("error",Qe)}}x(j,"error",Et);function ze(){j.removeListener("finish",bt),At()}j.once("close",ze);function bt(){_("onfinish"),j.removeListener("close",ze),At()}j.once("finish",bt);function At(){_("unpipe"),ke.unpipe(j)}return j.emit("pipe",ke),j.writableNeedDrain===!0?Kt():Pe.flowing||(_("pipe resume"),ke.resume()),j};function Re(j,F){return function(){let ke=j._readableState;ke.awaitDrainWriters===F?(_("pipeOnDrain",1),ke.awaitDrainWriters=null):ke.multiAwaitDrain&&(_("pipeOnDrain",ke.awaitDrainWriters.size),ke.awaitDrainWriters.delete(F)),(!ke.awaitDrainWriters||ke.awaitDrainWriters.size===0)&&j.listenerCount("data")&&j.resume()}}fe.prototype.unpipe=function(j){let F=this._readableState,ke={hasUnpiped:!1};if(F.pipes.length===0)return this;if(!j){let Me=F.pipes;F.pipes=[],this.pause();for(let rt=0;rt0,Pe.flowing!==!1&&this.resume()):j==="readable"&&!Pe.endEmitted&&!Pe.readableListening&&(Pe.readableListening=Pe.needReadable=!0,Pe.flowing=!1,Pe.emittedReadable=!1,_("on readable",Pe.length,Pe.reading),Pe.length?K(this):Pe.reading||s.nextTick(Le,this)),ke},fe.prototype.addListener=fe.prototype.on,fe.prototype.removeListener=function(j,F){let ke=S.prototype.removeListener.call(this,j,F);return j==="readable"&&s.nextTick(Te,this),ke},fe.prototype.off=fe.prototype.removeListener,fe.prototype.removeAllListeners=function(j){let F=S.prototype.removeAllListeners.apply(this,arguments);return(j==="readable"||j===void 0)&&s.nextTick(Te,this),F};function Te(j){let F=j._readableState;F.readableListening=j.listenerCount("readable")>0,F.resumeScheduled&&F[te]===!1?F.flowing=!0:j.listenerCount("data")>0?j.resume():F.readableListening||(F.flowing=null)}function Le(j){_("readable nexttick read 0"),j.read(0)}fe.prototype.resume=function(){let j=this._readableState;return j.flowing||(_("resume"),j.flowing=!j.readableListening,Ue(this,j)),j[te]=!1,this};function Ue(j,F){F.resumeScheduled||(F.resumeScheduled=!0,s.nextTick(Xe,j,F))}function Xe(j,F){_("resume",F.reading),F.reading||j.read(0),F.resumeScheduled=!1,j.emit("resume"),Fe(j),F.flowing&&!F.reading&&j.read(0)}fe.prototype.pause=function(){return _("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(_("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState[te]=!0,this};function Fe(j){let F=j._readableState;for(_("flow",F.flowing);F.flowing&&j.read()!==null;);}fe.prototype.wrap=function(j){let F=!1;j.on("data",Pe=>{!this.push(Pe)&&j.pause&&(F=!0,j.pause())}),j.on("end",()=>{this.push(null)}),j.on("error",Pe=>{B(this,Pe)}),j.on("close",()=>{this.destroy()}),j.on("destroy",()=>{this.destroy()}),this._read=()=>{F&&j.resume&&(F=!1,j.resume())};let ke=e(j);for(let Pe=1;Pe{Me=at?M(Me,at):null,ke(),ke=le});try{for(;;){let at=j.destroyed?null:j.read();if(at!==null)yield at;else{if(Me)throw Me;if(Me===null)return;await new l(Pe)}}}catch(at){throw Me=M(Me,at),Me}finally{(Me||F?.destroyOnReturn!==!1)&&(Me===void 0||j._readableState.autoDestroy)?w.destroyer(j,null):(j.off("readable",Pe),rt())}}t(fe.prototype,{readable:{__proto__:null,get(){let j=this._readableState;return!!j&&j.readable!==!1&&!j.destroyed&&!j.errorEmitted&&!j.endEmitted},set(j){this._readableState&&(this._readableState.readable=!!j)}},readableDidRead:{__proto__:null,enumerable:!1,get:function(){return this._readableState.dataEmitted}},readableAborted:{__proto__:null,enumerable:!1,get:function(){return!!(this._readableState.readable!==!1&&(this._readableState.destroyed||this._readableState.errored)&&!this._readableState.endEmitted)}},readableHighWaterMark:{__proto__:null,enumerable:!1,get:function(){return this._readableState.highWaterMark}},readableBuffer:{__proto__:null,enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}},readableFlowing:{__proto__:null,enumerable:!1,get:function(){return this._readableState.flowing},set:function(j){this._readableState&&(this._readableState.flowing=j)}},readableLength:{__proto__:null,enumerable:!1,get(){return this._readableState.length}},readableObjectMode:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.objectMode:!1}},readableEncoding:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.encoding:null}},errored:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.errored:null}},closed:{__proto__:null,get(){return this._readableState?this._readableState.closed:!1}},destroyed:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.destroyed:!1},set(j){this._readableState&&(this._readableState.destroyed=j)}},readableEnded:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.endEmitted:!1}}}),t(Oe.prototype,{pipesCount:{__proto__:null,get(){return this.pipes.length}},paused:{__proto__:null,get(){return this[te]!==!1},set(j){this[te]=!!j}}}),fe._fromList=tt;function tt(j,F){if(F.length===0)return null;let ke;return F.objectMode?ke=F.buffer.shift():!j||j>=F.length?(F.decoder?ke=F.buffer.join(""):F.buffer.length===1?ke=F.buffer.first():ke=F.buffer.concat(F.length),F.buffer.clear()):ke=F.buffer.consume(j,F.decoder),ke}function He(j){let F=j._readableState;_("endReadable",F.endEmitted),F.endEmitted||(F.ended=!0,s.nextTick($e,F,j))}function $e(j,F){if(_("endReadableNT",j.endEmitted,j.length),!j.errored&&!j.closeEmitted&&!j.endEmitted&&j.length===0){if(j.endEmitted=!0,F.emit("end"),F.writable&&F.allowHalfOpen===!1)s.nextTick(nt,F);else if(j.autoDestroy){let ke=F._writableState;(!ke||ke.autoDestroy&&(ke.finished||ke.writable===!1))&&F.destroy()}}}function nt(j){j.writable&&!j.writableEnded&&!j.destroyed&&j.end()}fe.from=function(j,F){return V(fe,j,F)};var dt;function lt(){return dt===void 0&&(dt={}),dt}fe.fromWeb=function(j,F){return lt().newStreamReadableFromReadableStream(j,F)},fe.toWeb=function(j,F){return lt().newReadableStreamFromStreamReadable(j,F)},fe.wrap=function(j,F){var ke,Pe;return new fe({objectMode:(ke=(Pe=j.readableObjectMode)!==null&&Pe!==void 0?Pe:j.objectMode)!==null&&ke!==void 0?ke:!0,...F,destroy(Me,rt){w.destroyer(j,Me),rt(Me)}}).wrap(j)}}),ho=Se((f,h)=>{ge(),me(),ye();var s=er(),{ArrayPrototypeSlice:a,Error:c,FunctionPrototypeSymbolHasInstance:n,ObjectDefineProperty:r,ObjectDefineProperties:t,ObjectSetPrototypeOf:e,StringPrototypeToLowerCase:i,Symbol:l,SymbolHasInstance:d}=Ze();h.exports=ne,ne.WritableState=q;var{EventEmitter:p}=(Zt(),Ke(qt)),g=co().Stream,{Buffer:b}=(st(),Ke(ot)),E=sr(),{addAbortSignal:S}=Yr(),{getHighWaterMark:x,getDefaultHighWaterMark:y}=Jr(),{ERR_INVALID_ARG_TYPE:v,ERR_METHOD_NOT_IMPLEMENTED:A,ERR_MULTIPLE_CALLBACK:_,ERR_STREAM_CANNOT_PIPE:R,ERR_STREAM_DESTROYED:w,ERR_STREAM_ALREADY_FINISHED:O,ERR_STREAM_NULL_VALUES:T,ERR_STREAM_WRITE_AFTER_END:M,ERR_UNKNOWN_ENCODING:U}=pt().codes,{errorOrDestroy:k}=E;e(ne.prototype,g.prototype),e(ne,g);function z(){}var G=l("kOnFinished");function q(L,H,se){typeof se!="boolean"&&(se=H instanceof Tt()),this.objectMode=!!(L&&L.objectMode),se&&(this.objectMode=this.objectMode||!!(L&&L.writableObjectMode)),this.highWaterMark=L?x(this,L,"writableHighWaterMark",se):y(!1),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;let be=!!(L&&L.decodeStrings===!1);this.decodeStrings=!be,this.defaultEncoding=L&&L.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=B.bind(void 0,H),this.writecb=null,this.writelen=0,this.afterWriteTickInfo=null,he(this),this.pendingcb=0,this.constructed=!0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!L||L.emitClose!==!1,this.autoDestroy=!L||L.autoDestroy!==!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this[G]=[]}function he(L){L.buffered=[],L.bufferedIndex=0,L.allBuffers=!0,L.allNoop=!0}q.prototype.getBuffer=function(){return a(this.buffered,this.bufferedIndex)},r(q.prototype,"bufferedRequestCount",{__proto__:null,get(){return this.buffered.length-this.bufferedIndex}});function ne(L){let H=this instanceof Tt();if(!H&&!n(ne,this))return new ne(L);this._writableState=new q(L,this,H),L&&(typeof L.write=="function"&&(this._write=L.write),typeof L.writev=="function"&&(this._writev=L.writev),typeof L.destroy=="function"&&(this._destroy=L.destroy),typeof L.final=="function"&&(this._final=L.final),typeof L.construct=="function"&&(this._construct=L.construct),L.signal&&S(L.signal,this)),g.call(this,L),E.construct(this,()=>{let se=this._writableState;se.writing||Ae(this,se),X(this,se)})}r(ne,d,{__proto__:null,value:function(L){return n(this,L)?!0:this!==ne?!1:L&&L._writableState instanceof q}}),ne.prototype.pipe=function(){k(this,new R)};function te(L,H,se,be){let ve=L._writableState;if(typeof se=="function")be=se,se=ve.defaultEncoding;else{if(!se)se=ve.defaultEncoding;else if(se!=="buffer"&&!b.isEncoding(se))throw new U(se);typeof be!="function"&&(be=z)}if(H===null)throw new T;if(!ve.objectMode)if(typeof H=="string")ve.decodeStrings!==!1&&(H=b.from(H,se),se="buffer");else if(H instanceof b)se="buffer";else if(g._isUint8Array(H))H=g._uint8ArrayToBuffer(H),se="buffer";else throw new v("chunk",["string","Buffer","Uint8Array"],H);let Ee;return ve.ending?Ee=new M:ve.destroyed&&(Ee=new w("write")),Ee?(s.nextTick(be,Ee),k(L,Ee,!0),Ee):(ve.pendingcb++,ce(L,ve,H,se,be))}ne.prototype.write=function(L,H,se){return te(this,L,H,se)===!0},ne.prototype.cork=function(){this._writableState.corked++},ne.prototype.uncork=function(){let L=this._writableState;L.corked&&(L.corked--,L.writing||Ae(this,L))},ne.prototype.setDefaultEncoding=function(L){if(typeof L=="string"&&(L=i(L)),!b.isEncoding(L))throw new U(L);return this._writableState.defaultEncoding=L,this};function ce(L,H,se,be,ve){let Ee=H.objectMode?1:se.length;H.length+=Ee;let Q=H.lengthse.bufferedIndex&&Ae(L,se),be?se.afterWriteTickInfo!==null&&se.afterWriteTickInfo.cb===ve?se.afterWriteTickInfo.count++:(se.afterWriteTickInfo={count:1,cb:ve,stream:L,state:se},s.nextTick(ee,se.afterWriteTickInfo)):Z(L,se,1,ve))}function ee({stream:L,state:H,count:se,cb:be}){return H.afterWriteTickInfo=null,Z(L,H,se,be)}function Z(L,H,se,be){for(!H.ending&&!L.destroyed&&H.length===0&&H.needDrain&&(H.needDrain=!1,L.emit("drain"));se-- >0;)H.pendingcb--,be();H.destroyed&&ue(H),X(L,H)}function ue(L){if(L.writing)return;for(let ve=L.bufferedIndex;ve1&&L._writev){H.pendingcb-=Ee-1;let _e=H.allNoop?z:fe=>{for(let Be=Q;Be256?(se.splice(0,Q),H.bufferedIndex=0):H.bufferedIndex=Q}H.bufferProcessing=!1}ne.prototype._write=function(L,H,se){if(this._writev)this._writev([{chunk:L,encoding:H}],se);else throw new A("_write()")},ne.prototype._writev=null,ne.prototype.end=function(L,H,se){let be=this._writableState;typeof L=="function"?(se=L,L=null,H=null):typeof H=="function"&&(se=H,H=null);let ve;if(L!=null){let Ee=te(this,L,H);Ee instanceof c&&(ve=Ee)}return be.corked&&(be.corked=1,this.uncork()),ve||(!be.errored&&!be.ending?(be.ending=!0,X(this,be,!0),be.ended=!0):be.finished?ve=new O("end"):be.destroyed&&(ve=new w("end"))),typeof se=="function"&&(ve||be.finished?s.nextTick(se,ve):be[G].push(se)),this};function Y(L){return L.ending&&!L.destroyed&&L.constructed&&L.length===0&&!L.errored&&L.buffered.length===0&&!L.finished&&!L.writing&&!L.errorEmitted&&!L.closeEmitted}function W(L,H){let se=!1;function be(ve){if(se){k(L,ve??_());return}if(se=!0,H.pendingcb--,ve){let Ee=H[G].splice(0);for(let Q=0;Q{Y(ve)?J(be,ve):ve.pendingcb--},L,H)):Y(H)&&(H.pendingcb++,J(L,H))))}function J(L,H){H.pendingcb--,H.finished=!0;let se=H[G].splice(0);for(let be=0;be{ge(),me(),ye();var s=er(),a=(st(),Ke(ot)),{isReadable:c,isWritable:n,isIterable:r,isNodeStream:t,isReadableNodeStream:e,isWritableNodeStream:i,isDuplexNodeStream:l,isReadableStream:d,isWritableStream:p}=Ct(),g=Vt(),{AbortError:b,codes:{ERR_INVALID_ARG_TYPE:E,ERR_INVALID_RETURN_VALUE:S}}=pt(),{destroyer:x}=sr(),y=Tt(),v=Xr(),A=ho(),{createDeferredPromise:_}=gt(),R=ra(),w=globalThis.Blob||a.Blob,O=typeof w<"u"?function(G){return G instanceof w}:function(G){return!1},T=globalThis.AbortController||gr().AbortController,{FunctionPrototypeCall:M}=Ze(),U=class extends y{constructor(G){super(G),G?.readable===!1&&(this._readableState.readable=!1,this._readableState.ended=!0,this._readableState.endEmitted=!0),G?.writable===!1&&(this._writableState.writable=!1,this._writableState.ending=!0,this._writableState.ended=!0,this._writableState.finished=!0)}};h.exports=function G(q,he){if(l(q))return q;if(e(q))return z({readable:q});if(i(q))return z({writable:q});if(t(q))return z({writable:!1,readable:!1});if(d(q))return z({readable:v.fromWeb(q)});if(p(q))return z({writable:A.fromWeb(q)});if(typeof q=="function"){let{value:te,write:ce,final:V,destroy:le}=k(q);if(r(te))return R(U,te,{objectMode:!0,write:ce,final:V,destroy:le});let B=te?.then;if(typeof B=="function"){let ee,Z=M(B,te,ue=>{if(ue!=null)throw new S("nully","body",ue)},ue=>{x(ee,ue)});return ee=new U({objectMode:!0,readable:!1,write:ce,final(ue){V(async()=>{try{await Z,s.nextTick(ue,null)}catch(Ae){s.nextTick(ue,Ae)}})},destroy:le})}throw new S("Iterable, AsyncIterable or AsyncFunction",he,te)}if(O(q))return G(q.arrayBuffer());if(r(q))return R(U,q,{objectMode:!0,writable:!1});if(d(q?.readable)&&p(q?.writable))return U.fromWeb(q);if(typeof q?.writable=="object"||typeof q?.readable=="object"){let te=q!=null&&q.readable?e(q?.readable)?q?.readable:G(q.readable):void 0,ce=q!=null&&q.writable?i(q?.writable)?q?.writable:G(q.writable):void 0;return z({readable:te,writable:ce})}let ne=q?.then;if(typeof ne=="function"){let te;return M(ne,q,ce=>{ce!=null&&te.push(ce),te.push(null)},ce=>{x(te,ce)}),te=new U({objectMode:!0,writable:!1,read(){}})}throw new E(he,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],q)};function k(G){let{promise:q,resolve:he}=_(),ne=new T,te=ne.signal;return{value:G((async function*(){for(;;){let ce=q;q=null;let{chunk:V,done:le,cb:B}=await ce;if(s.nextTick(B),le)return;if(te.aborted)throw new b(void 0,{cause:te.reason});({promise:q,resolve:he}=_()),yield V}})(),{signal:te}),write(ce,V,le){let B=he;he=null,B({chunk:ce,done:!1,cb:le})},final(ce){let V=he;he=null,V({done:!0,cb:ce})},destroy(ce,V){ne.abort(),V(ce)}}}function z(G){let q=G.readable&&typeof G.readable.read!="function"?v.wrap(G.readable):G.readable,he=G.writable,ne=!!c(q),te=!!n(he),ce,V,le,B,ee;function Z(ue){let Ae=B;B=null,Ae?Ae(ue):ue&&ee.destroy(ue)}return ee=new U({readableObjectMode:!!(q!=null&&q.readableObjectMode),writableObjectMode:!!(he!=null&&he.writableObjectMode),readable:ne,writable:te}),te&&(g(he,ue=>{te=!1,ue&&x(q,ue),Z(ue)}),ee._write=function(ue,Ae,Y){he.write(ue,Ae)?Y():ce=Y},ee._final=function(ue){he.end(),V=ue},he.on("drain",function(){if(ce){let ue=ce;ce=null,ue()}}),he.on("finish",function(){if(V){let ue=V;V=null,ue()}})),ne&&(g(q,ue=>{ne=!1,ue&&x(q,ue),Z(ue)}),q.on("readable",function(){if(le){let ue=le;le=null,ue()}}),q.on("end",function(){ee.push(null)}),ee._read=function(){for(;;){let ue=q.read();if(ue===null){le=ee._read;return}if(!ee.push(ue))return}}),ee._destroy=function(ue,Ae){!ue&&B!==null&&(ue=new b),le=null,ce=null,V=null,B===null?Ae(ue):(B=Ae,x(he,ue),x(q,ue))},ee}}),Tt=Se((f,h)=>{ge(),me(),ye();var{ObjectDefineProperties:s,ObjectGetOwnPropertyDescriptor:a,ObjectKeys:c,ObjectSetPrototypeOf:n}=Ze();h.exports=e;var r=Xr(),t=ho();n(e.prototype,r.prototype),n(e,r);{let p=c(t.prototype);for(let g=0;g{ge(),me(),ye();var{ObjectSetPrototypeOf:s,Symbol:a}=Ze();h.exports=e;var{ERR_METHOD_NOT_IMPLEMENTED:c}=pt().codes,n=Tt(),{getHighWaterMark:r}=Jr();s(e.prototype,n.prototype),s(e,n);var t=a("kCallback");function e(d){if(!(this instanceof e))return new e(d);let p=d?r(this,d,"readableHighWaterMark",!0):null;p===0&&(d={...d,highWaterMark:null,readableHighWaterMark:p,writableHighWaterMark:d.writableHighWaterMark||0}),n.call(this,d),this._readableState.sync=!1,this[t]=null,d&&(typeof d.transform=="function"&&(this._transform=d.transform),typeof d.flush=="function"&&(this._flush=d.flush)),this.on("prefinish",l)}function i(d){typeof this._flush=="function"&&!this.destroyed?this._flush((p,g)=>{if(p){d?d(p):this.destroy(p);return}g!=null&&this.push(g),this.push(null),d&&d()}):(this.push(null),d&&d())}function l(){this._final!==i&&i.call(this)}e.prototype._final=i,e.prototype._transform=function(d,p,g){throw new c("_transform()")},e.prototype._write=function(d,p,g){let b=this._readableState,E=this._writableState,S=b.length;this._transform(d,p,(x,y)=>{if(x){g(x);return}y!=null&&this.push(y),E.ended||S===b.length||b.length{ge(),me(),ye();var{ObjectSetPrototypeOf:s}=Ze();h.exports=c;var a=na();s(c.prototype,a.prototype),s(c,a);function c(n){if(!(this instanceof c))return new c(n);a.call(this,n)}c.prototype._transform=function(n,r,t){t(null,n)}}),fo=Se((f,h)=>{ge(),me(),ye();var s=er(),{ArrayIsArray:a,Promise:c,SymbolAsyncIterator:n,SymbolDispose:r}=Ze(),t=Vt(),{once:e}=gt(),i=sr(),l=Tt(),{aggregateTwoErrors:d,codes:{ERR_INVALID_ARG_TYPE:p,ERR_INVALID_RETURN_VALUE:g,ERR_MISSING_ARGS:b,ERR_STREAM_DESTROYED:E,ERR_STREAM_PREMATURE_CLOSE:S},AbortError:x}=pt(),{validateFunction:y,validateAbortSignal:v}=yr(),{isIterable:A,isReadable:_,isReadableNodeStream:R,isNodeStream:w,isTransformStream:O,isWebStream:T,isReadableStream:M,isReadableFinished:U}=Ct(),k=globalThis.AbortController||gr().AbortController,z,G,q;function he(ue,Ae,Y){let W=!1;ue.on("close",()=>{W=!0});let oe=t(ue,{readable:Ae,writable:Y},X=>{W=!X});return{destroy:X=>{W||(W=!0,i.destroyer(ue,X||new E("pipe")))},cleanup:oe}}function ne(ue){return y(ue[ue.length-1],"streams[stream.length - 1]"),ue.pop()}function te(ue){if(A(ue))return ue;if(R(ue))return ce(ue);throw new p("val",["Readable","Iterable","AsyncIterable"],ue)}async function*ce(ue){G||(G=Xr()),yield*G.prototype[n].call(ue)}async function V(ue,Ae,Y,{end:W}){let oe,X=null,J=pe=>{if(pe&&(oe=pe),X){let L=X;X=null,L()}},re=()=>new c((pe,L)=>{oe?L(oe):X=()=>{oe?L(oe):pe()}});Ae.on("drain",J);let we=t(Ae,{readable:!1},J);try{Ae.writableNeedDrain&&await re();for await(let pe of ue)Ae.write(pe)||await re();W&&(Ae.end(),await re()),Y()}catch(pe){Y(oe!==pe?d(oe,pe):pe)}finally{we(),Ae.off("drain",J)}}async function le(ue,Ae,Y,{end:W}){O(Ae)&&(Ae=Ae.writable);let oe=Ae.getWriter();try{for await(let X of ue)await oe.ready,oe.write(X).catch(()=>{});await oe.ready,W&&await oe.close(),Y()}catch(X){try{await oe.abort(X),Y(X)}catch(J){Y(J)}}}function B(...ue){return ee(ue,e(ne(ue)))}function ee(ue,Ae,Y){if(ue.length===1&&a(ue[0])&&(ue=ue[0]),ue.length<2)throw new b("streams");let W=new k,oe=W.signal,X=Y?.signal,J=[];v(X,"options.signal");function re(){ve(new x)}q=q||gt().addAbortListener;let we;X&&(we=q(X,re));let pe,L,H=[],se=0;function be(Oe){ve(Oe,--se===0)}function ve(Oe,fe){var Be;if(Oe&&(!pe||pe.code==="ERR_STREAM_PREMATURE_CLOSE")&&(pe=Oe),!(!pe&&!fe)){for(;H.length;)H.shift()(pe);(Be=we)===null||Be===void 0||Be[r](),W.abort(),fe&&(pe||J.forEach(o=>o()),s.nextTick(Ae,pe,L))}}let Ee;for(let Oe=0;Oe0,u=Be||Y?.end!==!1,m=Oe===ue.length-1;if(w(fe)){let C=function(N){N&&N.name!=="AbortError"&&N.code!=="ERR_STREAM_PREMATURE_CLOSE"&&be(N)};if(u){let{destroy:N,cleanup:K}=he(fe,Be,o);H.push(N),_(fe)&&m&&J.push(K)}fe.on("error",C),_(fe)&&m&&J.push(()=>{fe.removeListener("error",C)})}if(Oe===0)if(typeof fe=="function"){if(Ee=fe({signal:oe}),!A(Ee))throw new g("Iterable, AsyncIterable or Stream","source",Ee)}else A(fe)||R(fe)||O(fe)?Ee=fe:Ee=l.from(fe);else if(typeof fe=="function"){if(O(Ee)){var Q;Ee=te((Q=Ee)===null||Q===void 0?void 0:Q.readable)}else Ee=te(Ee);if(Ee=fe(Ee,{signal:oe}),Be){if(!A(Ee,!0))throw new g("AsyncIterable",`transform[${Oe-1}]`,Ee)}else{var _e;z||(z=ia());let C=new z({objectMode:!0}),N=(_e=Ee)===null||_e===void 0?void 0:_e.then;if(typeof N=="function")se++,N.call(Ee,$=>{L=$,$!=null&&C.write($),u&&C.end(),s.nextTick(be)},$=>{C.destroy($),s.nextTick(be,$)});else if(A(Ee,!0))se++,V(Ee,C,be,{end:u});else if(M(Ee)||O(Ee)){let $=Ee.readable||Ee;se++,V($,C,be,{end:u})}else throw new g("AsyncIterable or Promise","destination",Ee);Ee=C;let{destroy:K,cleanup:de}=he(Ee,!1,!0);H.push(K),m&&J.push(de)}}else if(w(fe)){if(R(Ee)){se+=2;let C=Z(Ee,fe,be,{end:u});_(fe)&&m&&J.push(C)}else if(O(Ee)||M(Ee)){let C=Ee.readable||Ee;se++,V(C,fe,be,{end:u})}else if(A(Ee))se++,V(Ee,fe,be,{end:u});else throw new p("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],Ee);Ee=fe}else if(T(fe)){if(R(Ee))se++,le(te(Ee),fe,be,{end:u});else if(M(Ee)||A(Ee))se++,le(Ee,fe,be,{end:u});else if(O(Ee))se++,le(Ee.readable,fe,be,{end:u});else throw new p("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],Ee);Ee=fe}else Ee=l.from(fe)}return(oe!=null&&oe.aborted||X!=null&&X.aborted)&&s.nextTick(re),Ee}function Z(ue,Ae,Y,{end:W}){let oe=!1;if(Ae.on("close",()=>{oe||Y(new S)}),ue.pipe(Ae,{end:!1}),W){let X=function(){oe=!0,Ae.end()};U(ue)?s.nextTick(X):ue.once("end",X)}else Y();return t(ue,{readable:!0,writable:!1},X=>{let J=ue._readableState;X&&X.code==="ERR_STREAM_PREMATURE_CLOSE"&&J&&J.ended&&!J.errored&&!J.errorEmitted?ue.once("end",Y).once("error",Y):Y(X)}),t(Ae,{readable:!1,writable:!0},Y)}h.exports={pipelineImpl:ee,pipeline:B}}),oa=Se((f,h)=>{ge(),me(),ye();var{pipeline:s}=fo(),a=Tt(),{destroyer:c}=sr(),{isNodeStream:n,isReadable:r,isWritable:t,isWebStream:e,isTransformStream:i,isWritableStream:l,isReadableStream:d}=Ct(),{AbortError:p,codes:{ERR_INVALID_ARG_VALUE:g,ERR_MISSING_ARGS:b}}=pt(),E=Vt();h.exports=function(...S){if(S.length===0)throw new b("streams");if(S.length===1)return a.from(S[0]);let x=[...S];if(typeof S[0]=="function"&&(S[0]=a.from(S[0])),typeof S[S.length-1]=="function"){let k=S.length-1;S[k]=a.from(S[k])}for(let k=0;k0&&!(t(S[k])||l(S[k])||i(S[k])))throw new g(`streams[${k}]`,x[k],"must be writable")}let y,v,A,_,R;function w(k){let z=_;_=null,z?z(k):k?R.destroy(k):!U&&!M&&R.destroy()}let O=S[0],T=s(S,w),M=!!(t(O)||l(O)||i(O)),U=!!(r(T)||d(T)||i(T));if(R=new a({writableObjectMode:!!(O!=null&&O.writableObjectMode),readableObjectMode:!!(T!=null&&T.readableObjectMode),writable:M,readable:U}),M){if(n(O))R._write=function(z,G,q){O.write(z,G)?q():y=q},R._final=function(z){O.end(),v=z},O.on("drain",function(){if(y){let z=y;y=null,z()}});else if(e(O)){let z=(i(O)?O.writable:O).getWriter();R._write=async function(G,q,he){try{await z.ready,z.write(G).catch(()=>{}),he()}catch(ne){he(ne)}},R._final=async function(G){try{await z.ready,z.close().catch(()=>{}),v=G}catch(q){G(q)}}}let k=i(T)?T.readable:T;E(k,()=>{if(v){let z=v;v=null,z()}})}if(U){if(n(T))T.on("readable",function(){if(A){let k=A;A=null,k()}}),T.on("end",function(){R.push(null)}),R._read=function(){for(;;){let k=T.read();if(k===null){A=R._read;return}if(!R.push(k))return}};else if(e(T)){let k=(i(T)?T.readable:T).getReader();R._read=async function(){for(;;)try{let{value:z,done:G}=await k.read();if(!R.push(z))return;if(G){R.push(null);return}}catch{return}}}}return R._destroy=function(k,z){!k&&_!==null&&(k=new p),A=null,y=null,v=null,_===null?z(k):(_=z,n(T)&&c(T,k))},R}}),Jl=Se((f,h)=>{ge(),me(),ye();var s=globalThis.AbortController||gr().AbortController,{codes:{ERR_INVALID_ARG_VALUE:a,ERR_INVALID_ARG_TYPE:c,ERR_MISSING_ARGS:n,ERR_OUT_OF_RANGE:r},AbortError:t}=pt(),{validateAbortSignal:e,validateInteger:i,validateObject:l}=yr(),d=Ze().Symbol("kWeak"),p=Ze().Symbol("kResistStopPropagation"),{finished:g}=Vt(),b=oa(),{addAbortSignalNoValidate:E}=Yr(),{isWritable:S,isNodeStream:x}=Ct(),{deprecate:y}=gt(),{ArrayPrototypePush:v,Boolean:A,MathFloor:_,Number:R,NumberIsNaN:w,Promise:O,PromiseReject:T,PromiseResolve:M,PromisePrototypeThen:U,Symbol:k}=Ze(),z=k("kEmpty"),G=k("kEof");function q(X,J){if(J!=null&&l(J,"options"),J?.signal!=null&&e(J.signal,"options.signal"),x(X)&&!S(X))throw new a("stream",X,"must be writable");let re=b(this,X);return J!=null&&J.signal&&E(J.signal,re),re}function he(X,J){if(typeof X!="function")throw new c("fn",["Function","AsyncFunction"],X);J!=null&&l(J,"options"),J?.signal!=null&&e(J.signal,"options.signal");let re=1;J?.concurrency!=null&&(re=_(J.concurrency));let we=re-1;return J?.highWaterMark!=null&&(we=_(J.highWaterMark)),i(re,"options.concurrency",1),i(we,"options.highWaterMark",0),we+=re,(async function*(){let pe=gt().AbortSignalAny([J?.signal].filter(A)),L=this,H=[],se={signal:pe},be,ve,Ee=!1,Q=0;function _e(){Ee=!0,Oe()}function Oe(){Q-=1,fe()}function fe(){ve&&!Ee&&Q=we||Q>=re)&&await new O(u=>{ve=u})}H.push(G)}catch(o){let u=T(o);U(u,Oe,_e),H.push(u)}finally{Ee=!0,be&&(be(),be=null)}}Be();try{for(;;){for(;H.length>0;){let o=await H[0];if(o===G)return;if(pe.aborted)throw new t;o!==z&&(yield o),H.shift(),fe()}await new O(o=>{be=o})}}finally{Ee=!0,ve&&(ve(),ve=null)}}).call(this)}function ne(X=void 0){return X!=null&&l(X,"options"),X?.signal!=null&&e(X.signal,"options.signal"),(async function*(){let J=0;for await(let we of this){var re;if(X!=null&&(re=X.signal)!==null&&re!==void 0&&re.aborted)throw new t({cause:X.signal.reason});yield[J++,we]}}).call(this)}async function te(X,J=void 0){for await(let re of B.call(this,X,J))return!0;return!1}async function ce(X,J=void 0){if(typeof X!="function")throw new c("fn",["Function","AsyncFunction"],X);return!await te.call(this,async(...re)=>!await X(...re),J)}async function V(X,J){for await(let re of B.call(this,X,J))return re}async function le(X,J){if(typeof X!="function")throw new c("fn",["Function","AsyncFunction"],X);async function re(we,pe){return await X(we,pe),z}for await(let we of he.call(this,re,J));}function B(X,J){if(typeof X!="function")throw new c("fn",["Function","AsyncFunction"],X);async function re(we,pe){return await X(we,pe)?we:z}return he.call(this,re,J)}var ee=class extends n{constructor(){super("reduce"),this.message="Reduce of an empty stream requires an initial value"}};async function Z(X,J,re){var we;if(typeof X!="function")throw new c("reducer",["Function","AsyncFunction"],X);re!=null&&l(re,"options"),re?.signal!=null&&e(re.signal,"options.signal");let pe=arguments.length>1;if(re!=null&&(we=re.signal)!==null&&we!==void 0&&we.aborted){let ve=new t(void 0,{cause:re.signal.reason});throw this.once("error",()=>{}),await g(this.destroy(ve)),ve}let L=new s,H=L.signal;if(re!=null&&re.signal){let ve={once:!0,[d]:this,[p]:!0};re.signal.addEventListener("abort",()=>L.abort(),ve)}let se=!1;try{for await(let ve of this){var be;if(se=!0,re!=null&&(be=re.signal)!==null&&be!==void 0&&be.aborted)throw new t;pe?J=await X(J,ve,{signal:H}):(J=ve,pe=!0)}if(!se&&!pe)throw new ee}finally{L.abort()}return J}async function ue(X){X!=null&&l(X,"options"),X?.signal!=null&&e(X.signal,"options.signal");let J=[];for await(let we of this){var re;if(X!=null&&(re=X.signal)!==null&&re!==void 0&&re.aborted)throw new t(void 0,{cause:X.signal.reason});v(J,we)}return J}function Ae(X,J){let re=he.call(this,X,J);return(async function*(){for await(let we of re)yield*we}).call(this)}function Y(X){if(X=R(X),w(X))return 0;if(X<0)throw new r("number",">= 0",X);return X}function W(X,J=void 0){return J!=null&&l(J,"options"),J?.signal!=null&&e(J.signal,"options.signal"),X=Y(X),(async function*(){var re;if(J!=null&&(re=J.signal)!==null&&re!==void 0&&re.aborted)throw new t;for await(let pe of this){var we;if(J!=null&&(we=J.signal)!==null&&we!==void 0&&we.aborted)throw new t;X--<=0&&(yield pe)}}).call(this)}function oe(X,J=void 0){return J!=null&&l(J,"options"),J?.signal!=null&&e(J.signal,"options.signal"),X=Y(X),(async function*(){var re;if(J!=null&&(re=J.signal)!==null&&re!==void 0&&re.aborted)throw new t;for await(let pe of this){var we;if(J!=null&&(we=J.signal)!==null&&we!==void 0&&we.aborted)throw new t;if(X-- >0&&(yield pe),X<=0)return}}).call(this)}h.exports.streamReturningOperators={asIndexedPairs:y(ne,"readable.asIndexedPairs will be removed in a future version."),drop:W,filter:B,flatMap:Ae,map:he,take:oe,compose:q},h.exports.promiseReturningOperators={every:ce,forEach:le,reduce:Z,toArray:ue,some:te,find:V}}),sa=Se((f,h)=>{ge(),me(),ye();var{ArrayPrototypePop:s,Promise:a}=Ze(),{isIterable:c,isNodeStream:n,isWebStream:r}=Ct(),{pipelineImpl:t}=fo(),{finished:e}=Vt();aa();function i(...l){return new a((d,p)=>{let g,b,E=l[l.length-1];if(E&&typeof E=="object"&&!n(E)&&!c(E)&&!r(E)){let S=s(l);g=S.signal,b=S.end}t(l,(S,x)=>{S?p(S):d(x)},{signal:g,end:b})})}h.exports={finished:e,pipeline:i}}),aa=Se((f,h)=>{ge(),me(),ye();var{Buffer:s}=(st(),Ke(ot)),{ObjectDefineProperty:a,ObjectKeys:c,ReflectApply:n}=Ze(),{promisify:{custom:r}}=gt(),{streamReturningOperators:t,promiseReturningOperators:e}=Jl(),{codes:{ERR_ILLEGAL_CONSTRUCTOR:i}}=pt(),l=oa(),{setDefaultHighWaterMark:d,getDefaultHighWaterMark:p}=Jr(),{pipeline:g}=fo(),{destroyer:b}=sr(),E=Vt(),S=sa(),x=Ct(),y=h.exports=co().Stream;y.isDestroyed=x.isDestroyed,y.isDisturbed=x.isDisturbed,y.isErrored=x.isErrored,y.isReadable=x.isReadable,y.isWritable=x.isWritable,y.Readable=Xr();for(let A of c(t)){let _=function(...w){if(new.target)throw i();return y.Readable.from(n(R,this,w))},R=t[A];a(_,"name",{__proto__:null,value:R.name}),a(_,"length",{__proto__:null,value:R.length}),a(y.Readable.prototype,A,{__proto__:null,value:_,enumerable:!1,configurable:!0,writable:!0})}for(let A of c(e)){let _=function(...w){if(new.target)throw i();return n(R,this,w)},R=e[A];a(_,"name",{__proto__:null,value:R.name}),a(_,"length",{__proto__:null,value:R.length}),a(y.Readable.prototype,A,{__proto__:null,value:_,enumerable:!1,configurable:!0,writable:!0})}y.Writable=ho(),y.Duplex=Tt(),y.Transform=na(),y.PassThrough=ia(),y.pipeline=g;var{addAbortSignal:v}=Yr();y.addAbortSignal=v,y.finished=E,y.destroy=b,y.compose=l,y.setDefaultHighWaterMark=d,y.getDefaultHighWaterMark=p,a(y,"promises",{__proto__:null,configurable:!0,enumerable:!0,get(){return S}}),a(g,r,{__proto__:null,enumerable:!0,get(){return S.pipeline}}),a(E,r,{__proto__:null,enumerable:!0,get(){return S.finished}}),y.Stream=y,y._isUint8Array=function(A){return A instanceof Uint8Array},y._uint8ArrayToBuffer=function(A){return s.from(A.buffer,A.byteOffset,A.byteLength)}}),tr=Se((f,h)=>{ge(),me(),ye();var s=aa(),a=sa(),c=s.Readable.destroy;h.exports=s.Readable,h.exports._uint8ArrayToBuffer=s._uint8ArrayToBuffer,h.exports._isUint8Array=s._isUint8Array,h.exports.isDisturbed=s.isDisturbed,h.exports.isErrored=s.isErrored,h.exports.isReadable=s.isReadable,h.exports.Readable=s.Readable,h.exports.Writable=s.Writable,h.exports.Duplex=s.Duplex,h.exports.Transform=s.Transform,h.exports.PassThrough=s.PassThrough,h.exports.addAbortSignal=s.addAbortSignal,h.exports.finished=s.finished,h.exports.destroy=s.destroy,h.exports.destroy=c,h.exports.pipeline=s.pipeline,h.exports.compose=s.compose,Object.defineProperty(s,"promises",{configurable:!0,enumerable:!0,get(){return a}}),h.exports.Stream=s.Stream,h.exports.default=h.exports}),Xl=Se((f,h)=>{ge(),me(),ye(),typeof Object.create=="function"?h.exports=function(s,a){a&&(s.super_=a,s.prototype=Object.create(a.prototype,{constructor:{value:s,enumerable:!1,writable:!0,configurable:!0}}))}:h.exports=function(s,a){if(a){s.super_=a;var c=function(){};c.prototype=a.prototype,s.prototype=new c,s.prototype.constructor=s}}}),Zl=Se((f,h)=>{ge(),me(),ye();var{Buffer:s}=(st(),Ke(ot)),a=Symbol.for("BufferList");function c(n){if(!(this instanceof c))return new c(n);c._init.call(this,n)}c._init=function(n){Object.defineProperty(this,a,{value:!0}),this._bufs=[],this.length=0,n&&this.append(n)},c.prototype._new=function(n){return new c(n)},c.prototype._offset=function(n){if(n===0)return[0,0];let r=0;for(let t=0;tthis.length||n<0)return;let r=this._offset(n);return this._bufs[r[0]][r[1]]},c.prototype.slice=function(n,r){return typeof n=="number"&&n<0&&(n+=this.length),typeof r=="number"&&r<0&&(r+=this.length),this.copy(null,0,n,r)},c.prototype.copy=function(n,r,t,e){if((typeof t!="number"||t<0)&&(t=0),(typeof e!="number"||e>this.length)&&(e=this.length),t>=this.length||e<=0)return n||s.alloc(0);let i=!!n,l=this._offset(t),d=e-t,p=d,g=i&&r||0,b=l[1];if(t===0&&e===this.length){if(!i)return this._bufs.length===1?this._bufs[0]:s.concat(this._bufs,this.length);for(let E=0;ES)this._bufs[E].copy(n,g,b),g+=S;else{this._bufs[E].copy(n,g,b,b+p),g+=S;break}p-=S,b&&(b=0)}return n.length>g?n.slice(0,g):n},c.prototype.shallowSlice=function(n,r){if(n=n||0,r=typeof r!="number"?this.length:r,n<0&&(n+=this.length),r<0&&(r+=this.length),n===r)return this._new();let t=this._offset(n),e=this._offset(r),i=this._bufs.slice(t[0],e[0]+1);return e[1]===0?i.pop():i[i.length-1]=i[i.length-1].slice(0,e[1]),t[1]!==0&&(i[0]=i[0].slice(t[1])),this._new(i)},c.prototype.toString=function(n,r,t){return this.slice(r,t).toString(n)},c.prototype.consume=function(n){if(n=Math.trunc(n),Number.isNaN(n)||n<=0)return this;for(;this._bufs.length;)if(n>=this._bufs[0].length)n-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(n),this.length-=n;break}return this},c.prototype.duplicate=function(){let n=this._new();for(let r=0;r=0&&l=0&&lthis.length?this.length:r;let e=this._offset(r),i=e[0],l=e[1];for(;i=n.length){let p=d.indexOf(n,l);if(p!==-1)return this._reverseOffset([i,p]);l=d.length-n.length+1}else{let p=this._reverseOffset([i,l]);if(this._match(p,n))return p;l++}l=0}return-1},c.prototype._match=function(n,r){if(this.length-n{ge(),me(),ye();var s=tr().Duplex,a=Xl(),c=Zl();function n(r){if(!(this instanceof n))return new n(r);if(typeof r=="function"){this._callback=r;let t=(function(e){this._callback&&(this._callback(e),this._callback=null)}).bind(this);this.on("pipe",function(e){e.on("error",t)}),this.on("unpipe",function(e){e.removeListener("error",t)}),r=null}c._init.call(this,r),s.call(this)}a(n,s),Object.assign(n.prototype,c.prototype),n.prototype._new=function(r){return new n(r)},n.prototype._write=function(r,t,e){this._appendBuffer(r),typeof e=="function"&&e()},n.prototype._read=function(r){if(!this.length)return this.push(null);r=Math.min(r,this.length),this.push(this.slice(0,r)),this.consume(r)},n.prototype.end=function(r){s.prototype.end.call(this,r),this._callback&&(this._callback(null,this.slice()),this._callback=null)},n.prototype._destroy=function(r,t){this._bufs.length=0,this.length=0,t(r)},n.prototype._isBufferList=function(r){return r instanceof n||r instanceof c||n.isBufferList(r)},n.isBufferList=c.isBufferList,h.exports=n,h.exports.BufferListStream=n,h.exports.BufferList=c}),tu=Se((f,h)=>{ge(),me(),ye();var s=class{constructor(){this.cmd=null,this.retain=!1,this.qos=0,this.dup=!1,this.length=-1,this.topic=null,this.payload=null}};h.exports=s}),la=Se((f,h)=>{ge(),me(),ye();var s=h.exports,{Buffer:a}=(st(),Ke(ot));s.types={0:"reserved",1:"connect",2:"connack",3:"publish",4:"puback",5:"pubrec",6:"pubrel",7:"pubcomp",8:"subscribe",9:"suback",10:"unsubscribe",11:"unsuback",12:"pingreq",13:"pingresp",14:"disconnect",15:"auth"},s.requiredHeaderFlags={1:0,2:0,4:0,5:0,6:2,7:0,8:2,9:0,10:2,11:0,12:0,13:0,14:0,15:0},s.requiredHeaderFlagsErrors={};for(let n in s.requiredHeaderFlags){let r=s.requiredHeaderFlags[n];s.requiredHeaderFlagsErrors[n]="Invalid header flag bits, must be 0x"+r.toString(16)+" for "+s.types[n]+" packet"}s.codes={};for(let n in s.types){let r=s.types[n];s.codes[r]=n}s.CMD_SHIFT=4,s.CMD_MASK=240,s.DUP_MASK=8,s.QOS_MASK=3,s.QOS_SHIFT=1,s.RETAIN_MASK=1,s.VARBYTEINT_MASK=127,s.VARBYTEINT_FIN_MASK=128,s.VARBYTEINT_MAX=268435455,s.SESSIONPRESENT_MASK=1,s.SESSIONPRESENT_HEADER=a.from([s.SESSIONPRESENT_MASK]),s.CONNACK_HEADER=a.from([s.codes.connack<[0,1].map(t=>[0,1].map(e=>{let i=a.alloc(1);return i.writeUInt8(s.codes[n]<a.from([n])),s.EMPTY={pingreq:a.from([s.codes.pingreq<<4,0]),pingresp:a.from([s.codes.pingresp<<4,0]),disconnect:a.from([s.codes.disconnect<<4,0])},s.MQTT5_PUBACK_PUBREC_CODES={0:"Success",16:"No matching subscribers",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",144:"Topic Name invalid",145:"Packet identifier in use",151:"Quota exceeded",153:"Payload format invalid"},s.MQTT5_PUBREL_PUBCOMP_CODES={0:"Success",146:"Packet Identifier not found"},s.MQTT5_SUBACK_CODES={0:"Granted QoS 0",1:"Granted QoS 1",2:"Granted QoS 2",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",143:"Topic Filter invalid",145:"Packet Identifier in use",151:"Quota exceeded",158:"Shared Subscriptions not supported",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"},s.MQTT5_UNSUBACK_CODES={0:"Success",17:"No subscription existed",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",143:"Topic Filter invalid",145:"Packet Identifier in use"},s.MQTT5_DISCONNECT_CODES={0:"Normal disconnection",4:"Disconnect with Will Message",128:"Unspecified error",129:"Malformed Packet",130:"Protocol Error",131:"Implementation specific error",135:"Not authorized",137:"Server busy",139:"Server shutting down",141:"Keep Alive timeout",142:"Session taken over",143:"Topic Filter invalid",144:"Topic Name invalid",147:"Receive Maximum exceeded",148:"Topic Alias invalid",149:"Packet too large",150:"Message rate too high",151:"Quota exceeded",152:"Administrative action",153:"Payload format invalid",154:"Retain not supported",155:"QoS not supported",156:"Use another server",157:"Server moved",158:"Shared Subscriptions not supported",159:"Connection rate exceeded",160:"Maximum connect time",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"},s.MQTT5_AUTH_CODES={0:"Success",24:"Continue authentication",25:"Re-authenticate"}}),ru=Se((f,h)=>{ge(),me(),ye();var s=1e3,a=s*60,c=a*60,n=c*24,r=n*7,t=n*365.25;h.exports=function(p,g){g=g||{};var b=typeof p;if(b==="string"&&p.length>0)return e(p);if(b==="number"&&isFinite(p))return g.long?l(p):i(p);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(p))};function e(p){if(p=String(p),!(p.length>100)){var g=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(p);if(g){var b=parseFloat(g[1]),E=(g[2]||"ms").toLowerCase();switch(E){case"years":case"year":case"yrs":case"yr":case"y":return b*t;case"weeks":case"week":case"w":return b*r;case"days":case"day":case"d":return b*n;case"hours":case"hour":case"hrs":case"hr":case"h":return b*c;case"minutes":case"minute":case"mins":case"min":case"m":return b*a;case"seconds":case"second":case"secs":case"sec":case"s":return b*s;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return b;default:return}}}}function i(p){var g=Math.abs(p);return g>=n?Math.round(p/n)+"d":g>=c?Math.round(p/c)+"h":g>=a?Math.round(p/a)+"m":g>=s?Math.round(p/s)+"s":p+"ms"}function l(p){var g=Math.abs(p);return g>=n?d(p,g,n,"day"):g>=c?d(p,g,c,"hour"):g>=a?d(p,g,a,"minute"):g>=s?d(p,g,s,"second"):p+" ms"}function d(p,g,b,E){var S=g>=b*1.5;return Math.round(p/b)+" "+E+(S?"s":"")}}),nu=Se((f,h)=>{ge(),me(),ye();function s(a){n.debug=n,n.default=n,n.coerce=d,n.disable=i,n.enable=t,n.enabled=l,n.humanize=ru(),n.destroy=p,Object.keys(a).forEach(g=>{n[g]=a[g]}),n.names=[],n.skips=[],n.formatters={};function c(g){let b=0;for(let E=0;E{if(O==="%%")return"%";w++;let M=n.formatters[T];if(typeof M=="function"){let U=v[w];O=M.call(A,U),v.splice(w,1),w--}return O}),n.formatArgs.call(A,v),(A.log||n.log).apply(A,v)}return y.namespace=g,y.useColors=n.useColors(),y.color=n.selectColor(g),y.extend=r,y.destroy=n.destroy,Object.defineProperty(y,"enabled",{enumerable:!0,configurable:!1,get:()=>E!==null?E:(S!==n.namespaces&&(S=n.namespaces,x=n.enabled(g)),x),set:v=>{E=v}}),typeof n.init=="function"&&n.init(y),y}function r(g,b){let E=n(this.namespace+(typeof b>"u"?":":b)+g);return E.log=this.log,E}function t(g){n.save(g),n.namespaces=g,n.names=[],n.skips=[];let b=(typeof g=="string"?g:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let E of b)E[0]==="-"?n.skips.push(E.slice(1)):n.names.push(E)}function e(g,b){let E=0,S=0,x=-1,y=0;for(;E"-"+b)].join(",");return n.enable(""),g}function l(g){for(let b of n.skips)if(e(g,b))return!1;for(let b of n.names)if(e(g,b))return!0;return!1}function d(g){return g instanceof Error?g.stack||g.message:g}function p(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return n.enable(n.load()),n}h.exports=s}),Pt=Se((f,h)=>{ge(),me(),ye(),f.formatArgs=a,f.save=c,f.load=n,f.useColors=s,f.storage=r(),f.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),f.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function s(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function a(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+h.exports.humanize(this.diff),!this.useColors)return;let i="color: "+this.color;e.splice(1,0,i,"color: inherit");let l=0,d=0;e[0].replace(/%[a-zA-Z%]/g,p=>{p!=="%%"&&(l++,p==="%c"&&(d=l))}),e.splice(d,0,i)}f.log=console.debug||console.log||(()=>{});function c(e){try{e?f.storage.setItem("debug",e):f.storage.removeItem("debug")}catch{}}function n(){let e;try{e=f.storage.getItem("debug")||f.storage.getItem("DEBUG")}catch{}return!e&&typeof Ge<"u"&&"env"in Ge&&(e=Ge.env.DEBUG),e}function r(){try{return localStorage}catch{}}h.exports=nu()(f);var{formatters:t}=h.exports;t.j=function(e){try{return JSON.stringify(e)}catch(i){return"[UnexpectedJSONParseError]: "+i.message}}}),iu=Se((f,h)=>{ge(),me(),ye();var s=eu(),{EventEmitter:a}=(Zt(),Ke(qt)),c=tu(),n=la(),r=Pt()("mqtt-packet:parser"),t=class gi extends a{constructor(){super(),this.parser=this.constructor.parser}static parser(i){return this instanceof gi?(this.settings=i||{},this._states=["_parseHeader","_parseLength","_parsePayload","_newPacket"],this._resetState(),this):new gi().parser(i)}_resetState(){r("_resetState: resetting packet, error, _list, and _stateCounter"),this.packet=new c,this.error=null,this._list=s(),this._stateCounter=0}parse(i){for(this.error&&this._resetState(),this._list.append(i),r("parse: current state: %s",this._states[this._stateCounter]);(this.packet.length!==-1||this._list.length>0)&&this[this._states[this._stateCounter]]()&&!this.error;)this._stateCounter++,r("parse: state complete. _stateCounter is now: %d",this._stateCounter),r("parse: packet.length: %d, buffer list length: %d",this.packet.length,this._list.length),this._stateCounter>=this._states.length&&(this._stateCounter=0);return r("parse: exited while loop. packet: %d, buffer list length: %d",this.packet.length,this._list.length),this._list.length}_parseHeader(){let i=this._list.readUInt8(0),l=i>>n.CMD_SHIFT;this.packet.cmd=n.types[l];let d=i&15,p=n.requiredHeaderFlags[l];return p!=null&&d!==p?this._emitError(new Error(n.requiredHeaderFlagsErrors[l])):(this.packet.retain=(i&n.RETAIN_MASK)!==0,this.packet.qos=i>>n.QOS_SHIFT&n.QOS_MASK,this.packet.qos>2?this._emitError(new Error("Packet must not have both QoS bits set to 1")):(this.packet.dup=(i&n.DUP_MASK)!==0,r("_parseHeader: packet: %o",this.packet),this._list.consume(1),!0))}_parseLength(){let i=this._parseVarByteNum(!0);return i&&(this.packet.length=i.value,this._list.consume(i.bytes)),r("_parseLength %d",i.value),!!i}_parsePayload(){r("_parsePayload: payload %O",this._list);let i=!1;if(this.packet.length===0||this._list.length>=this.packet.length){switch(this._pos=0,this.packet.cmd){case"connect":this._parseConnect();break;case"connack":this._parseConnack();break;case"publish":this._parsePublish();break;case"puback":case"pubrec":case"pubrel":case"pubcomp":this._parseConfirmation();break;case"subscribe":this._parseSubscribe();break;case"suback":this._parseSuback();break;case"unsubscribe":this._parseUnsubscribe();break;case"unsuback":this._parseUnsuback();break;case"pingreq":case"pingresp":break;case"disconnect":this._parseDisconnect();break;case"auth":this._parseAuth();break;default:this._emitError(new Error("Not supported"))}i=!0}return r("_parsePayload complete result: %s",i),i}_parseConnect(){r("_parseConnect");let i,l,d,p,g={},b=this.packet,E=this._parseString();if(E===null)return this._emitError(new Error("Cannot parse protocolId"));if(E!=="MQTT"&&E!=="MQIsdp")return this._emitError(new Error("Invalid protocolId"));if(b.protocolId=E,this._pos>=this._list.length)return this._emitError(new Error("Packet too short"));if(b.protocolVersion=this._list.readUInt8(this._pos),b.protocolVersion>=128&&(b.bridgeMode=!0,b.protocolVersion=b.protocolVersion-128),b.protocolVersion!==3&&b.protocolVersion!==4&&b.protocolVersion!==5)return this._emitError(new Error("Invalid protocol version"));if(this._pos++,this._pos>=this._list.length)return this._emitError(new Error("Packet too short"));if(this._list.readUInt8(this._pos)&1)return this._emitError(new Error("Connect flag bit 0 must be 0, but got 1"));g.username=this._list.readUInt8(this._pos)&n.USERNAME_MASK,g.password=this._list.readUInt8(this._pos)&n.PASSWORD_MASK,g.will=this._list.readUInt8(this._pos)&n.WILL_FLAG_MASK;let S=!!(this._list.readUInt8(this._pos)&n.WILL_RETAIN_MASK),x=(this._list.readUInt8(this._pos)&n.WILL_QOS_MASK)>>n.WILL_QOS_SHIFT;if(g.will)b.will={},b.will.retain=S,b.will.qos=x;else{if(S)return this._emitError(new Error("Will Retain Flag must be set to zero when Will Flag is set to 0"));if(x)return this._emitError(new Error("Will QoS must be set to zero when Will Flag is set to 0"))}if(b.clean=(this._list.readUInt8(this._pos)&n.CLEAN_SESSION_MASK)!==0,this._pos++,b.keepalive=this._parseNum(),b.keepalive===-1)return this._emitError(new Error("Packet too short"));if(b.protocolVersion===5){let v=this._parseProperties();Object.getOwnPropertyNames(v).length&&(b.properties=v)}let y=this._parseString();if(y===null)return this._emitError(new Error("Packet too short"));if(b.clientId=y,r("_parseConnect: packet.clientId: %s",b.clientId),g.will){if(b.protocolVersion===5){let v=this._parseProperties();Object.getOwnPropertyNames(v).length&&(b.will.properties=v)}if(i=this._parseString(),i===null)return this._emitError(new Error("Cannot parse will topic"));if(b.will.topic=i,r("_parseConnect: packet.will.topic: %s",b.will.topic),l=this._parseBuffer(),l===null)return this._emitError(new Error("Cannot parse will payload"));b.will.payload=l,r("_parseConnect: packet.will.paylaod: %s",b.will.payload)}if(g.username){if(p=this._parseString(),p===null)return this._emitError(new Error("Cannot parse username"));b.username=p,r("_parseConnect: packet.username: %s",b.username)}if(g.password){if(d=this._parseBuffer(),d===null)return this._emitError(new Error("Cannot parse password"));b.password=d}return this.settings=b,r("_parseConnect: complete"),b}_parseConnack(){r("_parseConnack");let i=this.packet;if(this._list.length<1)return null;let l=this._list.readUInt8(this._pos++);if(l>1)return this._emitError(new Error("Invalid connack flags, bits 7-1 must be set to 0"));if(i.sessionPresent=!!(l&n.SESSIONPRESENT_MASK),this.settings.protocolVersion===5)this._list.length>=2?i.reasonCode=this._list.readUInt8(this._pos++):i.reasonCode=0;else{if(this._list.length<2)return null;i.returnCode=this._list.readUInt8(this._pos++)}if(i.returnCode===-1||i.reasonCode===-1)return this._emitError(new Error("Cannot parse return code"));if(this.settings.protocolVersion===5){let d=this._parseProperties();Object.getOwnPropertyNames(d).length&&(i.properties=d)}r("_parseConnack: complete")}_parsePublish(){r("_parsePublish");let i=this.packet;if(i.topic=this._parseString(),i.topic===null)return this._emitError(new Error("Cannot parse topic"));if(!(i.qos>0&&!this._parseMessageId())){if(this.settings.protocolVersion===5){let l=this._parseProperties();Object.getOwnPropertyNames(l).length&&(i.properties=l)}i.payload=this._list.slice(this._pos,i.length),r("_parsePublish: payload from buffer list: %o",i.payload)}}_parseSubscribe(){r("_parseSubscribe");let i=this.packet,l,d,p,g,b,E,S;if(i.subscriptions=[],!!this._parseMessageId()){if(this.settings.protocolVersion===5){let x=this._parseProperties();Object.getOwnPropertyNames(x).length&&(i.properties=x)}if(i.length<=0)return this._emitError(new Error("Malformed subscribe, no payload specified"));for(;this._pos=i.length)return this._emitError(new Error("Malformed Subscribe Payload"));if(d=this._parseByte(),this.settings.protocolVersion===5){if(d&192)return this._emitError(new Error("Invalid subscribe topic flag bits, bits 7-6 must be 0"))}else if(d&252)return this._emitError(new Error("Invalid subscribe topic flag bits, bits 7-2 must be 0"));if(p=d&n.SUBSCRIBE_OPTIONS_QOS_MASK,p>2)return this._emitError(new Error("Invalid subscribe QoS, must be <= 2"));if(E=(d>>n.SUBSCRIBE_OPTIONS_NL_SHIFT&n.SUBSCRIBE_OPTIONS_NL_MASK)!==0,b=(d>>n.SUBSCRIBE_OPTIONS_RAP_SHIFT&n.SUBSCRIBE_OPTIONS_RAP_MASK)!==0,g=d>>n.SUBSCRIBE_OPTIONS_RH_SHIFT&n.SUBSCRIBE_OPTIONS_RH_MASK,g>2)return this._emitError(new Error("Invalid retain handling, must be <= 2"));S={topic:l,qos:p},this.settings.protocolVersion===5?(S.nl=E,S.rap=b,S.rh=g):this.settings.bridgeMode&&(S.rh=0,S.rap=!0,S.nl=!0),r("_parseSubscribe: push subscription `%s` to subscription",S),i.subscriptions.push(S)}}}_parseSuback(){r("_parseSuback");let i=this.packet;if(this.packet.granted=[],!!this._parseMessageId()){if(this.settings.protocolVersion===5){let l=this._parseProperties();Object.getOwnPropertyNames(l).length&&(i.properties=l)}if(i.length<=0)return this._emitError(new Error("Malformed suback, no payload specified"));for(;this._pos2&&l!==128)return this._emitError(new Error("Invalid suback QoS, must be 0, 1, 2 or 128"));this.packet.granted.push(l)}}}_parseUnsubscribe(){r("_parseUnsubscribe");let i=this.packet;if(i.unsubscriptions=[],!!this._parseMessageId()){if(this.settings.protocolVersion===5){let l=this._parseProperties();Object.getOwnPropertyNames(l).length&&(i.properties=l)}if(i.length<=0)return this._emitError(new Error("Malformed unsubscribe, no payload specified"));for(;this._pos2){switch(i.reasonCode=this._parseByte(),this.packet.cmd){case"puback":case"pubrec":if(!n.MQTT5_PUBACK_PUBREC_CODES[i.reasonCode])return this._emitError(new Error("Invalid "+this.packet.cmd+" reason code"));break;case"pubrel":case"pubcomp":if(!n.MQTT5_PUBREL_PUBCOMP_CODES[i.reasonCode])return this._emitError(new Error("Invalid "+this.packet.cmd+" reason code"));break}r("_parseConfirmation: packet.reasonCode `%d`",i.reasonCode)}else i.reasonCode=0;if(i.length>3){let l=this._parseProperties();Object.getOwnPropertyNames(l).length&&(i.properties=l)}}return!0}_parseDisconnect(){let i=this.packet;if(r("_parseDisconnect"),this.settings.protocolVersion===5){this._list.length>0?(i.reasonCode=this._parseByte(),n.MQTT5_DISCONNECT_CODES[i.reasonCode]||this._emitError(new Error("Invalid disconnect reason code"))):i.reasonCode=0;let l=this._parseProperties();Object.getOwnPropertyNames(l).length&&(i.properties=l)}return r("_parseDisconnect result: true"),!0}_parseAuth(){r("_parseAuth");let i=this.packet;if(this.settings.protocolVersion!==5)return this._emitError(new Error("Not supported auth packet for this version MQTT"));if(i.reasonCode=this._parseByte(),!n.MQTT5_AUTH_CODES[i.reasonCode])return this._emitError(new Error("Invalid auth reason code"));let l=this._parseProperties();return Object.getOwnPropertyNames(l).length&&(i.properties=l),r("_parseAuth: result: true"),!0}_parseMessageId(){let i=this.packet;return i.messageId=this._parseNum(),i.messageId===null?(this._emitError(new Error("Cannot parse messageId")),!1):(r("_parseMessageId: packet.messageId %d",i.messageId),!0)}_parseString(i){let l=this._parseNum(),d=l+this._pos;if(l===-1||d>this._list.length||d>this.packet.length)return null;let p=this._list.toString("utf8",this._pos,d);return this._pos+=l,r("_parseString: result: %s",p),p}_parseStringPair(){return r("_parseStringPair"),{name:this._parseString(),value:this._parseString()}}_parseBuffer(){let i=this._parseNum(),l=i+this._pos;if(i===-1||l>this._list.length||l>this.packet.length)return null;let d=this._list.slice(this._pos,l);return this._pos+=i,r("_parseBuffer: result: %o",d),d}_parseNum(){if(this._list.length-this._pos<2)return-1;let i=this._list.readUInt16BE(this._pos);return this._pos+=2,r("_parseNum: result: %s",i),i}_parse4ByteNum(){if(this._list.length-this._pos<4)return-1;let i=this._list.readUInt32BE(this._pos);return this._pos+=4,r("_parse4ByteNum: result: %s",i),i}_parseVarByteNum(i){r("_parseVarByteNum");let l=4,d=0,p=1,g=0,b=!1,E,S=this._pos?this._pos:0;for(;d=d&&this._emitError(new Error("Invalid variable byte integer")),S&&(this._pos+=d),b?i?b={bytes:d,value:g}:b=g:b=!1,r("_parseVarByteNum: result: %o",b),b}_parseByte(){let i;return this._pos{ge(),me(),ye();var{Buffer:s}=(st(),Ke(ot)),a=65536,c={},n=s.isBuffer(s.from([1,2]).subarray(0,1));function r(l){let d=s.allocUnsafe(2);return d.writeUInt8(l>>8,0),d.writeUInt8(l&255,1),d}function t(){for(let l=0;l0&&(d=d|128),g.writeUInt8(d,p++);while(l>0&&p<4);return l>0&&(p=0),n?g.subarray(0,p):g.slice(0,p)}function i(l){let d=s.allocUnsafe(4);return d.writeUInt32BE(l,0),d}h.exports={cache:c,generateCache:t,generateNumber:r,genBufVariableByteInt:e,generate4ByteBuffer:i}}),su=Se((f,h)=>{ge(),me(),ye(),typeof Ge>"u"||!Ge.version||Ge.version.indexOf("v0.")===0||Ge.version.indexOf("v1.")===0&&Ge.version.indexOf("v1.8.")!==0?h.exports={nextTick:s}:h.exports=Ge;function s(a,c,n,r){if(typeof a!="function")throw new TypeError('"callback" argument must be a function');var t=arguments.length,e,i;switch(t){case 0:case 1:return Ge.nextTick(a);case 2:return Ge.nextTick(function(){a.call(null,c)});case 3:return Ge.nextTick(function(){a.call(null,c,n)});case 4:return Ge.nextTick(function(){a.call(null,c,n,r)});default:for(e=new Array(t-1),i=0;i{ge(),me(),ye();var s=la(),{Buffer:a}=(st(),Ke(ot)),c=a.allocUnsafe(0),n=a.from([0]),r=ou(),t=su().nextTick,e=Pt()("mqtt-packet:writeToStream"),i=r.cache,l=r.generateNumber,d=r.generateCache,p=r.genBufVariableByteInt,g=r.generate4ByteBuffer,b=ne,E=!0;function S(Y,W,oe){switch(e("generate called"),W.cork&&(W.cork(),t(x,W)),E&&(E=!1,d()),e("generate: packet.cmd: %s",Y.cmd),Y.cmd){case"connect":return y(Y,W);case"connack":return v(Y,W,oe);case"publish":return A(Y,W,oe);case"puback":case"pubrec":case"pubrel":case"pubcomp":return _(Y,W,oe);case"subscribe":return R(Y,W,oe);case"suback":return w(Y,W,oe);case"unsubscribe":return O(Y,W,oe);case"unsuback":return T(Y,W,oe);case"pingreq":case"pingresp":return M(Y,W);case"disconnect":return U(Y,W,oe);case"auth":return k(Y,W,oe);default:return W.destroy(new Error("Unknown command")),!1}}Object.defineProperty(S,"cacheNumbers",{get(){return b===ne},set(Y){Y?((!i||Object.keys(i).length===0)&&(E=!0),b=ne):(E=!1,b=te)}});function x(Y){Y.uncork()}function y(Y,W,oe){let X=Y||{},J=X.protocolId||"MQTT",re=X.protocolVersion||4,we=X.will,pe=X.clean,L=X.keepalive||0,H=X.clientId||"",se=X.username,be=X.password,ve=X.properties;pe===void 0&&(pe=!0);let Ee=0;if(typeof J!="string"&&!a.isBuffer(J))return W.destroy(new Error("Invalid protocolId")),!1;if(Ee+=J.length+2,re!==3&&re!==4&&re!==5)return W.destroy(new Error("Invalid protocol version")),!1;if(Ee+=1,(typeof H=="string"||a.isBuffer(H))&&(H||re>=4)&&(H||pe))Ee+=a.byteLength(H)+2;else{if(re<4)return W.destroy(new Error("clientId must be supplied before 3.1.1")),!1;if(pe*1===0)return W.destroy(new Error("clientId must be given if cleanSession set to 0")),!1}if(typeof L!="number"||L<0||L>65535||L%1!==0)return W.destroy(new Error("Invalid keepalive")),!1;Ee+=2,Ee+=1;let Q,_e;if(re===5){if(Q=le(W,ve),!Q)return!1;Ee+=Q.length}if(we){if(typeof we!="object")return W.destroy(new Error("Invalid will")),!1;if(!we.topic||typeof we.topic!="string")return W.destroy(new Error("Invalid will topic")),!1;if(Ee+=a.byteLength(we.topic)+2,Ee+=2,we.payload)if(we.payload.length>=0)typeof we.payload=="string"?Ee+=a.byteLength(we.payload):Ee+=we.payload.length;else return W.destroy(new Error("Invalid will payload")),!1;if(_e={},re===5){if(_e=le(W,we.properties),!_e)return!1;Ee+=_e.length}}let Oe=!1;if(se!=null)if(Ae(se))Oe=!0,Ee+=a.byteLength(se)+2;else return W.destroy(new Error("Invalid username")),!1;if(be!=null){if(!Oe)return W.destroy(new Error("Username is required to use password")),!1;if(Ae(be))Ee+=ue(be)+2;else return W.destroy(new Error("Invalid password")),!1}W.write(s.CONNECT_HEADER),G(W,Ee),V(W,J),X.bridgeMode&&(re+=128),W.write(re===131?s.VERSION131:re===132?s.VERSION132:re===4?s.VERSION4:re===5?s.VERSION5:s.VERSION3);let fe=0;return fe|=se!=null?s.USERNAME_MASK:0,fe|=be!=null?s.PASSWORD_MASK:0,fe|=we&&we.retain?s.WILL_RETAIN_MASK:0,fe|=we&&we.qos?we.qos<0&&b(W,H),ve?.write(),e("publish: payload: %o",L),W.write(L)}function _(Y,W,oe){let X=oe?oe.protocolVersion:4,J=Y||{},re=J.cmd||"puback",we=J.messageId,pe=J.dup&&re==="pubrel"?s.DUP_MASK:0,L=0,H=J.reasonCode,se=J.properties,be=X===5?3:2;if(re==="pubrel"&&(L=1),typeof we!="number")return W.destroy(new Error("Invalid messageId")),!1;let ve=null;if(X===5&&typeof se=="object"){if(ve=B(W,se,oe,be),!ve)return!1;be+=ve.length}return W.write(s.ACKS[re][L][pe][0]),be===3&&(be+=H!==0?1:-1),G(W,be),b(W,we),X===5&&be!==2&&W.write(a.from([H])),ve!==null?ve.write():be===4&&W.write(a.from([0])),!0}function R(Y,W,oe){e("subscribe: packet: ");let X=oe?oe.protocolVersion:4,J=Y||{},re=J.dup?s.DUP_MASK:0,we=J.messageId,pe=J.subscriptions,L=J.properties,H=0;if(typeof we!="number")return W.destroy(new Error("Invalid messageId")),!1;H+=2;let se=null;if(X===5){if(se=le(W,L),!se)return!1;H+=se.length}if(typeof pe=="object"&&pe.length)for(let ve=0;ve2)return W.destroy(new Error("Invalid subscriptions - invalid Retain Handling")),!1}H+=a.byteLength(Ee)+2+1}else return W.destroy(new Error("Invalid subscriptions")),!1;e("subscribe: writing to stream: %o",s.SUBSCRIBE_HEADER),W.write(s.SUBSCRIBE_HEADER[1][re?1:0][0]),G(W,H),b(W,we),se!==null&&se.write();let be=!0;for(let ve of pe){let Ee=ve.topic,Q=ve.qos,_e=+ve.nl,Oe=+ve.rap,fe=ve.rh,Be;q(W,Ee),Be=s.SUBSCRIBE_OPTIONS_QOS[Q],X===5&&(Be|=_e?s.SUBSCRIBE_OPTIONS_NL:0,Be|=Oe?s.SUBSCRIBE_OPTIONS_RAP:0,Be|=fe?s.SUBSCRIBE_OPTIONS_RH[fe]:0),be=W.write(a.from([Be]))}return be}function w(Y,W,oe){let X=oe?oe.protocolVersion:4,J=Y||{},re=J.messageId,we=J.granted,pe=J.properties,L=0;if(typeof re!="number")return W.destroy(new Error("Invalid messageId")),!1;if(L+=2,typeof we=="object"&&we.length)for(let se=0;ses.VARBYTEINT_MAX)return Y.destroy(new Error(`Invalid variable byte integer: ${W}`)),!1;let oe=z[W];return oe||(oe=p(W),W<16384&&(z[W]=oe)),e("writeVarByteInt: writing to stream: %o",oe),Y.write(oe)}function q(Y,W){let oe=a.byteLength(W);return b(Y,oe),e("writeString: %s",W),Y.write(W,"utf8")}function he(Y,W,oe){q(Y,W),q(Y,oe)}function ne(Y,W){return e("writeNumberCached: number: %d",W),e("writeNumberCached: %o",i[W]),Y.write(i[W])}function te(Y,W){let oe=l(W);return e("writeNumberGenerated: %o",oe),Y.write(oe)}function ce(Y,W){let oe=g(W);return e("write4ByteNumber: %o",oe),Y.write(oe)}function V(Y,W){typeof W=="string"?q(Y,W):W?(b(Y,W.length),Y.write(W)):b(Y,0)}function le(Y,W){if(typeof W!="object"||W.length!=null)return{length:1,write(){Z(Y,{},0)}};let oe=0;function X(J,re){let we=s.propertiesTypes[J],pe=0;switch(we){case"byte":{if(typeof re!="boolean")return Y.destroy(new Error(`Invalid ${J}: ${re}`)),!1;pe+=2;break}case"int8":{if(typeof re!="number"||re<0||re>255)return Y.destroy(new Error(`Invalid ${J}: ${re}`)),!1;pe+=2;break}case"binary":{if(re&&re===null)return Y.destroy(new Error(`Invalid ${J}: ${re}`)),!1;pe+=1+a.byteLength(re)+2;break}case"int16":{if(typeof re!="number"||re<0||re>65535)return Y.destroy(new Error(`Invalid ${J}: ${re}`)),!1;pe+=3;break}case"int32":{if(typeof re!="number"||re<0||re>4294967295)return Y.destroy(new Error(`Invalid ${J}: ${re}`)),!1;pe+=5;break}case"var":{if(typeof re!="number"||re<0||re>268435455)return Y.destroy(new Error(`Invalid ${J}: ${re}`)),!1;pe+=1+a.byteLength(p(re));break}case"string":{if(typeof re!="string")return Y.destroy(new Error(`Invalid ${J}: ${re}`)),!1;pe+=3+a.byteLength(re.toString());break}case"pair":{if(typeof re!="object")return Y.destroy(new Error(`Invalid ${J}: ${re}`)),!1;pe+=Object.getOwnPropertyNames(re).reduce((L,H)=>{let se=re[H];return Array.isArray(se)?L+=se.reduce((be,ve)=>(be+=3+a.byteLength(H.toString())+2+a.byteLength(ve.toString()),be),0):L+=3+a.byteLength(H.toString())+2+a.byteLength(re[H].toString()),L},0);break}default:return Y.destroy(new Error(`Invalid property ${J}: ${re}`)),!1}return pe}if(W)for(let J in W){let re=0,we=0,pe=W[J];if(pe!==void 0){if(Array.isArray(pe))for(let L=0;Lre;){let pe=J.shift();if(pe&&W[pe])delete W[pe],we=le(Y,W);else return!1}return we}function ee(Y,W,oe){switch(s.propertiesTypes[W]){case"byte":{Y.write(a.from([s.properties[W]])),Y.write(a.from([+oe]));break}case"int8":{Y.write(a.from([s.properties[W]])),Y.write(a.from([oe]));break}case"binary":{Y.write(a.from([s.properties[W]])),V(Y,oe);break}case"int16":{Y.write(a.from([s.properties[W]])),b(Y,oe);break}case"int32":{Y.write(a.from([s.properties[W]])),ce(Y,oe);break}case"var":{Y.write(a.from([s.properties[W]])),G(Y,oe);break}case"string":{Y.write(a.from([s.properties[W]])),q(Y,oe);break}case"pair":{Object.getOwnPropertyNames(oe).forEach(X=>{let J=oe[X];Array.isArray(J)?J.forEach(re=>{Y.write(a.from([s.properties[W]])),he(Y,X.toString(),re.toString())}):(Y.write(a.from([s.properties[W]])),he(Y,X.toString(),J.toString()))});break}default:return Y.destroy(new Error(`Invalid property ${W} value: ${oe}`)),!1}}function Z(Y,W,oe){G(Y,oe);for(let X in W)if(Object.prototype.hasOwnProperty.call(W,X)&&W[X]!=null){let J=W[X];if(Array.isArray(J))for(let re=0;re{ge(),me(),ye();var s=ua(),{EventEmitter:a}=(Zt(),Ke(qt)),{Buffer:c}=(st(),Ke(ot));function n(t,e){let i=new r;return s(t,i,e),i.concat()}var r=class extends a{constructor(){super(),this._array=new Array(20),this._i=0}write(t){return this._array[this._i++]=t,!0}concat(){let t=0,e=new Array(this._array.length),i=this._array,l=0,d;for(d=0;d{ge(),me(),ye(),f.parser=iu().parser,f.generate=au(),f.writeToStream=ua()}),uu=Se((f,h)=>{ge(),me(),ye(),h.exports=a;function s(n){return n instanceof Gr?Gr.from(n):new n.constructor(n.buffer.slice(),n.byteOffset,n.length)}function a(n){if(n=n||{},n.circles)return c(n);let r=new Map;if(r.set(Date,d=>new Date(d)),r.set(Map,(d,p)=>new Map(e(Array.from(d),p))),r.set(Set,(d,p)=>new Set(e(Array.from(d),p))),n.constructorHandlers)for(let d of n.constructorHandlers)r.set(d[0],d[1]);let t=null;return n.proto?l:i;function e(d,p){let g=Object.keys(d),b=new Array(g.length);for(let E=0;Enew Date(g)),e.set(Map,(g,b)=>new Map(l(Array.from(g),b))),e.set(Set,(g,b)=>new Set(l(Array.from(g),b))),n.constructorHandlers)for(let g of n.constructorHandlers)e.set(g[0],g[1]);let i=null;return n.proto?p:d;function l(g,b){let E=Object.keys(g),S=new Array(E.length);for(let x=0;x{ge(),me(),ye(),h.exports=uu()()}),hu=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0}),f.validateTopic=h,f.validateTopics=s;function h(a){let c=a.split("/");for(let n=0;n{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0});var h=tr(),s={objectMode:!0},a={clean:!0},c=class{options;_inflights;constructor(n){this.options=n||{},this.options={...a,...n},this._inflights=new Map}put(n,r){return this._inflights.set(n.messageId,n),r&&r(),this}createStream(){let n=new h.Readable(s),r=[],t=!1,e=0;return this._inflights.forEach((i,l)=>{r.push(i)}),n._read=()=>{!t&&e{if(!t)return t=!0,setTimeout(()=>{n.emit("close")},0),n},n}del(n,r){let t=this._inflights.get(n.messageId);return t?(this._inflights.delete(n.messageId),r(null,t)):r&&r(new Error("missing packet")),this}get(n,r){let t=this._inflights.get(n.messageId);return t?r(null,t):r&&r(new Error("missing packet")),this}close(n){this.options.clean&&(this._inflights=null),n&&n()}};f.default=c}),fu=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0});var h=[0,16,128,131,135,144,145,151,153],s=(a,c,n)=>{a.log("handlePublish: packet %o",c),n=typeof n<"u"?n:a.noop;let r=c.topic.toString(),t=c.payload,{qos:e}=c,{messageId:i}=c,{options:l}=a;if(a.options.protocolVersion===5){let d;if(c.properties&&(d=c.properties.topicAlias),typeof d<"u")if(r.length===0)if(d>0&&d<=65535){let p=a.topicAliasRecv.getTopicByAlias(d);if(p)r=p,a.log("handlePublish :: topic complemented by alias. topic: %s - alias: %d",r,d);else{a.log("handlePublish :: unregistered topic alias. alias: %d",d),a.emit("error",new Error("Received unregistered Topic Alias"));return}}else{a.log("handlePublish :: topic alias out of range. alias: %d",d),a.emit("error",new Error("Received Topic Alias is out of range"));return}else if(a.topicAliasRecv.put(r,d))a.log("handlePublish :: registered topic: %s - alias: %d",r,d);else{a.log("handlePublish :: topic alias out of range. alias: %d",d),a.emit("error",new Error("Received Topic Alias is out of range"));return}}switch(a.log("handlePublish: qos %d",e),e){case 2:{l.customHandleAcks(r,t,c,(d,p)=>{if(typeof d=="number"&&(p=d,d=null),d)return a.emit("error",d);if(h.indexOf(p)===-1)return a.emit("error",new Error("Wrong reason code for pubrec"));p?a._sendPacket({cmd:"pubrec",messageId:i,reasonCode:p},n):a.incomingStore.put(c,()=>{a._sendPacket({cmd:"pubrec",messageId:i},n)})});break}case 1:{l.customHandleAcks(r,t,c,(d,p)=>{if(typeof d=="number"&&(p=d,d=null),d)return a.emit("error",d);if(h.indexOf(p)===-1)return a.emit("error",new Error("Wrong reason code for puback"));p||a.emit("message",r,t,c),a.handleMessage(c,g=>{if(g)return n&&n(g);a._sendPacket({cmd:"puback",messageId:i,reasonCode:p},n)})});break}case 0:a.emit("message",r,t,c),a.handleMessage(c,n);break;default:a.log("handlePublish: unknown QoS. Doing nothing.");break}};f.default=s}),pu=Se((f,h)=>{h.exports={version:"5.14.0"}}),ar=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0}),f.MQTTJS_VERSION=f.nextTick=f.ErrorWithSubackPacket=f.ErrorWithReasonCode=void 0,f.applyMixin=a;var h=class ha extends Error{code;constructor(n,r){super(n),this.code=r,Object.setPrototypeOf(this,ha.prototype),Object.getPrototypeOf(this).name="ErrorWithReasonCode"}};f.ErrorWithReasonCode=h;var s=class fa extends Error{packet;constructor(n,r){super(n),this.packet=r,Object.setPrototypeOf(this,fa.prototype),Object.getPrototypeOf(this).name="ErrorWithSubackPacket"}};f.ErrorWithSubackPacket=s;function a(c,n,r=!1){let t=[n];for(;;){let e=t[0],i=Object.getPrototypeOf(e);if(i?.prototype)t.unshift(i);else break}for(let e of t)for(let i of Object.getOwnPropertyNames(e.prototype))(r||i!=="constructor")&&Object.defineProperty(c.prototype,i,Object.getOwnPropertyDescriptor(e.prototype,i)??Object.create(null))}f.nextTick=typeof Ge?.nextTick=="function"?Ge.nextTick:c=>{setTimeout(c,0)},f.MQTTJS_VERSION=pu().version}),Zr=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0}),f.ReasonCodes=void 0;var h=ar();f.ReasonCodes={0:"",1:"Unacceptable protocol version",2:"Identifier rejected",3:"Server unavailable",4:"Bad username or password",5:"Not authorized",16:"No matching subscribers",17:"No subscription existed",128:"Unspecified error",129:"Malformed Packet",130:"Protocol Error",131:"Implementation specific error",132:"Unsupported Protocol Version",133:"Client Identifier not valid",134:"Bad User Name or Password",135:"Not authorized",136:"Server unavailable",137:"Server busy",138:"Banned",139:"Server shutting down",140:"Bad authentication method",141:"Keep Alive timeout",142:"Session taken over",143:"Topic Filter invalid",144:"Topic Name invalid",145:"Packet identifier in use",146:"Packet Identifier not found",147:"Receive Maximum exceeded",148:"Topic Alias invalid",149:"Packet too large",150:"Message rate too high",151:"Quota exceeded",152:"Administrative action",153:"Payload format invalid",154:"Retain not supported",155:"QoS not supported",156:"Use another server",157:"Server moved",158:"Shared Subscriptions not supported",159:"Connection rate exceeded",160:"Maximum connect time",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"};var s=(a,c)=>{let{messageId:n}=c,r=c.cmd,t=null,e=a.outgoing[n]?a.outgoing[n].cb:null,i=null;if(!e){a.log("_handleAck :: Server sent an ack in error. Ignoring.");return}switch(a.log("_handleAck :: packet type",r),r){case"pubcomp":case"puback":{let l=c.reasonCode;l&&l>0&&l!==16?(i=new h.ErrorWithReasonCode(`Publish error: ${f.ReasonCodes[l]}`,l),a._removeOutgoingAndStoreMessage(n,()=>{e(i,c)})):a._removeOutgoingAndStoreMessage(n,e);break}case"pubrec":{t={cmd:"pubrel",qos:2,messageId:n};let l=c.reasonCode;l&&l>0&&l!==16?(i=new h.ErrorWithReasonCode(`Publish error: ${f.ReasonCodes[l]}`,l),a._removeOutgoingAndStoreMessage(n,()=>{e(i,c)})):a._sendPacket(t);break}case"suback":{delete a.outgoing[n],a.messageIdProvider.deallocate(n);let l=c.granted;for(let d=0;d{delete a._resubscribeTopics[b]})}}delete a.messageIdToTopic[n],a._invokeStoreProcessingQueue(),e(i,c);break}case"unsuback":{delete a.outgoing[n],a.messageIdProvider.deallocate(n),a._invokeStoreProcessingQueue(),e(null,c);break}default:a.emit("error",new Error("unrecognized packet type"))}a.disconnecting&&Object.keys(a.outgoing).length===0&&a.emit("outgoingEmpty")};f.default=s}),du=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0});var h=ar(),s=Zr(),a=(c,n)=>{let{options:r}=c,t=r.protocolVersion,e=t===5?n.reasonCode:n.returnCode;if(t!==5){let i=new h.ErrorWithReasonCode(`Protocol error: Auth packets are only supported in MQTT 5. Your version:${t}`,e);c.emit("error",i);return}c.handleAuth(n,(i,l)=>{if(i){c.emit("error",i);return}if(e===24)c.reconnecting=!1,c._sendPacket(l);else{let d=new h.ErrorWithReasonCode(`Connection refused: ${s.ReasonCodes[e]}`,e);c.emit("error",d)}})};f.default=a}),gu=Se(f=>{var g,b,E,S,x,y,v,A,_,R,w,O,T,M,U,k,z,G,q,he,ne,te,ce,V,le,B,ee,Z,yi,Ae,Y,W,oe,pa,J,re,we,Lt,Dt,mi,Er,Ar,Ye,bi,fr,Ft,vi,fe;ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0}),f.LRUCache=void 0;var h=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,s=new Set,a=typeof Ge=="object"&&Ge?Ge:{},c=(Be,o,u,m)=>{typeof a.emitWarning=="function"?a.emitWarning(Be,o,u,m):console.error(`[${u}] ${o}: ${Be}`)},n=globalThis.AbortController,r=globalThis.AbortSignal;if(typeof n>"u"){r=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(u,m){this._onabort.push(m)}},n=class{constructor(){o()}signal=new r;abort(u){if(!this.signal.aborted){this.signal.reason=u,this.signal.aborted=!0;for(let m of this.signal._onabort)m(u);this.signal.onabort?.(u)}}};let Be=a.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",o=()=>{Be&&(Be=!1,c("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",o))}}var t=Be=>!s.has(Be),e=Be=>Be&&Be===Math.floor(Be)&&Be>0&&isFinite(Be),i=Be=>e(Be)?Be<=Math.pow(2,8)?Uint8Array:Be<=Math.pow(2,16)?Uint16Array:Be<=Math.pow(2,32)?Uint32Array:Be<=Number.MAX_SAFE_INTEGER?l:null:null,l=class extends Array{constructor(Be){super(Be),this.fill(0)}},d=(g=class{heap;length;static create(o){let u=i(o);if(!u)return[];De(g,b,!0);let m=new g(o,u);return De(g,b,!1),m}constructor(o,u){if(!D(g,b))throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new u(o),this.length=0}push(o){this.heap[this.length++]=o}pop(){return this.heap[--this.length]}},b=new WeakMap,qe(g,b,!1),g),p=(fe=class{constructor(o){qe(this,Z);qe(this,x);qe(this,y);qe(this,v);qe(this,A);qe(this,_);qe(this,R);it(this,"ttl");it(this,"ttlResolution");it(this,"ttlAutopurge");it(this,"updateAgeOnGet");it(this,"updateAgeOnHas");it(this,"allowStale");it(this,"noDisposeOnSet");it(this,"noUpdateTTL");it(this,"maxEntrySize");it(this,"sizeCalculation");it(this,"noDeleteOnFetchRejection");it(this,"noDeleteOnStaleGet");it(this,"allowStaleOnFetchAbort");it(this,"allowStaleOnFetchRejection");it(this,"ignoreFetchAbort");qe(this,w);qe(this,O);qe(this,T);qe(this,M);qe(this,U);qe(this,k);qe(this,z);qe(this,G);qe(this,q);qe(this,he);qe(this,ne);qe(this,te);qe(this,ce);qe(this,V);qe(this,le);qe(this,B);qe(this,ee);qe(this,Ae,()=>{});qe(this,Y,()=>{});qe(this,W,()=>{});qe(this,oe,()=>!1);qe(this,J,o=>{});qe(this,re,(o,u,m)=>{});qe(this,we,(o,u,m,C)=>{if(m||C)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0});it(this,E,"LRUCache");let{max:u=0,ttl:m,ttlResolution:C=1,ttlAutopurge:N,updateAgeOnGet:K,updateAgeOnHas:de,allowStale:$,dispose:ie,disposeAfter:Re,noDisposeOnSet:Te,noUpdateTTL:Le,maxSize:Ue=0,maxEntrySize:Xe=0,sizeCalculation:Fe,fetchMethod:We,memoMethod:je,noDeleteOnFetchRejection:tt,noDeleteOnStaleGet:He,allowStaleOnFetchRejection:$e,allowStaleOnFetchAbort:nt,ignoreFetchAbort:dt}=o;if(u!==0&&!e(u))throw new TypeError("max option must be a nonnegative integer");let lt=u?i(u):Array;if(!lt)throw new Error("invalid max value: "+u);if(De(this,x,u),De(this,y,Ue),this.maxEntrySize=Xe||D(this,y),this.sizeCalculation=Fe,this.sizeCalculation){if(!D(this,y)&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(je!==void 0&&typeof je!="function")throw new TypeError("memoMethod must be a function if defined");if(De(this,R,je),We!==void 0&&typeof We!="function")throw new TypeError("fetchMethod must be a function if specified");if(De(this,_,We),De(this,B,!!We),De(this,T,new Map),De(this,M,new Array(u).fill(void 0)),De(this,U,new Array(u).fill(void 0)),De(this,k,new lt(u)),De(this,z,new lt(u)),De(this,G,0),De(this,q,0),De(this,he,d.create(u)),De(this,w,0),De(this,O,0),typeof ie=="function"&&De(this,v,ie),typeof Re=="function"?(De(this,A,Re),De(this,ne,[])):(De(this,A,void 0),De(this,ne,void 0)),De(this,le,!!D(this,v)),De(this,ee,!!D(this,A)),this.noDisposeOnSet=!!Te,this.noUpdateTTL=!!Le,this.noDeleteOnFetchRejection=!!tt,this.allowStaleOnFetchRejection=!!$e,this.allowStaleOnFetchAbort=!!nt,this.ignoreFetchAbort=!!dt,this.maxEntrySize!==0){if(D(this,y)!==0&&!e(D(this,y)))throw new TypeError("maxSize must be a positive integer if specified");if(!e(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");Ne(this,Z,pa).call(this)}if(this.allowStale=!!$,this.noDeleteOnStaleGet=!!He,this.updateAgeOnGet=!!K,this.updateAgeOnHas=!!de,this.ttlResolution=e(C)||C===0?C:1,this.ttlAutopurge=!!N,this.ttl=m||0,this.ttl){if(!e(this.ttl))throw new TypeError("ttl must be a positive integer if specified");Ne(this,Z,yi).call(this)}if(D(this,x)===0&&this.ttl===0&&D(this,y)===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!D(this,x)&&!D(this,y)){let j="LRU_CACHE_UNBOUNDED";t(j)&&(s.add(j),c("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",j,fe))}}static unsafeExposeInternals(o){return{starts:D(o,ce),ttls:D(o,V),sizes:D(o,te),keyMap:D(o,T),keyList:D(o,M),valList:D(o,U),next:D(o,k),prev:D(o,z),get head(){return D(o,G)},get tail(){return D(o,q)},free:D(o,he),isBackgroundFetch:u=>{var m;return Ne(m=o,Z,Ye).call(m,u)},backgroundFetch:(u,m,C,N)=>{var K;return Ne(K=o,Z,Ar).call(K,u,m,C,N)},moveToTail:u=>{var m;return Ne(m=o,Z,fr).call(m,u)},indexes:u=>{var m;return Ne(m=o,Z,Lt).call(m,u)},rindexes:u=>{var m;return Ne(m=o,Z,Dt).call(m,u)},isStale:u=>{var m;return D(m=o,oe).call(m,u)}}}get max(){return D(this,x)}get maxSize(){return D(this,y)}get calculatedSize(){return D(this,O)}get size(){return D(this,w)}get fetchMethod(){return D(this,_)}get memoMethod(){return D(this,R)}get dispose(){return D(this,v)}get disposeAfter(){return D(this,A)}getRemainingTTL(o){return D(this,T).has(o)?1/0:0}*entries(){for(let o of Ne(this,Z,Lt).call(this))D(this,U)[o]!==void 0&&D(this,M)[o]!==void 0&&!Ne(this,Z,Ye).call(this,D(this,U)[o])&&(yield[D(this,M)[o],D(this,U)[o]])}*rentries(){for(let o of Ne(this,Z,Dt).call(this))D(this,U)[o]!==void 0&&D(this,M)[o]!==void 0&&!Ne(this,Z,Ye).call(this,D(this,U)[o])&&(yield[D(this,M)[o],D(this,U)[o]])}*keys(){for(let o of Ne(this,Z,Lt).call(this)){let u=D(this,M)[o];u!==void 0&&!Ne(this,Z,Ye).call(this,D(this,U)[o])&&(yield u)}}*rkeys(){for(let o of Ne(this,Z,Dt).call(this)){let u=D(this,M)[o];u!==void 0&&!Ne(this,Z,Ye).call(this,D(this,U)[o])&&(yield u)}}*values(){for(let o of Ne(this,Z,Lt).call(this))D(this,U)[o]!==void 0&&!Ne(this,Z,Ye).call(this,D(this,U)[o])&&(yield D(this,U)[o])}*rvalues(){for(let o of Ne(this,Z,Dt).call(this))D(this,U)[o]!==void 0&&!Ne(this,Z,Ye).call(this,D(this,U)[o])&&(yield D(this,U)[o])}[(S=Symbol.iterator,E=Symbol.toStringTag,S)](){return this.entries()}find(o,u={}){for(let m of Ne(this,Z,Lt).call(this)){let C=D(this,U)[m],N=Ne(this,Z,Ye).call(this,C)?C.__staleWhileFetching:C;if(N!==void 0&&o(N,D(this,M)[m],this))return this.get(D(this,M)[m],u)}}forEach(o,u=this){for(let m of Ne(this,Z,Lt).call(this)){let C=D(this,U)[m],N=Ne(this,Z,Ye).call(this,C)?C.__staleWhileFetching:C;N!==void 0&&o.call(u,N,D(this,M)[m],this)}}rforEach(o,u=this){for(let m of Ne(this,Z,Dt).call(this)){let C=D(this,U)[m],N=Ne(this,Z,Ye).call(this,C)?C.__staleWhileFetching:C;N!==void 0&&o.call(u,N,D(this,M)[m],this)}}purgeStale(){let o=!1;for(let u of Ne(this,Z,Dt).call(this,{allowStale:!0}))D(this,oe).call(this,u)&&(Ne(this,Z,Ft).call(this,D(this,M)[u],"expire"),o=!0);return o}info(o){let u=D(this,T).get(o);if(u===void 0)return;let m=D(this,U)[u],C=Ne(this,Z,Ye).call(this,m)?m.__staleWhileFetching:m;if(C===void 0)return;let N={value:C};if(D(this,V)&&D(this,ce)){let K=D(this,V)[u],de=D(this,ce)[u];if(K&&de){let $=K-(h.now()-de);N.ttl=$,N.start=Date.now()}}return D(this,te)&&(N.size=D(this,te)[u]),N}dump(){let o=[];for(let u of Ne(this,Z,Lt).call(this,{allowStale:!0})){let m=D(this,M)[u],C=D(this,U)[u],N=Ne(this,Z,Ye).call(this,C)?C.__staleWhileFetching:C;if(N===void 0||m===void 0)continue;let K={value:N};if(D(this,V)&&D(this,ce)){K.ttl=D(this,V)[u];let de=h.now()-D(this,ce)[u];K.start=Math.floor(Date.now()-de)}D(this,te)&&(K.size=D(this,te)[u]),o.unshift([m,K])}return o}load(o){this.clear();for(let[u,m]of o){if(m.start){let C=Date.now()-m.start;m.start=h.now()-C}this.set(u,m.value,m)}}set(o,u,m={}){var Le,Ue,Xe;if(u===void 0)return this.delete(o),this;let{ttl:C=this.ttl,start:N,noDisposeOnSet:K=this.noDisposeOnSet,sizeCalculation:de=this.sizeCalculation,status:$}=m,{noUpdateTTL:ie=this.noUpdateTTL}=m,Re=D(this,we).call(this,o,u,m.size||0,de);if(this.maxEntrySize&&Re>this.maxEntrySize)return $&&($.set="miss",$.maxEntrySizeExceeded=!0),Ne(this,Z,Ft).call(this,o,"set"),this;let Te=D(this,w)===0?void 0:D(this,T).get(o);if(Te===void 0)Te=D(this,w)===0?D(this,q):D(this,he).length!==0?D(this,he).pop():D(this,w)===D(this,x)?Ne(this,Z,Er).call(this,!1):D(this,w),D(this,M)[Te]=o,D(this,U)[Te]=u,D(this,T).set(o,Te),D(this,k)[D(this,q)]=Te,D(this,z)[Te]=D(this,q),De(this,q,Te),br(this,w)._++,D(this,re).call(this,Te,Re,$),$&&($.set="add"),ie=!1;else{Ne(this,Z,fr).call(this,Te);let Fe=D(this,U)[Te];if(u!==Fe){if(D(this,B)&&Ne(this,Z,Ye).call(this,Fe)){Fe.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:We}=Fe;We!==void 0&&!K&&(D(this,le)&&((Le=D(this,v))==null||Le.call(this,We,o,"set")),D(this,ee)&&D(this,ne)?.push([We,o,"set"]))}else K||(D(this,le)&&((Ue=D(this,v))==null||Ue.call(this,Fe,o,"set")),D(this,ee)&&D(this,ne)?.push([Fe,o,"set"]));if(D(this,J).call(this,Te),D(this,re).call(this,Te,Re,$),D(this,U)[Te]=u,$){$.set="replace";let We=Fe&&Ne(this,Z,Ye).call(this,Fe)?Fe.__staleWhileFetching:Fe;We!==void 0&&($.oldValue=We)}}else $&&($.set="update")}if(C!==0&&!D(this,V)&&Ne(this,Z,yi).call(this),D(this,V)&&(ie||D(this,W).call(this,Te,C,N),$&&D(this,Y).call(this,$,Te)),!K&&D(this,ee)&&D(this,ne)){let Fe=D(this,ne),We;for(;We=Fe?.shift();)(Xe=D(this,A))==null||Xe.call(this,...We)}return this}pop(){var o;try{for(;D(this,w);){let u=D(this,U)[D(this,G)];if(Ne(this,Z,Er).call(this,!0),Ne(this,Z,Ye).call(this,u)){if(u.__staleWhileFetching)return u.__staleWhileFetching}else if(u!==void 0)return u}}finally{if(D(this,ee)&&D(this,ne)){let u=D(this,ne),m;for(;m=u?.shift();)(o=D(this,A))==null||o.call(this,...m)}}}has(o,u={}){let{updateAgeOnHas:m=this.updateAgeOnHas,status:C}=u,N=D(this,T).get(o);if(N!==void 0){let K=D(this,U)[N];if(Ne(this,Z,Ye).call(this,K)&&K.__staleWhileFetching===void 0)return!1;if(D(this,oe).call(this,N))C&&(C.has="stale",D(this,Y).call(this,C,N));else return m&&D(this,Ae).call(this,N),C&&(C.has="hit",D(this,Y).call(this,C,N)),!0}else C&&(C.has="miss");return!1}peek(o,u={}){let{allowStale:m=this.allowStale}=u,C=D(this,T).get(o);if(C===void 0||!m&&D(this,oe).call(this,C))return;let N=D(this,U)[C];return Ne(this,Z,Ye).call(this,N)?N.__staleWhileFetching:N}async fetch(o,u={}){let{allowStale:m=this.allowStale,updateAgeOnGet:C=this.updateAgeOnGet,noDeleteOnStaleGet:N=this.noDeleteOnStaleGet,ttl:K=this.ttl,noDisposeOnSet:de=this.noDisposeOnSet,size:$=0,sizeCalculation:ie=this.sizeCalculation,noUpdateTTL:Re=this.noUpdateTTL,noDeleteOnFetchRejection:Te=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:Le=this.allowStaleOnFetchRejection,ignoreFetchAbort:Ue=this.ignoreFetchAbort,allowStaleOnFetchAbort:Xe=this.allowStaleOnFetchAbort,context:Fe,forceRefresh:We=!1,status:je,signal:tt}=u;if(!D(this,B))return je&&(je.fetch="get"),this.get(o,{allowStale:m,updateAgeOnGet:C,noDeleteOnStaleGet:N,status:je});let He={allowStale:m,updateAgeOnGet:C,noDeleteOnStaleGet:N,ttl:K,noDisposeOnSet:de,size:$,sizeCalculation:ie,noUpdateTTL:Re,noDeleteOnFetchRejection:Te,allowStaleOnFetchRejection:Le,allowStaleOnFetchAbort:Xe,ignoreFetchAbort:Ue,status:je,signal:tt},$e=D(this,T).get(o);if($e===void 0){je&&(je.fetch="miss");let nt=Ne(this,Z,Ar).call(this,o,$e,He,Fe);return nt.__returned=nt}else{let nt=D(this,U)[$e];if(Ne(this,Z,Ye).call(this,nt)){let F=m&&nt.__staleWhileFetching!==void 0;return je&&(je.fetch="inflight",F&&(je.returnedStale=!0)),F?nt.__staleWhileFetching:nt.__returned=nt}let dt=D(this,oe).call(this,$e);if(!We&&!dt)return je&&(je.fetch="hit"),Ne(this,Z,fr).call(this,$e),C&&D(this,Ae).call(this,$e),je&&D(this,Y).call(this,je,$e),nt;let lt=Ne(this,Z,Ar).call(this,o,$e,He,Fe),j=lt.__staleWhileFetching!==void 0&&m;return je&&(je.fetch=dt?"stale":"refresh",j&&dt&&(je.returnedStale=!0)),j?lt.__staleWhileFetching:lt.__returned=lt}}async forceFetch(o,u={}){let m=await this.fetch(o,u);if(m===void 0)throw new Error("fetch() returned undefined");return m}memo(o,u={}){let m=D(this,R);if(!m)throw new Error("no memoMethod provided to constructor");let{context:C,forceRefresh:N,...K}=u,de=this.get(o,K);if(!N&&de!==void 0)return de;let $=m(o,de,{options:K,context:C});return this.set(o,$,K),$}get(o,u={}){let{allowStale:m=this.allowStale,updateAgeOnGet:C=this.updateAgeOnGet,noDeleteOnStaleGet:N=this.noDeleteOnStaleGet,status:K}=u,de=D(this,T).get(o);if(de!==void 0){let $=D(this,U)[de],ie=Ne(this,Z,Ye).call(this,$);return K&&D(this,Y).call(this,K,de),D(this,oe).call(this,de)?(K&&(K.get="stale"),ie?(K&&m&&$.__staleWhileFetching!==void 0&&(K.returnedStale=!0),m?$.__staleWhileFetching:void 0):(N||Ne(this,Z,Ft).call(this,o,"expire"),K&&m&&(K.returnedStale=!0),m?$:void 0)):(K&&(K.get="hit"),ie?$.__staleWhileFetching:(Ne(this,Z,fr).call(this,de),C&&D(this,Ae).call(this,de),$))}else K&&(K.get="miss")}delete(o){return Ne(this,Z,Ft).call(this,o,"delete")}clear(){return Ne(this,Z,vi).call(this,"delete")}},x=new WeakMap,y=new WeakMap,v=new WeakMap,A=new WeakMap,_=new WeakMap,R=new WeakMap,w=new WeakMap,O=new WeakMap,T=new WeakMap,M=new WeakMap,U=new WeakMap,k=new WeakMap,z=new WeakMap,G=new WeakMap,q=new WeakMap,he=new WeakMap,ne=new WeakMap,te=new WeakMap,ce=new WeakMap,V=new WeakMap,le=new WeakMap,B=new WeakMap,ee=new WeakMap,Z=new WeakSet,yi=function(){let o=new l(D(this,x)),u=new l(D(this,x));De(this,V,o),De(this,ce,u),De(this,W,(N,K,de=h.now())=>{if(u[N]=K!==0?de:0,o[N]=K,K!==0&&this.ttlAutopurge){let $=setTimeout(()=>{D(this,oe).call(this,N)&&Ne(this,Z,Ft).call(this,D(this,M)[N],"expire")},K+1);$.unref&&$.unref()}}),De(this,Ae,N=>{u[N]=o[N]!==0?h.now():0}),De(this,Y,(N,K)=>{if(o[K]){let de=o[K],$=u[K];if(!de||!$)return;N.ttl=de,N.start=$,N.now=m||C();let ie=N.now-$;N.remainingTTL=de-ie}});let m=0,C=()=>{let N=h.now();if(this.ttlResolution>0){m=N;let K=setTimeout(()=>m=0,this.ttlResolution);K.unref&&K.unref()}return N};this.getRemainingTTL=N=>{let K=D(this,T).get(N);if(K===void 0)return 0;let de=o[K],$=u[K];if(!de||!$)return 1/0;let ie=(m||C())-$;return de-ie},De(this,oe,N=>{let K=u[N],de=o[N];return!!de&&!!K&&(m||C())-K>de})},Ae=new WeakMap,Y=new WeakMap,W=new WeakMap,oe=new WeakMap,pa=function(){let o=new l(D(this,x));De(this,O,0),De(this,te,o),De(this,J,u=>{De(this,O,D(this,O)-o[u]),o[u]=0}),De(this,we,(u,m,C,N)=>{if(Ne(this,Z,Ye).call(this,m))return 0;if(!e(C))if(N){if(typeof N!="function")throw new TypeError("sizeCalculation must be a function");if(C=N(m,u),!e(C))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return C}),De(this,re,(u,m,C)=>{if(o[u]=m,D(this,y)){let N=D(this,y)-o[u];for(;D(this,O)>N;)Ne(this,Z,Er).call(this,!0)}De(this,O,D(this,O)+o[u]),C&&(C.entrySize=m,C.totalCalculatedSize=D(this,O))})},J=new WeakMap,re=new WeakMap,we=new WeakMap,Lt=function*({allowStale:o=this.allowStale}={}){if(D(this,w))for(let u=D(this,q);!(!Ne(this,Z,mi).call(this,u)||((o||!D(this,oe).call(this,u))&&(yield u),u===D(this,G)));)u=D(this,z)[u]},Dt=function*({allowStale:o=this.allowStale}={}){if(D(this,w))for(let u=D(this,G);!(!Ne(this,Z,mi).call(this,u)||((o||!D(this,oe).call(this,u))&&(yield u),u===D(this,q)));)u=D(this,k)[u]},mi=function(o){return o!==void 0&&D(this,T).get(D(this,M)[o])===o},Er=function(o){var N;let u=D(this,G),m=D(this,M)[u],C=D(this,U)[u];return D(this,B)&&Ne(this,Z,Ye).call(this,C)?C.__abortController.abort(new Error("evicted")):(D(this,le)||D(this,ee))&&(D(this,le)&&((N=D(this,v))==null||N.call(this,C,m,"evict")),D(this,ee)&&D(this,ne)?.push([C,m,"evict"])),D(this,J).call(this,u),o&&(D(this,M)[u]=void 0,D(this,U)[u]=void 0,D(this,he).push(u)),D(this,w)===1?(De(this,G,De(this,q,0)),D(this,he).length=0):De(this,G,D(this,k)[u]),D(this,T).delete(m),br(this,w)._--,u},Ar=function(o,u,m,C){let N=u===void 0?void 0:D(this,U)[u];if(Ne(this,Z,Ye).call(this,N))return N;let K=new n,{signal:de}=m;de?.addEventListener("abort",()=>K.abort(de.reason),{signal:K.signal});let $={signal:K.signal,options:m,context:C},ie=(Fe,We=!1)=>{let{aborted:je}=K.signal,tt=m.ignoreFetchAbort&&Fe!==void 0;if(m.status&&(je&&!We?(m.status.fetchAborted=!0,m.status.fetchError=K.signal.reason,tt&&(m.status.fetchAbortIgnored=!0)):m.status.fetchResolved=!0),je&&!tt&&!We)return Te(K.signal.reason);let He=Ue;return D(this,U)[u]===Ue&&(Fe===void 0?He.__staleWhileFetching?D(this,U)[u]=He.__staleWhileFetching:Ne(this,Z,Ft).call(this,o,"fetch"):(m.status&&(m.status.fetchUpdated=!0),this.set(o,Fe,$.options))),Fe},Re=Fe=>(m.status&&(m.status.fetchRejected=!0,m.status.fetchError=Fe),Te(Fe)),Te=Fe=>{let{aborted:We}=K.signal,je=We&&m.allowStaleOnFetchAbort,tt=je||m.allowStaleOnFetchRejection,He=tt||m.noDeleteOnFetchRejection,$e=Ue;if(D(this,U)[u]===Ue&&(!He||$e.__staleWhileFetching===void 0?Ne(this,Z,Ft).call(this,o,"fetch"):je||(D(this,U)[u]=$e.__staleWhileFetching)),tt)return m.status&&$e.__staleWhileFetching!==void 0&&(m.status.returnedStale=!0),$e.__staleWhileFetching;if($e.__returned===$e)throw Fe},Le=(Fe,We)=>{var tt;let je=(tt=D(this,_))==null?void 0:tt.call(this,o,N,$);je&&je instanceof Promise&&je.then(He=>Fe(He===void 0?void 0:He),We),K.signal.addEventListener("abort",()=>{(!m.ignoreFetchAbort||m.allowStaleOnFetchAbort)&&(Fe(void 0),m.allowStaleOnFetchAbort&&(Fe=He=>ie(He,!0)))})};m.status&&(m.status.fetchDispatched=!0);let Ue=new Promise(Le).then(ie,Re),Xe=Object.assign(Ue,{__abortController:K,__staleWhileFetching:N,__returned:void 0});return u===void 0?(this.set(o,Xe,{...$.options,status:void 0}),u=D(this,T).get(o)):D(this,U)[u]=Xe,Xe},Ye=function(o){if(!D(this,B))return!1;let u=o;return!!u&&u instanceof Promise&&u.hasOwnProperty("__staleWhileFetching")&&u.__abortController instanceof n},bi=function(o,u){D(this,z)[u]=o,D(this,k)[o]=u},fr=function(o){o!==D(this,q)&&(o===D(this,G)?De(this,G,D(this,k)[o]):Ne(this,Z,bi).call(this,D(this,z)[o],D(this,k)[o]),Ne(this,Z,bi).call(this,D(this,q),o),De(this,q,o))},Ft=function(o,u){var C,N;let m=!1;if(D(this,w)!==0){let K=D(this,T).get(o);if(K!==void 0)if(m=!0,D(this,w)===1)Ne(this,Z,vi).call(this,u);else{D(this,J).call(this,K);let de=D(this,U)[K];if(Ne(this,Z,Ye).call(this,de)?de.__abortController.abort(new Error("deleted")):(D(this,le)||D(this,ee))&&(D(this,le)&&((C=D(this,v))==null||C.call(this,de,o,u)),D(this,ee)&&D(this,ne)?.push([de,o,u])),D(this,T).delete(o),D(this,M)[K]=void 0,D(this,U)[K]=void 0,K===D(this,q))De(this,q,D(this,z)[K]);else if(K===D(this,G))De(this,G,D(this,k)[K]);else{let $=D(this,z)[K];D(this,k)[$]=D(this,k)[K];let ie=D(this,k)[K];D(this,z)[ie]=D(this,z)[K]}br(this,w)._--,D(this,he).push(K)}}if(D(this,ee)&&D(this,ne)?.length){let K=D(this,ne),de;for(;de=K?.shift();)(N=D(this,A))==null||N.call(this,...de)}return m},vi=function(o){var u,m;for(let C of Ne(this,Z,Dt).call(this,{allowStale:!0})){let N=D(this,U)[C];if(Ne(this,Z,Ye).call(this,N))N.__abortController.abort(new Error("deleted"));else{let K=D(this,M)[C];D(this,le)&&((u=D(this,v))==null||u.call(this,N,K,o)),D(this,ee)&&D(this,ne)?.push([N,K,o])}}if(D(this,T).clear(),D(this,U).fill(void 0),D(this,M).fill(void 0),D(this,V)&&D(this,ce)&&(D(this,V).fill(0),D(this,ce).fill(0)),D(this,te)&&D(this,te).fill(0),De(this,G,0),De(this,q,0),D(this,he).length=0,De(this,O,0),De(this,w,0),D(this,ee)&&D(this,ne)){let C=D(this,ne),N;for(;N=C?.shift();)(m=D(this,A))==null||m.call(this,...N)}},fe);f.LRUCache=p}),Rt=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.ContainerIterator=f.Container=f.Base=void 0;var h=class{constructor(c=0){this.iteratorType=c}equals(c){return this.o===c.o}};f.ContainerIterator=h;var s=class{constructor(){this.i=0}get length(){return this.i}size(){return this.i}empty(){return this.i===0}};f.Base=s;var a=class extends s{};f.Container=a}),yu=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=Rt(),s=class extends h.Base{constructor(c=[]){super(),this.S=[];let n=this;c.forEach(function(r){n.push(r)})}clear(){this.i=0,this.S=[]}push(c){return this.S.push(c),this.i+=1,this.i}pop(){if(this.i!==0)return this.i-=1,this.S.pop()}top(){return this.S[this.i-1]}},a=s;f.default=a}),mu=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=Rt(),s=class extends h.Base{constructor(c=[]){super(),this.j=0,this.q=[];let n=this;c.forEach(function(r){n.push(r)})}clear(){this.q=[],this.i=this.j=0}push(c){let n=this.q.length;if(this.j/n>.5&&this.j+this.i>=n&&n>4096){let r=this.i;for(let t=0;t{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=Rt(),s=class extends h.Base{constructor(c=[],n=function(t,e){return t>e?-1:t>1;for(let e=this.i-1>>1;e>=0;--e)this.k(e,t)}m(c){let n=this.C[c];for(;c>0;){let r=c-1>>1,t=this.C[r];if(this.v(t,n)<=0)break;this.C[c]=t,c=r}this.C[c]=n}k(c,n){let r=this.C[c];for(;c0&&(t=e,i=this.C[e]),this.v(i,r)>=0)break;this.C[c]=i,c=t}this.C[c]=r}clear(){this.i=0,this.C.length=0}push(c){this.C.push(c),this.m(this.i),this.i+=1}pop(){if(this.i===0)return;let c=this.C[0],n=this.C.pop();return this.i-=1,this.i&&(this.C[0]=n,this.k(0,this.i>>1)),c}top(){return this.C[0]}find(c){return this.C.indexOf(c)>=0}remove(c){let n=this.C.indexOf(c);return n<0?!1:(n===0?this.pop():n===this.i-1?(this.C.pop(),this.i-=1):(this.C.splice(n,1,this.C.pop()),this.i-=1,this.m(n),this.k(n,this.i>>1)),!0)}updateItem(c){let n=this.C.indexOf(c);return n<0?!1:(this.m(n),this.k(n,this.i>>1),!0)}toArray(){return[...this.C]}},a=s;f.default=a}),po=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=Rt(),s=class extends h.Container{},a=s;f.default=a}),jt=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.throwIteratorAccessError=h;function h(){throw new RangeError("Iterator access denied!")}}),da=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.RandomIterator=void 0;var h=Rt(),s=jt(),a=class extends h.ContainerIterator{constructor(c,n){super(n),this.o=c,this.iteratorType===0?(this.pre=function(){return this.o===0&&(0,s.throwIteratorAccessError)(),this.o-=1,this},this.next=function(){return this.o===this.container.size()&&(0,s.throwIteratorAccessError)(),this.o+=1,this}):(this.pre=function(){return this.o===this.container.size()-1&&(0,s.throwIteratorAccessError)(),this.o+=1,this},this.next=function(){return this.o===-1&&(0,s.throwIteratorAccessError)(),this.o-=1,this})}get pointer(){return this.container.getElementByPos(this.o)}set pointer(c){this.container.setElementByPos(this.o,c)}};f.RandomIterator=a}),vu=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=a(po()),s=da();function a(t){return t&&t.t?t:{default:t}}var c=class ga extends s.RandomIterator{constructor(e,i,l){super(e,l),this.container=i}copy(){return new ga(this.o,this.container,this.iteratorType)}},n=class extends h.default{constructor(t=[],e=!0){if(super(),Array.isArray(t))this.J=e?[...t]:t,this.i=t.length;else{this.J=[];let i=this;t.forEach(function(l){i.pushBack(l)})}}clear(){this.i=0,this.J.length=0}begin(){return new c(0,this)}end(){return new c(this.i,this)}rBegin(){return new c(this.i-1,this,1)}rEnd(){return new c(-1,this,1)}front(){return this.J[0]}back(){return this.J[this.i-1]}getElementByPos(t){if(t<0||t>this.i-1)throw new RangeError;return this.J[t]}eraseElementByPos(t){if(t<0||t>this.i-1)throw new RangeError;return this.J.splice(t,1),this.i-=1,this.i}eraseElementByValue(t){let e=0;for(let i=0;ithis.i-1)throw new RangeError;this.J[t]=e}insert(t,e,i=1){if(t<0||t>this.i)throw new RangeError;return this.J.splice(t,0,...new Array(i).fill(e)),this.i+=i,this.i}find(t){for(let e=0;e{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=c(po()),s=Rt(),a=jt();function c(e){return e&&e.t?e:{default:e}}var n=class ya extends s.ContainerIterator{constructor(i,l,d,p){super(p),this.o=i,this.h=l,this.container=d,this.iteratorType===0?(this.pre=function(){return this.o.L===this.h&&(0,a.throwIteratorAccessError)(),this.o=this.o.L,this},this.next=function(){return this.o===this.h&&(0,a.throwIteratorAccessError)(),this.o=this.o.B,this}):(this.pre=function(){return this.o.B===this.h&&(0,a.throwIteratorAccessError)(),this.o=this.o.B,this},this.next=function(){return this.o===this.h&&(0,a.throwIteratorAccessError)(),this.o=this.o.L,this})}get pointer(){return this.o===this.h&&(0,a.throwIteratorAccessError)(),this.o.l}set pointer(i){this.o===this.h&&(0,a.throwIteratorAccessError)(),this.o.l=i}copy(){return new ya(this.o,this.h,this.container,this.iteratorType)}},r=class extends h.default{constructor(e=[]){super(),this.h={},this.p=this._=this.h.L=this.h.B=this.h;let i=this;e.forEach(function(l){i.pushBack(l)})}V(e){let{L:i,B:l}=e;i.B=l,l.L=i,e===this.p&&(this.p=l),e===this._&&(this._=i),this.i-=1}G(e,i){let l=i.B,d={l:e,L:i,B:l};i.B=d,l.L=d,i===this.h&&(this.p=d),l===this.h&&(this._=d),this.i+=1}clear(){this.i=0,this.p=this._=this.h.L=this.h.B=this.h}begin(){return new n(this.p,this.h,this)}end(){return new n(this.h,this.h,this)}rBegin(){return new n(this._,this.h,this,1)}rEnd(){return new n(this.h,this.h,this,1)}front(){return this.p.l}back(){return this._.l}getElementByPos(e){if(e<0||e>this.i-1)throw new RangeError;let i=this.p;for(;e--;)i=i.B;return i.l}eraseElementByPos(e){if(e<0||e>this.i-1)throw new RangeError;let i=this.p;for(;e--;)i=i.B;return this.V(i),this.i}eraseElementByValue(e){let i=this.p;for(;i!==this.h;)i.l===e&&this.V(i),i=i.B;return this.i}eraseElementByIterator(e){let i=e.o;return i===this.h&&(0,a.throwIteratorAccessError)(),e=e.next(),this.V(i),e}pushBack(e){return this.G(e,this._),this.i}popBack(){if(this.i===0)return;let e=this._.l;return this.V(this._),e}pushFront(e){return this.G(e,this.h),this.i}popFront(){if(this.i===0)return;let e=this.p.l;return this.V(this.p),e}setElementByPos(e,i){if(e<0||e>this.i-1)throw new RangeError;let l=this.p;for(;e--;)l=l.B;l.l=i}insert(e,i,l=1){if(e<0||e>this.i)throw new RangeError;if(l<=0)return this.i;if(e===0)for(;l--;)this.pushFront(i);else if(e===this.i)for(;l--;)this.pushBack(i);else{let d=this.p;for(let g=1;g{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=a(po()),s=da();function a(t){return t&&t.t?t:{default:t}}var c=class ma extends s.RandomIterator{constructor(e,i,l){super(e,l),this.container=i}copy(){return new ma(this.o,this.container,this.iteratorType)}},n=class extends h.default{constructor(t=[],e=4096){super(),this.j=0,this.D=0,this.R=0,this.N=0,this.P=0,this.A=[];let i=(()=>{if(typeof t.length=="number")return t.length;if(typeof t.size=="number")return t.size;if(typeof t.size=="function")return t.size();throw new TypeError("Cannot get the length or size of the container")})();this.F=e,this.P=Math.max(Math.ceil(i/this.F),1);for(let p=0;p>1)-(l>>1),this.D=this.N=this.F-i%this.F>>1;let d=this;t.forEach(function(p){d.pushBack(p)})}T(){let t=[],e=Math.max(this.P>>1,1);for(let i=0;i>1}begin(){return new c(0,this)}end(){return new c(this.i,this)}rBegin(){return new c(this.i-1,this,1)}rEnd(){return new c(-1,this,1)}front(){if(this.i!==0)return this.A[this.j][this.D]}back(){if(this.i!==0)return this.A[this.R][this.N]}pushBack(t){return this.i&&(this.N0?this.N-=1:this.R>0?(this.R-=1,this.N=this.F-1):(this.R=this.P-1,this.N=this.F-1)),this.i-=1,t}pushFront(t){return this.i&&(this.D>0?this.D-=1:this.j>0?(this.j-=1,this.D=this.F-1):(this.j=this.P-1,this.D=this.F-1),this.j===this.R&&this.D===this.N&&this.T()),this.i+=1,this.A[this.j][this.D]=t,this.i}popFront(){if(this.i===0)return;let t=this.A[this.j][this.D];return this.i!==1&&(this.Dthis.i-1)throw new RangeError;let{curNodeBucketIndex:e,curNodePointerIndex:i}=this.O(t);return this.A[e][i]}setElementByPos(t,e){if(t<0||t>this.i-1)throw new RangeError;let{curNodeBucketIndex:i,curNodePointerIndex:l}=this.O(t);this.A[i][l]=e}insert(t,e,i=1){if(t<0||t>this.i)throw new RangeError;if(t===0)for(;i--;)this.pushFront(e);else if(t===this.i)for(;i--;)this.pushBack(e);else{let l=[];for(let d=t;dthis.i-1)throw new RangeError;if(t===0)this.popFront();else if(t===this.i-1)this.popBack();else{let e=[];for(let l=t+1;lt;)this.popBack();return this.i}sort(t){let e=[];for(let i=0;i{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.TreeNodeEnableIndex=f.TreeNode=void 0;var h=class{constructor(a,c){this.ee=1,this.u=void 0,this.l=void 0,this.U=void 0,this.W=void 0,this.tt=void 0,this.u=a,this.l=c}L(){let a=this;if(a.ee===1&&a.tt.tt===a)a=a.W;else if(a.U)for(a=a.U;a.W;)a=a.W;else{let c=a.tt;for(;c.U===a;)a=c,c=a.tt;a=c}return a}B(){let a=this;if(a.W){for(a=a.W;a.U;)a=a.U;return a}else{let c=a.tt;for(;c.W===a;)a=c,c=a.tt;return a.W!==c?c:a}}te(){let a=this.tt,c=this.W,n=c.U;return a.tt===this?a.tt=c:a.U===this?a.U=c:a.W=c,c.tt=a,c.U=this,this.tt=c,this.W=n,n&&(n.tt=this),c}se(){let a=this.tt,c=this.U,n=c.W;return a.tt===this?a.tt=c:a.U===this?a.U=c:a.W=c,c.tt=a,c.W=this,this.tt=c,this.U=n,n&&(n.tt=this),c}};f.TreeNode=h;var s=class extends h{constructor(){super(...arguments),this.rt=1}te(){let a=super.te();return this.ie(),a.ie(),a}se(){let a=super.se();return this.ie(),a.ie(),a}ie(){this.rt=1,this.U&&(this.rt+=this.U.rt),this.W&&(this.rt+=this.W.rt)}};f.TreeNodeEnableIndex=s}),ba=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=Su(),s=Rt(),a=jt(),c=class extends s.Container{constructor(r=function(e,i){return ei?1:0},t=!1){super(),this.Y=void 0,this.v=r,t?(this.re=h.TreeNodeEnableIndex,this.M=function(e,i,l){let d=this.ne(e,i,l);if(d){let p=d.tt;for(;p!==this.h;)p.rt+=1,p=p.tt;let g=this.he(d);if(g){let{parentNode:b,grandParent:E,curNode:S}=g;b.ie(),E.ie(),S.ie()}}return this.i},this.V=function(e){let i=this.fe(e);for(;i!==this.h;)i.rt-=1,i=i.tt}):(this.re=h.TreeNode,this.M=function(e,i,l){let d=this.ne(e,i,l);return d&&this.he(d),this.i},this.V=this.fe),this.h=new this.re}X(r,t){let e=this.h;for(;r;){let i=this.v(r.u,t);if(i<0)r=r.W;else if(i>0)e=r,r=r.U;else return r}return e}Z(r,t){let e=this.h;for(;r;)this.v(r.u,t)<=0?r=r.W:(e=r,r=r.U);return e}$(r,t){let e=this.h;for(;r;){let i=this.v(r.u,t);if(i<0)e=r,r=r.W;else if(i>0)r=r.U;else return r}return e}rr(r,t){let e=this.h;for(;r;)this.v(r.u,t)<0?(e=r,r=r.W):r=r.U;return e}ue(r){for(;;){let t=r.tt;if(t===this.h)return;if(r.ee===1){r.ee=0;return}if(r===t.U){let e=t.W;if(e.ee===1)e.ee=0,t.ee=1,t===this.Y?this.Y=t.te():t.te();else if(e.W&&e.W.ee===1){e.ee=t.ee,t.ee=0,e.W.ee=0,t===this.Y?this.Y=t.te():t.te();return}else e.U&&e.U.ee===1?(e.ee=1,e.U.ee=0,e.se()):(e.ee=1,r=t)}else{let e=t.U;if(e.ee===1)e.ee=0,t.ee=1,t===this.Y?this.Y=t.se():t.se();else if(e.U&&e.U.ee===1){e.ee=t.ee,t.ee=0,e.U.ee=0,t===this.Y?this.Y=t.se():t.se();return}else e.W&&e.W.ee===1?(e.ee=1,e.W.ee=0,e.te()):(e.ee=1,r=t)}}}fe(r){if(this.i===1)return this.clear(),this.h;let t=r;for(;t.U||t.W;){if(t.W)for(t=t.W;t.U;)t=t.U;else t=t.U;[r.u,t.u]=[t.u,r.u],[r.l,t.l]=[t.l,r.l],r=t}this.h.U===t?this.h.U=t.tt:this.h.W===t&&(this.h.W=t.tt),this.ue(t);let e=t.tt;return t===e.U?e.U=void 0:e.W=void 0,this.i-=1,this.Y.ee=0,e}oe(r,t){return r===void 0?!1:this.oe(r.U,t)||t(r)?!0:this.oe(r.W,t)}he(r){for(;;){let t=r.tt;if(t.ee===0)return;let e=t.tt;if(t===e.U){let i=e.W;if(i&&i.ee===1){if(i.ee=t.ee=0,e===this.Y)return;e.ee=1,r=e;continue}else if(r===t.W){if(r.ee=0,r.U&&(r.U.tt=t),r.W&&(r.W.tt=e),t.W=r.U,e.U=r.W,r.U=t,r.W=e,e===this.Y)this.Y=r,this.h.tt=r;else{let l=e.tt;l.U===e?l.U=r:l.W=r}return r.tt=e.tt,t.tt=r,e.tt=r,e.ee=1,{parentNode:t,grandParent:e,curNode:r}}else t.ee=0,e===this.Y?this.Y=e.se():e.se(),e.ee=1}else{let i=e.U;if(i&&i.ee===1){if(i.ee=t.ee=0,e===this.Y)return;e.ee=1,r=e;continue}else if(r===t.U){if(r.ee=0,r.U&&(r.U.tt=e),r.W&&(r.W.tt=t),e.W=r.U,t.U=r.W,r.U=e,r.W=t,e===this.Y)this.Y=r,this.h.tt=r;else{let l=e.tt;l.U===e?l.U=r:l.W=r}return r.tt=e.tt,t.tt=r,e.tt=r,e.ee=1,{parentNode:t,grandParent:e,curNode:r}}else t.ee=0,e===this.Y?this.Y=e.te():e.te(),e.ee=1}return}}ne(r,t,e){if(this.Y===void 0){this.i+=1,this.Y=new this.re(r,t),this.Y.ee=0,this.Y.tt=this.h,this.h.tt=this.Y,this.h.U=this.Y,this.h.W=this.Y;return}let i,l=this.h.U,d=this.v(l.u,r);if(d===0){l.l=t;return}else if(d>0)l.U=new this.re(r,t),l.U.tt=l,i=l.U,this.h.U=i;else{let p=this.h.W,g=this.v(p.u,r);if(g===0){p.l=t;return}else if(g<0)p.W=new this.re(r,t),p.W.tt=p,i=p.W,this.h.W=i;else{if(e!==void 0){let b=e.o;if(b!==this.h){let E=this.v(b.u,r);if(E===0){b.l=t;return}else if(E>0){let S=b.L(),x=this.v(S.u,r);if(x===0){S.l=t;return}else x<0&&(i=new this.re(r,t),S.W===void 0?(S.W=i,i.tt=S):(b.U=i,i.tt=b))}}}if(i===void 0)for(i=this.Y;;){let b=this.v(i.u,r);if(b>0){if(i.U===void 0){i.U=new this.re(r,t),i.U.tt=i,i=i.U;break}i=i.U}else if(b<0){if(i.W===void 0){i.W=new this.re(r,t),i.W.tt=i,i=i.W;break}i=i.W}else{i.l=t;return}}}}return this.i+=1,i}I(r,t){for(;r;){let e=this.v(r.u,t);if(e<0)r=r.W;else if(e>0)r=r.U;else return r}return r||this.h}clear(){this.i=0,this.Y=void 0,this.h.tt=void 0,this.h.U=this.h.W=void 0}updateKeyByIterator(r,t){let e=r.o;if(e===this.h&&(0,a.throwIteratorAccessError)(),this.i===1)return e.u=t,!0;if(e===this.h.U)return this.v(e.B().u,t)>0?(e.u=t,!0):!1;if(e===this.h.W)return this.v(e.L().u,t)<0?(e.u=t,!0):!1;let i=e.L().u;if(this.v(i,t)>=0)return!1;let l=e.B().u;return this.v(l,t)<=0?!1:(e.u=t,!0)}eraseElementByPos(r){if(r<0||r>this.i-1)throw new RangeError;let t=0,e=this;return this.oe(this.Y,function(i){return r===t?(e.V(i),!0):(t+=1,!1)}),this.i}eraseElementByKey(r){if(this.i===0)return!1;let t=this.I(this.Y,r);return t===this.h?!1:(this.V(t),!0)}eraseElementByIterator(r){let t=r.o;t===this.h&&(0,a.throwIteratorAccessError)();let e=t.W===void 0;return r.iteratorType===0?e&&r.next():(!e||t.U===void 0)&&r.next(),this.V(t),r}forEach(r){let t=0;for(let e of this)r(e,t++,this)}getElementByPos(r){if(r<0||r>this.i-1)throw new RangeError;let t,e=0;for(let i of this){if(e===r){t=i;break}e+=1}return t}getHeight(){if(this.i===0)return 0;let r=function(t){return t?Math.max(r(t.U),r(t.W))+1:0};return r(this.Y)}},n=c;f.default=n}),va=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=Rt(),s=jt(),a=class extends h.ContainerIterator{constructor(n,r,t){super(t),this.o=n,this.h=r,this.iteratorType===0?(this.pre=function(){return this.o===this.h.U&&(0,s.throwIteratorAccessError)(),this.o=this.o.L(),this},this.next=function(){return this.o===this.h&&(0,s.throwIteratorAccessError)(),this.o=this.o.B(),this}):(this.pre=function(){return this.o===this.h.W&&(0,s.throwIteratorAccessError)(),this.o=this.o.B(),this},this.next=function(){return this.o===this.h&&(0,s.throwIteratorAccessError)(),this.o=this.o.L(),this})}get index(){let n=this.o,r=this.h.tt;if(n===this.h)return r?r.rt-1:0;let t=0;for(n.U&&(t+=n.U.rt);n!==r;){let e=n.tt;n===e.W&&(t+=1,e.U&&(t+=e.U.rt)),n=e}return t}},c=a;f.default=c}),Eu=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=c(ba()),s=c(va()),a=jt();function c(e){return e&&e.t?e:{default:e}}var n=class wa extends s.default{constructor(i,l,d,p){super(i,l,p),this.container=d}get pointer(){return this.o===this.h&&(0,a.throwIteratorAccessError)(),this.o.u}copy(){return new wa(this.o,this.h,this.container,this.iteratorType)}},r=class extends h.default{constructor(e=[],i,l){super(i,l);let d=this;e.forEach(function(p){d.insert(p)})}*K(e){e!==void 0&&(yield*this.K(e.U),yield e.u,yield*this.K(e.W))}begin(){return new n(this.h.U||this.h,this.h,this)}end(){return new n(this.h,this.h,this)}rBegin(){return new n(this.h.W||this.h,this.h,this,1)}rEnd(){return new n(this.h,this.h,this,1)}front(){return this.h.U?this.h.U.u:void 0}back(){return this.h.W?this.h.W.u:void 0}insert(e,i){return this.M(e,void 0,i)}find(e){let i=this.I(this.Y,e);return new n(i,this.h,this)}lowerBound(e){let i=this.X(this.Y,e);return new n(i,this.h,this)}upperBound(e){let i=this.Z(this.Y,e);return new n(i,this.h,this)}reverseLowerBound(e){let i=this.$(this.Y,e);return new n(i,this.h,this)}reverseUpperBound(e){let i=this.rr(this.Y,e);return new n(i,this.h,this)}union(e){let i=this;return e.forEach(function(l){i.insert(l)}),this.i}[Symbol.iterator](){return this.K(this.Y)}},t=r;f.default=t}),Au=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=c(ba()),s=c(va()),a=jt();function c(e){return e&&e.t?e:{default:e}}var n=class _a extends s.default{constructor(i,l,d,p){super(i,l,p),this.container=d}get pointer(){this.o===this.h&&(0,a.throwIteratorAccessError)();let i=this;return new Proxy([],{get(l,d){if(d==="0")return i.o.u;if(d==="1")return i.o.l},set(l,d,p){if(d!=="1")throw new TypeError("props must be 1");return i.o.l=p,!0}})}copy(){return new _a(this.o,this.h,this.container,this.iteratorType)}},r=class extends h.default{constructor(e=[],i,l){super(i,l);let d=this;e.forEach(function(p){d.setElement(p[0],p[1])})}*K(e){e!==void 0&&(yield*this.K(e.U),yield[e.u,e.l],yield*this.K(e.W))}begin(){return new n(this.h.U||this.h,this.h,this)}end(){return new n(this.h,this.h,this)}rBegin(){return new n(this.h.W||this.h,this.h,this,1)}rEnd(){return new n(this.h,this.h,this,1)}front(){if(this.i===0)return;let e=this.h.U;return[e.u,e.l]}back(){if(this.i===0)return;let e=this.h.W;return[e.u,e.l]}lowerBound(e){let i=this.X(this.Y,e);return new n(i,this.h,this)}upperBound(e){let i=this.Z(this.Y,e);return new n(i,this.h,this)}reverseLowerBound(e){let i=this.$(this.Y,e);return new n(i,this.h,this)}reverseUpperBound(e){let i=this.rr(this.Y,e);return new n(i,this.h,this)}setElement(e,i,l){return this.M(e,i,l)}find(e){let i=this.I(this.Y,e);return new n(i,this.h,this)}getElementByKey(e){return this.I(this.Y,e).l}union(e){let i=this;return e.forEach(function(l){i.setElement(l[0],l[1])}),this.i}[Symbol.iterator](){return this.K(this.Y)}},t=r;f.default=t}),Sa=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=h;function h(s){let a=typeof s;return a==="object"&&s!==null||a==="function"}}),Ea=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.HashContainerIterator=f.HashContainer=void 0;var h=Rt(),s=c(Sa()),a=jt();function c(t){return t&&t.t?t:{default:t}}var n=class extends h.ContainerIterator{constructor(t,e,i){super(i),this.o=t,this.h=e,this.iteratorType===0?(this.pre=function(){return this.o.L===this.h&&(0,a.throwIteratorAccessError)(),this.o=this.o.L,this},this.next=function(){return this.o===this.h&&(0,a.throwIteratorAccessError)(),this.o=this.o.B,this}):(this.pre=function(){return this.o.B===this.h&&(0,a.throwIteratorAccessError)(),this.o=this.o.B,this},this.next=function(){return this.o===this.h&&(0,a.throwIteratorAccessError)(),this.o=this.o.L,this})}};f.HashContainerIterator=n;var r=class extends h.Container{constructor(){super(),this.H=[],this.g={},this.HASH_TAG=Symbol("@@HASH_TAG"),Object.setPrototypeOf(this.g,null),this.h={},this.h.L=this.h.B=this.p=this._=this.h}V(t){let{L:e,B:i}=t;e.B=i,i.L=e,t===this.p&&(this.p=i),t===this._&&(this._=e),this.i-=1}M(t,e,i){i===void 0&&(i=(0,s.default)(t));let l;if(i){let d=t[this.HASH_TAG];if(d!==void 0)return this.H[d].l=e,this.i;Object.defineProperty(t,this.HASH_TAG,{value:this.H.length,configurable:!0}),l={u:t,l:e,L:this._,B:this.h},this.H.push(l)}else{let d=this.g[t];if(d)return d.l=e,this.i;l={u:t,l:e,L:this._,B:this.h},this.g[t]=l}return this.i===0?(this.p=l,this.h.B=l):this._.B=l,this._=l,this.h.L=l,++this.i}I(t,e){if(e===void 0&&(e=(0,s.default)(t)),e){let i=t[this.HASH_TAG];return i===void 0?this.h:this.H[i]}else return this.g[t]||this.h}clear(){let t=this.HASH_TAG;this.H.forEach(function(e){delete e.u[t]}),this.H=[],this.g={},Object.setPrototypeOf(this.g,null),this.i=0,this.p=this._=this.h.L=this.h.B=this.h}eraseElementByKey(t,e){let i;if(e===void 0&&(e=(0,s.default)(t)),e){let l=t[this.HASH_TAG];if(l===void 0)return!1;delete t[this.HASH_TAG],i=this.H[l],delete this.H[l]}else{if(i=this.g[t],i===void 0)return!1;delete this.g[t]}return this.V(i),!0}eraseElementByIterator(t){let e=t.o;return e===this.h&&(0,a.throwIteratorAccessError)(),this.V(e),t.next()}eraseElementByPos(t){if(t<0||t>this.i-1)throw new RangeError;let e=this.p;for(;t--;)e=e.B;return this.V(e),this.i}};f.HashContainer=r}),xu=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=Ea(),s=jt(),a=class Aa extends h.HashContainerIterator{constructor(t,e,i,l){super(t,e,l),this.container=i}get pointer(){return this.o===this.h&&(0,s.throwIteratorAccessError)(),this.o.u}copy(){return new Aa(this.o,this.h,this.container,this.iteratorType)}},c=class extends h.HashContainer{constructor(r=[]){super();let t=this;r.forEach(function(e){t.insert(e)})}begin(){return new a(this.p,this.h,this)}end(){return new a(this.h,this.h,this)}rBegin(){return new a(this._,this.h,this,1)}rEnd(){return new a(this.h,this.h,this,1)}front(){return this.p.u}back(){return this._.u}insert(r,t){return this.M(r,void 0,t)}getElementByPos(r){if(r<0||r>this.i-1)throw new RangeError;let t=this.p;for(;r--;)t=t.B;return t.u}find(r,t){let e=this.I(r,t);return new a(e,this.h,this)}forEach(r){let t=0,e=this.p;for(;e!==this.h;)r(e.u,t++,this),e=e.B}[Symbol.iterator](){return(function*(){let r=this.p;for(;r!==this.h;)yield r.u,r=r.B}).bind(this)()}},n=c;f.default=n}),Iu=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=Ea(),s=c(Sa()),a=jt();function c(e){return e&&e.t?e:{default:e}}var n=class xa extends h.HashContainerIterator{constructor(i,l,d,p){super(i,l,p),this.container=d}get pointer(){this.o===this.h&&(0,a.throwIteratorAccessError)();let i=this;return new Proxy([],{get(l,d){if(d==="0")return i.o.u;if(d==="1")return i.o.l},set(l,d,p){if(d!=="1")throw new TypeError("props must be 1");return i.o.l=p,!0}})}copy(){return new xa(this.o,this.h,this.container,this.iteratorType)}},r=class extends h.HashContainer{constructor(e=[]){super();let i=this;e.forEach(function(l){i.setElement(l[0],l[1])})}begin(){return new n(this.p,this.h,this)}end(){return new n(this.h,this.h,this)}rBegin(){return new n(this._,this.h,this,1)}rEnd(){return new n(this.h,this.h,this,1)}front(){if(this.i!==0)return[this.p.u,this.p.l]}back(){if(this.i!==0)return[this._.u,this._.l]}setElement(e,i,l){return this.M(e,i,l)}getElementByKey(e,i){if(i===void 0&&(i=(0,s.default)(e)),i){let d=e[this.HASH_TAG];return d!==void 0?this.H[d].l:void 0}let l=this.g[e];return l?l.l:void 0}getElementByPos(e){if(e<0||e>this.i-1)throw new RangeError;let i=this.p;for(;e--;)i=i.B;return[i.u,i.l]}find(e,i){let l=this.I(e,i);return new n(l,this.h,this)}forEach(e){let i=0,l=this.p;for(;l!==this.h;)e([l.u,l.l],i++,this),l=l.B}[Symbol.iterator](){return(function*(){let e=this.p;for(;e!==this.h;)yield[e.u,e.l],e=e.B}).bind(this)()}},t=r;f.default=t}),Ou=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),Object.defineProperty(f,"Deque",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(f,"HashMap",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(f,"HashSet",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(f,"LinkList",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(f,"OrderedMap",{enumerable:!0,get:function(){return e.default}}),Object.defineProperty(f,"OrderedSet",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(f,"PriorityQueue",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(f,"Queue",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(f,"Stack",{enumerable:!0,get:function(){return h.default}}),Object.defineProperty(f,"Vector",{enumerable:!0,get:function(){return c.default}});var h=d(yu()),s=d(mu()),a=d(bu()),c=d(vu()),n=d(wu()),r=d(_u()),t=d(Eu()),e=d(Au()),i=d(xu()),l=d(Iu());function d(p){return p&&p.t?p:{default:p}}}),ku=Se((f,h)=>{ge(),me(),ye();var s=Ou().OrderedSet,a=Pt()("number-allocator:trace"),c=Pt()("number-allocator:error");function n(t,e){this.low=t,this.high=e}n.prototype.equals=function(t){return this.low===t.low&&this.high===t.high},n.prototype.compare=function(t){return this.lowi.compare(l)),a("Create"),this.clear()}r.prototype.firstVacant=function(){return this.ss.size()===0?null:this.ss.front().low},r.prototype.alloc=function(){if(this.ss.size()===0)return a("alloc():empty"),null;let t=this.ss.begin(),e=t.pointer.low,i=t.pointer.high,l=e;return l+1<=i?this.ss.updateKeyByIterator(t,new n(e+1,i)):this.ss.eraseElementByPos(0),a("alloc():"+l),l},r.prototype.use=function(t){let e=new n(t,t),i=this.ss.lowerBound(e);if(!i.equals(this.ss.end())){let l=i.pointer.low,d=i.pointer.high;return i.pointer.equals(e)?(this.ss.eraseElementByIterator(i),a("use():"+t),!0):l>t?!1:l===t?(this.ss.updateKeyByIterator(i,new n(l+1,d)),a("use():"+t),!0):d===t?(this.ss.updateKeyByIterator(i,new n(l,d-1)),a("use():"+t),!0):(this.ss.updateKeyByIterator(i,new n(t+1,d)),this.ss.insert(new n(l,t-1)),a("use():"+t),!0)}return a("use():failed"),!1},r.prototype.free=function(t){if(tthis.max){c("free():"+t+" is out of range");return}let e=new n(t,t),i=this.ss.upperBound(e);if(i.equals(this.ss.end())){if(i.equals(this.ss.begin())){this.ss.insert(e);return}i.pre();let l=i.pointer.high;i.pointer.high+1===t?this.ss.updateKeyByIterator(i,new n(l,t)):this.ss.insert(e)}else if(i.equals(this.ss.begin()))if(t+1===i.pointer.low){let l=i.pointer.high;this.ss.updateKeyByIterator(i,new n(t,l))}else this.ss.insert(e);else{let l=i.pointer.low,d=i.pointer.high;i.pre();let p=i.pointer.low;i.pointer.high+1===t?t+1===l?(this.ss.eraseElementByIterator(i),this.ss.updateKeyByIterator(i,new n(p,d))):this.ss.updateKeyByIterator(i,new n(p,t)):t+1===l?(this.ss.eraseElementByIterator(i.next()),this.ss.insert(new n(t,d))):this.ss.insert(e)}a("free():"+t)},r.prototype.clear=function(){a("clear()"),this.ss.clear(),this.ss.insert(new n(this.min,this.max))},r.prototype.intervalCount=function(){return this.ss.size()},r.prototype.dump=function(){console.log("length:"+this.ss.size());for(let t of this.ss)console.log(t)},h.exports=r}),Ia=Se((f,h)=>{ge(),me(),ye();var s=ku();h.exports.NumberAllocator=s}),Tu=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0});var h=gu(),s=Ia(),a=class{aliasToTopic;topicToAlias;max;numberAllocator;length;constructor(c){c>0&&(this.aliasToTopic=new h.LRUCache({max:c}),this.topicToAlias={},this.numberAllocator=new s.NumberAllocator(1,c),this.max=c,this.length=0)}put(c,n){if(n===0||n>this.max)return!1;let r=this.aliasToTopic.get(n);return r&&delete this.topicToAlias[r],this.aliasToTopic.set(n,c),this.topicToAlias[c]=n,this.numberAllocator.use(n),this.length=this.aliasToTopic.size,!0}getTopicByAlias(c){return this.aliasToTopic.get(c)}getAliasByTopic(c){let n=this.topicToAlias[c];return typeof n<"u"&&this.aliasToTopic.get(n),n}clear(){this.aliasToTopic.clear(),this.topicToAlias={},this.numberAllocator.clear(),this.length=0}getLruAlias(){return this.numberAllocator.firstVacant()||[...this.aliasToTopic.keys()][this.aliasToTopic.size-1]}};f.default=a}),Pu=Se(f=>{ge(),me(),ye();var h=f&&f.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(f,"__esModule",{value:!0});var s=Zr(),a=h(Tu()),c=ar(),n=(r,t)=>{r.log("_handleConnack");let{options:e}=r,i=e.protocolVersion===5?t.reasonCode:t.returnCode;if(clearTimeout(r.connackTimer),delete r.topicAliasSend,t.properties){if(t.properties.topicAliasMaximum){if(t.properties.topicAliasMaximum>65535){r.emit("error",new Error("topicAliasMaximum from broker is out of range"));return}t.properties.topicAliasMaximum>0&&(r.topicAliasSend=new a.default(t.properties.topicAliasMaximum))}t.properties.serverKeepAlive&&e.keepalive&&(e.keepalive=t.properties.serverKeepAlive),t.properties.maximumPacketSize&&(e.properties||(e.properties={}),e.properties.maximumPacketSize=t.properties.maximumPacketSize)}if(i===0)r.reconnecting=!1,r._onConnect(t);else if(i>0){let l=new c.ErrorWithReasonCode(`Connection refused: ${s.ReasonCodes[i]}`,i);r.emit("error",l),r.options.reconnectOnConnackError&&r._cleanUp(!0)}};f.default=n}),Cu=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0});var h=(s,a,c)=>{s.log("handling pubrel packet");let n=typeof c<"u"?c:s.noop,{messageId:r}=a,t={cmd:"pubcomp",messageId:r};s.incomingStore.get(a,(e,i)=>{e?s._sendPacket(t,n):(s.emit("message",i.topic,i.payload,i),s.handleMessage(i,l=>{if(l)return n(l);s.incomingStore.del(i,s.noop),s._sendPacket(t,n)}))})};f.default=h}),Ru=Se(f=>{ge(),me(),ye();var h=f&&f.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(f,"__esModule",{value:!0});var s=h(fu()),a=h(du()),c=h(Pu()),n=h(Zr()),r=h(Cu()),t=(e,i,l)=>{let{options:d}=e;if(d.protocolVersion===5&&d.properties&&d.properties.maximumPacketSize&&d.properties.maximumPacketSize{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0});var h=class{nextId;constructor(){this.nextId=Math.max(1,Math.floor(Math.random()*65535))}allocate(){let s=this.nextId++;return this.nextId===65536&&(this.nextId=1),s}getLastAllocated(){return this.nextId===1?65535:this.nextId-1}register(s){return!0}deallocate(s){}clear(){}};f.default=h}),ju=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0});var h=class{aliasToTopic;max;length;constructor(s){this.aliasToTopic={},this.max=s}put(s,a){return a===0||a>this.max?!1:(this.aliasToTopic[a]=s,this.length=Object.keys(this.aliasToTopic).length,!0)}getTopicByAlias(s){return this.aliasToTopic[s]}clear(){this.aliasToTopic={}}};f.default=h}),Mu=Se(f=>{ge(),me(),ye();var h=f&&f.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(f,"__esModule",{value:!0}),f.TypedEventEmitter=void 0;var s=h((Zt(),Ke(qt))),a=ar(),c=class{};f.TypedEventEmitter=c,(0,a.applyMixin)(c,s.default)}),en=Se((f,h)=>{ge(),me(),ye();function s(a){"@babel/helpers - typeof";return h.exports=s=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(c){return typeof c}:function(c){return c&&typeof Symbol=="function"&&c.constructor===Symbol&&c!==Symbol.prototype?"symbol":typeof c},h.exports.__esModule=!0,h.exports.default=h.exports,s(a)}h.exports=s,h.exports.__esModule=!0,h.exports.default=h.exports}),Bu=Se((f,h)=>{ge(),me(),ye();var s=en().default;function a(c,n){if(s(c)!="object"||!c)return c;var r=c[Symbol.toPrimitive];if(r!==void 0){var t=r.call(c,n||"default");if(s(t)!="object")return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(c)}h.exports=a,h.exports.__esModule=!0,h.exports.default=h.exports}),Nu=Se((f,h)=>{ge(),me(),ye();var s=en().default,a=Bu();function c(n){var r=a(n,"string");return s(r)=="symbol"?r:r+""}h.exports=c,h.exports.__esModule=!0,h.exports.default=h.exports}),Uu=Se((f,h)=>{ge(),me(),ye();var s=Nu();function a(c,n,r){return(n=s(n))in c?Object.defineProperty(c,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):c[n]=r,c}h.exports=a,h.exports.__esModule=!0,h.exports.default=h.exports}),Lu=Se((f,h)=>{ge(),me(),ye();function s(a){if(Array.isArray(a))return a}h.exports=s,h.exports.__esModule=!0,h.exports.default=h.exports}),Du=Se((f,h)=>{ge(),me(),ye();function s(a,c){var n=a==null?null:typeof Symbol<"u"&&a[Symbol.iterator]||a["@@iterator"];if(n!=null){var r,t,e,i,l=[],d=!0,p=!1;try{if(e=(n=n.call(a)).next,c===0){if(Object(n)!==n)return;d=!1}else for(;!(d=(r=e.call(n)).done)&&(l.push(r.value),l.length!==c);d=!0);}catch(g){p=!0,t=g}finally{try{if(!d&&n.return!=null&&(i=n.return(),Object(i)!==i))return}finally{if(p)throw t}}return l}}h.exports=s,h.exports.__esModule=!0,h.exports.default=h.exports}),Fu=Se((f,h)=>{ge(),me(),ye();function s(a,c){(c==null||c>a.length)&&(c=a.length);for(var n=0,r=Array(c);n{ge(),me(),ye();var s=Fu();function a(c,n){if(c){if(typeof c=="string")return s(c,n);var r={}.toString.call(c).slice(8,-1);return r==="Object"&&c.constructor&&(r=c.constructor.name),r==="Map"||r==="Set"?Array.from(c):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?s(c,n):void 0}}h.exports=a,h.exports.__esModule=!0,h.exports.default=h.exports}),$u=Se((f,h)=>{ge(),me(),ye();function s(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. -In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}h.exports=s,h.exports.__esModule=!0,h.exports.default=h.exports}),qu=Se((f,h)=>{ge(),me(),ye();var s=Lu(),a=Du(),c=Wu(),n=$u();function r(t,e){return s(t)||a(t,e)||c(t,e)||n()}h.exports=r,h.exports.__esModule=!0,h.exports.default=h.exports}),ka=Se((f,h)=>{ge(),me(),ye(),(function(s,a){typeof f=="object"&&typeof h<"u"?a(f):typeof define=="function"&&define.amd?define(["exports"],a):(s=typeof globalThis<"u"?globalThis:s||self,a(s.fastUniqueNumbers={}))})(f,function(s){var a=function(g){return function(b){var E=g(b);return b.add(E),E}},c=function(g){return function(b,E){return g.set(b,E),E}},n=Number.MAX_SAFE_INTEGER===void 0?9007199254740991:Number.MAX_SAFE_INTEGER,r=536870912,t=r*2,e=function(g,b){return function(E){var S=b.get(E),x=S===void 0?E.size:Sn)throw new Error("Congratulations, you created a collection of unique numbers which uses all available integers!");for(;E.has(x);)x=Math.floor(Math.random()*n);return g(E,x)}},i=new WeakMap,l=c(i),d=e(l,i),p=a(d);s.addUniqueNumber=p,s.generateUniqueNumber=d})}),Vu=Se((f,h)=>{ge(),me(),ye();function s(c,n,r,t,e,i,l){try{var d=c[i](l),p=d.value}catch(g){return void r(g)}d.done?n(p):Promise.resolve(p).then(t,e)}function a(c){return function(){var n=this,r=arguments;return new Promise(function(t,e){var i=c.apply(n,r);function l(p){s(i,t,e,l,d,"next",p)}function d(p){s(i,t,e,l,d,"throw",p)}l(void 0)})}}h.exports=a,h.exports.__esModule=!0,h.exports.default=h.exports}),Ta=Se((f,h)=>{ge(),me(),ye();function s(a,c){this.v=a,this.k=c}h.exports=s,h.exports.__esModule=!0,h.exports.default=h.exports}),Pa=Se((f,h)=>{ge(),me(),ye();function s(a,c,n,r){var t=Object.defineProperty;try{t({},"",{})}catch{t=0}h.exports=s=function(e,i,l,d){function p(g,b){s(e,g,function(E){return this._invoke(g,b,E)})}i?t?t(e,i,{value:l,enumerable:!d,configurable:!d,writable:!d}):e[i]=l:(p("next",0),p("throw",1),p("return",2))},h.exports.__esModule=!0,h.exports.default=h.exports,s(a,c,n,r)}h.exports=s,h.exports.__esModule=!0,h.exports.default=h.exports}),Ca=Se((f,h)=>{ge(),me(),ye();var s=Pa();function a(){var c,n,r=typeof Symbol=="function"?Symbol:{},t=r.iterator||"@@iterator",e=r.toStringTag||"@@toStringTag";function i(x,y,v,A){var _=y&&y.prototype instanceof d?y:d,R=Object.create(_.prototype);return s(R,"_invoke",(function(w,O,T){var M,U,k,z=0,G=T||[],q=!1,he={p:0,n:0,v:c,a:ne,f:ne.bind(c,4),d:function(te,ce){return M=te,U=0,k=c,he.n=ce,l}};function ne(te,ce){for(U=te,k=ce,n=0;!q&&z&&!V&&n3?(V=ee===ce)&&(k=le[(U=le[4])?5:(U=3,3)],le[4]=le[5]=c):le[0]<=B&&((V=te<2&&Bce||ce>ee)&&(le[4]=te,le[5]=ce,he.n=ee,U=0))}if(V||te>1)return l;throw q=!0,ce}return function(te,ce,V){if(z>1)throw TypeError("Generator is already running");for(q&&ce===1&&ne(ce,V),U=ce,k=V;(n=U<2?c:k)||!q;){M||(U?U<3?(U>1&&(he.n=-1),ne(U,k)):he.n=k:he.v=k);try{if(z=2,M){if(U||(te="next"),n=M[te]){if(!(n=n.call(M,k)))throw TypeError("iterator result is not an object");if(!n.done)return n;k=n.value,U<2&&(U=0)}else U===1&&(n=M.return)&&n.call(M),U<2&&(k=TypeError("The iterator does not provide a '"+te+"' method"),U=1);M=c}else if((n=(q=he.n<0)?k:w.call(O,he))!==l)break}catch(le){M=c,U=1,k=le}finally{z=1}}return{value:n,done:q}}})(x,v,A),!0),R}var l={};function d(){}function p(){}function g(){}n=Object.getPrototypeOf;var b=[][t]?n(n([][t]())):(s(n={},t,function(){return this}),n),E=g.prototype=d.prototype=Object.create(b);function S(x){return Object.setPrototypeOf?Object.setPrototypeOf(x,g):(x.__proto__=g,s(x,e,"GeneratorFunction")),x.prototype=Object.create(E),x}return p.prototype=g,s(E,"constructor",g),s(g,"constructor",p),p.displayName="GeneratorFunction",s(g,e,"GeneratorFunction"),s(E),s(E,e,"Generator"),s(E,t,function(){return this}),s(E,"toString",function(){return"[object Generator]"}),(h.exports=a=function(){return{w:i,m:S}},h.exports.__esModule=!0,h.exports.default=h.exports)()}h.exports=a,h.exports.__esModule=!0,h.exports.default=h.exports}),Ra=Se((f,h)=>{ge(),me(),ye();var s=Ta(),a=Pa();function c(n,r){function t(i,l,d,p){try{var g=n[i](l),b=g.value;return b instanceof s?r.resolve(b.v).then(function(E){t("next",E,d,p)},function(E){t("throw",E,d,p)}):r.resolve(b).then(function(E){g.value=E,d(g)},function(E){return t("throw",E,d,p)})}catch(E){p(E)}}var e;this.next||(a(c.prototype),a(c.prototype,typeof Symbol=="function"&&Symbol.asyncIterator||"@asyncIterator",function(){return this})),a(this,"_invoke",function(i,l,d){function p(){return new r(function(g,b){t(i,d,g,b)})}return e=e?e.then(p,p):p()},!0)}h.exports=c,h.exports.__esModule=!0,h.exports.default=h.exports}),ja=Se((f,h)=>{ge(),me(),ye();var s=Ca(),a=Ra();function c(n,r,t,e,i){return new a(s().w(n,r,t,e),i||Promise)}h.exports=c,h.exports.__esModule=!0,h.exports.default=h.exports}),zu=Se((f,h)=>{ge(),me(),ye();var s=ja();function a(c,n,r,t,e){var i=s(c,n,r,t,e);return i.next().then(function(l){return l.done?l.value:i.next()})}h.exports=a,h.exports.__esModule=!0,h.exports.default=h.exports}),Ku=Se((f,h)=>{ge(),me(),ye();function s(a){var c=Object(a),n=[];for(var r in c)n.unshift(r);return function t(){for(;n.length;)if((r=n.pop())in c)return t.value=r,t.done=!1,t;return t.done=!0,t}}h.exports=s,h.exports.__esModule=!0,h.exports.default=h.exports}),Hu=Se((f,h)=>{ge(),me(),ye();var s=en().default;function a(c){if(c!=null){var n=c[typeof Symbol=="function"&&Symbol.iterator||"@@iterator"],r=0;if(n)return n.call(c);if(typeof c.next=="function")return c;if(!isNaN(c.length))return{next:function(){return c&&r>=c.length&&(c=void 0),{value:c&&c[r++],done:!c}}}}throw new TypeError(s(c)+" is not iterable")}h.exports=a,h.exports.__esModule=!0,h.exports.default=h.exports}),Gu=Se((f,h)=>{ge(),me(),ye();var s=Ta(),a=Ca(),c=zu(),n=ja(),r=Ra(),t=Ku(),e=Hu();function i(){var l=a(),d=l.m(i),p=(Object.getPrototypeOf?Object.getPrototypeOf(d):d.__proto__).constructor;function g(S){var x=typeof S=="function"&&S.constructor;return!!x&&(x===p||(x.displayName||x.name)==="GeneratorFunction")}var b={throw:1,return:2,break:3,continue:3};function E(S){var x,y;return function(v){x||(x={stop:function(){return y(v.a,2)},catch:function(){return v.v},abrupt:function(A,_){return y(v.a,b[A],_)},delegateYield:function(A,_,R){return x.resultName=_,y(v.d,e(A),R)},finish:function(A){return y(v.f,A)}},y=function(A,_,R){v.p=x.prev,v.n=x.next;try{return A(_,R)}finally{x.next=v.n}}),x.resultName&&(x[x.resultName]=v.v,x.resultName=void 0),x.sent=v.v,x.next=v.n;try{return S.call(this,x)}finally{v.p=x.prev,v.n=x.next}}}return(h.exports=i=function(){return{wrap:function(S,x,y,v){return l.w(E(S),x,y,v&&v.reverse())},isGeneratorFunction:g,mark:l.m,awrap:function(S,x){return new s(S,x)},AsyncIterator:r,async:function(S,x,y,v,A){return(g(x)?n:c)(E(S),x,y,v,A)},keys:t,values:e}},h.exports.__esModule=!0,h.exports.default=h.exports)()}h.exports=i,h.exports.__esModule=!0,h.exports.default=h.exports}),Qu=Se((f,h)=>{ge(),me(),ye();var s=Gu()();h.exports=s;try{regeneratorRuntime=s}catch{typeof globalThis=="object"?globalThis.regeneratorRuntime=s:Function("r","regeneratorRuntime = r")(s)}}),Yu=Se((f,h)=>{ge(),me(),ye(),(function(s,a){typeof f=="object"&&typeof h<"u"?a(f,Uu(),qu(),ka(),Vu(),Qu()):typeof define=="function"&&define.amd?define(["exports","@babel/runtime/helpers/defineProperty","@babel/runtime/helpers/slicedToArray","fast-unique-numbers","@babel/runtime/helpers/asyncToGenerator","@babel/runtime/regenerator"],a):(s=typeof globalThis<"u"?globalThis:s||self,a(s.brokerFactory={},s._defineProperty,s._slicedToArray,s.fastUniqueNumbers,s._asyncToGenerator,s._regeneratorRuntime))})(f,function(s,a,c,n,r,t){var e=function(y){return typeof y.start=="function"},i=new WeakMap;function l(y,v){var A=Object.keys(y);if(Object.getOwnPropertySymbols){var _=Object.getOwnPropertySymbols(y);v&&(_=_.filter(function(R){return Object.getOwnPropertyDescriptor(y,R).enumerable})),A.push.apply(A,_)}return A}function d(y){for(var v=1;v1&&arguments[1]!==void 0?arguments[1]:null,he=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];return new Promise(function(ne,te){var ce=n.generateUniqueNumber(_);_.set(ce,{reject:te,resolve:ne}),q===null?A.postMessage({id:ce,method:G},he):A.postMessage({id:ce,method:G,params:q},he)})},w=function(G,q){var he=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];A.postMessage({id:null,method:G,params:q},he)},O={},T=0,M=Object.entries(v);T{ge(),me(),ye(),(function(s,a){typeof f=="object"&&typeof h<"u"?a(f,en(),Yu(),ka()):typeof define=="function"&&define.amd?define(["exports","@babel/runtime/helpers/typeof","broker-factory","fast-unique-numbers"],a):(s=typeof globalThis<"u"?globalThis:s||self,a(s.workerTimersBroker={},s._typeof,s.brokerFactory,s.fastUniqueNumbers))})(f,function(s,a,c,n){var r=new Map([[0,null]]),t=new Map([[0,null]]),e=c.createBroker({clearInterval:function(l){var d=l.call;return function(p){a(r.get(p))==="symbol"&&(r.set(p,null),d("clear",{timerId:p,timerType:"interval"}).then(function(){r.delete(p)}))}},clearTimeout:function(l){var d=l.call;return function(p){a(t.get(p))==="symbol"&&(t.set(p,null),d("clear",{timerId:p,timerType:"timeout"}).then(function(){t.delete(p)}))}},setInterval:function(l){var d=l.call;return function(p){for(var g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,b=arguments.length,E=new Array(b>2?b-2:0),S=2;S1&&arguments[1]!==void 0?arguments[1]:0,b=arguments.length,E=new Array(b>2?b-2:0),S=2;S{ge(),me(),ye(),(function(s,a){typeof f=="object"&&typeof h<"u"?a(f,Ju()):typeof define=="function"&&define.amd?define(["exports","worker-timers-broker"],a):(s=typeof globalThis<"u"?globalThis:s||self,a(s.workerTimers={},s.workerTimersBroker))})(f,function(s,a){var c=function(d,p){var g=null;return function(){if(g!==null)return g;var b=new Blob([p],{type:"application/javascript; charset=utf-8"}),E=URL.createObjectURL(b);return g=d(E),setTimeout(function(){return URL.revokeObjectURL(E)}),g}},n=`(()=>{var e={45:(e,t,r)=>{var n=r(738).default;e.exports=function(e,t){if("object"!=n(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,t||"default");if("object"!=n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)},e.exports.__esModule=!0,e.exports.default=e.exports},79:e=>{e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var n=r(79);e.exports=function(e,t){if(e){if("string"==typeof e)return n(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}},e.exports.__esModule=!0,e.exports.default=e.exports},156:e=>{e.exports=function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,u,a,i=[],s=!0,c=!1;try{if(u=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=u.call(r)).done)&&(i.push(n.value),i.length!==t);s=!0);}catch(e){c=!0,o=e}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return i}},e.exports.__esModule=!0,e.exports.default=e.exports},172:e=>{e.exports=function(e,t){this.v=e,this.k=t},e.exports.__esModule=!0,e.exports.default=e.exports},293:e=>{function t(e,t,r,n,o,u,a){try{var i=e[u](a),s=i.value}catch(e){return void r(e)}i.done?t(s):Promise.resolve(s).then(n,o)}e.exports=function(e){return function(){var r=this,n=arguments;return new Promise((function(o,u){var a=e.apply(r,n);function i(e){t(a,o,u,i,s,"next",e)}function s(e){t(a,o,u,i,s,"throw",e)}i(void 0)}))}},e.exports.__esModule=!0,e.exports.default=e.exports},373:e=>{e.exports=function(e){var t=Object(e),r=[];for(var n in t)r.unshift(n);return function e(){for(;r.length;)if((n=r.pop())in t)return e.value=n,e.done=!1,e;return e.done=!0,e}},e.exports.__esModule=!0,e.exports.default=e.exports},389:function(e,t){!function(e){"use strict";var t=function(e){return function(t){var r=e(t);return t.add(r),r}},r=function(e){return function(t,r){return e.set(t,r),r}},n=void 0===Number.MAX_SAFE_INTEGER?9007199254740991:Number.MAX_SAFE_INTEGER,o=536870912,u=2*o,a=function(e,t){return function(r){var a=t.get(r),i=void 0===a?r.size:an)throw new Error("Congratulations, you created a collection of unique numbers which uses all available integers!");for(;r.has(i);)i=Math.floor(Math.random()*n);return e(r,i)}},i=new WeakMap,s=r(i),c=a(s,i),f=t(c);e.addUniqueNumber=f,e.generateUniqueNumber=c}(t)},472:function(e,t,r){!function(e,t,r,n){"use strict";var o=function(e,t){return function(r){var o=t.get(r);if(void 0===o)return Promise.resolve(!1);var u=n(o,2),a=u[0],i=u[1];return e(a),t.delete(r),i(!1),Promise.resolve(!0)}},u=function(e,t){var r=function(n,o,u,a){var i=n-e.now();i>0?o.set(a,[t(r,i,n,o,u,a),u]):(o.delete(a),u(!0))};return r},a=function(e,t,r,n){return function(o,u,a){var i=o+u-t.timeOrigin,s=i-t.now();return new Promise((function(t){e.set(a,[r(n,s,i,e,t,a),t])}))}},i=new Map,s=o(globalThis.clearTimeout,i),c=new Map,f=o(globalThis.clearTimeout,c),l=u(performance,globalThis.setTimeout),p=a(i,performance,globalThis.setTimeout,l),d=a(c,performance,globalThis.setTimeout,l);r.createWorker(self,{clear:function(){var r=e(t.mark((function e(r){var n,o,u;return t.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=r.timerId,o=r.timerType,e.next=1,"interval"===o?s(n):f(n);case 1:return u=e.sent,e.abrupt("return",{result:u});case 2:case"end":return e.stop()}}),e)})));function n(e){return r.apply(this,arguments)}return n}(),set:function(){var r=e(t.mark((function e(r){var n,o,u,a,i;return t.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=r.delay,o=r.now,u=r.timerId,a=r.timerType,e.next=1,("interval"===a?p:d)(n,o,u);case 1:return i=e.sent,e.abrupt("return",{result:i});case 2:case"end":return e.stop()}}),e)})));function n(e){return r.apply(this,arguments)}return n}()})}(r(293),r(756),r(623),r(715))},546:e=>{function t(r,n,o,u){var a=Object.defineProperty;try{a({},"",{})}catch(r){a=0}e.exports=t=function(e,r,n,o){if(r)a?a(e,r,{value:n,enumerable:!o,configurable:!o,writable:!o}):e[r]=n;else{var u=function(r,n){t(e,r,(function(e){return this._invoke(r,n,e)}))};u("next",0),u("throw",1),u("return",2)}},e.exports.__esModule=!0,e.exports.default=e.exports,t(r,n,o,u)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},579:(e,t,r)=>{var n=r(738).default;e.exports=function(e){if(null!=e){var t=e["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],r=0;if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}}}throw new TypeError(n(e)+" is not iterable")},e.exports.__esModule=!0,e.exports.default=e.exports},623:function(e,t,r){!function(e,t,r,n,o){"use strict";var u={INTERNAL_ERROR:-32603,INVALID_PARAMS:-32602,METHOD_NOT_FOUND:-32601},a=function(e,t){return Object.assign(new Error(e),{status:t})},i=function(e){return a('The requested method called "'.concat(e,'" is not supported.'),u.METHOD_NOT_FOUND)},s=function(e){return a('The handler of the method called "'.concat(e,'" returned no required result.'),u.INTERNAL_ERROR)},c=function(e){return a('The handler of the method called "'.concat(e,'" returned an unexpected result.'),u.INTERNAL_ERROR)},f=function(e){return a('The specified parameter called "portId" with the given value "'.concat(e,'" does not identify a port connected to this worker.'),u.INVALID_PARAMS)},l=function(e,n){return function(){var o=t(r.mark((function t(o){var u,a,f,l,p,d,v,x,y,b,h,m,_,g,w;return r.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(u=o.data,a=u.id,f=u.method,l=u.params,p=n[f],t.prev=1,void 0!==p){t.next=2;break}throw i(f);case 2:if(void 0!==(d=void 0===l?p():p(l))){t.next=3;break}throw s(f);case 3:if(!(d instanceof Promise)){t.next=5;break}return t.next=4,d;case 4:g=t.sent,t.next=6;break;case 5:g=d;case 6:if(v=g,null!==a){t.next=8;break}if(void 0===v.result){t.next=7;break}throw c(f);case 7:t.next=10;break;case 8:if(void 0!==v.result){t.next=9;break}throw c(f);case 9:x=v.result,y=v.transferables,b=void 0===y?[]:y,e.postMessage({id:a,result:x},b);case 10:t.next=12;break;case 11:t.prev=11,w=t.catch(1),h=w.message,m=w.status,_=void 0===m?-32603:m,e.postMessage({error:{code:_,message:h},id:a});case 12:case"end":return t.stop()}}),t,null,[[1,11]])})));return function(e){return o.apply(this,arguments)}}()},p=function(){return new Promise((function(e){var t=new ArrayBuffer(0),r=new MessageChannel,n=r.port1,o=r.port2;n.onmessage=function(t){var r=t.data;return e(null!==r)},o.postMessage(t,[t])}))};function d(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function v(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:function(){return!0}),n=l(e,r);return e.addEventListener("message",n),function(){return e.removeEventListener("message",n)}};e.createWorker=b,e.isSupported=p}(t,r(293),r(756),r(693),r(389))},633:(e,t,r)=>{var n=r(172),o=r(993),u=r(869),a=r(887),i=r(791),s=r(373),c=r(579);function f(){"use strict";var t=o(),r=t.m(f),l=(Object.getPrototypeOf?Object.getPrototypeOf(r):r.__proto__).constructor;function p(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===l||"GeneratorFunction"===(t.displayName||t.name))}var d={throw:1,return:2,break:3,continue:3};function v(e){var t,r;return function(n){t||(t={stop:function(){return r(n.a,2)},catch:function(){return n.v},abrupt:function(e,t){return r(n.a,d[e],t)},delegateYield:function(e,o,u){return t.resultName=o,r(n.d,c(e),u)},finish:function(e){return r(n.f,e)}},r=function(e,r,o){n.p=t.prev,n.n=t.next;try{return e(r,o)}finally{t.next=n.n}}),t.resultName&&(t[t.resultName]=n.v,t.resultName=void 0),t.sent=n.v,t.next=n.n;try{return e.call(this,t)}finally{n.p=t.prev,n.n=t.next}}}return(e.exports=f=function(){return{wrap:function(e,r,n,o){return t.w(v(e),r,n,o&&o.reverse())},isGeneratorFunction:p,mark:t.m,awrap:function(e,t){return new n(e,t)},AsyncIterator:i,async:function(e,t,r,n,o){return(p(t)?a:u)(v(e),t,r,n,o)},keys:s,values:c}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=f,e.exports.__esModule=!0,e.exports.default=e.exports},693:(e,t,r)=>{var n=r(736);e.exports=function(e,t,r){return(t=n(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e},e.exports.__esModule=!0,e.exports.default=e.exports},715:(e,t,r)=>{var n=r(987),o=r(156),u=r(122),a=r(752);e.exports=function(e,t){return n(e)||o(e,t)||u(e,t)||a()},e.exports.__esModule=!0,e.exports.default=e.exports},736:(e,t,r)=>{var n=r(738).default,o=r(45);e.exports=function(e){var t=o(e,"string");return"symbol"==n(t)?t:t+""},e.exports.__esModule=!0,e.exports.default=e.exports},738:e=>{function t(r){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},752:e=>{e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.__esModule=!0,e.exports.default=e.exports},756:(e,t,r)=>{var n=r(633)();e.exports=n;try{regeneratorRuntime=n}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=n:Function("r","regeneratorRuntime = r")(n)}},791:(e,t,r)=>{var n=r(172),o=r(546);e.exports=function e(t,r){function u(e,o,a,i){try{var s=t[e](o),c=s.value;return c instanceof n?r.resolve(c.v).then((function(e){u("next",e,a,i)}),(function(e){u("throw",e,a,i)})):r.resolve(c).then((function(e){s.value=e,a(s)}),(function(e){return u("throw",e,a,i)}))}catch(e){i(e)}}var a;this.next||(o(e.prototype),o(e.prototype,"function"==typeof Symbol&&Symbol.asyncIterator||"@asyncIterator",(function(){return this}))),o(this,"_invoke",(function(e,t,n){function o(){return new r((function(t,r){u(e,n,t,r)}))}return a=a?a.then(o,o):o()}),!0)},e.exports.__esModule=!0,e.exports.default=e.exports},869:(e,t,r)=>{var n=r(887);e.exports=function(e,t,r,o,u){var a=n(e,t,r,o,u);return a.next().then((function(e){return e.done?e.value:a.next()}))},e.exports.__esModule=!0,e.exports.default=e.exports},887:(e,t,r)=>{var n=r(993),o=r(791);e.exports=function(e,t,r,u,a){return new o(n().w(e,t,r,u),a||Promise)},e.exports.__esModule=!0,e.exports.default=e.exports},987:e=>{e.exports=function(e){if(Array.isArray(e))return e},e.exports.__esModule=!0,e.exports.default=e.exports},993:(e,t,r)=>{var n=r(546);function o(){var t,r,u="function"==typeof Symbol?Symbol:{},a=u.iterator||"@@iterator",i=u.toStringTag||"@@toStringTag";function s(e,o,u,a){var i=o&&o.prototype instanceof f?o:f,s=Object.create(i.prototype);return n(s,"_invoke",function(e,n,o){var u,a,i,s=0,f=o||[],l=!1,p={p:0,n:0,v:t,a:d,f:d.bind(t,4),d:function(e,r){return u=e,a=0,i=t,p.n=r,c}};function d(e,n){for(a=e,i=n,r=0;!l&&s&&!o&&r3?(o=v===n)&&(i=u[(a=u[4])?5:(a=3,3)],u[4]=u[5]=t):u[0]<=d&&((o=e<2&&dn||n>v)&&(u[4]=e,u[5]=n,p.n=v,a=0))}if(o||e>1)return c;throw l=!0,n}return function(o,f,v){if(s>1)throw TypeError("Generator is already running");for(l&&1===f&&d(f,v),a=f,i=v;(r=a<2?t:i)||!l;){u||(a?a<3?(a>1&&(p.n=-1),d(a,i)):p.n=i:p.v=i);try{if(s=2,u){if(a||(o="next"),r=u[o]){if(!(r=r.call(u,i)))throw TypeError("iterator result is not an object");if(!r.done)return r;i=r.value,a<2&&(a=0)}else 1===a&&(r=u.return)&&r.call(u),a<2&&(i=TypeError("The iterator does not provide a '"+o+"' method"),a=1);u=t}else if((r=(l=p.n<0)?i:e.call(n,p))!==c)break}catch(e){u=t,a=1,i=e}finally{s=1}}return{value:r,done:l}}}(e,u,a),!0),s}var c={};function f(){}function l(){}function p(){}r=Object.getPrototypeOf;var d=[][a]?r(r([][a]())):(n(r={},a,(function(){return this})),r),v=p.prototype=f.prototype=Object.create(d);function x(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,n(e,i,"GeneratorFunction")),e.prototype=Object.create(v),e}return l.prototype=p,n(v,"constructor",p),n(p,"constructor",l),l.displayName="GeneratorFunction",n(p,i,"GeneratorFunction"),n(v),n(v,i,"Generator"),n(v,a,(function(){return this})),n(v,"toString",(function(){return"[object Generator]"})),(e.exports=o=function(){return{w:s,m:x}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=o,e.exports.__esModule=!0,e.exports.default=e.exports}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var u=t[n]={exports:{}};return e[n].call(u.exports,u,u.exports,r),u.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";r(472)})()})();`,r=c(a.load,n),t=function(d){return r().clearInterval(d)},e=function(d){return r().clearTimeout(d)},i=function(){var d;return(d=r()).setInterval.apply(d,arguments)},l=function(){var d;return(d=r()).setTimeout.apply(d,arguments)};s.clearInterval=t,s.clearTimeout=e,s.setInterval=i,s.setTimeout=l})}),tn=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0}),f.isReactNativeBrowser=f.isWebWorker=void 0;var h=()=>typeof window<"u"?typeof navigator<"u"&&navigator.userAgent?.toLowerCase().indexOf(" electron/")>-1&&Ge?.versions?!Object.prototype.hasOwnProperty.call(Ge.versions,"electron"):typeof window.document<"u":!1,s=()=>!!(typeof self=="object"&&self?.constructor?.name?.includes("WorkerGlobalScope")),a=()=>typeof navigator<"u"&&navigator.product==="ReactNative",c=h()||s()||a();f.isWebWorker=s(),f.isReactNativeBrowser=a(),f.default=c}),Zu=Se(f=>{ge(),me(),ye();var h=f&&f.__createBinding||(Object.create?function(i,l,d,p){p===void 0&&(p=d);var g=Object.getOwnPropertyDescriptor(l,d);(!g||("get"in g?!l.__esModule:g.writable||g.configurable))&&(g={enumerable:!0,get:function(){return l[d]}}),Object.defineProperty(i,p,g)}:function(i,l,d,p){p===void 0&&(p=d),i[p]=l[d]}),s=f&&f.__setModuleDefault||(Object.create?function(i,l){Object.defineProperty(i,"default",{enumerable:!0,value:l})}:function(i,l){i.default=l}),a=f&&f.__importStar||(function(){var i=function(l){return i=Object.getOwnPropertyNames||function(d){var p=[];for(var g in d)Object.prototype.hasOwnProperty.call(d,g)&&(p[p.length]=g);return p},i(l)};return function(l){if(l&&l.__esModule)return l;var d={};if(l!=null)for(var p=i(l),g=0;gsetInterval(i,l),clear:i=>clearInterval(i)},e=i=>{switch(i){case"native":return t;case"worker":return r;case"auto":default:return n.default&&!n.isWebWorker&&!n.isReactNativeBrowser?r:t}};f.default=e}),Ma=Se(f=>{ge(),me(),ye();var h=f&&f.__importDefault||function(c){return c&&c.__esModule?c:{default:c}};Object.defineProperty(f,"__esModule",{value:!0});var s=h(Zu()),a=class{_keepalive;timerId;timer;destroyed=!1;counter;client;_keepaliveTimeoutTimestamp;_intervalEvery;get keepaliveTimeoutTimestamp(){return this._keepaliveTimeoutTimestamp}get intervalEvery(){return this._intervalEvery}get keepalive(){return this._keepalive}constructor(c,n){this.client=c,this.timer=typeof n=="object"&&"set"in n&&"clear"in n?n:(0,s.default)(n),this.setKeepalive(c.options.keepalive)}clear(){this.timerId&&(this.timer.clear(this.timerId),this.timerId=null)}setKeepalive(c){if(c*=1e3,isNaN(c)||c<=0||c>2147483647)throw new Error(`Keepalive value must be an integer between 0 and 2147483647. Provided value is ${c}`);this._keepalive=c,this.reschedule(),this.client.log(`KeepaliveManager: set keepalive to ${c}ms`)}destroy(){this.clear(),this.destroyed=!0}reschedule(){if(this.destroyed)return;this.clear(),this.counter=0;let c=Math.ceil(this._keepalive*1.5);this._keepaliveTimeoutTimestamp=Date.now()+c,this._intervalEvery=Math.ceil(this._keepalive/2),this.timerId=this.timer.set(()=>{this.destroyed||(this.counter+=1,this.counter===2?this.client.sendPing():this.counter>2&&this.client.onKeepaliveTimeout())},this._intervalEvery)}};f.default=a}),wi=Se(f=>{var _;ge(),me(),ye();var h=f&&f.__createBinding||(Object.create?function(R,w,O,T){T===void 0&&(T=O);var M=Object.getOwnPropertyDescriptor(w,O);(!M||("get"in M?!w.__esModule:M.writable||M.configurable))&&(M={enumerable:!0,get:function(){return w[O]}}),Object.defineProperty(R,T,M)}:function(R,w,O,T){T===void 0&&(T=O),R[T]=w[O]}),s=f&&f.__setModuleDefault||(Object.create?function(R,w){Object.defineProperty(R,"default",{enumerable:!0,value:w})}:function(R,w){R.default=w}),a=f&&f.__importStar||(function(){var R=function(w){return R=Object.getOwnPropertyNames||function(O){var T=[];for(var M in O)Object.prototype.hasOwnProperty.call(O,M)&&(T[T.length]=M);return T},R(w)};return function(w){if(w&&w.__esModule)return w;var O={};if(w!=null)for(var T=R(w),M=0;M{let w=R.shift();(0,b.nextTick)(()=>{w(...R)})}),v={keepalive:60,reschedulePings:!0,protocolId:"MQTT",protocolVersion:4,reconnectPeriod:1e3,connectTimeout:30*1e3,clean:!0,resubscribe:!0,subscribeBatchSize:null,writeCache:!0,timerVariant:"auto"},A=(_=class extends E.TypedEventEmitter{connected;disconnecting;disconnected;reconnecting;incomingStore;outgoingStore;options;queueQoSZero;_reconnectCount;log;messageIdProvider;outgoing;messageIdToTopic;noop;keepaliveManager;stream;queue;streamBuilder;_resubscribeTopics;connackTimer;reconnectTimer;_storeProcessing;_packetIdsDuringStoreProcessing;_storeProcessingQueue;_firstConnection;topicAliasRecv;topicAliasSend;_deferredReconnect;connackPacket;static defaultId(){return`mqttjs_${Math.random().toString(16).substr(2,8)}`}constructor(w,O){super(),this.options=O||{};for(let T in v)typeof this.options[T]>"u"?this.options[T]=v[T]:this.options[T]=O[T];this.log=this.options.log||(0,e.default)("mqttjs:client"),this.noop=this._noop.bind(this),this.log("MqttClient :: version:",_.VERSION),x.isWebWorker?this.log("MqttClient :: environment","webworker"):this.log("MqttClient :: environment",x.default?"browser":"node"),this.log("MqttClient :: options.protocol",O.protocol),this.log("MqttClient :: options.protocolVersion",O.protocolVersion),this.log("MqttClient :: options.username",O.username),this.log("MqttClient :: options.keepalive",O.keepalive),this.log("MqttClient :: options.reconnectPeriod",O.reconnectPeriod),this.log("MqttClient :: options.rejectUnauthorized",O.rejectUnauthorized),this.log("MqttClient :: options.properties.topicAliasMaximum",O.properties?O.properties.topicAliasMaximum:void 0),this.options.clientId=typeof O.clientId=="string"?O.clientId:_.defaultId(),this.log("MqttClient :: clientId",this.options.clientId),this.options.customHandleAcks=O.protocolVersion===5&&O.customHandleAcks?O.customHandleAcks:(...T)=>{T[3](null,0)},this.options.writeCache||(n.default.writeToStream.cacheNumbers=!1),this.streamBuilder=w,this.messageIdProvider=typeof this.options.messageIdProvider>"u"?new p.default:this.options.messageIdProvider,this.outgoingStore=O.outgoingStore||new l.default,this.incomingStore=O.incomingStore||new l.default,this.queueQoSZero=O.queueQoSZero===void 0?!0:O.queueQoSZero,this._resubscribeTopics={},this.messageIdToTopic={},this.keepaliveManager=null,this.connected=!1,this.disconnecting=!1,this.reconnecting=!1,this.queue=[],this.connackTimer=null,this.reconnectTimer=null,this._storeProcessing=!1,this._packetIdsDuringStoreProcessing={},this._storeProcessingQueue=[],this.outgoing={},this._firstConnection=!0,O.properties&&O.properties.topicAliasMaximum>0&&(O.properties.topicAliasMaximum>65535?this.log("MqttClient :: options.properties.topicAliasMaximum is out of range"):this.topicAliasRecv=new g.default(O.properties.topicAliasMaximum)),this.on("connect",()=>{let{queue:T}=this,M=()=>{let U=T.shift();this.log("deliver :: entry %o",U);let k=null;if(!U){this._resubscribe();return}k=U.packet,this.log("deliver :: call _sendPacket for %o",k);let z=!0;k.messageId&&k.messageId!==0&&(this.messageIdProvider.register(k.messageId)||(z=!1)),z?this._sendPacket(k,G=>{U.cb&&U.cb(G),M()}):(this.log("messageId: %d has already used. The message is skipped and removed.",k.messageId),M())};this.log("connect :: sending queued packets"),M()}),this.on("close",()=>{this.log("close :: connected set to `false`"),this.connected=!1,this.log("close :: clearing connackTimer"),clearTimeout(this.connackTimer),this._destroyKeepaliveManager(),this.topicAliasRecv&&this.topicAliasRecv.clear(),this.log("close :: calling _setupReconnect"),this._setupReconnect()}),this.options.manualConnect||(this.log("MqttClient :: setting up stream"),this.connect())}handleAuth(w,O){O()}handleMessage(w,O){O()}_nextId(){return this.messageIdProvider.allocate()}getLastMessageId(){return this.messageIdProvider.getLastAllocated()}connect(){let w=new r.Writable,O=n.default.parser(this.options),T=null,M=[];this.log("connect :: calling method to clear reconnect"),this._clearReconnect(),this.disconnected&&!this.reconnecting&&(this.incomingStore=this.options.incomingStore||new l.default,this.outgoingStore=this.options.outgoingStore||new l.default,this.disconnecting=!1,this.disconnected=!1),this.log("connect :: using streamBuilder provided to client to create stream"),this.stream=this.streamBuilder(this),O.on("packet",q=>{this.log("parser :: on packet push to packets array."),M.push(q)});let U=()=>{this.log("work :: getting next packet in queue");let q=M.shift();if(q)this.log("work :: packet pulled from queue"),(0,d.default)(this,q,k);else{this.log("work :: no packets in queue");let he=T;T=null,this.log("work :: done flag is %s",!!he),he&&he()}},k=()=>{if(M.length)(0,b.nextTick)(U);else{let q=T;T=null,q()}};w._write=(q,he,ne)=>{T=ne,this.log("writable stream :: parsing buffer"),O.parse(q),U()};let z=q=>{this.log("streamErrorHandler :: error",q.message),q.code?(this.log("streamErrorHandler :: emitting error"),this.emit("error",q)):this.noop(q)};this.log("connect :: pipe stream to writable stream"),this.stream.pipe(w),this.stream.on("error",z),this.stream.on("close",()=>{this.log("(%s)stream :: on close",this.options.clientId),this._flushVolatile(),this.log("stream: emit close to MqttClient"),this.emit("close")}),this.log("connect: sending packet `connect`");let G={cmd:"connect",protocolId:this.options.protocolId,protocolVersion:this.options.protocolVersion,clean:this.options.clean,clientId:this.options.clientId,keepalive:this.options.keepalive,username:this.options.username,password:this.options.password,properties:this.options.properties};if(this.options.will&&(G.will={...this.options.will,payload:this.options.will?.payload}),this.topicAliasRecv&&(G.properties||(G.properties={}),this.topicAliasRecv&&(G.properties.topicAliasMaximum=this.topicAliasRecv.max)),this._writePacket(G),O.on("error",this.emit.bind(this,"error")),this.options.properties){if(!this.options.properties.authenticationMethod&&this.options.properties.authenticationData)return this.end(()=>this.emit("error",new Error("Packet has no Authentication Method"))),this;if(this.options.properties.authenticationMethod&&this.options.authPacket&&typeof this.options.authPacket=="object"){let q={cmd:"auth",reasonCode:0,...this.options.authPacket};this._writePacket(q)}}return this.stream.setMaxListeners(1e3),clearTimeout(this.connackTimer),this.connackTimer=setTimeout(()=>{this.log("!!connectTimeout hit!! Calling _cleanUp with force `true`"),this.emit("error",new Error("connack timeout")),this._cleanUp(!0)},this.options.connectTimeout),this}publish(w,O,T,M){this.log("publish :: message `%s` to topic `%s`",O,w);let{options:U}=this;typeof T=="function"&&(M=T,T=null),T=T||{},T={qos:0,retain:!1,dup:!1,...T};let{qos:k,retain:z,dup:G,properties:q,cbStorePut:he}=T;if(this._checkDisconnecting(M))return this;let ne=()=>{let te=0;if((k===1||k===2)&&(te=this._nextId(),te===null))return this.log("No messageId left"),!1;let ce={cmd:"publish",topic:w,payload:O,qos:k,retain:z,messageId:te,dup:G};switch(U.protocolVersion===5&&(ce.properties=q),this.log("publish :: qos",k),k){case 1:case 2:this.outgoing[ce.messageId]={volatile:!1,cb:M||this.noop},this.log("MqttClient:publish: packet cmd: %s",ce.cmd),this._sendPacket(ce,void 0,he);break;default:this.log("MqttClient:publish: packet cmd: %s",ce.cmd),this._sendPacket(ce,M,he);break}return!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!ne())&&this._storeProcessingQueue.push({invoke:ne,cbStorePut:T.cbStorePut,callback:M}),this}publishAsync(w,O,T){return new Promise((M,U)=>{this.publish(w,O,T,(k,z)=>{k?U(k):M(z)})})}subscribe(w,O,T){let M=this.options.protocolVersion;typeof O=="function"&&(T=O),T=T||this.noop;let U=!1,k=[];typeof w=="string"?(w=[w],k=w):Array.isArray(w)?k=w:typeof w=="object"&&(U=w.resubscribe,delete w.resubscribe,k=Object.keys(w));let z=i.validateTopics(k);if(z!==null)return y(T,new Error(`Invalid topic ${z}`)),this;if(this._checkDisconnecting(T))return this.log("subscribe: discconecting true"),this;let G={qos:0};M===5&&(G.nl=!1,G.rap=!1,G.rh=0),O={...G,...O};let{properties:q}=O,he=[],ne=(V,le)=>{if(le=le||O,!Object.prototype.hasOwnProperty.call(this._resubscribeTopics,V)||this._resubscribeTopics[V].qos{this.log("subscribe: array topic %s",V),ne(V)}):Object.keys(w).forEach(V=>{this.log("subscribe: object topic %s, %o",V,w[V]),ne(V,w[V])}),!he.length)return T(null,[]),this;let te=(V,le)=>{let B={cmd:"subscribe",subscriptions:V,messageId:le};if(q&&(B.properties=q),this.options.resubscribe){this.log("subscribe :: resubscribe true");let Z=[];V.forEach(ue=>{if(this.options.reconnectPeriod>0){let Ae={qos:ue.qos};M===5&&(Ae.nl=ue.nl||!1,Ae.rap=ue.rap||!1,Ae.rh=ue.rh||0,Ae.properties=ue.properties),this._resubscribeTopics[ue.topic]=Ae,Z.push(ue.topic)}}),this.messageIdToTopic[B.messageId]=Z}let ee=new Promise((Z,ue)=>{this.outgoing[B.messageId]={volatile:!0,cb(Ae,Y){if(!Ae){let{granted:W}=Y;for(let oe=0;oe{let V=this.options.subscribeBatchSize??he.length,le=[];for(let B=0;B{T(null,he,B.at(-1))}).catch(B=>{T(B,he,B.packet)}),!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!ce())&&this._storeProcessingQueue.push({invoke:ce,callback:T}),this}subscribeAsync(w,O){return new Promise((T,M)=>{this.subscribe(w,O,(U,k)=>{U?M(U):T(k)})})}unsubscribe(w,O,T){typeof w=="string"&&(w=[w]),typeof O=="function"&&(T=O),T=T||this.noop;let M=i.validateTopics(w);if(M!==null)return y(T,new Error(`Invalid topic ${M}`)),this;if(this._checkDisconnecting(T))return this;let U=()=>{let k=this._nextId();if(k===null)return this.log("No messageId left"),!1;let z={cmd:"unsubscribe",messageId:k,unsubscriptions:[]};return typeof w=="string"?z.unsubscriptions=[w]:Array.isArray(w)&&(z.unsubscriptions=w),this.options.resubscribe&&z.unsubscriptions.forEach(G=>{delete this._resubscribeTopics[G]}),typeof O=="object"&&O.properties&&(z.properties=O.properties),this.outgoing[z.messageId]={volatile:!0,cb:T},this.log("unsubscribe: call _sendPacket"),this._sendPacket(z),!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!U())&&this._storeProcessingQueue.push({invoke:U,callback:T}),this}unsubscribeAsync(w,O){return new Promise((T,M)=>{this.unsubscribe(w,O,(U,k)=>{U?M(U):T(k)})})}end(w,O,T){this.log("end :: (%s)",this.options.clientId),(w==null||typeof w!="boolean")&&(T=T||O,O=w,w=!1),typeof O!="object"&&(T=T||O,O=null),this.log("end :: cb? %s",!!T),(!T||typeof T!="function")&&(T=this.noop);let M=()=>{this.log("end :: closeStores: closing incoming and outgoing stores"),this.disconnected=!0,this.incomingStore.close(k=>{this.outgoingStore.close(z=>{if(this.log("end :: closeStores: emitting end"),this.emit("end"),T){let G=k||z;this.log("end :: closeStores: invoking callback with args"),T(G)}})}),this._deferredReconnect?this._deferredReconnect():(this.options.reconnectPeriod===0||this.options.manualConnect)&&(this.disconnecting=!1)},U=()=>{this.log("end :: (%s) :: finish :: calling _cleanUp with force %s",this.options.clientId,w),this._cleanUp(w,()=>{this.log("end :: finish :: calling process.nextTick on closeStores"),(0,b.nextTick)(M)},O)};return this.disconnecting?(T(),this):(this._clearReconnect(),this.disconnecting=!0,!w&&Object.keys(this.outgoing).length>0?(this.log("end :: (%s) :: calling finish in 10ms once outgoing is empty",this.options.clientId),this.once("outgoingEmpty",setTimeout.bind(null,U,10))):(this.log("end :: (%s) :: immediately calling finish",this.options.clientId),U()),this)}endAsync(w,O){return new Promise((T,M)=>{this.end(w,O,U=>{U?M(U):T()})})}removeOutgoingMessage(w){if(this.outgoing[w]){let{cb:O}=this.outgoing[w];this._removeOutgoingAndStoreMessage(w,()=>{O(new Error("Message removed"))})}return this}reconnect(w){this.log("client reconnect");let O=()=>{w?(this.options.incomingStore=w.incomingStore,this.options.outgoingStore=w.outgoingStore):(this.options.incomingStore=null,this.options.outgoingStore=null),this.incomingStore=this.options.incomingStore||new l.default,this.outgoingStore=this.options.outgoingStore||new l.default,this.disconnecting=!1,this.disconnected=!1,this._deferredReconnect=null,this._reconnect()};return this.disconnecting&&!this.disconnected?this._deferredReconnect=O:O(),this}_flushVolatile(){this.outgoing&&(this.log("_flushVolatile :: deleting volatile messages from the queue and setting their callbacks as error function"),Object.keys(this.outgoing).forEach(w=>{this.outgoing[w].volatile&&typeof this.outgoing[w].cb=="function"&&(this.outgoing[w].cb(new Error("Connection closed")),delete this.outgoing[w])}))}_flush(){this.outgoing&&(this.log("_flush: queue exists? %b",!!this.outgoing),Object.keys(this.outgoing).forEach(w=>{typeof this.outgoing[w].cb=="function"&&(this.outgoing[w].cb(new Error("Connection closed")),delete this.outgoing[w])}))}_removeTopicAliasAndRecoverTopicName(w){let O;w.properties&&(O=w.properties.topicAlias);let T=w.topic.toString();if(this.log("_removeTopicAliasAndRecoverTopicName :: alias %d, topic %o",O,T),T.length===0){if(typeof O>"u")return new Error("Unregistered Topic Alias");if(T=this.topicAliasSend.getTopicByAlias(O),typeof T>"u")return new Error("Unregistered Topic Alias");w.topic=T}O&&delete w.properties.topicAlias}_checkDisconnecting(w){return this.disconnecting&&(w&&w!==this.noop?w(new Error("client disconnecting")):this.emit("error",new Error("client disconnecting"))),this.disconnecting}_reconnect(){this.log("_reconnect: emitting reconnect to client"),this.emit("reconnect"),this.connected?(this.end(()=>{this.connect()}),this.log("client already connected. disconnecting first.")):(this.log("_reconnect: calling connect"),this.connect())}_setupReconnect(){!this.disconnecting&&!this.reconnectTimer&&this.options.reconnectPeriod>0?(this.reconnecting||(this.log("_setupReconnect :: emit `offline` state"),this.emit("offline"),this.log("_setupReconnect :: set `reconnecting` to `true`"),this.reconnecting=!0),this.log("_setupReconnect :: setting reconnectTimer for %d ms",this.options.reconnectPeriod),this.reconnectTimer=setInterval(()=>{this.log("reconnectTimer :: reconnect triggered!"),this._reconnect()},this.options.reconnectPeriod)):this.log("_setupReconnect :: doing nothing...")}_clearReconnect(){this.log("_clearReconnect : clearing reconnect timer"),this.reconnectTimer&&(clearInterval(this.reconnectTimer),this.reconnectTimer=null)}_cleanUp(w,O,T={}){if(O&&(this.log("_cleanUp :: done callback provided for on stream close"),this.stream.on("close",O)),this.log("_cleanUp :: forced? %s",w),w)this.options.reconnectPeriod===0&&this.options.clean&&this._flush(),this.log("_cleanUp :: (%s) :: destroying stream",this.options.clientId),this.stream.destroy();else{let M={cmd:"disconnect",...T};this.log("_cleanUp :: (%s) :: call _sendPacket with disconnect packet",this.options.clientId),this._sendPacket(M,()=>{this.log("_cleanUp :: (%s) :: destroying stream",this.options.clientId),y(()=>{this.stream.end(()=>{this.log("_cleanUp :: (%s) :: stream destroyed",this.options.clientId)})})})}!this.disconnecting&&!this.reconnecting&&(this.log("_cleanUp :: client not disconnecting/reconnecting. Clearing and resetting reconnect."),this._clearReconnect(),this._setupReconnect()),this._destroyKeepaliveManager(),O&&!this.connected&&(this.log("_cleanUp :: (%s) :: removing stream `done` callback `close` listener",this.options.clientId),this.stream.removeListener("close",O),O())}_storeAndSend(w,O,T){this.log("storeAndSend :: store packet with cmd %s to outgoingStore",w.cmd);let M=w,U;if(M.cmd==="publish"&&(M=(0,t.default)(w),U=this._removeTopicAliasAndRecoverTopicName(M),U))return O&&O(U);this.outgoingStore.put(M,k=>{if(k)return O&&O(k);T(),this._writePacket(w,O)})}_applyTopicAlias(w){if(this.options.protocolVersion===5&&w.cmd==="publish"){let O;w.properties&&(O=w.properties.topicAlias);let T=w.topic.toString();if(this.topicAliasSend)if(O){if(T.length!==0&&(this.log("applyTopicAlias :: register topic: %s - alias: %d",T,O),!this.topicAliasSend.put(T,O)))return this.log("applyTopicAlias :: error out of range. topic: %s - alias: %d",T,O),new Error("Sending Topic Alias out of range")}else T.length!==0&&(this.options.autoAssignTopicAlias?(O=this.topicAliasSend.getAliasByTopic(T),O?(w.topic="",w.properties={...w.properties,topicAlias:O},this.log("applyTopicAlias :: auto assign(use) topic: %s - alias: %d",T,O)):(O=this.topicAliasSend.getLruAlias(),this.topicAliasSend.put(T,O),w.properties={...w.properties,topicAlias:O},this.log("applyTopicAlias :: auto assign topic: %s - alias: %d",T,O))):this.options.autoUseTopicAlias&&(O=this.topicAliasSend.getAliasByTopic(T),O&&(w.topic="",w.properties={...w.properties,topicAlias:O},this.log("applyTopicAlias :: auto use topic: %s - alias: %d",T,O))));else if(O)return this.log("applyTopicAlias :: error out of range. topic: %s - alias: %d",T,O),new Error("Sending Topic Alias out of range")}}_noop(w){this.log("noop ::",w)}_writePacket(w,O){this.log("_writePacket :: packet: %O",w),this.log("_writePacket :: emitting `packetsend`"),this.emit("packetsend",w),this.log("_writePacket :: writing to stream");let T=n.default.writeToStream(w,this.stream,this.options);this.log("_writePacket :: writeToStream result %s",T),!T&&O&&O!==this.noop?(this.log("_writePacket :: handle events on `drain` once through callback."),this.stream.once("drain",O)):O&&(this.log("_writePacket :: invoking cb"),O())}_sendPacket(w,O,T,M){this.log("_sendPacket :: (%s) :: start",this.options.clientId),T=T||this.noop,O=O||this.noop;let U=this._applyTopicAlias(w);if(U){O(U);return}if(!this.connected){if(w.cmd==="auth"){this._writePacket(w,O);return}this.log("_sendPacket :: client not connected. Storing packet offline."),this._storePacket(w,O,T);return}if(M){this._writePacket(w,O);return}switch(w.cmd){case"publish":break;case"pubrel":this._storeAndSend(w,O,T);return;default:this._writePacket(w,O);return}switch(w.qos){case 2:case 1:this._storeAndSend(w,O,T);break;case 0:default:this._writePacket(w,O);break}this.log("_sendPacket :: (%s) :: end",this.options.clientId)}_storePacket(w,O,T){this.log("_storePacket :: packet: %o",w),this.log("_storePacket :: cb? %s",!!O),T=T||this.noop;let M=w;if(M.cmd==="publish"){M=(0,t.default)(w);let k=this._removeTopicAliasAndRecoverTopicName(M);if(k)return O&&O(k)}let U=M.qos||0;U===0&&this.queueQoSZero||M.cmd!=="publish"?this.queue.push({packet:M,cb:O}):U>0?(O=this.outgoing[M.messageId]?this.outgoing[M.messageId].cb:null,this.outgoingStore.put(M,k=>{if(k)return O&&O(k);T()})):O&&O(new Error("No connection to broker"))}_setupKeepaliveManager(){this.log("_setupKeepaliveManager :: keepalive %d (seconds)",this.options.keepalive),!this.keepaliveManager&&this.options.keepalive&&(this.keepaliveManager=new S.default(this,this.options.timerVariant))}_destroyKeepaliveManager(){this.keepaliveManager&&(this.log("_destroyKeepaliveManager :: destroying keepalive manager"),this.keepaliveManager.destroy(),this.keepaliveManager=null)}reschedulePing(w=!1){this.keepaliveManager&&this.options.keepalive&&(w||this.options.reschedulePings)&&this._reschedulePing()}_reschedulePing(){this.log("_reschedulePing :: rescheduling ping"),this.keepaliveManager.reschedule()}sendPing(){this.log("_sendPing :: sending pingreq"),this._sendPacket({cmd:"pingreq"})}onKeepaliveTimeout(){this.emit("error",new Error("Keepalive timeout")),this.log("onKeepaliveTimeout :: calling _cleanUp with force true"),this._cleanUp(!0)}_resubscribe(){this.log("_resubscribe");let w=Object.keys(this._resubscribeTopics);if(!this._firstConnection&&(this.options.clean||this.options.protocolVersion>=4&&!this.connackPacket.sessionPresent)&&w.length>0)if(this.options.resubscribe)if(this.options.protocolVersion===5){this.log("_resubscribe: protocolVersion 5");for(let O=0;O{let T=this.outgoingStore.createStream(),M=()=>{T.destroy(),T=null,this._flushStoreProcessingQueue(),U()},U=()=>{this._storeProcessing=!1,this._packetIdsDuringStoreProcessing={}};this.once("close",M),T.on("error",z=>{U(),this._flushStoreProcessingQueue(),this.removeListener("close",M),this.emit("error",z)});let k=()=>{if(!T)return;let z=T.read(1),G;if(!z){T.once("readable",k);return}if(this._storeProcessing=!0,this._packetIdsDuringStoreProcessing[z.messageId]){k();return}!this.disconnecting&&!this.reconnectTimer?(G=this.outgoing[z.messageId]?this.outgoing[z.messageId].cb:null,this.outgoing[z.messageId]={volatile:!1,cb(q,he){G&&G(q,he),k()}},this._packetIdsDuringStoreProcessing[z.messageId]=!0,this.messageIdProvider.register(z.messageId)?this._sendPacket(z,void 0,void 0,!0):this.log("messageId: %d has already used.",z.messageId)):T.destroy&&T.destroy()};T.on("end",()=>{let z=!0;for(let G in this._packetIdsDuringStoreProcessing)if(!this._packetIdsDuringStoreProcessing[G]){z=!1;break}this.removeListener("close",M),z?(U(),this._invokeAllStoreProcessingQueue(),this.emit("connect",w)):O()}),k()};O()}_invokeStoreProcessingQueue(){if(!this._storeProcessing&&this._storeProcessingQueue.length>0){let w=this._storeProcessingQueue[0];if(w&&w.invoke())return this._storeProcessingQueue.shift(),!0}return!1}_invokeAllStoreProcessingQueue(){for(;this._invokeStoreProcessingQueue(););}_flushStoreProcessingQueue(){for(let w of this._storeProcessingQueue)w.cbStorePut&&w.cbStorePut(new Error("Connection closed")),w.callback&&w.callback(new Error("Connection closed"));this._storeProcessingQueue.splice(0)}_removeOutgoingAndStoreMessage(w,O){delete this.outgoing[w],this.outgoingStore.del({messageId:w},(T,M)=>{O(T,M),this.messageIdProvider.deallocate(w),this._invokeStoreProcessingQueue()})}},it(_,"VERSION",b.MQTTJS_VERSION),_);f.default=A}),ec=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0});var h=Ia(),s=class{numberAllocator;lastId;constructor(){this.numberAllocator=new h.NumberAllocator(1,65535)}allocate(){return this.lastId=this.numberAllocator.alloc(),this.lastId}getLastAllocated(){return this.lastId}register(a){return this.numberAllocator.use(a)}deallocate(a){this.numberAllocator.free(a)}clear(){this.numberAllocator.clear()}};f.default=s});function tc(){if(_i)return xr;_i=!0;let f=2147483647,h=36,s=1,a=26,c=38,n=700,r=72,t=128,e="-",i=/^xn--/,l=/[^\0-\x7F]/,d=/[\x2E\u3002\uFF0E\uFF61]/g,p={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},g=h-s,b=Math.floor,E=String.fromCharCode;function S(M){throw new RangeError(p[M])}function x(M,U){let k=[],z=M.length;for(;z--;)k[z]=U(M[z]);return k}function y(M,U){let k=M.split("@"),z="";k.length>1&&(z=k[0]+"@",M=k[1]),M=M.replace(d,".");let G=M.split("."),q=x(G,U).join(".");return z+q}function v(M){let U=[],k=0,z=M.length;for(;k=55296&&G<=56319&&kString.fromCodePoint(...M),_=function(M){return M>=48&&M<58?26+(M-48):M>=65&&M<91?M-65:M>=97&&M<123?M-97:h},R=function(M,U){return M+22+75*(M<26)-((U!=0)<<5)},w=function(M,U,k){let z=0;for(M=k?b(M/n):M>>1,M+=b(M/U);M>g*a>>1;z+=h)M=b(M/g);return b(z+(g+1)*M/(M+c))},O=function(M){let U=[],k=M.length,z=0,G=t,q=r,he=M.lastIndexOf(e);he<0&&(he=0);for(let ne=0;ne=128&&S("not-basic"),U.push(M.charCodeAt(ne));for(let ne=he>0?he+1:0;ne=k&&S("invalid-input");let B=_(M.charCodeAt(ne++));B>=h&&S("invalid-input"),B>b((f-z)/V)&&S("overflow"),z+=B*V;let ee=le<=q?s:le>=q+a?a:le-q;if(Bb(f/Z)&&S("overflow"),V*=Z}let ce=U.length+1;q=w(z-te,ce,te==0),b(z/ce)>f-G&&S("overflow"),G+=b(z/ce),z%=ce,U.splice(z++,0,G)}return String.fromCodePoint(...U)},T=function(M){let U=[];M=v(M);let k=M.length,z=t,G=0,q=r;for(let te of M)te<128&&U.push(E(te));let he=U.length,ne=he;for(he&&U.push(e);ne=z&&Vb((f-G)/ce)&&S("overflow"),G+=(te-z)*ce,z=te;for(let V of M)if(Vf&&S("overflow"),V===z){let le=G;for(let B=h;;B+=h){let ee=B<=q?s:B>=q+a?a:B-q;if(le{ge(),me(),ye(),xr={},_i=!1,Wt=tc(),Wt.decode,Wt.encode,Wt.toASCII,Wt.toUnicode,Wt.ucs2,Wt.version});function nc(){return Ei||(Ei=!0,Si=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var f={},h=Symbol("test"),s=Object(h);if(typeof h=="string"||Object.prototype.toString.call(h)!=="[object Symbol]"||Object.prototype.toString.call(s)!=="[object Symbol]")return!1;var a=42;f[h]=a;for(h in f)return!1;if(typeof Object.keys=="function"&&Object.keys(f).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(f).length!==0)return!1;var c=Object.getOwnPropertySymbols(f);if(c.length!==1||c[0]!==h||!Object.prototype.propertyIsEnumerable.call(f,h))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var n=Object.getOwnPropertyDescriptor(f,h);if(n.value!==a||n.enumerable!==!0)return!1}return!0}),Si}function ic(){return xi||(xi=!0,Ai=Error),Ai}function oc(){return Oi||(Oi=!0,Ii=EvalError),Ii}function sc(){return Ti||(Ti=!0,ki=RangeError),ki}function ac(){return Ci||(Ci=!0,Pi=ReferenceError),Pi}function Ba(){return ji||(ji=!0,Ri=SyntaxError),Ri}function mr(){return Bi||(Bi=!0,Mi=TypeError),Mi}function lc(){return Ui||(Ui=!0,Ni=URIError),Ni}function uc(){if(Li)return Ir;Li=!0;var f=typeof Symbol<"u"&&Symbol,h=nc();return Ir=function(){return typeof f!="function"||typeof Symbol!="function"||typeof f("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:h()},Ir}function cc(){if(Di)return Or;Di=!0;var f={__proto__:null,foo:{}},h=Object;return Or=function(){return{__proto__:f}.foo===f.foo&&!(f instanceof h)},Or}function hc(){if(Fi)return kr;Fi=!0;var f="Function.prototype.bind called on incompatible ",h=Object.prototype.toString,s=Math.max,a="[object Function]",c=function(t,e){for(var i=[],l=0;l"u"||!E?f:E(Uint8Array),y={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?f:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?f:ArrayBuffer,"%ArrayIteratorPrototype%":g&&E?E([][Symbol.iterator]()):f,"%AsyncFromSyncIteratorPrototype%":f,"%AsyncFunction%":S,"%AsyncGenerator%":S,"%AsyncGeneratorFunction%":S,"%AsyncIteratorPrototype%":S,"%Atomics%":typeof Atomics>"u"?f:Atomics,"%BigInt%":typeof BigInt>"u"?f:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?f:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?f:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?f:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":h,"%eval%":eval,"%EvalError%":s,"%Float32Array%":typeof Float32Array>"u"?f:Float32Array,"%Float64Array%":typeof Float64Array>"u"?f:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?f:FinalizationRegistry,"%Function%":e,"%GeneratorFunction%":S,"%Int8Array%":typeof Int8Array>"u"?f:Int8Array,"%Int16Array%":typeof Int16Array>"u"?f:Int16Array,"%Int32Array%":typeof Int32Array>"u"?f:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":g&&E?E(E([][Symbol.iterator]())):f,"%JSON%":typeof JSON=="object"?JSON:f,"%Map%":typeof Map>"u"?f:Map,"%MapIteratorPrototype%":typeof Map>"u"||!g||!E?f:E(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?f:Promise,"%Proxy%":typeof Proxy>"u"?f:Proxy,"%RangeError%":a,"%ReferenceError%":c,"%Reflect%":typeof Reflect>"u"?f:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?f:Set,"%SetIteratorPrototype%":typeof Set>"u"||!g||!E?f:E(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?f:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":g&&E?E(""[Symbol.iterator]()):f,"%Symbol%":g?Symbol:f,"%SyntaxError%":n,"%ThrowTypeError%":p,"%TypedArray%":x,"%TypeError%":r,"%Uint8Array%":typeof Uint8Array>"u"?f:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?f:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?f:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?f:Uint32Array,"%URIError%":t,"%WeakMap%":typeof WeakMap>"u"?f:WeakMap,"%WeakRef%":typeof WeakRef>"u"?f:WeakRef,"%WeakSet%":typeof WeakSet>"u"?f:WeakSet};if(E)try{null.error}catch(ne){var v=E(E(ne));y["%Error.prototype%"]=v}var A=function ne(te){var ce;if(te==="%AsyncFunction%")ce=i("async function () {}");else if(te==="%GeneratorFunction%")ce=i("function* () {}");else if(te==="%AsyncGeneratorFunction%")ce=i("async function* () {}");else if(te==="%AsyncGenerator%"){var V=ne("%AsyncGeneratorFunction%");V&&(ce=V.prototype)}else if(te==="%AsyncIteratorPrototype%"){var le=ne("%AsyncGenerator%");le&&E&&(ce=E(le.prototype))}return y[te]=ce,ce},_={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},R=go(),w=fc(),O=R.call(Function.call,Array.prototype.concat),T=R.call(Function.apply,Array.prototype.splice),M=R.call(Function.call,String.prototype.replace),U=R.call(Function.call,String.prototype.slice),k=R.call(Function.call,RegExp.prototype.exec),z=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,G=/\\(\\)?/g,q=function(ne){var te=U(ne,0,1),ce=U(ne,-1);if(te==="%"&&ce!=="%")throw new n("invalid intrinsic syntax, expected closing `%`");if(ce==="%"&&te!=="%")throw new n("invalid intrinsic syntax, expected opening `%`");var V=[];return M(ne,z,function(le,B,ee,Z){V[V.length]=ee?M(Z,G,"$1"):B||le}),V},he=function(ne,te){var ce=ne,V;if(w(_,ce)&&(V=_[ce],ce="%"+V[0]+"%"),w(y,ce)){var le=y[ce];if(le===S&&(le=A(ce)),typeof le>"u"&&!te)throw new r("intrinsic "+ne+" exists, but is not available. Please file an issue!");return{alias:V,name:ce,value:le}}throw new n("intrinsic "+ne+" does not exist!")};return Cr=function(ne,te){if(typeof ne!="string"||ne.length===0)throw new r("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof te!="boolean")throw new r('"allowMissing" argument must be a boolean');if(k(/^%?[^%]*%?$/,ne)===null)throw new n("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var ce=q(ne),V=ce.length>0?ce[0]:"",le=he("%"+V+"%",te),B=le.name,ee=le.value,Z=!1,ue=le.alias;ue&&(V=ue[0],T(ce,O([0,1],ue)));for(var Ae=1,Y=!0;Ae=ce.length){var J=l(ee,W);Y=!!J,Y&&"get"in J&&!("originalValue"in J.get)?ee=J.get:ee=ee[W]}else Y=w(ee,W),ee=ee[W];Y&&!Z&&(y[B]=ee)}}return ee},Cr}function yo(){if(Vi)return Rr;Vi=!0;var f=lr(),h=f("%Object.defineProperty%",!0)||!1;if(h)try{h({},"a",{value:1})}catch{h=!1}return Rr=h,Rr}function Na(){if(zi)return jr;zi=!0;var f=lr(),h=f("%Object.getOwnPropertyDescriptor%",!0);if(h)try{h([],"length")}catch{h=null}return jr=h,jr}function pc(){if(Ki)return Mr;Ki=!0;var f=yo(),h=Ba(),s=mr(),a=Na();return Mr=function(c,n,r){if(!c||typeof c!="object"&&typeof c!="function")throw new s("`obj` must be an object or a function`");if(typeof n!="string"&&typeof n!="symbol")throw new s("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new s("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new s("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new s("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new s("`loose`, if provided, must be a boolean");var t=arguments.length>3?arguments[3]:null,e=arguments.length>4?arguments[4]:null,i=arguments.length>5?arguments[5]:null,l=arguments.length>6?arguments[6]:!1,d=!!a&&a(c,n);if(f)f(c,n,{configurable:i===null&&d?d.configurable:!i,enumerable:t===null&&d?d.enumerable:!t,value:r,writable:e===null&&d?d.writable:!e});else if(l||!t&&!e&&!i)c[n]=r;else throw new h("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},Mr}function dc(){if(Hi)return Br;Hi=!0;var f=yo(),h=function(){return!!f};return h.hasArrayLengthDefineBug=function(){if(!f)return null;try{return f([],"length",{value:1}).length!==1}catch{return!0}},Br=h,Br}function gc(){if(Gi)return Nr;Gi=!0;var f=lr(),h=pc(),s=dc()(),a=Na(),c=mr(),n=f("%Math.floor%");return Nr=function(r,t){if(typeof r!="function")throw new c("`fn` is not a function");if(typeof t!="number"||t<0||t>4294967295||n(t)!==t)throw new c("`length` must be a positive 32-bit integer");var e=arguments.length>2&&!!arguments[2],i=!0,l=!0;if("length"in r&&a){var d=a(r,"length");d&&!d.configurable&&(i=!1),d&&!d.writable&&(l=!1)}return(i||l||!e)&&(s?h(r,"length",t,!0,!0):h(r,"length",t)),r},Nr}function yc(){if(Qi)return ir;Qi=!0;var f=go(),h=lr(),s=gc(),a=mr(),c=h("%Function.prototype.apply%"),n=h("%Function.prototype.call%"),r=h("%Reflect.apply%",!0)||f.call(n,c),t=yo(),e=h("%Math.max%");ir=function(l){if(typeof l!="function")throw new a("a function is required");var d=r(f,n,arguments);return s(d,1+e(0,l.length-(arguments.length-1)),!0)};var i=function(){return r(f,c,arguments)};return t?t(ir,"apply",{value:i}):ir.apply=i,ir}function mc(){if(Yi)return Ur;Yi=!0;var f=lr(),h=yc(),s=h(f("String.prototype.indexOf"));return Ur=function(a,c){var n=f(a,!!c);return typeof n=="function"&&s(a,".prototype.")>-1?h(n):n},Ur}var Si,Ei,Ai,xi,Ii,Oi,ki,Ti,Pi,Ci,Ri,ji,Mi,Bi,Ni,Ui,Ir,Li,Or,Di,kr,Fi,Tr,Wi,Pr,$i,Cr,qi,Rr,Vi,jr,zi,Mr,Ki,Br,Hi,Nr,Gi,ir,Qi,Ur,Yi,bc=yt(()=>{ge(),me(),ye(),Si={},Ei=!1,Ai={},xi=!1,Ii={},Oi=!1,ki={},Ti=!1,Pi={},Ci=!1,Ri={},ji=!1,Mi={},Bi=!1,Ni={},Ui=!1,Ir={},Li=!1,Or={},Di=!1,kr={},Fi=!1,Tr={},Wi=!1,Pr={},$i=!1,Cr={},qi=!1,Rr={},Vi=!1,jr={},zi=!1,Mr={},Ki=!1,Br={},Hi=!1,Nr={},Gi=!1,ir={},Qi=!1,Ur={},Yi=!1});function mo(f){throw new Error("Node.js process "+f+" is not supported by JSPM core outside of Node.js")}function vc(){!Xt||!Yt||(Xt=!1,Yt.length?St=Yt.concat(St):dr=-1,St.length&&Ua())}function Ua(){if(!Xt){var f=setTimeout(vc,0);Xt=!0;for(var h=St.length;h;){for(Yt=St,St=[];++dr1)for(var s=1;s{ge(),me(),ye(),St=[],Xt=!1,dr=-1,La.prototype.run=function(){this.fun.apply(null,this.array)},Oo="browser",ko="x64",To="browser",Po={PATH:"/usr/bin",LANG:navigator.language+".UTF-8",PWD:"/",HOME:"/home",TMP:"/tmp"},Co=["/usr/bin/node"],Ro=[],jo="v16.8.0",Mo={},Bo=function(f,h){console.warn((h?h+": ":"")+f)},No=function(f){mo("binding")},Uo=function(f){return 0},Lo=function(){return"/"},Do=function(f){},Fo={name:"node",sourceUrl:"",headersUrl:"",libUrl:""},Wo=ht,$o=[],qo={},Vo=!1,zo={},Ko=ht,Ho=ht,vr=function(){return{}},Go=vr,Qo=vr,Yo=ht,Jo=ht,Xo=ht,Zo={},es={inspector:!1,debug:!1,uv:!1,ipv6:!1,tls_alpn:!1,tls_sni:!1,tls_ocsp:!1,tls:!1,cached_builtins:!0},ts=ht,rs=ht,ns=ht,is=ht,os=ht,ss=ht,as=ht,ls=void 0,us=void 0,cs=void 0,hs=ht,fs=2,ps=1,ds="/bin/usr/node",gs=9229,ys="node",ms=[],bs=ht,kt={now:typeof performance<"u"?performance.now.bind(performance):void 0,timing:typeof performance<"u"?performance.timing:void 0},kt.now===void 0&&(sn=Date.now(),kt.timing&&kt.timing.navigationStart&&(sn=kt.timing.navigationStart),kt.now=()=>Date.now()-sn),Lr=1e9,on.bigint=function(f){var h=on(f);return typeof BigInt>"u"?h[0]*Lr+h[1]:BigInt(h[0]*Lr)+BigInt(h[1])},vs=10,ws={},_s=0,Ss=Nt,Es=Nt,As=Nt,xs=Nt,Is=Nt,Os=ht,ks=Nt,Ts=Nt,bo={version:jo,versions:Mo,arch:ko,platform:To,release:Fo,_rawDebug:Wo,moduleLoadList:$o,binding:No,_linkedBinding:_c,_events:ws,_eventsCount:_s,_maxListeners:vs,on:Nt,addListener:Ss,once:Es,off:As,removeListener:xs,removeAllListeners:Is,emit:Os,prependListener:ks,prependOnceListener:Ts,listeners:kc,domain:qo,_exiting:Vo,config:zo,dlopen:Sc,uptime:Oc,_getActiveRequests:Ec,_getActiveHandles:Ac,reallyExit:Ko,_kill:Ho,cpuUsage:vr,resourceUsage:Go,memoryUsage:Qo,kill:Yo,exit:Jo,openStdin:Xo,allowedNodeEnvironmentFlags:Zo,assert:xc,features:es,_fatalExceptions:ts,setUncaughtExceptionCaptureCallback:rs,hasUncaughtExceptionCaptureCallback:Ic,emitWarning:Bo,nextTick:wc,_tickCallback:ns,_debugProcess:is,_debugEnd:os,_startProfilerIdleNotifier:ss,_stopProfilerIdleNotifier:as,stdout:ls,stdin:cs,stderr:us,abort:hs,umask:Uo,chdir:Do,cwd:Lo,env:Po,title:Oo,argv:Co,execArgv:Ro,pid:fs,ppid:ps,execPath:ds,debugPort:gs,hrtime:on,argv0:ys,_preload_modules:ms,setSourceMapsEnabled:bs}});function Tc(){if(Ji)return Dr;Ji=!0;var f=bo;function h(n){if(typeof n!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(n))}function s(n,r){for(var t="",e=0,i=-1,l=0,d,p=0;p<=n.length;++p){if(p2){var g=t.lastIndexOf("/");if(g!==t.length-1){g===-1?(t="",e=0):(t=t.slice(0,g),e=t.length-1-t.lastIndexOf("/")),i=p,l=0;continue}}else if(t.length===2||t.length===1){t="",e=0,i=p,l=0;continue}}r&&(t.length>0?t+="/..":t="..",e=2)}else t.length>0?t+="/"+n.slice(i+1,p):t=n.slice(i+1,p),e=p-i-1;i=p,l=0}else d===46&&l!==-1?++l:l=-1}return t}function a(n,r){var t=r.dir||r.root,e=r.base||(r.name||"")+(r.ext||"");return t?t===r.root?t+e:t+n+e:e}var c={resolve:function(){for(var n="",r=!1,t,e=arguments.length-1;e>=-1&&!r;e--){var i;e>=0?i=arguments[e]:(t===void 0&&(t=f.cwd()),i=t),h(i),i.length!==0&&(n=i+"/"+n,r=i.charCodeAt(0)===47)}return n=s(n,!r),r?n.length>0?"/"+n:"/":n.length>0?n:"."},normalize:function(n){if(h(n),n.length===0)return".";var r=n.charCodeAt(0)===47,t=n.charCodeAt(n.length-1)===47;return n=s(n,!r),n.length===0&&!r&&(n="."),n.length>0&&t&&(n+="/"),r?"/"+n:n},isAbsolute:function(n){return h(n),n.length>0&&n.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var n,r=0;r0&&(n===void 0?n=t:n+="/"+t)}return n===void 0?".":c.normalize(n)},relative:function(n,r){if(h(n),h(r),n===r||(n=c.resolve(n),r=c.resolve(r),n===r))return"";for(var t=1;tg){if(r.charCodeAt(l+E)===47)return r.slice(l+E+1);if(E===0)return r.slice(l+E)}else i>g&&(n.charCodeAt(t+E)===47?b=E:E===0&&(b=0));break}var S=n.charCodeAt(t+E),x=r.charCodeAt(l+E);if(S!==x)break;S===47&&(b=E)}var y="";for(E=t+b+1;E<=e;++E)(E===e||n.charCodeAt(E)===47)&&(y.length===0?y+="..":y+="/..");return y.length>0?y+r.slice(l+b):(l+=b,r.charCodeAt(l)===47&&++l,r.slice(l))},_makeLong:function(n){return n},dirname:function(n){if(h(n),n.length===0)return".";for(var r=n.charCodeAt(0),t=r===47,e=-1,i=!0,l=n.length-1;l>=1;--l)if(r=n.charCodeAt(l),r===47){if(!i){e=l;break}}else i=!1;return e===-1?t?"/":".":t&&e===1?"//":n.slice(0,e)},basename:function(n,r){if(r!==void 0&&typeof r!="string")throw new TypeError('"ext" argument must be a string');h(n);var t=0,e=-1,i=!0,l;if(r!==void 0&&r.length>0&&r.length<=n.length){if(r.length===n.length&&r===n)return"";var d=r.length-1,p=-1;for(l=n.length-1;l>=0;--l){var g=n.charCodeAt(l);if(g===47){if(!i){t=l+1;break}}else p===-1&&(i=!1,p=l+1),d>=0&&(g===r.charCodeAt(d)?--d===-1&&(e=l):(d=-1,e=p))}return t===e?e=p:e===-1&&(e=n.length),n.slice(t,e)}else{for(l=n.length-1;l>=0;--l)if(n.charCodeAt(l)===47){if(!i){t=l+1;break}}else e===-1&&(i=!1,e=l+1);return e===-1?"":n.slice(t,e)}},extname:function(n){h(n);for(var r=-1,t=0,e=-1,i=!0,l=0,d=n.length-1;d>=0;--d){var p=n.charCodeAt(d);if(p===47){if(!i){t=d+1;break}continue}e===-1&&(i=!1,e=d+1),p===46?r===-1?r=d:l!==1&&(l=1):r!==-1&&(l=-1)}return r===-1||e===-1||l===0||l===1&&r===e-1&&r===t+1?"":n.slice(r,e)},format:function(n){if(n===null||typeof n!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof n);return a("/",n)},parse:function(n){h(n);var r={root:"",dir:"",base:"",ext:"",name:""};if(n.length===0)return r;var t=n.charCodeAt(0),e=t===47,i;e?(r.root="/",i=1):i=0;for(var l=-1,d=0,p=-1,g=!0,b=n.length-1,E=0;b>=i;--b){if(t=n.charCodeAt(b),t===47){if(!g){d=b+1;break}continue}p===-1&&(g=!1,p=b+1),t===46?l===-1?l=b:E!==1&&(E=1):l!==-1&&(E=-1)}return l===-1||p===-1||E===0||E===1&&l===p-1&&l===d+1?p!==-1&&(d===0&&e?r.base=r.name=n.slice(1,p):r.base=r.name=n.slice(d,p)):(d===0&&e?(r.name=n.slice(1,l),r.base=n.slice(1,p)):(r.name=n.slice(d,l),r.base=n.slice(d,p)),r.ext=n.slice(l,p)),d>0?r.dir=n.slice(0,d-1):e&&(r.dir="/"),r},sep:"/",delimiter:":",win32:null,posix:null};return c.posix=c,Dr=c,Dr}var Dr,Ji,Xi,Pc=yt(()=>{ge(),me(),ye(),Da(),Dr={},Ji=!1,Xi=Tc()}),Fa={};or(Fa,{URL:()=>Ya,Url:()=>za,default:()=>ft,fileURLToPath:()=>$a,format:()=>Ka,parse:()=>Qa,pathToFileURL:()=>qa,resolve:()=>Ha,resolveObject:()=>Ga});function Cc(){if(Zi)return Fr;Zi=!0;var f=typeof Map=="function"&&Map.prototype,h=Object.getOwnPropertyDescriptor&&f?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,s=f&&h&&typeof h.get=="function"?h.get:null,a=f&&Map.prototype.forEach,c=typeof Set=="function"&&Set.prototype,n=Object.getOwnPropertyDescriptor&&c?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,r=c&&n&&typeof n.get=="function"?n.get:null,t=c&&Set.prototype.forEach,e=typeof WeakMap=="function"&&WeakMap.prototype,i=e?WeakMap.prototype.has:null,l=typeof WeakSet=="function"&&WeakSet.prototype,d=l?WeakSet.prototype.has:null,p=typeof WeakRef=="function"&&WeakRef.prototype,g=p?WeakRef.prototype.deref:null,b=Boolean.prototype.valueOf,E=Object.prototype.toString,S=Function.prototype.toString,x=String.prototype.match,y=String.prototype.slice,v=String.prototype.replace,A=String.prototype.toUpperCase,_=String.prototype.toLowerCase,R=RegExp.prototype.test,w=Array.prototype.concat,O=Array.prototype.join,T=Array.prototype.slice,M=Math.floor,U=typeof BigInt=="function"?BigInt.prototype.valueOf:null,k=Object.getOwnPropertySymbols,z=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,G=typeof Symbol=="function"&&typeof Symbol.iterator=="object",q=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===G||!0)?Symbol.toStringTag:null,he=Object.prototype.propertyIsEnumerable,ne=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function($){return $.__proto__}:null);function te($,ie){if($===1/0||$===-1/0||$!==$||$&&$>-1e3&&$<1e3||R.call(/e/,ie))return ie;var Re=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof $=="number"){var Te=$<0?-M(-$):M($);if(Te!==$){var Le=String(Te),Ue=y.call(ie,Le.length+1);return v.call(Le,Re,"$&_")+"."+v.call(v.call(Ue,/([0-9]{3})/g,"$&_"),/_$/,"")}}return v.call(ie,Re,"$&_")}var ce=Va,V=ce.custom,le=J(V)?V:null;Fr=function $(ie,Re,Te,Le){var Ue=Re||{};if(pe(Ue,"quoteStyle")&&Ue.quoteStyle!=="single"&&Ue.quoteStyle!=="double")throw new TypeError('option "quoteStyle" must be "single" or "double"');if(pe(Ue,"maxStringLength")&&(typeof Ue.maxStringLength=="number"?Ue.maxStringLength<0&&Ue.maxStringLength!==1/0:Ue.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var Xe=pe(Ue,"customInspect")?Ue.customInspect:!0;if(typeof Xe!="boolean"&&Xe!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(pe(Ue,"indent")&&Ue.indent!==null&&Ue.indent!==" "&&!(parseInt(Ue.indent,10)===Ue.indent&&Ue.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(pe(Ue,"numericSeparator")&&typeof Ue.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var Fe=Ue.numericSeparator;if(typeof ie>"u")return"undefined";if(ie===null)return"null";if(typeof ie=="boolean")return ie?"true":"false";if(typeof ie=="string")return fe(ie,Ue);if(typeof ie=="number"){if(ie===0)return 1/0/ie>0?"0":"-0";var We=String(ie);return Fe?te(ie,We):We}if(typeof ie=="bigint"){var je=String(ie)+"n";return Fe?te(ie,je):je}var tt=typeof Ue.depth>"u"?5:Ue.depth;if(typeof Te>"u"&&(Te=0),Te>=tt&&tt>0&&typeof ie=="object")return Z(ie)?"[Array]":"[Object]";var He=N(Ue,Te);if(typeof Le>"u")Le=[];else if(se(Le,ie)>=0)return"[Circular]";function $e(ze,bt,At){if(bt&&(Le=T.call(Le),Le.push(bt)),At){var Qe={depth:Ue.depth};return pe(Ue,"quoteStyle")&&(Qe.quoteStyle=Ue.quoteStyle),$(ze,Qe,Te+1,Le)}return $(ze,Ue,Te+1,Le)}if(typeof ie=="function"&&!Ae(ie)){var nt=H(ie),dt=de(ie,$e);return"[Function"+(nt?": "+nt:" (anonymous)")+"]"+(dt.length>0?" { "+O.call(dt,", ")+" }":"")}if(J(ie)){var lt=G?v.call(String(ie),/^(Symbol\(.*\))_[^)]*$/,"$1"):z.call(ie);return typeof ie=="object"&&!G?o(lt):lt}if(Oe(ie)){for(var j="<"+_.call(String(ie.nodeName)),F=ie.attributes||[],ke=0;ke",j}if(Z(ie)){if(ie.length===0)return"[]";var Pe=de(ie,$e);return He&&!C(Pe)?"["+K(Pe,He)+"]":"[ "+O.call(Pe,", ")+" ]"}if(Y(ie)){var Me=de(ie,$e);return!("cause"in Error.prototype)&&"cause"in ie&&!he.call(ie,"cause")?"{ ["+String(ie)+"] "+O.call(w.call("[cause]: "+$e(ie.cause),Me),", ")+" }":Me.length===0?"["+String(ie)+"]":"{ ["+String(ie)+"] "+O.call(Me,", ")+" }"}if(typeof ie=="object"&&Xe){if(le&&typeof ie[le]=="function"&&ce)return ce(ie,{depth:tt-Te});if(Xe!=="symbol"&&typeof ie.inspect=="function")return ie.inspect()}if(be(ie)){var rt=[];return a&&a.call(ie,function(ze,bt){rt.push($e(bt,ie,!0)+" => "+$e(ze,ie))}),m("Map",s.call(ie),rt,He)}if(Q(ie)){var at=[];return t&&t.call(ie,function(ze){at.push($e(ze,ie))}),m("Set",r.call(ie),at,He)}if(ve(ie))return u("WeakMap");if(_e(ie))return u("WeakSet");if(Ee(ie))return u("WeakRef");if(oe(ie))return o($e(Number(ie)));if(re(ie))return o($e(U.call(ie)));if(X(ie))return o(b.call(ie));if(W(ie))return o($e(String(ie)));if(typeof window<"u"&&ie===window)return"{ [object Window] }";if(typeof globalThis<"u"&&ie===globalThis||typeof Wr<"u"&&ie===Wr)return"{ [object globalThis] }";if(!ue(ie)&&!Ae(ie)){var mt=de(ie,$e),Mt=ne?ne(ie)===Object.prototype:ie instanceof Object||ie.constructor===Object,zt=ie instanceof Object?"":"null prototype",Kt=!Mt&&q&&Object(ie)===ie&&q in ie?y.call(L(ie),8,-1):zt?"Object":"",Ht=Mt||typeof ie.constructor!="function"?"":ie.constructor.name?ie.constructor.name+" ":"",Et=Ht+(Kt||zt?"["+O.call(w.call([],Kt||[],zt||[]),": ")+"] ":"");return mt.length===0?Et+"{}":He?Et+"{"+K(mt,He)+"}":Et+"{ "+O.call(mt,", ")+" }"}return String(ie)};function B($,ie,Re){var Te=(Re.quoteStyle||ie)==="double"?'"':"'";return Te+$+Te}function ee($){return v.call(String($),/"/g,""")}function Z($){return L($)==="[object Array]"&&(!q||!(typeof $=="object"&&q in $))}function ue($){return L($)==="[object Date]"&&(!q||!(typeof $=="object"&&q in $))}function Ae($){return L($)==="[object RegExp]"&&(!q||!(typeof $=="object"&&q in $))}function Y($){return L($)==="[object Error]"&&(!q||!(typeof $=="object"&&q in $))}function W($){return L($)==="[object String]"&&(!q||!(typeof $=="object"&&q in $))}function oe($){return L($)==="[object Number]"&&(!q||!(typeof $=="object"&&q in $))}function X($){return L($)==="[object Boolean]"&&(!q||!(typeof $=="object"&&q in $))}function J($){if(G)return $&&typeof $=="object"&&$ instanceof Symbol;if(typeof $=="symbol")return!0;if(!$||typeof $!="object"||!z)return!1;try{return z.call($),!0}catch{}return!1}function re($){if(!$||typeof $!="object"||!U)return!1;try{return U.call($),!0}catch{}return!1}var we=Object.prototype.hasOwnProperty||function($){return $ in(this||Wr)};function pe($,ie){return we.call($,ie)}function L($){return E.call($)}function H($){if($.name)return $.name;var ie=x.call(S.call($),/^function\s*([\w$]+)/);return ie?ie[1]:null}function se($,ie){if($.indexOf)return $.indexOf(ie);for(var Re=0,Te=$.length;Reie.maxStringLength){var Re=$.length-ie.maxStringLength,Te="... "+Re+" more character"+(Re>1?"s":"");return fe(y.call($,0,ie.maxStringLength),ie)+Te}var Le=v.call(v.call($,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,Be);return B(Le,"single",ie)}function Be($){var ie=$.charCodeAt(0),Re={8:"b",9:"t",10:"n",12:"f",13:"r"}[ie];return Re?"\\"+Re:"\\x"+(ie<16?"0":"")+A.call(ie.toString(16))}function o($){return"Object("+$+")"}function u($){return $+" { ? }"}function m($,ie,Re,Te){var Le=Te?K(Re,Te):O.call(Re,", ");return $+" ("+ie+") {"+Le+"}"}function C($){for(var ie=0;ie<$.length;ie++)if(se($[ie],` -`)>=0)return!1;return!0}function N($,ie){var Re;if($.indent===" ")Re=" ";else if(typeof $.indent=="number"&&$.indent>0)Re=O.call(Array($.indent+1)," ");else return null;return{base:Re,prev:O.call(Array(ie+1),Re)}}function K($,ie){if($.length===0)return"";var Re=` -`+ie.prev+ie.base;return Re+O.call($,","+Re)+` -`+ie.prev}function de($,ie){var Re=Z($),Te=[];if(Re){Te.length=$.length;for(var Le=0;Le<$.length;Le++)Te[Le]=pe($,Le)?ie($[Le],$):""}var Ue=typeof k=="function"?k($):[],Xe;if(G){Xe={};for(var Fe=0;Fe1;){var x=S.pop(),y=x.obj[x.prop];if(s(y)){for(var v=[],A=0;A=i?_.slice(w,w+i):_,T=[],M=0;M=48&&U<=57||U>=65&&U<=90||U>=97&&U<=122||A===f.RFC1738&&(U===40||U===41)){T[T.length]=O.charAt(M);continue}if(U<128){T[T.length]=a[U];continue}if(U<2048){T[T.length]=a[192|U>>6]+a[128|U&63];continue}if(U<55296||U>=57344){T[T.length]=a[224|U>>12]+a[128|U>>6&63]+a[128|U&63];continue}M+=1,U=65536+((U&1023)<<10|O.charCodeAt(M)&1023),T[T.length]=a[240|U>>18]+a[128|U>>12&63]+a[128|U>>6&63]+a[128|U&63]}R+=T.join("")}return R},d=function(S){for(var x=[{obj:{o:S},prop:"o"}],y=[],v=0;v"u"&&(V=0)}if(typeof T=="function"?te=T(x,te):te instanceof Date?te=k(te):y==="comma"&&n(te)&&(te=h.maybeMap(te,function(L){return L instanceof Date?k(L):L})),te===null){if(_)return O&&!q?O(x,l.encoder,he,"key",z):x;te=""}if(d(te)||h.isBuffer(te)){if(O){var ee=q?x:O(x,l.encoder,he,"key",z);return[G(ee)+"="+G(O(te,l.encoder,he,"value",z))]}return[G(x)+"="+G(String(te))]}var Z=[];if(typeof te>"u")return Z;var ue;if(y==="comma"&&n(te))q&&O&&(te=h.maybeMap(te,O)),ue=[{value:te.length>0?te.join(",")||null:void 0}];else if(n(T))ue=T;else{var Ae=Object.keys(te);ue=M?Ae.sort(M):Ae}var Y=w?x.replace(/\./g,"%2E"):x,W=v&&n(te)&&te.length===1?Y+"[]":Y;if(A&&n(te)&&te.length===0)return W+"[]";for(var oe=0;oe"u"?E.encodeDotInKeys===!0?!0:l.allowDots:!!E.allowDots;return{addQueryPrefix:typeof E.addQueryPrefix=="boolean"?E.addQueryPrefix:l.addQueryPrefix,allowDots:_,allowEmptyArrays:typeof E.allowEmptyArrays=="boolean"?!!E.allowEmptyArrays:l.allowEmptyArrays,arrayFormat:A,charset:S,charsetSentinel:typeof E.charsetSentinel=="boolean"?E.charsetSentinel:l.charsetSentinel,commaRoundTrip:E.commaRoundTrip,delimiter:typeof E.delimiter>"u"?l.delimiter:E.delimiter,encode:typeof E.encode=="boolean"?E.encode:l.encode,encodeDotInKeys:typeof E.encodeDotInKeys=="boolean"?E.encodeDotInKeys:l.encodeDotInKeys,encoder:typeof E.encoder=="function"?E.encoder:l.encoder,encodeValuesOnly:typeof E.encodeValuesOnly=="boolean"?E.encodeValuesOnly:l.encodeValuesOnly,filter:v,format:x,formatter:y,serializeDate:typeof E.serializeDate=="function"?E.serializeDate:l.serializeDate,skipNulls:typeof E.skipNulls=="boolean"?E.skipNulls:l.skipNulls,sort:typeof E.sort=="function"?E.sort:null,strictNullHandling:typeof E.strictNullHandling=="boolean"?E.strictNullHandling:l.strictNullHandling}};return zr=function(E,S){var x=E,y=b(S),v,A;typeof y.filter=="function"?(A=y.filter,x=A("",x)):n(y.filter)&&(A=y.filter,v=A);var _=[];if(typeof x!="object"||x===null)return"";var R=c[y.arrayFormat],w=R==="comma"&&y.commaRoundTrip;v||(v=Object.keys(x)),y.sort&&v.sort(y.sort);for(var O=f(),T=0;T0?k+U:""},zr}function Mc(){if(io)return Kr;io=!0;var f=Wa(),h=Object.prototype.hasOwnProperty,s=Array.isArray,a={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:f.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictDepth:!1,strictNullHandling:!1},c=function(p){return p.replace(/&#(\d+);/g,function(g,b){return String.fromCharCode(parseInt(b,10))})},n=function(p,g){return p&&typeof p=="string"&&g.comma&&p.indexOf(",")>-1?p.split(","):p},r="utf8=%26%2310003%3B",t="utf8=%E2%9C%93",e=function(p,g){var b={__proto__:null},E=g.ignoreQueryPrefix?p.replace(/^\?/,""):p;E=E.replace(/%5B/gi,"[").replace(/%5D/gi,"]");var S=g.parameterLimit===1/0?void 0:g.parameterLimit,x=E.split(g.delimiter,S),y=-1,v,A=g.charset;if(g.charsetSentinel)for(v=0;v-1&&(T=s(T)?[T]:T);var M=h.call(b,O);M&&g.duplicates==="combine"?b[O]=f.combine(b[O],T):(!M||g.duplicates==="last")&&(b[O]=T)}return b},i=function(p,g,b,E){for(var S=E?g:n(g,b),x=p.length-1;x>=0;--x){var y,v=p[x];if(v==="[]"&&b.parseArrays)y=b.allowEmptyArrays&&(S===""||b.strictNullHandling&&S===null)?[]:[].concat(S);else{y=b.plainObjects?Object.create(null):{};var A=v.charAt(0)==="["&&v.charAt(v.length-1)==="]"?v.slice(1,-1):v,_=b.decodeDotInKeys?A.replace(/%2E/g,"."):A,R=parseInt(_,10);!b.parseArrays&&_===""?y={0:S}:!isNaN(R)&&v!==_&&String(R)===_&&R>=0&&b.parseArrays&&R<=b.arrayLimit?(y=[],y[R]=S):_!=="__proto__"&&(y[_]=S)}S=y}return S},l=function(p,g,b,E){if(p){var S=b.allowDots?p.replace(/\.([^.[]+)/g,"[$1]"):p,x=/(\[[^[\]]*])/,y=/(\[[^[\]]*])/g,v=b.depth>0&&x.exec(S),A=v?S.slice(0,v.index):S,_=[];if(A){if(!b.plainObjects&&h.call(Object.prototype,A)&&!b.allowPrototypes)return;_.push(A)}for(var R=0;b.depth>0&&(v=y.exec(S))!==null&&R"u"?a.charset:p.charset,b=typeof p.duplicates>"u"?a.duplicates:p.duplicates;if(b!=="combine"&&b!=="first"&&b!=="last")throw new TypeError("The duplicates option must be either combine, first, or last");var E=typeof p.allowDots>"u"?p.decodeDotInKeys===!0?!0:a.allowDots:!!p.allowDots;return{allowDots:E,allowEmptyArrays:typeof p.allowEmptyArrays=="boolean"?!!p.allowEmptyArrays:a.allowEmptyArrays,allowPrototypes:typeof p.allowPrototypes=="boolean"?p.allowPrototypes:a.allowPrototypes,allowSparse:typeof p.allowSparse=="boolean"?p.allowSparse:a.allowSparse,arrayLimit:typeof p.arrayLimit=="number"?p.arrayLimit:a.arrayLimit,charset:g,charsetSentinel:typeof p.charsetSentinel=="boolean"?p.charsetSentinel:a.charsetSentinel,comma:typeof p.comma=="boolean"?p.comma:a.comma,decodeDotInKeys:typeof p.decodeDotInKeys=="boolean"?p.decodeDotInKeys:a.decodeDotInKeys,decoder:typeof p.decoder=="function"?p.decoder:a.decoder,delimiter:typeof p.delimiter=="string"||f.isRegExp(p.delimiter)?p.delimiter:a.delimiter,depth:typeof p.depth=="number"||p.depth===!1?+p.depth:a.depth,duplicates:b,ignoreQueryPrefix:p.ignoreQueryPrefix===!0,interpretNumericEntities:typeof p.interpretNumericEntities=="boolean"?p.interpretNumericEntities:a.interpretNumericEntities,parameterLimit:typeof p.parameterLimit=="number"?p.parameterLimit:a.parameterLimit,parseArrays:p.parseArrays!==!1,plainObjects:typeof p.plainObjects=="boolean"?p.plainObjects:a.plainObjects,strictDepth:typeof p.strictDepth=="boolean"?!!p.strictDepth:a.strictDepth,strictNullHandling:typeof p.strictNullHandling=="boolean"?p.strictNullHandling:a.strictNullHandling}};return Kr=function(p,g){var b=d(g);if(p===""||p===null||typeof p>"u")return b.plainObjects?Object.create(null):{};for(var E=typeof p=="string"?e(p,b):p,S=b.plainObjects?Object.create(null):{},x=Object.keys(E),y=0;y",'"',"`"," ","\r",` -`," "],r=["{","}","|","\\","^","`"].concat(n),t=["'"].concat(r),e=["%","/","?",";","#"].concat(t),i=["/","?","#"],l=255,d=/^[+a-z0-9A-Z_-]{0,63}$/,p=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,g={javascript:!0,"javascript:":!0},b={javascript:!0,"javascript:":!0},E={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},S=Bc();function x(_,R,w){if(_&&typeof _=="object"&&_ instanceof h)return _;var O=new h;return O.parse(_,R,w),O}h.prototype.parse=function(_,R,w){if(typeof _!="string")throw new TypeError("Parameter 'url' must be a string, not "+typeof _);var O=_.indexOf("?"),T=O!==-1&&O<_.indexOf("#")?"?":"#",M=_.split(T),U=/\\/g;M[0]=M[0].replace(U,"/"),_=M.join(T);var k=_;if(k=k.trim(),!w&&_.split("#").length===1){var z=c.exec(k);if(z)return this.path=k,this.href=k,this.pathname=z[1],z[2]?(this.search=z[2],R?this.query=S.parse(this.search.substr(1)):this.query=this.search.substr(1)):R&&(this.search="",this.query={}),this}var G=s.exec(k);if(G){G=G[0];var q=G.toLowerCase();this.protocol=q,k=k.substr(G.length)}if(w||G||k.match(/^\/\/[^@/]+@[^@/]+/)){var he=k.substr(0,2)==="//";he&&!(G&&b[G])&&(k=k.substr(2),this.slashes=!0)}if(!b[G]&&(he||G&&!E[G])){for(var ne=-1,te=0;te127?Ae+="x":Ae+=ue[Y];if(!Ae.match(d)){var oe=ee.slice(0,te),X=ee.slice(te+1),J=ue.match(p);J&&(oe.push(J[1]),X.unshift(J[2])),X.length&&(k="/"+X.join(".")+k),this.hostname=oe.join(".");break}}}this.hostname.length>l?this.hostname="":this.hostname=this.hostname.toLowerCase(),B||(this.hostname=f.toASCII(this.hostname));var re=this.port?":"+this.port:"",we=this.hostname||"";this.host=we+re,this.href+=this.host,B&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),k[0]!=="/"&&(k="/"+k))}if(!g[q])for(var te=0,Z=t.length;te0?w.host.split("@"):!1;Ae&&(w.auth=Ae.shift(),w.hostname=Ae.shift(),w.host=w.hostname)}return w.search=_.search,w.query=_.query,(w.pathname!==null||w.search!==null)&&(w.path=(w.pathname?w.pathname:"")+(w.search?w.search:"")),w.href=w.format(),w}if(!ee.length)return w.pathname=null,w.search?w.path="/"+w.search:w.path=null,w.href=w.format(),w;for(var Y=ee.slice(-1)[0],W=(w.host||_.host||ee.length>1)&&(Y==="."||Y==="..")||Y==="",oe=0,X=ee.length;X>=0;X--)Y=ee[X],Y==="."?ee.splice(X,1):Y===".."?(ee.splice(X,1),oe++):oe&&(ee.splice(X,1),oe--);if(!le&&!B)for(;oe--;oe)ee.unshift("..");le&&ee[0]!==""&&(!ee[0]||ee[0].charAt(0)!=="/")&&ee.unshift(""),W&&ee.join("/").substr(-1)!=="/"&&ee.push("");var J=ee[0]===""||ee[0]&&ee[0].charAt(0)==="/";if(ue){w.hostname=J?"":ee.length?ee.shift():"",w.host=w.hostname;var Ae=w.host&&w.host.indexOf("@")>0?w.host.split("@"):!1;Ae&&(w.auth=Ae.shift(),w.hostname=Ae.shift(),w.host=w.hostname)}return le=le||w.host&&ee.length,le&&!J&&ee.unshift(""),ee.length>0?w.pathname=ee.join("/"):(w.pathname=null,w.path=null),(w.pathname!==null||w.search!==null)&&(w.path=(w.pathname?w.pathname:"")+(w.search?w.search:"")),w.auth=_.auth||w.auth,w.slashes=w.slashes||_.slashes,w.href=w.format(),w},h.prototype.parseHost=function(){var _=this.host,R=a.exec(_);R&&(R=R[0],R!==":"&&(this.port=R.substr(1)),_=_.substr(0,_.length-R.length)),_&&(this.hostname=_)},$t.parse=x,$t.resolve=v,$t.resolveObject=A,$t.format=y,$t.Url=h,$t}function $a(f){if(typeof f=="string")f=new URL(f);else if(!(f instanceof URL))throw new Deno.errors.InvalidData("invalid argument path , must be a string or URL");if(f.protocol!=="file:")throw new Deno.errors.InvalidData("invalid url scheme");return Qr?Uc(f):Lc(f)}function Uc(f){let h=f.hostname,s=f.pathname;for(let a=0;ael||c!==":")throw new Deno.errors.InvalidData("file url path must be absolute");return s.slice(1)}}function Lc(f){if(f.hostname!=="")throw new Deno.errors.InvalidData("invalid file url hostname");let h=f.pathname;for(let s=0;s{ge(),me(),ye(),rc(),bc(),Pc(),Da(),Va=Object.freeze(Object.create(null)),Fr={},Zi=!1,Wr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:global,$r={},eo=!1,qr={},to=!1,Vr={},ro=!1,zr={},no=!1,Kr={},io=!1,Hr={},oo=!1,$t={},so=!1,ft=Nc(),ft.parse,ft.resolve,ft.resolveObject,ft.format,ft.Url,Ps=typeof Deno<"u"?Deno.build.os==="windows"?"win32":Deno.build.os:void 0,ft.URL=typeof URL<"u"?URL:null,ft.pathToFileURL=qa,ft.fileURLToPath=$a,za=ft.Url,Ka=ft.format,Ha=ft.resolve,Ga=ft.resolveObject,Qa=ft.parse,Ya=ft.URL,Ja=92,Xa=47,Za=97,el=122,Qr=Ps==="win32",tl=/\//g,rl=/%/g,nl=/\\/g,il=/\n/g,ol=/\r/g,sl=/\t/g}),Fc=Se((f,h)=>{ge(),me(),ye(),h.exports=function(){throw new Error("ws does not work in the browser. Browser clients must use the native WebSocket object")}}),wo=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0}),f.BufferedDuplex=void 0,f.writev=a;var h=tr(),s=(st(),Ke(ot));function a(n,r){let t=new Array(n.length);for(let e=0;e{!this.destroyed&&this.readable&&this.push(e)})}_read(n){this.proxy.read(n)}_write(n,r,t){this.isSocketOpen?this.writeToProxy(n,r,t):this.writeQueue.push({chunk:n,encoding:r,cb:t})}_final(n){this.writeQueue=[],this.proxy.end(n)}_destroy(n,r){this.writeQueue=[],this.proxy.destroy(),r(n)}socketReady(){this.emit("connect"),this.isSocketOpen=!0,this.processWriteQueue()}writeToProxy(n,r,t){this.proxy.write(n,r)===!1?this.proxy.once("drain",t):t()}processWriteQueue(){for(;this.writeQueue.length>0;){let{chunk:n,encoding:r,cb:t}=this.writeQueue.shift();this.writeToProxy(n,r,t)}}};f.BufferedDuplex=c}),wr=Se(f=>{ge(),me(),ye();var h=f&&f.__importDefault||function(x){return x&&x.__esModule?x:{default:x}};Object.defineProperty(f,"__esModule",{value:!0}),f.streamBuilder=f.browserStreamBuilder=void 0;var s=(st(),Ke(ot)),a=h(Fc()),c=h(Pt()),n=tr(),r=h(tn()),t=wo(),e=(0,c.default)("mqttjs:ws"),i=["rejectUnauthorized","ca","cert","key","pfx","passphrase"];function l(x,y){let v=`${x.protocol}://${x.hostname}:${x.port}${x.path}`;return typeof x.transformWsUrl=="function"&&(v=x.transformWsUrl(v,x,y)),v}function d(x){let y=x;return x.port||(x.protocol==="wss"?y.port=443:y.port=80),x.path||(y.path="/"),x.wsOptions||(y.wsOptions={}),!r.default&&!x.forceNativeWebSocket&&x.protocol==="wss"&&i.forEach(v=>{Object.prototype.hasOwnProperty.call(x,v)&&!Object.prototype.hasOwnProperty.call(x.wsOptions,v)&&(y.wsOptions[v]=x[v])}),y}function p(x){let y=d(x);if(y.hostname||(y.hostname=y.host),!y.hostname){if(typeof document>"u")throw new Error("Could not determine host. Specify host manually.");let v=new URL(document.URL);y.hostname=v.hostname,y.port||(y.port=Number(v.port))}return y.objectMode===void 0&&(y.objectMode=!(y.binary===!0||y.binary===void 0)),y}function g(x,y,v){e("createWebSocket"),e(`protocol: ${v.protocolId} ${v.protocolVersion}`);let A=v.protocolId==="MQIsdp"&&v.protocolVersion===3?"mqttv3.1":"mqtt";e(`creating new Websocket for url: ${y} and protocol: ${A}`);let _;return v.createWebsocket?_=v.createWebsocket(y,[A],v):_=new a.default(y,[A],v.wsOptions),_}function b(x,y){let v=y.protocolId==="MQIsdp"&&y.protocolVersion===3?"mqttv3.1":"mqtt",A=l(y,x),_;return y.createWebsocket?_=y.createWebsocket(A,[v],y):_=new WebSocket(A,[v]),_.binaryType="arraybuffer",_}var E=(x,y)=>{e("streamBuilder");let v=d(y);v.hostname=v.hostname||v.host||"localhost";let A=l(v,x),_=g(x,A,v),R=a.default.createWebSocketStream(_,v.wsOptions);return R.url=A,_.on("close",()=>{R.destroy()}),R};f.streamBuilder=E;var S=(x,y)=>{e("browserStreamBuilder");let v,A=p(y).browserBufferSize||1024*512,_=y.browserBufferTimeout||1e3,R=!y.objectMode,w=b(x,y),O=M(y,q,he);y.objectMode||(O._writev=t.writev.bind(O)),O.on("close",()=>{w.close()});let T=typeof w.addEventListener<"u";w.readyState===w.OPEN?(v=O,v.socket=w):(v=new t.BufferedDuplex(y,O,w),T?w.addEventListener("open",U):w.onopen=U),T?(w.addEventListener("close",k),w.addEventListener("error",z),w.addEventListener("message",G)):(w.onclose=k,w.onerror=z,w.onmessage=G);function M(ne,te,ce){let V=new n.Transform({objectMode:ne.objectMode});return V._write=te,V._flush=ce,V}function U(){e("WebSocket onOpen"),v instanceof t.BufferedDuplex&&v.socketReady()}function k(ne){e("WebSocket onClose",ne),v.end(),v.destroy()}function z(ne){e("WebSocket onError",ne);let te=new Error("WebSocket error");te.event=ne,v.destroy(te)}async function G(ne){if(!O||O.destroyed||!O.readable)return;let{data:te}=ne;te instanceof ArrayBuffer?te=s.Buffer.from(te):te instanceof Blob?te=s.Buffer.from(await new Response(te).arrayBuffer()):te=s.Buffer.from(te,"utf8"),O.push(te)}function q(ne,te,ce){if(w.bufferedAmount>A){setTimeout(q,_,ne,te,ce);return}R&&typeof ne=="string"&&(ne=s.Buffer.from(ne,"utf8"));try{w.send(ne)}catch(V){return ce(V)}ce()}function he(ne){w.close(),ne()}return v};f.browserStreamBuilder=S}),_o={};or(_o,{Server:()=>Je,Socket:()=>Je,Stream:()=>Je,_createServerHandle:()=>Je,_normalizeArgs:()=>Je,_setSimultaneousAccepts:()=>Je,connect:()=>Je,createConnection:()=>Je,createServer:()=>Je,default:()=>al,isIP:()=>Je,isIPv4:()=>Je,isIPv6:()=>Je});function Je(){throw new Error("Node.js net module is not supported by JSPM core outside of Node.js")}var al,ll=yt(()=>{ge(),me(),ye(),al={_createServerHandle:Je,_normalizeArgs:Je,_setSimultaneousAccepts:Je,connect:Je,createConnection:Je,createServer:Je,isIP:Je,isIPv4:Je,isIPv6:Je,Server:Je,Socket:Je,Stream:Je}}),ul=Se((f,h)=>{ge(),me(),ye(),h.exports={}}),Cs=Se(f=>{ge(),me(),ye();var h=f&&f.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(f,"__esModule",{value:!0});var s=h((ll(),Ke(_o))),a=h(Pt()),c=h(ul()),n=(0,a.default)("mqttjs:tcp"),r=(t,e)=>{if(e.port=e.port||1883,e.hostname=e.hostname||e.host||"localhost",e.socksProxy)return(0,c.default)(e.hostname,e.port,e.socksProxy,{timeout:e.socksTimeout});let{port:i,path:l}=e,d=e.hostname;return n("port %d and host %s",i,d),s.default.createConnection({port:i,host:d,path:l})};f.default=r}),cl={};or(cl,{default:()=>hl});var hl,Wc=yt(()=>{ge(),me(),ye(),hl={}}),Rs=Se(f=>{ge(),me(),ye();var h=f&&f.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(f,"__esModule",{value:!0});var s=(Wc(),Ke(cl)),a=h((ll(),Ke(_o))),c=h(Pt()),n=h(ul()),r=(0,c.default)("mqttjs:tls");function t(i){let{host:l,port:d,socksProxy:p,...g}=i;if(p!==void 0){let b=(0,n.default)(l,d,p,{timeout:i.socksTimeout});return(0,s.connect)({...g,socket:b})}return(0,s.connect)(i)}var e=(i,l)=>{l.port=l.port||8883,l.host=l.hostname||l.host||"localhost",a.default.isIP(l.host)===0&&(l.servername=l.host),l.rejectUnauthorized=l.rejectUnauthorized!==!1,delete l.path,r("port %d host %s rejectUnauthorized %b",l.port,l.host,l.rejectUnauthorized);let d=t(l);d.on("secureConnect",()=>{l.rejectUnauthorized&&!d.authorized?d.emit("error",new Error("TLS not authorized")):d.removeListener("error",p)});function p(g){l.rejectUnauthorized&&i.emit("error",g),d.end()}return d.on("error",p),d};f.default=e}),js=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0});var h=(st(),Ke(ot)),s=tr(),a=wo(),c,n,r;function t(){let p=new s.Transform;return p._write=(g,b,E)=>{c.send({data:g.buffer,success(){E()},fail(S){E(new Error(S))}})},p._flush=g=>{c.close({success(){g()}})},p}function e(p){p.hostname||(p.hostname="localhost"),p.path||(p.path="/"),p.wsOptions||(p.wsOptions={})}function i(p,g){let b=p.protocol==="wxs"?"wss":"ws",E=`${b}://${p.hostname}${p.path}`;return p.port&&p.port!==80&&p.port!==443&&(E=`${b}://${p.hostname}:${p.port}${p.path}`),typeof p.transformWsUrl=="function"&&(E=p.transformWsUrl(E,p,g)),E}function l(){c.onOpen(()=>{r.socketReady()}),c.onMessage(p=>{let{data:g}=p;g instanceof ArrayBuffer?g=h.Buffer.from(g):g=h.Buffer.from(g,"utf8"),n.push(g)}),c.onClose(()=>{r.emit("close"),r.end(),r.destroy()}),c.onError(p=>{let g=new Error(p.errMsg);r.destroy(g)})}var d=(p,g)=>{if(g.hostname=g.hostname||g.host,!g.hostname)throw new Error("Could not determine host. Specify host manually.");let b=g.protocolId==="MQIsdp"&&g.protocolVersion===3?"mqttv3.1":"mqtt";e(g);let E=i(g,p);c=wx.connectSocket({url:E,protocols:[b]}),n=t(),r=new a.BufferedDuplex(g,n,c),r._destroy=(x,y)=>{c.close({success(){y&&y(x)}})};let S=r.destroy;return r.destroy=(x,y)=>(r.destroy=S,setTimeout(()=>{c.close({fail(){r._destroy(x,y)}})},0),r),l(),r};f.default=d}),Ms=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0});var h=(st(),Ke(ot)),s=tr(),a=wo(),c,n,r,t=!1;function e(){let g=new s.Transform;return g._write=(b,E,S)=>{c.sendSocketMessage({data:b.buffer,success(){S()},fail(){S(new Error)}})},g._flush=b=>{c.closeSocket({success(){b()}})},g}function i(g){g.hostname||(g.hostname="localhost"),g.path||(g.path="/"),g.wsOptions||(g.wsOptions={})}function l(g,b){let E=g.protocol==="alis"?"wss":"ws",S=`${E}://${g.hostname}${g.path}`;return g.port&&g.port!==80&&g.port!==443&&(S=`${E}://${g.hostname}:${g.port}${g.path}`),typeof g.transformWsUrl=="function"&&(S=g.transformWsUrl(S,g,b)),S}function d(){t||(t=!0,c.onSocketOpen(()=>{r.socketReady()}),c.onSocketMessage(g=>{if(typeof g.data=="string"){let b=h.Buffer.from(g.data,"base64");n.push(b)}else{let b=new FileReader;b.addEventListener("load",()=>{if(b.result instanceof ArrayBuffer){n.push(h.Buffer.from(b.result));return}n.push(h.Buffer.from(b.result,"utf-8"))}),b.readAsArrayBuffer(g.data)}}),c.onSocketClose(()=>{r.end(),r.destroy()}),c.onSocketError(g=>{r.destroy(g)}))}var p=(g,b)=>{if(b.hostname=b.hostname||b.host,!b.hostname)throw new Error("Could not determine host. Specify host manually.");let E=b.protocolId==="MQIsdp"&&b.protocolVersion===3?"mqttv3.1":"mqtt";i(b);let S=l(b,g);return c=b.my,c.connectSocket({url:S,protocols:E}),n=e(),r=new a.BufferedDuplex(b,n,c),d(),r};f.default=p}),$c=Se(f=>{ge(),me(),ye();var h=f&&f.__importDefault||function(d){return d&&d.__esModule?d:{default:d}};Object.defineProperty(f,"__esModule",{value:!0}),f.connectAsync=l;var s=h(Pt()),a=h((Dc(),Ke(Fa))),c=h(wi()),n=h(tn());typeof Ge?.nextTick!="function"&&(Ge.nextTick=setImmediate);var r=(0,s.default)("mqttjs"),t=null;function e(d){let p;if(d.auth)if(p=d.auth.match(/^(.+):(.+)$/),p){let[,g,b]=p;d.username=g,d.password=b}else d.username=d.auth}function i(d,p){if(r("connecting to an MQTT broker..."),typeof d=="object"&&!p&&(p=d,d=""),p=p||{},d&&typeof d=="string"){let E=a.default.parse(d,!0),S={};if(E.port!=null&&(S.port=Number(E.port)),S.host=E.hostname,S.query=E.query,S.auth=E.auth,S.protocol=E.protocol,S.path=E.path,p={...S,...p},!p.protocol)throw new Error("Missing protocol");p.protocol=p.protocol.replace(/:$/,"")}if(p.unixSocket=p.unixSocket||p.protocol?.includes("+unix"),p.unixSocket?p.protocol=p.protocol.replace("+unix",""):!p.protocol?.startsWith("ws")&&!p.protocol?.startsWith("wx")&&delete p.path,e(p),p.query&&typeof p.query.clientId=="string"&&(p.clientId=p.query.clientId),n.default||p.unixSocket?p.socksProxy=void 0:p.socksProxy===void 0&&typeof Ge<"u"&&(p.socksProxy=Ge.env.MQTTJS_SOCKS_PROXY),p.cert&&p.key)if(p.protocol){if(["mqtts","wss","wxs","alis"].indexOf(p.protocol)===-1)switch(p.protocol){case"mqtt":p.protocol="mqtts";break;case"ws":p.protocol="wss";break;case"wx":p.protocol="wxs";break;case"ali":p.protocol="alis";break;default:throw new Error(`Unknown protocol for secure connection: "${p.protocol}"!`)}}else throw new Error("Missing secure protocol key");if(t||(t={},!n.default&&!p.forceNativeWebSocket?(t.ws=wr().streamBuilder,t.wss=wr().streamBuilder,t.mqtt=Cs().default,t.tcp=Cs().default,t.ssl=Rs().default,t.tls=t.ssl,t.mqtts=Rs().default):(t.ws=wr().browserStreamBuilder,t.wss=wr().browserStreamBuilder,t.wx=js().default,t.wxs=js().default,t.ali=Ms().default,t.alis=Ms().default)),!t[p.protocol]){let E=["mqtts","wss"].indexOf(p.protocol)!==-1;p.protocol=["mqtt","mqtts","ws","wss","wx","wxs","ali","alis"].filter((S,x)=>E&&x%2===0?!1:typeof t[S]=="function")[0]}if(p.clean===!1&&!p.clientId)throw new Error("Missing clientId for unclean clients");p.protocol&&(p.defaultProtocol=p.protocol);function g(E){return p.servers&&((!E._reconnectCount||E._reconnectCount===p.servers.length)&&(E._reconnectCount=0),p.host=p.servers[E._reconnectCount].host,p.port=p.servers[E._reconnectCount].port,p.protocol=p.servers[E._reconnectCount].protocol?p.servers[E._reconnectCount].protocol:p.defaultProtocol,p.hostname=p.host,E._reconnectCount++),r("calling streambuilder for",p.protocol),t[p.protocol](E,p)}let b=new c.default(g,p);return b.on("error",()=>{}),b}function l(d,p,g=!0){return new Promise((b,E)=>{let S=i(d,p),x={connect:v=>{y(),b(S)},end:()=>{y(),b(S)},error:v=>{y(),S.end(),E(v)}};g===!1&&(x.close=()=>{x.error(new Error("Couldn't connect to server"))});function y(){Object.keys(x).forEach(v=>{S.off(v,x[v])})}Object.keys(x).forEach(v=>{S.on(v,x[v])})})}f.default=i}),Bs=Se(f=>{ge(),me(),ye();var h=f&&f.__createBinding||(Object.create?function(g,b,E,S){S===void 0&&(S=E);var x=Object.getOwnPropertyDescriptor(b,E);(!x||("get"in x?!b.__esModule:x.writable||x.configurable))&&(x={enumerable:!0,get:function(){return b[E]}}),Object.defineProperty(g,S,x)}:function(g,b,E,S){S===void 0&&(S=E),g[S]=b[E]}),s=f&&f.__setModuleDefault||(Object.create?function(g,b){Object.defineProperty(g,"default",{enumerable:!0,value:b})}:function(g,b){g.default=b}),a=f&&f.__importStar||(function(){var g=function(b){return g=Object.getOwnPropertyNames||function(E){var S=[];for(var x in E)Object.prototype.hasOwnProperty.call(E,x)&&(S[S.length]=x);return S},g(b)};return function(b){if(b&&b.__esModule)return b;var E={};if(b!=null)for(var S=g(b),x=0;x{ge(),me(),ye();var h=f&&f.__createBinding||(Object.create?function(r,t,e,i){i===void 0&&(i=e);var l=Object.getOwnPropertyDescriptor(t,e);(!l||("get"in l?!t.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return t[e]}}),Object.defineProperty(r,i,l)}:function(r,t,e,i){i===void 0&&(i=e),r[i]=t[e]}),s=f&&f.__setModuleDefault||(Object.create?function(r,t){Object.defineProperty(r,"default",{enumerable:!0,value:t})}:function(r,t){r.default=t}),a=f&&f.__importStar||(function(){var r=function(t){return r=Object.getOwnPropertyNames||function(e){var i=[];for(var l in e)Object.prototype.hasOwnProperty.call(e,l)&&(i[i.length]=l);return i},r(t)};return function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var i=r(t),l=0;l{throw TypeError(f)};var Ml=(f,h,s)=>h in f?jl(f,h,{enumerable:!0,configurable:!0,writable:!0,value:s}):f[h]=s;var it=(f,h,s)=>Ml(f,typeof h!="symbol"?h+"":h,s),rn=(f,h,s)=>h.has(f)||xo("Cannot "+s);var D=(f,h,s)=>(rn(f,h,"read from private field"),s?s.call(f):h.get(f)),qe=(f,h,s)=>h.has(f)?xo("Cannot add the same private member more than once"):h instanceof WeakSet?h.add(f):h.set(f,s),De=(f,h,s,a)=>(rn(f,h,"write to private field"),a?a.call(f,s):h.set(f,s),s),Ne=(f,h,s)=>(rn(f,h,"access private method"),s);var br=(f,h,s,a)=>({set _(c){De(f,h,c,s)},get _(){return D(f,h,a)}});import{ae as Bl,r as Io,a as Ie}from"./index-CmDneGoC.js";var ao=Object.defineProperty,Nl=Object.getOwnPropertyDescriptor,Ul=Object.getOwnPropertyNames,Ll=Object.prototype.hasOwnProperty,yt=(f,h)=>()=>(f&&(h=f(f=0)),h),Se=(f,h)=>()=>(h||f((h={exports:{}}).exports,h),h.exports),or=(f,h)=>{for(var s in h)ao(f,s,{get:h[s],enumerable:!0})},Dl=(f,h,s,a)=>{if(h&&typeof h=="object"||typeof h=="function")for(let c of Ul(h))!Ll.call(f,c)&&c!==s&&ao(f,c,{get:()=>h[c],enumerable:!(a=Nl(h,c))||a.enumerable});return f},Ke=f=>Dl(ao({},"__esModule",{value:!0}),f),ge=yt(()=>{}),Ge={};or(Ge,{_debugEnd:()=>Fn,_debugProcess:()=>Dn,_events:()=>ti,_eventsCount:()=>ri,_exiting:()=>xn,_fatalExceptions:()=>Nn,_getActiveHandles:()=>$s,_getActiveRequests:()=>Ws,_kill:()=>Pn,_linkedBinding:()=>Ds,_maxListeners:()=>ei,_preload_modules:()=>Xn,_rawDebug:()=>Sn,_startProfilerIdleNotifier:()=>Wn,_stopProfilerIdleNotifier:()=>$n,_tickCallback:()=>Ln,abort:()=>Kn,addListener:()=>ni,allowedNodeEnvironmentFlags:()=>Mn,arch:()=>ln,argv:()=>hn,argv0:()=>Jn,assert:()=>qs,binding:()=>yn,browser:()=>_n,chdir:()=>vn,config:()=>In,cpuUsage:()=>ur,cwd:()=>bn,debugPort:()=>Yn,default:()=>uo,dlopen:()=>Fs,domain:()=>An,emit:()=>li,emitWarning:()=>gn,env:()=>cn,execArgv:()=>fn,execPath:()=>Qn,exit:()=>Rn,features:()=>Bn,hasUncaughtExceptionCaptureCallback:()=>Vs,hrtime:()=>_r,kill:()=>Cn,listeners:()=>Ks,memoryUsage:()=>Tn,moduleLoadList:()=>En,nextTick:()=>Us,off:()=>oi,on:()=>xt,once:()=>ii,openStdin:()=>jn,pid:()=>Hn,platform:()=>un,ppid:()=>Gn,prependListener:()=>ui,prependOnceListener:()=>ci,reallyExit:()=>On,release:()=>wn,removeAllListeners:()=>ai,removeListener:()=>si,resourceUsage:()=>kn,setSourceMapsEnabled:()=>Zn,setUncaughtExceptionCaptureCallback:()=>Un,stderr:()=>Vn,stdin:()=>zn,stdout:()=>qn,title:()=>an,umask:()=>mn,uptime:()=>zs,version:()=>pn,versions:()=>dn});function lo(f){throw new Error("Node.js process "+f+" is not supported by JSPM core outside of Node.js")}function Fl(){!Jt||!Qt||(Jt=!1,Qt.length?_t=Qt.concat(_t):pr=-1,_t.length&&Ns())}function Ns(){if(!Jt){var f=setTimeout(Fl,0);Jt=!0;for(var h=_t.length;h;){for(Qt=_t,_t=[];++pr1)for(var s=1;s{ge(),me(),ye(),_t=[],Jt=!1,pr=-1,Ls.prototype.run=function(){this.fun.apply(null,this.array)},an="browser",ln="x64",un="browser",cn={PATH:"/usr/bin",LANG:typeof navigator<"u"?navigator.language+".UTF-8":void 0,PWD:"/",HOME:"/home",TMP:"/tmp"},hn=["/usr/bin/node"],fn=[],pn="v16.8.0",dn={},gn=function(f,h){console.warn((h?h+": ":"")+f)},yn=function(f){lo("binding")},mn=function(f){return 0},bn=function(){return"/"},vn=function(f){},wn={name:"node",sourceUrl:"",headersUrl:"",libUrl:""},_n=!0,Sn=ct,En=[],An={},xn=!1,In={},On=ct,Pn=ct,ur=function(){return{}},kn=ur,Tn=ur,Cn=ct,Rn=ct,jn=ct,Mn={},Bn={inspector:!1,debug:!1,uv:!1,ipv6:!1,tls_alpn:!1,tls_sni:!1,tls_ocsp:!1,tls:!1,cached_builtins:!0},Nn=ct,Un=ct,Ln=ct,Dn=ct,Fn=ct,Wn=ct,$n=ct,qn=void 0,Vn=void 0,zn=void 0,Kn=ct,Hn=2,Gn=1,Qn="/bin/usr/node",Yn=9229,Jn="node",Xn=[],Zn=ct,Ot={now:typeof performance<"u"?performance.now.bind(performance):void 0,timing:typeof performance<"u"?performance.timing:void 0},Ot.now===void 0&&(nn=Date.now(),Ot.timing&&Ot.timing.navigationStart&&(nn=Ot.timing.navigationStart),Ot.now=()=>Date.now()-nn),Sr=1e9,_r.bigint=function(f){var h=_r(f);return typeof BigInt>"u"?h[0]*Sr+h[1]:BigInt(h[0]*Sr)+BigInt(h[1])},ei=10,ti={},ri=0,ni=xt,ii=xt,oi=xt,si=xt,ai=xt,li=ct,ui=xt,ci=xt,uo={version:pn,versions:dn,arch:ln,platform:un,browser:_n,release:wn,_rawDebug:Sn,moduleLoadList:En,binding:yn,_linkedBinding:Ds,_events:ti,_eventsCount:ri,_maxListeners:ei,on:xt,addListener:ni,once:ii,off:oi,removeListener:si,removeAllListeners:ai,emit:li,prependListener:ui,prependOnceListener:ci,listeners:Ks,domain:An,_exiting:xn,config:In,dlopen:Fs,uptime:zs,_getActiveRequests:Ws,_getActiveHandles:$s,reallyExit:On,_kill:Pn,cpuUsage:ur,resourceUsage:kn,memoryUsage:Tn,kill:Cn,exit:Rn,openStdin:jn,allowedNodeEnvironmentFlags:Mn,assert:qs,features:Bn,_fatalExceptions:Nn,setUncaughtExceptionCaptureCallback:Un,hasUncaughtExceptionCaptureCallback:Vs,emitWarning:gn,nextTick:Us,_tickCallback:Ln,_debugProcess:Dn,_debugEnd:Fn,_startProfilerIdleNotifier:Wn,_stopProfilerIdleNotifier:$n,stdout:qn,stdin:zn,stderr:Vn,abort:Kn,umask:mn,chdir:vn,cwd:bn,env:cn,title:an,argv:hn,execArgv:fn,pid:Hn,ppid:Gn,execPath:Qn,debugPort:Yn,hrtime:_r,argv0:Jn,_preload_modules:Xn,setSourceMapsEnabled:Zn}}),ye=yt(()=>{Wl()});function $l(){if(hi)return rr;hi=!0,rr.byteLength=t,rr.toByteArray=i,rr.fromByteArray=p;for(var f=[],h=[],s=typeof Uint8Array<"u"?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",c=0,n=a.length;c0)throw new Error("Invalid string. Length must be a multiple of 4");var E=g.indexOf("=");E===-1&&(E=b);var S=E===b?0:4-E%4;return[E,S]}function t(g){var b=r(g),E=b[0],S=b[1];return(E+S)*3/4-S}function e(g,b,E){return(b+E)*3/4-E}function i(g){var b,E=r(g),S=E[0],x=E[1],y=new s(e(g,S,x)),v=0,A=x>0?S-4:S,_;for(_=0;_>16&255,y[v++]=b>>8&255,y[v++]=b&255;return x===2&&(b=h[g.charCodeAt(_)]<<2|h[g.charCodeAt(_+1)]>>4,y[v++]=b&255),x===1&&(b=h[g.charCodeAt(_)]<<10|h[g.charCodeAt(_+1)]<<4|h[g.charCodeAt(_+2)]>>2,y[v++]=b>>8&255,y[v++]=b&255),y}function l(g){return f[g>>18&63]+f[g>>12&63]+f[g>>6&63]+f[g&63]}function d(g,b,E){for(var S,x=[],y=b;yA?A:v+y));return S===1?(b=g[E-1],x.push(f[b>>2]+f[b<<4&63]+"==")):S===2&&(b=(g[E-2]<<8)+g[E-1],x.push(f[b>>10]+f[b>>4&63]+f[b<<2&63]+"=")),x.join("")}return rr}function ql(){return fi?cr:(fi=!0,cr.read=function(f,h,s,a,c){var n,r,t=c*8-a-1,e=(1<>1,l=-7,d=s?c-1:0,p=s?-1:1,g=f[h+d];for(d+=p,n=g&(1<<-l)-1,g>>=-l,l+=t;l>0;n=n*256+f[h+d],d+=p,l-=8);for(r=n&(1<<-l)-1,n>>=-l,l+=a;l>0;r=r*256+f[h+d],d+=p,l-=8);if(n===0)n=1-i;else{if(n===e)return r?NaN:(g?-1:1)*(1/0);r=r+Math.pow(2,a),n=n-i}return(g?-1:1)*r*Math.pow(2,n-a)},cr.write=function(f,h,s,a,c,n){var r,t,e,i=n*8-c-1,l=(1<>1,p=c===23?Math.pow(2,-24)-Math.pow(2,-77):0,g=a?0:n-1,b=a?1:-1,E=h<0||h===0&&1/h<0?1:0;for(h=Math.abs(h),isNaN(h)||h===1/0?(t=isNaN(h)?1:0,r=l):(r=Math.floor(Math.log(h)/Math.LN2),h*(e=Math.pow(2,-r))<1&&(r--,e*=2),r+d>=1?h+=p/e:h+=p*Math.pow(2,1-d),h*e>=2&&(r++,e/=2),r+d>=l?(t=0,r=l):r+d>=1?(t=(h*e-1)*Math.pow(2,c),r=r+d):(t=h*Math.pow(2,d-1)*Math.pow(2,c),r=0));c>=8;f[s+g]=t&255,g+=b,t/=256,c-=8);for(r=r<0;f[s+g]=r&255,g+=b,r/=256,i-=8);f[s+g-b]|=E*128},cr)}function Vl(){if(pi)return Ut;pi=!0;let f=$l(),h=ql(),s=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;Ut.Buffer=r,Ut.SlowBuffer=x,Ut.INSPECT_MAX_BYTES=50;let a=2147483647;Ut.kMaxLength=a,r.TYPED_ARRAY_SUPPORT=c(),!r.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function c(){try{let o=new Uint8Array(1),u={foo:function(){return 42}};return Object.setPrototypeOf(u,Uint8Array.prototype),Object.setPrototypeOf(o,u),o.foo()===42}catch{return!1}}Object.defineProperty(r.prototype,"parent",{enumerable:!0,get:function(){if(r.isBuffer(this))return this.buffer}}),Object.defineProperty(r.prototype,"offset",{enumerable:!0,get:function(){if(r.isBuffer(this))return this.byteOffset}});function n(o){if(o>a)throw new RangeError('The value "'+o+'" is invalid for option "size"');let u=new Uint8Array(o);return Object.setPrototypeOf(u,r.prototype),u}function r(o,u,m){if(typeof o=="number"){if(typeof u=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return l(o)}return t(o,u,m)}r.poolSize=8192;function t(o,u,m){if(typeof o=="string")return d(o,u);if(ArrayBuffer.isView(o))return g(o);if(o==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof o);if(Q(o,ArrayBuffer)||o&&Q(o.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(Q(o,SharedArrayBuffer)||o&&Q(o.buffer,SharedArrayBuffer)))return b(o,u,m);if(typeof o=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let T=o.valueOf&&o.valueOf();if(T!=null&&T!==o)return r.from(T,u,m);let N=E(o);if(N)return N;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof o[Symbol.toPrimitive]=="function")return r.from(o[Symbol.toPrimitive]("string"),u,m);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof o)}r.from=function(o,u,m){return t(o,u,m)},Object.setPrototypeOf(r.prototype,Uint8Array.prototype),Object.setPrototypeOf(r,Uint8Array);function e(o){if(typeof o!="number")throw new TypeError('"size" argument must be of type number');if(o<0)throw new RangeError('The value "'+o+'" is invalid for option "size"')}function i(o,u,m){return e(o),o<=0?n(o):u!==void 0?typeof m=="string"?n(o).fill(u,m):n(o).fill(u):n(o)}r.alloc=function(o,u,m){return i(o,u,m)};function l(o){return e(o),n(o<0?0:S(o)|0)}r.allocUnsafe=function(o){return l(o)},r.allocUnsafeSlow=function(o){return l(o)};function d(o,u){if((typeof u!="string"||u==="")&&(u="utf8"),!r.isEncoding(u))throw new TypeError("Unknown encoding: "+u);let m=y(o,u)|0,T=n(m),N=T.write(o,u);return N!==m&&(T=T.slice(0,N)),T}function p(o){let u=o.length<0?0:S(o.length)|0,m=n(u);for(let T=0;T=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return o|0}function x(o){return+o!=o&&(o=0),r.alloc(+o)}r.isBuffer=function(o){return o!=null&&o._isBuffer===!0&&o!==r.prototype},r.compare=function(o,u){if(Q(o,Uint8Array)&&(o=r.from(o,o.offset,o.byteLength)),Q(u,Uint8Array)&&(u=r.from(u,u.offset,u.byteLength)),!r.isBuffer(o)||!r.isBuffer(u))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(o===u)return 0;let m=o.length,T=u.length;for(let N=0,K=Math.min(m,T);NT.length?(r.isBuffer(K)||(K=r.from(K)),K.copy(T,N)):Uint8Array.prototype.set.call(T,K,N);else if(r.isBuffer(K))K.copy(T,N);else throw new TypeError('"list" argument must be an Array of Buffers');N+=K.length}return T};function y(o,u){if(r.isBuffer(o))return o.length;if(ArrayBuffer.isView(o)||Q(o,ArrayBuffer))return o.byteLength;if(typeof o!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof o);let m=o.length,T=arguments.length>2&&arguments[2]===!0;if(!T&&m===0)return 0;let N=!1;for(;;)switch(u){case"ascii":case"latin1":case"binary":return m;case"utf8":case"utf-8":return H(o).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return m*2;case"hex":return m>>>1;case"base64":return ve(o).length;default:if(N)return T?-1:H(o).length;u=(""+u).toLowerCase(),N=!0}}r.byteLength=y;function v(o,u,m){let T=!1;if((u===void 0||u<0)&&(u=0),u>this.length||((m===void 0||m>this.length)&&(m=this.length),m<=0)||(m>>>=0,u>>>=0,m<=u))return"";for(o||(o="utf8");;)switch(o){case"hex":return te(this,u,m);case"utf8":case"utf-8":return z(this,u,m);case"ascii":return he(this,u,m);case"latin1":case"binary":return ne(this,u,m);case"base64":return P(this,u,m);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ce(this,u,m);default:if(T)throw new TypeError("Unknown encoding: "+o);o=(o+"").toLowerCase(),T=!0}}r.prototype._isBuffer=!0;function A(o,u,m){let T=o[u];o[u]=o[m],o[m]=T}r.prototype.swap16=function(){let o=this.length;if(o%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let u=0;uu&&(o+=" ... "),""},s&&(r.prototype[s]=r.prototype.inspect),r.prototype.compare=function(o,u,m,T,N){if(Q(o,Uint8Array)&&(o=r.from(o,o.offset,o.byteLength)),!r.isBuffer(o))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof o);if(u===void 0&&(u=0),m===void 0&&(m=o?o.length:0),T===void 0&&(T=0),N===void 0&&(N=this.length),u<0||m>o.length||T<0||N>this.length)throw new RangeError("out of range index");if(T>=N&&u>=m)return 0;if(T>=N)return-1;if(u>=m)return 1;if(u>>>=0,m>>>=0,T>>>=0,N>>>=0,this===o)return 0;let K=N-T,de=m-u,$=Math.min(K,de),ie=this.slice(T,N),Re=o.slice(u,m);for(let ke=0;ke<$;++ke)if(ie[ke]!==Re[ke]){K=ie[ke],de=Re[ke];break}return K2147483647?m=2147483647:m<-2147483648&&(m=-2147483648),m=+m,_e(m)&&(m=N?0:o.length-1),m<0&&(m=o.length+m),m>=o.length){if(N)return-1;m=o.length-1}else if(m<0)if(N)m=0;else return-1;if(typeof u=="string"&&(u=r.from(u,T)),r.isBuffer(u))return u.length===0?-1:C(o,u,m,T,N);if(typeof u=="number")return u=u&255,typeof Uint8Array.prototype.indexOf=="function"?N?Uint8Array.prototype.indexOf.call(o,u,m):Uint8Array.prototype.lastIndexOf.call(o,u,m):C(o,[u],m,T,N);throw new TypeError("val must be string, number or Buffer")}function C(o,u,m,T,N){let K=1,de=o.length,$=u.length;if(T!==void 0&&(T=String(T).toLowerCase(),T==="ucs2"||T==="ucs-2"||T==="utf16le"||T==="utf-16le")){if(o.length<2||u.length<2)return-1;K=2,de/=2,$/=2,m/=2}function ie(ke,Le){return K===1?ke[Le]:ke.readUInt16BE(Le*K)}let Re;if(N){let ke=-1;for(Re=m;Rede&&(m=de-$),Re=m;Re>=0;Re--){let ke=!0;for(let Le=0;Le<$;Le++)if(ie(o,Re+Le)!==ie(u,Le)){ke=!1;break}if(ke)return Re}return-1}r.prototype.includes=function(o,u,m){return this.indexOf(o,u,m)!==-1},r.prototype.indexOf=function(o,u,m){return _(this,o,u,m,!0)},r.prototype.lastIndexOf=function(o,u,m){return _(this,o,u,m,!1)};function w(o,u,m,T){m=Number(m)||0;let N=o.length-m;T?(T=Number(T),T>N&&(T=N)):T=N;let K=u.length;T>K/2&&(T=K/2);let de;for(de=0;de>>0,isFinite(m)?(m=m>>>0,T===void 0&&(T="utf8")):(T=m,m=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let N=this.length-u;if((m===void 0||m>N)&&(m=N),o.length>0&&(m<0||u<0)||u>this.length)throw new RangeError("Attempt to write outside buffer bounds");T||(T="utf8");let K=!1;for(;;)switch(T){case"hex":return w(this,o,u,m);case"utf8":case"utf-8":return I(this,o,u,m);case"ascii":case"latin1":case"binary":return k(this,o,u,m);case"base64":return j(this,o,u,m);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return U(this,o,u,m);default:if(K)throw new TypeError("Unknown encoding: "+T);T=(""+T).toLowerCase(),K=!0}},r.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function P(o,u,m){return u===0&&m===o.length?f.fromByteArray(o):f.fromByteArray(o.slice(u,m))}function z(o,u,m){m=Math.min(o.length,m);let T=[],N=u;for(;N239?4:K>223?3:K>191?2:1;if(N+$<=m){let ie,Re,ke,Le;switch($){case 1:K<128&&(de=K);break;case 2:ie=o[N+1],(ie&192)===128&&(Le=(K&31)<<6|ie&63,Le>127&&(de=Le));break;case 3:ie=o[N+1],Re=o[N+2],(ie&192)===128&&(Re&192)===128&&(Le=(K&15)<<12|(ie&63)<<6|Re&63,Le>2047&&(Le<55296||Le>57343)&&(de=Le));break;case 4:ie=o[N+1],Re=o[N+2],ke=o[N+3],(ie&192)===128&&(Re&192)===128&&(ke&192)===128&&(Le=(K&15)<<18|(ie&63)<<12|(Re&63)<<6|ke&63,Le>65535&&Le<1114112&&(de=Le))}}de===null?(de=65533,$=1):de>65535&&(de-=65536,T.push(de>>>10&1023|55296),de=56320|de&1023),T.push(de),N+=$}return q(T)}let G=4096;function q(o){let u=o.length;if(u<=G)return String.fromCharCode.apply(String,o);let m="",T=0;for(;TT)&&(m=T);let N="";for(let K=u;Km&&(o=m),u<0?(u+=m,u<0&&(u=0)):u>m&&(u=m),um)throw new RangeError("Trying to access beyond buffer length")}r.prototype.readUintLE=r.prototype.readUIntLE=function(o,u,m){o=o>>>0,u=u>>>0,m||V(o,u,this.length);let T=this[o],N=1,K=0;for(;++K>>0,u=u>>>0,m||V(o,u,this.length);let T=this[o+--u],N=1;for(;u>0&&(N*=256);)T+=this[o+--u]*N;return T},r.prototype.readUint8=r.prototype.readUInt8=function(o,u){return o=o>>>0,u||V(o,1,this.length),this[o]},r.prototype.readUint16LE=r.prototype.readUInt16LE=function(o,u){return o=o>>>0,u||V(o,2,this.length),this[o]|this[o+1]<<8},r.prototype.readUint16BE=r.prototype.readUInt16BE=function(o,u){return o=o>>>0,u||V(o,2,this.length),this[o]<<8|this[o+1]},r.prototype.readUint32LE=r.prototype.readUInt32LE=function(o,u){return o=o>>>0,u||V(o,4,this.length),(this[o]|this[o+1]<<8|this[o+2]<<16)+this[o+3]*16777216},r.prototype.readUint32BE=r.prototype.readUInt32BE=function(o,u){return o=o>>>0,u||V(o,4,this.length),this[o]*16777216+(this[o+1]<<16|this[o+2]<<8|this[o+3])},r.prototype.readBigUInt64LE=fe(function(o){o=o>>>0,re(o,"offset");let u=this[o],m=this[o+7];(u===void 0||m===void 0)&&we(o,this.length-8);let T=u+this[++o]*2**8+this[++o]*2**16+this[++o]*2**24,N=this[++o]+this[++o]*2**8+this[++o]*2**16+m*2**24;return BigInt(T)+(BigInt(N)<>>0,re(o,"offset");let u=this[o],m=this[o+7];(u===void 0||m===void 0)&&we(o,this.length-8);let T=u*2**24+this[++o]*2**16+this[++o]*2**8+this[++o],N=this[++o]*2**24+this[++o]*2**16+this[++o]*2**8+m;return(BigInt(T)<>>0,u=u>>>0,m||V(o,u,this.length);let T=this[o],N=1,K=0;for(;++K=N&&(T-=Math.pow(2,8*u)),T},r.prototype.readIntBE=function(o,u,m){o=o>>>0,u=u>>>0,m||V(o,u,this.length);let T=u,N=1,K=this[o+--T];for(;T>0&&(N*=256);)K+=this[o+--T]*N;return N*=128,K>=N&&(K-=Math.pow(2,8*u)),K},r.prototype.readInt8=function(o,u){return o=o>>>0,u||V(o,1,this.length),this[o]&128?(255-this[o]+1)*-1:this[o]},r.prototype.readInt16LE=function(o,u){o=o>>>0,u||V(o,2,this.length);let m=this[o]|this[o+1]<<8;return m&32768?m|4294901760:m},r.prototype.readInt16BE=function(o,u){o=o>>>0,u||V(o,2,this.length);let m=this[o+1]|this[o]<<8;return m&32768?m|4294901760:m},r.prototype.readInt32LE=function(o,u){return o=o>>>0,u||V(o,4,this.length),this[o]|this[o+1]<<8|this[o+2]<<16|this[o+3]<<24},r.prototype.readInt32BE=function(o,u){return o=o>>>0,u||V(o,4,this.length),this[o]<<24|this[o+1]<<16|this[o+2]<<8|this[o+3]},r.prototype.readBigInt64LE=fe(function(o){o=o>>>0,re(o,"offset");let u=this[o],m=this[o+7];(u===void 0||m===void 0)&&we(o,this.length-8);let T=this[o+4]+this[o+5]*2**8+this[o+6]*2**16+(m<<24);return(BigInt(T)<>>0,re(o,"offset");let u=this[o],m=this[o+7];(u===void 0||m===void 0)&&we(o,this.length-8);let T=(u<<24)+this[++o]*2**16+this[++o]*2**8+this[++o];return(BigInt(T)<>>0,u||V(o,4,this.length),h.read(this,o,!0,23,4)},r.prototype.readFloatBE=function(o,u){return o=o>>>0,u||V(o,4,this.length),h.read(this,o,!1,23,4)},r.prototype.readDoubleLE=function(o,u){return o=o>>>0,u||V(o,8,this.length),h.read(this,o,!0,52,8)},r.prototype.readDoubleBE=function(o,u){return o=o>>>0,u||V(o,8,this.length),h.read(this,o,!1,52,8)};function le(o,u,m,T,N,K){if(!r.isBuffer(o))throw new TypeError('"buffer" argument must be a Buffer instance');if(u>N||uo.length)throw new RangeError("Index out of range")}r.prototype.writeUintLE=r.prototype.writeUIntLE=function(o,u,m,T){if(o=+o,u=u>>>0,m=m>>>0,!T){let de=Math.pow(2,8*m)-1;le(this,o,u,m,de,0)}let N=1,K=0;for(this[u]=o&255;++K>>0,m=m>>>0,!T){let de=Math.pow(2,8*m)-1;le(this,o,u,m,de,0)}let N=m-1,K=1;for(this[u+N]=o&255;--N>=0&&(K*=256);)this[u+N]=o/K&255;return u+m},r.prototype.writeUint8=r.prototype.writeUInt8=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,1,255,0),this[u]=o&255,u+1},r.prototype.writeUint16LE=r.prototype.writeUInt16LE=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,2,65535,0),this[u]=o&255,this[u+1]=o>>>8,u+2},r.prototype.writeUint16BE=r.prototype.writeUInt16BE=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,2,65535,0),this[u]=o>>>8,this[u+1]=o&255,u+2},r.prototype.writeUint32LE=r.prototype.writeUInt32LE=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,4,4294967295,0),this[u+3]=o>>>24,this[u+2]=o>>>16,this[u+1]=o>>>8,this[u]=o&255,u+4},r.prototype.writeUint32BE=r.prototype.writeUInt32BE=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,4,4294967295,0),this[u]=o>>>24,this[u+1]=o>>>16,this[u+2]=o>>>8,this[u+3]=o&255,u+4};function M(o,u,m,T,N){J(u,T,N,o,m,7);let K=Number(u&BigInt(4294967295));o[m++]=K,K=K>>8,o[m++]=K,K=K>>8,o[m++]=K,K=K>>8,o[m++]=K;let de=Number(u>>BigInt(32)&BigInt(4294967295));return o[m++]=de,de=de>>8,o[m++]=de,de=de>>8,o[m++]=de,de=de>>8,o[m++]=de,m}function ee(o,u,m,T,N){J(u,T,N,o,m,7);let K=Number(u&BigInt(4294967295));o[m+7]=K,K=K>>8,o[m+6]=K,K=K>>8,o[m+5]=K,K=K>>8,o[m+4]=K;let de=Number(u>>BigInt(32)&BigInt(4294967295));return o[m+3]=de,de=de>>8,o[m+2]=de,de=de>>8,o[m+1]=de,de=de>>8,o[m]=de,m+8}r.prototype.writeBigUInt64LE=fe(function(o,u=0){return M(this,o,u,BigInt(0),BigInt("0xffffffffffffffff"))}),r.prototype.writeBigUInt64BE=fe(function(o,u=0){return ee(this,o,u,BigInt(0),BigInt("0xffffffffffffffff"))}),r.prototype.writeIntLE=function(o,u,m,T){if(o=+o,u=u>>>0,!T){let $=Math.pow(2,8*m-1);le(this,o,u,m,$-1,-$)}let N=0,K=1,de=0;for(this[u]=o&255;++N>0)-de&255;return u+m},r.prototype.writeIntBE=function(o,u,m,T){if(o=+o,u=u>>>0,!T){let $=Math.pow(2,8*m-1);le(this,o,u,m,$-1,-$)}let N=m-1,K=1,de=0;for(this[u+N]=o&255;--N>=0&&(K*=256);)o<0&&de===0&&this[u+N+1]!==0&&(de=1),this[u+N]=(o/K>>0)-de&255;return u+m},r.prototype.writeInt8=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,1,127,-128),o<0&&(o=255+o+1),this[u]=o&255,u+1},r.prototype.writeInt16LE=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,2,32767,-32768),this[u]=o&255,this[u+1]=o>>>8,u+2},r.prototype.writeInt16BE=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,2,32767,-32768),this[u]=o>>>8,this[u+1]=o&255,u+2},r.prototype.writeInt32LE=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,4,2147483647,-2147483648),this[u]=o&255,this[u+1]=o>>>8,this[u+2]=o>>>16,this[u+3]=o>>>24,u+4},r.prototype.writeInt32BE=function(o,u,m){return o=+o,u=u>>>0,m||le(this,o,u,4,2147483647,-2147483648),o<0&&(o=4294967295+o+1),this[u]=o>>>24,this[u+1]=o>>>16,this[u+2]=o>>>8,this[u+3]=o&255,u+4},r.prototype.writeBigInt64LE=fe(function(o,u=0){return M(this,o,u,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),r.prototype.writeBigInt64BE=fe(function(o,u=0){return ee(this,o,u,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Z(o,u,m,T,N,K){if(m+T>o.length)throw new RangeError("Index out of range");if(m<0)throw new RangeError("Index out of range")}function ue(o,u,m,T,N){return u=+u,m=m>>>0,N||Z(o,u,m,4),h.write(o,u,m,T,23,4),m+4}r.prototype.writeFloatLE=function(o,u,m){return ue(this,o,u,!0,m)},r.prototype.writeFloatBE=function(o,u,m){return ue(this,o,u,!1,m)};function Ae(o,u,m,T,N){return u=+u,m=m>>>0,N||Z(o,u,m,8),h.write(o,u,m,T,52,8),m+8}r.prototype.writeDoubleLE=function(o,u,m){return Ae(this,o,u,!0,m)},r.prototype.writeDoubleBE=function(o,u,m){return Ae(this,o,u,!1,m)},r.prototype.copy=function(o,u,m,T){if(!r.isBuffer(o))throw new TypeError("argument should be a Buffer");if(m||(m=0),!T&&T!==0&&(T=this.length),u>=o.length&&(u=o.length),u||(u=0),T>0&&T=this.length)throw new RangeError("Index out of range");if(T<0)throw new RangeError("sourceEnd out of bounds");T>this.length&&(T=this.length),o.length-u>>0,m=m===void 0?this.length:m>>>0,o||(o=0);let N;if(typeof o=="number")for(N=u;N2**32?N=oe(String(m)):typeof m=="bigint"&&(N=String(m),(m>BigInt(2)**BigInt(32)||m<-(BigInt(2)**BigInt(32)))&&(N=oe(N)),N+="n"),T+=` It must be ${u}. Received ${N}`,T},RangeError);function oe(o){let u="",m=o.length,T=o[0]==="-"?1:0;for(;m>=T+4;m-=3)u=`_${o.slice(m-3,m)}${u}`;return`${o.slice(0,m)}${u}`}function X(o,u,m){re(u,"offset"),(o[u]===void 0||o[u+m]===void 0)&&we(u,o.length-(m+1))}function J(o,u,m,T,N,K){if(o>m||o= 0${de} and < 2${de} ** ${(K+1)*8}${de}`:$=`>= -(2${de} ** ${(K+1)*8-1}${de}) and < 2 ** ${(K+1)*8-1}${de}`,new Y.ERR_OUT_OF_RANGE("value",$,o)}X(T,N,K)}function re(o,u){if(typeof o!="number")throw new Y.ERR_INVALID_ARG_TYPE(u,"number",o)}function we(o,u,m){throw Math.floor(o)!==o?(re(o,m),new Y.ERR_OUT_OF_RANGE("offset","an integer",o)):u<0?new Y.ERR_BUFFER_OUT_OF_BOUNDS:new Y.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${u}`,o)}let pe=/[^+/0-9A-Za-z-_]/g;function L(o){if(o=o.split("=")[0],o=o.trim().replace(pe,""),o.length<2)return"";for(;o.length%4!==0;)o=o+"=";return o}function H(o,u){u=u||1/0;let m,T=o.length,N=null,K=[];for(let de=0;de55295&&m<57344){if(!N){if(m>56319){(u-=3)>-1&&K.push(239,191,189);continue}else if(de+1===T){(u-=3)>-1&&K.push(239,191,189);continue}N=m;continue}if(m<56320){(u-=3)>-1&&K.push(239,191,189),N=m;continue}m=(N-55296<<10|m-56320)+65536}else N&&(u-=3)>-1&&K.push(239,191,189);if(N=null,m<128){if((u-=1)<0)break;K.push(m)}else if(m<2048){if((u-=2)<0)break;K.push(m>>6|192,m&63|128)}else if(m<65536){if((u-=3)<0)break;K.push(m>>12|224,m>>6&63|128,m&63|128)}else if(m<1114112){if((u-=4)<0)break;K.push(m>>18|240,m>>12&63|128,m>>6&63|128,m&63|128)}else throw new Error("Invalid code point")}return K}function se(o){let u=[];for(let m=0;m>8,N=m%256,K.push(N),K.push(T);return K}function ve(o){return f.toByteArray(L(o))}function Ee(o,u,m,T){let N;for(N=0;N=u.length||N>=o.length);++N)u[N+m]=o[N];return N}function Q(o,u){return o instanceof u||o!=null&&o.constructor!=null&&o.constructor.name!=null&&o.constructor.name===u.name}function _e(o){return o!==o}let Oe=(function(){let o="0123456789abcdef",u=new Array(256);for(let m=0;m<16;++m){let T=m*16;for(let N=0;N<16;++N)u[T+N]=o[m]+o[N]}return u})();function fe(o){return typeof BigInt>"u"?Be:o}function Be(){throw new Error("BigInt not supported")}return Ut}var rr,hi,cr,fi,Ut,pi,zl=yt(()=>{ge(),me(),ye(),rr={},hi=!1,cr={},fi=!1,Ut={},pi=!1}),ot={};or(ot,{Buffer:()=>Gr,INSPECT_MAX_BYTES:()=>Hs,default:()=>It,kMaxLength:()=>Gs});var It,Gr,Hs,Gs,st=yt(()=>{ge(),me(),ye(),zl(),It=Vl(),It.Buffer,It.SlowBuffer,It.INSPECT_MAX_BYTES,It.kMaxLength,Gr=It.Buffer,Hs=It.INSPECT_MAX_BYTES,Gs=It.kMaxLength}),me=yt(()=>{st()}),Ze=Se((f,h)=>{ge(),me(),ye();var s=class extends Error{constructor(a){if(!Array.isArray(a))throw new TypeError(`Expected input to be an Array, got ${typeof a}`);let c="";for(let n=0;n{ge(),me(),ye(),h.exports={format(s,...a){return s.replace(/%([sdifj])/g,function(...[c,n]){let r=a.shift();return n==="f"?r.toFixed(6):n==="j"?JSON.stringify(r):n==="s"&&typeof r=="object"?`${r.constructor!==Object?r.constructor.name:""} {}`.trim():r.toString()})},inspect(s){switch(typeof s){case"string":if(s.includes("'"))if(s.includes('"')){if(!s.includes("`")&&!s.includes("${"))return`\`${s}\``}else return`"${s}"`;return`'${s}'`;case"number":return isNaN(s)?"NaN":Object.is(s,-0)?String(s):s;case"bigint":return`${String(s)}n`;case"boolean":case"undefined":return String(s);case"object":return"{}"}}}}),pt=Se((f,h)=>{ge(),me(),ye();var{format:s,inspect:a}=Qs(),{AggregateError:c}=Ze(),n=globalThis.AggregateError||c,r=Symbol("kIsNodeError"),t=["string","function","number","object","Function","Object","boolean","bigint","symbol"],e=/^([A-Z][a-z0-9]*)+$/,i="__node_internal_",l={};function d(y,v){if(!y)throw new l.ERR_INTERNAL_ASSERTION(v)}function p(y){let v="",A=y.length,_=y[0]==="-"?1:0;for(;A>=_+4;A-=3)v=`_${y.slice(A-3,A)}${v}`;return`${y.slice(0,A)}${v}`}function g(y,v,A){if(typeof v=="function")return d(v.length<=A.length,`Code: ${y}; The provided arguments length (${A.length}) does not match the required ones (${v.length}).`),v(...A);let _=(v.match(/%[dfijoOs]/g)||[]).length;return d(_===A.length,`Code: ${y}; The provided arguments length (${A.length}) does not match the required ones (${_}).`),A.length===0?v:s(v,...A)}function b(y,v,A){A||(A=Error);class _ extends A{constructor(...w){super(g(y,v,w))}toString(){return`${this.name} [${y}]: ${this.message}`}}Object.defineProperties(_.prototype,{name:{value:A.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${y}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),_.prototype.code=y,_.prototype[r]=!0,l[y]=_}function E(y){let v=i+y.name;return Object.defineProperty(y,"name",{value:v}),y}function S(y,v){if(y&&v&&y!==v){if(Array.isArray(v.errors))return v.errors.push(y),v;let A=new n([v,y],v.message);return A.code=v.code,A}return y||v}var x=class extends Error{constructor(y="The operation was aborted",v=void 0){if(v!==void 0&&typeof v!="object")throw new l.ERR_INVALID_ARG_TYPE("options","Object",v);super(y,v),this.code="ABORT_ERR",this.name="AbortError"}};b("ERR_ASSERTION","%s",Error),b("ERR_INVALID_ARG_TYPE",(y,v,A)=>{d(typeof y=="string","'name' must be a string"),Array.isArray(v)||(v=[v]);let _="The ";y.endsWith(" argument")?_+=`${y} `:_+=`"${y}" ${y.includes(".")?"property":"argument"} `,_+="must be ";let C=[],w=[],I=[];for(let j of v)d(typeof j=="string","All expected entries have to be of type string"),t.includes(j)?C.push(j.toLowerCase()):e.test(j)?w.push(j):(d(j!=="object",'The value "object" should be written as "Object"'),I.push(j));if(w.length>0){let j=C.indexOf("object");j!==-1&&(C.splice(C,j,1),w.push("Object"))}if(C.length>0){switch(C.length){case 1:_+=`of type ${C[0]}`;break;case 2:_+=`one of type ${C[0]} or ${C[1]}`;break;default:{let j=C.pop();_+=`one of type ${C.join(", ")}, or ${j}`}}(w.length>0||I.length>0)&&(_+=" or ")}if(w.length>0){switch(w.length){case 1:_+=`an instance of ${w[0]}`;break;case 2:_+=`an instance of ${w[0]} or ${w[1]}`;break;default:{let j=w.pop();_+=`an instance of ${w.join(", ")}, or ${j}`}}I.length>0&&(_+=" or ")}switch(I.length){case 0:break;case 1:I[0].toLowerCase()!==I[0]&&(_+="an "),_+=`${I[0]}`;break;case 2:_+=`one of ${I[0]} or ${I[1]}`;break;default:{let j=I.pop();_+=`one of ${I.join(", ")}, or ${j}`}}if(A==null)_+=`. Received ${A}`;else if(typeof A=="function"&&A.name)_+=`. Received function ${A.name}`;else if(typeof A=="object"){var k;if((k=A.constructor)!==null&&k!==void 0&&k.name)_+=`. Received an instance of ${A.constructor.name}`;else{let j=a(A,{depth:-1});_+=`. Received ${j}`}}else{let j=a(A,{colors:!1});j.length>25&&(j=`${j.slice(0,25)}...`),_+=`. Received type ${typeof A} (${j})`}return _},TypeError),b("ERR_INVALID_ARG_VALUE",(y,v,A="is invalid")=>{let _=a(v);return _.length>128&&(_=_.slice(0,128)+"..."),`The ${y.includes(".")?"property":"argument"} '${y}' ${A}. Received ${_}`},TypeError),b("ERR_INVALID_RETURN_VALUE",(y,v,A)=>{var _;let C=A!=null&&(_=A.constructor)!==null&&_!==void 0&&_.name?`instance of ${A.constructor.name}`:`type ${typeof A}`;return`Expected ${y} to be returned from the "${v}" function but got ${C}.`},TypeError),b("ERR_MISSING_ARGS",(...y)=>{d(y.length>0,"At least one arg needs to be specified");let v,A=y.length;switch(y=(Array.isArray(y)?y:[y]).map(_=>`"${_}"`).join(" or "),A){case 1:v+=`The ${y[0]} argument`;break;case 2:v+=`The ${y[0]} and ${y[1]} arguments`;break;default:{let _=y.pop();v+=`The ${y.join(", ")}, and ${_} arguments`}break}return`${v} must be specified`},TypeError),b("ERR_OUT_OF_RANGE",(y,v,A)=>{d(v,'Missing "range" argument');let _;if(Number.isInteger(A)&&Math.abs(A)>2**32)_=p(String(A));else if(typeof A=="bigint"){_=String(A);let C=BigInt(2)**BigInt(32);(A>C||A<-C)&&(_=p(_)),_+="n"}else _=a(A);return`The value of "${y}" is out of range. It must be ${v}. Received ${_}`},RangeError),b("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error),b("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error),b("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error),b("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error),b("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error),b("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),b("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error),b("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error),b("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error),b("ERR_STREAM_WRITE_AFTER_END","write after end",Error),b("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError),h.exports={AbortError:x,aggregateTwoErrors:E(S),hideStackFrames:E,codes:l}}),gr=Se((f,h)=>{ge(),me(),ye();var{AbortController:s,AbortSignal:a}=typeof self<"u"?self:typeof window<"u"?window:void 0;h.exports=s,h.exports.AbortSignal=a,h.exports.default=s}),qt={};or(qt,{EventEmitter:()=>Ys,default:()=>nr,defaultMaxListeners:()=>Js,init:()=>Xs,listenerCount:()=>Zs,on:()=>ea,once:()=>ta});function Kl(){if(di)return hr;di=!0;var f=typeof Reflect=="object"?Reflect:null,h=f&&typeof f.apply=="function"?f.apply:function(A,_,C){return Function.prototype.apply.call(A,_,C)},s;f&&typeof f.ownKeys=="function"?s=f.ownKeys:Object.getOwnPropertySymbols?s=function(A){return Object.getOwnPropertyNames(A).concat(Object.getOwnPropertySymbols(A))}:s=function(A){return Object.getOwnPropertyNames(A)};function a(A){console&&console.warn&&console.warn(A)}var c=Number.isNaN||function(A){return A!==A};function n(){n.init.call(this)}hr=n,hr.once=x,n.EventEmitter=n,n.prototype._events=void 0,n.prototype._eventsCount=0,n.prototype._maxListeners=void 0;var r=10;function t(A){if(typeof A!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof A)}Object.defineProperty(n,"defaultMaxListeners",{enumerable:!0,get:function(){return r},set:function(A){if(typeof A!="number"||A<0||c(A))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+A+".");r=A}}),n.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},n.prototype.setMaxListeners=function(A){if(typeof A!="number"||A<0||c(A))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+A+".");return this._maxListeners=A,this};function e(A){return A._maxListeners===void 0?n.defaultMaxListeners:A._maxListeners}n.prototype.getMaxListeners=function(){return e(this)},n.prototype.emit=function(A){for(var _=[],C=1;C0&&(k=_[0]),k instanceof Error)throw k;var j=new Error("Unhandled error."+(k?" ("+k.message+")":""));throw j.context=k,j}var U=I[A];if(U===void 0)return!1;if(typeof U=="function")h(U,this,_);else for(var P=U.length,z=b(U,P),C=0;C0&&j.length>I&&!j.warned){j.warned=!0;var U=new Error("Possible EventEmitter memory leak detected. "+j.length+" "+String(_)+" listeners added. Use emitter.setMaxListeners() to increase limit");U.name="MaxListenersExceededWarning",U.emitter=A,U.type=_,U.count=j.length,a(U)}return A}n.prototype.addListener=function(A,_){return i(this,A,_,!1)},n.prototype.on=n.prototype.addListener,n.prototype.prependListener=function(A,_){return i(this,A,_,!0)};function l(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function d(A,_,C){var w={fired:!1,wrapFn:void 0,target:A,type:_,listener:C},I=l.bind(w);return I.listener=C,w.wrapFn=I,I}n.prototype.once=function(A,_){return t(_),this.on(A,d(this,A,_)),this},n.prototype.prependOnceListener=function(A,_){return t(_),this.prependListener(A,d(this,A,_)),this},n.prototype.removeListener=function(A,_){var C,w,I,k,j;if(t(_),w=this._events,w===void 0)return this;if(C=w[A],C===void 0)return this;if(C===_||C.listener===_)--this._eventsCount===0?this._events=Object.create(null):(delete w[A],w.removeListener&&this.emit("removeListener",A,C.listener||_));else if(typeof C!="function"){for(I=-1,k=C.length-1;k>=0;k--)if(C[k]===_||C[k].listener===_){j=C[k].listener,I=k;break}if(I<0)return this;I===0?C.shift():E(C,I),C.length===1&&(w[A]=C[0]),w.removeListener!==void 0&&this.emit("removeListener",A,j||_)}return this},n.prototype.off=n.prototype.removeListener,n.prototype.removeAllListeners=function(A){var _,C,w;if(C=this._events,C===void 0)return this;if(C.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):C[A]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete C[A]),this;if(arguments.length===0){var I=Object.keys(C),k;for(w=0;w=0;w--)this.removeListener(A,_[w]);return this};function p(A,_,C){var w=A._events;if(w===void 0)return[];var I=w[_];return I===void 0?[]:typeof I=="function"?C?[I.listener||I]:[I]:C?S(I):b(I,I.length)}n.prototype.listeners=function(A){return p(this,A,!0)},n.prototype.rawListeners=function(A){return p(this,A,!1)},n.listenerCount=function(A,_){return typeof A.listenerCount=="function"?A.listenerCount(_):g.call(A,_)},n.prototype.listenerCount=g;function g(A){var _=this._events;if(_!==void 0){var C=_[A];if(typeof C=="function")return 1;if(C!==void 0)return C.length}return 0}n.prototype.eventNames=function(){return this._eventsCount>0?s(this._events):[]};function b(A,_){for(var C=new Array(_),w=0;w<_;++w)C[w]=A[w];return C}function E(A,_){for(;_+1{ge(),me(),ye(),hr={},di=!1,nr=Kl(),nr.once,nr.once=function(f,h){return new Promise((s,a)=>{function c(...r){n!==void 0&&f.removeListener("error",n),s(r)}let n;h!=="error"&&(n=r=>{f.removeListener(name,c),a(r)},f.once("error",n)),f.once(h,c)})},nr.on=function(f,h){let s=[],a=[],c=null,n=!1,r={async next(){let i=s.shift();if(i)return createIterResult(i,!1);if(c){let l=Promise.reject(c);return c=null,l}return n?createIterResult(void 0,!0):new Promise((l,d)=>a.push({resolve:l,reject:d}))},async return(){f.removeListener(h,t),f.removeListener("error",e),n=!0;for(let i of a)i.resolve(createIterResult(void 0,!0));return createIterResult(void 0,!0)},throw(i){c=i,f.removeListener(h,t),f.removeListener("error",e)},[Symbol.asyncIterator](){return this}};return f.on(h,t),f.on("error",e),r;function t(...i){let l=a.shift();l?l.resolve(createIterResult(i,!1)):s.push(i)}function e(i){n=!0;let l=a.shift();l?l.reject(i):c=i,r.return()}},{EventEmitter:Ys,defaultMaxListeners:Js,init:Xs,listenerCount:Zs,on:ea,once:ta}=nr}),gt=Se((f,h)=>{ge(),me(),ye();var s=(st(),Ke(ot)),{format:a,inspect:c}=Qs(),{codes:{ERR_INVALID_ARG_TYPE:n}}=pt(),{kResistStopPropagation:r,AggregateError:t,SymbolDispose:e}=Ze(),i=globalThis.AbortSignal||gr().AbortSignal,l=globalThis.AbortController||gr().AbortController,d=Object.getPrototypeOf(async function(){}).constructor,p=globalThis.Blob||s.Blob,g=typeof p<"u"?function(S){return S instanceof p}:function(S){return!1},b=(S,x)=>{if(S!==void 0&&(S===null||typeof S!="object"||!("aborted"in S)))throw new n(x,"AbortSignal",S)},E=(S,x)=>{if(typeof S!="function")throw new n(x,"Function",S)};h.exports={AggregateError:t,kEmptyObject:Object.freeze({}),once(S){let x=!1;return function(...y){x||(x=!0,S.apply(this,y))}},createDeferredPromise:function(){let S,x;return{promise:new Promise((y,v)=>{S=y,x=v}),resolve:S,reject:x}},promisify(S){return new Promise((x,y)=>{S((v,...A)=>v?y(v):x(...A))})},debuglog(){return function(){}},format:a,inspect:c,types:{isAsyncFunction(S){return S instanceof d},isArrayBufferView(S){return ArrayBuffer.isView(S)}},isBlob:g,deprecate(S,x){return S},addAbortListener:(Zt(),Ke(qt)).addAbortListener||function(S,x){if(S===void 0)throw new n("signal","AbortSignal",S);b(S,"signal"),E(x,"listener");let y;return S.aborted?queueMicrotask(()=>x()):(S.addEventListener("abort",x,{__proto__:null,once:!0,[r]:!0}),y=()=>{S.removeEventListener("abort",x)}),{__proto__:null,[e](){var v;(v=y)===null||v===void 0||v()}}},AbortSignalAny:i.any||function(S){if(S.length===1)return S[0];let x=new l,y=()=>x.abort();return S.forEach(v=>{b(v,"signals"),v.addEventListener("abort",y,{once:!0})}),x.signal.addEventListener("abort",()=>{S.forEach(v=>v.removeEventListener("abort",y))},{once:!0}),x.signal}},h.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")}),yr=Se((f,h)=>{ge(),me(),ye();var{ArrayIsArray:s,ArrayPrototypeIncludes:a,ArrayPrototypeJoin:c,ArrayPrototypeMap:n,NumberIsInteger:r,NumberIsNaN:t,NumberMAX_SAFE_INTEGER:e,NumberMIN_SAFE_INTEGER:i,NumberParseInt:l,ObjectPrototypeHasOwnProperty:d,RegExpPrototypeExec:p,String:g,StringPrototypeToUpperCase:b,StringPrototypeTrim:E}=Ze(),{hideStackFrames:S,codes:{ERR_SOCKET_BAD_PORT:x,ERR_INVALID_ARG_TYPE:y,ERR_INVALID_ARG_VALUE:v,ERR_OUT_OF_RANGE:A,ERR_UNKNOWN_SIGNAL:_}}=pt(),{normalizeEncoding:C}=gt(),{isAsyncFunction:w,isArrayBufferView:I}=gt().types,k={};function j(Q){return Q===(Q|0)}function U(Q){return Q===Q>>>0}var P=/^[0-7]+$/,z="must be a 32-bit unsigned integer or an octal string";function G(Q,_e,Oe){if(typeof Q>"u"&&(Q=Oe),typeof Q=="string"){if(p(P,Q)===null)throw new v(_e,Q,z);Q=l(Q,8)}return ne(Q,_e),Q}var q=S((Q,_e,Oe=i,fe=e)=>{if(typeof Q!="number")throw new y(_e,"number",Q);if(!r(Q))throw new A(_e,"an integer",Q);if(Qfe)throw new A(_e,`>= ${Oe} && <= ${fe}`,Q)}),he=S((Q,_e,Oe=-2147483648,fe=2147483647)=>{if(typeof Q!="number")throw new y(_e,"number",Q);if(!r(Q))throw new A(_e,"an integer",Q);if(Qfe)throw new A(_e,`>= ${Oe} && <= ${fe}`,Q)}),ne=S((Q,_e,Oe=!1)=>{if(typeof Q!="number")throw new y(_e,"number",Q);if(!r(Q))throw new A(_e,"an integer",Q);let fe=Oe?1:0,Be=4294967295;if(QBe)throw new A(_e,`>= ${fe} && <= ${Be}`,Q)});function te(Q,_e){if(typeof Q!="string")throw new y(_e,"string",Q)}function ce(Q,_e,Oe=void 0,fe){if(typeof Q!="number")throw new y(_e,"number",Q);if(Oe!=null&&Qfe||(Oe!=null||fe!=null)&&t(Q))throw new A(_e,`${Oe!=null?`>= ${Oe}`:""}${Oe!=null&&fe!=null?" && ":""}${fe!=null?`<= ${fe}`:""}`,Q)}var V=S((Q,_e,Oe)=>{if(!a(Oe,Q)){let fe="must be one of: "+c(n(Oe,Be=>typeof Be=="string"?`'${Be}'`:g(Be)),", ");throw new v(_e,Q,fe)}});function le(Q,_e){if(typeof Q!="boolean")throw new y(_e,"boolean",Q)}function M(Q,_e,Oe){return Q==null||!d(Q,_e)?Oe:Q[_e]}var ee=S((Q,_e,Oe=null)=>{let fe=M(Oe,"allowArray",!1),Be=M(Oe,"allowFunction",!1);if(!M(Oe,"nullable",!1)&&Q===null||!fe&&s(Q)||typeof Q!="object"&&(!Be||typeof Q!="function"))throw new y(_e,"Object",Q)}),Z=S((Q,_e)=>{if(Q!=null&&typeof Q!="object"&&typeof Q!="function")throw new y(_e,"a dictionary",Q)}),ue=S((Q,_e,Oe=0)=>{if(!s(Q))throw new y(_e,"Array",Q);if(Q.length{if(!I(Q))throw new y(_e,["Buffer","TypedArray","DataView"],Q)});function J(Q,_e){let Oe=C(_e),fe=Q.length;if(Oe==="hex"&&fe%2!==0)throw new v("encoding",_e,`is invalid for data of length ${fe}`)}function re(Q,_e="Port",Oe=!0){if(typeof Q!="number"&&typeof Q!="string"||typeof Q=="string"&&E(Q).length===0||+Q!==+Q>>>0||Q>65535||Q===0&&!Oe)throw new x(_e,Q,Oe);return Q|0}var we=S((Q,_e)=>{if(Q!==void 0&&(Q===null||typeof Q!="object"||!("aborted"in Q)))throw new y(_e,"AbortSignal",Q)}),pe=S((Q,_e)=>{if(typeof Q!="function")throw new y(_e,"Function",Q)}),L=S((Q,_e)=>{if(typeof Q!="function"||w(Q))throw new y(_e,"Function",Q)}),H=S((Q,_e)=>{if(Q!==void 0)throw new y(_e,"undefined",Q)});function se(Q,_e,Oe){if(!a(Oe,Q))throw new y(_e,`('${c(Oe,"|")}')`,Q)}var be=/^(?:<[^>]*>)(?:\s*;\s*[^;"\s]+(?:=(")?[^;"\s]*\1)?)*$/;function ve(Q,_e){if(typeof Q>"u"||!p(be,Q))throw new v(_e,Q,'must be an array or string of format "; rel=preload; as=style"')}function Ee(Q){if(typeof Q=="string")return ve(Q,"hints"),Q;if(s(Q)){let _e=Q.length,Oe="";if(_e===0)return Oe;for(let fe=0;fe<_e;fe++){let Be=Q[fe];ve(Be,"hints"),Oe+=Be,fe!==_e-1&&(Oe+=", ")}return Oe}throw new v("hints",Q,'must be an array or string of format "; rel=preload; as=style"')}h.exports={isInt32:j,isUint32:U,parseFileMode:G,validateArray:ue,validateStringArray:Ae,validateBooleanArray:Y,validateAbortSignalArray:W,validateBoolean:le,validateBuffer:X,validateDictionary:Z,validateEncoding:J,validateFunction:pe,validateInt32:he,validateInteger:q,validateNumber:ce,validateObject:ee,validateOneOf:V,validatePlainFunction:L,validatePort:re,validateSignalName:oe,validateString:te,validateUint32:ne,validateUndefined:H,validateUnion:se,validateAbortSignal:we,validateLinkHeaderValue:Ee}}),er=Se((f,h)=>{ge(),me(),ye();var s=h.exports={},a,c;function n(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?a=setTimeout:a=n}catch{a=n}try{typeof clearTimeout=="function"?c=clearTimeout:c=r}catch{c=r}})();function t(x){if(a===setTimeout)return setTimeout(x,0);if((a===n||!a)&&setTimeout)return a=setTimeout,setTimeout(x,0);try{return a(x,0)}catch{try{return a.call(null,x,0)}catch{return a.call(this,x,0)}}}function e(x){if(c===clearTimeout)return clearTimeout(x);if((c===r||!c)&&clearTimeout)return c=clearTimeout,clearTimeout(x);try{return c(x)}catch{try{return c.call(null,x)}catch{return c.call(this,x)}}}var i=[],l=!1,d,p=-1;function g(){!l||!d||(l=!1,d.length?i=d.concat(i):p=-1,i.length&&b())}function b(){if(!l){var x=t(g);l=!0;for(var y=i.length;y;){for(d=i,i=[];++p1)for(var v=1;v{ge(),me(),ye();var{SymbolAsyncIterator:s,SymbolIterator:a,SymbolFor:c}=Ze(),n=c("nodejs.stream.destroyed"),r=c("nodejs.stream.errored"),t=c("nodejs.stream.readable"),e=c("nodejs.stream.writable"),i=c("nodejs.stream.disturbed"),l=c("nodejs.webstream.isClosedPromise"),d=c("nodejs.webstream.controllerErrorFunction");function p(M,ee=!1){var Z;return!!(M&&typeof M.pipe=="function"&&typeof M.on=="function"&&(!ee||typeof M.pause=="function"&&typeof M.resume=="function")&&(!M._writableState||((Z=M._readableState)===null||Z===void 0?void 0:Z.readable)!==!1)&&(!M._writableState||M._readableState))}function g(M){var ee;return!!(M&&typeof M.write=="function"&&typeof M.on=="function"&&(!M._readableState||((ee=M._writableState)===null||ee===void 0?void 0:ee.writable)!==!1))}function b(M){return!!(M&&typeof M.pipe=="function"&&M._readableState&&typeof M.on=="function"&&typeof M.write=="function")}function E(M){return M&&(M._readableState||M._writableState||typeof M.write=="function"&&typeof M.on=="function"||typeof M.pipe=="function"&&typeof M.on=="function")}function S(M){return!!(M&&!E(M)&&typeof M.pipeThrough=="function"&&typeof M.getReader=="function"&&typeof M.cancel=="function")}function x(M){return!!(M&&!E(M)&&typeof M.getWriter=="function"&&typeof M.abort=="function")}function y(M){return!!(M&&!E(M)&&typeof M.readable=="object"&&typeof M.writable=="object")}function v(M){return S(M)||x(M)||y(M)}function A(M,ee){return M==null?!1:ee===!0?typeof M[s]=="function":ee===!1?typeof M[a]=="function":typeof M[s]=="function"||typeof M[a]=="function"}function _(M){if(!E(M))return null;let ee=M._writableState,Z=M._readableState,ue=ee||Z;return!!(M.destroyed||M[n]||ue!=null&&ue.destroyed)}function C(M){if(!g(M))return null;if(M.writableEnded===!0)return!0;let ee=M._writableState;return ee!=null&&ee.errored?!1:typeof ee?.ended!="boolean"?null:ee.ended}function w(M,ee){if(!g(M))return null;if(M.writableFinished===!0)return!0;let Z=M._writableState;return Z!=null&&Z.errored?!1:typeof Z?.finished!="boolean"?null:!!(Z.finished||ee===!1&&Z.ended===!0&&Z.length===0)}function I(M){if(!p(M))return null;if(M.readableEnded===!0)return!0;let ee=M._readableState;return!ee||ee.errored?!1:typeof ee?.ended!="boolean"?null:ee.ended}function k(M,ee){if(!p(M))return null;let Z=M._readableState;return Z!=null&&Z.errored?!1:typeof Z?.endEmitted!="boolean"?null:!!(Z.endEmitted||ee===!1&&Z.ended===!0&&Z.length===0)}function j(M){return M&&M[t]!=null?M[t]:typeof M?.readable!="boolean"?null:_(M)?!1:p(M)&&M.readable&&!k(M)}function U(M){return M&&M[e]!=null?M[e]:typeof M?.writable!="boolean"?null:_(M)?!1:g(M)&&M.writable&&!C(M)}function P(M,ee){return E(M)?_(M)?!0:!(ee?.readable!==!1&&j(M)||ee?.writable!==!1&&U(M)):null}function z(M){var ee,Z;return E(M)?M.writableErrored?M.writableErrored:(ee=(Z=M._writableState)===null||Z===void 0?void 0:Z.errored)!==null&&ee!==void 0?ee:null:null}function G(M){var ee,Z;return E(M)?M.readableErrored?M.readableErrored:(ee=(Z=M._readableState)===null||Z===void 0?void 0:Z.errored)!==null&&ee!==void 0?ee:null:null}function q(M){if(!E(M))return null;if(typeof M.closed=="boolean")return M.closed;let ee=M._writableState,Z=M._readableState;return typeof ee?.closed=="boolean"||typeof Z?.closed=="boolean"?ee?.closed||Z?.closed:typeof M._closed=="boolean"&&he(M)?M._closed:null}function he(M){return typeof M._closed=="boolean"&&typeof M._defaultKeepAlive=="boolean"&&typeof M._removedConnection=="boolean"&&typeof M._removedContLen=="boolean"}function ne(M){return typeof M._sent100=="boolean"&&he(M)}function te(M){var ee;return typeof M._consuming=="boolean"&&typeof M._dumped=="boolean"&&((ee=M.req)===null||ee===void 0?void 0:ee.upgradeOrConnect)===void 0}function ce(M){if(!E(M))return null;let ee=M._writableState,Z=M._readableState,ue=ee||Z;return!ue&&ne(M)||!!(ue&&ue.autoDestroy&&ue.emitClose&&ue.closed===!1)}function V(M){var ee;return!!(M&&((ee=M[i])!==null&&ee!==void 0?ee:M.readableDidRead||M.readableAborted))}function le(M){var ee,Z,ue,Ae,Y,W,oe,X,J,re;return!!(M&&((ee=(Z=(ue=(Ae=(Y=(W=M[r])!==null&&W!==void 0?W:M.readableErrored)!==null&&Y!==void 0?Y:M.writableErrored)!==null&&Ae!==void 0?Ae:(oe=M._readableState)===null||oe===void 0?void 0:oe.errorEmitted)!==null&&ue!==void 0?ue:(X=M._writableState)===null||X===void 0?void 0:X.errorEmitted)!==null&&Z!==void 0?Z:(J=M._readableState)===null||J===void 0?void 0:J.errored)!==null&&ee!==void 0?ee:!((re=M._writableState)===null||re===void 0)&&re.errored))}h.exports={isDestroyed:_,kIsDestroyed:n,isDisturbed:V,kIsDisturbed:i,isErrored:le,kIsErrored:r,isReadable:j,kIsReadable:t,kIsClosedPromise:l,kControllerErrorFunction:d,kIsWritable:e,isClosed:q,isDuplexNodeStream:b,isFinished:P,isIterable:A,isReadableNodeStream:p,isReadableStream:S,isReadableEnded:I,isReadableFinished:k,isReadableErrored:G,isNodeStream:E,isWebStream:v,isWritable:U,isWritableNodeStream:g,isWritableStream:x,isWritableEnded:C,isWritableFinished:w,isWritableErrored:z,isServerRequest:te,isServerResponse:ne,willEmitClose:ce,isTransformStream:y}}),Vt=Se((f,h)=>{ge(),me(),ye();var s=er(),{AbortError:a,codes:c}=pt(),{ERR_INVALID_ARG_TYPE:n,ERR_STREAM_PREMATURE_CLOSE:r}=c,{kEmptyObject:t,once:e}=gt(),{validateAbortSignal:i,validateFunction:l,validateObject:d,validateBoolean:p}=yr(),{Promise:g,PromisePrototypeThen:b,SymbolDispose:E}=Ze(),{isClosed:S,isReadable:x,isReadableNodeStream:y,isReadableStream:v,isReadableFinished:A,isReadableErrored:_,isWritable:C,isWritableNodeStream:w,isWritableStream:I,isWritableFinished:k,isWritableErrored:j,isNodeStream:U,willEmitClose:P,kIsClosedPromise:z}=Ct(),G;function q(V){return V.setHeader&&typeof V.abort=="function"}var he=()=>{};function ne(V,le,M){var ee,Z;if(arguments.length===2?(M=le,le=t):le==null?le=t:d(le,"options"),l(M,"callback"),i(le.signal,"options.signal"),M=e(M),v(V)||I(V))return te(V,le,M);if(!U(V))throw new n("stream",["ReadableStream","WritableStream","Stream"],V);let ue=(ee=le.readable)!==null&&ee!==void 0?ee:y(V),Ae=(Z=le.writable)!==null&&Z!==void 0?Z:w(V),Y=V._writableState,W=V._readableState,oe=()=>{V.writable||re()},X=P(V)&&y(V)===ue&&w(V)===Ae,J=k(V,!1),re=()=>{J=!0,V.destroyed&&(X=!1),!(X&&(!V.readable||ue))&&(!ue||we)&&M.call(V)},we=A(V,!1),pe=()=>{we=!0,V.destroyed&&(X=!1),!(X&&(!V.writable||Ae))&&(!Ae||J)&&M.call(V)},L=Q=>{M.call(V,Q)},H=S(V),se=()=>{H=!0;let Q=j(V)||_(V);if(Q&&typeof Q!="boolean")return M.call(V,Q);if(ue&&!we&&y(V,!0)&&!A(V,!1))return M.call(V,new r);if(Ae&&!J&&!k(V,!1))return M.call(V,new r);M.call(V)},be=()=>{H=!0;let Q=j(V)||_(V);if(Q&&typeof Q!="boolean")return M.call(V,Q);M.call(V)},ve=()=>{V.req.on("finish",re)};q(V)?(V.on("complete",re),X||V.on("abort",se),V.req?ve():V.on("request",ve)):Ae&&!Y&&(V.on("end",oe),V.on("close",oe)),!X&&typeof V.aborted=="boolean"&&V.on("aborted",se),V.on("end",pe),V.on("finish",re),le.error!==!1&&V.on("error",L),V.on("close",se),H?s.nextTick(se):Y!=null&&Y.errorEmitted||W!=null&&W.errorEmitted?X||s.nextTick(be):(!ue&&(!X||x(V))&&(J||C(V)===!1)||!Ae&&(!X||C(V))&&(we||x(V)===!1)||W&&V.req&&V.aborted)&&s.nextTick(be);let Ee=()=>{M=he,V.removeListener("aborted",se),V.removeListener("complete",re),V.removeListener("abort",se),V.removeListener("request",ve),V.req&&V.req.removeListener("finish",re),V.removeListener("end",oe),V.removeListener("close",oe),V.removeListener("finish",re),V.removeListener("end",pe),V.removeListener("error",L),V.removeListener("close",se)};if(le.signal&&!H){let Q=()=>{let _e=M;Ee(),_e.call(V,new a(void 0,{cause:le.signal.reason}))};if(le.signal.aborted)s.nextTick(Q);else{G=G||gt().addAbortListener;let _e=G(le.signal,Q),Oe=M;M=e((...fe)=>{_e[E](),Oe.apply(V,fe)})}}return Ee}function te(V,le,M){let ee=!1,Z=he;if(le.signal)if(Z=()=>{ee=!0,M.call(V,new a(void 0,{cause:le.signal.reason}))},le.signal.aborted)s.nextTick(Z);else{G=G||gt().addAbortListener;let Ae=G(le.signal,Z),Y=M;M=e((...W)=>{Ae[E](),Y.apply(V,W)})}let ue=(...Ae)=>{ee||s.nextTick(()=>M.apply(V,Ae))};return b(V[z].promise,ue,ue),he}function ce(V,le){var M;let ee=!1;return le===null&&(le=t),(M=le)!==null&&M!==void 0&&M.cleanup&&(p(le.cleanup,"cleanup"),ee=le.cleanup),new g((Z,ue)=>{let Ae=ne(V,le,Y=>{ee&&Ae(),Y?ue(Y):Z()})})}h.exports=ne,h.exports.finished=ce}),sr=Se((f,h)=>{ge(),me(),ye();var s=er(),{aggregateTwoErrors:a,codes:{ERR_MULTIPLE_CALLBACK:c},AbortError:n}=pt(),{Symbol:r}=Ze(),{kIsDestroyed:t,isDestroyed:e,isFinished:i,isServerRequest:l}=Ct(),d=r("kDestroy"),p=r("kConstruct");function g(P,z,G){P&&(P.stack,z&&!z.errored&&(z.errored=P),G&&!G.errored&&(G.errored=P))}function b(P,z){let G=this._readableState,q=this._writableState,he=q||G;return q!=null&&q.destroyed||G!=null&&G.destroyed?(typeof z=="function"&&z(),this):(g(P,q,G),q&&(q.destroyed=!0),G&&(G.destroyed=!0),he.constructed?E(this,P,z):this.once(d,function(ne){E(this,a(ne,P),z)}),this)}function E(P,z,G){let q=!1;function he(ne){if(q)return;q=!0;let te=P._readableState,ce=P._writableState;g(ne,ce,te),ce&&(ce.closed=!0),te&&(te.closed=!0),typeof G=="function"&&G(ne),ne?s.nextTick(S,P,ne):s.nextTick(x,P)}try{P._destroy(z||null,he)}catch(ne){he(ne)}}function S(P,z){y(P,z),x(P)}function x(P){let z=P._readableState,G=P._writableState;G&&(G.closeEmitted=!0),z&&(z.closeEmitted=!0),(G!=null&&G.emitClose||z!=null&&z.emitClose)&&P.emit("close")}function y(P,z){let G=P._readableState,q=P._writableState;q!=null&&q.errorEmitted||G!=null&&G.errorEmitted||(q&&(q.errorEmitted=!0),G&&(G.errorEmitted=!0),P.emit("error",z))}function v(){let P=this._readableState,z=this._writableState;P&&(P.constructed=!0,P.closed=!1,P.closeEmitted=!1,P.destroyed=!1,P.errored=null,P.errorEmitted=!1,P.reading=!1,P.ended=P.readable===!1,P.endEmitted=P.readable===!1),z&&(z.constructed=!0,z.destroyed=!1,z.closed=!1,z.closeEmitted=!1,z.errored=null,z.errorEmitted=!1,z.finalCalled=!1,z.prefinished=!1,z.ended=z.writable===!1,z.ending=z.writable===!1,z.finished=z.writable===!1)}function A(P,z,G){let q=P._readableState,he=P._writableState;if(he!=null&&he.destroyed||q!=null&&q.destroyed)return this;q!=null&&q.autoDestroy||he!=null&&he.autoDestroy?P.destroy(z):z&&(z.stack,he&&!he.errored&&(he.errored=z),q&&!q.errored&&(q.errored=z),G?s.nextTick(y,P,z):y(P,z))}function _(P,z){if(typeof P._construct!="function")return;let G=P._readableState,q=P._writableState;G&&(G.constructed=!1),q&&(q.constructed=!1),P.once(p,z),!(P.listenerCount(p)>1)&&s.nextTick(C,P)}function C(P){let z=!1;function G(q){if(z){A(P,q??new c);return}z=!0;let he=P._readableState,ne=P._writableState,te=ne||he;he&&(he.constructed=!0),ne&&(ne.constructed=!0),te.destroyed?P.emit(d,q):q?A(P,q,!0):s.nextTick(w,P)}try{P._construct(q=>{s.nextTick(G,q)})}catch(q){s.nextTick(G,q)}}function w(P){P.emit(p)}function I(P){return P?.setHeader&&typeof P.abort=="function"}function k(P){P.emit("close")}function j(P,z){P.emit("error",z),s.nextTick(k,P)}function U(P,z){!P||e(P)||(!z&&!i(P)&&(z=new n),l(P)?(P.socket=null,P.destroy(z)):I(P)?P.abort():I(P.req)?P.req.abort():typeof P.destroy=="function"?P.destroy(z):typeof P.close=="function"?P.close():z?s.nextTick(j,P,z):s.nextTick(k,P),P.destroyed||(P[t]=!0))}h.exports={construct:_,destroyer:U,destroy:b,undestroy:v,errorOrDestroy:A}}),co=Se((f,h)=>{ge(),me(),ye();var{ArrayIsArray:s,ObjectSetPrototypeOf:a}=Ze(),{EventEmitter:c}=(Zt(),Ke(qt));function n(t){c.call(this,t)}a(n.prototype,c.prototype),a(n,c),n.prototype.pipe=function(t,e){let i=this;function l(x){t.writable&&t.write(x)===!1&&i.pause&&i.pause()}i.on("data",l);function d(){i.readable&&i.resume&&i.resume()}t.on("drain",d),!t._isStdio&&(!e||e.end!==!1)&&(i.on("end",g),i.on("close",b));let p=!1;function g(){p||(p=!0,t.end())}function b(){p||(p=!0,typeof t.destroy=="function"&&t.destroy())}function E(x){S(),c.listenerCount(this,"error")===0&&this.emit("error",x)}r(i,"error",E),r(t,"error",E);function S(){i.removeListener("data",l),t.removeListener("drain",d),i.removeListener("end",g),i.removeListener("close",b),i.removeListener("error",E),t.removeListener("error",E),i.removeListener("end",S),i.removeListener("close",S),t.removeListener("close",S)}return i.on("end",S),i.on("close",S),t.on("close",S),t.emit("pipe",i),t};function r(t,e,i){if(typeof t.prependListener=="function")return t.prependListener(e,i);!t._events||!t._events[e]?t.on(e,i):s(t._events[e])?t._events[e].unshift(i):t._events[e]=[i,t._events[e]]}h.exports={Stream:n,prependListener:r}}),Yr=Se((f,h)=>{ge(),me(),ye();var{SymbolDispose:s}=Ze(),{AbortError:a,codes:c}=pt(),{isNodeStream:n,isWebStream:r,kControllerErrorFunction:t}=Ct(),e=Vt(),{ERR_INVALID_ARG_TYPE:i}=c,l,d=(p,g)=>{if(typeof p!="object"||!("aborted"in p))throw new i(g,"AbortSignal",p)};h.exports.addAbortSignal=function(p,g){if(d(p,"signal"),!n(g)&&!r(g))throw new i("stream",["ReadableStream","WritableStream","Stream"],g);return h.exports.addAbortSignalNoValidate(p,g)},h.exports.addAbortSignalNoValidate=function(p,g){if(typeof p!="object"||!("aborted"in p))return g;let b=n(g)?()=>{g.destroy(new a(void 0,{cause:p.reason}))}:()=>{g[t](new a(void 0,{cause:p.reason}))};if(p.aborted)b();else{l=l||gt().addAbortListener;let E=l(p,b);e(g,E[s])}return g}}),Hl=Se((f,h)=>{ge(),me(),ye();var{StringPrototypeSlice:s,SymbolIterator:a,TypedArrayPrototypeSet:c,Uint8Array:n}=Ze(),{Buffer:r}=(st(),Ke(ot)),{inspect:t}=gt();h.exports=class{constructor(){this.head=null,this.tail=null,this.length=0}push(e){let i={data:e,next:null};this.length>0?this.tail.next=i:this.head=i,this.tail=i,++this.length}unshift(e){let i={data:e,next:this.head};this.length===0&&(this.tail=i),this.head=i,++this.length}shift(){if(this.length===0)return;let e=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,e}clear(){this.head=this.tail=null,this.length=0}join(e){if(this.length===0)return"";let i=this.head,l=""+i.data;for(;(i=i.next)!==null;)l+=e+i.data;return l}concat(e){if(this.length===0)return r.alloc(0);let i=r.allocUnsafe(e>>>0),l=this.head,d=0;for(;l;)c(i,l.data,d),d+=l.data.length,l=l.next;return i}consume(e,i){let l=this.head.data;if(ep.length)i+=p,e-=p.length;else{e===p.length?(i+=p,++d,l.next?this.head=l.next:this.head=this.tail=null):(i+=s(p,0,e),this.head=l,l.data=s(p,e));break}++d}while((l=l.next)!==null);return this.length-=d,i}_getBuffer(e){let i=r.allocUnsafe(e),l=e,d=this.head,p=0;do{let g=d.data;if(e>g.length)c(i,g,l-e),e-=g.length;else{e===g.length?(c(i,g,l-e),++p,d.next?this.head=d.next:this.head=this.tail=null):(c(i,new n(g.buffer,g.byteOffset,e),l-e),this.head=d,d.data=g.slice(e));break}++p}while((d=d.next)!==null);return this.length-=p,i}[Symbol.for("nodejs.util.inspect.custom")](e,i){return t(this,{...i,depth:0,customInspect:!1})}}}),Jr=Se((f,h)=>{ge(),me(),ye();var{MathFloor:s,NumberIsInteger:a}=Ze(),{validateInteger:c}=yr(),{ERR_INVALID_ARG_VALUE:n}=pt().codes,r=16*1024,t=16;function e(p,g,b){return p.highWaterMark!=null?p.highWaterMark:g?p[b]:null}function i(p){return p?t:r}function l(p,g){c(g,"value",0),p?t=g:r=g}function d(p,g,b,E){let S=e(g,E,b);if(S!=null){if(!a(S)||S<0){let x=E?`options.${b}`:"options.highWaterMark";throw new n(x,S)}return s(S)}return i(p.objectMode)}h.exports={getHighWaterMark:d,getDefaultHighWaterMark:i,setDefaultHighWaterMark:l}}),Gl=Se((f,h)=>{ge(),me(),ye();var s=(st(),Ke(ot)),a=s.Buffer;function c(r,t){for(var e in r)t[e]=r[e]}a.from&&a.alloc&&a.allocUnsafe&&a.allocUnsafeSlow?h.exports=s:(c(s,f),f.Buffer=n);function n(r,t,e){return a(r,t,e)}n.prototype=Object.create(a.prototype),c(a,n),n.from=function(r,t,e){if(typeof r=="number")throw new TypeError("Argument must not be a number");return a(r,t,e)},n.alloc=function(r,t,e){if(typeof r!="number")throw new TypeError("Argument must be a number");var i=a(r);return t!==void 0?typeof e=="string"?i.fill(t,e):i.fill(t):i.fill(0),i},n.allocUnsafe=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return a(r)},n.allocUnsafeSlow=function(r){if(typeof r!="number")throw new TypeError("Argument must be a number");return s.SlowBuffer(r)}}),Ql=Se(f=>{ge(),me(),ye();var h=Gl().Buffer,s=h.isEncoding||function(y){switch(y=""+y,y&&y.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function a(y){if(!y)return"utf8";for(var v;;)switch(y){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return y;default:if(v)return;y=(""+y).toLowerCase(),v=!0}}function c(y){var v=a(y);if(typeof v!="string"&&(h.isEncoding===s||!s(y)))throw new Error("Unknown encoding: "+y);return v||y}f.StringDecoder=n;function n(y){this.encoding=c(y);var v;switch(this.encoding){case"utf16le":this.text=p,this.end=g,v=4;break;case"utf8":this.fillLast=i,v=4;break;case"base64":this.text=b,this.end=E,v=3;break;default:this.write=S,this.end=x;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=h.allocUnsafe(v)}n.prototype.write=function(y){if(y.length===0)return"";var v,A;if(this.lastNeed){if(v=this.fillLast(y),v===void 0)return"";A=this.lastNeed,this.lastNeed=0}else A=0;return A>5===6?2:y>>4===14?3:y>>3===30?4:y>>6===2?-1:-2}function t(y,v,A){var _=v.length-1;if(_=0?(C>0&&(y.lastNeed=C-1),C):--_=0?(C>0&&(y.lastNeed=C-2),C):--_=0?(C>0&&(C===2?C=0:y.lastNeed=C-3),C):0))}function e(y,v,A){if((v[0]&192)!==128)return y.lastNeed=0,"�";if(y.lastNeed>1&&v.length>1){if((v[1]&192)!==128)return y.lastNeed=1,"�";if(y.lastNeed>2&&v.length>2&&(v[2]&192)!==128)return y.lastNeed=2,"�"}}function i(y){var v=this.lastTotal-this.lastNeed,A=e(this,y);if(A!==void 0)return A;if(this.lastNeed<=y.length)return y.copy(this.lastChar,v,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);y.copy(this.lastChar,v,0,y.length),this.lastNeed-=y.length}function l(y,v){var A=t(this,y,v);if(!this.lastNeed)return y.toString("utf8",v);this.lastTotal=A;var _=y.length-(A-this.lastNeed);return y.copy(this.lastChar,0,_),y.toString("utf8",v,_)}function d(y){var v=y&&y.length?this.write(y):"";return this.lastNeed?v+"�":v}function p(y,v){if((y.length-v)%2===0){var A=y.toString("utf16le",v);if(A){var _=A.charCodeAt(A.length-1);if(_>=55296&&_<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=y[y.length-2],this.lastChar[1]=y[y.length-1],A.slice(0,-1)}return A}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=y[y.length-1],y.toString("utf16le",v,y.length-1)}function g(y){var v=y&&y.length?this.write(y):"";if(this.lastNeed){var A=this.lastTotal-this.lastNeed;return v+this.lastChar.toString("utf16le",0,A)}return v}function b(y,v){var A=(y.length-v)%3;return A===0?y.toString("base64",v):(this.lastNeed=3-A,this.lastTotal=3,A===1?this.lastChar[0]=y[y.length-1]:(this.lastChar[0]=y[y.length-2],this.lastChar[1]=y[y.length-1]),y.toString("base64",v,y.length-A))}function E(y){var v=y&&y.length?this.write(y):"";return this.lastNeed?v+this.lastChar.toString("base64",0,3-this.lastNeed):v}function S(y){return y.toString(this.encoding)}function x(y){return y&&y.length?this.write(y):""}}),ra=Se((f,h)=>{ge(),me(),ye();var s=er(),{PromisePrototypeThen:a,SymbolAsyncIterator:c,SymbolIterator:n}=Ze(),{Buffer:r}=(st(),Ke(ot)),{ERR_INVALID_ARG_TYPE:t,ERR_STREAM_NULL_VALUES:e}=pt().codes;function i(l,d,p){let g;if(typeof d=="string"||d instanceof r)return new l({objectMode:!0,...p,read(){this.push(d),this.push(null)}});let b;if(d&&d[c])b=!0,g=d[c]();else if(d&&d[n])b=!1,g=d[n]();else throw new t("iterable",["Iterable"],d);let E=new l({objectMode:!0,highWaterMark:1,...p}),S=!1;E._read=function(){S||(S=!0,y())},E._destroy=function(v,A){a(x(v),()=>s.nextTick(A,v),_=>s.nextTick(A,_||v))};async function x(v){let A=v!=null,_=typeof g.throw=="function";if(A&&_){let{value:C,done:w}=await g.throw(v);if(await C,w)return}if(typeof g.return=="function"){let{value:C}=await g.return();await C}}async function y(){for(;;){try{let{value:v,done:A}=b?await g.next():g.next();if(A)E.push(null);else{let _=v&&typeof v.then=="function"?await v:v;if(_===null)throw S=!1,new e;if(E.push(_))continue;S=!1}}catch(v){E.destroy(v)}break}}return E}h.exports=i}),Xr=Se((f,h)=>{ge(),me(),ye();var s=er(),{ArrayPrototypeIndexOf:a,NumberIsInteger:c,NumberIsNaN:n,NumberParseInt:r,ObjectDefineProperties:t,ObjectKeys:e,ObjectSetPrototypeOf:i,Promise:l,SafeSet:d,SymbolAsyncDispose:p,SymbolAsyncIterator:g,Symbol:b}=Ze();h.exports=fe,fe.ReadableState=Oe;var{EventEmitter:E}=(Zt(),Ke(qt)),{Stream:S,prependListener:x}=co(),{Buffer:y}=(st(),Ke(ot)),{addAbortSignal:v}=Yr(),A=Vt(),_=gt().debuglog("stream",R=>{_=R}),C=Hl(),w=sr(),{getHighWaterMark:I,getDefaultHighWaterMark:k}=Jr(),{aggregateTwoErrors:j,codes:{ERR_INVALID_ARG_TYPE:U,ERR_METHOD_NOT_IMPLEMENTED:P,ERR_OUT_OF_RANGE:z,ERR_STREAM_PUSH_AFTER_EOF:G,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:q},AbortError:he}=pt(),{validateObject:ne}=yr(),te=b("kPaused"),{StringDecoder:ce}=Ql(),V=ra();i(fe.prototype,S.prototype),i(fe,S);var le=()=>{},{errorOrDestroy:M}=w,ee=1,Z=2,ue=4,Ae=8,Y=16,W=32,oe=64,X=128,J=256,re=512,we=1024,pe=2048,L=4096,H=8192,se=16384,be=32768,ve=65536,Ee=1<<17,Q=1<<18;function _e(R){return{enumerable:!1,get(){return(this.state&R)!==0},set(F){F?this.state|=R:this.state&=~R}}}t(Oe.prototype,{objectMode:_e(ee),ended:_e(Z),endEmitted:_e(ue),reading:_e(Ae),constructed:_e(Y),sync:_e(W),needReadable:_e(oe),emittedReadable:_e(X),readableListening:_e(J),resumeScheduled:_e(re),errorEmitted:_e(we),emitClose:_e(pe),autoDestroy:_e(L),destroyed:_e(H),closed:_e(se),closeEmitted:_e(be),multiAwaitDrain:_e(ve),readingMore:_e(Ee),dataEmitted:_e(Q)});function Oe(R,F,Pe){typeof Pe!="boolean"&&(Pe=F instanceof kt()),this.state=pe|L|Y|W,R&&R.objectMode&&(this.state|=ee),Pe&&R&&R.readableObjectMode&&(this.state|=ee),this.highWaterMark=R?I(this,R,"readableHighWaterMark",Pe):k(!1),this.buffer=new C,this.length=0,this.pipes=[],this.flowing=null,this[te]=null,R&&R.emitClose===!1&&(this.state&=~pe),R&&R.autoDestroy===!1&&(this.state&=~L),this.errored=null,this.defaultEncoding=R&&R.defaultEncoding||"utf8",this.awaitDrainWriters=null,this.decoder=null,this.encoding=null,R&&R.encoding&&(this.decoder=new ce(R.encoding),this.encoding=R.encoding)}function fe(R){if(!(this instanceof fe))return new fe(R);let F=this instanceof kt();this._readableState=new Oe(R,this,F),R&&(typeof R.read=="function"&&(this._read=R.read),typeof R.destroy=="function"&&(this._destroy=R.destroy),typeof R.construct=="function"&&(this._construct=R.construct),R.signal&&!F&&v(R.signal,this)),S.call(this,R),w.construct(this,()=>{this._readableState.needReadable&&$(this,this._readableState)})}fe.prototype.destroy=w.destroy,fe.prototype._undestroy=w.undestroy,fe.prototype._destroy=function(R,F){F(R)},fe.prototype[E.captureRejectionSymbol]=function(R){this.destroy(R)},fe.prototype[p]=function(){let R;return this.destroyed||(R=this.readableEnded?null:new he,this.destroy(R)),new l((F,Pe)=>A(this,Te=>Te&&Te!==R?Pe(Te):F(null)))},fe.prototype.push=function(R,F){return Be(this,R,F,!1)},fe.prototype.unshift=function(R,F){return Be(this,R,F,!0)};function Be(R,F,Pe,Te){_("readableAddChunk",F);let Me=R._readableState,rt;if((Me.state&ee)===0&&(typeof F=="string"?(Pe=Pe||Me.defaultEncoding,Me.encoding!==Pe&&(Te&&Me.encoding?F=y.from(F,Pe).toString(Me.encoding):(F=y.from(F,Pe),Pe=""))):F instanceof y?Pe="":S._isUint8Array(F)?(F=S._uint8ArrayToBuffer(F),Pe=""):F!=null&&(rt=new U("chunk",["string","Buffer","Uint8Array"],F))),rt)M(R,rt);else if(F===null)Me.state&=~Ae,N(R,Me);else if((Me.state&ee)!==0||F&&F.length>0)if(Te)if((Me.state&ue)!==0)M(R,new q);else{if(Me.destroyed||Me.errored)return!1;o(R,Me,F,!0)}else if(Me.ended)M(R,new G);else{if(Me.destroyed||Me.errored)return!1;Me.state&=~Ae,Me.decoder&&!Pe?(F=Me.decoder.write(F),Me.objectMode||F.length!==0?o(R,Me,F,!1):$(R,Me)):o(R,Me,F,!1)}else Te||(Me.state&=~Ae,$(R,Me));return!Me.ended&&(Me.length0?((F.state&ve)!==0?F.awaitDrainWriters.clear():F.awaitDrainWriters=null,F.dataEmitted=!0,R.emit("data",Pe)):(F.length+=F.objectMode?1:Pe.length,Te?F.buffer.unshift(Pe):F.buffer.push(Pe),(F.state&oe)!==0&&K(R)),$(R,F)}fe.prototype.isPaused=function(){let R=this._readableState;return R[te]===!0||R.flowing===!1},fe.prototype.setEncoding=function(R){let F=new ce(R);this._readableState.decoder=F,this._readableState.encoding=this._readableState.decoder.encoding;let Pe=this._readableState.buffer,Te="";for(let Me of Pe)Te+=F.write(Me);return Pe.clear(),Te!==""&&Pe.push(Te),this._readableState.length=Te.length,this};var u=1073741824;function m(R){if(R>u)throw new z("size","<= 1GiB",R);return R--,R|=R>>>1,R|=R>>>2,R|=R>>>4,R|=R>>>8,R|=R>>>16,R++,R}function T(R,F){return R<=0||F.length===0&&F.ended?0:(F.state&ee)!==0?1:n(R)?F.flowing&&F.length?F.buffer.first().length:F.length:R<=F.length?R:F.ended?F.length:0}fe.prototype.read=function(R){_("read",R),R===void 0?R=NaN:c(R)||(R=r(R,10));let F=this._readableState,Pe=R;if(R>F.highWaterMark&&(F.highWaterMark=m(R)),R!==0&&(F.state&=~X),R===0&&F.needReadable&&((F.highWaterMark!==0?F.length>=F.highWaterMark:F.length>0)||F.ended))return _("read: emitReadable",F.length,F.ended),F.length===0&&F.ended?He(this):K(this),null;if(R=T(R,F),R===0&&F.ended)return F.length===0&&He(this),null;let Te=(F.state&oe)!==0;if(_("need readable",Te),(F.length===0||F.length-R0?Me=tt(R,F):Me=null,Me===null?(F.needReadable=F.length<=F.highWaterMark,R=0):(F.length-=R,F.multiAwaitDrain?F.awaitDrainWriters.clear():F.awaitDrainWriters=null),F.length===0&&(F.ended||(F.needReadable=!0),Pe!==R&&F.ended&&He(this)),Me!==null&&!F.errorEmitted&&!F.closeEmitted&&(F.dataEmitted=!0,this.emit("data",Me)),Me};function N(R,F){if(_("onEofChunk"),!F.ended){if(F.decoder){let Pe=F.decoder.end();Pe&&Pe.length&&(F.buffer.push(Pe),F.length+=F.objectMode?1:Pe.length)}F.ended=!0,F.sync?K(R):(F.needReadable=!1,F.emittedReadable=!0,de(R))}}function K(R){let F=R._readableState;_("emitReadable",F.needReadable,F.emittedReadable),F.needReadable=!1,F.emittedReadable||(_("emitReadable",F.flowing),F.emittedReadable=!0,s.nextTick(de,R))}function de(R){let F=R._readableState;_("emitReadable_",F.destroyed,F.length,F.ended),!F.destroyed&&!F.errored&&(F.length||F.ended)&&(R.emit("readable"),F.emittedReadable=!1),F.needReadable=!F.flowing&&!F.ended&&F.length<=F.highWaterMark,Fe(R)}function $(R,F){!F.readingMore&&F.constructed&&(F.readingMore=!0,s.nextTick(ie,R,F))}function ie(R,F){for(;!F.reading&&!F.ended&&(F.length1&&Te.pipes.includes(R)&&(_("false write response, pause",Te.awaitDrainWriters.size),Te.awaitDrainWriters.add(R)),Pe.pause()),mt||(mt=Re(Pe,R),R.on("drain",mt))}Pe.on("data",Ht);function Ht(Qe){_("ondata");let wt=R.write(Qe);_("dest.write",wt),wt===!1&&Kt()}function Et(Qe){if(_("onerror",Qe),At(),R.removeListener("error",Et),R.listenerCount("error")===0){let wt=R._writableState||R._readableState;wt&&!wt.errorEmitted?M(R,Qe):R.emit("error",Qe)}}x(R,"error",Et);function ze(){R.removeListener("finish",bt),At()}R.once("close",ze);function bt(){_("onfinish"),R.removeListener("close",ze),At()}R.once("finish",bt);function At(){_("unpipe"),Pe.unpipe(R)}return R.emit("pipe",Pe),R.writableNeedDrain===!0?Kt():Te.flowing||(_("pipe resume"),Pe.resume()),R};function Re(R,F){return function(){let Pe=R._readableState;Pe.awaitDrainWriters===F?(_("pipeOnDrain",1),Pe.awaitDrainWriters=null):Pe.multiAwaitDrain&&(_("pipeOnDrain",Pe.awaitDrainWriters.size),Pe.awaitDrainWriters.delete(F)),(!Pe.awaitDrainWriters||Pe.awaitDrainWriters.size===0)&&R.listenerCount("data")&&R.resume()}}fe.prototype.unpipe=function(R){let F=this._readableState,Pe={hasUnpiped:!1};if(F.pipes.length===0)return this;if(!R){let Me=F.pipes;F.pipes=[],this.pause();for(let rt=0;rt0,Te.flowing!==!1&&this.resume()):R==="readable"&&!Te.endEmitted&&!Te.readableListening&&(Te.readableListening=Te.needReadable=!0,Te.flowing=!1,Te.emittedReadable=!1,_("on readable",Te.length,Te.reading),Te.length?K(this):Te.reading||s.nextTick(Le,this)),Pe},fe.prototype.addListener=fe.prototype.on,fe.prototype.removeListener=function(R,F){let Pe=S.prototype.removeListener.call(this,R,F);return R==="readable"&&s.nextTick(ke,this),Pe},fe.prototype.off=fe.prototype.removeListener,fe.prototype.removeAllListeners=function(R){let F=S.prototype.removeAllListeners.apply(this,arguments);return(R==="readable"||R===void 0)&&s.nextTick(ke,this),F};function ke(R){let F=R._readableState;F.readableListening=R.listenerCount("readable")>0,F.resumeScheduled&&F[te]===!1?F.flowing=!0:R.listenerCount("data")>0?R.resume():F.readableListening||(F.flowing=null)}function Le(R){_("readable nexttick read 0"),R.read(0)}fe.prototype.resume=function(){let R=this._readableState;return R.flowing||(_("resume"),R.flowing=!R.readableListening,Ue(this,R)),R[te]=!1,this};function Ue(R,F){F.resumeScheduled||(F.resumeScheduled=!0,s.nextTick(Xe,R,F))}function Xe(R,F){_("resume",F.reading),F.reading||R.read(0),F.resumeScheduled=!1,R.emit("resume"),Fe(R),F.flowing&&!F.reading&&R.read(0)}fe.prototype.pause=function(){return _("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(_("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState[te]=!0,this};function Fe(R){let F=R._readableState;for(_("flow",F.flowing);F.flowing&&R.read()!==null;);}fe.prototype.wrap=function(R){let F=!1;R.on("data",Te=>{!this.push(Te)&&R.pause&&(F=!0,R.pause())}),R.on("end",()=>{this.push(null)}),R.on("error",Te=>{M(this,Te)}),R.on("close",()=>{this.destroy()}),R.on("destroy",()=>{this.destroy()}),this._read=()=>{F&&R.resume&&(F=!1,R.resume())};let Pe=e(R);for(let Te=1;Te{Me=at?j(Me,at):null,Pe(),Pe=le});try{for(;;){let at=R.destroyed?null:R.read();if(at!==null)yield at;else{if(Me)throw Me;if(Me===null)return;await new l(Te)}}}catch(at){throw Me=j(Me,at),Me}finally{(Me||F?.destroyOnReturn!==!1)&&(Me===void 0||R._readableState.autoDestroy)?w.destroyer(R,null):(R.off("readable",Te),rt())}}t(fe.prototype,{readable:{__proto__:null,get(){let R=this._readableState;return!!R&&R.readable!==!1&&!R.destroyed&&!R.errorEmitted&&!R.endEmitted},set(R){this._readableState&&(this._readableState.readable=!!R)}},readableDidRead:{__proto__:null,enumerable:!1,get:function(){return this._readableState.dataEmitted}},readableAborted:{__proto__:null,enumerable:!1,get:function(){return!!(this._readableState.readable!==!1&&(this._readableState.destroyed||this._readableState.errored)&&!this._readableState.endEmitted)}},readableHighWaterMark:{__proto__:null,enumerable:!1,get:function(){return this._readableState.highWaterMark}},readableBuffer:{__proto__:null,enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}},readableFlowing:{__proto__:null,enumerable:!1,get:function(){return this._readableState.flowing},set:function(R){this._readableState&&(this._readableState.flowing=R)}},readableLength:{__proto__:null,enumerable:!1,get(){return this._readableState.length}},readableObjectMode:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.objectMode:!1}},readableEncoding:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.encoding:null}},errored:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.errored:null}},closed:{__proto__:null,get(){return this._readableState?this._readableState.closed:!1}},destroyed:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.destroyed:!1},set(R){this._readableState&&(this._readableState.destroyed=R)}},readableEnded:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.endEmitted:!1}}}),t(Oe.prototype,{pipesCount:{__proto__:null,get(){return this.pipes.length}},paused:{__proto__:null,get(){return this[te]!==!1},set(R){this[te]=!!R}}}),fe._fromList=tt;function tt(R,F){if(F.length===0)return null;let Pe;return F.objectMode?Pe=F.buffer.shift():!R||R>=F.length?(F.decoder?Pe=F.buffer.join(""):F.buffer.length===1?Pe=F.buffer.first():Pe=F.buffer.concat(F.length),F.buffer.clear()):Pe=F.buffer.consume(R,F.decoder),Pe}function He(R){let F=R._readableState;_("endReadable",F.endEmitted),F.endEmitted||(F.ended=!0,s.nextTick($e,F,R))}function $e(R,F){if(_("endReadableNT",R.endEmitted,R.length),!R.errored&&!R.closeEmitted&&!R.endEmitted&&R.length===0){if(R.endEmitted=!0,F.emit("end"),F.writable&&F.allowHalfOpen===!1)s.nextTick(nt,F);else if(R.autoDestroy){let Pe=F._writableState;(!Pe||Pe.autoDestroy&&(Pe.finished||Pe.writable===!1))&&F.destroy()}}}function nt(R){R.writable&&!R.writableEnded&&!R.destroyed&&R.end()}fe.from=function(R,F){return V(fe,R,F)};var dt;function lt(){return dt===void 0&&(dt={}),dt}fe.fromWeb=function(R,F){return lt().newStreamReadableFromReadableStream(R,F)},fe.toWeb=function(R,F){return lt().newReadableStreamFromStreamReadable(R,F)},fe.wrap=function(R,F){var Pe,Te;return new fe({objectMode:(Pe=(Te=R.readableObjectMode)!==null&&Te!==void 0?Te:R.objectMode)!==null&&Pe!==void 0?Pe:!0,...F,destroy(Me,rt){w.destroyer(R,Me),rt(Me)}}).wrap(R)}}),ho=Se((f,h)=>{ge(),me(),ye();var s=er(),{ArrayPrototypeSlice:a,Error:c,FunctionPrototypeSymbolHasInstance:n,ObjectDefineProperty:r,ObjectDefineProperties:t,ObjectSetPrototypeOf:e,StringPrototypeToLowerCase:i,Symbol:l,SymbolHasInstance:d}=Ze();h.exports=ne,ne.WritableState=q;var{EventEmitter:p}=(Zt(),Ke(qt)),g=co().Stream,{Buffer:b}=(st(),Ke(ot)),E=sr(),{addAbortSignal:S}=Yr(),{getHighWaterMark:x,getDefaultHighWaterMark:y}=Jr(),{ERR_INVALID_ARG_TYPE:v,ERR_METHOD_NOT_IMPLEMENTED:A,ERR_MULTIPLE_CALLBACK:_,ERR_STREAM_CANNOT_PIPE:C,ERR_STREAM_DESTROYED:w,ERR_STREAM_ALREADY_FINISHED:I,ERR_STREAM_NULL_VALUES:k,ERR_STREAM_WRITE_AFTER_END:j,ERR_UNKNOWN_ENCODING:U}=pt().codes,{errorOrDestroy:P}=E;e(ne.prototype,g.prototype),e(ne,g);function z(){}var G=l("kOnFinished");function q(L,H,se){typeof se!="boolean"&&(se=H instanceof kt()),this.objectMode=!!(L&&L.objectMode),se&&(this.objectMode=this.objectMode||!!(L&&L.writableObjectMode)),this.highWaterMark=L?x(this,L,"writableHighWaterMark",se):y(!1),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;let be=!!(L&&L.decodeStrings===!1);this.decodeStrings=!be,this.defaultEncoding=L&&L.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=M.bind(void 0,H),this.writecb=null,this.writelen=0,this.afterWriteTickInfo=null,he(this),this.pendingcb=0,this.constructed=!0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!L||L.emitClose!==!1,this.autoDestroy=!L||L.autoDestroy!==!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this[G]=[]}function he(L){L.buffered=[],L.bufferedIndex=0,L.allBuffers=!0,L.allNoop=!0}q.prototype.getBuffer=function(){return a(this.buffered,this.bufferedIndex)},r(q.prototype,"bufferedRequestCount",{__proto__:null,get(){return this.buffered.length-this.bufferedIndex}});function ne(L){let H=this instanceof kt();if(!H&&!n(ne,this))return new ne(L);this._writableState=new q(L,this,H),L&&(typeof L.write=="function"&&(this._write=L.write),typeof L.writev=="function"&&(this._writev=L.writev),typeof L.destroy=="function"&&(this._destroy=L.destroy),typeof L.final=="function"&&(this._final=L.final),typeof L.construct=="function"&&(this._construct=L.construct),L.signal&&S(L.signal,this)),g.call(this,L),E.construct(this,()=>{let se=this._writableState;se.writing||Ae(this,se),X(this,se)})}r(ne,d,{__proto__:null,value:function(L){return n(this,L)?!0:this!==ne?!1:L&&L._writableState instanceof q}}),ne.prototype.pipe=function(){P(this,new C)};function te(L,H,se,be){let ve=L._writableState;if(typeof se=="function")be=se,se=ve.defaultEncoding;else{if(!se)se=ve.defaultEncoding;else if(se!=="buffer"&&!b.isEncoding(se))throw new U(se);typeof be!="function"&&(be=z)}if(H===null)throw new k;if(!ve.objectMode)if(typeof H=="string")ve.decodeStrings!==!1&&(H=b.from(H,se),se="buffer");else if(H instanceof b)se="buffer";else if(g._isUint8Array(H))H=g._uint8ArrayToBuffer(H),se="buffer";else throw new v("chunk",["string","Buffer","Uint8Array"],H);let Ee;return ve.ending?Ee=new j:ve.destroyed&&(Ee=new w("write")),Ee?(s.nextTick(be,Ee),P(L,Ee,!0),Ee):(ve.pendingcb++,ce(L,ve,H,se,be))}ne.prototype.write=function(L,H,se){return te(this,L,H,se)===!0},ne.prototype.cork=function(){this._writableState.corked++},ne.prototype.uncork=function(){let L=this._writableState;L.corked&&(L.corked--,L.writing||Ae(this,L))},ne.prototype.setDefaultEncoding=function(L){if(typeof L=="string"&&(L=i(L)),!b.isEncoding(L))throw new U(L);return this._writableState.defaultEncoding=L,this};function ce(L,H,se,be,ve){let Ee=H.objectMode?1:se.length;H.length+=Ee;let Q=H.lengthse.bufferedIndex&&Ae(L,se),be?se.afterWriteTickInfo!==null&&se.afterWriteTickInfo.cb===ve?se.afterWriteTickInfo.count++:(se.afterWriteTickInfo={count:1,cb:ve,stream:L,state:se},s.nextTick(ee,se.afterWriteTickInfo)):Z(L,se,1,ve))}function ee({stream:L,state:H,count:se,cb:be}){return H.afterWriteTickInfo=null,Z(L,H,se,be)}function Z(L,H,se,be){for(!H.ending&&!L.destroyed&&H.length===0&&H.needDrain&&(H.needDrain=!1,L.emit("drain"));se-- >0;)H.pendingcb--,be();H.destroyed&&ue(H),X(L,H)}function ue(L){if(L.writing)return;for(let ve=L.bufferedIndex;ve1&&L._writev){H.pendingcb-=Ee-1;let _e=H.allNoop?z:fe=>{for(let Be=Q;Be256?(se.splice(0,Q),H.bufferedIndex=0):H.bufferedIndex=Q}H.bufferProcessing=!1}ne.prototype._write=function(L,H,se){if(this._writev)this._writev([{chunk:L,encoding:H}],se);else throw new A("_write()")},ne.prototype._writev=null,ne.prototype.end=function(L,H,se){let be=this._writableState;typeof L=="function"?(se=L,L=null,H=null):typeof H=="function"&&(se=H,H=null);let ve;if(L!=null){let Ee=te(this,L,H);Ee instanceof c&&(ve=Ee)}return be.corked&&(be.corked=1,this.uncork()),ve||(!be.errored&&!be.ending?(be.ending=!0,X(this,be,!0),be.ended=!0):be.finished?ve=new I("end"):be.destroyed&&(ve=new w("end"))),typeof se=="function"&&(ve||be.finished?s.nextTick(se,ve):be[G].push(se)),this};function Y(L){return L.ending&&!L.destroyed&&L.constructed&&L.length===0&&!L.errored&&L.buffered.length===0&&!L.finished&&!L.writing&&!L.errorEmitted&&!L.closeEmitted}function W(L,H){let se=!1;function be(ve){if(se){P(L,ve??_());return}if(se=!0,H.pendingcb--,ve){let Ee=H[G].splice(0);for(let Q=0;Q{Y(ve)?J(be,ve):ve.pendingcb--},L,H)):Y(H)&&(H.pendingcb++,J(L,H))))}function J(L,H){H.pendingcb--,H.finished=!0;let se=H[G].splice(0);for(let be=0;be{ge(),me(),ye();var s=er(),a=(st(),Ke(ot)),{isReadable:c,isWritable:n,isIterable:r,isNodeStream:t,isReadableNodeStream:e,isWritableNodeStream:i,isDuplexNodeStream:l,isReadableStream:d,isWritableStream:p}=Ct(),g=Vt(),{AbortError:b,codes:{ERR_INVALID_ARG_TYPE:E,ERR_INVALID_RETURN_VALUE:S}}=pt(),{destroyer:x}=sr(),y=kt(),v=Xr(),A=ho(),{createDeferredPromise:_}=gt(),C=ra(),w=globalThis.Blob||a.Blob,I=typeof w<"u"?function(G){return G instanceof w}:function(G){return!1},k=globalThis.AbortController||gr().AbortController,{FunctionPrototypeCall:j}=Ze(),U=class extends y{constructor(G){super(G),G?.readable===!1&&(this._readableState.readable=!1,this._readableState.ended=!0,this._readableState.endEmitted=!0),G?.writable===!1&&(this._writableState.writable=!1,this._writableState.ending=!0,this._writableState.ended=!0,this._writableState.finished=!0)}};h.exports=function G(q,he){if(l(q))return q;if(e(q))return z({readable:q});if(i(q))return z({writable:q});if(t(q))return z({writable:!1,readable:!1});if(d(q))return z({readable:v.fromWeb(q)});if(p(q))return z({writable:A.fromWeb(q)});if(typeof q=="function"){let{value:te,write:ce,final:V,destroy:le}=P(q);if(r(te))return C(U,te,{objectMode:!0,write:ce,final:V,destroy:le});let M=te?.then;if(typeof M=="function"){let ee,Z=j(M,te,ue=>{if(ue!=null)throw new S("nully","body",ue)},ue=>{x(ee,ue)});return ee=new U({objectMode:!0,readable:!1,write:ce,final(ue){V(async()=>{try{await Z,s.nextTick(ue,null)}catch(Ae){s.nextTick(ue,Ae)}})},destroy:le})}throw new S("Iterable, AsyncIterable or AsyncFunction",he,te)}if(I(q))return G(q.arrayBuffer());if(r(q))return C(U,q,{objectMode:!0,writable:!1});if(d(q?.readable)&&p(q?.writable))return U.fromWeb(q);if(typeof q?.writable=="object"||typeof q?.readable=="object"){let te=q!=null&&q.readable?e(q?.readable)?q?.readable:G(q.readable):void 0,ce=q!=null&&q.writable?i(q?.writable)?q?.writable:G(q.writable):void 0;return z({readable:te,writable:ce})}let ne=q?.then;if(typeof ne=="function"){let te;return j(ne,q,ce=>{ce!=null&&te.push(ce),te.push(null)},ce=>{x(te,ce)}),te=new U({objectMode:!0,writable:!1,read(){}})}throw new E(he,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],q)};function P(G){let{promise:q,resolve:he}=_(),ne=new k,te=ne.signal;return{value:G((async function*(){for(;;){let ce=q;q=null;let{chunk:V,done:le,cb:M}=await ce;if(s.nextTick(M),le)return;if(te.aborted)throw new b(void 0,{cause:te.reason});({promise:q,resolve:he}=_()),yield V}})(),{signal:te}),write(ce,V,le){let M=he;he=null,M({chunk:ce,done:!1,cb:le})},final(ce){let V=he;he=null,V({done:!0,cb:ce})},destroy(ce,V){ne.abort(),V(ce)}}}function z(G){let q=G.readable&&typeof G.readable.read!="function"?v.wrap(G.readable):G.readable,he=G.writable,ne=!!c(q),te=!!n(he),ce,V,le,M,ee;function Z(ue){let Ae=M;M=null,Ae?Ae(ue):ue&&ee.destroy(ue)}return ee=new U({readableObjectMode:!!(q!=null&&q.readableObjectMode),writableObjectMode:!!(he!=null&&he.writableObjectMode),readable:ne,writable:te}),te&&(g(he,ue=>{te=!1,ue&&x(q,ue),Z(ue)}),ee._write=function(ue,Ae,Y){he.write(ue,Ae)?Y():ce=Y},ee._final=function(ue){he.end(),V=ue},he.on("drain",function(){if(ce){let ue=ce;ce=null,ue()}}),he.on("finish",function(){if(V){let ue=V;V=null,ue()}})),ne&&(g(q,ue=>{ne=!1,ue&&x(q,ue),Z(ue)}),q.on("readable",function(){if(le){let ue=le;le=null,ue()}}),q.on("end",function(){ee.push(null)}),ee._read=function(){for(;;){let ue=q.read();if(ue===null){le=ee._read;return}if(!ee.push(ue))return}}),ee._destroy=function(ue,Ae){!ue&&M!==null&&(ue=new b),le=null,ce=null,V=null,M===null?Ae(ue):(M=Ae,x(he,ue),x(q,ue))},ee}}),kt=Se((f,h)=>{ge(),me(),ye();var{ObjectDefineProperties:s,ObjectGetOwnPropertyDescriptor:a,ObjectKeys:c,ObjectSetPrototypeOf:n}=Ze();h.exports=e;var r=Xr(),t=ho();n(e.prototype,r.prototype),n(e,r);{let p=c(t.prototype);for(let g=0;g{ge(),me(),ye();var{ObjectSetPrototypeOf:s,Symbol:a}=Ze();h.exports=e;var{ERR_METHOD_NOT_IMPLEMENTED:c}=pt().codes,n=kt(),{getHighWaterMark:r}=Jr();s(e.prototype,n.prototype),s(e,n);var t=a("kCallback");function e(d){if(!(this instanceof e))return new e(d);let p=d?r(this,d,"readableHighWaterMark",!0):null;p===0&&(d={...d,highWaterMark:null,readableHighWaterMark:p,writableHighWaterMark:d.writableHighWaterMark||0}),n.call(this,d),this._readableState.sync=!1,this[t]=null,d&&(typeof d.transform=="function"&&(this._transform=d.transform),typeof d.flush=="function"&&(this._flush=d.flush)),this.on("prefinish",l)}function i(d){typeof this._flush=="function"&&!this.destroyed?this._flush((p,g)=>{if(p){d?d(p):this.destroy(p);return}g!=null&&this.push(g),this.push(null),d&&d()}):(this.push(null),d&&d())}function l(){this._final!==i&&i.call(this)}e.prototype._final=i,e.prototype._transform=function(d,p,g){throw new c("_transform()")},e.prototype._write=function(d,p,g){let b=this._readableState,E=this._writableState,S=b.length;this._transform(d,p,(x,y)=>{if(x){g(x);return}y!=null&&this.push(y),E.ended||S===b.length||b.length{ge(),me(),ye();var{ObjectSetPrototypeOf:s}=Ze();h.exports=c;var a=na();s(c.prototype,a.prototype),s(c,a);function c(n){if(!(this instanceof c))return new c(n);a.call(this,n)}c.prototype._transform=function(n,r,t){t(null,n)}}),fo=Se((f,h)=>{ge(),me(),ye();var s=er(),{ArrayIsArray:a,Promise:c,SymbolAsyncIterator:n,SymbolDispose:r}=Ze(),t=Vt(),{once:e}=gt(),i=sr(),l=kt(),{aggregateTwoErrors:d,codes:{ERR_INVALID_ARG_TYPE:p,ERR_INVALID_RETURN_VALUE:g,ERR_MISSING_ARGS:b,ERR_STREAM_DESTROYED:E,ERR_STREAM_PREMATURE_CLOSE:S},AbortError:x}=pt(),{validateFunction:y,validateAbortSignal:v}=yr(),{isIterable:A,isReadable:_,isReadableNodeStream:C,isNodeStream:w,isTransformStream:I,isWebStream:k,isReadableStream:j,isReadableFinished:U}=Ct(),P=globalThis.AbortController||gr().AbortController,z,G,q;function he(ue,Ae,Y){let W=!1;ue.on("close",()=>{W=!0});let oe=t(ue,{readable:Ae,writable:Y},X=>{W=!X});return{destroy:X=>{W||(W=!0,i.destroyer(ue,X||new E("pipe")))},cleanup:oe}}function ne(ue){return y(ue[ue.length-1],"streams[stream.length - 1]"),ue.pop()}function te(ue){if(A(ue))return ue;if(C(ue))return ce(ue);throw new p("val",["Readable","Iterable","AsyncIterable"],ue)}async function*ce(ue){G||(G=Xr()),yield*G.prototype[n].call(ue)}async function V(ue,Ae,Y,{end:W}){let oe,X=null,J=pe=>{if(pe&&(oe=pe),X){let L=X;X=null,L()}},re=()=>new c((pe,L)=>{oe?L(oe):X=()=>{oe?L(oe):pe()}});Ae.on("drain",J);let we=t(Ae,{readable:!1},J);try{Ae.writableNeedDrain&&await re();for await(let pe of ue)Ae.write(pe)||await re();W&&(Ae.end(),await re()),Y()}catch(pe){Y(oe!==pe?d(oe,pe):pe)}finally{we(),Ae.off("drain",J)}}async function le(ue,Ae,Y,{end:W}){I(Ae)&&(Ae=Ae.writable);let oe=Ae.getWriter();try{for await(let X of ue)await oe.ready,oe.write(X).catch(()=>{});await oe.ready,W&&await oe.close(),Y()}catch(X){try{await oe.abort(X),Y(X)}catch(J){Y(J)}}}function M(...ue){return ee(ue,e(ne(ue)))}function ee(ue,Ae,Y){if(ue.length===1&&a(ue[0])&&(ue=ue[0]),ue.length<2)throw new b("streams");let W=new P,oe=W.signal,X=Y?.signal,J=[];v(X,"options.signal");function re(){ve(new x)}q=q||gt().addAbortListener;let we;X&&(we=q(X,re));let pe,L,H=[],se=0;function be(Oe){ve(Oe,--se===0)}function ve(Oe,fe){var Be;if(Oe&&(!pe||pe.code==="ERR_STREAM_PREMATURE_CLOSE")&&(pe=Oe),!(!pe&&!fe)){for(;H.length;)H.shift()(pe);(Be=we)===null||Be===void 0||Be[r](),W.abort(),fe&&(pe||J.forEach(o=>o()),s.nextTick(Ae,pe,L))}}let Ee;for(let Oe=0;Oe0,u=Be||Y?.end!==!1,m=Oe===ue.length-1;if(w(fe)){let T=function(N){N&&N.name!=="AbortError"&&N.code!=="ERR_STREAM_PREMATURE_CLOSE"&&be(N)};if(u){let{destroy:N,cleanup:K}=he(fe,Be,o);H.push(N),_(fe)&&m&&J.push(K)}fe.on("error",T),_(fe)&&m&&J.push(()=>{fe.removeListener("error",T)})}if(Oe===0)if(typeof fe=="function"){if(Ee=fe({signal:oe}),!A(Ee))throw new g("Iterable, AsyncIterable or Stream","source",Ee)}else A(fe)||C(fe)||I(fe)?Ee=fe:Ee=l.from(fe);else if(typeof fe=="function"){if(I(Ee)){var Q;Ee=te((Q=Ee)===null||Q===void 0?void 0:Q.readable)}else Ee=te(Ee);if(Ee=fe(Ee,{signal:oe}),Be){if(!A(Ee,!0))throw new g("AsyncIterable",`transform[${Oe-1}]`,Ee)}else{var _e;z||(z=ia());let T=new z({objectMode:!0}),N=(_e=Ee)===null||_e===void 0?void 0:_e.then;if(typeof N=="function")se++,N.call(Ee,$=>{L=$,$!=null&&T.write($),u&&T.end(),s.nextTick(be)},$=>{T.destroy($),s.nextTick(be,$)});else if(A(Ee,!0))se++,V(Ee,T,be,{end:u});else if(j(Ee)||I(Ee)){let $=Ee.readable||Ee;se++,V($,T,be,{end:u})}else throw new g("AsyncIterable or Promise","destination",Ee);Ee=T;let{destroy:K,cleanup:de}=he(Ee,!1,!0);H.push(K),m&&J.push(de)}}else if(w(fe)){if(C(Ee)){se+=2;let T=Z(Ee,fe,be,{end:u});_(fe)&&m&&J.push(T)}else if(I(Ee)||j(Ee)){let T=Ee.readable||Ee;se++,V(T,fe,be,{end:u})}else if(A(Ee))se++,V(Ee,fe,be,{end:u});else throw new p("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],Ee);Ee=fe}else if(k(fe)){if(C(Ee))se++,le(te(Ee),fe,be,{end:u});else if(j(Ee)||A(Ee))se++,le(Ee,fe,be,{end:u});else if(I(Ee))se++,le(Ee.readable,fe,be,{end:u});else throw new p("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],Ee);Ee=fe}else Ee=l.from(fe)}return(oe!=null&&oe.aborted||X!=null&&X.aborted)&&s.nextTick(re),Ee}function Z(ue,Ae,Y,{end:W}){let oe=!1;if(Ae.on("close",()=>{oe||Y(new S)}),ue.pipe(Ae,{end:!1}),W){let X=function(){oe=!0,Ae.end()};U(ue)?s.nextTick(X):ue.once("end",X)}else Y();return t(ue,{readable:!0,writable:!1},X=>{let J=ue._readableState;X&&X.code==="ERR_STREAM_PREMATURE_CLOSE"&&J&&J.ended&&!J.errored&&!J.errorEmitted?ue.once("end",Y).once("error",Y):Y(X)}),t(Ae,{readable:!1,writable:!0},Y)}h.exports={pipelineImpl:ee,pipeline:M}}),oa=Se((f,h)=>{ge(),me(),ye();var{pipeline:s}=fo(),a=kt(),{destroyer:c}=sr(),{isNodeStream:n,isReadable:r,isWritable:t,isWebStream:e,isTransformStream:i,isWritableStream:l,isReadableStream:d}=Ct(),{AbortError:p,codes:{ERR_INVALID_ARG_VALUE:g,ERR_MISSING_ARGS:b}}=pt(),E=Vt();h.exports=function(...S){if(S.length===0)throw new b("streams");if(S.length===1)return a.from(S[0]);let x=[...S];if(typeof S[0]=="function"&&(S[0]=a.from(S[0])),typeof S[S.length-1]=="function"){let P=S.length-1;S[P]=a.from(S[P])}for(let P=0;P0&&!(t(S[P])||l(S[P])||i(S[P])))throw new g(`streams[${P}]`,x[P],"must be writable")}let y,v,A,_,C;function w(P){let z=_;_=null,z?z(P):P?C.destroy(P):!U&&!j&&C.destroy()}let I=S[0],k=s(S,w),j=!!(t(I)||l(I)||i(I)),U=!!(r(k)||d(k)||i(k));if(C=new a({writableObjectMode:!!(I!=null&&I.writableObjectMode),readableObjectMode:!!(k!=null&&k.readableObjectMode),writable:j,readable:U}),j){if(n(I))C._write=function(z,G,q){I.write(z,G)?q():y=q},C._final=function(z){I.end(),v=z},I.on("drain",function(){if(y){let z=y;y=null,z()}});else if(e(I)){let z=(i(I)?I.writable:I).getWriter();C._write=async function(G,q,he){try{await z.ready,z.write(G).catch(()=>{}),he()}catch(ne){he(ne)}},C._final=async function(G){try{await z.ready,z.close().catch(()=>{}),v=G}catch(q){G(q)}}}let P=i(k)?k.readable:k;E(P,()=>{if(v){let z=v;v=null,z()}})}if(U){if(n(k))k.on("readable",function(){if(A){let P=A;A=null,P()}}),k.on("end",function(){C.push(null)}),C._read=function(){for(;;){let P=k.read();if(P===null){A=C._read;return}if(!C.push(P))return}};else if(e(k)){let P=(i(k)?k.readable:k).getReader();C._read=async function(){for(;;)try{let{value:z,done:G}=await P.read();if(!C.push(z))return;if(G){C.push(null);return}}catch{return}}}}return C._destroy=function(P,z){!P&&_!==null&&(P=new p),A=null,y=null,v=null,_===null?z(P):(_=z,n(k)&&c(k,P))},C}}),Jl=Se((f,h)=>{ge(),me(),ye();var s=globalThis.AbortController||gr().AbortController,{codes:{ERR_INVALID_ARG_VALUE:a,ERR_INVALID_ARG_TYPE:c,ERR_MISSING_ARGS:n,ERR_OUT_OF_RANGE:r},AbortError:t}=pt(),{validateAbortSignal:e,validateInteger:i,validateObject:l}=yr(),d=Ze().Symbol("kWeak"),p=Ze().Symbol("kResistStopPropagation"),{finished:g}=Vt(),b=oa(),{addAbortSignalNoValidate:E}=Yr(),{isWritable:S,isNodeStream:x}=Ct(),{deprecate:y}=gt(),{ArrayPrototypePush:v,Boolean:A,MathFloor:_,Number:C,NumberIsNaN:w,Promise:I,PromiseReject:k,PromiseResolve:j,PromisePrototypeThen:U,Symbol:P}=Ze(),z=P("kEmpty"),G=P("kEof");function q(X,J){if(J!=null&&l(J,"options"),J?.signal!=null&&e(J.signal,"options.signal"),x(X)&&!S(X))throw new a("stream",X,"must be writable");let re=b(this,X);return J!=null&&J.signal&&E(J.signal,re),re}function he(X,J){if(typeof X!="function")throw new c("fn",["Function","AsyncFunction"],X);J!=null&&l(J,"options"),J?.signal!=null&&e(J.signal,"options.signal");let re=1;J?.concurrency!=null&&(re=_(J.concurrency));let we=re-1;return J?.highWaterMark!=null&&(we=_(J.highWaterMark)),i(re,"options.concurrency",1),i(we,"options.highWaterMark",0),we+=re,(async function*(){let pe=gt().AbortSignalAny([J?.signal].filter(A)),L=this,H=[],se={signal:pe},be,ve,Ee=!1,Q=0;function _e(){Ee=!0,Oe()}function Oe(){Q-=1,fe()}function fe(){ve&&!Ee&&Q=we||Q>=re)&&await new I(u=>{ve=u})}H.push(G)}catch(o){let u=k(o);U(u,Oe,_e),H.push(u)}finally{Ee=!0,be&&(be(),be=null)}}Be();try{for(;;){for(;H.length>0;){let o=await H[0];if(o===G)return;if(pe.aborted)throw new t;o!==z&&(yield o),H.shift(),fe()}await new I(o=>{be=o})}}finally{Ee=!0,ve&&(ve(),ve=null)}}).call(this)}function ne(X=void 0){return X!=null&&l(X,"options"),X?.signal!=null&&e(X.signal,"options.signal"),(async function*(){let J=0;for await(let we of this){var re;if(X!=null&&(re=X.signal)!==null&&re!==void 0&&re.aborted)throw new t({cause:X.signal.reason});yield[J++,we]}}).call(this)}async function te(X,J=void 0){for await(let re of M.call(this,X,J))return!0;return!1}async function ce(X,J=void 0){if(typeof X!="function")throw new c("fn",["Function","AsyncFunction"],X);return!await te.call(this,async(...re)=>!await X(...re),J)}async function V(X,J){for await(let re of M.call(this,X,J))return re}async function le(X,J){if(typeof X!="function")throw new c("fn",["Function","AsyncFunction"],X);async function re(we,pe){return await X(we,pe),z}for await(let we of he.call(this,re,J));}function M(X,J){if(typeof X!="function")throw new c("fn",["Function","AsyncFunction"],X);async function re(we,pe){return await X(we,pe)?we:z}return he.call(this,re,J)}var ee=class extends n{constructor(){super("reduce"),this.message="Reduce of an empty stream requires an initial value"}};async function Z(X,J,re){var we;if(typeof X!="function")throw new c("reducer",["Function","AsyncFunction"],X);re!=null&&l(re,"options"),re?.signal!=null&&e(re.signal,"options.signal");let pe=arguments.length>1;if(re!=null&&(we=re.signal)!==null&&we!==void 0&&we.aborted){let ve=new t(void 0,{cause:re.signal.reason});throw this.once("error",()=>{}),await g(this.destroy(ve)),ve}let L=new s,H=L.signal;if(re!=null&&re.signal){let ve={once:!0,[d]:this,[p]:!0};re.signal.addEventListener("abort",()=>L.abort(),ve)}let se=!1;try{for await(let ve of this){var be;if(se=!0,re!=null&&(be=re.signal)!==null&&be!==void 0&&be.aborted)throw new t;pe?J=await X(J,ve,{signal:H}):(J=ve,pe=!0)}if(!se&&!pe)throw new ee}finally{L.abort()}return J}async function ue(X){X!=null&&l(X,"options"),X?.signal!=null&&e(X.signal,"options.signal");let J=[];for await(let we of this){var re;if(X!=null&&(re=X.signal)!==null&&re!==void 0&&re.aborted)throw new t(void 0,{cause:X.signal.reason});v(J,we)}return J}function Ae(X,J){let re=he.call(this,X,J);return(async function*(){for await(let we of re)yield*we}).call(this)}function Y(X){if(X=C(X),w(X))return 0;if(X<0)throw new r("number",">= 0",X);return X}function W(X,J=void 0){return J!=null&&l(J,"options"),J?.signal!=null&&e(J.signal,"options.signal"),X=Y(X),(async function*(){var re;if(J!=null&&(re=J.signal)!==null&&re!==void 0&&re.aborted)throw new t;for await(let pe of this){var we;if(J!=null&&(we=J.signal)!==null&&we!==void 0&&we.aborted)throw new t;X--<=0&&(yield pe)}}).call(this)}function oe(X,J=void 0){return J!=null&&l(J,"options"),J?.signal!=null&&e(J.signal,"options.signal"),X=Y(X),(async function*(){var re;if(J!=null&&(re=J.signal)!==null&&re!==void 0&&re.aborted)throw new t;for await(let pe of this){var we;if(J!=null&&(we=J.signal)!==null&&we!==void 0&&we.aborted)throw new t;if(X-- >0&&(yield pe),X<=0)return}}).call(this)}h.exports.streamReturningOperators={asIndexedPairs:y(ne,"readable.asIndexedPairs will be removed in a future version."),drop:W,filter:M,flatMap:Ae,map:he,take:oe,compose:q},h.exports.promiseReturningOperators={every:ce,forEach:le,reduce:Z,toArray:ue,some:te,find:V}}),sa=Se((f,h)=>{ge(),me(),ye();var{ArrayPrototypePop:s,Promise:a}=Ze(),{isIterable:c,isNodeStream:n,isWebStream:r}=Ct(),{pipelineImpl:t}=fo(),{finished:e}=Vt();aa();function i(...l){return new a((d,p)=>{let g,b,E=l[l.length-1];if(E&&typeof E=="object"&&!n(E)&&!c(E)&&!r(E)){let S=s(l);g=S.signal,b=S.end}t(l,(S,x)=>{S?p(S):d(x)},{signal:g,end:b})})}h.exports={finished:e,pipeline:i}}),aa=Se((f,h)=>{ge(),me(),ye();var{Buffer:s}=(st(),Ke(ot)),{ObjectDefineProperty:a,ObjectKeys:c,ReflectApply:n}=Ze(),{promisify:{custom:r}}=gt(),{streamReturningOperators:t,promiseReturningOperators:e}=Jl(),{codes:{ERR_ILLEGAL_CONSTRUCTOR:i}}=pt(),l=oa(),{setDefaultHighWaterMark:d,getDefaultHighWaterMark:p}=Jr(),{pipeline:g}=fo(),{destroyer:b}=sr(),E=Vt(),S=sa(),x=Ct(),y=h.exports=co().Stream;y.isDestroyed=x.isDestroyed,y.isDisturbed=x.isDisturbed,y.isErrored=x.isErrored,y.isReadable=x.isReadable,y.isWritable=x.isWritable,y.Readable=Xr();for(let A of c(t)){let _=function(...w){if(new.target)throw i();return y.Readable.from(n(C,this,w))},C=t[A];a(_,"name",{__proto__:null,value:C.name}),a(_,"length",{__proto__:null,value:C.length}),a(y.Readable.prototype,A,{__proto__:null,value:_,enumerable:!1,configurable:!0,writable:!0})}for(let A of c(e)){let _=function(...w){if(new.target)throw i();return n(C,this,w)},C=e[A];a(_,"name",{__proto__:null,value:C.name}),a(_,"length",{__proto__:null,value:C.length}),a(y.Readable.prototype,A,{__proto__:null,value:_,enumerable:!1,configurable:!0,writable:!0})}y.Writable=ho(),y.Duplex=kt(),y.Transform=na(),y.PassThrough=ia(),y.pipeline=g;var{addAbortSignal:v}=Yr();y.addAbortSignal=v,y.finished=E,y.destroy=b,y.compose=l,y.setDefaultHighWaterMark=d,y.getDefaultHighWaterMark=p,a(y,"promises",{__proto__:null,configurable:!0,enumerable:!0,get(){return S}}),a(g,r,{__proto__:null,enumerable:!0,get(){return S.pipeline}}),a(E,r,{__proto__:null,enumerable:!0,get(){return S.finished}}),y.Stream=y,y._isUint8Array=function(A){return A instanceof Uint8Array},y._uint8ArrayToBuffer=function(A){return s.from(A.buffer,A.byteOffset,A.byteLength)}}),tr=Se((f,h)=>{ge(),me(),ye();var s=aa(),a=sa(),c=s.Readable.destroy;h.exports=s.Readable,h.exports._uint8ArrayToBuffer=s._uint8ArrayToBuffer,h.exports._isUint8Array=s._isUint8Array,h.exports.isDisturbed=s.isDisturbed,h.exports.isErrored=s.isErrored,h.exports.isReadable=s.isReadable,h.exports.Readable=s.Readable,h.exports.Writable=s.Writable,h.exports.Duplex=s.Duplex,h.exports.Transform=s.Transform,h.exports.PassThrough=s.PassThrough,h.exports.addAbortSignal=s.addAbortSignal,h.exports.finished=s.finished,h.exports.destroy=s.destroy,h.exports.destroy=c,h.exports.pipeline=s.pipeline,h.exports.compose=s.compose,Object.defineProperty(s,"promises",{configurable:!0,enumerable:!0,get(){return a}}),h.exports.Stream=s.Stream,h.exports.default=h.exports}),Xl=Se((f,h)=>{ge(),me(),ye(),typeof Object.create=="function"?h.exports=function(s,a){a&&(s.super_=a,s.prototype=Object.create(a.prototype,{constructor:{value:s,enumerable:!1,writable:!0,configurable:!0}}))}:h.exports=function(s,a){if(a){s.super_=a;var c=function(){};c.prototype=a.prototype,s.prototype=new c,s.prototype.constructor=s}}}),Zl=Se((f,h)=>{ge(),me(),ye();var{Buffer:s}=(st(),Ke(ot)),a=Symbol.for("BufferList");function c(n){if(!(this instanceof c))return new c(n);c._init.call(this,n)}c._init=function(n){Object.defineProperty(this,a,{value:!0}),this._bufs=[],this.length=0,n&&this.append(n)},c.prototype._new=function(n){return new c(n)},c.prototype._offset=function(n){if(n===0)return[0,0];let r=0;for(let t=0;tthis.length||n<0)return;let r=this._offset(n);return this._bufs[r[0]][r[1]]},c.prototype.slice=function(n,r){return typeof n=="number"&&n<0&&(n+=this.length),typeof r=="number"&&r<0&&(r+=this.length),this.copy(null,0,n,r)},c.prototype.copy=function(n,r,t,e){if((typeof t!="number"||t<0)&&(t=0),(typeof e!="number"||e>this.length)&&(e=this.length),t>=this.length||e<=0)return n||s.alloc(0);let i=!!n,l=this._offset(t),d=e-t,p=d,g=i&&r||0,b=l[1];if(t===0&&e===this.length){if(!i)return this._bufs.length===1?this._bufs[0]:s.concat(this._bufs,this.length);for(let E=0;ES)this._bufs[E].copy(n,g,b),g+=S;else{this._bufs[E].copy(n,g,b,b+p),g+=S;break}p-=S,b&&(b=0)}return n.length>g?n.slice(0,g):n},c.prototype.shallowSlice=function(n,r){if(n=n||0,r=typeof r!="number"?this.length:r,n<0&&(n+=this.length),r<0&&(r+=this.length),n===r)return this._new();let t=this._offset(n),e=this._offset(r),i=this._bufs.slice(t[0],e[0]+1);return e[1]===0?i.pop():i[i.length-1]=i[i.length-1].slice(0,e[1]),t[1]!==0&&(i[0]=i[0].slice(t[1])),this._new(i)},c.prototype.toString=function(n,r,t){return this.slice(r,t).toString(n)},c.prototype.consume=function(n){if(n=Math.trunc(n),Number.isNaN(n)||n<=0)return this;for(;this._bufs.length;)if(n>=this._bufs[0].length)n-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(n),this.length-=n;break}return this},c.prototype.duplicate=function(){let n=this._new();for(let r=0;r=0&&l=0&&lthis.length?this.length:r;let e=this._offset(r),i=e[0],l=e[1];for(;i=n.length){let p=d.indexOf(n,l);if(p!==-1)return this._reverseOffset([i,p]);l=d.length-n.length+1}else{let p=this._reverseOffset([i,l]);if(this._match(p,n))return p;l++}l=0}return-1},c.prototype._match=function(n,r){if(this.length-n{ge(),me(),ye();var s=tr().Duplex,a=Xl(),c=Zl();function n(r){if(!(this instanceof n))return new n(r);if(typeof r=="function"){this._callback=r;let t=(function(e){this._callback&&(this._callback(e),this._callback=null)}).bind(this);this.on("pipe",function(e){e.on("error",t)}),this.on("unpipe",function(e){e.removeListener("error",t)}),r=null}c._init.call(this,r),s.call(this)}a(n,s),Object.assign(n.prototype,c.prototype),n.prototype._new=function(r){return new n(r)},n.prototype._write=function(r,t,e){this._appendBuffer(r),typeof e=="function"&&e()},n.prototype._read=function(r){if(!this.length)return this.push(null);r=Math.min(r,this.length),this.push(this.slice(0,r)),this.consume(r)},n.prototype.end=function(r){s.prototype.end.call(this,r),this._callback&&(this._callback(null,this.slice()),this._callback=null)},n.prototype._destroy=function(r,t){this._bufs.length=0,this.length=0,t(r)},n.prototype._isBufferList=function(r){return r instanceof n||r instanceof c||n.isBufferList(r)},n.isBufferList=c.isBufferList,h.exports=n,h.exports.BufferListStream=n,h.exports.BufferList=c}),tu=Se((f,h)=>{ge(),me(),ye();var s=class{constructor(){this.cmd=null,this.retain=!1,this.qos=0,this.dup=!1,this.length=-1,this.topic=null,this.payload=null}};h.exports=s}),la=Se((f,h)=>{ge(),me(),ye();var s=h.exports,{Buffer:a}=(st(),Ke(ot));s.types={0:"reserved",1:"connect",2:"connack",3:"publish",4:"puback",5:"pubrec",6:"pubrel",7:"pubcomp",8:"subscribe",9:"suback",10:"unsubscribe",11:"unsuback",12:"pingreq",13:"pingresp",14:"disconnect",15:"auth"},s.requiredHeaderFlags={1:0,2:0,4:0,5:0,6:2,7:0,8:2,9:0,10:2,11:0,12:0,13:0,14:0,15:0},s.requiredHeaderFlagsErrors={};for(let n in s.requiredHeaderFlags){let r=s.requiredHeaderFlags[n];s.requiredHeaderFlagsErrors[n]="Invalid header flag bits, must be 0x"+r.toString(16)+" for "+s.types[n]+" packet"}s.codes={};for(let n in s.types){let r=s.types[n];s.codes[r]=n}s.CMD_SHIFT=4,s.CMD_MASK=240,s.DUP_MASK=8,s.QOS_MASK=3,s.QOS_SHIFT=1,s.RETAIN_MASK=1,s.VARBYTEINT_MASK=127,s.VARBYTEINT_FIN_MASK=128,s.VARBYTEINT_MAX=268435455,s.SESSIONPRESENT_MASK=1,s.SESSIONPRESENT_HEADER=a.from([s.SESSIONPRESENT_MASK]),s.CONNACK_HEADER=a.from([s.codes.connack<[0,1].map(t=>[0,1].map(e=>{let i=a.alloc(1);return i.writeUInt8(s.codes[n]<a.from([n])),s.EMPTY={pingreq:a.from([s.codes.pingreq<<4,0]),pingresp:a.from([s.codes.pingresp<<4,0]),disconnect:a.from([s.codes.disconnect<<4,0])},s.MQTT5_PUBACK_PUBREC_CODES={0:"Success",16:"No matching subscribers",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",144:"Topic Name invalid",145:"Packet identifier in use",151:"Quota exceeded",153:"Payload format invalid"},s.MQTT5_PUBREL_PUBCOMP_CODES={0:"Success",146:"Packet Identifier not found"},s.MQTT5_SUBACK_CODES={0:"Granted QoS 0",1:"Granted QoS 1",2:"Granted QoS 2",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",143:"Topic Filter invalid",145:"Packet Identifier in use",151:"Quota exceeded",158:"Shared Subscriptions not supported",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"},s.MQTT5_UNSUBACK_CODES={0:"Success",17:"No subscription existed",128:"Unspecified error",131:"Implementation specific error",135:"Not authorized",143:"Topic Filter invalid",145:"Packet Identifier in use"},s.MQTT5_DISCONNECT_CODES={0:"Normal disconnection",4:"Disconnect with Will Message",128:"Unspecified error",129:"Malformed Packet",130:"Protocol Error",131:"Implementation specific error",135:"Not authorized",137:"Server busy",139:"Server shutting down",141:"Keep Alive timeout",142:"Session taken over",143:"Topic Filter invalid",144:"Topic Name invalid",147:"Receive Maximum exceeded",148:"Topic Alias invalid",149:"Packet too large",150:"Message rate too high",151:"Quota exceeded",152:"Administrative action",153:"Payload format invalid",154:"Retain not supported",155:"QoS not supported",156:"Use another server",157:"Server moved",158:"Shared Subscriptions not supported",159:"Connection rate exceeded",160:"Maximum connect time",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"},s.MQTT5_AUTH_CODES={0:"Success",24:"Continue authentication",25:"Re-authenticate"}}),ru=Se((f,h)=>{ge(),me(),ye();var s=1e3,a=s*60,c=a*60,n=c*24,r=n*7,t=n*365.25;h.exports=function(p,g){g=g||{};var b=typeof p;if(b==="string"&&p.length>0)return e(p);if(b==="number"&&isFinite(p))return g.long?l(p):i(p);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(p))};function e(p){if(p=String(p),!(p.length>100)){var g=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(p);if(g){var b=parseFloat(g[1]),E=(g[2]||"ms").toLowerCase();switch(E){case"years":case"year":case"yrs":case"yr":case"y":return b*t;case"weeks":case"week":case"w":return b*r;case"days":case"day":case"d":return b*n;case"hours":case"hour":case"hrs":case"hr":case"h":return b*c;case"minutes":case"minute":case"mins":case"min":case"m":return b*a;case"seconds":case"second":case"secs":case"sec":case"s":return b*s;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return b;default:return}}}}function i(p){var g=Math.abs(p);return g>=n?Math.round(p/n)+"d":g>=c?Math.round(p/c)+"h":g>=a?Math.round(p/a)+"m":g>=s?Math.round(p/s)+"s":p+"ms"}function l(p){var g=Math.abs(p);return g>=n?d(p,g,n,"day"):g>=c?d(p,g,c,"hour"):g>=a?d(p,g,a,"minute"):g>=s?d(p,g,s,"second"):p+" ms"}function d(p,g,b,E){var S=g>=b*1.5;return Math.round(p/b)+" "+E+(S?"s":"")}}),nu=Se((f,h)=>{ge(),me(),ye();function s(a){n.debug=n,n.default=n,n.coerce=d,n.disable=i,n.enable=t,n.enabled=l,n.humanize=ru(),n.destroy=p,Object.keys(a).forEach(g=>{n[g]=a[g]}),n.names=[],n.skips=[],n.formatters={};function c(g){let b=0;for(let E=0;E{if(I==="%%")return"%";w++;let j=n.formatters[k];if(typeof j=="function"){let U=v[w];I=j.call(A,U),v.splice(w,1),w--}return I}),n.formatArgs.call(A,v),(A.log||n.log).apply(A,v)}return y.namespace=g,y.useColors=n.useColors(),y.color=n.selectColor(g),y.extend=r,y.destroy=n.destroy,Object.defineProperty(y,"enabled",{enumerable:!0,configurable:!1,get:()=>E!==null?E:(S!==n.namespaces&&(S=n.namespaces,x=n.enabled(g)),x),set:v=>{E=v}}),typeof n.init=="function"&&n.init(y),y}function r(g,b){let E=n(this.namespace+(typeof b>"u"?":":b)+g);return E.log=this.log,E}function t(g){n.save(g),n.namespaces=g,n.names=[],n.skips=[];let b=(typeof g=="string"?g:"").trim().replace(/\s+/g,",").split(",").filter(Boolean);for(let E of b)E[0]==="-"?n.skips.push(E.slice(1)):n.names.push(E)}function e(g,b){let E=0,S=0,x=-1,y=0;for(;E"-"+b)].join(",");return n.enable(""),g}function l(g){for(let b of n.skips)if(e(g,b))return!1;for(let b of n.names)if(e(g,b))return!0;return!1}function d(g){return g instanceof Error?g.stack||g.message:g}function p(){console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.")}return n.enable(n.load()),n}h.exports=s}),Tt=Se((f,h)=>{ge(),me(),ye(),f.formatArgs=a,f.save=c,f.load=n,f.useColors=s,f.storage=r(),f.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),f.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function s(){if(typeof window<"u"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs))return!0;if(typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))return!1;let e;return typeof document<"u"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window<"u"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator<"u"&&navigator.userAgent&&(e=navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/))&&parseInt(e[1],10)>=31||typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function a(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+h.exports.humanize(this.diff),!this.useColors)return;let i="color: "+this.color;e.splice(1,0,i,"color: inherit");let l=0,d=0;e[0].replace(/%[a-zA-Z%]/g,p=>{p!=="%%"&&(l++,p==="%c"&&(d=l))}),e.splice(d,0,i)}f.log=console.debug||console.log||(()=>{});function c(e){try{e?f.storage.setItem("debug",e):f.storage.removeItem("debug")}catch{}}function n(){let e;try{e=f.storage.getItem("debug")||f.storage.getItem("DEBUG")}catch{}return!e&&typeof Ge<"u"&&"env"in Ge&&(e=Ge.env.DEBUG),e}function r(){try{return localStorage}catch{}}h.exports=nu()(f);var{formatters:t}=h.exports;t.j=function(e){try{return JSON.stringify(e)}catch(i){return"[UnexpectedJSONParseError]: "+i.message}}}),iu=Se((f,h)=>{ge(),me(),ye();var s=eu(),{EventEmitter:a}=(Zt(),Ke(qt)),c=tu(),n=la(),r=Tt()("mqtt-packet:parser"),t=class gi extends a{constructor(){super(),this.parser=this.constructor.parser}static parser(i){return this instanceof gi?(this.settings=i||{},this._states=["_parseHeader","_parseLength","_parsePayload","_newPacket"],this._resetState(),this):new gi().parser(i)}_resetState(){r("_resetState: resetting packet, error, _list, and _stateCounter"),this.packet=new c,this.error=null,this._list=s(),this._stateCounter=0}parse(i){for(this.error&&this._resetState(),this._list.append(i),r("parse: current state: %s",this._states[this._stateCounter]);(this.packet.length!==-1||this._list.length>0)&&this[this._states[this._stateCounter]]()&&!this.error;)this._stateCounter++,r("parse: state complete. _stateCounter is now: %d",this._stateCounter),r("parse: packet.length: %d, buffer list length: %d",this.packet.length,this._list.length),this._stateCounter>=this._states.length&&(this._stateCounter=0);return r("parse: exited while loop. packet: %d, buffer list length: %d",this.packet.length,this._list.length),this._list.length}_parseHeader(){let i=this._list.readUInt8(0),l=i>>n.CMD_SHIFT;this.packet.cmd=n.types[l];let d=i&15,p=n.requiredHeaderFlags[l];return p!=null&&d!==p?this._emitError(new Error(n.requiredHeaderFlagsErrors[l])):(this.packet.retain=(i&n.RETAIN_MASK)!==0,this.packet.qos=i>>n.QOS_SHIFT&n.QOS_MASK,this.packet.qos>2?this._emitError(new Error("Packet must not have both QoS bits set to 1")):(this.packet.dup=(i&n.DUP_MASK)!==0,r("_parseHeader: packet: %o",this.packet),this._list.consume(1),!0))}_parseLength(){let i=this._parseVarByteNum(!0);return i&&(this.packet.length=i.value,this._list.consume(i.bytes)),r("_parseLength %d",i.value),!!i}_parsePayload(){r("_parsePayload: payload %O",this._list);let i=!1;if(this.packet.length===0||this._list.length>=this.packet.length){switch(this._pos=0,this.packet.cmd){case"connect":this._parseConnect();break;case"connack":this._parseConnack();break;case"publish":this._parsePublish();break;case"puback":case"pubrec":case"pubrel":case"pubcomp":this._parseConfirmation();break;case"subscribe":this._parseSubscribe();break;case"suback":this._parseSuback();break;case"unsubscribe":this._parseUnsubscribe();break;case"unsuback":this._parseUnsuback();break;case"pingreq":case"pingresp":break;case"disconnect":this._parseDisconnect();break;case"auth":this._parseAuth();break;default:this._emitError(new Error("Not supported"))}i=!0}return r("_parsePayload complete result: %s",i),i}_parseConnect(){r("_parseConnect");let i,l,d,p,g={},b=this.packet,E=this._parseString();if(E===null)return this._emitError(new Error("Cannot parse protocolId"));if(E!=="MQTT"&&E!=="MQIsdp")return this._emitError(new Error("Invalid protocolId"));if(b.protocolId=E,this._pos>=this._list.length)return this._emitError(new Error("Packet too short"));if(b.protocolVersion=this._list.readUInt8(this._pos),b.protocolVersion>=128&&(b.bridgeMode=!0,b.protocolVersion=b.protocolVersion-128),b.protocolVersion!==3&&b.protocolVersion!==4&&b.protocolVersion!==5)return this._emitError(new Error("Invalid protocol version"));if(this._pos++,this._pos>=this._list.length)return this._emitError(new Error("Packet too short"));if(this._list.readUInt8(this._pos)&1)return this._emitError(new Error("Connect flag bit 0 must be 0, but got 1"));g.username=this._list.readUInt8(this._pos)&n.USERNAME_MASK,g.password=this._list.readUInt8(this._pos)&n.PASSWORD_MASK,g.will=this._list.readUInt8(this._pos)&n.WILL_FLAG_MASK;let S=!!(this._list.readUInt8(this._pos)&n.WILL_RETAIN_MASK),x=(this._list.readUInt8(this._pos)&n.WILL_QOS_MASK)>>n.WILL_QOS_SHIFT;if(g.will)b.will={},b.will.retain=S,b.will.qos=x;else{if(S)return this._emitError(new Error("Will Retain Flag must be set to zero when Will Flag is set to 0"));if(x)return this._emitError(new Error("Will QoS must be set to zero when Will Flag is set to 0"))}if(b.clean=(this._list.readUInt8(this._pos)&n.CLEAN_SESSION_MASK)!==0,this._pos++,b.keepalive=this._parseNum(),b.keepalive===-1)return this._emitError(new Error("Packet too short"));if(b.protocolVersion===5){let v=this._parseProperties();Object.getOwnPropertyNames(v).length&&(b.properties=v)}let y=this._parseString();if(y===null)return this._emitError(new Error("Packet too short"));if(b.clientId=y,r("_parseConnect: packet.clientId: %s",b.clientId),g.will){if(b.protocolVersion===5){let v=this._parseProperties();Object.getOwnPropertyNames(v).length&&(b.will.properties=v)}if(i=this._parseString(),i===null)return this._emitError(new Error("Cannot parse will topic"));if(b.will.topic=i,r("_parseConnect: packet.will.topic: %s",b.will.topic),l=this._parseBuffer(),l===null)return this._emitError(new Error("Cannot parse will payload"));b.will.payload=l,r("_parseConnect: packet.will.paylaod: %s",b.will.payload)}if(g.username){if(p=this._parseString(),p===null)return this._emitError(new Error("Cannot parse username"));b.username=p,r("_parseConnect: packet.username: %s",b.username)}if(g.password){if(d=this._parseBuffer(),d===null)return this._emitError(new Error("Cannot parse password"));b.password=d}return this.settings=b,r("_parseConnect: complete"),b}_parseConnack(){r("_parseConnack");let i=this.packet;if(this._list.length<1)return null;let l=this._list.readUInt8(this._pos++);if(l>1)return this._emitError(new Error("Invalid connack flags, bits 7-1 must be set to 0"));if(i.sessionPresent=!!(l&n.SESSIONPRESENT_MASK),this.settings.protocolVersion===5)this._list.length>=2?i.reasonCode=this._list.readUInt8(this._pos++):i.reasonCode=0;else{if(this._list.length<2)return null;i.returnCode=this._list.readUInt8(this._pos++)}if(i.returnCode===-1||i.reasonCode===-1)return this._emitError(new Error("Cannot parse return code"));if(this.settings.protocolVersion===5){let d=this._parseProperties();Object.getOwnPropertyNames(d).length&&(i.properties=d)}r("_parseConnack: complete")}_parsePublish(){r("_parsePublish");let i=this.packet;if(i.topic=this._parseString(),i.topic===null)return this._emitError(new Error("Cannot parse topic"));if(!(i.qos>0&&!this._parseMessageId())){if(this.settings.protocolVersion===5){let l=this._parseProperties();Object.getOwnPropertyNames(l).length&&(i.properties=l)}i.payload=this._list.slice(this._pos,i.length),r("_parsePublish: payload from buffer list: %o",i.payload)}}_parseSubscribe(){r("_parseSubscribe");let i=this.packet,l,d,p,g,b,E,S;if(i.subscriptions=[],!!this._parseMessageId()){if(this.settings.protocolVersion===5){let x=this._parseProperties();Object.getOwnPropertyNames(x).length&&(i.properties=x)}if(i.length<=0)return this._emitError(new Error("Malformed subscribe, no payload specified"));for(;this._pos=i.length)return this._emitError(new Error("Malformed Subscribe Payload"));if(d=this._parseByte(),this.settings.protocolVersion===5){if(d&192)return this._emitError(new Error("Invalid subscribe topic flag bits, bits 7-6 must be 0"))}else if(d&252)return this._emitError(new Error("Invalid subscribe topic flag bits, bits 7-2 must be 0"));if(p=d&n.SUBSCRIBE_OPTIONS_QOS_MASK,p>2)return this._emitError(new Error("Invalid subscribe QoS, must be <= 2"));if(E=(d>>n.SUBSCRIBE_OPTIONS_NL_SHIFT&n.SUBSCRIBE_OPTIONS_NL_MASK)!==0,b=(d>>n.SUBSCRIBE_OPTIONS_RAP_SHIFT&n.SUBSCRIBE_OPTIONS_RAP_MASK)!==0,g=d>>n.SUBSCRIBE_OPTIONS_RH_SHIFT&n.SUBSCRIBE_OPTIONS_RH_MASK,g>2)return this._emitError(new Error("Invalid retain handling, must be <= 2"));S={topic:l,qos:p},this.settings.protocolVersion===5?(S.nl=E,S.rap=b,S.rh=g):this.settings.bridgeMode&&(S.rh=0,S.rap=!0,S.nl=!0),r("_parseSubscribe: push subscription `%s` to subscription",S),i.subscriptions.push(S)}}}_parseSuback(){r("_parseSuback");let i=this.packet;if(this.packet.granted=[],!!this._parseMessageId()){if(this.settings.protocolVersion===5){let l=this._parseProperties();Object.getOwnPropertyNames(l).length&&(i.properties=l)}if(i.length<=0)return this._emitError(new Error("Malformed suback, no payload specified"));for(;this._pos2&&l!==128)return this._emitError(new Error("Invalid suback QoS, must be 0, 1, 2 or 128"));this.packet.granted.push(l)}}}_parseUnsubscribe(){r("_parseUnsubscribe");let i=this.packet;if(i.unsubscriptions=[],!!this._parseMessageId()){if(this.settings.protocolVersion===5){let l=this._parseProperties();Object.getOwnPropertyNames(l).length&&(i.properties=l)}if(i.length<=0)return this._emitError(new Error("Malformed unsubscribe, no payload specified"));for(;this._pos2){switch(i.reasonCode=this._parseByte(),this.packet.cmd){case"puback":case"pubrec":if(!n.MQTT5_PUBACK_PUBREC_CODES[i.reasonCode])return this._emitError(new Error("Invalid "+this.packet.cmd+" reason code"));break;case"pubrel":case"pubcomp":if(!n.MQTT5_PUBREL_PUBCOMP_CODES[i.reasonCode])return this._emitError(new Error("Invalid "+this.packet.cmd+" reason code"));break}r("_parseConfirmation: packet.reasonCode `%d`",i.reasonCode)}else i.reasonCode=0;if(i.length>3){let l=this._parseProperties();Object.getOwnPropertyNames(l).length&&(i.properties=l)}}return!0}_parseDisconnect(){let i=this.packet;if(r("_parseDisconnect"),this.settings.protocolVersion===5){this._list.length>0?(i.reasonCode=this._parseByte(),n.MQTT5_DISCONNECT_CODES[i.reasonCode]||this._emitError(new Error("Invalid disconnect reason code"))):i.reasonCode=0;let l=this._parseProperties();Object.getOwnPropertyNames(l).length&&(i.properties=l)}return r("_parseDisconnect result: true"),!0}_parseAuth(){r("_parseAuth");let i=this.packet;if(this.settings.protocolVersion!==5)return this._emitError(new Error("Not supported auth packet for this version MQTT"));if(i.reasonCode=this._parseByte(),!n.MQTT5_AUTH_CODES[i.reasonCode])return this._emitError(new Error("Invalid auth reason code"));let l=this._parseProperties();return Object.getOwnPropertyNames(l).length&&(i.properties=l),r("_parseAuth: result: true"),!0}_parseMessageId(){let i=this.packet;return i.messageId=this._parseNum(),i.messageId===null?(this._emitError(new Error("Cannot parse messageId")),!1):(r("_parseMessageId: packet.messageId %d",i.messageId),!0)}_parseString(i){let l=this._parseNum(),d=l+this._pos;if(l===-1||d>this._list.length||d>this.packet.length)return null;let p=this._list.toString("utf8",this._pos,d);return this._pos+=l,r("_parseString: result: %s",p),p}_parseStringPair(){return r("_parseStringPair"),{name:this._parseString(),value:this._parseString()}}_parseBuffer(){let i=this._parseNum(),l=i+this._pos;if(i===-1||l>this._list.length||l>this.packet.length)return null;let d=this._list.slice(this._pos,l);return this._pos+=i,r("_parseBuffer: result: %o",d),d}_parseNum(){if(this._list.length-this._pos<2)return-1;let i=this._list.readUInt16BE(this._pos);return this._pos+=2,r("_parseNum: result: %s",i),i}_parse4ByteNum(){if(this._list.length-this._pos<4)return-1;let i=this._list.readUInt32BE(this._pos);return this._pos+=4,r("_parse4ByteNum: result: %s",i),i}_parseVarByteNum(i){r("_parseVarByteNum");let l=4,d=0,p=1,g=0,b=!1,E,S=this._pos?this._pos:0;for(;d=d&&this._emitError(new Error("Invalid variable byte integer")),S&&(this._pos+=d),b?i?b={bytes:d,value:g}:b=g:b=!1,r("_parseVarByteNum: result: %o",b),b}_parseByte(){let i;return this._pos{ge(),me(),ye();var{Buffer:s}=(st(),Ke(ot)),a=65536,c={},n=s.isBuffer(s.from([1,2]).subarray(0,1));function r(l){let d=s.allocUnsafe(2);return d.writeUInt8(l>>8,0),d.writeUInt8(l&255,1),d}function t(){for(let l=0;l0&&(d=d|128),g.writeUInt8(d,p++);while(l>0&&p<4);return l>0&&(p=0),n?g.subarray(0,p):g.slice(0,p)}function i(l){let d=s.allocUnsafe(4);return d.writeUInt32BE(l,0),d}h.exports={cache:c,generateCache:t,generateNumber:r,genBufVariableByteInt:e,generate4ByteBuffer:i}}),su=Se((f,h)=>{ge(),me(),ye(),typeof Ge>"u"||!Ge.version||Ge.version.indexOf("v0.")===0||Ge.version.indexOf("v1.")===0&&Ge.version.indexOf("v1.8.")!==0?h.exports={nextTick:s}:h.exports=Ge;function s(a,c,n,r){if(typeof a!="function")throw new TypeError('"callback" argument must be a function');var t=arguments.length,e,i;switch(t){case 0:case 1:return Ge.nextTick(a);case 2:return Ge.nextTick(function(){a.call(null,c)});case 3:return Ge.nextTick(function(){a.call(null,c,n)});case 4:return Ge.nextTick(function(){a.call(null,c,n,r)});default:for(e=new Array(t-1),i=0;i{ge(),me(),ye();var s=la(),{Buffer:a}=(st(),Ke(ot)),c=a.allocUnsafe(0),n=a.from([0]),r=ou(),t=su().nextTick,e=Tt()("mqtt-packet:writeToStream"),i=r.cache,l=r.generateNumber,d=r.generateCache,p=r.genBufVariableByteInt,g=r.generate4ByteBuffer,b=ne,E=!0;function S(Y,W,oe){switch(e("generate called"),W.cork&&(W.cork(),t(x,W)),E&&(E=!1,d()),e("generate: packet.cmd: %s",Y.cmd),Y.cmd){case"connect":return y(Y,W);case"connack":return v(Y,W,oe);case"publish":return A(Y,W,oe);case"puback":case"pubrec":case"pubrel":case"pubcomp":return _(Y,W,oe);case"subscribe":return C(Y,W,oe);case"suback":return w(Y,W,oe);case"unsubscribe":return I(Y,W,oe);case"unsuback":return k(Y,W,oe);case"pingreq":case"pingresp":return j(Y,W);case"disconnect":return U(Y,W,oe);case"auth":return P(Y,W,oe);default:return W.destroy(new Error("Unknown command")),!1}}Object.defineProperty(S,"cacheNumbers",{get(){return b===ne},set(Y){Y?((!i||Object.keys(i).length===0)&&(E=!0),b=ne):(E=!1,b=te)}});function x(Y){Y.uncork()}function y(Y,W,oe){let X=Y||{},J=X.protocolId||"MQTT",re=X.protocolVersion||4,we=X.will,pe=X.clean,L=X.keepalive||0,H=X.clientId||"",se=X.username,be=X.password,ve=X.properties;pe===void 0&&(pe=!0);let Ee=0;if(typeof J!="string"&&!a.isBuffer(J))return W.destroy(new Error("Invalid protocolId")),!1;if(Ee+=J.length+2,re!==3&&re!==4&&re!==5)return W.destroy(new Error("Invalid protocol version")),!1;if(Ee+=1,(typeof H=="string"||a.isBuffer(H))&&(H||re>=4)&&(H||pe))Ee+=a.byteLength(H)+2;else{if(re<4)return W.destroy(new Error("clientId must be supplied before 3.1.1")),!1;if(pe*1===0)return W.destroy(new Error("clientId must be given if cleanSession set to 0")),!1}if(typeof L!="number"||L<0||L>65535||L%1!==0)return W.destroy(new Error("Invalid keepalive")),!1;Ee+=2,Ee+=1;let Q,_e;if(re===5){if(Q=le(W,ve),!Q)return!1;Ee+=Q.length}if(we){if(typeof we!="object")return W.destroy(new Error("Invalid will")),!1;if(!we.topic||typeof we.topic!="string")return W.destroy(new Error("Invalid will topic")),!1;if(Ee+=a.byteLength(we.topic)+2,Ee+=2,we.payload)if(we.payload.length>=0)typeof we.payload=="string"?Ee+=a.byteLength(we.payload):Ee+=we.payload.length;else return W.destroy(new Error("Invalid will payload")),!1;if(_e={},re===5){if(_e=le(W,we.properties),!_e)return!1;Ee+=_e.length}}let Oe=!1;if(se!=null)if(Ae(se))Oe=!0,Ee+=a.byteLength(se)+2;else return W.destroy(new Error("Invalid username")),!1;if(be!=null){if(!Oe)return W.destroy(new Error("Username is required to use password")),!1;if(Ae(be))Ee+=ue(be)+2;else return W.destroy(new Error("Invalid password")),!1}W.write(s.CONNECT_HEADER),G(W,Ee),V(W,J),X.bridgeMode&&(re+=128),W.write(re===131?s.VERSION131:re===132?s.VERSION132:re===4?s.VERSION4:re===5?s.VERSION5:s.VERSION3);let fe=0;return fe|=se!=null?s.USERNAME_MASK:0,fe|=be!=null?s.PASSWORD_MASK:0,fe|=we&&we.retain?s.WILL_RETAIN_MASK:0,fe|=we&&we.qos?we.qos<0&&b(W,H),ve?.write(),e("publish: payload: %o",L),W.write(L)}function _(Y,W,oe){let X=oe?oe.protocolVersion:4,J=Y||{},re=J.cmd||"puback",we=J.messageId,pe=J.dup&&re==="pubrel"?s.DUP_MASK:0,L=0,H=J.reasonCode,se=J.properties,be=X===5?3:2;if(re==="pubrel"&&(L=1),typeof we!="number")return W.destroy(new Error("Invalid messageId")),!1;let ve=null;if(X===5&&typeof se=="object"){if(ve=M(W,se,oe,be),!ve)return!1;be+=ve.length}return W.write(s.ACKS[re][L][pe][0]),be===3&&(be+=H!==0?1:-1),G(W,be),b(W,we),X===5&&be!==2&&W.write(a.from([H])),ve!==null?ve.write():be===4&&W.write(a.from([0])),!0}function C(Y,W,oe){e("subscribe: packet: ");let X=oe?oe.protocolVersion:4,J=Y||{},re=J.dup?s.DUP_MASK:0,we=J.messageId,pe=J.subscriptions,L=J.properties,H=0;if(typeof we!="number")return W.destroy(new Error("Invalid messageId")),!1;H+=2;let se=null;if(X===5){if(se=le(W,L),!se)return!1;H+=se.length}if(typeof pe=="object"&&pe.length)for(let ve=0;ve2)return W.destroy(new Error("Invalid subscriptions - invalid Retain Handling")),!1}H+=a.byteLength(Ee)+2+1}else return W.destroy(new Error("Invalid subscriptions")),!1;e("subscribe: writing to stream: %o",s.SUBSCRIBE_HEADER),W.write(s.SUBSCRIBE_HEADER[1][re?1:0][0]),G(W,H),b(W,we),se!==null&&se.write();let be=!0;for(let ve of pe){let Ee=ve.topic,Q=ve.qos,_e=+ve.nl,Oe=+ve.rap,fe=ve.rh,Be;q(W,Ee),Be=s.SUBSCRIBE_OPTIONS_QOS[Q],X===5&&(Be|=_e?s.SUBSCRIBE_OPTIONS_NL:0,Be|=Oe?s.SUBSCRIBE_OPTIONS_RAP:0,Be|=fe?s.SUBSCRIBE_OPTIONS_RH[fe]:0),be=W.write(a.from([Be]))}return be}function w(Y,W,oe){let X=oe?oe.protocolVersion:4,J=Y||{},re=J.messageId,we=J.granted,pe=J.properties,L=0;if(typeof re!="number")return W.destroy(new Error("Invalid messageId")),!1;if(L+=2,typeof we=="object"&&we.length)for(let se=0;ses.VARBYTEINT_MAX)return Y.destroy(new Error(`Invalid variable byte integer: ${W}`)),!1;let oe=z[W];return oe||(oe=p(W),W<16384&&(z[W]=oe)),e("writeVarByteInt: writing to stream: %o",oe),Y.write(oe)}function q(Y,W){let oe=a.byteLength(W);return b(Y,oe),e("writeString: %s",W),Y.write(W,"utf8")}function he(Y,W,oe){q(Y,W),q(Y,oe)}function ne(Y,W){return e("writeNumberCached: number: %d",W),e("writeNumberCached: %o",i[W]),Y.write(i[W])}function te(Y,W){let oe=l(W);return e("writeNumberGenerated: %o",oe),Y.write(oe)}function ce(Y,W){let oe=g(W);return e("write4ByteNumber: %o",oe),Y.write(oe)}function V(Y,W){typeof W=="string"?q(Y,W):W?(b(Y,W.length),Y.write(W)):b(Y,0)}function le(Y,W){if(typeof W!="object"||W.length!=null)return{length:1,write(){Z(Y,{},0)}};let oe=0;function X(J,re){let we=s.propertiesTypes[J],pe=0;switch(we){case"byte":{if(typeof re!="boolean")return Y.destroy(new Error(`Invalid ${J}: ${re}`)),!1;pe+=2;break}case"int8":{if(typeof re!="number"||re<0||re>255)return Y.destroy(new Error(`Invalid ${J}: ${re}`)),!1;pe+=2;break}case"binary":{if(re&&re===null)return Y.destroy(new Error(`Invalid ${J}: ${re}`)),!1;pe+=1+a.byteLength(re)+2;break}case"int16":{if(typeof re!="number"||re<0||re>65535)return Y.destroy(new Error(`Invalid ${J}: ${re}`)),!1;pe+=3;break}case"int32":{if(typeof re!="number"||re<0||re>4294967295)return Y.destroy(new Error(`Invalid ${J}: ${re}`)),!1;pe+=5;break}case"var":{if(typeof re!="number"||re<0||re>268435455)return Y.destroy(new Error(`Invalid ${J}: ${re}`)),!1;pe+=1+a.byteLength(p(re));break}case"string":{if(typeof re!="string")return Y.destroy(new Error(`Invalid ${J}: ${re}`)),!1;pe+=3+a.byteLength(re.toString());break}case"pair":{if(typeof re!="object")return Y.destroy(new Error(`Invalid ${J}: ${re}`)),!1;pe+=Object.getOwnPropertyNames(re).reduce((L,H)=>{let se=re[H];return Array.isArray(se)?L+=se.reduce((be,ve)=>(be+=3+a.byteLength(H.toString())+2+a.byteLength(ve.toString()),be),0):L+=3+a.byteLength(H.toString())+2+a.byteLength(re[H].toString()),L},0);break}default:return Y.destroy(new Error(`Invalid property ${J}: ${re}`)),!1}return pe}if(W)for(let J in W){let re=0,we=0,pe=W[J];if(pe!==void 0){if(Array.isArray(pe))for(let L=0;Lre;){let pe=J.shift();if(pe&&W[pe])delete W[pe],we=le(Y,W);else return!1}return we}function ee(Y,W,oe){switch(s.propertiesTypes[W]){case"byte":{Y.write(a.from([s.properties[W]])),Y.write(a.from([+oe]));break}case"int8":{Y.write(a.from([s.properties[W]])),Y.write(a.from([oe]));break}case"binary":{Y.write(a.from([s.properties[W]])),V(Y,oe);break}case"int16":{Y.write(a.from([s.properties[W]])),b(Y,oe);break}case"int32":{Y.write(a.from([s.properties[W]])),ce(Y,oe);break}case"var":{Y.write(a.from([s.properties[W]])),G(Y,oe);break}case"string":{Y.write(a.from([s.properties[W]])),q(Y,oe);break}case"pair":{Object.getOwnPropertyNames(oe).forEach(X=>{let J=oe[X];Array.isArray(J)?J.forEach(re=>{Y.write(a.from([s.properties[W]])),he(Y,X.toString(),re.toString())}):(Y.write(a.from([s.properties[W]])),he(Y,X.toString(),J.toString()))});break}default:return Y.destroy(new Error(`Invalid property ${W} value: ${oe}`)),!1}}function Z(Y,W,oe){G(Y,oe);for(let X in W)if(Object.prototype.hasOwnProperty.call(W,X)&&W[X]!=null){let J=W[X];if(Array.isArray(J))for(let re=0;re{ge(),me(),ye();var s=ua(),{EventEmitter:a}=(Zt(),Ke(qt)),{Buffer:c}=(st(),Ke(ot));function n(t,e){let i=new r;return s(t,i,e),i.concat()}var r=class extends a{constructor(){super(),this._array=new Array(20),this._i=0}write(t){return this._array[this._i++]=t,!0}concat(){let t=0,e=new Array(this._array.length),i=this._array,l=0,d;for(d=0;d{ge(),me(),ye(),f.parser=iu().parser,f.generate=au(),f.writeToStream=ua()}),uu=Se((f,h)=>{ge(),me(),ye(),h.exports=a;function s(n){return n instanceof Gr?Gr.from(n):new n.constructor(n.buffer.slice(),n.byteOffset,n.length)}function a(n){if(n=n||{},n.circles)return c(n);let r=new Map;if(r.set(Date,d=>new Date(d)),r.set(Map,(d,p)=>new Map(e(Array.from(d),p))),r.set(Set,(d,p)=>new Set(e(Array.from(d),p))),n.constructorHandlers)for(let d of n.constructorHandlers)r.set(d[0],d[1]);let t=null;return n.proto?l:i;function e(d,p){let g=Object.keys(d),b=new Array(g.length);for(let E=0;Enew Date(g)),e.set(Map,(g,b)=>new Map(l(Array.from(g),b))),e.set(Set,(g,b)=>new Set(l(Array.from(g),b))),n.constructorHandlers)for(let g of n.constructorHandlers)e.set(g[0],g[1]);let i=null;return n.proto?p:d;function l(g,b){let E=Object.keys(g),S=new Array(E.length);for(let x=0;x{ge(),me(),ye(),h.exports=uu()()}),hu=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0}),f.validateTopic=h,f.validateTopics=s;function h(a){let c=a.split("/");for(let n=0;n{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0});var h=tr(),s={objectMode:!0},a={clean:!0},c=class{options;_inflights;constructor(n){this.options=n||{},this.options={...a,...n},this._inflights=new Map}put(n,r){return this._inflights.set(n.messageId,n),r&&r(),this}createStream(){let n=new h.Readable(s),r=[],t=!1,e=0;return this._inflights.forEach((i,l)=>{r.push(i)}),n._read=()=>{!t&&e{if(!t)return t=!0,setTimeout(()=>{n.emit("close")},0),n},n}del(n,r){let t=this._inflights.get(n.messageId);return t?(this._inflights.delete(n.messageId),r(null,t)):r&&r(new Error("missing packet")),this}get(n,r){let t=this._inflights.get(n.messageId);return t?r(null,t):r&&r(new Error("missing packet")),this}close(n){this.options.clean&&(this._inflights=null),n&&n()}};f.default=c}),fu=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0});var h=[0,16,128,131,135,144,145,151,153],s=(a,c,n)=>{a.log("handlePublish: packet %o",c),n=typeof n<"u"?n:a.noop;let r=c.topic.toString(),t=c.payload,{qos:e}=c,{messageId:i}=c,{options:l}=a;if(a.options.protocolVersion===5){let d;if(c.properties&&(d=c.properties.topicAlias),typeof d<"u")if(r.length===0)if(d>0&&d<=65535){let p=a.topicAliasRecv.getTopicByAlias(d);if(p)r=p,a.log("handlePublish :: topic complemented by alias. topic: %s - alias: %d",r,d);else{a.log("handlePublish :: unregistered topic alias. alias: %d",d),a.emit("error",new Error("Received unregistered Topic Alias"));return}}else{a.log("handlePublish :: topic alias out of range. alias: %d",d),a.emit("error",new Error("Received Topic Alias is out of range"));return}else if(a.topicAliasRecv.put(r,d))a.log("handlePublish :: registered topic: %s - alias: %d",r,d);else{a.log("handlePublish :: topic alias out of range. alias: %d",d),a.emit("error",new Error("Received Topic Alias is out of range"));return}}switch(a.log("handlePublish: qos %d",e),e){case 2:{l.customHandleAcks(r,t,c,(d,p)=>{if(typeof d=="number"&&(p=d,d=null),d)return a.emit("error",d);if(h.indexOf(p)===-1)return a.emit("error",new Error("Wrong reason code for pubrec"));p?a._sendPacket({cmd:"pubrec",messageId:i,reasonCode:p},n):a.incomingStore.put(c,()=>{a._sendPacket({cmd:"pubrec",messageId:i},n)})});break}case 1:{l.customHandleAcks(r,t,c,(d,p)=>{if(typeof d=="number"&&(p=d,d=null),d)return a.emit("error",d);if(h.indexOf(p)===-1)return a.emit("error",new Error("Wrong reason code for puback"));p||a.emit("message",r,t,c),a.handleMessage(c,g=>{if(g)return n&&n(g);a._sendPacket({cmd:"puback",messageId:i,reasonCode:p},n)})});break}case 0:a.emit("message",r,t,c),a.handleMessage(c,n);break;default:a.log("handlePublish: unknown QoS. Doing nothing.");break}};f.default=s}),pu=Se((f,h)=>{h.exports={version:"5.14.0"}}),ar=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0}),f.MQTTJS_VERSION=f.nextTick=f.ErrorWithSubackPacket=f.ErrorWithReasonCode=void 0,f.applyMixin=a;var h=class ha extends Error{code;constructor(n,r){super(n),this.code=r,Object.setPrototypeOf(this,ha.prototype),Object.getPrototypeOf(this).name="ErrorWithReasonCode"}};f.ErrorWithReasonCode=h;var s=class fa extends Error{packet;constructor(n,r){super(n),this.packet=r,Object.setPrototypeOf(this,fa.prototype),Object.getPrototypeOf(this).name="ErrorWithSubackPacket"}};f.ErrorWithSubackPacket=s;function a(c,n,r=!1){let t=[n];for(;;){let e=t[0],i=Object.getPrototypeOf(e);if(i?.prototype)t.unshift(i);else break}for(let e of t)for(let i of Object.getOwnPropertyNames(e.prototype))(r||i!=="constructor")&&Object.defineProperty(c.prototype,i,Object.getOwnPropertyDescriptor(e.prototype,i)??Object.create(null))}f.nextTick=typeof Ge?.nextTick=="function"?Ge.nextTick:c=>{setTimeout(c,0)},f.MQTTJS_VERSION=pu().version}),Zr=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0}),f.ReasonCodes=void 0;var h=ar();f.ReasonCodes={0:"",1:"Unacceptable protocol version",2:"Identifier rejected",3:"Server unavailable",4:"Bad username or password",5:"Not authorized",16:"No matching subscribers",17:"No subscription existed",128:"Unspecified error",129:"Malformed Packet",130:"Protocol Error",131:"Implementation specific error",132:"Unsupported Protocol Version",133:"Client Identifier not valid",134:"Bad User Name or Password",135:"Not authorized",136:"Server unavailable",137:"Server busy",138:"Banned",139:"Server shutting down",140:"Bad authentication method",141:"Keep Alive timeout",142:"Session taken over",143:"Topic Filter invalid",144:"Topic Name invalid",145:"Packet identifier in use",146:"Packet Identifier not found",147:"Receive Maximum exceeded",148:"Topic Alias invalid",149:"Packet too large",150:"Message rate too high",151:"Quota exceeded",152:"Administrative action",153:"Payload format invalid",154:"Retain not supported",155:"QoS not supported",156:"Use another server",157:"Server moved",158:"Shared Subscriptions not supported",159:"Connection rate exceeded",160:"Maximum connect time",161:"Subscription Identifiers not supported",162:"Wildcard Subscriptions not supported"};var s=(a,c)=>{let{messageId:n}=c,r=c.cmd,t=null,e=a.outgoing[n]?a.outgoing[n].cb:null,i=null;if(!e){a.log("_handleAck :: Server sent an ack in error. Ignoring.");return}switch(a.log("_handleAck :: packet type",r),r){case"pubcomp":case"puback":{let l=c.reasonCode;l&&l>0&&l!==16?(i=new h.ErrorWithReasonCode(`Publish error: ${f.ReasonCodes[l]}`,l),a._removeOutgoingAndStoreMessage(n,()=>{e(i,c)})):a._removeOutgoingAndStoreMessage(n,e);break}case"pubrec":{t={cmd:"pubrel",qos:2,messageId:n};let l=c.reasonCode;l&&l>0&&l!==16?(i=new h.ErrorWithReasonCode(`Publish error: ${f.ReasonCodes[l]}`,l),a._removeOutgoingAndStoreMessage(n,()=>{e(i,c)})):a._sendPacket(t);break}case"suback":{delete a.outgoing[n],a.messageIdProvider.deallocate(n);let l=c.granted;for(let d=0;d{delete a._resubscribeTopics[b]})}}delete a.messageIdToTopic[n],a._invokeStoreProcessingQueue(),e(i,c);break}case"unsuback":{delete a.outgoing[n],a.messageIdProvider.deallocate(n),a._invokeStoreProcessingQueue(),e(null,c);break}default:a.emit("error",new Error("unrecognized packet type"))}a.disconnecting&&Object.keys(a.outgoing).length===0&&a.emit("outgoingEmpty")};f.default=s}),du=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0});var h=ar(),s=Zr(),a=(c,n)=>{let{options:r}=c,t=r.protocolVersion,e=t===5?n.reasonCode:n.returnCode;if(t!==5){let i=new h.ErrorWithReasonCode(`Protocol error: Auth packets are only supported in MQTT 5. Your version:${t}`,e);c.emit("error",i);return}c.handleAuth(n,(i,l)=>{if(i){c.emit("error",i);return}if(e===24)c.reconnecting=!1,c._sendPacket(l);else{let d=new h.ErrorWithReasonCode(`Connection refused: ${s.ReasonCodes[e]}`,e);c.emit("error",d)}})};f.default=a}),gu=Se(f=>{var g,b,E,S,x,y,v,A,_,C,w,I,k,j,U,P,z,G,q,he,ne,te,ce,V,le,M,ee,Z,yi,Ae,Y,W,oe,pa,J,re,we,Lt,Dt,mi,Er,Ar,Ye,bi,fr,Ft,vi,fe;ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0}),f.LRUCache=void 0;var h=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,s=new Set,a=typeof Ge=="object"&&Ge?Ge:{},c=(Be,o,u,m)=>{typeof a.emitWarning=="function"?a.emitWarning(Be,o,u,m):console.error(`[${u}] ${o}: ${Be}`)},n=globalThis.AbortController,r=globalThis.AbortSignal;if(typeof n>"u"){r=class{onabort;_onabort=[];reason;aborted=!1;addEventListener(u,m){this._onabort.push(m)}},n=class{constructor(){o()}signal=new r;abort(u){if(!this.signal.aborted){this.signal.reason=u,this.signal.aborted=!0;for(let m of this.signal._onabort)m(u);this.signal.onabort?.(u)}}};let Be=a.env?.LRU_CACHE_IGNORE_AC_WARNING!=="1",o=()=>{Be&&(Be=!1,c("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",o))}}var t=Be=>!s.has(Be),e=Be=>Be&&Be===Math.floor(Be)&&Be>0&&isFinite(Be),i=Be=>e(Be)?Be<=Math.pow(2,8)?Uint8Array:Be<=Math.pow(2,16)?Uint16Array:Be<=Math.pow(2,32)?Uint32Array:Be<=Number.MAX_SAFE_INTEGER?l:null:null,l=class extends Array{constructor(Be){super(Be),this.fill(0)}},d=(g=class{heap;length;static create(o){let u=i(o);if(!u)return[];De(g,b,!0);let m=new g(o,u);return De(g,b,!1),m}constructor(o,u){if(!D(g,b))throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new u(o),this.length=0}push(o){this.heap[this.length++]=o}pop(){return this.heap[--this.length]}},b=new WeakMap,qe(g,b,!1),g),p=(fe=class{constructor(o){qe(this,Z);qe(this,x);qe(this,y);qe(this,v);qe(this,A);qe(this,_);qe(this,C);it(this,"ttl");it(this,"ttlResolution");it(this,"ttlAutopurge");it(this,"updateAgeOnGet");it(this,"updateAgeOnHas");it(this,"allowStale");it(this,"noDisposeOnSet");it(this,"noUpdateTTL");it(this,"maxEntrySize");it(this,"sizeCalculation");it(this,"noDeleteOnFetchRejection");it(this,"noDeleteOnStaleGet");it(this,"allowStaleOnFetchAbort");it(this,"allowStaleOnFetchRejection");it(this,"ignoreFetchAbort");qe(this,w);qe(this,I);qe(this,k);qe(this,j);qe(this,U);qe(this,P);qe(this,z);qe(this,G);qe(this,q);qe(this,he);qe(this,ne);qe(this,te);qe(this,ce);qe(this,V);qe(this,le);qe(this,M);qe(this,ee);qe(this,Ae,()=>{});qe(this,Y,()=>{});qe(this,W,()=>{});qe(this,oe,()=>!1);qe(this,J,o=>{});qe(this,re,(o,u,m)=>{});qe(this,we,(o,u,m,T)=>{if(m||T)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0});it(this,E,"LRUCache");let{max:u=0,ttl:m,ttlResolution:T=1,ttlAutopurge:N,updateAgeOnGet:K,updateAgeOnHas:de,allowStale:$,dispose:ie,disposeAfter:Re,noDisposeOnSet:ke,noUpdateTTL:Le,maxSize:Ue=0,maxEntrySize:Xe=0,sizeCalculation:Fe,fetchMethod:We,memoMethod:je,noDeleteOnFetchRejection:tt,noDeleteOnStaleGet:He,allowStaleOnFetchRejection:$e,allowStaleOnFetchAbort:nt,ignoreFetchAbort:dt}=o;if(u!==0&&!e(u))throw new TypeError("max option must be a nonnegative integer");let lt=u?i(u):Array;if(!lt)throw new Error("invalid max value: "+u);if(De(this,x,u),De(this,y,Ue),this.maxEntrySize=Xe||D(this,y),this.sizeCalculation=Fe,this.sizeCalculation){if(!D(this,y)&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(je!==void 0&&typeof je!="function")throw new TypeError("memoMethod must be a function if defined");if(De(this,C,je),We!==void 0&&typeof We!="function")throw new TypeError("fetchMethod must be a function if specified");if(De(this,_,We),De(this,M,!!We),De(this,k,new Map),De(this,j,new Array(u).fill(void 0)),De(this,U,new Array(u).fill(void 0)),De(this,P,new lt(u)),De(this,z,new lt(u)),De(this,G,0),De(this,q,0),De(this,he,d.create(u)),De(this,w,0),De(this,I,0),typeof ie=="function"&&De(this,v,ie),typeof Re=="function"?(De(this,A,Re),De(this,ne,[])):(De(this,A,void 0),De(this,ne,void 0)),De(this,le,!!D(this,v)),De(this,ee,!!D(this,A)),this.noDisposeOnSet=!!ke,this.noUpdateTTL=!!Le,this.noDeleteOnFetchRejection=!!tt,this.allowStaleOnFetchRejection=!!$e,this.allowStaleOnFetchAbort=!!nt,this.ignoreFetchAbort=!!dt,this.maxEntrySize!==0){if(D(this,y)!==0&&!e(D(this,y)))throw new TypeError("maxSize must be a positive integer if specified");if(!e(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");Ne(this,Z,pa).call(this)}if(this.allowStale=!!$,this.noDeleteOnStaleGet=!!He,this.updateAgeOnGet=!!K,this.updateAgeOnHas=!!de,this.ttlResolution=e(T)||T===0?T:1,this.ttlAutopurge=!!N,this.ttl=m||0,this.ttl){if(!e(this.ttl))throw new TypeError("ttl must be a positive integer if specified");Ne(this,Z,yi).call(this)}if(D(this,x)===0&&this.ttl===0&&D(this,y)===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!D(this,x)&&!D(this,y)){let R="LRU_CACHE_UNBOUNDED";t(R)&&(s.add(R),c("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",R,fe))}}static unsafeExposeInternals(o){return{starts:D(o,ce),ttls:D(o,V),sizes:D(o,te),keyMap:D(o,k),keyList:D(o,j),valList:D(o,U),next:D(o,P),prev:D(o,z),get head(){return D(o,G)},get tail(){return D(o,q)},free:D(o,he),isBackgroundFetch:u=>{var m;return Ne(m=o,Z,Ye).call(m,u)},backgroundFetch:(u,m,T,N)=>{var K;return Ne(K=o,Z,Ar).call(K,u,m,T,N)},moveToTail:u=>{var m;return Ne(m=o,Z,fr).call(m,u)},indexes:u=>{var m;return Ne(m=o,Z,Lt).call(m,u)},rindexes:u=>{var m;return Ne(m=o,Z,Dt).call(m,u)},isStale:u=>{var m;return D(m=o,oe).call(m,u)}}}get max(){return D(this,x)}get maxSize(){return D(this,y)}get calculatedSize(){return D(this,I)}get size(){return D(this,w)}get fetchMethod(){return D(this,_)}get memoMethod(){return D(this,C)}get dispose(){return D(this,v)}get disposeAfter(){return D(this,A)}getRemainingTTL(o){return D(this,k).has(o)?1/0:0}*entries(){for(let o of Ne(this,Z,Lt).call(this))D(this,U)[o]!==void 0&&D(this,j)[o]!==void 0&&!Ne(this,Z,Ye).call(this,D(this,U)[o])&&(yield[D(this,j)[o],D(this,U)[o]])}*rentries(){for(let o of Ne(this,Z,Dt).call(this))D(this,U)[o]!==void 0&&D(this,j)[o]!==void 0&&!Ne(this,Z,Ye).call(this,D(this,U)[o])&&(yield[D(this,j)[o],D(this,U)[o]])}*keys(){for(let o of Ne(this,Z,Lt).call(this)){let u=D(this,j)[o];u!==void 0&&!Ne(this,Z,Ye).call(this,D(this,U)[o])&&(yield u)}}*rkeys(){for(let o of Ne(this,Z,Dt).call(this)){let u=D(this,j)[o];u!==void 0&&!Ne(this,Z,Ye).call(this,D(this,U)[o])&&(yield u)}}*values(){for(let o of Ne(this,Z,Lt).call(this))D(this,U)[o]!==void 0&&!Ne(this,Z,Ye).call(this,D(this,U)[o])&&(yield D(this,U)[o])}*rvalues(){for(let o of Ne(this,Z,Dt).call(this))D(this,U)[o]!==void 0&&!Ne(this,Z,Ye).call(this,D(this,U)[o])&&(yield D(this,U)[o])}[(S=Symbol.iterator,E=Symbol.toStringTag,S)](){return this.entries()}find(o,u={}){for(let m of Ne(this,Z,Lt).call(this)){let T=D(this,U)[m],N=Ne(this,Z,Ye).call(this,T)?T.__staleWhileFetching:T;if(N!==void 0&&o(N,D(this,j)[m],this))return this.get(D(this,j)[m],u)}}forEach(o,u=this){for(let m of Ne(this,Z,Lt).call(this)){let T=D(this,U)[m],N=Ne(this,Z,Ye).call(this,T)?T.__staleWhileFetching:T;N!==void 0&&o.call(u,N,D(this,j)[m],this)}}rforEach(o,u=this){for(let m of Ne(this,Z,Dt).call(this)){let T=D(this,U)[m],N=Ne(this,Z,Ye).call(this,T)?T.__staleWhileFetching:T;N!==void 0&&o.call(u,N,D(this,j)[m],this)}}purgeStale(){let o=!1;for(let u of Ne(this,Z,Dt).call(this,{allowStale:!0}))D(this,oe).call(this,u)&&(Ne(this,Z,Ft).call(this,D(this,j)[u],"expire"),o=!0);return o}info(o){let u=D(this,k).get(o);if(u===void 0)return;let m=D(this,U)[u],T=Ne(this,Z,Ye).call(this,m)?m.__staleWhileFetching:m;if(T===void 0)return;let N={value:T};if(D(this,V)&&D(this,ce)){let K=D(this,V)[u],de=D(this,ce)[u];if(K&&de){let $=K-(h.now()-de);N.ttl=$,N.start=Date.now()}}return D(this,te)&&(N.size=D(this,te)[u]),N}dump(){let o=[];for(let u of Ne(this,Z,Lt).call(this,{allowStale:!0})){let m=D(this,j)[u],T=D(this,U)[u],N=Ne(this,Z,Ye).call(this,T)?T.__staleWhileFetching:T;if(N===void 0||m===void 0)continue;let K={value:N};if(D(this,V)&&D(this,ce)){K.ttl=D(this,V)[u];let de=h.now()-D(this,ce)[u];K.start=Math.floor(Date.now()-de)}D(this,te)&&(K.size=D(this,te)[u]),o.unshift([m,K])}return o}load(o){this.clear();for(let[u,m]of o){if(m.start){let T=Date.now()-m.start;m.start=h.now()-T}this.set(u,m.value,m)}}set(o,u,m={}){var Le,Ue,Xe;if(u===void 0)return this.delete(o),this;let{ttl:T=this.ttl,start:N,noDisposeOnSet:K=this.noDisposeOnSet,sizeCalculation:de=this.sizeCalculation,status:$}=m,{noUpdateTTL:ie=this.noUpdateTTL}=m,Re=D(this,we).call(this,o,u,m.size||0,de);if(this.maxEntrySize&&Re>this.maxEntrySize)return $&&($.set="miss",$.maxEntrySizeExceeded=!0),Ne(this,Z,Ft).call(this,o,"set"),this;let ke=D(this,w)===0?void 0:D(this,k).get(o);if(ke===void 0)ke=D(this,w)===0?D(this,q):D(this,he).length!==0?D(this,he).pop():D(this,w)===D(this,x)?Ne(this,Z,Er).call(this,!1):D(this,w),D(this,j)[ke]=o,D(this,U)[ke]=u,D(this,k).set(o,ke),D(this,P)[D(this,q)]=ke,D(this,z)[ke]=D(this,q),De(this,q,ke),br(this,w)._++,D(this,re).call(this,ke,Re,$),$&&($.set="add"),ie=!1;else{Ne(this,Z,fr).call(this,ke);let Fe=D(this,U)[ke];if(u!==Fe){if(D(this,M)&&Ne(this,Z,Ye).call(this,Fe)){Fe.__abortController.abort(new Error("replaced"));let{__staleWhileFetching:We}=Fe;We!==void 0&&!K&&(D(this,le)&&((Le=D(this,v))==null||Le.call(this,We,o,"set")),D(this,ee)&&D(this,ne)?.push([We,o,"set"]))}else K||(D(this,le)&&((Ue=D(this,v))==null||Ue.call(this,Fe,o,"set")),D(this,ee)&&D(this,ne)?.push([Fe,o,"set"]));if(D(this,J).call(this,ke),D(this,re).call(this,ke,Re,$),D(this,U)[ke]=u,$){$.set="replace";let We=Fe&&Ne(this,Z,Ye).call(this,Fe)?Fe.__staleWhileFetching:Fe;We!==void 0&&($.oldValue=We)}}else $&&($.set="update")}if(T!==0&&!D(this,V)&&Ne(this,Z,yi).call(this),D(this,V)&&(ie||D(this,W).call(this,ke,T,N),$&&D(this,Y).call(this,$,ke)),!K&&D(this,ee)&&D(this,ne)){let Fe=D(this,ne),We;for(;We=Fe?.shift();)(Xe=D(this,A))==null||Xe.call(this,...We)}return this}pop(){var o;try{for(;D(this,w);){let u=D(this,U)[D(this,G)];if(Ne(this,Z,Er).call(this,!0),Ne(this,Z,Ye).call(this,u)){if(u.__staleWhileFetching)return u.__staleWhileFetching}else if(u!==void 0)return u}}finally{if(D(this,ee)&&D(this,ne)){let u=D(this,ne),m;for(;m=u?.shift();)(o=D(this,A))==null||o.call(this,...m)}}}has(o,u={}){let{updateAgeOnHas:m=this.updateAgeOnHas,status:T}=u,N=D(this,k).get(o);if(N!==void 0){let K=D(this,U)[N];if(Ne(this,Z,Ye).call(this,K)&&K.__staleWhileFetching===void 0)return!1;if(D(this,oe).call(this,N))T&&(T.has="stale",D(this,Y).call(this,T,N));else return m&&D(this,Ae).call(this,N),T&&(T.has="hit",D(this,Y).call(this,T,N)),!0}else T&&(T.has="miss");return!1}peek(o,u={}){let{allowStale:m=this.allowStale}=u,T=D(this,k).get(o);if(T===void 0||!m&&D(this,oe).call(this,T))return;let N=D(this,U)[T];return Ne(this,Z,Ye).call(this,N)?N.__staleWhileFetching:N}async fetch(o,u={}){let{allowStale:m=this.allowStale,updateAgeOnGet:T=this.updateAgeOnGet,noDeleteOnStaleGet:N=this.noDeleteOnStaleGet,ttl:K=this.ttl,noDisposeOnSet:de=this.noDisposeOnSet,size:$=0,sizeCalculation:ie=this.sizeCalculation,noUpdateTTL:Re=this.noUpdateTTL,noDeleteOnFetchRejection:ke=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:Le=this.allowStaleOnFetchRejection,ignoreFetchAbort:Ue=this.ignoreFetchAbort,allowStaleOnFetchAbort:Xe=this.allowStaleOnFetchAbort,context:Fe,forceRefresh:We=!1,status:je,signal:tt}=u;if(!D(this,M))return je&&(je.fetch="get"),this.get(o,{allowStale:m,updateAgeOnGet:T,noDeleteOnStaleGet:N,status:je});let He={allowStale:m,updateAgeOnGet:T,noDeleteOnStaleGet:N,ttl:K,noDisposeOnSet:de,size:$,sizeCalculation:ie,noUpdateTTL:Re,noDeleteOnFetchRejection:ke,allowStaleOnFetchRejection:Le,allowStaleOnFetchAbort:Xe,ignoreFetchAbort:Ue,status:je,signal:tt},$e=D(this,k).get(o);if($e===void 0){je&&(je.fetch="miss");let nt=Ne(this,Z,Ar).call(this,o,$e,He,Fe);return nt.__returned=nt}else{let nt=D(this,U)[$e];if(Ne(this,Z,Ye).call(this,nt)){let F=m&&nt.__staleWhileFetching!==void 0;return je&&(je.fetch="inflight",F&&(je.returnedStale=!0)),F?nt.__staleWhileFetching:nt.__returned=nt}let dt=D(this,oe).call(this,$e);if(!We&&!dt)return je&&(je.fetch="hit"),Ne(this,Z,fr).call(this,$e),T&&D(this,Ae).call(this,$e),je&&D(this,Y).call(this,je,$e),nt;let lt=Ne(this,Z,Ar).call(this,o,$e,He,Fe),R=lt.__staleWhileFetching!==void 0&&m;return je&&(je.fetch=dt?"stale":"refresh",R&&dt&&(je.returnedStale=!0)),R?lt.__staleWhileFetching:lt.__returned=lt}}async forceFetch(o,u={}){let m=await this.fetch(o,u);if(m===void 0)throw new Error("fetch() returned undefined");return m}memo(o,u={}){let m=D(this,C);if(!m)throw new Error("no memoMethod provided to constructor");let{context:T,forceRefresh:N,...K}=u,de=this.get(o,K);if(!N&&de!==void 0)return de;let $=m(o,de,{options:K,context:T});return this.set(o,$,K),$}get(o,u={}){let{allowStale:m=this.allowStale,updateAgeOnGet:T=this.updateAgeOnGet,noDeleteOnStaleGet:N=this.noDeleteOnStaleGet,status:K}=u,de=D(this,k).get(o);if(de!==void 0){let $=D(this,U)[de],ie=Ne(this,Z,Ye).call(this,$);return K&&D(this,Y).call(this,K,de),D(this,oe).call(this,de)?(K&&(K.get="stale"),ie?(K&&m&&$.__staleWhileFetching!==void 0&&(K.returnedStale=!0),m?$.__staleWhileFetching:void 0):(N||Ne(this,Z,Ft).call(this,o,"expire"),K&&m&&(K.returnedStale=!0),m?$:void 0)):(K&&(K.get="hit"),ie?$.__staleWhileFetching:(Ne(this,Z,fr).call(this,de),T&&D(this,Ae).call(this,de),$))}else K&&(K.get="miss")}delete(o){return Ne(this,Z,Ft).call(this,o,"delete")}clear(){return Ne(this,Z,vi).call(this,"delete")}},x=new WeakMap,y=new WeakMap,v=new WeakMap,A=new WeakMap,_=new WeakMap,C=new WeakMap,w=new WeakMap,I=new WeakMap,k=new WeakMap,j=new WeakMap,U=new WeakMap,P=new WeakMap,z=new WeakMap,G=new WeakMap,q=new WeakMap,he=new WeakMap,ne=new WeakMap,te=new WeakMap,ce=new WeakMap,V=new WeakMap,le=new WeakMap,M=new WeakMap,ee=new WeakMap,Z=new WeakSet,yi=function(){let o=new l(D(this,x)),u=new l(D(this,x));De(this,V,o),De(this,ce,u),De(this,W,(N,K,de=h.now())=>{if(u[N]=K!==0?de:0,o[N]=K,K!==0&&this.ttlAutopurge){let $=setTimeout(()=>{D(this,oe).call(this,N)&&Ne(this,Z,Ft).call(this,D(this,j)[N],"expire")},K+1);$.unref&&$.unref()}}),De(this,Ae,N=>{u[N]=o[N]!==0?h.now():0}),De(this,Y,(N,K)=>{if(o[K]){let de=o[K],$=u[K];if(!de||!$)return;N.ttl=de,N.start=$,N.now=m||T();let ie=N.now-$;N.remainingTTL=de-ie}});let m=0,T=()=>{let N=h.now();if(this.ttlResolution>0){m=N;let K=setTimeout(()=>m=0,this.ttlResolution);K.unref&&K.unref()}return N};this.getRemainingTTL=N=>{let K=D(this,k).get(N);if(K===void 0)return 0;let de=o[K],$=u[K];if(!de||!$)return 1/0;let ie=(m||T())-$;return de-ie},De(this,oe,N=>{let K=u[N],de=o[N];return!!de&&!!K&&(m||T())-K>de})},Ae=new WeakMap,Y=new WeakMap,W=new WeakMap,oe=new WeakMap,pa=function(){let o=new l(D(this,x));De(this,I,0),De(this,te,o),De(this,J,u=>{De(this,I,D(this,I)-o[u]),o[u]=0}),De(this,we,(u,m,T,N)=>{if(Ne(this,Z,Ye).call(this,m))return 0;if(!e(T))if(N){if(typeof N!="function")throw new TypeError("sizeCalculation must be a function");if(T=N(m,u),!e(T))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return T}),De(this,re,(u,m,T)=>{if(o[u]=m,D(this,y)){let N=D(this,y)-o[u];for(;D(this,I)>N;)Ne(this,Z,Er).call(this,!0)}De(this,I,D(this,I)+o[u]),T&&(T.entrySize=m,T.totalCalculatedSize=D(this,I))})},J=new WeakMap,re=new WeakMap,we=new WeakMap,Lt=function*({allowStale:o=this.allowStale}={}){if(D(this,w))for(let u=D(this,q);!(!Ne(this,Z,mi).call(this,u)||((o||!D(this,oe).call(this,u))&&(yield u),u===D(this,G)));)u=D(this,z)[u]},Dt=function*({allowStale:o=this.allowStale}={}){if(D(this,w))for(let u=D(this,G);!(!Ne(this,Z,mi).call(this,u)||((o||!D(this,oe).call(this,u))&&(yield u),u===D(this,q)));)u=D(this,P)[u]},mi=function(o){return o!==void 0&&D(this,k).get(D(this,j)[o])===o},Er=function(o){var N;let u=D(this,G),m=D(this,j)[u],T=D(this,U)[u];return D(this,M)&&Ne(this,Z,Ye).call(this,T)?T.__abortController.abort(new Error("evicted")):(D(this,le)||D(this,ee))&&(D(this,le)&&((N=D(this,v))==null||N.call(this,T,m,"evict")),D(this,ee)&&D(this,ne)?.push([T,m,"evict"])),D(this,J).call(this,u),o&&(D(this,j)[u]=void 0,D(this,U)[u]=void 0,D(this,he).push(u)),D(this,w)===1?(De(this,G,De(this,q,0)),D(this,he).length=0):De(this,G,D(this,P)[u]),D(this,k).delete(m),br(this,w)._--,u},Ar=function(o,u,m,T){let N=u===void 0?void 0:D(this,U)[u];if(Ne(this,Z,Ye).call(this,N))return N;let K=new n,{signal:de}=m;de?.addEventListener("abort",()=>K.abort(de.reason),{signal:K.signal});let $={signal:K.signal,options:m,context:T},ie=(Fe,We=!1)=>{let{aborted:je}=K.signal,tt=m.ignoreFetchAbort&&Fe!==void 0;if(m.status&&(je&&!We?(m.status.fetchAborted=!0,m.status.fetchError=K.signal.reason,tt&&(m.status.fetchAbortIgnored=!0)):m.status.fetchResolved=!0),je&&!tt&&!We)return ke(K.signal.reason);let He=Ue;return D(this,U)[u]===Ue&&(Fe===void 0?He.__staleWhileFetching?D(this,U)[u]=He.__staleWhileFetching:Ne(this,Z,Ft).call(this,o,"fetch"):(m.status&&(m.status.fetchUpdated=!0),this.set(o,Fe,$.options))),Fe},Re=Fe=>(m.status&&(m.status.fetchRejected=!0,m.status.fetchError=Fe),ke(Fe)),ke=Fe=>{let{aborted:We}=K.signal,je=We&&m.allowStaleOnFetchAbort,tt=je||m.allowStaleOnFetchRejection,He=tt||m.noDeleteOnFetchRejection,$e=Ue;if(D(this,U)[u]===Ue&&(!He||$e.__staleWhileFetching===void 0?Ne(this,Z,Ft).call(this,o,"fetch"):je||(D(this,U)[u]=$e.__staleWhileFetching)),tt)return m.status&&$e.__staleWhileFetching!==void 0&&(m.status.returnedStale=!0),$e.__staleWhileFetching;if($e.__returned===$e)throw Fe},Le=(Fe,We)=>{var tt;let je=(tt=D(this,_))==null?void 0:tt.call(this,o,N,$);je&&je instanceof Promise&&je.then(He=>Fe(He===void 0?void 0:He),We),K.signal.addEventListener("abort",()=>{(!m.ignoreFetchAbort||m.allowStaleOnFetchAbort)&&(Fe(void 0),m.allowStaleOnFetchAbort&&(Fe=He=>ie(He,!0)))})};m.status&&(m.status.fetchDispatched=!0);let Ue=new Promise(Le).then(ie,Re),Xe=Object.assign(Ue,{__abortController:K,__staleWhileFetching:N,__returned:void 0});return u===void 0?(this.set(o,Xe,{...$.options,status:void 0}),u=D(this,k).get(o)):D(this,U)[u]=Xe,Xe},Ye=function(o){if(!D(this,M))return!1;let u=o;return!!u&&u instanceof Promise&&u.hasOwnProperty("__staleWhileFetching")&&u.__abortController instanceof n},bi=function(o,u){D(this,z)[u]=o,D(this,P)[o]=u},fr=function(o){o!==D(this,q)&&(o===D(this,G)?De(this,G,D(this,P)[o]):Ne(this,Z,bi).call(this,D(this,z)[o],D(this,P)[o]),Ne(this,Z,bi).call(this,D(this,q),o),De(this,q,o))},Ft=function(o,u){var T,N;let m=!1;if(D(this,w)!==0){let K=D(this,k).get(o);if(K!==void 0)if(m=!0,D(this,w)===1)Ne(this,Z,vi).call(this,u);else{D(this,J).call(this,K);let de=D(this,U)[K];if(Ne(this,Z,Ye).call(this,de)?de.__abortController.abort(new Error("deleted")):(D(this,le)||D(this,ee))&&(D(this,le)&&((T=D(this,v))==null||T.call(this,de,o,u)),D(this,ee)&&D(this,ne)?.push([de,o,u])),D(this,k).delete(o),D(this,j)[K]=void 0,D(this,U)[K]=void 0,K===D(this,q))De(this,q,D(this,z)[K]);else if(K===D(this,G))De(this,G,D(this,P)[K]);else{let $=D(this,z)[K];D(this,P)[$]=D(this,P)[K];let ie=D(this,P)[K];D(this,z)[ie]=D(this,z)[K]}br(this,w)._--,D(this,he).push(K)}}if(D(this,ee)&&D(this,ne)?.length){let K=D(this,ne),de;for(;de=K?.shift();)(N=D(this,A))==null||N.call(this,...de)}return m},vi=function(o){var u,m;for(let T of Ne(this,Z,Dt).call(this,{allowStale:!0})){let N=D(this,U)[T];if(Ne(this,Z,Ye).call(this,N))N.__abortController.abort(new Error("deleted"));else{let K=D(this,j)[T];D(this,le)&&((u=D(this,v))==null||u.call(this,N,K,o)),D(this,ee)&&D(this,ne)?.push([N,K,o])}}if(D(this,k).clear(),D(this,U).fill(void 0),D(this,j).fill(void 0),D(this,V)&&D(this,ce)&&(D(this,V).fill(0),D(this,ce).fill(0)),D(this,te)&&D(this,te).fill(0),De(this,G,0),De(this,q,0),D(this,he).length=0,De(this,I,0),De(this,w,0),D(this,ee)&&D(this,ne)){let T=D(this,ne),N;for(;N=T?.shift();)(m=D(this,A))==null||m.call(this,...N)}},fe);f.LRUCache=p}),Rt=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.ContainerIterator=f.Container=f.Base=void 0;var h=class{constructor(c=0){this.iteratorType=c}equals(c){return this.o===c.o}};f.ContainerIterator=h;var s=class{constructor(){this.i=0}get length(){return this.i}size(){return this.i}empty(){return this.i===0}};f.Base=s;var a=class extends s{};f.Container=a}),yu=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=Rt(),s=class extends h.Base{constructor(c=[]){super(),this.S=[];let n=this;c.forEach(function(r){n.push(r)})}clear(){this.i=0,this.S=[]}push(c){return this.S.push(c),this.i+=1,this.i}pop(){if(this.i!==0)return this.i-=1,this.S.pop()}top(){return this.S[this.i-1]}},a=s;f.default=a}),mu=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=Rt(),s=class extends h.Base{constructor(c=[]){super(),this.j=0,this.q=[];let n=this;c.forEach(function(r){n.push(r)})}clear(){this.q=[],this.i=this.j=0}push(c){let n=this.q.length;if(this.j/n>.5&&this.j+this.i>=n&&n>4096){let r=this.i;for(let t=0;t{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=Rt(),s=class extends h.Base{constructor(c=[],n=function(t,e){return t>e?-1:t>1;for(let e=this.i-1>>1;e>=0;--e)this.k(e,t)}m(c){let n=this.C[c];for(;c>0;){let r=c-1>>1,t=this.C[r];if(this.v(t,n)<=0)break;this.C[c]=t,c=r}this.C[c]=n}k(c,n){let r=this.C[c];for(;c0&&(t=e,i=this.C[e]),this.v(i,r)>=0)break;this.C[c]=i,c=t}this.C[c]=r}clear(){this.i=0,this.C.length=0}push(c){this.C.push(c),this.m(this.i),this.i+=1}pop(){if(this.i===0)return;let c=this.C[0],n=this.C.pop();return this.i-=1,this.i&&(this.C[0]=n,this.k(0,this.i>>1)),c}top(){return this.C[0]}find(c){return this.C.indexOf(c)>=0}remove(c){let n=this.C.indexOf(c);return n<0?!1:(n===0?this.pop():n===this.i-1?(this.C.pop(),this.i-=1):(this.C.splice(n,1,this.C.pop()),this.i-=1,this.m(n),this.k(n,this.i>>1)),!0)}updateItem(c){let n=this.C.indexOf(c);return n<0?!1:(this.m(n),this.k(n,this.i>>1),!0)}toArray(){return[...this.C]}},a=s;f.default=a}),po=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=Rt(),s=class extends h.Container{},a=s;f.default=a}),jt=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.throwIteratorAccessError=h;function h(){throw new RangeError("Iterator access denied!")}}),da=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.RandomIterator=void 0;var h=Rt(),s=jt(),a=class extends h.ContainerIterator{constructor(c,n){super(n),this.o=c,this.iteratorType===0?(this.pre=function(){return this.o===0&&(0,s.throwIteratorAccessError)(),this.o-=1,this},this.next=function(){return this.o===this.container.size()&&(0,s.throwIteratorAccessError)(),this.o+=1,this}):(this.pre=function(){return this.o===this.container.size()-1&&(0,s.throwIteratorAccessError)(),this.o+=1,this},this.next=function(){return this.o===-1&&(0,s.throwIteratorAccessError)(),this.o-=1,this})}get pointer(){return this.container.getElementByPos(this.o)}set pointer(c){this.container.setElementByPos(this.o,c)}};f.RandomIterator=a}),vu=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=a(po()),s=da();function a(t){return t&&t.t?t:{default:t}}var c=class ga extends s.RandomIterator{constructor(e,i,l){super(e,l),this.container=i}copy(){return new ga(this.o,this.container,this.iteratorType)}},n=class extends h.default{constructor(t=[],e=!0){if(super(),Array.isArray(t))this.J=e?[...t]:t,this.i=t.length;else{this.J=[];let i=this;t.forEach(function(l){i.pushBack(l)})}}clear(){this.i=0,this.J.length=0}begin(){return new c(0,this)}end(){return new c(this.i,this)}rBegin(){return new c(this.i-1,this,1)}rEnd(){return new c(-1,this,1)}front(){return this.J[0]}back(){return this.J[this.i-1]}getElementByPos(t){if(t<0||t>this.i-1)throw new RangeError;return this.J[t]}eraseElementByPos(t){if(t<0||t>this.i-1)throw new RangeError;return this.J.splice(t,1),this.i-=1,this.i}eraseElementByValue(t){let e=0;for(let i=0;ithis.i-1)throw new RangeError;this.J[t]=e}insert(t,e,i=1){if(t<0||t>this.i)throw new RangeError;return this.J.splice(t,0,...new Array(i).fill(e)),this.i+=i,this.i}find(t){for(let e=0;e{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=c(po()),s=Rt(),a=jt();function c(e){return e&&e.t?e:{default:e}}var n=class ya extends s.ContainerIterator{constructor(i,l,d,p){super(p),this.o=i,this.h=l,this.container=d,this.iteratorType===0?(this.pre=function(){return this.o.L===this.h&&(0,a.throwIteratorAccessError)(),this.o=this.o.L,this},this.next=function(){return this.o===this.h&&(0,a.throwIteratorAccessError)(),this.o=this.o.B,this}):(this.pre=function(){return this.o.B===this.h&&(0,a.throwIteratorAccessError)(),this.o=this.o.B,this},this.next=function(){return this.o===this.h&&(0,a.throwIteratorAccessError)(),this.o=this.o.L,this})}get pointer(){return this.o===this.h&&(0,a.throwIteratorAccessError)(),this.o.l}set pointer(i){this.o===this.h&&(0,a.throwIteratorAccessError)(),this.o.l=i}copy(){return new ya(this.o,this.h,this.container,this.iteratorType)}},r=class extends h.default{constructor(e=[]){super(),this.h={},this.p=this._=this.h.L=this.h.B=this.h;let i=this;e.forEach(function(l){i.pushBack(l)})}V(e){let{L:i,B:l}=e;i.B=l,l.L=i,e===this.p&&(this.p=l),e===this._&&(this._=i),this.i-=1}G(e,i){let l=i.B,d={l:e,L:i,B:l};i.B=d,l.L=d,i===this.h&&(this.p=d),l===this.h&&(this._=d),this.i+=1}clear(){this.i=0,this.p=this._=this.h.L=this.h.B=this.h}begin(){return new n(this.p,this.h,this)}end(){return new n(this.h,this.h,this)}rBegin(){return new n(this._,this.h,this,1)}rEnd(){return new n(this.h,this.h,this,1)}front(){return this.p.l}back(){return this._.l}getElementByPos(e){if(e<0||e>this.i-1)throw new RangeError;let i=this.p;for(;e--;)i=i.B;return i.l}eraseElementByPos(e){if(e<0||e>this.i-1)throw new RangeError;let i=this.p;for(;e--;)i=i.B;return this.V(i),this.i}eraseElementByValue(e){let i=this.p;for(;i!==this.h;)i.l===e&&this.V(i),i=i.B;return this.i}eraseElementByIterator(e){let i=e.o;return i===this.h&&(0,a.throwIteratorAccessError)(),e=e.next(),this.V(i),e}pushBack(e){return this.G(e,this._),this.i}popBack(){if(this.i===0)return;let e=this._.l;return this.V(this._),e}pushFront(e){return this.G(e,this.h),this.i}popFront(){if(this.i===0)return;let e=this.p.l;return this.V(this.p),e}setElementByPos(e,i){if(e<0||e>this.i-1)throw new RangeError;let l=this.p;for(;e--;)l=l.B;l.l=i}insert(e,i,l=1){if(e<0||e>this.i)throw new RangeError;if(l<=0)return this.i;if(e===0)for(;l--;)this.pushFront(i);else if(e===this.i)for(;l--;)this.pushBack(i);else{let d=this.p;for(let g=1;g{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=a(po()),s=da();function a(t){return t&&t.t?t:{default:t}}var c=class ma extends s.RandomIterator{constructor(e,i,l){super(e,l),this.container=i}copy(){return new ma(this.o,this.container,this.iteratorType)}},n=class extends h.default{constructor(t=[],e=4096){super(),this.j=0,this.D=0,this.R=0,this.N=0,this.P=0,this.A=[];let i=(()=>{if(typeof t.length=="number")return t.length;if(typeof t.size=="number")return t.size;if(typeof t.size=="function")return t.size();throw new TypeError("Cannot get the length or size of the container")})();this.F=e,this.P=Math.max(Math.ceil(i/this.F),1);for(let p=0;p>1)-(l>>1),this.D=this.N=this.F-i%this.F>>1;let d=this;t.forEach(function(p){d.pushBack(p)})}T(){let t=[],e=Math.max(this.P>>1,1);for(let i=0;i>1}begin(){return new c(0,this)}end(){return new c(this.i,this)}rBegin(){return new c(this.i-1,this,1)}rEnd(){return new c(-1,this,1)}front(){if(this.i!==0)return this.A[this.j][this.D]}back(){if(this.i!==0)return this.A[this.R][this.N]}pushBack(t){return this.i&&(this.N0?this.N-=1:this.R>0?(this.R-=1,this.N=this.F-1):(this.R=this.P-1,this.N=this.F-1)),this.i-=1,t}pushFront(t){return this.i&&(this.D>0?this.D-=1:this.j>0?(this.j-=1,this.D=this.F-1):(this.j=this.P-1,this.D=this.F-1),this.j===this.R&&this.D===this.N&&this.T()),this.i+=1,this.A[this.j][this.D]=t,this.i}popFront(){if(this.i===0)return;let t=this.A[this.j][this.D];return this.i!==1&&(this.Dthis.i-1)throw new RangeError;let{curNodeBucketIndex:e,curNodePointerIndex:i}=this.O(t);return this.A[e][i]}setElementByPos(t,e){if(t<0||t>this.i-1)throw new RangeError;let{curNodeBucketIndex:i,curNodePointerIndex:l}=this.O(t);this.A[i][l]=e}insert(t,e,i=1){if(t<0||t>this.i)throw new RangeError;if(t===0)for(;i--;)this.pushFront(e);else if(t===this.i)for(;i--;)this.pushBack(e);else{let l=[];for(let d=t;dthis.i-1)throw new RangeError;if(t===0)this.popFront();else if(t===this.i-1)this.popBack();else{let e=[];for(let l=t+1;lt;)this.popBack();return this.i}sort(t){let e=[];for(let i=0;i{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.TreeNodeEnableIndex=f.TreeNode=void 0;var h=class{constructor(a,c){this.ee=1,this.u=void 0,this.l=void 0,this.U=void 0,this.W=void 0,this.tt=void 0,this.u=a,this.l=c}L(){let a=this;if(a.ee===1&&a.tt.tt===a)a=a.W;else if(a.U)for(a=a.U;a.W;)a=a.W;else{let c=a.tt;for(;c.U===a;)a=c,c=a.tt;a=c}return a}B(){let a=this;if(a.W){for(a=a.W;a.U;)a=a.U;return a}else{let c=a.tt;for(;c.W===a;)a=c,c=a.tt;return a.W!==c?c:a}}te(){let a=this.tt,c=this.W,n=c.U;return a.tt===this?a.tt=c:a.U===this?a.U=c:a.W=c,c.tt=a,c.U=this,this.tt=c,this.W=n,n&&(n.tt=this),c}se(){let a=this.tt,c=this.U,n=c.W;return a.tt===this?a.tt=c:a.U===this?a.U=c:a.W=c,c.tt=a,c.W=this,this.tt=c,this.U=n,n&&(n.tt=this),c}};f.TreeNode=h;var s=class extends h{constructor(){super(...arguments),this.rt=1}te(){let a=super.te();return this.ie(),a.ie(),a}se(){let a=super.se();return this.ie(),a.ie(),a}ie(){this.rt=1,this.U&&(this.rt+=this.U.rt),this.W&&(this.rt+=this.W.rt)}};f.TreeNodeEnableIndex=s}),ba=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=Su(),s=Rt(),a=jt(),c=class extends s.Container{constructor(r=function(e,i){return ei?1:0},t=!1){super(),this.Y=void 0,this.v=r,t?(this.re=h.TreeNodeEnableIndex,this.M=function(e,i,l){let d=this.ne(e,i,l);if(d){let p=d.tt;for(;p!==this.h;)p.rt+=1,p=p.tt;let g=this.he(d);if(g){let{parentNode:b,grandParent:E,curNode:S}=g;b.ie(),E.ie(),S.ie()}}return this.i},this.V=function(e){let i=this.fe(e);for(;i!==this.h;)i.rt-=1,i=i.tt}):(this.re=h.TreeNode,this.M=function(e,i,l){let d=this.ne(e,i,l);return d&&this.he(d),this.i},this.V=this.fe),this.h=new this.re}X(r,t){let e=this.h;for(;r;){let i=this.v(r.u,t);if(i<0)r=r.W;else if(i>0)e=r,r=r.U;else return r}return e}Z(r,t){let e=this.h;for(;r;)this.v(r.u,t)<=0?r=r.W:(e=r,r=r.U);return e}$(r,t){let e=this.h;for(;r;){let i=this.v(r.u,t);if(i<0)e=r,r=r.W;else if(i>0)r=r.U;else return r}return e}rr(r,t){let e=this.h;for(;r;)this.v(r.u,t)<0?(e=r,r=r.W):r=r.U;return e}ue(r){for(;;){let t=r.tt;if(t===this.h)return;if(r.ee===1){r.ee=0;return}if(r===t.U){let e=t.W;if(e.ee===1)e.ee=0,t.ee=1,t===this.Y?this.Y=t.te():t.te();else if(e.W&&e.W.ee===1){e.ee=t.ee,t.ee=0,e.W.ee=0,t===this.Y?this.Y=t.te():t.te();return}else e.U&&e.U.ee===1?(e.ee=1,e.U.ee=0,e.se()):(e.ee=1,r=t)}else{let e=t.U;if(e.ee===1)e.ee=0,t.ee=1,t===this.Y?this.Y=t.se():t.se();else if(e.U&&e.U.ee===1){e.ee=t.ee,t.ee=0,e.U.ee=0,t===this.Y?this.Y=t.se():t.se();return}else e.W&&e.W.ee===1?(e.ee=1,e.W.ee=0,e.te()):(e.ee=1,r=t)}}}fe(r){if(this.i===1)return this.clear(),this.h;let t=r;for(;t.U||t.W;){if(t.W)for(t=t.W;t.U;)t=t.U;else t=t.U;[r.u,t.u]=[t.u,r.u],[r.l,t.l]=[t.l,r.l],r=t}this.h.U===t?this.h.U=t.tt:this.h.W===t&&(this.h.W=t.tt),this.ue(t);let e=t.tt;return t===e.U?e.U=void 0:e.W=void 0,this.i-=1,this.Y.ee=0,e}oe(r,t){return r===void 0?!1:this.oe(r.U,t)||t(r)?!0:this.oe(r.W,t)}he(r){for(;;){let t=r.tt;if(t.ee===0)return;let e=t.tt;if(t===e.U){let i=e.W;if(i&&i.ee===1){if(i.ee=t.ee=0,e===this.Y)return;e.ee=1,r=e;continue}else if(r===t.W){if(r.ee=0,r.U&&(r.U.tt=t),r.W&&(r.W.tt=e),t.W=r.U,e.U=r.W,r.U=t,r.W=e,e===this.Y)this.Y=r,this.h.tt=r;else{let l=e.tt;l.U===e?l.U=r:l.W=r}return r.tt=e.tt,t.tt=r,e.tt=r,e.ee=1,{parentNode:t,grandParent:e,curNode:r}}else t.ee=0,e===this.Y?this.Y=e.se():e.se(),e.ee=1}else{let i=e.U;if(i&&i.ee===1){if(i.ee=t.ee=0,e===this.Y)return;e.ee=1,r=e;continue}else if(r===t.U){if(r.ee=0,r.U&&(r.U.tt=e),r.W&&(r.W.tt=t),e.W=r.U,t.U=r.W,r.U=e,r.W=t,e===this.Y)this.Y=r,this.h.tt=r;else{let l=e.tt;l.U===e?l.U=r:l.W=r}return r.tt=e.tt,t.tt=r,e.tt=r,e.ee=1,{parentNode:t,grandParent:e,curNode:r}}else t.ee=0,e===this.Y?this.Y=e.te():e.te(),e.ee=1}return}}ne(r,t,e){if(this.Y===void 0){this.i+=1,this.Y=new this.re(r,t),this.Y.ee=0,this.Y.tt=this.h,this.h.tt=this.Y,this.h.U=this.Y,this.h.W=this.Y;return}let i,l=this.h.U,d=this.v(l.u,r);if(d===0){l.l=t;return}else if(d>0)l.U=new this.re(r,t),l.U.tt=l,i=l.U,this.h.U=i;else{let p=this.h.W,g=this.v(p.u,r);if(g===0){p.l=t;return}else if(g<0)p.W=new this.re(r,t),p.W.tt=p,i=p.W,this.h.W=i;else{if(e!==void 0){let b=e.o;if(b!==this.h){let E=this.v(b.u,r);if(E===0){b.l=t;return}else if(E>0){let S=b.L(),x=this.v(S.u,r);if(x===0){S.l=t;return}else x<0&&(i=new this.re(r,t),S.W===void 0?(S.W=i,i.tt=S):(b.U=i,i.tt=b))}}}if(i===void 0)for(i=this.Y;;){let b=this.v(i.u,r);if(b>0){if(i.U===void 0){i.U=new this.re(r,t),i.U.tt=i,i=i.U;break}i=i.U}else if(b<0){if(i.W===void 0){i.W=new this.re(r,t),i.W.tt=i,i=i.W;break}i=i.W}else{i.l=t;return}}}}return this.i+=1,i}I(r,t){for(;r;){let e=this.v(r.u,t);if(e<0)r=r.W;else if(e>0)r=r.U;else return r}return r||this.h}clear(){this.i=0,this.Y=void 0,this.h.tt=void 0,this.h.U=this.h.W=void 0}updateKeyByIterator(r,t){let e=r.o;if(e===this.h&&(0,a.throwIteratorAccessError)(),this.i===1)return e.u=t,!0;if(e===this.h.U)return this.v(e.B().u,t)>0?(e.u=t,!0):!1;if(e===this.h.W)return this.v(e.L().u,t)<0?(e.u=t,!0):!1;let i=e.L().u;if(this.v(i,t)>=0)return!1;let l=e.B().u;return this.v(l,t)<=0?!1:(e.u=t,!0)}eraseElementByPos(r){if(r<0||r>this.i-1)throw new RangeError;let t=0,e=this;return this.oe(this.Y,function(i){return r===t?(e.V(i),!0):(t+=1,!1)}),this.i}eraseElementByKey(r){if(this.i===0)return!1;let t=this.I(this.Y,r);return t===this.h?!1:(this.V(t),!0)}eraseElementByIterator(r){let t=r.o;t===this.h&&(0,a.throwIteratorAccessError)();let e=t.W===void 0;return r.iteratorType===0?e&&r.next():(!e||t.U===void 0)&&r.next(),this.V(t),r}forEach(r){let t=0;for(let e of this)r(e,t++,this)}getElementByPos(r){if(r<0||r>this.i-1)throw new RangeError;let t,e=0;for(let i of this){if(e===r){t=i;break}e+=1}return t}getHeight(){if(this.i===0)return 0;let r=function(t){return t?Math.max(r(t.U),r(t.W))+1:0};return r(this.Y)}},n=c;f.default=n}),va=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=Rt(),s=jt(),a=class extends h.ContainerIterator{constructor(n,r,t){super(t),this.o=n,this.h=r,this.iteratorType===0?(this.pre=function(){return this.o===this.h.U&&(0,s.throwIteratorAccessError)(),this.o=this.o.L(),this},this.next=function(){return this.o===this.h&&(0,s.throwIteratorAccessError)(),this.o=this.o.B(),this}):(this.pre=function(){return this.o===this.h.W&&(0,s.throwIteratorAccessError)(),this.o=this.o.B(),this},this.next=function(){return this.o===this.h&&(0,s.throwIteratorAccessError)(),this.o=this.o.L(),this})}get index(){let n=this.o,r=this.h.tt;if(n===this.h)return r?r.rt-1:0;let t=0;for(n.U&&(t+=n.U.rt);n!==r;){let e=n.tt;n===e.W&&(t+=1,e.U&&(t+=e.U.rt)),n=e}return t}},c=a;f.default=c}),Eu=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=c(ba()),s=c(va()),a=jt();function c(e){return e&&e.t?e:{default:e}}var n=class wa extends s.default{constructor(i,l,d,p){super(i,l,p),this.container=d}get pointer(){return this.o===this.h&&(0,a.throwIteratorAccessError)(),this.o.u}copy(){return new wa(this.o,this.h,this.container,this.iteratorType)}},r=class extends h.default{constructor(e=[],i,l){super(i,l);let d=this;e.forEach(function(p){d.insert(p)})}*K(e){e!==void 0&&(yield*this.K(e.U),yield e.u,yield*this.K(e.W))}begin(){return new n(this.h.U||this.h,this.h,this)}end(){return new n(this.h,this.h,this)}rBegin(){return new n(this.h.W||this.h,this.h,this,1)}rEnd(){return new n(this.h,this.h,this,1)}front(){return this.h.U?this.h.U.u:void 0}back(){return this.h.W?this.h.W.u:void 0}insert(e,i){return this.M(e,void 0,i)}find(e){let i=this.I(this.Y,e);return new n(i,this.h,this)}lowerBound(e){let i=this.X(this.Y,e);return new n(i,this.h,this)}upperBound(e){let i=this.Z(this.Y,e);return new n(i,this.h,this)}reverseLowerBound(e){let i=this.$(this.Y,e);return new n(i,this.h,this)}reverseUpperBound(e){let i=this.rr(this.Y,e);return new n(i,this.h,this)}union(e){let i=this;return e.forEach(function(l){i.insert(l)}),this.i}[Symbol.iterator](){return this.K(this.Y)}},t=r;f.default=t}),Au=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=c(ba()),s=c(va()),a=jt();function c(e){return e&&e.t?e:{default:e}}var n=class _a extends s.default{constructor(i,l,d,p){super(i,l,p),this.container=d}get pointer(){this.o===this.h&&(0,a.throwIteratorAccessError)();let i=this;return new Proxy([],{get(l,d){if(d==="0")return i.o.u;if(d==="1")return i.o.l},set(l,d,p){if(d!=="1")throw new TypeError("props must be 1");return i.o.l=p,!0}})}copy(){return new _a(this.o,this.h,this.container,this.iteratorType)}},r=class extends h.default{constructor(e=[],i,l){super(i,l);let d=this;e.forEach(function(p){d.setElement(p[0],p[1])})}*K(e){e!==void 0&&(yield*this.K(e.U),yield[e.u,e.l],yield*this.K(e.W))}begin(){return new n(this.h.U||this.h,this.h,this)}end(){return new n(this.h,this.h,this)}rBegin(){return new n(this.h.W||this.h,this.h,this,1)}rEnd(){return new n(this.h,this.h,this,1)}front(){if(this.i===0)return;let e=this.h.U;return[e.u,e.l]}back(){if(this.i===0)return;let e=this.h.W;return[e.u,e.l]}lowerBound(e){let i=this.X(this.Y,e);return new n(i,this.h,this)}upperBound(e){let i=this.Z(this.Y,e);return new n(i,this.h,this)}reverseLowerBound(e){let i=this.$(this.Y,e);return new n(i,this.h,this)}reverseUpperBound(e){let i=this.rr(this.Y,e);return new n(i,this.h,this)}setElement(e,i,l){return this.M(e,i,l)}find(e){let i=this.I(this.Y,e);return new n(i,this.h,this)}getElementByKey(e){return this.I(this.Y,e).l}union(e){let i=this;return e.forEach(function(l){i.setElement(l[0],l[1])}),this.i}[Symbol.iterator](){return this.K(this.Y)}},t=r;f.default=t}),Sa=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=h;function h(s){let a=typeof s;return a==="object"&&s!==null||a==="function"}}),Ea=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.HashContainerIterator=f.HashContainer=void 0;var h=Rt(),s=c(Sa()),a=jt();function c(t){return t&&t.t?t:{default:t}}var n=class extends h.ContainerIterator{constructor(t,e,i){super(i),this.o=t,this.h=e,this.iteratorType===0?(this.pre=function(){return this.o.L===this.h&&(0,a.throwIteratorAccessError)(),this.o=this.o.L,this},this.next=function(){return this.o===this.h&&(0,a.throwIteratorAccessError)(),this.o=this.o.B,this}):(this.pre=function(){return this.o.B===this.h&&(0,a.throwIteratorAccessError)(),this.o=this.o.B,this},this.next=function(){return this.o===this.h&&(0,a.throwIteratorAccessError)(),this.o=this.o.L,this})}};f.HashContainerIterator=n;var r=class extends h.Container{constructor(){super(),this.H=[],this.g={},this.HASH_TAG=Symbol("@@HASH_TAG"),Object.setPrototypeOf(this.g,null),this.h={},this.h.L=this.h.B=this.p=this._=this.h}V(t){let{L:e,B:i}=t;e.B=i,i.L=e,t===this.p&&(this.p=i),t===this._&&(this._=e),this.i-=1}M(t,e,i){i===void 0&&(i=(0,s.default)(t));let l;if(i){let d=t[this.HASH_TAG];if(d!==void 0)return this.H[d].l=e,this.i;Object.defineProperty(t,this.HASH_TAG,{value:this.H.length,configurable:!0}),l={u:t,l:e,L:this._,B:this.h},this.H.push(l)}else{let d=this.g[t];if(d)return d.l=e,this.i;l={u:t,l:e,L:this._,B:this.h},this.g[t]=l}return this.i===0?(this.p=l,this.h.B=l):this._.B=l,this._=l,this.h.L=l,++this.i}I(t,e){if(e===void 0&&(e=(0,s.default)(t)),e){let i=t[this.HASH_TAG];return i===void 0?this.h:this.H[i]}else return this.g[t]||this.h}clear(){let t=this.HASH_TAG;this.H.forEach(function(e){delete e.u[t]}),this.H=[],this.g={},Object.setPrototypeOf(this.g,null),this.i=0,this.p=this._=this.h.L=this.h.B=this.h}eraseElementByKey(t,e){let i;if(e===void 0&&(e=(0,s.default)(t)),e){let l=t[this.HASH_TAG];if(l===void 0)return!1;delete t[this.HASH_TAG],i=this.H[l],delete this.H[l]}else{if(i=this.g[t],i===void 0)return!1;delete this.g[t]}return this.V(i),!0}eraseElementByIterator(t){let e=t.o;return e===this.h&&(0,a.throwIteratorAccessError)(),this.V(e),t.next()}eraseElementByPos(t){if(t<0||t>this.i-1)throw new RangeError;let e=this.p;for(;t--;)e=e.B;return this.V(e),this.i}};f.HashContainer=r}),xu=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=Ea(),s=jt(),a=class Aa extends h.HashContainerIterator{constructor(t,e,i,l){super(t,e,l),this.container=i}get pointer(){return this.o===this.h&&(0,s.throwIteratorAccessError)(),this.o.u}copy(){return new Aa(this.o,this.h,this.container,this.iteratorType)}},c=class extends h.HashContainer{constructor(r=[]){super();let t=this;r.forEach(function(e){t.insert(e)})}begin(){return new a(this.p,this.h,this)}end(){return new a(this.h,this.h,this)}rBegin(){return new a(this._,this.h,this,1)}rEnd(){return new a(this.h,this.h,this,1)}front(){return this.p.u}back(){return this._.u}insert(r,t){return this.M(r,void 0,t)}getElementByPos(r){if(r<0||r>this.i-1)throw new RangeError;let t=this.p;for(;r--;)t=t.B;return t.u}find(r,t){let e=this.I(r,t);return new a(e,this.h,this)}forEach(r){let t=0,e=this.p;for(;e!==this.h;)r(e.u,t++,this),e=e.B}[Symbol.iterator](){return(function*(){let r=this.p;for(;r!==this.h;)yield r.u,r=r.B}).bind(this)()}},n=c;f.default=n}),Iu=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),f.default=void 0;var h=Ea(),s=c(Sa()),a=jt();function c(e){return e&&e.t?e:{default:e}}var n=class xa extends h.HashContainerIterator{constructor(i,l,d,p){super(i,l,p),this.container=d}get pointer(){this.o===this.h&&(0,a.throwIteratorAccessError)();let i=this;return new Proxy([],{get(l,d){if(d==="0")return i.o.u;if(d==="1")return i.o.l},set(l,d,p){if(d!=="1")throw new TypeError("props must be 1");return i.o.l=p,!0}})}copy(){return new xa(this.o,this.h,this.container,this.iteratorType)}},r=class extends h.HashContainer{constructor(e=[]){super();let i=this;e.forEach(function(l){i.setElement(l[0],l[1])})}begin(){return new n(this.p,this.h,this)}end(){return new n(this.h,this.h,this)}rBegin(){return new n(this._,this.h,this,1)}rEnd(){return new n(this.h,this.h,this,1)}front(){if(this.i!==0)return[this.p.u,this.p.l]}back(){if(this.i!==0)return[this._.u,this._.l]}setElement(e,i,l){return this.M(e,i,l)}getElementByKey(e,i){if(i===void 0&&(i=(0,s.default)(e)),i){let d=e[this.HASH_TAG];return d!==void 0?this.H[d].l:void 0}let l=this.g[e];return l?l.l:void 0}getElementByPos(e){if(e<0||e>this.i-1)throw new RangeError;let i=this.p;for(;e--;)i=i.B;return[i.u,i.l]}find(e,i){let l=this.I(e,i);return new n(l,this.h,this)}forEach(e){let i=0,l=this.p;for(;l!==this.h;)e([l.u,l.l],i++,this),l=l.B}[Symbol.iterator](){return(function*(){let e=this.p;for(;e!==this.h;)yield[e.u,e.l],e=e.B}).bind(this)()}},t=r;f.default=t}),Ou=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"t",{value:!0}),Object.defineProperty(f,"Deque",{enumerable:!0,get:function(){return r.default}}),Object.defineProperty(f,"HashMap",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(f,"HashSet",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(f,"LinkList",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(f,"OrderedMap",{enumerable:!0,get:function(){return e.default}}),Object.defineProperty(f,"OrderedSet",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(f,"PriorityQueue",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(f,"Queue",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(f,"Stack",{enumerable:!0,get:function(){return h.default}}),Object.defineProperty(f,"Vector",{enumerable:!0,get:function(){return c.default}});var h=d(yu()),s=d(mu()),a=d(bu()),c=d(vu()),n=d(wu()),r=d(_u()),t=d(Eu()),e=d(Au()),i=d(xu()),l=d(Iu());function d(p){return p&&p.t?p:{default:p}}}),Pu=Se((f,h)=>{ge(),me(),ye();var s=Ou().OrderedSet,a=Tt()("number-allocator:trace"),c=Tt()("number-allocator:error");function n(t,e){this.low=t,this.high=e}n.prototype.equals=function(t){return this.low===t.low&&this.high===t.high},n.prototype.compare=function(t){return this.lowi.compare(l)),a("Create"),this.clear()}r.prototype.firstVacant=function(){return this.ss.size()===0?null:this.ss.front().low},r.prototype.alloc=function(){if(this.ss.size()===0)return a("alloc():empty"),null;let t=this.ss.begin(),e=t.pointer.low,i=t.pointer.high,l=e;return l+1<=i?this.ss.updateKeyByIterator(t,new n(e+1,i)):this.ss.eraseElementByPos(0),a("alloc():"+l),l},r.prototype.use=function(t){let e=new n(t,t),i=this.ss.lowerBound(e);if(!i.equals(this.ss.end())){let l=i.pointer.low,d=i.pointer.high;return i.pointer.equals(e)?(this.ss.eraseElementByIterator(i),a("use():"+t),!0):l>t?!1:l===t?(this.ss.updateKeyByIterator(i,new n(l+1,d)),a("use():"+t),!0):d===t?(this.ss.updateKeyByIterator(i,new n(l,d-1)),a("use():"+t),!0):(this.ss.updateKeyByIterator(i,new n(t+1,d)),this.ss.insert(new n(l,t-1)),a("use():"+t),!0)}return a("use():failed"),!1},r.prototype.free=function(t){if(tthis.max){c("free():"+t+" is out of range");return}let e=new n(t,t),i=this.ss.upperBound(e);if(i.equals(this.ss.end())){if(i.equals(this.ss.begin())){this.ss.insert(e);return}i.pre();let l=i.pointer.high;i.pointer.high+1===t?this.ss.updateKeyByIterator(i,new n(l,t)):this.ss.insert(e)}else if(i.equals(this.ss.begin()))if(t+1===i.pointer.low){let l=i.pointer.high;this.ss.updateKeyByIterator(i,new n(t,l))}else this.ss.insert(e);else{let l=i.pointer.low,d=i.pointer.high;i.pre();let p=i.pointer.low;i.pointer.high+1===t?t+1===l?(this.ss.eraseElementByIterator(i),this.ss.updateKeyByIterator(i,new n(p,d))):this.ss.updateKeyByIterator(i,new n(p,t)):t+1===l?(this.ss.eraseElementByIterator(i.next()),this.ss.insert(new n(t,d))):this.ss.insert(e)}a("free():"+t)},r.prototype.clear=function(){a("clear()"),this.ss.clear(),this.ss.insert(new n(this.min,this.max))},r.prototype.intervalCount=function(){return this.ss.size()},r.prototype.dump=function(){""+this.ss.size();for(let t of this.ss);},h.exports=r}),Ia=Se((f,h)=>{ge(),me(),ye();var s=Pu();h.exports.NumberAllocator=s}),ku=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0});var h=gu(),s=Ia(),a=class{aliasToTopic;topicToAlias;max;numberAllocator;length;constructor(c){c>0&&(this.aliasToTopic=new h.LRUCache({max:c}),this.topicToAlias={},this.numberAllocator=new s.NumberAllocator(1,c),this.max=c,this.length=0)}put(c,n){if(n===0||n>this.max)return!1;let r=this.aliasToTopic.get(n);return r&&delete this.topicToAlias[r],this.aliasToTopic.set(n,c),this.topicToAlias[c]=n,this.numberAllocator.use(n),this.length=this.aliasToTopic.size,!0}getTopicByAlias(c){return this.aliasToTopic.get(c)}getAliasByTopic(c){let n=this.topicToAlias[c];return typeof n<"u"&&this.aliasToTopic.get(n),n}clear(){this.aliasToTopic.clear(),this.topicToAlias={},this.numberAllocator.clear(),this.length=0}getLruAlias(){return this.numberAllocator.firstVacant()||[...this.aliasToTopic.keys()][this.aliasToTopic.size-1]}};f.default=a}),Tu=Se(f=>{ge(),me(),ye();var h=f&&f.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(f,"__esModule",{value:!0});var s=Zr(),a=h(ku()),c=ar(),n=(r,t)=>{r.log("_handleConnack");let{options:e}=r,i=e.protocolVersion===5?t.reasonCode:t.returnCode;if(clearTimeout(r.connackTimer),delete r.topicAliasSend,t.properties){if(t.properties.topicAliasMaximum){if(t.properties.topicAliasMaximum>65535){r.emit("error",new Error("topicAliasMaximum from broker is out of range"));return}t.properties.topicAliasMaximum>0&&(r.topicAliasSend=new a.default(t.properties.topicAliasMaximum))}t.properties.serverKeepAlive&&e.keepalive&&(e.keepalive=t.properties.serverKeepAlive),t.properties.maximumPacketSize&&(e.properties||(e.properties={}),e.properties.maximumPacketSize=t.properties.maximumPacketSize)}if(i===0)r.reconnecting=!1,r._onConnect(t);else if(i>0){let l=new c.ErrorWithReasonCode(`Connection refused: ${s.ReasonCodes[i]}`,i);r.emit("error",l),r.options.reconnectOnConnackError&&r._cleanUp(!0)}};f.default=n}),Cu=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0});var h=(s,a,c)=>{s.log("handling pubrel packet");let n=typeof c<"u"?c:s.noop,{messageId:r}=a,t={cmd:"pubcomp",messageId:r};s.incomingStore.get(a,(e,i)=>{e?s._sendPacket(t,n):(s.emit("message",i.topic,i.payload,i),s.handleMessage(i,l=>{if(l)return n(l);s.incomingStore.del(i,s.noop),s._sendPacket(t,n)}))})};f.default=h}),Ru=Se(f=>{ge(),me(),ye();var h=f&&f.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(f,"__esModule",{value:!0});var s=h(fu()),a=h(du()),c=h(Tu()),n=h(Zr()),r=h(Cu()),t=(e,i,l)=>{let{options:d}=e;if(d.protocolVersion===5&&d.properties&&d.properties.maximumPacketSize&&d.properties.maximumPacketSize{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0});var h=class{nextId;constructor(){this.nextId=Math.max(1,Math.floor(Math.random()*65535))}allocate(){let s=this.nextId++;return this.nextId===65536&&(this.nextId=1),s}getLastAllocated(){return this.nextId===1?65535:this.nextId-1}register(s){return!0}deallocate(s){}clear(){}};f.default=h}),ju=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0});var h=class{aliasToTopic;max;length;constructor(s){this.aliasToTopic={},this.max=s}put(s,a){return a===0||a>this.max?!1:(this.aliasToTopic[a]=s,this.length=Object.keys(this.aliasToTopic).length,!0)}getTopicByAlias(s){return this.aliasToTopic[s]}clear(){this.aliasToTopic={}}};f.default=h}),Mu=Se(f=>{ge(),me(),ye();var h=f&&f.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(f,"__esModule",{value:!0}),f.TypedEventEmitter=void 0;var s=h((Zt(),Ke(qt))),a=ar(),c=class{};f.TypedEventEmitter=c,(0,a.applyMixin)(c,s.default)}),en=Se((f,h)=>{ge(),me(),ye();function s(a){"@babel/helpers - typeof";return h.exports=s=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(c){return typeof c}:function(c){return c&&typeof Symbol=="function"&&c.constructor===Symbol&&c!==Symbol.prototype?"symbol":typeof c},h.exports.__esModule=!0,h.exports.default=h.exports,s(a)}h.exports=s,h.exports.__esModule=!0,h.exports.default=h.exports}),Bu=Se((f,h)=>{ge(),me(),ye();var s=en().default;function a(c,n){if(s(c)!="object"||!c)return c;var r=c[Symbol.toPrimitive];if(r!==void 0){var t=r.call(c,n||"default");if(s(t)!="object")return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(c)}h.exports=a,h.exports.__esModule=!0,h.exports.default=h.exports}),Nu=Se((f,h)=>{ge(),me(),ye();var s=en().default,a=Bu();function c(n){var r=a(n,"string");return s(r)=="symbol"?r:r+""}h.exports=c,h.exports.__esModule=!0,h.exports.default=h.exports}),Uu=Se((f,h)=>{ge(),me(),ye();var s=Nu();function a(c,n,r){return(n=s(n))in c?Object.defineProperty(c,n,{value:r,enumerable:!0,configurable:!0,writable:!0}):c[n]=r,c}h.exports=a,h.exports.__esModule=!0,h.exports.default=h.exports}),Lu=Se((f,h)=>{ge(),me(),ye();function s(a){if(Array.isArray(a))return a}h.exports=s,h.exports.__esModule=!0,h.exports.default=h.exports}),Du=Se((f,h)=>{ge(),me(),ye();function s(a,c){var n=a==null?null:typeof Symbol<"u"&&a[Symbol.iterator]||a["@@iterator"];if(n!=null){var r,t,e,i,l=[],d=!0,p=!1;try{if(e=(n=n.call(a)).next,c===0){if(Object(n)!==n)return;d=!1}else for(;!(d=(r=e.call(n)).done)&&(l.push(r.value),l.length!==c);d=!0);}catch(g){p=!0,t=g}finally{try{if(!d&&n.return!=null&&(i=n.return(),Object(i)!==i))return}finally{if(p)throw t}}return l}}h.exports=s,h.exports.__esModule=!0,h.exports.default=h.exports}),Fu=Se((f,h)=>{ge(),me(),ye();function s(a,c){(c==null||c>a.length)&&(c=a.length);for(var n=0,r=Array(c);n{ge(),me(),ye();var s=Fu();function a(c,n){if(c){if(typeof c=="string")return s(c,n);var r={}.toString.call(c).slice(8,-1);return r==="Object"&&c.constructor&&(r=c.constructor.name),r==="Map"||r==="Set"?Array.from(c):r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?s(c,n):void 0}}h.exports=a,h.exports.__esModule=!0,h.exports.default=h.exports}),$u=Se((f,h)=>{ge(),me(),ye();function s(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}h.exports=s,h.exports.__esModule=!0,h.exports.default=h.exports}),qu=Se((f,h)=>{ge(),me(),ye();var s=Lu(),a=Du(),c=Wu(),n=$u();function r(t,e){return s(t)||a(t,e)||c(t,e)||n()}h.exports=r,h.exports.__esModule=!0,h.exports.default=h.exports}),Pa=Se((f,h)=>{ge(),me(),ye(),(function(s,a){typeof f=="object"&&typeof h<"u"?a(f):typeof define=="function"&&define.amd?define(["exports"],a):(s=typeof globalThis<"u"?globalThis:s||self,a(s.fastUniqueNumbers={}))})(f,function(s){var a=function(g){return function(b){var E=g(b);return b.add(E),E}},c=function(g){return function(b,E){return g.set(b,E),E}},n=Number.MAX_SAFE_INTEGER===void 0?9007199254740991:Number.MAX_SAFE_INTEGER,r=536870912,t=r*2,e=function(g,b){return function(E){var S=b.get(E),x=S===void 0?E.size:Sn)throw new Error("Congratulations, you created a collection of unique numbers which uses all available integers!");for(;E.has(x);)x=Math.floor(Math.random()*n);return g(E,x)}},i=new WeakMap,l=c(i),d=e(l,i),p=a(d);s.addUniqueNumber=p,s.generateUniqueNumber=d})}),Vu=Se((f,h)=>{ge(),me(),ye();function s(c,n,r,t,e,i,l){try{var d=c[i](l),p=d.value}catch(g){return void r(g)}d.done?n(p):Promise.resolve(p).then(t,e)}function a(c){return function(){var n=this,r=arguments;return new Promise(function(t,e){var i=c.apply(n,r);function l(p){s(i,t,e,l,d,"next",p)}function d(p){s(i,t,e,l,d,"throw",p)}l(void 0)})}}h.exports=a,h.exports.__esModule=!0,h.exports.default=h.exports}),ka=Se((f,h)=>{ge(),me(),ye();function s(a,c){this.v=a,this.k=c}h.exports=s,h.exports.__esModule=!0,h.exports.default=h.exports}),Ta=Se((f,h)=>{ge(),me(),ye();function s(a,c,n,r){var t=Object.defineProperty;try{t({},"",{})}catch{t=0}h.exports=s=function(e,i,l,d){function p(g,b){s(e,g,function(E){return this._invoke(g,b,E)})}i?t?t(e,i,{value:l,enumerable:!d,configurable:!d,writable:!d}):e[i]=l:(p("next",0),p("throw",1),p("return",2))},h.exports.__esModule=!0,h.exports.default=h.exports,s(a,c,n,r)}h.exports=s,h.exports.__esModule=!0,h.exports.default=h.exports}),Ca=Se((f,h)=>{ge(),me(),ye();var s=Ta();function a(){var c,n,r=typeof Symbol=="function"?Symbol:{},t=r.iterator||"@@iterator",e=r.toStringTag||"@@toStringTag";function i(x,y,v,A){var _=y&&y.prototype instanceof d?y:d,C=Object.create(_.prototype);return s(C,"_invoke",(function(w,I,k){var j,U,P,z=0,G=k||[],q=!1,he={p:0,n:0,v:c,a:ne,f:ne.bind(c,4),d:function(te,ce){return j=te,U=0,P=c,he.n=ce,l}};function ne(te,ce){for(U=te,P=ce,n=0;!q&&z&&!V&&n3?(V=ee===ce)&&(P=le[(U=le[4])?5:(U=3,3)],le[4]=le[5]=c):le[0]<=M&&((V=te<2&&Mce||ce>ee)&&(le[4]=te,le[5]=ce,he.n=ee,U=0))}if(V||te>1)return l;throw q=!0,ce}return function(te,ce,V){if(z>1)throw TypeError("Generator is already running");for(q&&ce===1&&ne(ce,V),U=ce,P=V;(n=U<2?c:P)||!q;){j||(U?U<3?(U>1&&(he.n=-1),ne(U,P)):he.n=P:he.v=P);try{if(z=2,j){if(U||(te="next"),n=j[te]){if(!(n=n.call(j,P)))throw TypeError("iterator result is not an object");if(!n.done)return n;P=n.value,U<2&&(U=0)}else U===1&&(n=j.return)&&n.call(j),U<2&&(P=TypeError("The iterator does not provide a '"+te+"' method"),U=1);j=c}else if((n=(q=he.n<0)?P:w.call(I,he))!==l)break}catch(le){j=c,U=1,P=le}finally{z=1}}return{value:n,done:q}}})(x,v,A),!0),C}var l={};function d(){}function p(){}function g(){}n=Object.getPrototypeOf;var b=[][t]?n(n([][t]())):(s(n={},t,function(){return this}),n),E=g.prototype=d.prototype=Object.create(b);function S(x){return Object.setPrototypeOf?Object.setPrototypeOf(x,g):(x.__proto__=g,s(x,e,"GeneratorFunction")),x.prototype=Object.create(E),x}return p.prototype=g,s(E,"constructor",g),s(g,"constructor",p),p.displayName="GeneratorFunction",s(g,e,"GeneratorFunction"),s(E),s(E,e,"Generator"),s(E,t,function(){return this}),s(E,"toString",function(){return"[object Generator]"}),(h.exports=a=function(){return{w:i,m:S}},h.exports.__esModule=!0,h.exports.default=h.exports)()}h.exports=a,h.exports.__esModule=!0,h.exports.default=h.exports}),Ra=Se((f,h)=>{ge(),me(),ye();var s=ka(),a=Ta();function c(n,r){function t(i,l,d,p){try{var g=n[i](l),b=g.value;return b instanceof s?r.resolve(b.v).then(function(E){t("next",E,d,p)},function(E){t("throw",E,d,p)}):r.resolve(b).then(function(E){g.value=E,d(g)},function(E){return t("throw",E,d,p)})}catch(E){p(E)}}var e;this.next||(a(c.prototype),a(c.prototype,typeof Symbol=="function"&&Symbol.asyncIterator||"@asyncIterator",function(){return this})),a(this,"_invoke",function(i,l,d){function p(){return new r(function(g,b){t(i,d,g,b)})}return e=e?e.then(p,p):p()},!0)}h.exports=c,h.exports.__esModule=!0,h.exports.default=h.exports}),ja=Se((f,h)=>{ge(),me(),ye();var s=Ca(),a=Ra();function c(n,r,t,e,i){return new a(s().w(n,r,t,e),i||Promise)}h.exports=c,h.exports.__esModule=!0,h.exports.default=h.exports}),zu=Se((f,h)=>{ge(),me(),ye();var s=ja();function a(c,n,r,t,e){var i=s(c,n,r,t,e);return i.next().then(function(l){return l.done?l.value:i.next()})}h.exports=a,h.exports.__esModule=!0,h.exports.default=h.exports}),Ku=Se((f,h)=>{ge(),me(),ye();function s(a){var c=Object(a),n=[];for(var r in c)n.unshift(r);return function t(){for(;n.length;)if((r=n.pop())in c)return t.value=r,t.done=!1,t;return t.done=!0,t}}h.exports=s,h.exports.__esModule=!0,h.exports.default=h.exports}),Hu=Se((f,h)=>{ge(),me(),ye();var s=en().default;function a(c){if(c!=null){var n=c[typeof Symbol=="function"&&Symbol.iterator||"@@iterator"],r=0;if(n)return n.call(c);if(typeof c.next=="function")return c;if(!isNaN(c.length))return{next:function(){return c&&r>=c.length&&(c=void 0),{value:c&&c[r++],done:!c}}}}throw new TypeError(s(c)+" is not iterable")}h.exports=a,h.exports.__esModule=!0,h.exports.default=h.exports}),Gu=Se((f,h)=>{ge(),me(),ye();var s=ka(),a=Ca(),c=zu(),n=ja(),r=Ra(),t=Ku(),e=Hu();function i(){var l=a(),d=l.m(i),p=(Object.getPrototypeOf?Object.getPrototypeOf(d):d.__proto__).constructor;function g(S){var x=typeof S=="function"&&S.constructor;return!!x&&(x===p||(x.displayName||x.name)==="GeneratorFunction")}var b={throw:1,return:2,break:3,continue:3};function E(S){var x,y;return function(v){x||(x={stop:function(){return y(v.a,2)},catch:function(){return v.v},abrupt:function(A,_){return y(v.a,b[A],_)},delegateYield:function(A,_,C){return x.resultName=_,y(v.d,e(A),C)},finish:function(A){return y(v.f,A)}},y=function(A,_,C){v.p=x.prev,v.n=x.next;try{return A(_,C)}finally{x.next=v.n}}),x.resultName&&(x[x.resultName]=v.v,x.resultName=void 0),x.sent=v.v,x.next=v.n;try{return S.call(this,x)}finally{v.p=x.prev,v.n=x.next}}}return(h.exports=i=function(){return{wrap:function(S,x,y,v){return l.w(E(S),x,y,v&&v.reverse())},isGeneratorFunction:g,mark:l.m,awrap:function(S,x){return new s(S,x)},AsyncIterator:r,async:function(S,x,y,v,A){return(g(x)?n:c)(E(S),x,y,v,A)},keys:t,values:e}},h.exports.__esModule=!0,h.exports.default=h.exports)()}h.exports=i,h.exports.__esModule=!0,h.exports.default=h.exports}),Qu=Se((f,h)=>{ge(),me(),ye();var s=Gu()();h.exports=s;try{regeneratorRuntime=s}catch{typeof globalThis=="object"?globalThis.regeneratorRuntime=s:Function("r","regeneratorRuntime = r")(s)}}),Yu=Se((f,h)=>{ge(),me(),ye(),(function(s,a){typeof f=="object"&&typeof h<"u"?a(f,Uu(),qu(),Pa(),Vu(),Qu()):typeof define=="function"&&define.amd?define(["exports","@babel/runtime/helpers/defineProperty","@babel/runtime/helpers/slicedToArray","fast-unique-numbers","@babel/runtime/helpers/asyncToGenerator","@babel/runtime/regenerator"],a):(s=typeof globalThis<"u"?globalThis:s||self,a(s.brokerFactory={},s._defineProperty,s._slicedToArray,s.fastUniqueNumbers,s._asyncToGenerator,s._regeneratorRuntime))})(f,function(s,a,c,n,r,t){var e=function(y){return typeof y.start=="function"},i=new WeakMap;function l(y,v){var A=Object.keys(y);if(Object.getOwnPropertySymbols){var _=Object.getOwnPropertySymbols(y);v&&(_=_.filter(function(C){return Object.getOwnPropertyDescriptor(y,C).enumerable})),A.push.apply(A,_)}return A}function d(y){for(var v=1;v1&&arguments[1]!==void 0?arguments[1]:null,he=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];return new Promise(function(ne,te){var ce=n.generateUniqueNumber(_);_.set(ce,{reject:te,resolve:ne}),q===null?A.postMessage({id:ce,method:G},he):A.postMessage({id:ce,method:G,params:q},he)})},w=function(G,q){var he=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[];A.postMessage({id:null,method:G,params:q},he)},I={},k=0,j=Object.entries(v);k{ge(),me(),ye(),(function(s,a){typeof f=="object"&&typeof h<"u"?a(f,en(),Yu(),Pa()):typeof define=="function"&&define.amd?define(["exports","@babel/runtime/helpers/typeof","broker-factory","fast-unique-numbers"],a):(s=typeof globalThis<"u"?globalThis:s||self,a(s.workerTimersBroker={},s._typeof,s.brokerFactory,s.fastUniqueNumbers))})(f,function(s,a,c,n){var r=new Map([[0,null]]),t=new Map([[0,null]]),e=c.createBroker({clearInterval:function(l){var d=l.call;return function(p){a(r.get(p))==="symbol"&&(r.set(p,null),d("clear",{timerId:p,timerType:"interval"}).then(function(){r.delete(p)}))}},clearTimeout:function(l){var d=l.call;return function(p){a(t.get(p))==="symbol"&&(t.set(p,null),d("clear",{timerId:p,timerType:"timeout"}).then(function(){t.delete(p)}))}},setInterval:function(l){var d=l.call;return function(p){for(var g=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,b=arguments.length,E=new Array(b>2?b-2:0),S=2;S1&&arguments[1]!==void 0?arguments[1]:0,b=arguments.length,E=new Array(b>2?b-2:0),S=2;S{ge(),me(),ye(),(function(s,a){typeof f=="object"&&typeof h<"u"?a(f,Ju()):typeof define=="function"&&define.amd?define(["exports","worker-timers-broker"],a):(s=typeof globalThis<"u"?globalThis:s||self,a(s.workerTimers={},s.workerTimersBroker))})(f,function(s,a){var c=function(d,p){var g=null;return function(){if(g!==null)return g;var b=new Blob([p],{type:"application/javascript; charset=utf-8"}),E=URL.createObjectURL(b);return g=d(E),setTimeout(function(){return URL.revokeObjectURL(E)}),g}},n=`(()=>{var e={45:(e,t,r)=>{var n=r(738).default;e.exports=function(e,t){if("object"!=n(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,t||"default");if("object"!=n(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)},e.exports.__esModule=!0,e.exports.default=e.exports},79:e=>{e.exports=function(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var n=r(79);e.exports=function(e,t){if(e){if("string"==typeof e)return n(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(e,t):void 0}},e.exports.__esModule=!0,e.exports.default=e.exports},156:e=>{e.exports=function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,u,a,i=[],s=!0,c=!1;try{if(u=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=u.call(r)).done)&&(i.push(n.value),i.length!==t);s=!0);}catch(e){c=!0,o=e}finally{try{if(!s&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(c)throw o}}return i}},e.exports.__esModule=!0,e.exports.default=e.exports},172:e=>{e.exports=function(e,t){this.v=e,this.k=t},e.exports.__esModule=!0,e.exports.default=e.exports},293:e=>{function t(e,t,r,n,o,u,a){try{var i=e[u](a),s=i.value}catch(e){return void r(e)}i.done?t(s):Promise.resolve(s).then(n,o)}e.exports=function(e){return function(){var r=this,n=arguments;return new Promise((function(o,u){var a=e.apply(r,n);function i(e){t(a,o,u,i,s,"next",e)}function s(e){t(a,o,u,i,s,"throw",e)}i(void 0)}))}},e.exports.__esModule=!0,e.exports.default=e.exports},373:e=>{e.exports=function(e){var t=Object(e),r=[];for(var n in t)r.unshift(n);return function e(){for(;r.length;)if((n=r.pop())in t)return e.value=n,e.done=!1,e;return e.done=!0,e}},e.exports.__esModule=!0,e.exports.default=e.exports},389:function(e,t){!function(e){"use strict";var t=function(e){return function(t){var r=e(t);return t.add(r),r}},r=function(e){return function(t,r){return e.set(t,r),r}},n=void 0===Number.MAX_SAFE_INTEGER?9007199254740991:Number.MAX_SAFE_INTEGER,o=536870912,u=2*o,a=function(e,t){return function(r){var a=t.get(r),i=void 0===a?r.size:an)throw new Error("Congratulations, you created a collection of unique numbers which uses all available integers!");for(;r.has(i);)i=Math.floor(Math.random()*n);return e(r,i)}},i=new WeakMap,s=r(i),c=a(s,i),f=t(c);e.addUniqueNumber=f,e.generateUniqueNumber=c}(t)},472:function(e,t,r){!function(e,t,r,n){"use strict";var o=function(e,t){return function(r){var o=t.get(r);if(void 0===o)return Promise.resolve(!1);var u=n(o,2),a=u[0],i=u[1];return e(a),t.delete(r),i(!1),Promise.resolve(!0)}},u=function(e,t){var r=function(n,o,u,a){var i=n-e.now();i>0?o.set(a,[t(r,i,n,o,u,a),u]):(o.delete(a),u(!0))};return r},a=function(e,t,r,n){return function(o,u,a){var i=o+u-t.timeOrigin,s=i-t.now();return new Promise((function(t){e.set(a,[r(n,s,i,e,t,a),t])}))}},i=new Map,s=o(globalThis.clearTimeout,i),c=new Map,f=o(globalThis.clearTimeout,c),l=u(performance,globalThis.setTimeout),p=a(i,performance,globalThis.setTimeout,l),d=a(c,performance,globalThis.setTimeout,l);r.createWorker(self,{clear:function(){var r=e(t.mark((function e(r){var n,o,u;return t.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=r.timerId,o=r.timerType,e.next=1,"interval"===o?s(n):f(n);case 1:return u=e.sent,e.abrupt("return",{result:u});case 2:case"end":return e.stop()}}),e)})));function n(e){return r.apply(this,arguments)}return n}(),set:function(){var r=e(t.mark((function e(r){var n,o,u,a,i;return t.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=r.delay,o=r.now,u=r.timerId,a=r.timerType,e.next=1,("interval"===a?p:d)(n,o,u);case 1:return i=e.sent,e.abrupt("return",{result:i});case 2:case"end":return e.stop()}}),e)})));function n(e){return r.apply(this,arguments)}return n}()})}(r(293),r(756),r(623),r(715))},546:e=>{function t(r,n,o,u){var a=Object.defineProperty;try{a({},"",{})}catch(r){a=0}e.exports=t=function(e,r,n,o){if(r)a?a(e,r,{value:n,enumerable:!o,configurable:!o,writable:!o}):e[r]=n;else{var u=function(r,n){t(e,r,(function(e){return this._invoke(r,n,e)}))};u("next",0),u("throw",1),u("return",2)}},e.exports.__esModule=!0,e.exports.default=e.exports,t(r,n,o,u)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},579:(e,t,r)=>{var n=r(738).default;e.exports=function(e){if(null!=e){var t=e["function"==typeof Symbol&&Symbol.iterator||"@@iterator"],r=0;if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length))return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}}}throw new TypeError(n(e)+" is not iterable")},e.exports.__esModule=!0,e.exports.default=e.exports},623:function(e,t,r){!function(e,t,r,n,o){"use strict";var u={INTERNAL_ERROR:-32603,INVALID_PARAMS:-32602,METHOD_NOT_FOUND:-32601},a=function(e,t){return Object.assign(new Error(e),{status:t})},i=function(e){return a('The requested method called "'.concat(e,'" is not supported.'),u.METHOD_NOT_FOUND)},s=function(e){return a('The handler of the method called "'.concat(e,'" returned no required result.'),u.INTERNAL_ERROR)},c=function(e){return a('The handler of the method called "'.concat(e,'" returned an unexpected result.'),u.INTERNAL_ERROR)},f=function(e){return a('The specified parameter called "portId" with the given value "'.concat(e,'" does not identify a port connected to this worker.'),u.INVALID_PARAMS)},l=function(e,n){return function(){var o=t(r.mark((function t(o){var u,a,f,l,p,d,v,x,y,b,h,m,_,g,w;return r.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(u=o.data,a=u.id,f=u.method,l=u.params,p=n[f],t.prev=1,void 0!==p){t.next=2;break}throw i(f);case 2:if(void 0!==(d=void 0===l?p():p(l))){t.next=3;break}throw s(f);case 3:if(!(d instanceof Promise)){t.next=5;break}return t.next=4,d;case 4:g=t.sent,t.next=6;break;case 5:g=d;case 6:if(v=g,null!==a){t.next=8;break}if(void 0===v.result){t.next=7;break}throw c(f);case 7:t.next=10;break;case 8:if(void 0!==v.result){t.next=9;break}throw c(f);case 9:x=v.result,y=v.transferables,b=void 0===y?[]:y,e.postMessage({id:a,result:x},b);case 10:t.next=12;break;case 11:t.prev=11,w=t.catch(1),h=w.message,m=w.status,_=void 0===m?-32603:m,e.postMessage({error:{code:_,message:h},id:a});case 12:case"end":return t.stop()}}),t,null,[[1,11]])})));return function(e){return o.apply(this,arguments)}}()},p=function(){return new Promise((function(e){var t=new ArrayBuffer(0),r=new MessageChannel,n=r.port1,o=r.port2;n.onmessage=function(t){var r=t.data;return e(null!==r)},o.postMessage(t,[t])}))};function d(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function v(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:function(){return!0}),n=l(e,r);return e.addEventListener("message",n),function(){return e.removeEventListener("message",n)}};e.createWorker=b,e.isSupported=p}(t,r(293),r(756),r(693),r(389))},633:(e,t,r)=>{var n=r(172),o=r(993),u=r(869),a=r(887),i=r(791),s=r(373),c=r(579);function f(){"use strict";var t=o(),r=t.m(f),l=(Object.getPrototypeOf?Object.getPrototypeOf(r):r.__proto__).constructor;function p(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===l||"GeneratorFunction"===(t.displayName||t.name))}var d={throw:1,return:2,break:3,continue:3};function v(e){var t,r;return function(n){t||(t={stop:function(){return r(n.a,2)},catch:function(){return n.v},abrupt:function(e,t){return r(n.a,d[e],t)},delegateYield:function(e,o,u){return t.resultName=o,r(n.d,c(e),u)},finish:function(e){return r(n.f,e)}},r=function(e,r,o){n.p=t.prev,n.n=t.next;try{return e(r,o)}finally{t.next=n.n}}),t.resultName&&(t[t.resultName]=n.v,t.resultName=void 0),t.sent=n.v,t.next=n.n;try{return e.call(this,t)}finally{n.p=t.prev,n.n=t.next}}}return(e.exports=f=function(){return{wrap:function(e,r,n,o){return t.w(v(e),r,n,o&&o.reverse())},isGeneratorFunction:p,mark:t.m,awrap:function(e,t){return new n(e,t)},AsyncIterator:i,async:function(e,t,r,n,o){return(p(t)?a:u)(v(e),t,r,n,o)},keys:s,values:c}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=f,e.exports.__esModule=!0,e.exports.default=e.exports},693:(e,t,r)=>{var n=r(736);e.exports=function(e,t,r){return(t=n(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e},e.exports.__esModule=!0,e.exports.default=e.exports},715:(e,t,r)=>{var n=r(987),o=r(156),u=r(122),a=r(752);e.exports=function(e,t){return n(e)||o(e,t)||u(e,t)||a()},e.exports.__esModule=!0,e.exports.default=e.exports},736:(e,t,r)=>{var n=r(738).default,o=r(45);e.exports=function(e){var t=o(e,"string");return"symbol"==n(t)?t:t+""},e.exports.__esModule=!0,e.exports.default=e.exports},738:e=>{function t(r){return e.exports=t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e.exports.__esModule=!0,e.exports.default=e.exports,t(r)}e.exports=t,e.exports.__esModule=!0,e.exports.default=e.exports},752:e=>{e.exports=function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")},e.exports.__esModule=!0,e.exports.default=e.exports},756:(e,t,r)=>{var n=r(633)();e.exports=n;try{regeneratorRuntime=n}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=n:Function("r","regeneratorRuntime = r")(n)}},791:(e,t,r)=>{var n=r(172),o=r(546);e.exports=function e(t,r){function u(e,o,a,i){try{var s=t[e](o),c=s.value;return c instanceof n?r.resolve(c.v).then((function(e){u("next",e,a,i)}),(function(e){u("throw",e,a,i)})):r.resolve(c).then((function(e){s.value=e,a(s)}),(function(e){return u("throw",e,a,i)}))}catch(e){i(e)}}var a;this.next||(o(e.prototype),o(e.prototype,"function"==typeof Symbol&&Symbol.asyncIterator||"@asyncIterator",(function(){return this}))),o(this,"_invoke",(function(e,t,n){function o(){return new r((function(t,r){u(e,n,t,r)}))}return a=a?a.then(o,o):o()}),!0)},e.exports.__esModule=!0,e.exports.default=e.exports},869:(e,t,r)=>{var n=r(887);e.exports=function(e,t,r,o,u){var a=n(e,t,r,o,u);return a.next().then((function(e){return e.done?e.value:a.next()}))},e.exports.__esModule=!0,e.exports.default=e.exports},887:(e,t,r)=>{var n=r(993),o=r(791);e.exports=function(e,t,r,u,a){return new o(n().w(e,t,r,u),a||Promise)},e.exports.__esModule=!0,e.exports.default=e.exports},987:e=>{e.exports=function(e){if(Array.isArray(e))return e},e.exports.__esModule=!0,e.exports.default=e.exports},993:(e,t,r)=>{var n=r(546);function o(){var t,r,u="function"==typeof Symbol?Symbol:{},a=u.iterator||"@@iterator",i=u.toStringTag||"@@toStringTag";function s(e,o,u,a){var i=o&&o.prototype instanceof f?o:f,s=Object.create(i.prototype);return n(s,"_invoke",function(e,n,o){var u,a,i,s=0,f=o||[],l=!1,p={p:0,n:0,v:t,a:d,f:d.bind(t,4),d:function(e,r){return u=e,a=0,i=t,p.n=r,c}};function d(e,n){for(a=e,i=n,r=0;!l&&s&&!o&&r3?(o=v===n)&&(i=u[(a=u[4])?5:(a=3,3)],u[4]=u[5]=t):u[0]<=d&&((o=e<2&&dn||n>v)&&(u[4]=e,u[5]=n,p.n=v,a=0))}if(o||e>1)return c;throw l=!0,n}return function(o,f,v){if(s>1)throw TypeError("Generator is already running");for(l&&1===f&&d(f,v),a=f,i=v;(r=a<2?t:i)||!l;){u||(a?a<3?(a>1&&(p.n=-1),d(a,i)):p.n=i:p.v=i);try{if(s=2,u){if(a||(o="next"),r=u[o]){if(!(r=r.call(u,i)))throw TypeError("iterator result is not an object");if(!r.done)return r;i=r.value,a<2&&(a=0)}else 1===a&&(r=u.return)&&r.call(u),a<2&&(i=TypeError("The iterator does not provide a '"+o+"' method"),a=1);u=t}else if((r=(l=p.n<0)?i:e.call(n,p))!==c)break}catch(e){u=t,a=1,i=e}finally{s=1}}return{value:r,done:l}}}(e,u,a),!0),s}var c={};function f(){}function l(){}function p(){}r=Object.getPrototypeOf;var d=[][a]?r(r([][a]())):(n(r={},a,(function(){return this})),r),v=p.prototype=f.prototype=Object.create(d);function x(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,p):(e.__proto__=p,n(e,i,"GeneratorFunction")),e.prototype=Object.create(v),e}return l.prototype=p,n(v,"constructor",p),n(p,"constructor",l),l.displayName="GeneratorFunction",n(p,i,"GeneratorFunction"),n(v),n(v,i,"Generator"),n(v,a,(function(){return this})),n(v,"toString",(function(){return"[object Generator]"})),(e.exports=o=function(){return{w:s,m:x}},e.exports.__esModule=!0,e.exports.default=e.exports)()}e.exports=o,e.exports.__esModule=!0,e.exports.default=e.exports}},t={};function r(n){var o=t[n];if(void 0!==o)return o.exports;var u=t[n]={exports:{}};return e[n].call(u.exports,u,u.exports,r),u.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{"use strict";r(472)})()})();`,r=c(a.load,n),t=function(d){return r().clearInterval(d)},e=function(d){return r().clearTimeout(d)},i=function(){var d;return(d=r()).setInterval.apply(d,arguments)},l=function(){var d;return(d=r()).setTimeout.apply(d,arguments)};s.clearInterval=t,s.clearTimeout=e,s.setInterval=i,s.setTimeout=l})}),tn=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0}),f.isReactNativeBrowser=f.isWebWorker=void 0;var h=()=>typeof window<"u"?typeof navigator<"u"&&navigator.userAgent?.toLowerCase().indexOf(" electron/")>-1&&Ge?.versions?!Object.prototype.hasOwnProperty.call(Ge.versions,"electron"):typeof window.document<"u":!1,s=()=>!!(typeof self=="object"&&self?.constructor?.name?.includes("WorkerGlobalScope")),a=()=>typeof navigator<"u"&&navigator.product==="ReactNative",c=h()||s()||a();f.isWebWorker=s(),f.isReactNativeBrowser=a(),f.default=c}),Zu=Se(f=>{ge(),me(),ye();var h=f&&f.__createBinding||(Object.create?function(i,l,d,p){p===void 0&&(p=d);var g=Object.getOwnPropertyDescriptor(l,d);(!g||("get"in g?!l.__esModule:g.writable||g.configurable))&&(g={enumerable:!0,get:function(){return l[d]}}),Object.defineProperty(i,p,g)}:function(i,l,d,p){p===void 0&&(p=d),i[p]=l[d]}),s=f&&f.__setModuleDefault||(Object.create?function(i,l){Object.defineProperty(i,"default",{enumerable:!0,value:l})}:function(i,l){i.default=l}),a=f&&f.__importStar||(function(){var i=function(l){return i=Object.getOwnPropertyNames||function(d){var p=[];for(var g in d)Object.prototype.hasOwnProperty.call(d,g)&&(p[p.length]=g);return p},i(l)};return function(l){if(l&&l.__esModule)return l;var d={};if(l!=null)for(var p=i(l),g=0;gsetInterval(i,l),clear:i=>clearInterval(i)},e=i=>{switch(i){case"native":return t;case"worker":return r;case"auto":default:return n.default&&!n.isWebWorker&&!n.isReactNativeBrowser?r:t}};f.default=e}),Ma=Se(f=>{ge(),me(),ye();var h=f&&f.__importDefault||function(c){return c&&c.__esModule?c:{default:c}};Object.defineProperty(f,"__esModule",{value:!0});var s=h(Zu()),a=class{_keepalive;timerId;timer;destroyed=!1;counter;client;_keepaliveTimeoutTimestamp;_intervalEvery;get keepaliveTimeoutTimestamp(){return this._keepaliveTimeoutTimestamp}get intervalEvery(){return this._intervalEvery}get keepalive(){return this._keepalive}constructor(c,n){this.client=c,this.timer=typeof n=="object"&&"set"in n&&"clear"in n?n:(0,s.default)(n),this.setKeepalive(c.options.keepalive)}clear(){this.timerId&&(this.timer.clear(this.timerId),this.timerId=null)}setKeepalive(c){if(c*=1e3,isNaN(c)||c<=0||c>2147483647)throw new Error(`Keepalive value must be an integer between 0 and 2147483647. Provided value is ${c}`);this._keepalive=c,this.reschedule(),this.client.log(`KeepaliveManager: set keepalive to ${c}ms`)}destroy(){this.clear(),this.destroyed=!0}reschedule(){if(this.destroyed)return;this.clear(),this.counter=0;let c=Math.ceil(this._keepalive*1.5);this._keepaliveTimeoutTimestamp=Date.now()+c,this._intervalEvery=Math.ceil(this._keepalive/2),this.timerId=this.timer.set(()=>{this.destroyed||(this.counter+=1,this.counter===2?this.client.sendPing():this.counter>2&&this.client.onKeepaliveTimeout())},this._intervalEvery)}};f.default=a}),wi=Se(f=>{var _;ge(),me(),ye();var h=f&&f.__createBinding||(Object.create?function(C,w,I,k){k===void 0&&(k=I);var j=Object.getOwnPropertyDescriptor(w,I);(!j||("get"in j?!w.__esModule:j.writable||j.configurable))&&(j={enumerable:!0,get:function(){return w[I]}}),Object.defineProperty(C,k,j)}:function(C,w,I,k){k===void 0&&(k=I),C[k]=w[I]}),s=f&&f.__setModuleDefault||(Object.create?function(C,w){Object.defineProperty(C,"default",{enumerable:!0,value:w})}:function(C,w){C.default=w}),a=f&&f.__importStar||(function(){var C=function(w){return C=Object.getOwnPropertyNames||function(I){var k=[];for(var j in I)Object.prototype.hasOwnProperty.call(I,j)&&(k[k.length]=j);return k},C(w)};return function(w){if(w&&w.__esModule)return w;var I={};if(w!=null)for(var k=C(w),j=0;j{let w=C.shift();(0,b.nextTick)(()=>{w(...C)})}),v={keepalive:60,reschedulePings:!0,protocolId:"MQTT",protocolVersion:4,reconnectPeriod:1e3,connectTimeout:30*1e3,clean:!0,resubscribe:!0,subscribeBatchSize:null,writeCache:!0,timerVariant:"auto"},A=(_=class extends E.TypedEventEmitter{connected;disconnecting;disconnected;reconnecting;incomingStore;outgoingStore;options;queueQoSZero;_reconnectCount;log;messageIdProvider;outgoing;messageIdToTopic;noop;keepaliveManager;stream;queue;streamBuilder;_resubscribeTopics;connackTimer;reconnectTimer;_storeProcessing;_packetIdsDuringStoreProcessing;_storeProcessingQueue;_firstConnection;topicAliasRecv;topicAliasSend;_deferredReconnect;connackPacket;static defaultId(){return`mqttjs_${Math.random().toString(16).substr(2,8)}`}constructor(w,I){super(),this.options=I||{};for(let k in v)typeof this.options[k]>"u"?this.options[k]=v[k]:this.options[k]=I[k];this.log=this.options.log||(0,e.default)("mqttjs:client"),this.noop=this._noop.bind(this),this.log("MqttClient :: version:",_.VERSION),x.isWebWorker?this.log("MqttClient :: environment","webworker"):this.log("MqttClient :: environment",x.default?"browser":"node"),this.log("MqttClient :: options.protocol",I.protocol),this.log("MqttClient :: options.protocolVersion",I.protocolVersion),this.log("MqttClient :: options.username",I.username),this.log("MqttClient :: options.keepalive",I.keepalive),this.log("MqttClient :: options.reconnectPeriod",I.reconnectPeriod),this.log("MqttClient :: options.rejectUnauthorized",I.rejectUnauthorized),this.log("MqttClient :: options.properties.topicAliasMaximum",I.properties?I.properties.topicAliasMaximum:void 0),this.options.clientId=typeof I.clientId=="string"?I.clientId:_.defaultId(),this.log("MqttClient :: clientId",this.options.clientId),this.options.customHandleAcks=I.protocolVersion===5&&I.customHandleAcks?I.customHandleAcks:(...k)=>{k[3](null,0)},this.options.writeCache||(n.default.writeToStream.cacheNumbers=!1),this.streamBuilder=w,this.messageIdProvider=typeof this.options.messageIdProvider>"u"?new p.default:this.options.messageIdProvider,this.outgoingStore=I.outgoingStore||new l.default,this.incomingStore=I.incomingStore||new l.default,this.queueQoSZero=I.queueQoSZero===void 0?!0:I.queueQoSZero,this._resubscribeTopics={},this.messageIdToTopic={},this.keepaliveManager=null,this.connected=!1,this.disconnecting=!1,this.reconnecting=!1,this.queue=[],this.connackTimer=null,this.reconnectTimer=null,this._storeProcessing=!1,this._packetIdsDuringStoreProcessing={},this._storeProcessingQueue=[],this.outgoing={},this._firstConnection=!0,I.properties&&I.properties.topicAliasMaximum>0&&(I.properties.topicAliasMaximum>65535?this.log("MqttClient :: options.properties.topicAliasMaximum is out of range"):this.topicAliasRecv=new g.default(I.properties.topicAliasMaximum)),this.on("connect",()=>{let{queue:k}=this,j=()=>{let U=k.shift();this.log("deliver :: entry %o",U);let P=null;if(!U){this._resubscribe();return}P=U.packet,this.log("deliver :: call _sendPacket for %o",P);let z=!0;P.messageId&&P.messageId!==0&&(this.messageIdProvider.register(P.messageId)||(z=!1)),z?this._sendPacket(P,G=>{U.cb&&U.cb(G),j()}):(this.log("messageId: %d has already used. The message is skipped and removed.",P.messageId),j())};this.log("connect :: sending queued packets"),j()}),this.on("close",()=>{this.log("close :: connected set to `false`"),this.connected=!1,this.log("close :: clearing connackTimer"),clearTimeout(this.connackTimer),this._destroyKeepaliveManager(),this.topicAliasRecv&&this.topicAliasRecv.clear(),this.log("close :: calling _setupReconnect"),this._setupReconnect()}),this.options.manualConnect||(this.log("MqttClient :: setting up stream"),this.connect())}handleAuth(w,I){I()}handleMessage(w,I){I()}_nextId(){return this.messageIdProvider.allocate()}getLastMessageId(){return this.messageIdProvider.getLastAllocated()}connect(){let w=new r.Writable,I=n.default.parser(this.options),k=null,j=[];this.log("connect :: calling method to clear reconnect"),this._clearReconnect(),this.disconnected&&!this.reconnecting&&(this.incomingStore=this.options.incomingStore||new l.default,this.outgoingStore=this.options.outgoingStore||new l.default,this.disconnecting=!1,this.disconnected=!1),this.log("connect :: using streamBuilder provided to client to create stream"),this.stream=this.streamBuilder(this),I.on("packet",q=>{this.log("parser :: on packet push to packets array."),j.push(q)});let U=()=>{this.log("work :: getting next packet in queue");let q=j.shift();if(q)this.log("work :: packet pulled from queue"),(0,d.default)(this,q,P);else{this.log("work :: no packets in queue");let he=k;k=null,this.log("work :: done flag is %s",!!he),he&&he()}},P=()=>{if(j.length)(0,b.nextTick)(U);else{let q=k;k=null,q()}};w._write=(q,he,ne)=>{k=ne,this.log("writable stream :: parsing buffer"),I.parse(q),U()};let z=q=>{this.log("streamErrorHandler :: error",q.message),q.code?(this.log("streamErrorHandler :: emitting error"),this.emit("error",q)):this.noop(q)};this.log("connect :: pipe stream to writable stream"),this.stream.pipe(w),this.stream.on("error",z),this.stream.on("close",()=>{this.log("(%s)stream :: on close",this.options.clientId),this._flushVolatile(),this.log("stream: emit close to MqttClient"),this.emit("close")}),this.log("connect: sending packet `connect`");let G={cmd:"connect",protocolId:this.options.protocolId,protocolVersion:this.options.protocolVersion,clean:this.options.clean,clientId:this.options.clientId,keepalive:this.options.keepalive,username:this.options.username,password:this.options.password,properties:this.options.properties};if(this.options.will&&(G.will={...this.options.will,payload:this.options.will?.payload}),this.topicAliasRecv&&(G.properties||(G.properties={}),this.topicAliasRecv&&(G.properties.topicAliasMaximum=this.topicAliasRecv.max)),this._writePacket(G),I.on("error",this.emit.bind(this,"error")),this.options.properties){if(!this.options.properties.authenticationMethod&&this.options.properties.authenticationData)return this.end(()=>this.emit("error",new Error("Packet has no Authentication Method"))),this;if(this.options.properties.authenticationMethod&&this.options.authPacket&&typeof this.options.authPacket=="object"){let q={cmd:"auth",reasonCode:0,...this.options.authPacket};this._writePacket(q)}}return this.stream.setMaxListeners(1e3),clearTimeout(this.connackTimer),this.connackTimer=setTimeout(()=>{this.log("!!connectTimeout hit!! Calling _cleanUp with force `true`"),this.emit("error",new Error("connack timeout")),this._cleanUp(!0)},this.options.connectTimeout),this}publish(w,I,k,j){this.log("publish :: message `%s` to topic `%s`",I,w);let{options:U}=this;typeof k=="function"&&(j=k,k=null),k=k||{},k={qos:0,retain:!1,dup:!1,...k};let{qos:P,retain:z,dup:G,properties:q,cbStorePut:he}=k;if(this._checkDisconnecting(j))return this;let ne=()=>{let te=0;if((P===1||P===2)&&(te=this._nextId(),te===null))return this.log("No messageId left"),!1;let ce={cmd:"publish",topic:w,payload:I,qos:P,retain:z,messageId:te,dup:G};switch(U.protocolVersion===5&&(ce.properties=q),this.log("publish :: qos",P),P){case 1:case 2:this.outgoing[ce.messageId]={volatile:!1,cb:j||this.noop},this.log("MqttClient:publish: packet cmd: %s",ce.cmd),this._sendPacket(ce,void 0,he);break;default:this.log("MqttClient:publish: packet cmd: %s",ce.cmd),this._sendPacket(ce,j,he);break}return!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!ne())&&this._storeProcessingQueue.push({invoke:ne,cbStorePut:k.cbStorePut,callback:j}),this}publishAsync(w,I,k){return new Promise((j,U)=>{this.publish(w,I,k,(P,z)=>{P?U(P):j(z)})})}subscribe(w,I,k){let j=this.options.protocolVersion;typeof I=="function"&&(k=I),k=k||this.noop;let U=!1,P=[];typeof w=="string"?(w=[w],P=w):Array.isArray(w)?P=w:typeof w=="object"&&(U=w.resubscribe,delete w.resubscribe,P=Object.keys(w));let z=i.validateTopics(P);if(z!==null)return y(k,new Error(`Invalid topic ${z}`)),this;if(this._checkDisconnecting(k))return this.log("subscribe: discconecting true"),this;let G={qos:0};j===5&&(G.nl=!1,G.rap=!1,G.rh=0),I={...G,...I};let{properties:q}=I,he=[],ne=(V,le)=>{if(le=le||I,!Object.prototype.hasOwnProperty.call(this._resubscribeTopics,V)||this._resubscribeTopics[V].qos{this.log("subscribe: array topic %s",V),ne(V)}):Object.keys(w).forEach(V=>{this.log("subscribe: object topic %s, %o",V,w[V]),ne(V,w[V])}),!he.length)return k(null,[]),this;let te=(V,le)=>{let M={cmd:"subscribe",subscriptions:V,messageId:le};if(q&&(M.properties=q),this.options.resubscribe){this.log("subscribe :: resubscribe true");let Z=[];V.forEach(ue=>{if(this.options.reconnectPeriod>0){let Ae={qos:ue.qos};j===5&&(Ae.nl=ue.nl||!1,Ae.rap=ue.rap||!1,Ae.rh=ue.rh||0,Ae.properties=ue.properties),this._resubscribeTopics[ue.topic]=Ae,Z.push(ue.topic)}}),this.messageIdToTopic[M.messageId]=Z}let ee=new Promise((Z,ue)=>{this.outgoing[M.messageId]={volatile:!0,cb(Ae,Y){if(!Ae){let{granted:W}=Y;for(let oe=0;oe{let V=this.options.subscribeBatchSize??he.length,le=[];for(let M=0;M{k(null,he,M.at(-1))}).catch(M=>{k(M,he,M.packet)}),!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!ce())&&this._storeProcessingQueue.push({invoke:ce,callback:k}),this}subscribeAsync(w,I){return new Promise((k,j)=>{this.subscribe(w,I,(U,P)=>{U?j(U):k(P)})})}unsubscribe(w,I,k){typeof w=="string"&&(w=[w]),typeof I=="function"&&(k=I),k=k||this.noop;let j=i.validateTopics(w);if(j!==null)return y(k,new Error(`Invalid topic ${j}`)),this;if(this._checkDisconnecting(k))return this;let U=()=>{let P=this._nextId();if(P===null)return this.log("No messageId left"),!1;let z={cmd:"unsubscribe",messageId:P,unsubscriptions:[]};return typeof w=="string"?z.unsubscriptions=[w]:Array.isArray(w)&&(z.unsubscriptions=w),this.options.resubscribe&&z.unsubscriptions.forEach(G=>{delete this._resubscribeTopics[G]}),typeof I=="object"&&I.properties&&(z.properties=I.properties),this.outgoing[z.messageId]={volatile:!0,cb:k},this.log("unsubscribe: call _sendPacket"),this._sendPacket(z),!0};return(this._storeProcessing||this._storeProcessingQueue.length>0||!U())&&this._storeProcessingQueue.push({invoke:U,callback:k}),this}unsubscribeAsync(w,I){return new Promise((k,j)=>{this.unsubscribe(w,I,(U,P)=>{U?j(U):k(P)})})}end(w,I,k){this.log("end :: (%s)",this.options.clientId),(w==null||typeof w!="boolean")&&(k=k||I,I=w,w=!1),typeof I!="object"&&(k=k||I,I=null),this.log("end :: cb? %s",!!k),(!k||typeof k!="function")&&(k=this.noop);let j=()=>{this.log("end :: closeStores: closing incoming and outgoing stores"),this.disconnected=!0,this.incomingStore.close(P=>{this.outgoingStore.close(z=>{if(this.log("end :: closeStores: emitting end"),this.emit("end"),k){let G=P||z;this.log("end :: closeStores: invoking callback with args"),k(G)}})}),this._deferredReconnect?this._deferredReconnect():(this.options.reconnectPeriod===0||this.options.manualConnect)&&(this.disconnecting=!1)},U=()=>{this.log("end :: (%s) :: finish :: calling _cleanUp with force %s",this.options.clientId,w),this._cleanUp(w,()=>{this.log("end :: finish :: calling process.nextTick on closeStores"),(0,b.nextTick)(j)},I)};return this.disconnecting?(k(),this):(this._clearReconnect(),this.disconnecting=!0,!w&&Object.keys(this.outgoing).length>0?(this.log("end :: (%s) :: calling finish in 10ms once outgoing is empty",this.options.clientId),this.once("outgoingEmpty",setTimeout.bind(null,U,10))):(this.log("end :: (%s) :: immediately calling finish",this.options.clientId),U()),this)}endAsync(w,I){return new Promise((k,j)=>{this.end(w,I,U=>{U?j(U):k()})})}removeOutgoingMessage(w){if(this.outgoing[w]){let{cb:I}=this.outgoing[w];this._removeOutgoingAndStoreMessage(w,()=>{I(new Error("Message removed"))})}return this}reconnect(w){this.log("client reconnect");let I=()=>{w?(this.options.incomingStore=w.incomingStore,this.options.outgoingStore=w.outgoingStore):(this.options.incomingStore=null,this.options.outgoingStore=null),this.incomingStore=this.options.incomingStore||new l.default,this.outgoingStore=this.options.outgoingStore||new l.default,this.disconnecting=!1,this.disconnected=!1,this._deferredReconnect=null,this._reconnect()};return this.disconnecting&&!this.disconnected?this._deferredReconnect=I:I(),this}_flushVolatile(){this.outgoing&&(this.log("_flushVolatile :: deleting volatile messages from the queue and setting their callbacks as error function"),Object.keys(this.outgoing).forEach(w=>{this.outgoing[w].volatile&&typeof this.outgoing[w].cb=="function"&&(this.outgoing[w].cb(new Error("Connection closed")),delete this.outgoing[w])}))}_flush(){this.outgoing&&(this.log("_flush: queue exists? %b",!!this.outgoing),Object.keys(this.outgoing).forEach(w=>{typeof this.outgoing[w].cb=="function"&&(this.outgoing[w].cb(new Error("Connection closed")),delete this.outgoing[w])}))}_removeTopicAliasAndRecoverTopicName(w){let I;w.properties&&(I=w.properties.topicAlias);let k=w.topic.toString();if(this.log("_removeTopicAliasAndRecoverTopicName :: alias %d, topic %o",I,k),k.length===0){if(typeof I>"u")return new Error("Unregistered Topic Alias");if(k=this.topicAliasSend.getTopicByAlias(I),typeof k>"u")return new Error("Unregistered Topic Alias");w.topic=k}I&&delete w.properties.topicAlias}_checkDisconnecting(w){return this.disconnecting&&(w&&w!==this.noop?w(new Error("client disconnecting")):this.emit("error",new Error("client disconnecting"))),this.disconnecting}_reconnect(){this.log("_reconnect: emitting reconnect to client"),this.emit("reconnect"),this.connected?(this.end(()=>{this.connect()}),this.log("client already connected. disconnecting first.")):(this.log("_reconnect: calling connect"),this.connect())}_setupReconnect(){!this.disconnecting&&!this.reconnectTimer&&this.options.reconnectPeriod>0?(this.reconnecting||(this.log("_setupReconnect :: emit `offline` state"),this.emit("offline"),this.log("_setupReconnect :: set `reconnecting` to `true`"),this.reconnecting=!0),this.log("_setupReconnect :: setting reconnectTimer for %d ms",this.options.reconnectPeriod),this.reconnectTimer=setInterval(()=>{this.log("reconnectTimer :: reconnect triggered!"),this._reconnect()},this.options.reconnectPeriod)):this.log("_setupReconnect :: doing nothing...")}_clearReconnect(){this.log("_clearReconnect : clearing reconnect timer"),this.reconnectTimer&&(clearInterval(this.reconnectTimer),this.reconnectTimer=null)}_cleanUp(w,I,k={}){if(I&&(this.log("_cleanUp :: done callback provided for on stream close"),this.stream.on("close",I)),this.log("_cleanUp :: forced? %s",w),w)this.options.reconnectPeriod===0&&this.options.clean&&this._flush(),this.log("_cleanUp :: (%s) :: destroying stream",this.options.clientId),this.stream.destroy();else{let j={cmd:"disconnect",...k};this.log("_cleanUp :: (%s) :: call _sendPacket with disconnect packet",this.options.clientId),this._sendPacket(j,()=>{this.log("_cleanUp :: (%s) :: destroying stream",this.options.clientId),y(()=>{this.stream.end(()=>{this.log("_cleanUp :: (%s) :: stream destroyed",this.options.clientId)})})})}!this.disconnecting&&!this.reconnecting&&(this.log("_cleanUp :: client not disconnecting/reconnecting. Clearing and resetting reconnect."),this._clearReconnect(),this._setupReconnect()),this._destroyKeepaliveManager(),I&&!this.connected&&(this.log("_cleanUp :: (%s) :: removing stream `done` callback `close` listener",this.options.clientId),this.stream.removeListener("close",I),I())}_storeAndSend(w,I,k){this.log("storeAndSend :: store packet with cmd %s to outgoingStore",w.cmd);let j=w,U;if(j.cmd==="publish"&&(j=(0,t.default)(w),U=this._removeTopicAliasAndRecoverTopicName(j),U))return I&&I(U);this.outgoingStore.put(j,P=>{if(P)return I&&I(P);k(),this._writePacket(w,I)})}_applyTopicAlias(w){if(this.options.protocolVersion===5&&w.cmd==="publish"){let I;w.properties&&(I=w.properties.topicAlias);let k=w.topic.toString();if(this.topicAliasSend)if(I){if(k.length!==0&&(this.log("applyTopicAlias :: register topic: %s - alias: %d",k,I),!this.topicAliasSend.put(k,I)))return this.log("applyTopicAlias :: error out of range. topic: %s - alias: %d",k,I),new Error("Sending Topic Alias out of range")}else k.length!==0&&(this.options.autoAssignTopicAlias?(I=this.topicAliasSend.getAliasByTopic(k),I?(w.topic="",w.properties={...w.properties,topicAlias:I},this.log("applyTopicAlias :: auto assign(use) topic: %s - alias: %d",k,I)):(I=this.topicAliasSend.getLruAlias(),this.topicAliasSend.put(k,I),w.properties={...w.properties,topicAlias:I},this.log("applyTopicAlias :: auto assign topic: %s - alias: %d",k,I))):this.options.autoUseTopicAlias&&(I=this.topicAliasSend.getAliasByTopic(k),I&&(w.topic="",w.properties={...w.properties,topicAlias:I},this.log("applyTopicAlias :: auto use topic: %s - alias: %d",k,I))));else if(I)return this.log("applyTopicAlias :: error out of range. topic: %s - alias: %d",k,I),new Error("Sending Topic Alias out of range")}}_noop(w){this.log("noop ::",w)}_writePacket(w,I){this.log("_writePacket :: packet: %O",w),this.log("_writePacket :: emitting `packetsend`"),this.emit("packetsend",w),this.log("_writePacket :: writing to stream");let k=n.default.writeToStream(w,this.stream,this.options);this.log("_writePacket :: writeToStream result %s",k),!k&&I&&I!==this.noop?(this.log("_writePacket :: handle events on `drain` once through callback."),this.stream.once("drain",I)):I&&(this.log("_writePacket :: invoking cb"),I())}_sendPacket(w,I,k,j){this.log("_sendPacket :: (%s) :: start",this.options.clientId),k=k||this.noop,I=I||this.noop;let U=this._applyTopicAlias(w);if(U){I(U);return}if(!this.connected){if(w.cmd==="auth"){this._writePacket(w,I);return}this.log("_sendPacket :: client not connected. Storing packet offline."),this._storePacket(w,I,k);return}if(j){this._writePacket(w,I);return}switch(w.cmd){case"publish":break;case"pubrel":this._storeAndSend(w,I,k);return;default:this._writePacket(w,I);return}switch(w.qos){case 2:case 1:this._storeAndSend(w,I,k);break;case 0:default:this._writePacket(w,I);break}this.log("_sendPacket :: (%s) :: end",this.options.clientId)}_storePacket(w,I,k){this.log("_storePacket :: packet: %o",w),this.log("_storePacket :: cb? %s",!!I),k=k||this.noop;let j=w;if(j.cmd==="publish"){j=(0,t.default)(w);let P=this._removeTopicAliasAndRecoverTopicName(j);if(P)return I&&I(P)}let U=j.qos||0;U===0&&this.queueQoSZero||j.cmd!=="publish"?this.queue.push({packet:j,cb:I}):U>0?(I=this.outgoing[j.messageId]?this.outgoing[j.messageId].cb:null,this.outgoingStore.put(j,P=>{if(P)return I&&I(P);k()})):I&&I(new Error("No connection to broker"))}_setupKeepaliveManager(){this.log("_setupKeepaliveManager :: keepalive %d (seconds)",this.options.keepalive),!this.keepaliveManager&&this.options.keepalive&&(this.keepaliveManager=new S.default(this,this.options.timerVariant))}_destroyKeepaliveManager(){this.keepaliveManager&&(this.log("_destroyKeepaliveManager :: destroying keepalive manager"),this.keepaliveManager.destroy(),this.keepaliveManager=null)}reschedulePing(w=!1){this.keepaliveManager&&this.options.keepalive&&(w||this.options.reschedulePings)&&this._reschedulePing()}_reschedulePing(){this.log("_reschedulePing :: rescheduling ping"),this.keepaliveManager.reschedule()}sendPing(){this.log("_sendPing :: sending pingreq"),this._sendPacket({cmd:"pingreq"})}onKeepaliveTimeout(){this.emit("error",new Error("Keepalive timeout")),this.log("onKeepaliveTimeout :: calling _cleanUp with force true"),this._cleanUp(!0)}_resubscribe(){this.log("_resubscribe");let w=Object.keys(this._resubscribeTopics);if(!this._firstConnection&&(this.options.clean||this.options.protocolVersion>=4&&!this.connackPacket.sessionPresent)&&w.length>0)if(this.options.resubscribe)if(this.options.protocolVersion===5){this.log("_resubscribe: protocolVersion 5");for(let I=0;I{let k=this.outgoingStore.createStream(),j=()=>{k.destroy(),k=null,this._flushStoreProcessingQueue(),U()},U=()=>{this._storeProcessing=!1,this._packetIdsDuringStoreProcessing={}};this.once("close",j),k.on("error",z=>{U(),this._flushStoreProcessingQueue(),this.removeListener("close",j),this.emit("error",z)});let P=()=>{if(!k)return;let z=k.read(1),G;if(!z){k.once("readable",P);return}if(this._storeProcessing=!0,this._packetIdsDuringStoreProcessing[z.messageId]){P();return}!this.disconnecting&&!this.reconnectTimer?(G=this.outgoing[z.messageId]?this.outgoing[z.messageId].cb:null,this.outgoing[z.messageId]={volatile:!1,cb(q,he){G&&G(q,he),P()}},this._packetIdsDuringStoreProcessing[z.messageId]=!0,this.messageIdProvider.register(z.messageId)?this._sendPacket(z,void 0,void 0,!0):this.log("messageId: %d has already used.",z.messageId)):k.destroy&&k.destroy()};k.on("end",()=>{let z=!0;for(let G in this._packetIdsDuringStoreProcessing)if(!this._packetIdsDuringStoreProcessing[G]){z=!1;break}this.removeListener("close",j),z?(U(),this._invokeAllStoreProcessingQueue(),this.emit("connect",w)):I()}),P()};I()}_invokeStoreProcessingQueue(){if(!this._storeProcessing&&this._storeProcessingQueue.length>0){let w=this._storeProcessingQueue[0];if(w&&w.invoke())return this._storeProcessingQueue.shift(),!0}return!1}_invokeAllStoreProcessingQueue(){for(;this._invokeStoreProcessingQueue(););}_flushStoreProcessingQueue(){for(let w of this._storeProcessingQueue)w.cbStorePut&&w.cbStorePut(new Error("Connection closed")),w.callback&&w.callback(new Error("Connection closed"));this._storeProcessingQueue.splice(0)}_removeOutgoingAndStoreMessage(w,I){delete this.outgoing[w],this.outgoingStore.del({messageId:w},(k,j)=>{I(k,j),this.messageIdProvider.deallocate(w),this._invokeStoreProcessingQueue()})}},it(_,"VERSION",b.MQTTJS_VERSION),_);f.default=A}),ec=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0});var h=Ia(),s=class{numberAllocator;lastId;constructor(){this.numberAllocator=new h.NumberAllocator(1,65535)}allocate(){return this.lastId=this.numberAllocator.alloc(),this.lastId}getLastAllocated(){return this.lastId}register(a){return this.numberAllocator.use(a)}deallocate(a){this.numberAllocator.free(a)}clear(){this.numberAllocator.clear()}};f.default=s});function tc(){if(_i)return xr;_i=!0;let f=2147483647,h=36,s=1,a=26,c=38,n=700,r=72,t=128,e="-",i=/^xn--/,l=/[^\0-\x7F]/,d=/[\x2E\u3002\uFF0E\uFF61]/g,p={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},g=h-s,b=Math.floor,E=String.fromCharCode;function S(j){throw new RangeError(p[j])}function x(j,U){let P=[],z=j.length;for(;z--;)P[z]=U(j[z]);return P}function y(j,U){let P=j.split("@"),z="";P.length>1&&(z=P[0]+"@",j=P[1]),j=j.replace(d,".");let G=j.split("."),q=x(G,U).join(".");return z+q}function v(j){let U=[],P=0,z=j.length;for(;P=55296&&G<=56319&&PString.fromCodePoint(...j),_=function(j){return j>=48&&j<58?26+(j-48):j>=65&&j<91?j-65:j>=97&&j<123?j-97:h},C=function(j,U){return j+22+75*(j<26)-((U!=0)<<5)},w=function(j,U,P){let z=0;for(j=P?b(j/n):j>>1,j+=b(j/U);j>g*a>>1;z+=h)j=b(j/g);return b(z+(g+1)*j/(j+c))},I=function(j){let U=[],P=j.length,z=0,G=t,q=r,he=j.lastIndexOf(e);he<0&&(he=0);for(let ne=0;ne=128&&S("not-basic"),U.push(j.charCodeAt(ne));for(let ne=he>0?he+1:0;ne=P&&S("invalid-input");let M=_(j.charCodeAt(ne++));M>=h&&S("invalid-input"),M>b((f-z)/V)&&S("overflow"),z+=M*V;let ee=le<=q?s:le>=q+a?a:le-q;if(Mb(f/Z)&&S("overflow"),V*=Z}let ce=U.length+1;q=w(z-te,ce,te==0),b(z/ce)>f-G&&S("overflow"),G+=b(z/ce),z%=ce,U.splice(z++,0,G)}return String.fromCodePoint(...U)},k=function(j){let U=[];j=v(j);let P=j.length,z=t,G=0,q=r;for(let te of j)te<128&&U.push(E(te));let he=U.length,ne=he;for(he&&U.push(e);ne=z&&Vb((f-G)/ce)&&S("overflow"),G+=(te-z)*ce,z=te;for(let V of j)if(Vf&&S("overflow"),V===z){let le=G;for(let M=h;;M+=h){let ee=M<=q?s:M>=q+a?a:M-q;if(le{ge(),me(),ye(),xr={},_i=!1,Wt=tc(),Wt.decode,Wt.encode,Wt.toASCII,Wt.toUnicode,Wt.ucs2,Wt.version});function nc(){return Ei||(Ei=!0,Si=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var f={},h=Symbol("test"),s=Object(h);if(typeof h=="string"||Object.prototype.toString.call(h)!=="[object Symbol]"||Object.prototype.toString.call(s)!=="[object Symbol]")return!1;var a=42;f[h]=a;for(h in f)return!1;if(typeof Object.keys=="function"&&Object.keys(f).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(f).length!==0)return!1;var c=Object.getOwnPropertySymbols(f);if(c.length!==1||c[0]!==h||!Object.prototype.propertyIsEnumerable.call(f,h))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var n=Object.getOwnPropertyDescriptor(f,h);if(n.value!==a||n.enumerable!==!0)return!1}return!0}),Si}function ic(){return xi||(xi=!0,Ai=Error),Ai}function oc(){return Oi||(Oi=!0,Ii=EvalError),Ii}function sc(){return ki||(ki=!0,Pi=RangeError),Pi}function ac(){return Ci||(Ci=!0,Ti=ReferenceError),Ti}function Ba(){return ji||(ji=!0,Ri=SyntaxError),Ri}function mr(){return Bi||(Bi=!0,Mi=TypeError),Mi}function lc(){return Ui||(Ui=!0,Ni=URIError),Ni}function uc(){if(Li)return Ir;Li=!0;var f=typeof Symbol<"u"&&Symbol,h=nc();return Ir=function(){return typeof f!="function"||typeof Symbol!="function"||typeof f("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:h()},Ir}function cc(){if(Di)return Or;Di=!0;var f={__proto__:null,foo:{}},h=Object;return Or=function(){return{__proto__:f}.foo===f.foo&&!(f instanceof h)},Or}function hc(){if(Fi)return Pr;Fi=!0;var f="Function.prototype.bind called on incompatible ",h=Object.prototype.toString,s=Math.max,a="[object Function]",c=function(t,e){for(var i=[],l=0;l"u"||!E?f:E(Uint8Array),y={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?f:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?f:ArrayBuffer,"%ArrayIteratorPrototype%":g&&E?E([][Symbol.iterator]()):f,"%AsyncFromSyncIteratorPrototype%":f,"%AsyncFunction%":S,"%AsyncGenerator%":S,"%AsyncGeneratorFunction%":S,"%AsyncIteratorPrototype%":S,"%Atomics%":typeof Atomics>"u"?f:Atomics,"%BigInt%":typeof BigInt>"u"?f:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?f:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?f:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?f:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":h,"%eval%":eval,"%EvalError%":s,"%Float32Array%":typeof Float32Array>"u"?f:Float32Array,"%Float64Array%":typeof Float64Array>"u"?f:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?f:FinalizationRegistry,"%Function%":e,"%GeneratorFunction%":S,"%Int8Array%":typeof Int8Array>"u"?f:Int8Array,"%Int16Array%":typeof Int16Array>"u"?f:Int16Array,"%Int32Array%":typeof Int32Array>"u"?f:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":g&&E?E(E([][Symbol.iterator]())):f,"%JSON%":typeof JSON=="object"?JSON:f,"%Map%":typeof Map>"u"?f:Map,"%MapIteratorPrototype%":typeof Map>"u"||!g||!E?f:E(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?f:Promise,"%Proxy%":typeof Proxy>"u"?f:Proxy,"%RangeError%":a,"%ReferenceError%":c,"%Reflect%":typeof Reflect>"u"?f:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?f:Set,"%SetIteratorPrototype%":typeof Set>"u"||!g||!E?f:E(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?f:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":g&&E?E(""[Symbol.iterator]()):f,"%Symbol%":g?Symbol:f,"%SyntaxError%":n,"%ThrowTypeError%":p,"%TypedArray%":x,"%TypeError%":r,"%Uint8Array%":typeof Uint8Array>"u"?f:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?f:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?f:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?f:Uint32Array,"%URIError%":t,"%WeakMap%":typeof WeakMap>"u"?f:WeakMap,"%WeakRef%":typeof WeakRef>"u"?f:WeakRef,"%WeakSet%":typeof WeakSet>"u"?f:WeakSet};if(E)try{null.error}catch(ne){var v=E(E(ne));y["%Error.prototype%"]=v}var A=function ne(te){var ce;if(te==="%AsyncFunction%")ce=i("async function () {}");else if(te==="%GeneratorFunction%")ce=i("function* () {}");else if(te==="%AsyncGeneratorFunction%")ce=i("async function* () {}");else if(te==="%AsyncGenerator%"){var V=ne("%AsyncGeneratorFunction%");V&&(ce=V.prototype)}else if(te==="%AsyncIteratorPrototype%"){var le=ne("%AsyncGenerator%");le&&E&&(ce=E(le.prototype))}return y[te]=ce,ce},_={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},C=go(),w=fc(),I=C.call(Function.call,Array.prototype.concat),k=C.call(Function.apply,Array.prototype.splice),j=C.call(Function.call,String.prototype.replace),U=C.call(Function.call,String.prototype.slice),P=C.call(Function.call,RegExp.prototype.exec),z=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,G=/\\(\\)?/g,q=function(ne){var te=U(ne,0,1),ce=U(ne,-1);if(te==="%"&&ce!=="%")throw new n("invalid intrinsic syntax, expected closing `%`");if(ce==="%"&&te!=="%")throw new n("invalid intrinsic syntax, expected opening `%`");var V=[];return j(ne,z,function(le,M,ee,Z){V[V.length]=ee?j(Z,G,"$1"):M||le}),V},he=function(ne,te){var ce=ne,V;if(w(_,ce)&&(V=_[ce],ce="%"+V[0]+"%"),w(y,ce)){var le=y[ce];if(le===S&&(le=A(ce)),typeof le>"u"&&!te)throw new r("intrinsic "+ne+" exists, but is not available. Please file an issue!");return{alias:V,name:ce,value:le}}throw new n("intrinsic "+ne+" does not exist!")};return Cr=function(ne,te){if(typeof ne!="string"||ne.length===0)throw new r("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof te!="boolean")throw new r('"allowMissing" argument must be a boolean');if(P(/^%?[^%]*%?$/,ne)===null)throw new n("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var ce=q(ne),V=ce.length>0?ce[0]:"",le=he("%"+V+"%",te),M=le.name,ee=le.value,Z=!1,ue=le.alias;ue&&(V=ue[0],k(ce,I([0,1],ue)));for(var Ae=1,Y=!0;Ae=ce.length){var J=l(ee,W);Y=!!J,Y&&"get"in J&&!("originalValue"in J.get)?ee=J.get:ee=ee[W]}else Y=w(ee,W),ee=ee[W];Y&&!Z&&(y[M]=ee)}}return ee},Cr}function yo(){if(Vi)return Rr;Vi=!0;var f=lr(),h=f("%Object.defineProperty%",!0)||!1;if(h)try{h({},"a",{value:1})}catch{h=!1}return Rr=h,Rr}function Na(){if(zi)return jr;zi=!0;var f=lr(),h=f("%Object.getOwnPropertyDescriptor%",!0);if(h)try{h([],"length")}catch{h=null}return jr=h,jr}function pc(){if(Ki)return Mr;Ki=!0;var f=yo(),h=Ba(),s=mr(),a=Na();return Mr=function(c,n,r){if(!c||typeof c!="object"&&typeof c!="function")throw new s("`obj` must be an object or a function`");if(typeof n!="string"&&typeof n!="symbol")throw new s("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new s("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new s("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new s("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new s("`loose`, if provided, must be a boolean");var t=arguments.length>3?arguments[3]:null,e=arguments.length>4?arguments[4]:null,i=arguments.length>5?arguments[5]:null,l=arguments.length>6?arguments[6]:!1,d=!!a&&a(c,n);if(f)f(c,n,{configurable:i===null&&d?d.configurable:!i,enumerable:t===null&&d?d.enumerable:!t,value:r,writable:e===null&&d?d.writable:!e});else if(l||!t&&!e&&!i)c[n]=r;else throw new h("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},Mr}function dc(){if(Hi)return Br;Hi=!0;var f=yo(),h=function(){return!!f};return h.hasArrayLengthDefineBug=function(){if(!f)return null;try{return f([],"length",{value:1}).length!==1}catch{return!0}},Br=h,Br}function gc(){if(Gi)return Nr;Gi=!0;var f=lr(),h=pc(),s=dc()(),a=Na(),c=mr(),n=f("%Math.floor%");return Nr=function(r,t){if(typeof r!="function")throw new c("`fn` is not a function");if(typeof t!="number"||t<0||t>4294967295||n(t)!==t)throw new c("`length` must be a positive 32-bit integer");var e=arguments.length>2&&!!arguments[2],i=!0,l=!0;if("length"in r&&a){var d=a(r,"length");d&&!d.configurable&&(i=!1),d&&!d.writable&&(l=!1)}return(i||l||!e)&&(s?h(r,"length",t,!0,!0):h(r,"length",t)),r},Nr}function yc(){if(Qi)return ir;Qi=!0;var f=go(),h=lr(),s=gc(),a=mr(),c=h("%Function.prototype.apply%"),n=h("%Function.prototype.call%"),r=h("%Reflect.apply%",!0)||f.call(n,c),t=yo(),e=h("%Math.max%");ir=function(l){if(typeof l!="function")throw new a("a function is required");var d=r(f,n,arguments);return s(d,1+e(0,l.length-(arguments.length-1)),!0)};var i=function(){return r(f,c,arguments)};return t?t(ir,"apply",{value:i}):ir.apply=i,ir}function mc(){if(Yi)return Ur;Yi=!0;var f=lr(),h=yc(),s=h(f("String.prototype.indexOf"));return Ur=function(a,c){var n=f(a,!!c);return typeof n=="function"&&s(a,".prototype.")>-1?h(n):n},Ur}var Si,Ei,Ai,xi,Ii,Oi,Pi,ki,Ti,Ci,Ri,ji,Mi,Bi,Ni,Ui,Ir,Li,Or,Di,Pr,Fi,kr,Wi,Tr,$i,Cr,qi,Rr,Vi,jr,zi,Mr,Ki,Br,Hi,Nr,Gi,ir,Qi,Ur,Yi,bc=yt(()=>{ge(),me(),ye(),Si={},Ei=!1,Ai={},xi=!1,Ii={},Oi=!1,Pi={},ki=!1,Ti={},Ci=!1,Ri={},ji=!1,Mi={},Bi=!1,Ni={},Ui=!1,Ir={},Li=!1,Or={},Di=!1,Pr={},Fi=!1,kr={},Wi=!1,Tr={},$i=!1,Cr={},qi=!1,Rr={},Vi=!1,jr={},zi=!1,Mr={},Ki=!1,Br={},Hi=!1,Nr={},Gi=!1,ir={},Qi=!1,Ur={},Yi=!1});function mo(f){throw new Error("Node.js process "+f+" is not supported by JSPM core outside of Node.js")}function vc(){!Xt||!Yt||(Xt=!1,Yt.length?St=Yt.concat(St):dr=-1,St.length&&Ua())}function Ua(){if(!Xt){var f=setTimeout(vc,0);Xt=!0;for(var h=St.length;h;){for(Yt=St,St=[];++dr1)for(var s=1;s{ge(),me(),ye(),St=[],Xt=!1,dr=-1,La.prototype.run=function(){this.fun.apply(null,this.array)},Oo="browser",Po="x64",ko="browser",To={PATH:"/usr/bin",LANG:navigator.language+".UTF-8",PWD:"/",HOME:"/home",TMP:"/tmp"},Co=["/usr/bin/node"],Ro=[],jo="v16.8.0",Mo={},Bo=function(f,h){console.warn((h?h+": ":"")+f)},No=function(f){mo("binding")},Uo=function(f){return 0},Lo=function(){return"/"},Do=function(f){},Fo={name:"node",sourceUrl:"",headersUrl:"",libUrl:""},Wo=ht,$o=[],qo={},Vo=!1,zo={},Ko=ht,Ho=ht,vr=function(){return{}},Go=vr,Qo=vr,Yo=ht,Jo=ht,Xo=ht,Zo={},es={inspector:!1,debug:!1,uv:!1,ipv6:!1,tls_alpn:!1,tls_sni:!1,tls_ocsp:!1,tls:!1,cached_builtins:!0},ts=ht,rs=ht,ns=ht,is=ht,os=ht,ss=ht,as=ht,ls=void 0,us=void 0,cs=void 0,hs=ht,fs=2,ps=1,ds="/bin/usr/node",gs=9229,ys="node",ms=[],bs=ht,Pt={now:typeof performance<"u"?performance.now.bind(performance):void 0,timing:typeof performance<"u"?performance.timing:void 0},Pt.now===void 0&&(sn=Date.now(),Pt.timing&&Pt.timing.navigationStart&&(sn=Pt.timing.navigationStart),Pt.now=()=>Date.now()-sn),Lr=1e9,on.bigint=function(f){var h=on(f);return typeof BigInt>"u"?h[0]*Lr+h[1]:BigInt(h[0]*Lr)+BigInt(h[1])},vs=10,ws={},_s=0,Ss=Nt,Es=Nt,As=Nt,xs=Nt,Is=Nt,Os=ht,Ps=Nt,ks=Nt,bo={version:jo,versions:Mo,arch:Po,platform:ko,release:Fo,_rawDebug:Wo,moduleLoadList:$o,binding:No,_linkedBinding:_c,_events:ws,_eventsCount:_s,_maxListeners:vs,on:Nt,addListener:Ss,once:Es,off:As,removeListener:xs,removeAllListeners:Is,emit:Os,prependListener:Ps,prependOnceListener:ks,listeners:Pc,domain:qo,_exiting:Vo,config:zo,dlopen:Sc,uptime:Oc,_getActiveRequests:Ec,_getActiveHandles:Ac,reallyExit:Ko,_kill:Ho,cpuUsage:vr,resourceUsage:Go,memoryUsage:Qo,kill:Yo,exit:Jo,openStdin:Xo,allowedNodeEnvironmentFlags:Zo,assert:xc,features:es,_fatalExceptions:ts,setUncaughtExceptionCaptureCallback:rs,hasUncaughtExceptionCaptureCallback:Ic,emitWarning:Bo,nextTick:wc,_tickCallback:ns,_debugProcess:is,_debugEnd:os,_startProfilerIdleNotifier:ss,_stopProfilerIdleNotifier:as,stdout:ls,stdin:cs,stderr:us,abort:hs,umask:Uo,chdir:Do,cwd:Lo,env:To,title:Oo,argv:Co,execArgv:Ro,pid:fs,ppid:ps,execPath:ds,debugPort:gs,hrtime:on,argv0:ys,_preload_modules:ms,setSourceMapsEnabled:bs}});function kc(){if(Ji)return Dr;Ji=!0;var f=bo;function h(n){if(typeof n!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(n))}function s(n,r){for(var t="",e=0,i=-1,l=0,d,p=0;p<=n.length;++p){if(p2){var g=t.lastIndexOf("/");if(g!==t.length-1){g===-1?(t="",e=0):(t=t.slice(0,g),e=t.length-1-t.lastIndexOf("/")),i=p,l=0;continue}}else if(t.length===2||t.length===1){t="",e=0,i=p,l=0;continue}}r&&(t.length>0?t+="/..":t="..",e=2)}else t.length>0?t+="/"+n.slice(i+1,p):t=n.slice(i+1,p),e=p-i-1;i=p,l=0}else d===46&&l!==-1?++l:l=-1}return t}function a(n,r){var t=r.dir||r.root,e=r.base||(r.name||"")+(r.ext||"");return t?t===r.root?t+e:t+n+e:e}var c={resolve:function(){for(var n="",r=!1,t,e=arguments.length-1;e>=-1&&!r;e--){var i;e>=0?i=arguments[e]:(t===void 0&&(t=f.cwd()),i=t),h(i),i.length!==0&&(n=i+"/"+n,r=i.charCodeAt(0)===47)}return n=s(n,!r),r?n.length>0?"/"+n:"/":n.length>0?n:"."},normalize:function(n){if(h(n),n.length===0)return".";var r=n.charCodeAt(0)===47,t=n.charCodeAt(n.length-1)===47;return n=s(n,!r),n.length===0&&!r&&(n="."),n.length>0&&t&&(n+="/"),r?"/"+n:n},isAbsolute:function(n){return h(n),n.length>0&&n.charCodeAt(0)===47},join:function(){if(arguments.length===0)return".";for(var n,r=0;r0&&(n===void 0?n=t:n+="/"+t)}return n===void 0?".":c.normalize(n)},relative:function(n,r){if(h(n),h(r),n===r||(n=c.resolve(n),r=c.resolve(r),n===r))return"";for(var t=1;tg){if(r.charCodeAt(l+E)===47)return r.slice(l+E+1);if(E===0)return r.slice(l+E)}else i>g&&(n.charCodeAt(t+E)===47?b=E:E===0&&(b=0));break}var S=n.charCodeAt(t+E),x=r.charCodeAt(l+E);if(S!==x)break;S===47&&(b=E)}var y="";for(E=t+b+1;E<=e;++E)(E===e||n.charCodeAt(E)===47)&&(y.length===0?y+="..":y+="/..");return y.length>0?y+r.slice(l+b):(l+=b,r.charCodeAt(l)===47&&++l,r.slice(l))},_makeLong:function(n){return n},dirname:function(n){if(h(n),n.length===0)return".";for(var r=n.charCodeAt(0),t=r===47,e=-1,i=!0,l=n.length-1;l>=1;--l)if(r=n.charCodeAt(l),r===47){if(!i){e=l;break}}else i=!1;return e===-1?t?"/":".":t&&e===1?"//":n.slice(0,e)},basename:function(n,r){if(r!==void 0&&typeof r!="string")throw new TypeError('"ext" argument must be a string');h(n);var t=0,e=-1,i=!0,l;if(r!==void 0&&r.length>0&&r.length<=n.length){if(r.length===n.length&&r===n)return"";var d=r.length-1,p=-1;for(l=n.length-1;l>=0;--l){var g=n.charCodeAt(l);if(g===47){if(!i){t=l+1;break}}else p===-1&&(i=!1,p=l+1),d>=0&&(g===r.charCodeAt(d)?--d===-1&&(e=l):(d=-1,e=p))}return t===e?e=p:e===-1&&(e=n.length),n.slice(t,e)}else{for(l=n.length-1;l>=0;--l)if(n.charCodeAt(l)===47){if(!i){t=l+1;break}}else e===-1&&(i=!1,e=l+1);return e===-1?"":n.slice(t,e)}},extname:function(n){h(n);for(var r=-1,t=0,e=-1,i=!0,l=0,d=n.length-1;d>=0;--d){var p=n.charCodeAt(d);if(p===47){if(!i){t=d+1;break}continue}e===-1&&(i=!1,e=d+1),p===46?r===-1?r=d:l!==1&&(l=1):r!==-1&&(l=-1)}return r===-1||e===-1||l===0||l===1&&r===e-1&&r===t+1?"":n.slice(r,e)},format:function(n){if(n===null||typeof n!="object")throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof n);return a("/",n)},parse:function(n){h(n);var r={root:"",dir:"",base:"",ext:"",name:""};if(n.length===0)return r;var t=n.charCodeAt(0),e=t===47,i;e?(r.root="/",i=1):i=0;for(var l=-1,d=0,p=-1,g=!0,b=n.length-1,E=0;b>=i;--b){if(t=n.charCodeAt(b),t===47){if(!g){d=b+1;break}continue}p===-1&&(g=!1,p=b+1),t===46?l===-1?l=b:E!==1&&(E=1):l!==-1&&(E=-1)}return l===-1||p===-1||E===0||E===1&&l===p-1&&l===d+1?p!==-1&&(d===0&&e?r.base=r.name=n.slice(1,p):r.base=r.name=n.slice(d,p)):(d===0&&e?(r.name=n.slice(1,l),r.base=n.slice(1,p)):(r.name=n.slice(d,l),r.base=n.slice(d,p)),r.ext=n.slice(l,p)),d>0?r.dir=n.slice(0,d-1):e&&(r.dir="/"),r},sep:"/",delimiter:":",win32:null,posix:null};return c.posix=c,Dr=c,Dr}var Dr,Ji,Xi,Tc=yt(()=>{ge(),me(),ye(),Da(),Dr={},Ji=!1,Xi=kc()}),Fa={};or(Fa,{URL:()=>Ya,Url:()=>za,default:()=>ft,fileURLToPath:()=>$a,format:()=>Ka,parse:()=>Qa,pathToFileURL:()=>qa,resolve:()=>Ha,resolveObject:()=>Ga});function Cc(){if(Zi)return Fr;Zi=!0;var f=typeof Map=="function"&&Map.prototype,h=Object.getOwnPropertyDescriptor&&f?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,s=f&&h&&typeof h.get=="function"?h.get:null,a=f&&Map.prototype.forEach,c=typeof Set=="function"&&Set.prototype,n=Object.getOwnPropertyDescriptor&&c?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,r=c&&n&&typeof n.get=="function"?n.get:null,t=c&&Set.prototype.forEach,e=typeof WeakMap=="function"&&WeakMap.prototype,i=e?WeakMap.prototype.has:null,l=typeof WeakSet=="function"&&WeakSet.prototype,d=l?WeakSet.prototype.has:null,p=typeof WeakRef=="function"&&WeakRef.prototype,g=p?WeakRef.prototype.deref:null,b=Boolean.prototype.valueOf,E=Object.prototype.toString,S=Function.prototype.toString,x=String.prototype.match,y=String.prototype.slice,v=String.prototype.replace,A=String.prototype.toUpperCase,_=String.prototype.toLowerCase,C=RegExp.prototype.test,w=Array.prototype.concat,I=Array.prototype.join,k=Array.prototype.slice,j=Math.floor,U=typeof BigInt=="function"?BigInt.prototype.valueOf:null,P=Object.getOwnPropertySymbols,z=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,G=typeof Symbol=="function"&&typeof Symbol.iterator=="object",q=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===G||!0)?Symbol.toStringTag:null,he=Object.prototype.propertyIsEnumerable,ne=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function($){return $.__proto__}:null);function te($,ie){if($===1/0||$===-1/0||$!==$||$&&$>-1e3&&$<1e3||C.call(/e/,ie))return ie;var Re=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof $=="number"){var ke=$<0?-j(-$):j($);if(ke!==$){var Le=String(ke),Ue=y.call(ie,Le.length+1);return v.call(Le,Re,"$&_")+"."+v.call(v.call(Ue,/([0-9]{3})/g,"$&_"),/_$/,"")}}return v.call(ie,Re,"$&_")}var ce=Va,V=ce.custom,le=J(V)?V:null;Fr=function $(ie,Re,ke,Le){var Ue=Re||{};if(pe(Ue,"quoteStyle")&&Ue.quoteStyle!=="single"&&Ue.quoteStyle!=="double")throw new TypeError('option "quoteStyle" must be "single" or "double"');if(pe(Ue,"maxStringLength")&&(typeof Ue.maxStringLength=="number"?Ue.maxStringLength<0&&Ue.maxStringLength!==1/0:Ue.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var Xe=pe(Ue,"customInspect")?Ue.customInspect:!0;if(typeof Xe!="boolean"&&Xe!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(pe(Ue,"indent")&&Ue.indent!==null&&Ue.indent!==" "&&!(parseInt(Ue.indent,10)===Ue.indent&&Ue.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(pe(Ue,"numericSeparator")&&typeof Ue.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var Fe=Ue.numericSeparator;if(typeof ie>"u")return"undefined";if(ie===null)return"null";if(typeof ie=="boolean")return ie?"true":"false";if(typeof ie=="string")return fe(ie,Ue);if(typeof ie=="number"){if(ie===0)return 1/0/ie>0?"0":"-0";var We=String(ie);return Fe?te(ie,We):We}if(typeof ie=="bigint"){var je=String(ie)+"n";return Fe?te(ie,je):je}var tt=typeof Ue.depth>"u"?5:Ue.depth;if(typeof ke>"u"&&(ke=0),ke>=tt&&tt>0&&typeof ie=="object")return Z(ie)?"[Array]":"[Object]";var He=N(Ue,ke);if(typeof Le>"u")Le=[];else if(se(Le,ie)>=0)return"[Circular]";function $e(ze,bt,At){if(bt&&(Le=k.call(Le),Le.push(bt)),At){var Qe={depth:Ue.depth};return pe(Ue,"quoteStyle")&&(Qe.quoteStyle=Ue.quoteStyle),$(ze,Qe,ke+1,Le)}return $(ze,Ue,ke+1,Le)}if(typeof ie=="function"&&!Ae(ie)){var nt=H(ie),dt=de(ie,$e);return"[Function"+(nt?": "+nt:" (anonymous)")+"]"+(dt.length>0?" { "+I.call(dt,", ")+" }":"")}if(J(ie)){var lt=G?v.call(String(ie),/^(Symbol\(.*\))_[^)]*$/,"$1"):z.call(ie);return typeof ie=="object"&&!G?o(lt):lt}if(Oe(ie)){for(var R="<"+_.call(String(ie.nodeName)),F=ie.attributes||[],Pe=0;Pe",R}if(Z(ie)){if(ie.length===0)return"[]";var Te=de(ie,$e);return He&&!T(Te)?"["+K(Te,He)+"]":"[ "+I.call(Te,", ")+" ]"}if(Y(ie)){var Me=de(ie,$e);return!("cause"in Error.prototype)&&"cause"in ie&&!he.call(ie,"cause")?"{ ["+String(ie)+"] "+I.call(w.call("[cause]: "+$e(ie.cause),Me),", ")+" }":Me.length===0?"["+String(ie)+"]":"{ ["+String(ie)+"] "+I.call(Me,", ")+" }"}if(typeof ie=="object"&&Xe){if(le&&typeof ie[le]=="function"&&ce)return ce(ie,{depth:tt-ke});if(Xe!=="symbol"&&typeof ie.inspect=="function")return ie.inspect()}if(be(ie)){var rt=[];return a&&a.call(ie,function(ze,bt){rt.push($e(bt,ie,!0)+" => "+$e(ze,ie))}),m("Map",s.call(ie),rt,He)}if(Q(ie)){var at=[];return t&&t.call(ie,function(ze){at.push($e(ze,ie))}),m("Set",r.call(ie),at,He)}if(ve(ie))return u("WeakMap");if(_e(ie))return u("WeakSet");if(Ee(ie))return u("WeakRef");if(oe(ie))return o($e(Number(ie)));if(re(ie))return o($e(U.call(ie)));if(X(ie))return o(b.call(ie));if(W(ie))return o($e(String(ie)));if(typeof window<"u"&&ie===window)return"{ [object Window] }";if(typeof globalThis<"u"&&ie===globalThis||typeof Wr<"u"&&ie===Wr)return"{ [object globalThis] }";if(!ue(ie)&&!Ae(ie)){var mt=de(ie,$e),Mt=ne?ne(ie)===Object.prototype:ie instanceof Object||ie.constructor===Object,zt=ie instanceof Object?"":"null prototype",Kt=!Mt&&q&&Object(ie)===ie&&q in ie?y.call(L(ie),8,-1):zt?"Object":"",Ht=Mt||typeof ie.constructor!="function"?"":ie.constructor.name?ie.constructor.name+" ":"",Et=Ht+(Kt||zt?"["+I.call(w.call([],Kt||[],zt||[]),": ")+"] ":"");return mt.length===0?Et+"{}":He?Et+"{"+K(mt,He)+"}":Et+"{ "+I.call(mt,", ")+" }"}return String(ie)};function M($,ie,Re){var ke=(Re.quoteStyle||ie)==="double"?'"':"'";return ke+$+ke}function ee($){return v.call(String($),/"/g,""")}function Z($){return L($)==="[object Array]"&&(!q||!(typeof $=="object"&&q in $))}function ue($){return L($)==="[object Date]"&&(!q||!(typeof $=="object"&&q in $))}function Ae($){return L($)==="[object RegExp]"&&(!q||!(typeof $=="object"&&q in $))}function Y($){return L($)==="[object Error]"&&(!q||!(typeof $=="object"&&q in $))}function W($){return L($)==="[object String]"&&(!q||!(typeof $=="object"&&q in $))}function oe($){return L($)==="[object Number]"&&(!q||!(typeof $=="object"&&q in $))}function X($){return L($)==="[object Boolean]"&&(!q||!(typeof $=="object"&&q in $))}function J($){if(G)return $&&typeof $=="object"&&$ instanceof Symbol;if(typeof $=="symbol")return!0;if(!$||typeof $!="object"||!z)return!1;try{return z.call($),!0}catch{}return!1}function re($){if(!$||typeof $!="object"||!U)return!1;try{return U.call($),!0}catch{}return!1}var we=Object.prototype.hasOwnProperty||function($){return $ in(this||Wr)};function pe($,ie){return we.call($,ie)}function L($){return E.call($)}function H($){if($.name)return $.name;var ie=x.call(S.call($),/^function\s*([\w$]+)/);return ie?ie[1]:null}function se($,ie){if($.indexOf)return $.indexOf(ie);for(var Re=0,ke=$.length;Reie.maxStringLength){var Re=$.length-ie.maxStringLength,ke="... "+Re+" more character"+(Re>1?"s":"");return fe(y.call($,0,ie.maxStringLength),ie)+ke}var Le=v.call(v.call($,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,Be);return M(Le,"single",ie)}function Be($){var ie=$.charCodeAt(0),Re={8:"b",9:"t",10:"n",12:"f",13:"r"}[ie];return Re?"\\"+Re:"\\x"+(ie<16?"0":"")+A.call(ie.toString(16))}function o($){return"Object("+$+")"}function u($){return $+" { ? }"}function m($,ie,Re,ke){var Le=ke?K(Re,ke):I.call(Re,", ");return $+" ("+ie+") {"+Le+"}"}function T($){for(var ie=0;ie<$.length;ie++)if(se($[ie],` +`)>=0)return!1;return!0}function N($,ie){var Re;if($.indent===" ")Re=" ";else if(typeof $.indent=="number"&&$.indent>0)Re=I.call(Array($.indent+1)," ");else return null;return{base:Re,prev:I.call(Array(ie+1),Re)}}function K($,ie){if($.length===0)return"";var Re=` +`+ie.prev+ie.base;return Re+I.call($,","+Re)+` +`+ie.prev}function de($,ie){var Re=Z($),ke=[];if(Re){ke.length=$.length;for(var Le=0;Le<$.length;Le++)ke[Le]=pe($,Le)?ie($[Le],$):""}var Ue=typeof P=="function"?P($):[],Xe;if(G){Xe={};for(var Fe=0;Fe1;){var x=S.pop(),y=x.obj[x.prop];if(s(y)){for(var v=[],A=0;A=i?_.slice(w,w+i):_,k=[],j=0;j=48&&U<=57||U>=65&&U<=90||U>=97&&U<=122||A===f.RFC1738&&(U===40||U===41)){k[k.length]=I.charAt(j);continue}if(U<128){k[k.length]=a[U];continue}if(U<2048){k[k.length]=a[192|U>>6]+a[128|U&63];continue}if(U<55296||U>=57344){k[k.length]=a[224|U>>12]+a[128|U>>6&63]+a[128|U&63];continue}j+=1,U=65536+((U&1023)<<10|I.charCodeAt(j)&1023),k[k.length]=a[240|U>>18]+a[128|U>>12&63]+a[128|U>>6&63]+a[128|U&63]}C+=k.join("")}return C},d=function(S){for(var x=[{obj:{o:S},prop:"o"}],y=[],v=0;v"u"&&(V=0)}if(typeof k=="function"?te=k(x,te):te instanceof Date?te=P(te):y==="comma"&&n(te)&&(te=h.maybeMap(te,function(L){return L instanceof Date?P(L):L})),te===null){if(_)return I&&!q?I(x,l.encoder,he,"key",z):x;te=""}if(d(te)||h.isBuffer(te)){if(I){var ee=q?x:I(x,l.encoder,he,"key",z);return[G(ee)+"="+G(I(te,l.encoder,he,"value",z))]}return[G(x)+"="+G(String(te))]}var Z=[];if(typeof te>"u")return Z;var ue;if(y==="comma"&&n(te))q&&I&&(te=h.maybeMap(te,I)),ue=[{value:te.length>0?te.join(",")||null:void 0}];else if(n(k))ue=k;else{var Ae=Object.keys(te);ue=j?Ae.sort(j):Ae}var Y=w?x.replace(/\./g,"%2E"):x,W=v&&n(te)&&te.length===1?Y+"[]":Y;if(A&&n(te)&&te.length===0)return W+"[]";for(var oe=0;oe"u"?E.encodeDotInKeys===!0?!0:l.allowDots:!!E.allowDots;return{addQueryPrefix:typeof E.addQueryPrefix=="boolean"?E.addQueryPrefix:l.addQueryPrefix,allowDots:_,allowEmptyArrays:typeof E.allowEmptyArrays=="boolean"?!!E.allowEmptyArrays:l.allowEmptyArrays,arrayFormat:A,charset:S,charsetSentinel:typeof E.charsetSentinel=="boolean"?E.charsetSentinel:l.charsetSentinel,commaRoundTrip:E.commaRoundTrip,delimiter:typeof E.delimiter>"u"?l.delimiter:E.delimiter,encode:typeof E.encode=="boolean"?E.encode:l.encode,encodeDotInKeys:typeof E.encodeDotInKeys=="boolean"?E.encodeDotInKeys:l.encodeDotInKeys,encoder:typeof E.encoder=="function"?E.encoder:l.encoder,encodeValuesOnly:typeof E.encodeValuesOnly=="boolean"?E.encodeValuesOnly:l.encodeValuesOnly,filter:v,format:x,formatter:y,serializeDate:typeof E.serializeDate=="function"?E.serializeDate:l.serializeDate,skipNulls:typeof E.skipNulls=="boolean"?E.skipNulls:l.skipNulls,sort:typeof E.sort=="function"?E.sort:null,strictNullHandling:typeof E.strictNullHandling=="boolean"?E.strictNullHandling:l.strictNullHandling}};return zr=function(E,S){var x=E,y=b(S),v,A;typeof y.filter=="function"?(A=y.filter,x=A("",x)):n(y.filter)&&(A=y.filter,v=A);var _=[];if(typeof x!="object"||x===null)return"";var C=c[y.arrayFormat],w=C==="comma"&&y.commaRoundTrip;v||(v=Object.keys(x)),y.sort&&v.sort(y.sort);for(var I=f(),k=0;k0?P+U:""},zr}function Mc(){if(io)return Kr;io=!0;var f=Wa(),h=Object.prototype.hasOwnProperty,s=Array.isArray,a={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:f.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictDepth:!1,strictNullHandling:!1},c=function(p){return p.replace(/&#(\d+);/g,function(g,b){return String.fromCharCode(parseInt(b,10))})},n=function(p,g){return p&&typeof p=="string"&&g.comma&&p.indexOf(",")>-1?p.split(","):p},r="utf8=%26%2310003%3B",t="utf8=%E2%9C%93",e=function(p,g){var b={__proto__:null},E=g.ignoreQueryPrefix?p.replace(/^\?/,""):p;E=E.replace(/%5B/gi,"[").replace(/%5D/gi,"]");var S=g.parameterLimit===1/0?void 0:g.parameterLimit,x=E.split(g.delimiter,S),y=-1,v,A=g.charset;if(g.charsetSentinel)for(v=0;v-1&&(k=s(k)?[k]:k);var j=h.call(b,I);j&&g.duplicates==="combine"?b[I]=f.combine(b[I],k):(!j||g.duplicates==="last")&&(b[I]=k)}return b},i=function(p,g,b,E){for(var S=E?g:n(g,b),x=p.length-1;x>=0;--x){var y,v=p[x];if(v==="[]"&&b.parseArrays)y=b.allowEmptyArrays&&(S===""||b.strictNullHandling&&S===null)?[]:[].concat(S);else{y=b.plainObjects?Object.create(null):{};var A=v.charAt(0)==="["&&v.charAt(v.length-1)==="]"?v.slice(1,-1):v,_=b.decodeDotInKeys?A.replace(/%2E/g,"."):A,C=parseInt(_,10);!b.parseArrays&&_===""?y={0:S}:!isNaN(C)&&v!==_&&String(C)===_&&C>=0&&b.parseArrays&&C<=b.arrayLimit?(y=[],y[C]=S):_!=="__proto__"&&(y[_]=S)}S=y}return S},l=function(p,g,b,E){if(p){var S=b.allowDots?p.replace(/\.([^.[]+)/g,"[$1]"):p,x=/(\[[^[\]]*])/,y=/(\[[^[\]]*])/g,v=b.depth>0&&x.exec(S),A=v?S.slice(0,v.index):S,_=[];if(A){if(!b.plainObjects&&h.call(Object.prototype,A)&&!b.allowPrototypes)return;_.push(A)}for(var C=0;b.depth>0&&(v=y.exec(S))!==null&&C"u"?a.charset:p.charset,b=typeof p.duplicates>"u"?a.duplicates:p.duplicates;if(b!=="combine"&&b!=="first"&&b!=="last")throw new TypeError("The duplicates option must be either combine, first, or last");var E=typeof p.allowDots>"u"?p.decodeDotInKeys===!0?!0:a.allowDots:!!p.allowDots;return{allowDots:E,allowEmptyArrays:typeof p.allowEmptyArrays=="boolean"?!!p.allowEmptyArrays:a.allowEmptyArrays,allowPrototypes:typeof p.allowPrototypes=="boolean"?p.allowPrototypes:a.allowPrototypes,allowSparse:typeof p.allowSparse=="boolean"?p.allowSparse:a.allowSparse,arrayLimit:typeof p.arrayLimit=="number"?p.arrayLimit:a.arrayLimit,charset:g,charsetSentinel:typeof p.charsetSentinel=="boolean"?p.charsetSentinel:a.charsetSentinel,comma:typeof p.comma=="boolean"?p.comma:a.comma,decodeDotInKeys:typeof p.decodeDotInKeys=="boolean"?p.decodeDotInKeys:a.decodeDotInKeys,decoder:typeof p.decoder=="function"?p.decoder:a.decoder,delimiter:typeof p.delimiter=="string"||f.isRegExp(p.delimiter)?p.delimiter:a.delimiter,depth:typeof p.depth=="number"||p.depth===!1?+p.depth:a.depth,duplicates:b,ignoreQueryPrefix:p.ignoreQueryPrefix===!0,interpretNumericEntities:typeof p.interpretNumericEntities=="boolean"?p.interpretNumericEntities:a.interpretNumericEntities,parameterLimit:typeof p.parameterLimit=="number"?p.parameterLimit:a.parameterLimit,parseArrays:p.parseArrays!==!1,plainObjects:typeof p.plainObjects=="boolean"?p.plainObjects:a.plainObjects,strictDepth:typeof p.strictDepth=="boolean"?!!p.strictDepth:a.strictDepth,strictNullHandling:typeof p.strictNullHandling=="boolean"?p.strictNullHandling:a.strictNullHandling}};return Kr=function(p,g){var b=d(g);if(p===""||p===null||typeof p>"u")return b.plainObjects?Object.create(null):{};for(var E=typeof p=="string"?e(p,b):p,S=b.plainObjects?Object.create(null):{},x=Object.keys(E),y=0;y",'"',"`"," ","\r",` +`," "],r=["{","}","|","\\","^","`"].concat(n),t=["'"].concat(r),e=["%","/","?",";","#"].concat(t),i=["/","?","#"],l=255,d=/^[+a-z0-9A-Z_-]{0,63}$/,p=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,g={javascript:!0,"javascript:":!0},b={javascript:!0,"javascript:":!0},E={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},S=Bc();function x(_,C,w){if(_&&typeof _=="object"&&_ instanceof h)return _;var I=new h;return I.parse(_,C,w),I}h.prototype.parse=function(_,C,w){if(typeof _!="string")throw new TypeError("Parameter 'url' must be a string, not "+typeof _);var I=_.indexOf("?"),k=I!==-1&&I<_.indexOf("#")?"?":"#",j=_.split(k),U=/\\/g;j[0]=j[0].replace(U,"/"),_=j.join(k);var P=_;if(P=P.trim(),!w&&_.split("#").length===1){var z=c.exec(P);if(z)return this.path=P,this.href=P,this.pathname=z[1],z[2]?(this.search=z[2],C?this.query=S.parse(this.search.substr(1)):this.query=this.search.substr(1)):C&&(this.search="",this.query={}),this}var G=s.exec(P);if(G){G=G[0];var q=G.toLowerCase();this.protocol=q,P=P.substr(G.length)}if(w||G||P.match(/^\/\/[^@/]+@[^@/]+/)){var he=P.substr(0,2)==="//";he&&!(G&&b[G])&&(P=P.substr(2),this.slashes=!0)}if(!b[G]&&(he||G&&!E[G])){for(var ne=-1,te=0;te127?Ae+="x":Ae+=ue[Y];if(!Ae.match(d)){var oe=ee.slice(0,te),X=ee.slice(te+1),J=ue.match(p);J&&(oe.push(J[1]),X.unshift(J[2])),X.length&&(P="/"+X.join(".")+P),this.hostname=oe.join(".");break}}}this.hostname.length>l?this.hostname="":this.hostname=this.hostname.toLowerCase(),M||(this.hostname=f.toASCII(this.hostname));var re=this.port?":"+this.port:"",we=this.hostname||"";this.host=we+re,this.href+=this.host,M&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),P[0]!=="/"&&(P="/"+P))}if(!g[q])for(var te=0,Z=t.length;te0?w.host.split("@"):!1;Ae&&(w.auth=Ae.shift(),w.hostname=Ae.shift(),w.host=w.hostname)}return w.search=_.search,w.query=_.query,(w.pathname!==null||w.search!==null)&&(w.path=(w.pathname?w.pathname:"")+(w.search?w.search:"")),w.href=w.format(),w}if(!ee.length)return w.pathname=null,w.search?w.path="/"+w.search:w.path=null,w.href=w.format(),w;for(var Y=ee.slice(-1)[0],W=(w.host||_.host||ee.length>1)&&(Y==="."||Y==="..")||Y==="",oe=0,X=ee.length;X>=0;X--)Y=ee[X],Y==="."?ee.splice(X,1):Y===".."?(ee.splice(X,1),oe++):oe&&(ee.splice(X,1),oe--);if(!le&&!M)for(;oe--;oe)ee.unshift("..");le&&ee[0]!==""&&(!ee[0]||ee[0].charAt(0)!=="/")&&ee.unshift(""),W&&ee.join("/").substr(-1)!=="/"&&ee.push("");var J=ee[0]===""||ee[0]&&ee[0].charAt(0)==="/";if(ue){w.hostname=J?"":ee.length?ee.shift():"",w.host=w.hostname;var Ae=w.host&&w.host.indexOf("@")>0?w.host.split("@"):!1;Ae&&(w.auth=Ae.shift(),w.hostname=Ae.shift(),w.host=w.hostname)}return le=le||w.host&&ee.length,le&&!J&&ee.unshift(""),ee.length>0?w.pathname=ee.join("/"):(w.pathname=null,w.path=null),(w.pathname!==null||w.search!==null)&&(w.path=(w.pathname?w.pathname:"")+(w.search?w.search:"")),w.auth=_.auth||w.auth,w.slashes=w.slashes||_.slashes,w.href=w.format(),w},h.prototype.parseHost=function(){var _=this.host,C=a.exec(_);C&&(C=C[0],C!==":"&&(this.port=C.substr(1)),_=_.substr(0,_.length-C.length)),_&&(this.hostname=_)},$t.parse=x,$t.resolve=v,$t.resolveObject=A,$t.format=y,$t.Url=h,$t}function $a(f){if(typeof f=="string")f=new URL(f);else if(!(f instanceof URL))throw new Deno.errors.InvalidData("invalid argument path , must be a string or URL");if(f.protocol!=="file:")throw new Deno.errors.InvalidData("invalid url scheme");return Qr?Uc(f):Lc(f)}function Uc(f){let h=f.hostname,s=f.pathname;for(let a=0;ael||c!==":")throw new Deno.errors.InvalidData("file url path must be absolute");return s.slice(1)}}function Lc(f){if(f.hostname!=="")throw new Deno.errors.InvalidData("invalid file url hostname");let h=f.pathname;for(let s=0;s{ge(),me(),ye(),rc(),bc(),Tc(),Da(),Va=Object.freeze(Object.create(null)),Fr={},Zi=!1,Wr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:global,$r={},eo=!1,qr={},to=!1,Vr={},ro=!1,zr={},no=!1,Kr={},io=!1,Hr={},oo=!1,$t={},so=!1,ft=Nc(),ft.parse,ft.resolve,ft.resolveObject,ft.format,ft.Url,Ts=typeof Deno<"u"?Deno.build.os==="windows"?"win32":Deno.build.os:void 0,ft.URL=typeof URL<"u"?URL:null,ft.pathToFileURL=qa,ft.fileURLToPath=$a,za=ft.Url,Ka=ft.format,Ha=ft.resolve,Ga=ft.resolveObject,Qa=ft.parse,Ya=ft.URL,Ja=92,Xa=47,Za=97,el=122,Qr=Ts==="win32",tl=/\//g,rl=/%/g,nl=/\\/g,il=/\n/g,ol=/\r/g,sl=/\t/g}),Fc=Se((f,h)=>{ge(),me(),ye(),h.exports=function(){throw new Error("ws does not work in the browser. Browser clients must use the native WebSocket object")}}),wo=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0}),f.BufferedDuplex=void 0,f.writev=a;var h=tr(),s=(st(),Ke(ot));function a(n,r){let t=new Array(n.length);for(let e=0;e{!this.destroyed&&this.readable&&this.push(e)})}_read(n){this.proxy.read(n)}_write(n,r,t){this.isSocketOpen?this.writeToProxy(n,r,t):this.writeQueue.push({chunk:n,encoding:r,cb:t})}_final(n){this.writeQueue=[],this.proxy.end(n)}_destroy(n,r){this.writeQueue=[],this.proxy.destroy(),r(n)}socketReady(){this.emit("connect"),this.isSocketOpen=!0,this.processWriteQueue()}writeToProxy(n,r,t){this.proxy.write(n,r)===!1?this.proxy.once("drain",t):t()}processWriteQueue(){for(;this.writeQueue.length>0;){let{chunk:n,encoding:r,cb:t}=this.writeQueue.shift();this.writeToProxy(n,r,t)}}};f.BufferedDuplex=c}),wr=Se(f=>{ge(),me(),ye();var h=f&&f.__importDefault||function(x){return x&&x.__esModule?x:{default:x}};Object.defineProperty(f,"__esModule",{value:!0}),f.streamBuilder=f.browserStreamBuilder=void 0;var s=(st(),Ke(ot)),a=h(Fc()),c=h(Tt()),n=tr(),r=h(tn()),t=wo(),e=(0,c.default)("mqttjs:ws"),i=["rejectUnauthorized","ca","cert","key","pfx","passphrase"];function l(x,y){let v=`${x.protocol}://${x.hostname}:${x.port}${x.path}`;return typeof x.transformWsUrl=="function"&&(v=x.transformWsUrl(v,x,y)),v}function d(x){let y=x;return x.port||(x.protocol==="wss"?y.port=443:y.port=80),x.path||(y.path="/"),x.wsOptions||(y.wsOptions={}),!r.default&&!x.forceNativeWebSocket&&x.protocol==="wss"&&i.forEach(v=>{Object.prototype.hasOwnProperty.call(x,v)&&!Object.prototype.hasOwnProperty.call(x.wsOptions,v)&&(y.wsOptions[v]=x[v])}),y}function p(x){let y=d(x);if(y.hostname||(y.hostname=y.host),!y.hostname){if(typeof document>"u")throw new Error("Could not determine host. Specify host manually.");let v=new URL(document.URL);y.hostname=v.hostname,y.port||(y.port=Number(v.port))}return y.objectMode===void 0&&(y.objectMode=!(y.binary===!0||y.binary===void 0)),y}function g(x,y,v){e("createWebSocket"),e(`protocol: ${v.protocolId} ${v.protocolVersion}`);let A=v.protocolId==="MQIsdp"&&v.protocolVersion===3?"mqttv3.1":"mqtt";e(`creating new Websocket for url: ${y} and protocol: ${A}`);let _;return v.createWebsocket?_=v.createWebsocket(y,[A],v):_=new a.default(y,[A],v.wsOptions),_}function b(x,y){let v=y.protocolId==="MQIsdp"&&y.protocolVersion===3?"mqttv3.1":"mqtt",A=l(y,x),_;return y.createWebsocket?_=y.createWebsocket(A,[v],y):_=new WebSocket(A,[v]),_.binaryType="arraybuffer",_}var E=(x,y)=>{e("streamBuilder");let v=d(y);v.hostname=v.hostname||v.host||"localhost";let A=l(v,x),_=g(x,A,v),C=a.default.createWebSocketStream(_,v.wsOptions);return C.url=A,_.on("close",()=>{C.destroy()}),C};f.streamBuilder=E;var S=(x,y)=>{e("browserStreamBuilder");let v,A=p(y).browserBufferSize||1024*512,_=y.browserBufferTimeout||1e3,C=!y.objectMode,w=b(x,y),I=j(y,q,he);y.objectMode||(I._writev=t.writev.bind(I)),I.on("close",()=>{w.close()});let k=typeof w.addEventListener<"u";w.readyState===w.OPEN?(v=I,v.socket=w):(v=new t.BufferedDuplex(y,I,w),k?w.addEventListener("open",U):w.onopen=U),k?(w.addEventListener("close",P),w.addEventListener("error",z),w.addEventListener("message",G)):(w.onclose=P,w.onerror=z,w.onmessage=G);function j(ne,te,ce){let V=new n.Transform({objectMode:ne.objectMode});return V._write=te,V._flush=ce,V}function U(){e("WebSocket onOpen"),v instanceof t.BufferedDuplex&&v.socketReady()}function P(ne){e("WebSocket onClose",ne),v.end(),v.destroy()}function z(ne){e("WebSocket onError",ne);let te=new Error("WebSocket error");te.event=ne,v.destroy(te)}async function G(ne){if(!I||I.destroyed||!I.readable)return;let{data:te}=ne;te instanceof ArrayBuffer?te=s.Buffer.from(te):te instanceof Blob?te=s.Buffer.from(await new Response(te).arrayBuffer()):te=s.Buffer.from(te,"utf8"),I.push(te)}function q(ne,te,ce){if(w.bufferedAmount>A){setTimeout(q,_,ne,te,ce);return}C&&typeof ne=="string"&&(ne=s.Buffer.from(ne,"utf8"));try{w.send(ne)}catch(V){return ce(V)}ce()}function he(ne){w.close(),ne()}return v};f.browserStreamBuilder=S}),_o={};or(_o,{Server:()=>Je,Socket:()=>Je,Stream:()=>Je,_createServerHandle:()=>Je,_normalizeArgs:()=>Je,_setSimultaneousAccepts:()=>Je,connect:()=>Je,createConnection:()=>Je,createServer:()=>Je,default:()=>al,isIP:()=>Je,isIPv4:()=>Je,isIPv6:()=>Je});function Je(){throw new Error("Node.js net module is not supported by JSPM core outside of Node.js")}var al,ll=yt(()=>{ge(),me(),ye(),al={_createServerHandle:Je,_normalizeArgs:Je,_setSimultaneousAccepts:Je,connect:Je,createConnection:Je,createServer:Je,isIP:Je,isIPv4:Je,isIPv6:Je,Server:Je,Socket:Je,Stream:Je}}),ul=Se((f,h)=>{ge(),me(),ye(),h.exports={}}),Cs=Se(f=>{ge(),me(),ye();var h=f&&f.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(f,"__esModule",{value:!0});var s=h((ll(),Ke(_o))),a=h(Tt()),c=h(ul()),n=(0,a.default)("mqttjs:tcp"),r=(t,e)=>{if(e.port=e.port||1883,e.hostname=e.hostname||e.host||"localhost",e.socksProxy)return(0,c.default)(e.hostname,e.port,e.socksProxy,{timeout:e.socksTimeout});let{port:i,path:l}=e,d=e.hostname;return n("port %d and host %s",i,d),s.default.createConnection({port:i,host:d,path:l})};f.default=r}),cl={};or(cl,{default:()=>hl});var hl,Wc=yt(()=>{ge(),me(),ye(),hl={}}),Rs=Se(f=>{ge(),me(),ye();var h=f&&f.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(f,"__esModule",{value:!0});var s=(Wc(),Ke(cl)),a=h((ll(),Ke(_o))),c=h(Tt()),n=h(ul()),r=(0,c.default)("mqttjs:tls");function t(i){let{host:l,port:d,socksProxy:p,...g}=i;if(p!==void 0){let b=(0,n.default)(l,d,p,{timeout:i.socksTimeout});return(0,s.connect)({...g,socket:b})}return(0,s.connect)(i)}var e=(i,l)=>{l.port=l.port||8883,l.host=l.hostname||l.host||"localhost",a.default.isIP(l.host)===0&&(l.servername=l.host),l.rejectUnauthorized=l.rejectUnauthorized!==!1,delete l.path,r("port %d host %s rejectUnauthorized %b",l.port,l.host,l.rejectUnauthorized);let d=t(l);d.on("secureConnect",()=>{l.rejectUnauthorized&&!d.authorized?d.emit("error",new Error("TLS not authorized")):d.removeListener("error",p)});function p(g){l.rejectUnauthorized&&i.emit("error",g),d.end()}return d.on("error",p),d};f.default=e}),js=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0});var h=(st(),Ke(ot)),s=tr(),a=wo(),c,n,r;function t(){let p=new s.Transform;return p._write=(g,b,E)=>{c.send({data:g.buffer,success(){E()},fail(S){E(new Error(S))}})},p._flush=g=>{c.close({success(){g()}})},p}function e(p){p.hostname||(p.hostname="localhost"),p.path||(p.path="/"),p.wsOptions||(p.wsOptions={})}function i(p,g){let b=p.protocol==="wxs"?"wss":"ws",E=`${b}://${p.hostname}${p.path}`;return p.port&&p.port!==80&&p.port!==443&&(E=`${b}://${p.hostname}:${p.port}${p.path}`),typeof p.transformWsUrl=="function"&&(E=p.transformWsUrl(E,p,g)),E}function l(){c.onOpen(()=>{r.socketReady()}),c.onMessage(p=>{let{data:g}=p;g instanceof ArrayBuffer?g=h.Buffer.from(g):g=h.Buffer.from(g,"utf8"),n.push(g)}),c.onClose(()=>{r.emit("close"),r.end(),r.destroy()}),c.onError(p=>{let g=new Error(p.errMsg);r.destroy(g)})}var d=(p,g)=>{if(g.hostname=g.hostname||g.host,!g.hostname)throw new Error("Could not determine host. Specify host manually.");let b=g.protocolId==="MQIsdp"&&g.protocolVersion===3?"mqttv3.1":"mqtt";e(g);let E=i(g,p);c=wx.connectSocket({url:E,protocols:[b]}),n=t(),r=new a.BufferedDuplex(g,n,c),r._destroy=(x,y)=>{c.close({success(){y&&y(x)}})};let S=r.destroy;return r.destroy=(x,y)=>(r.destroy=S,setTimeout(()=>{c.close({fail(){r._destroy(x,y)}})},0),r),l(),r};f.default=d}),Ms=Se(f=>{ge(),me(),ye(),Object.defineProperty(f,"__esModule",{value:!0});var h=(st(),Ke(ot)),s=tr(),a=wo(),c,n,r,t=!1;function e(){let g=new s.Transform;return g._write=(b,E,S)=>{c.sendSocketMessage({data:b.buffer,success(){S()},fail(){S(new Error)}})},g._flush=b=>{c.closeSocket({success(){b()}})},g}function i(g){g.hostname||(g.hostname="localhost"),g.path||(g.path="/"),g.wsOptions||(g.wsOptions={})}function l(g,b){let E=g.protocol==="alis"?"wss":"ws",S=`${E}://${g.hostname}${g.path}`;return g.port&&g.port!==80&&g.port!==443&&(S=`${E}://${g.hostname}:${g.port}${g.path}`),typeof g.transformWsUrl=="function"&&(S=g.transformWsUrl(S,g,b)),S}function d(){t||(t=!0,c.onSocketOpen(()=>{r.socketReady()}),c.onSocketMessage(g=>{if(typeof g.data=="string"){let b=h.Buffer.from(g.data,"base64");n.push(b)}else{let b=new FileReader;b.addEventListener("load",()=>{if(b.result instanceof ArrayBuffer){n.push(h.Buffer.from(b.result));return}n.push(h.Buffer.from(b.result,"utf-8"))}),b.readAsArrayBuffer(g.data)}}),c.onSocketClose(()=>{r.end(),r.destroy()}),c.onSocketError(g=>{r.destroy(g)}))}var p=(g,b)=>{if(b.hostname=b.hostname||b.host,!b.hostname)throw new Error("Could not determine host. Specify host manually.");let E=b.protocolId==="MQIsdp"&&b.protocolVersion===3?"mqttv3.1":"mqtt";i(b);let S=l(b,g);return c=b.my,c.connectSocket({url:S,protocols:E}),n=e(),r=new a.BufferedDuplex(b,n,c),d(),r};f.default=p}),$c=Se(f=>{ge(),me(),ye();var h=f&&f.__importDefault||function(d){return d&&d.__esModule?d:{default:d}};Object.defineProperty(f,"__esModule",{value:!0}),f.connectAsync=l;var s=h(Tt()),a=h((Dc(),Ke(Fa))),c=h(wi()),n=h(tn());typeof Ge?.nextTick!="function"&&(Ge.nextTick=setImmediate);var r=(0,s.default)("mqttjs"),t=null;function e(d){let p;if(d.auth)if(p=d.auth.match(/^(.+):(.+)$/),p){let[,g,b]=p;d.username=g,d.password=b}else d.username=d.auth}function i(d,p){if(r("connecting to an MQTT broker..."),typeof d=="object"&&!p&&(p=d,d=""),p=p||{},d&&typeof d=="string"){let E=a.default.parse(d,!0),S={};if(E.port!=null&&(S.port=Number(E.port)),S.host=E.hostname,S.query=E.query,S.auth=E.auth,S.protocol=E.protocol,S.path=E.path,p={...S,...p},!p.protocol)throw new Error("Missing protocol");p.protocol=p.protocol.replace(/:$/,"")}if(p.unixSocket=p.unixSocket||p.protocol?.includes("+unix"),p.unixSocket?p.protocol=p.protocol.replace("+unix",""):!p.protocol?.startsWith("ws")&&!p.protocol?.startsWith("wx")&&delete p.path,e(p),p.query&&typeof p.query.clientId=="string"&&(p.clientId=p.query.clientId),n.default||p.unixSocket?p.socksProxy=void 0:p.socksProxy===void 0&&typeof Ge<"u"&&(p.socksProxy=Ge.env.MQTTJS_SOCKS_PROXY),p.cert&&p.key)if(p.protocol){if(["mqtts","wss","wxs","alis"].indexOf(p.protocol)===-1)switch(p.protocol){case"mqtt":p.protocol="mqtts";break;case"ws":p.protocol="wss";break;case"wx":p.protocol="wxs";break;case"ali":p.protocol="alis";break;default:throw new Error(`Unknown protocol for secure connection: "${p.protocol}"!`)}}else throw new Error("Missing secure protocol key");if(t||(t={},!n.default&&!p.forceNativeWebSocket?(t.ws=wr().streamBuilder,t.wss=wr().streamBuilder,t.mqtt=Cs().default,t.tcp=Cs().default,t.ssl=Rs().default,t.tls=t.ssl,t.mqtts=Rs().default):(t.ws=wr().browserStreamBuilder,t.wss=wr().browserStreamBuilder,t.wx=js().default,t.wxs=js().default,t.ali=Ms().default,t.alis=Ms().default)),!t[p.protocol]){let E=["mqtts","wss"].indexOf(p.protocol)!==-1;p.protocol=["mqtt","mqtts","ws","wss","wx","wxs","ali","alis"].filter((S,x)=>E&&x%2===0?!1:typeof t[S]=="function")[0]}if(p.clean===!1&&!p.clientId)throw new Error("Missing clientId for unclean clients");p.protocol&&(p.defaultProtocol=p.protocol);function g(E){return p.servers&&((!E._reconnectCount||E._reconnectCount===p.servers.length)&&(E._reconnectCount=0),p.host=p.servers[E._reconnectCount].host,p.port=p.servers[E._reconnectCount].port,p.protocol=p.servers[E._reconnectCount].protocol?p.servers[E._reconnectCount].protocol:p.defaultProtocol,p.hostname=p.host,E._reconnectCount++),r("calling streambuilder for",p.protocol),t[p.protocol](E,p)}let b=new c.default(g,p);return b.on("error",()=>{}),b}function l(d,p,g=!0){return new Promise((b,E)=>{let S=i(d,p),x={connect:v=>{y(),b(S)},end:()=>{y(),b(S)},error:v=>{y(),S.end(),E(v)}};g===!1&&(x.close=()=>{x.error(new Error("Couldn't connect to server"))});function y(){Object.keys(x).forEach(v=>{S.off(v,x[v])})}Object.keys(x).forEach(v=>{S.on(v,x[v])})})}f.default=i}),Bs=Se(f=>{ge(),me(),ye();var h=f&&f.__createBinding||(Object.create?function(g,b,E,S){S===void 0&&(S=E);var x=Object.getOwnPropertyDescriptor(b,E);(!x||("get"in x?!b.__esModule:x.writable||x.configurable))&&(x={enumerable:!0,get:function(){return b[E]}}),Object.defineProperty(g,S,x)}:function(g,b,E,S){S===void 0&&(S=E),g[S]=b[E]}),s=f&&f.__setModuleDefault||(Object.create?function(g,b){Object.defineProperty(g,"default",{enumerable:!0,value:b})}:function(g,b){g.default=b}),a=f&&f.__importStar||(function(){var g=function(b){return g=Object.getOwnPropertyNames||function(E){var S=[];for(var x in E)Object.prototype.hasOwnProperty.call(E,x)&&(S[S.length]=x);return S},g(b)};return function(b){if(b&&b.__esModule)return b;var E={};if(b!=null)for(var S=g(b),x=0;x{ge(),me(),ye();var h=f&&f.__createBinding||(Object.create?function(r,t,e,i){i===void 0&&(i=e);var l=Object.getOwnPropertyDescriptor(t,e);(!l||("get"in l?!t.__esModule:l.writable||l.configurable))&&(l={enumerable:!0,get:function(){return t[e]}}),Object.defineProperty(r,i,l)}:function(r,t,e,i){i===void 0&&(i=e),r[i]=t[e]}),s=f&&f.__setModuleDefault||(Object.create?function(r,t){Object.defineProperty(r,"default",{enumerable:!0,value:t})}:function(r,t){r.default=t}),a=f&&f.__importStar||(function(){var r=function(t){return r=Object.getOwnPropertyNames||function(e){var i=[];for(var l in e)Object.prototype.hasOwnProperty.call(e,l)&&(i[i.length]=l);return i},r(t)};return function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var i=r(t),l=0;l *) @@ -15,5 +15,5 @@ safe-buffer/index.js: @babel/runtime/helpers/regenerator.js: (*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE *) -*/const Hc=Bl("mqtt",()=>{let f;const h={protocol:location.protocol=="https:"?"wss":"ws",host:location.hostname,port:parseInt(location.port)||(location.protocol=="https:"?443:80),endpoint:"/ws",connectTimeout:4e3,reconnectPeriod:4e3},s=Io({}),a=Io({});function c(){const{protocol:I,host:P,port:ae,endpoint:xe,...Ce}=h,Ve=`${I}://${P}:${ae}${xe}`;console.debug("connecting to broker:",Ve);try{f=Vc.connect(Ve,Ce),f.on("connect",()=>{console.debug("connected to broker")}),f.on("error",et=>{console.error("Client error",et)}),f.on("message",(et,vt)=>{if(console.debug(`Received message "${vt}" from topic "${et}"`),vt.toString().length>0){let ut;try{ut=JSON.parse(vt.toString())}catch(Bt){console.debug("Json parsing failed, fallback to string",et,Bt),ut=vt.toString()}r(et,ut)}else e(et)})}catch(et){console.error("error connecting to broker:",et)}}function n(I,P=void 0){I.includes("#")||I.includes("+")?console.debug("skipping init of wildcard topic:",I):r(I,P)}function r(I,P){console.debug("addTopic",I,P),a.value[I]=P}function t(I,P,ae=void 0,xe=!1){const Ce=(Ve,et,vt)=>{const ut=et.split(".");ut.reduce((Bt,Gt,Ao)=>Ao===ut.length-1?(Bt[Gt]=vt,vt):Bt[Gt],Ve)};I in a.value?(ae!=null?Ce(a.value[I],ae,P):a.value[I]=P,xe&&(console.debug("publish topic",I,a.value[I]),b(I,a.value[I]))):console.warn("topic not found",I)}function e(I){I.includes("#")||I.includes("+")?(console.debug("expanding wildcard topic for removal:",I),Object.keys(x.value(I)).forEach(P=>{console.debug("removing wildcardTopic:",P),delete a.value[P]})):delete a.value[I]}function i(I,P=void 0){Array.isArray(I)||(I=[I]),I.forEach(ae=>{d(ae)==1&&(n(ae,P),f?f.subscribe(I,{},xe=>{xe&&console.error("Subscribe to topics error",xe)}):console.error("mqttClient is not initialized"))})}function l(I){Array.isArray(I)||(I=[I]),I.forEach(P=>{p(P)<=0&&(e(P),f?f.unsubscribe(P,ae=>{ae&&console.error("Unsubscribe error",ae)}):console.error("mqttClient is not initialized"))})}function d(I){return I in s.value?s.value[I]+=1:s.value[I]=1,console.debug("subscription count for topic",I,s.value[I]),s.value[I]}function p(I){let P=0;return I in s.value&&(P=s.value[I]-=1,s.value[I]<=0&&delete s.value[I]),console.debug("subscription count for topic",I,s.value[I]),P}function g(I,P,ae=!0,xe=2){if(console.debug("doPublish",I,P),!f){console.error("mqttClient is not initialized");return}const Ce={qos:xe,retain:ae};f.publish(I,JSON.stringify(P),Ce,Ve=>{Ve&&console.error("Publish error",Ve)})}function b(I,P=void 0){const ae=I.replace("openWB/","openWB/set/");P===void 0&&(P=a.value[I]),g(ae,P)}function E(I){g("openWB/set/command/"+f?.options.clientId+"/todo",I,!1)}function S(I,P={}){E({command:I,data:P})}const x=Ie(()=>(I,P=!1)=>{let ae=I;return P?console.warn("auto subscription of regex topic not possible",I):(ae="^"+I.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$",Object.keys(s.value).includes(I)||(console.debug("auto subscription of wildcard topic",I),i(I))),Object.keys(a.value).filter(xe=>xe.match(ae)).reduce((xe,Ce)=>({...xe,[Ce]:a.value[Ce]}),{})}),y=Ie(()=>I=>{function P(ae){let xe=[];return ae!==void 0&&ae.forEach(Ce=>{Ce.type==I&&xe.push(Ce.id),xe=[...xe,...P(Ce.children)]}),xe}return P(v.value("openWB/counter/get/hierarchy"))}),v=Ie(()=>(I,P=void 0,ae=void 0)=>{I in s.value||(console.debug("auto subscription of topic",I),i(I,ae));let xe=a.value[I];if(P==null||xe==null)return xe;const Ce=P.split(".");for(let Ve=0;Ve(I,P="W",ae="",xe=!0,Ce=!1,Ve="---",et=0)=>{let vt=!1,ut=I,Bt=Ve;if(I===void 0)console.debug("value is undefined! using default",I,Ve);else{for(Ce&&(ut=I*=-1),Bt=I.toLocaleString(void 0,{minimumFractionDigits:0,maximumFractionDigits:0});xe&&(ut>999||ut<-999);)switch(ut=ut/1e3,vt=!0,ae){case"":ae="k";break;case"k":ae="M";break;case"M":ae="G";break}let Gt=0;vt?Gt=et>0?et:2:Gt=ut!==Math.floor(ut)?et:0,Bt=ut.toLocaleString(void 0,{minimumFractionDigits:Gt,maximumFractionDigits:Gt})}return{textValue:`${Bt} ${ae}${P}`,value:I,unit:P,scaledValue:ut,scaledUnit:`${ae}${P}`}}),_=Ie(()=>v.value("openWB/general/web_theme","configuration")),R=Ie(()=>v.value("openWB/system/version")),w=Ie(()=>v.value("openWB/system/ip_address")),O=Ie(()=>v.value("openWB/system/current_branch")),T=Ie(()=>v.value("openWB/system/current_commit")),M=Ie(()=>(I="Date")=>{const P=v.value("openWB/system/time");if(P==null)return;const ae=new Date(P*1e3);switch(I){case"locale-string":return ae.toLocaleString();case"number":return ae.getTime();case"date":default:return ae}}),U=Ie(()=>y.value("cp")),k=Ie(()=>I=>v.value(`openWB/chargepoint/${I}/config`,"name")),z=I=>Ie({get(){return v.value(`openWB/chargepoint/${I}/set/manual_lock`)},set(P){return t(`openWB/chargepoint/${I}/set/manual_lock`,P,void 0,!0)}}),G=Ie(()=>I=>v.value(`openWB/chargepoint/${I}/get/plug_state`)||!1),q=Ie(()=>I=>v.value(`openWB/chargepoint/${I}/get/charge_state`)||!1),he=Ie(()=>(I="textValue")=>{const P=v.value("openWB/chargepoint/get/power",void 0,0)||0,ae=A.value(P);if(Object.hasOwn(ae,I))return ae[I];if(I=="object")return ae;console.error("returnType not found!",I,P)}),ne=Ie(()=>(I,P="textValue")=>{const ae=v.value(`openWB/chargepoint/${I}/get/power`,void 0,0)||0,xe=A.value(ae);if(Object.hasOwn(xe,P))return xe[P];if(P=="object")return xe;console.error("returnType not found!",P,ae)}),te=Ie(()=>(I,P="textValue")=>{const ae=v.value(`openWB/chargepoint/${I}/get/energy_charged`,void 0,0)||0,xe=A.value(ae,"Wh");if(Object.hasOwn(xe,P))return xe[P];if(P=="object")return xe;console.error("returnType not found!",P,ae)}),ce=Ie(()=>(I,P="textValue")=>{const ae=v.value(`openWB/chargepoint/${I}/set/log`,"imported_since_plugged")||0,xe=A.value(ae,"Wh");if(Object.hasOwn(xe,P))return xe[P];if(P=="object")return xe;console.error("returnType not found!",P,ae)}),V=Ie(()=>I=>v.value(`openWB/chargepoint/${I}/get/phases_in_use`)||0),le=Ie(()=>(I,P="textValue")=>{const ae=v.value(`openWB/chargepoint/${I}/set/current`)||0,xe=A.value(ae,"A","",!0,!1,"---",2);if(Object.hasOwn(xe,P))return xe[P];console.error("returnType not found!",P,ae)}),B=Ie(()=>I=>v.value(`openWB/chargepoint/${I}/get/state_str`)),ee=Ie(()=>I=>v.value(`openWB/chargepoint/${I}/get/fault_str`)),Z=Ie(()=>I=>v.value(`openWB/chargepoint/${I}/get/fault_state`)||0),ue=I=>{const P=Ae(I).value?.id;P!==void 0&&Ht(P)},Ae=I=>Ie({get(){return v.value(`openWB/chargepoint/${I}/get/connected_vehicle/info`)},set(P){t(`openWB/chargepoint/${I}/get/connected_vehicle/info`,P,void 0,!1),b(`openWB/chargepoint/${I}/config/ev`,P.id)}}),Y=I=>Ie({get(){return je(I).value?.chargemode?.selected},set(P){return console.debug("set charge mode",P,I),t(`openWB/chargepoint/${I}/set/charge_template`,P,"chargemode.selected",!0)}}),W=I=>Ie({get(){return je(I).value?.chargemode?.instant_charging?.current},set(P){return console.debug("set instant charging current",P,I),t(`openWB/chargepoint/${I}/set/charge_template`,P,"chargemode.instant_charging.current",!0)}}),oe=Ie(()=>v.value("openWB/optional/dc_charging")||0),X=I=>Math.round(I*3*230/1e3),J=I=>Math.round(I*1e3/690),re=I=>Ie({get(){const P=je(I).value?.chargemode?.instant_charging?.dc_current;return P!==void 0?X(P):0},set(P){console.debug("set instant charging power",P,I);const ae=J(P);return t(`openWB/chargepoint/${I}/set/charge_template`,ae,"chargemode.instant_charging.dc_current",!0)}}),we=I=>Ie({get(){return je(I).value?.chargemode?.instant_charging?.phases_to_use},set(P){return console.debug("set instant charging phases",P,I),t(`openWB/chargepoint/${I}/set/charge_template`,P,"chargemode.instant_charging.phases_to_use",!0)}}),pe=I=>Ie({get(){return je(I).value?.chargemode?.instant_charging?.limit?.selected},set(P){return console.debug("set instant charging limit",P,I),t(`openWB/chargepoint/${I}/set/charge_template`,P,"chargemode.instant_charging.limit.selected",!0)}}),L=I=>Ie({get(){return je(I).value?.chargemode?.instant_charging?.limit?.soc},set(P){return console.debug("set instant SoC limit",P,I),t(`openWB/chargepoint/${I}/set/charge_template`,P,"chargemode.instant_charging.limit.soc",!0)}}),H=I=>Ie({get(){const P=je(I).value?.chargemode?.instant_charging?.limit?.amount;return P===void 0?void 0:A.value(P,"Wh","",!0).scaledValue},set(P){return console.debug("set instant energy limit",P,I),t(`openWB/chargepoint/${I}/set/charge_template`,P*1e3,"chargemode.instant_charging.limit.amount",!0)}}),se=I=>Ie({get(){return je(I).value?.chargemode?.pv_charging?.min_current},set(P){return console.debug("set pv min current",P,I),t(`openWB/chargepoint/${I}/set/charge_template`,P,"chargemode.pv_charging.min_current",!0)}}),be=I=>Ie({get(){const P=je(I).value?.chargemode?.pv_charging?.dc_min_current;return P!==void 0?X(P):0},set(P){console.debug("set instant charging power",P,I);const ae=J(P);return t(`openWB/chargepoint/${I}/set/charge_template`,ae,"chargemode.pv_charging.dc_min_current",!0)}}),ve=I=>Ie({get(){const P=je(I).value?.chargemode?.pv_charging?.dc_min_soc_current;return P!==void 0?Math.round(P*3*230/1e3):0},set(P){console.debug("set instant charging power",P,I);const ae=P*1e3/230/3;return t(`openWB/chargepoint/${I}/set/charge_template`,ae,"chargemode.pv_charging.dc_min_soc_current",!0)}}),Ee=I=>Ie({get(){return je(I).value?.chargemode?.pv_charging?.min_soc},set(P){return console.debug("set pv min SoC",P,I),t(`openWB/chargepoint/${I}/set/charge_template`,P,"chargemode.pv_charging.min_soc",!0)}}),Q=I=>Ie({get(){return je(I).value?.chargemode?.pv_charging?.min_soc_current},set(P){return console.debug("set pv min SoC Current",P,I),t(`openWB/chargepoint/${I}/set/charge_template`,P,"chargemode.pv_charging.min_soc_current",!0)}}),_e=I=>Ie({get(){return je(I).value?.chargemode?.pv_charging?.phases_to_use},set(P){return console.debug("set pv charging phases",P,I),t(`openWB/chargepoint/${I}/set/charge_template`,P,"chargemode.pv_charging.phases_to_use",!0)}}),Oe=I=>Ie({get(){return je(I).value?.chargemode?.pv_charging?.phases_to_use_min_soc},set(P){return console.debug("set pv charging phases min soc",P,I),t(`openWB/chargepoint/${I}/set/charge_template`,P,"chargemode.pv_charging.phases_to_use_min_soc",!0)}}),fe=I=>Ie({get(){return je(I).value?.chargemode?.pv_charging?.limit?.selected},set(P){return console.debug("set pv charging limit",P,I),t(`openWB/chargepoint/${I}/set/charge_template`,P,"chargemode.pv_charging.limit.selected",!0)}}),Be=I=>Ie({get(){return je(I).value?.chargemode?.pv_charging?.limit?.soc},set(P){return console.debug("set pv SoC limit",P,I),t(`openWB/chargepoint/${I}/set/charge_template`,P,"chargemode.pv_charging.limit.soc",!0)}}),o=I=>Ie({get(){const P=je(I).value?.chargemode?.pv_charging?.limit?.amount;return P===void 0?void 0:A.value(P,"Wh","",!0).scaledValue},set(P){return console.debug("set pv energy limit",P,I),t(`openWB/chargepoint/${I}/set/charge_template`,P*1e3,"chargemode.pv_charging.limit.amount",!0)}}),u=I=>Ie({get(){return je(I).value?.chargemode?.pv_charging?.feed_in_limit},set(P){return console.debug("set pv feed in limit active",P,I),t(`openWB/chargepoint/${I}/set/charge_template`,P,"chargemode.pv_charging.feed_in_limit",!0)}}),m=I=>Ie({get(){return je(I).value?.chargemode?.eco_charging?.current},set(P){return console.debug("set eco current",P,I),t(`openWB/chargepoint/${I}/set/charge_template`,P,"chargemode.eco_charging.current",!0)}}),C=I=>Ie({get(){const P=je(I).value?.chargemode?.eco_charging?.dc_current;return P!==void 0?X(P):0},set(P){console.debug("set eco power",P,I);const ae=J(P);return t(`openWB/chargepoint/${I}/set/charge_template`,ae,"chargemode.eco_charging.dc_current",!0)}}),N=I=>Ie({get(){return je(I).value?.chargemode?.eco_charging?.phases_to_use},set(P){return console.debug("set eco charging phases",P,I),t(`openWB/chargepoint/${I}/set/charge_template`,P,"chargemode.eco_charging.phases_to_use",!0)}}),K=I=>Ie({get(){return je(I).value?.chargemode?.eco_charging?.limit?.selected},set(P){return console.debug("set eco charging limit",P,I),t(`openWB/chargepoint/${I}/set/charge_template`,P,"chargemode.eco_charging.limit.selected",!0)}}),de=I=>Ie({get(){return je(I).value?.chargemode?.eco_charging?.limit?.soc},set(P){return console.debug("set eco SoC limit",P,I),t(`openWB/chargepoint/${I}/set/charge_template`,P,"chargemode.eco_charging.limit.soc",!0)}}),$=I=>Ie({get(){const P=je(I).value?.chargemode?.eco_charging?.limit?.amount;return P===void 0?void 0:A.value(P,"Wh","",!0).scaledValue},set(P){return console.debug("set eco energy limit",P,I),t(`openWB/chargepoint/${I}/set/charge_template`,P*1e3,"chargemode.eco_charging.limit.amount",!0)}}),ie=I=>Ie({get(){const P=je(I).value?.chargemode?.eco_charging?.max_price;if(P!==void 0)return P*1e5},set(P){return t(`openWB/chargepoint/${I}/set/charge_template`,parseFloat((P/1e5).toFixed(7)),"chargemode.eco_charging.max_price",!0)}}),Re=I=>Ie({get(){return je(I).value?.prio},set(P){return t(`openWB/chargepoint/${I}/set/charge_template`,P,"prio",!0)}}),Te=I=>Ie({get(){return je(I).value?.time_charging.active},set(P){return t(`openWB/chargepoint/${I}/set/charge_template`,P,"time_charging.active",!0)}}),Le=(I,P)=>Ie({get(){return bt.value(I).find(Ce=>Ce.id===P)?.active},set(ae){const Ce=bt.value(I).findIndex(et=>et.id===P);if(Ce===-1)return;const Ve=`time_charging.plans.${Ce}.active`;t(`openWB/chargepoint/${I}/set/charge_template`,ae,Ve,!0)}}),Ue=I=>Ie(()=>v.value(`openWB/chargepoint/${I}/get/connected_vehicle/config`)),Xe=I=>Ie(()=>v.value(`openWB/chargepoint/${I}/get/connected_vehicle/soc`)),Fe=I=>Ie({get(){const xe=`openWB/vehicle/${Ae(I).value?.id}/soc_module/calculated_soc_state`,Ce=v.value(xe);return Ce?.manual_soc??Ce?.soc_start??0},set(P){const ae=Ae(I).value;if(!ae){console.warn("No vehicle connected to charge point",I);return}const xe=ae.id;g(`openWB/set/vehicle/${xe}/soc_module/calculated_soc_state/manual_soc`,P);const Ce=`openWB/chargepoint/${I}/get/connected_vehicle/soc`,Ve=v.value(Ce);Ve&&Ve.soc!==void 0&&t(Ce,P,"soc",!0)}}),We=I=>Ie(()=>{const P=Ae(I).value?.id;if(P!==void 0)return Mt.value(P)}),je=I=>Ie({get(){return v.value(`openWB/chargepoint/${I}/set/charge_template`)},set(P){return console.debug("set charge template",P,I),t(`openWB/chargepoint/${I}/set/charge_template`,P,void 0,!0)}}),tt=Ie(()=>I=>{const P=x.value(`openWB/system/device/+/component/${I}/config`);return Object.keys(P).length===0?`Speicher ${I}`:Object.values(P)[0].name}),He=Ie(()=>I=>v.value(`openWB/bat/${I}/get/soc`)||0),$e=Ie(()=>(I,P="textValue")=>{const ae=v.value(`openWB/bat/${I}/get/power`,void 0,0)||0,xe=A.value(ae);if(Object.hasOwn(xe,P))return xe[P];if(P=="object")return xe;if(P==="absoluteTextValue"){const Ce=Math.abs(ae);return A.value(Ce,"W","",!0).textValue}console.error("returnType not found!",P,ae)}),nt=Ie(()=>(I,P="textValue")=>{const ae=v.value(`openWB/bat/${I}/get/daily_imported`,void 0,0)||0,xe=A.value(ae,"Wh","",!0);if(Object.hasOwn(xe,P))return xe[P];if(P=="object")return xe;console.error("returnType not found!",P,ae)}),dt=Ie(()=>(I,P="textValue")=>{const ae=v.value(`openWB/bat/${I}/get/daily_exported`,void 0,0)||0,xe=A.value(ae,"Wh","",!0);if(Object.hasOwn(xe,P))return xe[P];if(P=="object")return xe;console.error("returnType not found!",P,ae)}),lt=Ie(()=>v.value("openWB/bat/config/configured",void 0)||!1),j=Ie(()=>y.value("bat")||[]),F=Ie(()=>(I="textValue")=>{const P=v.value("openWB/bat/get/power",void 0,0)||0,ae=A.value(P);if(Object.hasOwn(ae,I))return ae[I];if(I=="object")return ae;console.error("returnType not found!",I,P)}),ke=Ie(()=>v.value("openWB/bat/get/soc")||0),Pe=Ie(()=>(I="textValue")=>{const P=v.value("openWB/bat/get/daily_imported")||0,ae=A.value(P,"Wh","",!0);if(Object.hasOwn(ae,I))return ae[I];if(I=="object")return ae;console.error("returnType not found!",I,P)}),Me=Ie(()=>(I="textValue")=>{const P=v.value("openWB/bat/get/daily_exported")||0,ae=A.value(P,"Wh","",!0);if(Object.hasOwn(ae,I))return ae[I];if(I=="object")return ae;console.error("returnType not found!",I,P)}),rt=()=>Ie({get(){return v.value("openWB/general/chargemode_config/pv_charging/bat_mode")||void 0},set(I){return t("openWB/general/chargemode_config/pv_charging/bat_mode",I,void 0,!0)}}),at=Ie(()=>{const I=x.value("openWB/vehicle/+/name"),ae=_.value?.hide_standard_vehicle?Object.fromEntries(Object.entries(I).filter(([,xe])=>typeof xe=="string"&&xe!=="Standard-Fahrzeug")):I;return Object.keys(ae).map(xe=>({id:parseInt(xe.split("/")[2]),name:ae[xe]}))}),mt=Ie(()=>I=>v.value(`openWB/vehicle/${I}/info`)),Mt=Ie(()=>I=>v.value(`openWB/vehicle/${I}/soc_module/config`)?.type),zt=Ie(()=>I=>v.value(`openWB/vehicle/${I}/get/soc`)),Kt=(I,P)=>Ie({get(){const ae=`openWB/vehicle/${I}/soc_module/calculated_soc_state`,xe=v.value(ae);return xe?.manual_soc??xe?.soc_start??0},set(ae){if(g(`openWB/set/vehicle/${I}/soc_module/calculated_soc_state/manual_soc`,ae),P!==void 0){const xe=`openWB/chargepoint/${P}/get/connected_vehicle/soc`,Ce=v.value(xe);Ce&&Ce.soc!==void 0&&t(xe,ae,"soc",!0)}}}),Ht=I=>{if(I!==void 0){const P=`openWB/vehicle/${I}/get/force_soc_update`;b(P,1)}},Et=Ie(()=>I=>{const P=x.value("openWB/chargepoint/+/get/connected_vehicle/info");return Object.entries(P).filter(([,xe])=>xe.id===I).map(([xe])=>{const Ce=parseInt(xe.split("/")[2]);return{id:Ce,name:k.value(Ce),plugged:G.value(Ce),charging:q.value(Ce)}})}),ze=Ie(()=>I=>{const P=v.value(`openWB/chargepoint/${I}/set/charge_template`,"chargemode.scheduled_charging.plans");return Array.isArray(P)?P:[]}),bt=Ie(()=>I=>{const P=v.value(`openWB/chargepoint/${I}/set/charge_template`,"time_charging.plans");return Array.isArray(P)?P:[]}),At=(I,P)=>Ie({get(){return ze.value(I).find(Ce=>Ce.id===P)?.active},set(ae){Qe(I,P,"active",ae)}}),Qe=(I,P,ae,xe)=>{const Ve=ze.value(I).findIndex(vt=>vt.id===P);if(Ve===-1)return;const et=`chargemode.scheduled_charging.plans.${Ve}.${ae}`;t(`openWB/chargepoint/${I}/set/charge_template`,xe,et,!0)},wt=(I,P)=>Ie({get(){return ze.value(I).find(Ce=>Ce.id===P)?.et_active},set(ae){Qe(I,P,"et_active",ae)}}),So=I=>Ie(()=>{const P=Ue(I).value?.current_plan;if(P!==void 0)return{id:P,type:Ue(I).value?.time_charging_in_use?"timeCharging":"scheduledCharging",plan:Ue(I).value?.time_charging_in_use?bt.value(I).find(ae=>ae.id===P):ze.value(I).find(ae=>ae.id===P)}}),fl=I=>Ie(()=>{const P=So(I).value;if(P===void 0)return{time:void 0,limit_mode:void 0,limit:void 0};if(P.type==="scheduledCharging"){const xe=P.plan;return{time:xe?.time,limit_mode:xe?.limit.selected,limit:xe?.limit.selected=="soc"?xe.limit.soc_scheduled:xe?.limit.amount}}const ae=P.plan;return{time:ae?.time[1],limit_mode:ae?.limit.selected,limit:ae?.limit.selected=="soc"?ae?.limit.soc:ae?.limit.amount}}),pl=(I,P)=>Ie({get(){return ze.value(I).find(Ce=>Ce.id===P)?.current},set(ae){Qe(I,P,"current",ae)}}),dl=(I,P)=>Ie({get(){return ze.value(I).find(Ce=>Ce.id===P)?.limit.selected},set(ae){Qe(I,P,"limit.selected",ae)}}),gl=(I,P)=>Ie({get(){const Ce=ze.value(I).find(et=>et.id===P)?.limit.amount;return Ce===void 0?void 0:A.value(Ce,"Wh","",!0).scaledValue},set(ae){Qe(I,P,"limit.amount",ae)}}),yl=(I,P)=>Ie({get(){return ze.value(I).find(Ce=>Ce.id===P)?.name},set(ae){Qe(I,P,"name",ae)}}),ml=(I,P)=>Ie({get(){return ze.value(I).find(Ce=>Ce.id===P)?.time},set(ae){Qe(I,P,"time",ae)}}),bl=(I,P)=>Ie({get(){return ze.value(I).find(Ce=>Ce.id===P)?.frequency.selected},set(ae){Qe(I,P,"frequency.selected",ae)}}),vl=(I,P)=>Ie({get(){return ze.value(I).find(Ce=>Ce.id===P)?.frequency.once},set(ae){Qe(I,P,"frequency.once",ae)}}),wl=(I,P)=>Ie({get(){return ze.value(I).find(Ce=>Ce.id===P)?.frequency.weekly},set(ae){Qe(I,P,"frequency.weekly",ae)}}),_l=(I,P)=>Ie({get(){return ze.value(I).find(Ce=>Ce.id===P)?.limit.soc_limit},set(ae){Qe(I,P,"limit.soc_limit",ae)}}),Sl=(I,P)=>Ie({get(){return ze.value(I).find(Ce=>Ce.id===P)?.limit.soc_scheduled},set(ae){Qe(I,P,"limit.soc_scheduled",ae)}}),El=(I,P)=>Ie({get(){return ze.value(I).find(Ce=>Ce.id===P)?.phases_to_use},set(ae){Qe(I,P,"phases_to_use",ae)}}),Al=(I,P)=>Ie({get(){return ze.value(I).find(Ce=>Ce.id===P)?.phases_to_use_pv},set(ae){Qe(I,P,"phases_to_use_pv",ae)}}),Eo=Ie(()=>{const I=v.value("openWB/counter/get/hierarchy");if(I&&I.length>0){const P=I[0];if(P.type==="counter")return P.id}}),xl=Ie(()=>I=>{const P=x.value(`openWB/system/device/+/component/${I}/config`);return Object.keys(P).length===0?`Zähler ${I}`:Object.values(P)[0].name}),Il=Ie(()=>(I="textValue")=>{const P=Eo.value;if(P===void 0)return"---";const ae=v.value(`openWB/counter/${P}/get/power`,void 0,0)||0,xe=A.value(ae);if(I in xe)return xe[I];if(I=="object")return xe;console.error("returnType not found!",I,ae)}),Ol=Ie(()=>(I="textValue")=>{const P=v.value("openWB/counter/set/home_consumption",void 0,0)||0,ae=A.value(P);if(I in ae)return ae[I];if(I=="object")return ae;console.error("returnType not found!",I,P)}),kl=Ie(()=>v.value("openWB/pv/config/configured",void 0)||!1),Tl=Ie(()=>(I="textValue")=>{const P=v.value("openWB/pv/get/power",void 0,0)||0,ae=A.value(P);if(I in ae)return ae[I];if(I=="object")return ae;console.error("returnType not found!",I,P)}),Pl=Ie(()=>{const I=x.value("openWB/graph/+"),P=[];return Object.entries(I).forEach(([ae,xe])=>{ae.includes("alllivevaluesJson")&&typeof xe=="string"&&xe.split(` -`).forEach(Ve=>{if(Ve&&Ve.startsWith("{")&&Ve.endsWith("}")){const et=JSON.parse(Ve);P.push(et)}})}),P.sort((ae,xe)=>ae.timestamp-xe.timestamp)}),Cl=Ie(()=>(v.value("openWB/optional/et/provider","type",null)||void 0)!==void 0),Rl=Ie(()=>v.value("openWB/optional/et/get/prices",void 0,{}));return{topics:a,subscriptions:s,initialize:c,updateTopic:t,updateState:t,subscribe:i,unsubscribe:l,sendTopicToBroker:b,sendSystemCommand:S,getValue:v,systemVersion:R,systemIp:w,systemBranch:O,systemCommit:T,themeConfiguration:_,systemDateTime:M,chargePointIds:U,chargePointName:k,chargePointManualLock:z,chargePointPlugState:G,chargePointChargeState:q,chargePointSumPower:he,chargePointPower:ne,chargePointEnergyCharged:te,chargePointEnergyChargedPlugged:ce,chargePointPhaseNumber:V,chargePointChargingCurrent:le,chargePointStateMessage:B,chargePointFaultState:Z,chargePointFaultMessage:ee,dcChargingEnabled:oe,chargePointConnectedVehicleInfo:Ae,chargePointConnectedVehicleForceSocUpdate:ue,chargePointConnectedVehicleChargeMode:Y,chargePointConnectedVehicleInstantChargeCurrent:W,chargePointConnectedVehicleInstantDcChargePower:re,chargePointConnectedVehicleInstantChargePhases:we,chargePointConnectedVehicleInstantChargeLimit:pe,chargePointConnectedVehicleInstantChargeLimitSoC:L,chargePointConnectedVehicleInstantChargeLimitEnergy:H,chargePointConnectedVehiclePvChargeMinCurrent:se,chargePointConnectedVehiclePvChargePhases:_e,chargePointConnectedVehiclePvChargeLimit:fe,chargePointConnectedVehiclePvChargeLimitSoC:Be,chargePointConnectedVehiclePvChargeLimitEnergy:o,chargePointConnectedVehiclePvChargeMinSoc:Ee,chargePointConnectedVehiclePvChargeMinSocCurrent:Q,chargePointConnectedVehiclePvDcChargePower:be,chargePointConnectedVehiclePvDcMinSocPower:ve,chargePointConnectedVehiclePvChargePhasesMinSoc:Oe,chargePointConnectedVehiclePvChargeFeedInLimit:u,chargePointConnectedVehicleEcoChargeCurrent:m,chargePointConnectedVehicleEcoChargeDcPower:C,chargePointConnectedVehicleEcoChargePhases:N,chargePointConnectedVehicleEcoChargeLimit:K,chargePointConnectedVehicleEcoChargeLimitSoC:de,chargePointConnectedVehicleEcoChargeLimitEnergy:$,chargePointConnectedVehicleEcoChargeMaxPrice:ie,chargePointConnectedVehiclePriority:Re,chargePointConnectedVehicleTimeCharging:Te,chargePointConnectedVehicleChargeTemplate:je,vehicleList:at,chargePointConnectedVehicleConfig:Ue,vehicleInfo:mt,vehicleConnectionState:Et,vehicleSocType:Mt,vehicleSocValue:zt,vehicleSocManualValue:Kt,vehicleForceSocUpdate:Ht,chargePointConnectedVehicleSoc:Xe,vehicleActivePlan:So,vehicleChargeTarget:fl,vehicleScheduledChargingPlans:ze,vehicleScheduledChargingPlanActive:At,vehicleScheduledChargingPlanEtActive:wt,vehicleScheduledChargingPlanCurrent:pl,vehicleScheduledChargingPlanLimitSelected:dl,vehicleScheduledChargingPlanEnergyAmount:gl,vehicleScheduledChargingPlanName:yl,vehicleScheduledChargingPlanTime:ml,vehicleScheduledChargingPlanFrequencySelected:bl,vehicleScheduledChargingPlanOnceDate:vl,vehicleScheduledChargingPlanWeeklyDays:wl,vehicleScheduledChargingPlanSocLimit:_l,vehicleScheduledChargingPlanSocScheduled:Sl,vehicleScheduledChargingPlanPhases:El,vehicleScheduledChargingPlanPhasesPv:Al,vehicleTimeChargingPlans:bt,vehicleTimeChargingPlanActive:Le,chargePointConnectedVehicleSocType:We,chargePointConnectedVehicleSocManual:Fe,batteryConfigured:lt,batteryIds:j,batteryName:tt,batterySoc:He,batteryPower:$e,batteryDailyImported:nt,batteryDailyExported:dt,batterySocTotal:ke,batteryDailyImportedTotal:Pe,batteryDailyExportedTotal:Me,batteryTotalPower:F,batteryMode:rt,getGridId:Eo,getComponentName:xl,getGridPower:Il,getHomePower:Ol,getPvConfigured:kl,getPvPower:Tl,chartData:Pl,etProviderConfigured:Cl,etPrices:Rl}});export{Hc as u}; +*/const Hc=Bl("mqtt",()=>{let f;const h={protocol:location.protocol=="https:"?"wss":"ws",host:location.hostname,port:parseInt(location.port)||(location.protocol=="https:"?443:80),endpoint:"/ws",connectTimeout:4e3,reconnectPeriod:4e3},s=Io({}),a=Io({});function c(){const{protocol:O,host:B,port:ae,endpoint:xe,...Ce}=h,Ve=`${O}://${B}:${ae}${xe}`;try{f=Vc.connect(Ve,Ce),f.on("connect",()=>{}),f.on("error",et=>{console.error("Client error",et)}),f.on("message",(et,vt)=>{if(`${vt}${et}`,vt.toString().length>0){let ut;try{ut=JSON.parse(vt.toString())}catch(Bt){ut=vt.toString()}r(et,ut)}else e(et)})}catch(et){console.error("error connecting to broker:",et)}}function n(O,B=void 0){O.includes("#")||O.includes("+")||r(O,B)}function r(O,B){a.value[O]=B}function t(O,B,ae=void 0,xe=!1){const Ce=(Ve,et,vt)=>{const ut=et.split(".");ut.reduce((Bt,Gt,Ao)=>Ao===ut.length-1?(Bt[Gt]=vt,vt):Bt[Gt],Ve)};O in a.value?(ae!=null?Ce(a.value[O],ae,B):a.value[O]=B,xe&&(a.value[O],b(O,a.value[O]))):console.warn("topic not found",O)}function e(O){O.includes("#")||O.includes("+")?Object.keys(x.value(O)).forEach(B=>{delete a.value[B]}):delete a.value[O]}function i(O,B=void 0){Array.isArray(O)||(O=[O]),O.forEach(ae=>{d(ae)==1&&(n(ae,B),f?f.subscribe(O,{},xe=>{xe&&console.error("Subscribe to topics error",xe)}):console.error("mqttClient is not initialized"))})}function l(O){Array.isArray(O)||(O=[O]),O.forEach(B=>{p(B)<=0&&(e(B),f?f.unsubscribe(B,ae=>{ae&&console.error("Unsubscribe error",ae)}):console.error("mqttClient is not initialized"))})}function d(O){return O in s.value?s.value[O]+=1:s.value[O]=1,s.value[O],s.value[O]}function p(O){let B=0;return O in s.value&&(B=s.value[O]-=1,s.value[O]<=0&&delete s.value[O]),s.value[O],B}function g(O,B,ae=!0,xe=2){if(!f){console.error("mqttClient is not initialized");return}const Ce={qos:xe,retain:ae};f.publish(O,JSON.stringify(B),Ce,Ve=>{Ve&&console.error("Publish error",Ve)})}function b(O,B=void 0){const ae=O.replace("openWB/","openWB/set/");B===void 0&&(B=a.value[O]),g(ae,B)}function E(O){g("openWB/set/command/"+f?.options.clientId+"/todo",O,!1)}function S(O,B={}){E({command:O,data:B})}const x=Ie(()=>(O,B=!1)=>{let ae=O;return B?console.warn("auto subscription of regex topic not possible",O):(ae="^"+O.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$",Object.keys(s.value).includes(O)||i(O)),Object.keys(a.value).filter(xe=>xe.match(ae)).reduce((xe,Ce)=>({...xe,[Ce]:a.value[Ce]}),{})}),y=Ie(()=>O=>{function B(ae){let xe=[];return ae!==void 0&&ae.forEach(Ce=>{Ce.type==O&&xe.push(Ce.id),xe=[...xe,...B(Ce.children)]}),xe}return B(v.value("openWB/counter/get/hierarchy"))}),v=Ie(()=>(O,B=void 0,ae=void 0)=>{O in s.value||i(O,ae);let xe=a.value[O];if(B==null||xe==null)return xe;const Ce=B.split(".");for(let Ve=0;Ve(O,B="W",ae="",xe=!0,Ce=!1,Ve="---",et=0)=>{let vt=!1,ut=O,Bt=Ve;if(O!==void 0){for(Ce&&(ut=O*=-1),Bt=O.toLocaleString(void 0,{minimumFractionDigits:0,maximumFractionDigits:0});xe&&(ut>999||ut<-999);)switch(ut=ut/1e3,vt=!0,ae){case"":ae="k";break;case"k":ae="M";break;case"M":ae="G";break}let Gt=0;vt?Gt=et>0?et:2:Gt=ut!==Math.floor(ut)?et:0,Bt=ut.toLocaleString(void 0,{minimumFractionDigits:Gt,maximumFractionDigits:Gt})}return{textValue:`${Bt} ${ae}${B}`,value:O,unit:B,scaledValue:ut,scaledUnit:`${ae}${B}`}}),_=Ie(()=>v.value("openWB/general/web_theme","configuration")),C=Ie(()=>v.value("openWB/system/version")),w=Ie(()=>v.value("openWB/system/ip_address")),I=Ie(()=>v.value("openWB/system/current_branch")),k=Ie(()=>v.value("openWB/system/current_commit")),j=Ie(()=>(O="Date")=>{const B=v.value("openWB/system/time");if(B==null)return;const ae=new Date(B*1e3);switch(O){case"locale-string":return ae.toLocaleString();case"number":return ae.getTime();case"date":default:return ae}}),U=Ie(()=>y.value("cp")),P=Ie(()=>O=>v.value(`openWB/chargepoint/${O}/config`,"name")),z=O=>Ie({get(){return v.value(`openWB/chargepoint/${O}/set/manual_lock`)},set(B){return t(`openWB/chargepoint/${O}/set/manual_lock`,B,void 0,!0)}}),G=Ie(()=>O=>v.value(`openWB/chargepoint/${O}/get/plug_state`)||!1),q=Ie(()=>O=>v.value(`openWB/chargepoint/${O}/get/charge_state`)||!1),he=Ie(()=>(O="textValue")=>{const B=v.value("openWB/chargepoint/get/power",void 0,0)||0,ae=A.value(B);if(Object.hasOwn(ae,O))return ae[O];if(O=="object")return ae;console.error("returnType not found!",O,B)}),ne=Ie(()=>(O,B="textValue")=>{const ae=v.value(`openWB/chargepoint/${O}/get/power`,void 0,0)||0,xe=A.value(ae);if(Object.hasOwn(xe,B))return xe[B];if(B=="object")return xe;console.error("returnType not found!",B,ae)}),te=Ie(()=>(O,B="textValue")=>{const ae=v.value(`openWB/chargepoint/${O}/get/energy_charged`,void 0,0)||0,xe=A.value(ae,"Wh");if(Object.hasOwn(xe,B))return xe[B];if(B=="object")return xe;console.error("returnType not found!",B,ae)}),ce=Ie(()=>(O,B="textValue")=>{const ae=v.value(`openWB/chargepoint/${O}/set/log`,"imported_since_plugged")||0,xe=A.value(ae,"Wh");if(Object.hasOwn(xe,B))return xe[B];if(B=="object")return xe;console.error("returnType not found!",B,ae)}),V=Ie(()=>O=>v.value(`openWB/chargepoint/${O}/get/phases_in_use`)||0),le=Ie(()=>(O,B="textValue")=>{const ae=v.value(`openWB/chargepoint/${O}/set/current`)||0,xe=A.value(ae,"A","",!0,!1,"---",2);if(Object.hasOwn(xe,B))return xe[B];console.error("returnType not found!",B,ae)}),M=Ie(()=>O=>v.value(`openWB/chargepoint/${O}/get/state_str`)),ee=Ie(()=>O=>v.value(`openWB/chargepoint/${O}/get/fault_str`)),Z=Ie(()=>O=>v.value(`openWB/chargepoint/${O}/get/fault_state`)||0),ue=O=>{const B=Ae(O).value?.id;B!==void 0&&Ht(B)},Ae=O=>Ie({get(){return v.value(`openWB/chargepoint/${O}/get/connected_vehicle/info`)},set(B){t(`openWB/chargepoint/${O}/get/connected_vehicle/info`,B,void 0,!1),b(`openWB/chargepoint/${O}/config/ev`,B.id)}}),Y=O=>Ie({get(){return je(O).value?.chargemode?.selected},set(B){return t(`openWB/chargepoint/${O}/set/charge_template`,B,"chargemode.selected",!0)}}),W=O=>Ie({get(){return je(O).value?.chargemode?.instant_charging?.current},set(B){return t(`openWB/chargepoint/${O}/set/charge_template`,B,"chargemode.instant_charging.current",!0)}}),oe=Ie(()=>v.value("openWB/optional/dc_charging")||0),X=O=>Math.round(O*3*230/1e3),J=O=>Math.round(O*1e3/690),re=O=>Ie({get(){const B=je(O).value?.chargemode?.instant_charging?.dc_current;return B!==void 0?X(B):0},set(B){const ae=J(B);return t(`openWB/chargepoint/${O}/set/charge_template`,ae,"chargemode.instant_charging.dc_current",!0)}}),we=O=>Ie({get(){return je(O).value?.chargemode?.instant_charging?.phases_to_use},set(B){return t(`openWB/chargepoint/${O}/set/charge_template`,B,"chargemode.instant_charging.phases_to_use",!0)}}),pe=O=>Ie({get(){return je(O).value?.chargemode?.instant_charging?.limit?.selected},set(B){return t(`openWB/chargepoint/${O}/set/charge_template`,B,"chargemode.instant_charging.limit.selected",!0)}}),L=O=>Ie({get(){return je(O).value?.chargemode?.instant_charging?.limit?.soc},set(B){return t(`openWB/chargepoint/${O}/set/charge_template`,B,"chargemode.instant_charging.limit.soc",!0)}}),H=O=>Ie({get(){const B=je(O).value?.chargemode?.instant_charging?.limit?.amount;return B===void 0?void 0:A.value(B,"Wh","",!0).scaledValue},set(B){return t(`openWB/chargepoint/${O}/set/charge_template`,B*1e3,"chargemode.instant_charging.limit.amount",!0)}}),se=O=>Ie({get(){return je(O).value?.chargemode?.pv_charging?.min_current},set(B){return t(`openWB/chargepoint/${O}/set/charge_template`,B,"chargemode.pv_charging.min_current",!0)}}),be=O=>Ie({get(){const B=je(O).value?.chargemode?.pv_charging?.dc_min_current;return B!==void 0?X(B):0},set(B){const ae=J(B);return t(`openWB/chargepoint/${O}/set/charge_template`,ae,"chargemode.pv_charging.dc_min_current",!0)}}),ve=O=>Ie({get(){const B=je(O).value?.chargemode?.pv_charging?.dc_min_soc_current;return B!==void 0?Math.round(B*3*230/1e3):0},set(B){const ae=B*1e3/230/3;return t(`openWB/chargepoint/${O}/set/charge_template`,ae,"chargemode.pv_charging.dc_min_soc_current",!0)}}),Ee=O=>Ie({get(){return je(O).value?.chargemode?.pv_charging?.min_soc},set(B){return t(`openWB/chargepoint/${O}/set/charge_template`,B,"chargemode.pv_charging.min_soc",!0)}}),Q=O=>Ie({get(){return je(O).value?.chargemode?.pv_charging?.min_soc_current},set(B){return t(`openWB/chargepoint/${O}/set/charge_template`,B,"chargemode.pv_charging.min_soc_current",!0)}}),_e=O=>Ie({get(){return je(O).value?.chargemode?.pv_charging?.phases_to_use},set(B){return t(`openWB/chargepoint/${O}/set/charge_template`,B,"chargemode.pv_charging.phases_to_use",!0)}}),Oe=O=>Ie({get(){return je(O).value?.chargemode?.pv_charging?.phases_to_use_min_soc},set(B){return t(`openWB/chargepoint/${O}/set/charge_template`,B,"chargemode.pv_charging.phases_to_use_min_soc",!0)}}),fe=O=>Ie({get(){return je(O).value?.chargemode?.pv_charging?.limit?.selected},set(B){return t(`openWB/chargepoint/${O}/set/charge_template`,B,"chargemode.pv_charging.limit.selected",!0)}}),Be=O=>Ie({get(){return je(O).value?.chargemode?.pv_charging?.limit?.soc},set(B){return t(`openWB/chargepoint/${O}/set/charge_template`,B,"chargemode.pv_charging.limit.soc",!0)}}),o=O=>Ie({get(){const B=je(O).value?.chargemode?.pv_charging?.limit?.amount;return B===void 0?void 0:A.value(B,"Wh","",!0).scaledValue},set(B){return t(`openWB/chargepoint/${O}/set/charge_template`,B*1e3,"chargemode.pv_charging.limit.amount",!0)}}),u=O=>Ie({get(){return je(O).value?.chargemode?.pv_charging?.feed_in_limit},set(B){return t(`openWB/chargepoint/${O}/set/charge_template`,B,"chargemode.pv_charging.feed_in_limit",!0)}}),m=O=>Ie({get(){return je(O).value?.chargemode?.eco_charging?.current},set(B){return t(`openWB/chargepoint/${O}/set/charge_template`,B,"chargemode.eco_charging.current",!0)}}),T=O=>Ie({get(){const B=je(O).value?.chargemode?.eco_charging?.dc_current;return B!==void 0?X(B):0},set(B){const ae=J(B);return t(`openWB/chargepoint/${O}/set/charge_template`,ae,"chargemode.eco_charging.dc_current",!0)}}),N=O=>Ie({get(){return je(O).value?.chargemode?.eco_charging?.phases_to_use},set(B){return t(`openWB/chargepoint/${O}/set/charge_template`,B,"chargemode.eco_charging.phases_to_use",!0)}}),K=O=>Ie({get(){return je(O).value?.chargemode?.eco_charging?.limit?.selected},set(B){return t(`openWB/chargepoint/${O}/set/charge_template`,B,"chargemode.eco_charging.limit.selected",!0)}}),de=O=>Ie({get(){return je(O).value?.chargemode?.eco_charging?.limit?.soc},set(B){return t(`openWB/chargepoint/${O}/set/charge_template`,B,"chargemode.eco_charging.limit.soc",!0)}}),$=O=>Ie({get(){const B=je(O).value?.chargemode?.eco_charging?.limit?.amount;return B===void 0?void 0:A.value(B,"Wh","",!0).scaledValue},set(B){return t(`openWB/chargepoint/${O}/set/charge_template`,B*1e3,"chargemode.eco_charging.limit.amount",!0)}}),ie=O=>Ie({get(){const B=je(O).value?.chargemode?.eco_charging?.max_price;if(B!==void 0)return B*1e5},set(B){return t(`openWB/chargepoint/${O}/set/charge_template`,parseFloat((B/1e5).toFixed(7)),"chargemode.eco_charging.max_price",!0)}}),Re=O=>Ie({get(){return je(O).value?.prio},set(B){return t(`openWB/chargepoint/${O}/set/charge_template`,B,"prio",!0)}}),ke=O=>Ie({get(){return je(O).value?.time_charging.active},set(B){return t(`openWB/chargepoint/${O}/set/charge_template`,B,"time_charging.active",!0)}}),Le=(O,B)=>Ie({get(){return bt.value(O).find(Ce=>Ce.id===B)?.active},set(ae){const Ce=bt.value(O).findIndex(et=>et.id===B);if(Ce===-1)return;const Ve=`time_charging.plans.${Ce}.active`;t(`openWB/chargepoint/${O}/set/charge_template`,ae,Ve,!0)}}),Ue=O=>Ie(()=>v.value(`openWB/chargepoint/${O}/get/connected_vehicle/config`)),Xe=O=>Ie(()=>v.value(`openWB/chargepoint/${O}/get/connected_vehicle/soc`)),Fe=O=>Ie({get(){const xe=`openWB/vehicle/${Ae(O).value?.id}/soc_module/calculated_soc_state`,Ce=v.value(xe);return Ce?.manual_soc??Ce?.soc_start??0},set(B){const ae=Ae(O).value;if(!ae){console.warn("No vehicle connected to charge point",O);return}const xe=ae.id;g(`openWB/set/vehicle/${xe}/soc_module/calculated_soc_state/manual_soc`,B);const Ce=`openWB/chargepoint/${O}/get/connected_vehicle/soc`,Ve=v.value(Ce);Ve&&Ve.soc!==void 0&&t(Ce,B,"soc",!0)}}),We=O=>Ie(()=>{const B=Ae(O).value?.id;if(B!==void 0)return Mt.value(B)}),je=O=>Ie({get(){return v.value(`openWB/chargepoint/${O}/set/charge_template`)},set(B){return t(`openWB/chargepoint/${O}/set/charge_template`,B,void 0,!0)}}),tt=Ie(()=>O=>{const B=x.value(`openWB/system/device/+/component/${O}/config`);return Object.keys(B).length===0?`Speicher ${O}`:Object.values(B)[0].name}),He=Ie(()=>O=>v.value(`openWB/bat/${O}/get/soc`)||0),$e=Ie(()=>(O,B="textValue")=>{const ae=v.value(`openWB/bat/${O}/get/power`,void 0,0)||0,xe=A.value(ae);if(Object.hasOwn(xe,B))return xe[B];if(B=="object")return xe;if(B==="absoluteTextValue"){const Ce=Math.abs(ae);return A.value(Ce,"W","",!0).textValue}console.error("returnType not found!",B,ae)}),nt=Ie(()=>(O,B="textValue")=>{const ae=v.value(`openWB/bat/${O}/get/daily_imported`,void 0,0)||0,xe=A.value(ae,"Wh","",!0);if(Object.hasOwn(xe,B))return xe[B];if(B=="object")return xe;console.error("returnType not found!",B,ae)}),dt=Ie(()=>(O,B="textValue")=>{const ae=v.value(`openWB/bat/${O}/get/daily_exported`,void 0,0)||0,xe=A.value(ae,"Wh","",!0);if(Object.hasOwn(xe,B))return xe[B];if(B=="object")return xe;console.error("returnType not found!",B,ae)}),lt=Ie(()=>v.value("openWB/bat/config/configured",void 0)||!1),R=Ie(()=>y.value("bat")||[]),F=Ie(()=>(O="textValue")=>{const B=v.value("openWB/bat/get/power",void 0,0)||0,ae=A.value(B);if(Object.hasOwn(ae,O))return ae[O];if(O=="object")return ae;console.error("returnType not found!",O,B)}),Pe=Ie(()=>v.value("openWB/bat/get/soc")||0),Te=Ie(()=>(O="textValue")=>{const B=v.value("openWB/bat/get/daily_imported")||0,ae=A.value(B,"Wh","",!0);if(Object.hasOwn(ae,O))return ae[O];if(O=="object")return ae;console.error("returnType not found!",O,B)}),Me=Ie(()=>(O="textValue")=>{const B=v.value("openWB/bat/get/daily_exported")||0,ae=A.value(B,"Wh","",!0);if(Object.hasOwn(ae,O))return ae[O];if(O=="object")return ae;console.error("returnType not found!",O,B)}),rt=()=>Ie({get(){return v.value("openWB/general/chargemode_config/pv_charging/bat_mode")||void 0},set(O){return t("openWB/general/chargemode_config/pv_charging/bat_mode",O,void 0,!0)}}),at=Ie(()=>{const O=x.value("openWB/vehicle/+/name"),ae=_.value?.hide_standard_vehicle?Object.fromEntries(Object.entries(O).filter(([,xe])=>typeof xe=="string"&&xe!=="Standard-Fahrzeug")):O;return Object.keys(ae).map(xe=>({id:parseInt(xe.split("/")[2]),name:ae[xe]}))}),mt=Ie(()=>O=>v.value(`openWB/vehicle/${O}/info`)),Mt=Ie(()=>O=>v.value(`openWB/vehicle/${O}/soc_module/config`)?.type),zt=Ie(()=>O=>v.value(`openWB/vehicle/${O}/get/soc`)),Kt=(O,B)=>Ie({get(){const ae=`openWB/vehicle/${O}/soc_module/calculated_soc_state`,xe=v.value(ae);return xe?.manual_soc??xe?.soc_start??0},set(ae){if(g(`openWB/set/vehicle/${O}/soc_module/calculated_soc_state/manual_soc`,ae),B!==void 0){const xe=`openWB/chargepoint/${B}/get/connected_vehicle/soc`,Ce=v.value(xe);Ce&&Ce.soc!==void 0&&t(xe,ae,"soc",!0)}}}),Ht=O=>{if(O!==void 0){const B=`openWB/vehicle/${O}/get/force_soc_update`;b(B,1)}},Et=Ie(()=>O=>{const B=x.value("openWB/chargepoint/+/get/connected_vehicle/info");return Object.entries(B).filter(([,xe])=>xe.id===O).map(([xe])=>{const Ce=parseInt(xe.split("/")[2]);return{id:Ce,name:P.value(Ce),plugged:G.value(Ce),charging:q.value(Ce)}})}),ze=Ie(()=>O=>{const B=v.value(`openWB/chargepoint/${O}/set/charge_template`,"chargemode.scheduled_charging.plans");return Array.isArray(B)?B:[]}),bt=Ie(()=>O=>{const B=v.value(`openWB/chargepoint/${O}/set/charge_template`,"time_charging.plans");return Array.isArray(B)?B:[]}),At=(O,B)=>Ie({get(){return ze.value(O).find(Ce=>Ce.id===B)?.active},set(ae){Qe(O,B,"active",ae)}}),Qe=(O,B,ae,xe)=>{const Ve=ze.value(O).findIndex(vt=>vt.id===B);if(Ve===-1)return;const et=`chargemode.scheduled_charging.plans.${Ve}.${ae}`;t(`openWB/chargepoint/${O}/set/charge_template`,xe,et,!0)},wt=(O,B)=>Ie({get(){return ze.value(O).find(Ce=>Ce.id===B)?.et_active},set(ae){Qe(O,B,"et_active",ae)}}),So=O=>Ie(()=>{const B=Ue(O).value?.current_plan;if(B!==void 0)return{id:B,type:Ue(O).value?.time_charging_in_use?"timeCharging":"scheduledCharging",plan:Ue(O).value?.time_charging_in_use?bt.value(O).find(ae=>ae.id===B):ze.value(O).find(ae=>ae.id===B)}}),fl=O=>Ie(()=>{const B=So(O).value;if(B===void 0)return{time:void 0,limit_mode:void 0,limit:void 0};if(B.type==="scheduledCharging"){const xe=B.plan;return{time:xe?.time,limit_mode:xe?.limit.selected,limit:xe?.limit.selected=="soc"?xe.limit.soc_scheduled:xe?.limit.amount}}const ae=B.plan;return{time:ae?.time[1],limit_mode:ae?.limit.selected,limit:ae?.limit.selected=="soc"?ae?.limit.soc:ae?.limit.amount}}),pl=(O,B)=>Ie({get(){return ze.value(O).find(Ce=>Ce.id===B)?.current},set(ae){Qe(O,B,"current",ae)}}),dl=(O,B)=>Ie({get(){return ze.value(O).find(Ce=>Ce.id===B)?.limit.selected},set(ae){Qe(O,B,"limit.selected",ae)}}),gl=(O,B)=>Ie({get(){const Ce=ze.value(O).find(et=>et.id===B)?.limit.amount;return Ce===void 0?void 0:A.value(Ce,"Wh","",!0).scaledValue},set(ae){Qe(O,B,"limit.amount",ae)}}),yl=(O,B)=>Ie({get(){return ze.value(O).find(Ce=>Ce.id===B)?.name},set(ae){Qe(O,B,"name",ae)}}),ml=(O,B)=>Ie({get(){return ze.value(O).find(Ce=>Ce.id===B)?.time},set(ae){Qe(O,B,"time",ae)}}),bl=(O,B)=>Ie({get(){return ze.value(O).find(Ce=>Ce.id===B)?.frequency.selected},set(ae){Qe(O,B,"frequency.selected",ae)}}),vl=(O,B)=>Ie({get(){return ze.value(O).find(Ce=>Ce.id===B)?.frequency.once},set(ae){Qe(O,B,"frequency.once",ae)}}),wl=(O,B)=>Ie({get(){return ze.value(O).find(Ce=>Ce.id===B)?.frequency.weekly},set(ae){Qe(O,B,"frequency.weekly",ae)}}),_l=(O,B)=>Ie({get(){return ze.value(O).find(Ce=>Ce.id===B)?.limit.soc_limit},set(ae){Qe(O,B,"limit.soc_limit",ae)}}),Sl=(O,B)=>Ie({get(){return ze.value(O).find(Ce=>Ce.id===B)?.limit.soc_scheduled},set(ae){Qe(O,B,"limit.soc_scheduled",ae)}}),El=(O,B)=>Ie({get(){return ze.value(O).find(Ce=>Ce.id===B)?.phases_to_use},set(ae){Qe(O,B,"phases_to_use",ae)}}),Al=(O,B)=>Ie({get(){return ze.value(O).find(Ce=>Ce.id===B)?.phases_to_use_pv},set(ae){Qe(O,B,"phases_to_use_pv",ae)}}),Eo=Ie(()=>{const O=v.value("openWB/counter/get/hierarchy");if(O&&O.length>0){const B=O[0];if(B.type==="counter")return B.id}}),xl=Ie(()=>O=>{const B=x.value(`openWB/system/device/+/component/${O}/config`);return Object.keys(B).length===0?`Zähler ${O}`:Object.values(B)[0].name}),Il=Ie(()=>(O="textValue")=>{const B=Eo.value;if(B===void 0)return"---";const ae=v.value(`openWB/counter/${B}/get/power`,void 0,0)||0,xe=A.value(ae);if(O in xe)return xe[O];if(O=="object")return xe;console.error("returnType not found!",O,ae)}),Ol=Ie(()=>(O="textValue")=>{const B=v.value("openWB/counter/set/home_consumption",void 0,0)||0,ae=A.value(B);if(O in ae)return ae[O];if(O=="object")return ae;console.error("returnType not found!",O,B)}),Pl=Ie(()=>v.value("openWB/pv/config/configured",void 0)||!1),kl=Ie(()=>(O="textValue")=>{const B=v.value("openWB/pv/get/power",void 0,0)||0,ae=A.value(B);if(O in ae)return ae[O];if(O=="object")return ae;console.error("returnType not found!",O,B)}),Tl=Ie(()=>{const O=x.value("openWB/graph/+"),B=[];return Object.entries(O).forEach(([ae,xe])=>{ae.includes("alllivevaluesJson")&&typeof xe=="string"&&xe.split(` +`).forEach(Ve=>{if(Ve&&Ve.startsWith("{")&&Ve.endsWith("}")){const et=JSON.parse(Ve);B.push(et)}})}),B.sort((ae,xe)=>ae.timestamp-xe.timestamp)}),Cl=Ie(()=>(v.value("openWB/optional/et/provider","type",null)||void 0)!==void 0),Rl=Ie(()=>v.value("openWB/optional/et/get/prices",void 0,{}));return{topics:a,subscriptions:s,initialize:c,updateTopic:t,updateState:t,subscribe:i,unsubscribe:l,sendTopicToBroker:b,sendSystemCommand:S,getValue:v,systemVersion:C,systemIp:w,systemBranch:I,systemCommit:k,themeConfiguration:_,systemDateTime:j,chargePointIds:U,chargePointName:P,chargePointManualLock:z,chargePointPlugState:G,chargePointChargeState:q,chargePointSumPower:he,chargePointPower:ne,chargePointEnergyCharged:te,chargePointEnergyChargedPlugged:ce,chargePointPhaseNumber:V,chargePointChargingCurrent:le,chargePointStateMessage:M,chargePointFaultState:Z,chargePointFaultMessage:ee,dcChargingEnabled:oe,chargePointConnectedVehicleInfo:Ae,chargePointConnectedVehicleForceSocUpdate:ue,chargePointConnectedVehicleChargeMode:Y,chargePointConnectedVehicleInstantChargeCurrent:W,chargePointConnectedVehicleInstantDcChargePower:re,chargePointConnectedVehicleInstantChargePhases:we,chargePointConnectedVehicleInstantChargeLimit:pe,chargePointConnectedVehicleInstantChargeLimitSoC:L,chargePointConnectedVehicleInstantChargeLimitEnergy:H,chargePointConnectedVehiclePvChargeMinCurrent:se,chargePointConnectedVehiclePvChargePhases:_e,chargePointConnectedVehiclePvChargeLimit:fe,chargePointConnectedVehiclePvChargeLimitSoC:Be,chargePointConnectedVehiclePvChargeLimitEnergy:o,chargePointConnectedVehiclePvChargeMinSoc:Ee,chargePointConnectedVehiclePvChargeMinSocCurrent:Q,chargePointConnectedVehiclePvDcChargePower:be,chargePointConnectedVehiclePvDcMinSocPower:ve,chargePointConnectedVehiclePvChargePhasesMinSoc:Oe,chargePointConnectedVehiclePvChargeFeedInLimit:u,chargePointConnectedVehicleEcoChargeCurrent:m,chargePointConnectedVehicleEcoChargeDcPower:T,chargePointConnectedVehicleEcoChargePhases:N,chargePointConnectedVehicleEcoChargeLimit:K,chargePointConnectedVehicleEcoChargeLimitSoC:de,chargePointConnectedVehicleEcoChargeLimitEnergy:$,chargePointConnectedVehicleEcoChargeMaxPrice:ie,chargePointConnectedVehiclePriority:Re,chargePointConnectedVehicleTimeCharging:ke,chargePointConnectedVehicleChargeTemplate:je,vehicleList:at,chargePointConnectedVehicleConfig:Ue,vehicleInfo:mt,vehicleConnectionState:Et,vehicleSocType:Mt,vehicleSocValue:zt,vehicleSocManualValue:Kt,vehicleForceSocUpdate:Ht,chargePointConnectedVehicleSoc:Xe,vehicleActivePlan:So,vehicleChargeTarget:fl,vehicleScheduledChargingPlans:ze,vehicleScheduledChargingPlanActive:At,vehicleScheduledChargingPlanEtActive:wt,vehicleScheduledChargingPlanCurrent:pl,vehicleScheduledChargingPlanLimitSelected:dl,vehicleScheduledChargingPlanEnergyAmount:gl,vehicleScheduledChargingPlanName:yl,vehicleScheduledChargingPlanTime:ml,vehicleScheduledChargingPlanFrequencySelected:bl,vehicleScheduledChargingPlanOnceDate:vl,vehicleScheduledChargingPlanWeeklyDays:wl,vehicleScheduledChargingPlanSocLimit:_l,vehicleScheduledChargingPlanSocScheduled:Sl,vehicleScheduledChargingPlanPhases:El,vehicleScheduledChargingPlanPhasesPv:Al,vehicleTimeChargingPlans:bt,vehicleTimeChargingPlanActive:Le,chargePointConnectedVehicleSocType:We,chargePointConnectedVehicleSocManual:Fe,batteryConfigured:lt,batteryIds:R,batteryName:tt,batterySoc:He,batteryPower:$e,batteryDailyImported:nt,batteryDailyExported:dt,batterySocTotal:Pe,batteryDailyImportedTotal:Te,batteryDailyExportedTotal:Me,batteryTotalPower:F,batteryMode:rt,getGridId:Eo,getComponentName:xl,getGridPower:Il,getHomePower:Ol,getPvConfigured:Pl,getPvPower:kl,chartData:Tl,etProviderConfigured:Cl,etPrices:Rl}});export{Hc as u}; diff --git a/packages/modules/web_themes/koala/web/assets/store-init-BPiEnDMl.js b/packages/modules/web_themes/koala/web/assets/store-init-BPiEnDMl.js new file mode 100644 index 0000000000..ec02ff289f --- /dev/null +++ b/packages/modules/web_themes/koala/web/assets/store-init-BPiEnDMl.js @@ -0,0 +1 @@ +import{b as t}from"./index-CmDneGoC.js";import{u as o}from"./mqtt-store-CdQu5WWJ.js";const s=t(()=>{o().initialize()});export{s as default}; diff --git a/packages/modules/web_themes/koala/web/assets/store-init-DA2xVgRy.js b/packages/modules/web_themes/koala/web/assets/store-init-DA2xVgRy.js deleted file mode 100644 index 2e12184bfe..0000000000 --- a/packages/modules/web_themes/koala/web/assets/store-init-DA2xVgRy.js +++ /dev/null @@ -1 +0,0 @@ -import{b as t}from"./index-BBNHe89s.js";import{u as o}from"./mqtt-store-BaDE5XKf.js";const s=t(()=>{o().initialize()});export{s as default}; diff --git a/packages/modules/web_themes/koala/web/index.html b/packages/modules/web_themes/koala/web/index.html index c2ecb3e906..50f524e84d 100644 --- a/packages/modules/web_themes/koala/web/index.html +++ b/packages/modules/web_themes/koala/web/index.html @@ -1,3 +1,3 @@ -openWB +openWB
\ No newline at end of file From e07b2b0b1bb63cdd795929b229e804db62d10f82 Mon Sep 17 00:00:00 2001 From: LKuemmel Date: Fri, 19 Sep 2025 14:36:47 +0200 Subject: [PATCH 4/8] build UI --- ...eLog-9b005407.js => ChargeLog-40aaca0a.js} | 4 +- .../ChargePointInstallation-7e22d920.js | 1 + .../ChargePointInstallation-81239155.js | 1 - .../{Chart-bf0ff6a8.js => Chart-0e7a4a70.js} | 2 +- web/settings/assets/CloudConfig-1f382920.js | 1 + web/settings/assets/CloudConfig-fd8466da.js | 1 - .../assets/DataManagement-52054445.js | 1 + .../assets/DataManagement-81c5a852.js | 1 - ...ig-9a9e00cc.js => DebugConfig-044b24f7.js} | 4 +- .../assets/GeneralChargeConfig-0f9eaa85.js | 1 - .../assets/GeneralChargeConfig-d70b0d95.js | 1 + web/settings/assets/GeneralConfig-5de8d06f.js | 1 - web/settings/assets/GeneralConfig-cc87a1f9.js | 1 + .../assets/HardwareInstallation-35a2a562.js | 1 - .../assets/HardwareInstallation-be759b0c.js | 1 + .../assets/IdentificationConfig-3d28d565.js | 2 - .../assets/IdentificationConfig-a3531ccb.js | 2 + .../assets/InstallAssistant-56db2231.js | 1 + .../assets/InstallAssistant-bd77c405.js | 1 - .../assets/InstallAssistantStep0-945d70d5.js | 1 - .../assets/InstallAssistantStep0-acacfc75.js | 1 + .../assets/InstallAssistantStep1-5c749d29.js | 1 - .../assets/InstallAssistantStep1-a93e968d.js | 1 + .../assets/InstallAssistantStep10-3d573bb7.js | 1 + .../assets/InstallAssistantStep10-bbcd7854.js | 1 - .../assets/InstallAssistantStep2-77cc84d7.js | 1 - .../assets/InstallAssistantStep2-b4941f0c.js | 1 + .../assets/InstallAssistantStep3-209bef66.js | 1 - .../assets/InstallAssistantStep3-b0741703.js | 1 + .../assets/InstallAssistantStep4-efa21e90.js | 1 - .../assets/InstallAssistantStep4-f46d2116.js | 1 + .../InstallAssistantStep4.1-7846b3e0.js | 1 - .../InstallAssistantStep4.1-8b2ae23f.js | 1 + .../assets/InstallAssistantStep5-4a85dca5.js | 1 + .../assets/InstallAssistantStep5-7199c2d2.js | 1 - .../assets/InstallAssistantStep6-5c9750cb.js | 1 + .../assets/InstallAssistantStep6-d428a8b2.js | 1 - .../assets/InstallAssistantStep7-2bd98bf0.js | 1 + .../assets/InstallAssistantStep7-5a0be87c.js | 1 - ...c.js => InstallAssistantStep8-23be5b5b.js} | 2 +- .../assets/InstallAssistantStep9-1aa5b6bf.js | 1 + .../assets/InstallAssistantStep9-32a8ab2b.js | 1 - .../InstallAssistantStepTemplate-59e1095f.js | 1 + .../InstallAssistantStepTemplate-68e25e8a.js | 1 - web/settings/assets/IoConfig-38958e2e.js | 1 + web/settings/assets/IoConfig-de1d5cc2.js | 1 - ...-ca527aea.js => LegalSettings-20201125.js} | 2 +- .../assets/LoadManagementConfig-161f6124.js | 1 - .../assets/LoadManagementConfig-61263fe6.js | 1 + .../assets/MqttBridgeConfig-187cba4b.js | 1 - .../assets/MqttBridgeConfig-59050cb8.js | 1 + .../assets/OpenwbIoPattern-66bb2793.js | 1 + .../assets/OpenwbIoPattern-6f003fb0.js | 1 - ...0.js => OpenwbIoSinglePattern-14df64f6.js} | 2 +- ...7c1c.js => OpenwbSortableList-c7b5b151.js} | 2 +- .../assets/OptionalComponents-a2c47c92.js | 1 + .../assets/OptionalComponents-f8223e02.js | 1 - .../assets/PVChargeConfig-9ed443e9.js | 1 - .../assets/PVChargeConfig-b6b84699.js | 1 + web/settings/assets/Status-526393e2.js | 1 - web/settings/assets/Status-76832ed9.js | 1 + web/settings/assets/Support-25ac4d94.js | 3 + web/settings/assets/Support-31be3475.js | 3 - web/settings/assets/System-5edeb34f.js | 1 - web/settings/assets/System-9f60a387.js | 1 + web/settings/assets/TestingStore-28ad7b75.js | 1 - web/settings/assets/TestingStore-3a739645.js | 1 + web/settings/assets/VehicleConfig-233066dd.js | 1 - web/settings/assets/VehicleConfig-c6e5b45b.js | 1 + web/settings/assets/backup_cloud-0a9a4a8d.js | 1 + web/settings/assets/backup_cloud-1f3db513.js | 1 - web/settings/assets/backup_cloud-5420b416.js | 1 + web/settings/assets/backup_cloud-66a4543e.js | 1 + web/settings/assets/backup_cloud-71423bc2.js | 1 - web/settings/assets/backup_cloud-9c3ef2b9.js | 1 - web/settings/assets/backup_cloud-d6cfecbd.js | 1 - web/settings/assets/backup_cloud-e3708975.js | 1 + web/settings/assets/bat-01a2f194.js | 1 + web/settings/assets/bat-02c96333.js | 1 + web/settings/assets/bat-038c6dbc.js | 1 - web/settings/assets/bat-079d4f24.js | 1 - web/settings/assets/bat-13872887.js | 1 - web/settings/assets/bat-18693c33.js | 1 + web/settings/assets/bat-1ad29484.js | 1 + web/settings/assets/bat-1c0d64c4.js | 1 - web/settings/assets/bat-1e5462e4.js | 1 + web/settings/assets/bat-24ebfa6e.js | 1 + web/settings/assets/bat-2e0391d4.js | 1 + web/settings/assets/bat-313da7a3.js | 1 + web/settings/assets/bat-351d44cb.js | 1 - web/settings/assets/bat-381c4030.js | 1 + web/settings/assets/bat-4c47ac06.js | 1 - web/settings/assets/bat-5276ac71.js | 1 + web/settings/assets/bat-5c9d3bae.js | 1 + web/settings/assets/bat-6a84ad0b.js | 1 - web/settings/assets/bat-6bbc2804.js | 1 - web/settings/assets/bat-6ce1b18c.js | 1 - web/settings/assets/bat-74a30937.js | 1 + web/settings/assets/bat-7fd552d4.js | 1 - web/settings/assets/bat-847c06c8.js | 1 - web/settings/assets/bat-9e0becca.js | 1 - web/settings/assets/bat-9f789e09.js | 1 + web/settings/assets/bat-a55e5a44.js | 1 - web/settings/assets/bat-be5c48ce.js | 1 + web/settings/assets/bat-c0ad8e73.js | 1 - web/settings/assets/bat-c6548e6d.js | 1 - web/settings/assets/bat-caa2d54a.js | 1 + web/settings/assets/bat-cd102e51.js | 1 - web/settings/assets/bat-d2acbf13.js | 1 - web/settings/assets/bat-d365c2cb.js | 1 + web/settings/assets/bat-d6b81877.js | 1 - web/settings/assets/bat-dd5956f5.js | 1 - web/settings/assets/bat-e176c2ff.js | 1 + web/settings/assets/bat-e326742a.js | 1 + web/settings/assets/bat-e3a454fb.js | 1 - web/settings/assets/bat-e4f98942.js | 1 + web/settings/assets/bat-e8342943.js | 1 - web/settings/assets/bat-e9ec040d.js | 1 + web/settings/assets/bat-efda0fab.js | 1 + web/settings/assets/bat-f72ba579.js | 1 + web/settings/assets/bat-fdb9e37e.js | 1 - .../assets/bat_smart_energy-5d1a08e4.js | 1 - .../assets/bat_smart_energy-af221efd.js | 1 + web/settings/assets/chargePoint-04f787ef.js | 1 + web/settings/assets/chargePoint-2a30a0c1.js | 1 - ...nt-e515f3fa.js => chargePoint-5ae09ebd.js} | 2 +- web/settings/assets/chargePoint-5d28cfe6.js | 1 + web/settings/assets/chargePoint-5f7a56d3.js | 1 - web/settings/assets/chargePoint-73256b81.js | 1 - web/settings/assets/chargePoint-8808c043.js | 1 + ...nt-275481b9.js => chargePoint-b9360c52.js} | 2 +- web/settings/assets/chargePoint-c7a2ef8c.js | 1 + web/settings/assets/chargePoint-c8dd557f.js | 1 - ...nt-ee9642cb.js => chargePoint-d206a228.js} | 2 +- ...mands-425a88ce.js => commands-6baac453.js} | 2 +- ...mands-270f1fee.js => commands-c6ddc747.js} | 2 +- .../assets/consumption_counter-1c9b3251.js | 1 + .../assets/consumption_counter-7647f4a4.js | 1 - web/settings/assets/counter-005ba391.js | 1 - web/settings/assets/counter-01d8e9a4.js | 1 + web/settings/assets/counter-12125a94.js | 1 - web/settings/assets/counter-1346ff10.js | 1 + web/settings/assets/counter-165ce997.js | 1 + web/settings/assets/counter-189db4df.js | 1 + web/settings/assets/counter-18ecc868.js | 1 - web/settings/assets/counter-1f565ee4.js | 1 + web/settings/assets/counter-21bc2bc2.js | 1 + web/settings/assets/counter-21ec5341.js | 1 - web/settings/assets/counter-22e7f700.js | 1 - web/settings/assets/counter-2438b11a.js | 1 + web/settings/assets/counter-2aac942b.js | 1 + web/settings/assets/counter-2d3ea68b.js | 1 - web/settings/assets/counter-2dd2fa82.js | 1 - web/settings/assets/counter-303bf50e.js | 1 - web/settings/assets/counter-318086b9.js | 1 - web/settings/assets/counter-32894ee7.js | 1 + web/settings/assets/counter-332c42a7.js | 1 + web/settings/assets/counter-37d67776.js | 1 + web/settings/assets/counter-3c133de8.js | 1 + web/settings/assets/counter-3e1bf7f1.js | 1 + web/settings/assets/counter-42cbd56b.js | 1 - web/settings/assets/counter-46dc9236.js | 1 - web/settings/assets/counter-487594bd.js | 1 - web/settings/assets/counter-4b7a987f.js | 1 - web/settings/assets/counter-4baa81b9.js | 1 - web/settings/assets/counter-4d76f760.js | 1 - web/settings/assets/counter-537c4dfd.js | 1 - web/settings/assets/counter-57c49ae6.js | 1 + web/settings/assets/counter-5aade8ee.js | 1 - web/settings/assets/counter-65d7531d.js | 1 - web/settings/assets/counter-681c80fe.js | 1 - web/settings/assets/counter-6e1d95d5.js | 1 + web/settings/assets/counter-6e58a73c.js | 1 - web/settings/assets/counter-70b03053.js | 1 + web/settings/assets/counter-70de76b4.js | 1 + web/settings/assets/counter-76544a83.js | 1 + web/settings/assets/counter-81dd5705.js | 1 + web/settings/assets/counter-863bf61e.js | 1 - web/settings/assets/counter-8725308d.js | 1 + web/settings/assets/counter-88df4b61.js | 1 - web/settings/assets/counter-8950294b.js | 1 + web/settings/assets/counter-8b0a5a6c.js | 1 - web/settings/assets/counter-9a54a193.js | 1 - web/settings/assets/counter-9b4e6f3b.js | 1 - web/settings/assets/counter-9d15865c.js | 1 - web/settings/assets/counter-a51921e1.js | 1 - web/settings/assets/counter-aa5bda67.js | 1 + web/settings/assets/counter-ac45f9c2.js | 1 + web/settings/assets/counter-ad8342b8.js | 1 - web/settings/assets/counter-c21587d3.js | 1 + web/settings/assets/counter-c7ccca56.js | 1 + web/settings/assets/counter-d72adf8c.js | 1 + web/settings/assets/counter-d73a3f9b.js | 1 + web/settings/assets/counter-e13be6e6.js | 1 - web/settings/assets/counter-e48f1cfa.js | 1 + web/settings/assets/counter-e561a38d.js | 1 - web/settings/assets/counter-e616e2c9.js | 1 - web/settings/assets/counter-e67347b5.js | 1 - web/settings/assets/counter-e973c67a.js | 1 - web/settings/assets/counter-ea8191e1.js | 1 - web/settings/assets/counter-eadf5e57.js | 1 + web/settings/assets/counter-ecd56561.js | 1 - web/settings/assets/counter-f02f171d.js | 1 + web/settings/assets/counter-f2628932.js | 1 + web/settings/assets/counter-f54ee4df.js | 1 + web/settings/assets/counter-f8e5fc32.js | 1 + web/settings/assets/counter-fdd1cfe4.js | 1 + web/settings/assets/counter-fdeb4506.js | 1 + .../assets/counter_consumption-06ae199e.js | 1 + .../assets/counter_consumption-85e2b8b0.js | 1 - web/settings/assets/counter_sm-c406a4ca.js | 1 - web/settings/assets/counter_sm-e0173218.js | 1 + web/settings/assets/device-0146d660.js | 1 - web/settings/assets/device-022cb7a5.js | 1 + web/settings/assets/device-026ba885.js | 1 + web/settings/assets/device-04198354.js | 1 + web/settings/assets/device-05904d00.js | 1 + web/settings/assets/device-06ba50b0.js | 1 - web/settings/assets/device-07a65d9a.js | 1 + web/settings/assets/device-0bd3c0be.js | 1 + web/settings/assets/device-0ff1683d.js | 1 + web/settings/assets/device-1079b467.js | 1 - web/settings/assets/device-115ca373.js | 1 + web/settings/assets/device-14c83532.js | 1 + web/settings/assets/device-160ed507.js | 1 + web/settings/assets/device-18f8c834.js | 1 + web/settings/assets/device-1aafef64.js | 1 - web/settings/assets/device-1d483fa9.js | 1 - web/settings/assets/device-212d2c90.js | 1 - web/settings/assets/device-21e55a5c.js | 1 - web/settings/assets/device-2251901f.js | 1 + web/settings/assets/device-24f54dcc.js | 1 + web/settings/assets/device-25c93738.js | 1 - web/settings/assets/device-2671fef8.js | 1 + web/settings/assets/device-2c55f22c.js | 1 + web/settings/assets/device-2d3d73a0.js | 1 - web/settings/assets/device-2eabedb3.js | 1 - web/settings/assets/device-2f6474c4.js | 1 + web/settings/assets/device-30bde472.js | 1 + web/settings/assets/device-3169972d.js | 1 - web/settings/assets/device-32911862.js | 1 - web/settings/assets/device-32f19508.js | 1 - web/settings/assets/device-33ce1c99.js | 1 - web/settings/assets/device-34c2c399.js | 1 - web/settings/assets/device-34d3ea3d.js | 1 - web/settings/assets/device-35f7717e.js | 1 + web/settings/assets/device-37a05407.js | 1 + web/settings/assets/device-38f54860.js | 1 - web/settings/assets/device-3a871c58.js | 1 - web/settings/assets/device-3a96f207.js | 1 + web/settings/assets/device-3c6d5af6.js | 1 + web/settings/assets/device-3d201076.js | 1 - web/settings/assets/device-4359519d.js | 1 + web/settings/assets/device-444877fe.js | 1 + web/settings/assets/device-45750f00.js | 1 + web/settings/assets/device-46ed909c.js | 1 + web/settings/assets/device-47b44930.js | 1 - web/settings/assets/device-47cdfed3.js | 1 - web/settings/assets/device-4b1ba85f.js | 1 + web/settings/assets/device-4b49e69a.js | 1 + web/settings/assets/device-4bbfca01.js | 1 + web/settings/assets/device-4bcd2be1.js | 1 - web/settings/assets/device-4c47ea65.js | 1 + web/settings/assets/device-4d4342ed.js | 1 - web/settings/assets/device-4e9a92f2.js | 1 - web/settings/assets/device-52049b98.js | 1 + web/settings/assets/device-54b2f204.js | 1 + web/settings/assets/device-57c43c99.js | 1 + web/settings/assets/device-585500cc.js | 1 + web/settings/assets/device-5c141e99.js | 1 + web/settings/assets/device-5f5a7792.js | 1 - web/settings/assets/device-5fb1a238.js | 1 - web/settings/assets/device-6017ed76.js | 1 + web/settings/assets/device-6081837f.js | 1 + web/settings/assets/device-61c7a6a1.js | 1 - web/settings/assets/device-6342b415.js | 1 - web/settings/assets/device-66495188.js | 1 - web/settings/assets/device-679bd060.js | 1 - web/settings/assets/device-6844ebef.js | 1 - web/settings/assets/device-6b0c1cb1.js | 1 - web/settings/assets/device-6ea8eb37.js | 1 + web/settings/assets/device-73d2df08.js | 1 - web/settings/assets/device-7571a6e9.js | 1 - web/settings/assets/device-77ab491f.js | 1 + web/settings/assets/device-7a7db35b.js | 1 + web/settings/assets/device-7c75fb7c.js | 1 + web/settings/assets/device-7d03d320.js | 1 + web/settings/assets/device-7def54a5.js | 1 + web/settings/assets/device-7e0b9b28.js | 1 - web/settings/assets/device-803b339a.js | 1 + web/settings/assets/device-85d087eb.js | 1 - web/settings/assets/device-85f57776.js | 1 + web/settings/assets/device-86e0a461.js | 1 + web/settings/assets/device-8739b2fb.js | 1 + web/settings/assets/device-8ec43ff9.js | 1 + web/settings/assets/device-91624bc5.js | 1 + web/settings/assets/device-91d8873a.js | 1 + web/settings/assets/device-92fd7ab5.js | 1 - web/settings/assets/device-9308334a.js | 1 - web/settings/assets/device-960c8f20.js | 1 - web/settings/assets/device-972a24e1.js | 1 - web/settings/assets/device-9962b0b8.js | 1 + web/settings/assets/device-9dcf188a.js | 1 + web/settings/assets/device-9f3b6855.js | 1 - web/settings/assets/device-9fec4861.js | 1 + web/settings/assets/device-a0399988.js | 1 - web/settings/assets/device-a0f15220.js | 1 + web/settings/assets/device-a0fa95d4.js | 1 - web/settings/assets/device-a20ecbb0.js | 1 - web/settings/assets/device-a3e29987.js | 1 - web/settings/assets/device-a502d549.js | 1 - web/settings/assets/device-a8bcc901.js | 1 - web/settings/assets/device-aab545a0.js | 1 + web/settings/assets/device-ab579910.js | 1 + web/settings/assets/device-abd46e94.js | 1 + web/settings/assets/device-ad31bc6c.js | 1 + web/settings/assets/device-ae294c78.js | 1 - web/settings/assets/device-ae4f5ccf.js | 1 + web/settings/assets/device-af5d2d7d.js | 1 - web/settings/assets/device-b04921b7.js | 1 - web/settings/assets/device-b06c2ec2.js | 1 - web/settings/assets/device-b2f0a632.js | 1 + web/settings/assets/device-b2fa9413.js | 1 - web/settings/assets/device-b3265f86.js | 1 + web/settings/assets/device-b3818b6c.js | 1 + web/settings/assets/device-b565b033.js | 1 - web/settings/assets/device-b933a21c.js | 1 + web/settings/assets/device-b94aa2cd.js | 1 + web/settings/assets/device-bb1ccbe7.js | 1 + web/settings/assets/device-bb99b0ff.js | 1 - web/settings/assets/device-bba31079.js | 1 + web/settings/assets/device-c71ae302.js | 1 - web/settings/assets/device-c8921d75.js | 1 + web/settings/assets/device-c8cf58de.js | 1 - web/settings/assets/device-ca51cc16.js | 1 - web/settings/assets/device-cbf306be.js | 1 + web/settings/assets/device-cf37b016.js | 1 - web/settings/assets/device-d4ad788d.js | 1 - web/settings/assets/device-d7f94b0d.js | 1 + web/settings/assets/device-d8332f79.js | 1 + web/settings/assets/device-d8a93eb3.js | 1 - web/settings/assets/device-daf6231d.js | 1 + web/settings/assets/device-dcaf1061.js | 1 + web/settings/assets/device-e172cd2d.js | 1 - web/settings/assets/device-e30832ce.js | 1 - web/settings/assets/device-e379eb65.js | 1 + web/settings/assets/device-e4b96323.js | 1 - web/settings/assets/device-e7c95f73.js | 1 - web/settings/assets/device-ea2ecac8.js | 1 + web/settings/assets/device-ea6bfe36.js | 1 - web/settings/assets/device-ebeb6744.js | 1 - web/settings/assets/device-f05f6339.js | 1 - web/settings/assets/device-f0df93ee.js | 1 - web/settings/assets/device-f1807705.js | 1 - web/settings/assets/device-f410c3e0.js | 1 - web/settings/assets/device-faa6a2a5.js | 1 - web/settings/assets/device-fae6d510.js | 1 - web/settings/assets/device-fb490d78.js | 1 - web/settings/assets/device-fba9cb18.js | 1 + web/settings/assets/device-ff9290bd.js | 1 - web/settings/assets/displayTheme-717a89a9.js | 1 + web/settings/assets/displayTheme-a0bde809.js | 1 - web/settings/assets/displayTheme-a10769b7.js | 1 - web/settings/assets/displayTheme-cf89ddcd.js | 1 + .../assets/electricity_tariff-1a8bf599.js | 1 - .../assets/electricity_tariff-1ac1c5ab.js | 1 + .../assets/electricity_tariff-1c057408.js | 1 - .../assets/electricity_tariff-28b48a8b.js | 1 - .../assets/electricity_tariff-377f97e7.js | 1 + .../assets/electricity_tariff-6043bf73.js | 1 - .../assets/electricity_tariff-6a090d74.js | 1 + .../assets/electricity_tariff-701d2b86.js | 1 + .../assets/electricity_tariff-7bb00a2f.js | 1 + .../assets/electricity_tariff-88e75454.js | 1 - .../assets/electricity_tariff-8d854ff1.js | 1 + ...303f.js => electricity_tariff-ae11ea5d.js} | 2 +- .../assets/electricity_tariff-b47c4656.js | 1 - .../assets/electricity_tariff-cf2ab1f8.js | 1 + .../assets/electricity_tariff-d88859b8.js | 1 - .../assets/external_inverter-320c1f8c.js | 1 - .../assets/external_inverter-8e60306f.js | 1 + web/settings/assets/index-0992d19b.js | 1 - web/settings/assets/index-8dd8e083.js | 1 + web/settings/assets/inverter-00436be2.js | 1 - web/settings/assets/inverter-01923309.js | 1 + web/settings/assets/inverter-0b8cbadd.js | 1 + web/settings/assets/inverter-0e843ffe.js | 1 - web/settings/assets/inverter-1484b10b.js | 1 + web/settings/assets/inverter-157ed243.js | 1 - web/settings/assets/inverter-18ce5bf2.js | 1 - web/settings/assets/inverter-1dc39de7.js | 1 - web/settings/assets/inverter-218dfb39.js | 1 + web/settings/assets/inverter-22f3c475.js | 1 - web/settings/assets/inverter-254014f2.js | 1 + web/settings/assets/inverter-2e0b66fa.js | 1 - web/settings/assets/inverter-2e642f10.js | 1 + web/settings/assets/inverter-31446a68.js | 1 + web/settings/assets/inverter-32f9b72e.js | 1 - web/settings/assets/inverter-332388ea.js | 1 + web/settings/assets/inverter-3370b8b6.js | 1 + web/settings/assets/inverter-3ae089d3.js | 1 - web/settings/assets/inverter-3fe8754b.js | 1 + web/settings/assets/inverter-423aa924.js | 1 + web/settings/assets/inverter-45fa28a3.js | 1 - web/settings/assets/inverter-4621f53d.js | 1 - web/settings/assets/inverter-53355b39.js | 1 - web/settings/assets/inverter-5531e828.js | 1 + web/settings/assets/inverter-5ac0453f.js | 1 - web/settings/assets/inverter-63be17df.js | 1 - web/settings/assets/inverter-6427ac53.js | 1 + web/settings/assets/inverter-71b44c07.js | 1 - web/settings/assets/inverter-7afcc2ba.js | 1 + web/settings/assets/inverter-7bb16085.js | 1 - web/settings/assets/inverter-7bea2389.js | 1 + web/settings/assets/inverter-7de7992b.js | 1 - web/settings/assets/inverter-7eb695ef.js | 1 - web/settings/assets/inverter-7ff3cd0f.js | 1 - web/settings/assets/inverter-809f70c1.js | 1 + web/settings/assets/inverter-811d2fd2.js | 1 + web/settings/assets/inverter-84112ddc.js | 1 - web/settings/assets/inverter-8ac71de3.js | 1 - web/settings/assets/inverter-9022a53b.js | 1 + web/settings/assets/inverter-91e7bfd3.js | 1 - web/settings/assets/inverter-948bcdb7.js | 1 + web/settings/assets/inverter-96158dd7.js | 1 + web/settings/assets/inverter-97aca950.js | 1 + web/settings/assets/inverter-aa3864d0.js | 1 - web/settings/assets/inverter-b1698e75.js | 1 - web/settings/assets/inverter-b447983e.js | 1 + web/settings/assets/inverter-b490ca31.js | 1 + web/settings/assets/inverter-b99fda43.js | 1 + web/settings/assets/inverter-bb0b052c.js | 1 - web/settings/assets/inverter-bc849b92.js | 1 + web/settings/assets/inverter-d41890ab.js | 1 + web/settings/assets/inverter-d8aa0787.js | 1 - web/settings/assets/inverter-d8e7de15.js | 1 + web/settings/assets/inverter-da07e623.js | 1 - web/settings/assets/inverter-e3f0ea6e.js | 1 - web/settings/assets/inverter-e626a82d.js | 1 + web/settings/assets/inverter-e6cbd119.js | 1 - web/settings/assets/inverter-ea38ab2a.js | 1 + web/settings/assets/inverter-ee06ed09.js | 1 - web/settings/assets/inverter-f1be98fb.js | 1 + web/settings/assets/inverter-f4ccd46a.js | 1 + web/settings/assets/inverter-fb7b4862.js | 1 - .../assets/inverter_secondary-63cbb85c.js | 1 - .../assets/inverter_secondary-be8c6f76.js | 1 + web/settings/assets/io_action-639b3028.js | 1 + ...tion-7d03813b.js => io_action-7fdda1cd.js} | 2 +- ...tion-cd694bad.js => io_action-a52c3f8c.js} | 2 +- ...tion-c74be46e.js => io_action-d6457738.js} | 2 +- web/settings/assets/io_action-fc96684d.js | 1 - web/settings/assets/io_device-4394e2dd.js | 1 + web/settings/assets/io_device-85eefe72.js | 1 - ...vice-bab7e132.js => io_device-e4d01342.js} | 2 +- web/settings/assets/monitoring-14acb64f.js | 1 - web/settings/assets/monitoring-1f99e249.js | 1 + web/settings/assets/vehicle-04c99766.js | 1 + web/settings/assets/vehicle-0bf59308.js | 1 - ...ehicle-eec1770e.js => vehicle-16754a95.js} | 2 +- web/settings/assets/vehicle-16e46ceb.js | 1 - web/settings/assets/vehicle-38543ffd.js | 1 + web/settings/assets/vehicle-3896a2ec.js | 1 + web/settings/assets/vehicle-3cb9cb75.js | 1 + web/settings/assets/vehicle-432a8e97.js | 1 - web/settings/assets/vehicle-4a5ca121.js | 1 + web/settings/assets/vehicle-5d3ec9e7.js | 1 - ...ehicle-1b6d0189.js => vehicle-65e3046c.js} | 2 +- web/settings/assets/vehicle-66cc49e0.js | 1 - web/settings/assets/vehicle-673ea579.js | 1 + web/settings/assets/vehicle-70e7db8e.js | 1 + web/settings/assets/vehicle-8289a840.js | 1 + web/settings/assets/vehicle-8c0aaa75.js | 1 + web/settings/assets/vehicle-8cf65d4b.js | 1 - web/settings/assets/vehicle-8ef77206.js | 1 - web/settings/assets/vehicle-904e1b9a.js | 1 - web/settings/assets/vehicle-9505d809.js | 1 + web/settings/assets/vehicle-98b9fcdb.js | 1 + web/settings/assets/vehicle-9efbb8ea.js | 1 + web/settings/assets/vehicle-a118bbc8.js | 1 - web/settings/assets/vehicle-b82069af.js | 1 + web/settings/assets/vehicle-bd25f961.js | 1 - web/settings/assets/vehicle-bf282483.js | 1 - web/settings/assets/vehicle-c70b570d.js | 1 - web/settings/assets/vehicle-c7df15c6.js | 1 - web/settings/assets/vehicle-da3e8433.js | 1 + web/settings/assets/vehicle-dddd8c6f.js | 1 - web/settings/assets/vehicle-e0cbc84a.js | 1 + web/settings/assets/vehicle-e45de3aa.js | 1 + web/settings/assets/vehicle-edb9af18.js | 1 - web/settings/assets/vehicle-edca70a6.js | 1 - web/settings/assets/vehicle-f2b05f39.js | 1 + web/settings/assets/vehicle-f35ebd53.js | 1 - web/settings/assets/vehicle-f4c3c45b.js | 1 - web/settings/assets/vehicle-fbca4a35.js | 1 + ...ehicle-33bf94c2.js => vehicle-fe38074f.js} | 2 +- ...{vendor-36bf053b.js => vendor-25d394b4.js} | 86 +++++++++---------- web/settings/assets/vendor-axios-090d6ce2.js | 6 -- web/settings/assets/vendor-axios-ac33d60c.js | 6 ++ ...ba0f33.js => vendor-bootstrap-374cd88e.js} | 2 +- ...43b0fa2b.js => vendor-chartjs-94a826eb.js} | 2 +- ...91bb.js => vendor-fortawesome-a02b6813.js} | 2 +- ...-ffd3fdac.js => vendor-jquery-3364d39b.js} | 2 +- ...24a33.js => vendor-sortablejs-0eb84ec8.js} | 2 +- web/settings/assets/webTheme-3d6548f9.js | 1 + web/settings/assets/webTheme-5cb70cc5.js | 1 + web/settings/assets/webTheme-866069f2.js | 1 - web/settings/assets/webTheme-afd39c5a.js | 1 - web/settings/index.html | 14 +-- 509 files changed, 326 insertions(+), 326 deletions(-) rename web/settings/assets/{ChargeLog-9b005407.js => ChargeLog-40aaca0a.js} (76%) create mode 100644 web/settings/assets/ChargePointInstallation-7e22d920.js delete mode 100644 web/settings/assets/ChargePointInstallation-81239155.js rename web/settings/assets/{Chart-bf0ff6a8.js => Chart-0e7a4a70.js} (89%) create mode 100644 web/settings/assets/CloudConfig-1f382920.js delete mode 100644 web/settings/assets/CloudConfig-fd8466da.js create mode 100644 web/settings/assets/DataManagement-52054445.js delete mode 100644 web/settings/assets/DataManagement-81c5a852.js rename web/settings/assets/{DebugConfig-9a9e00cc.js => DebugConfig-044b24f7.js} (58%) delete mode 100644 web/settings/assets/GeneralChargeConfig-0f9eaa85.js create mode 100644 web/settings/assets/GeneralChargeConfig-d70b0d95.js delete mode 100644 web/settings/assets/GeneralConfig-5de8d06f.js create mode 100644 web/settings/assets/GeneralConfig-cc87a1f9.js delete mode 100644 web/settings/assets/HardwareInstallation-35a2a562.js create mode 100644 web/settings/assets/HardwareInstallation-be759b0c.js delete mode 100644 web/settings/assets/IdentificationConfig-3d28d565.js create mode 100644 web/settings/assets/IdentificationConfig-a3531ccb.js create mode 100644 web/settings/assets/InstallAssistant-56db2231.js delete mode 100644 web/settings/assets/InstallAssistant-bd77c405.js delete mode 100644 web/settings/assets/InstallAssistantStep0-945d70d5.js create mode 100644 web/settings/assets/InstallAssistantStep0-acacfc75.js delete mode 100644 web/settings/assets/InstallAssistantStep1-5c749d29.js create mode 100644 web/settings/assets/InstallAssistantStep1-a93e968d.js create mode 100644 web/settings/assets/InstallAssistantStep10-3d573bb7.js delete mode 100644 web/settings/assets/InstallAssistantStep10-bbcd7854.js delete mode 100644 web/settings/assets/InstallAssistantStep2-77cc84d7.js create mode 100644 web/settings/assets/InstallAssistantStep2-b4941f0c.js delete mode 100644 web/settings/assets/InstallAssistantStep3-209bef66.js create mode 100644 web/settings/assets/InstallAssistantStep3-b0741703.js delete mode 100644 web/settings/assets/InstallAssistantStep4-efa21e90.js create mode 100644 web/settings/assets/InstallAssistantStep4-f46d2116.js delete mode 100644 web/settings/assets/InstallAssistantStep4.1-7846b3e0.js create mode 100644 web/settings/assets/InstallAssistantStep4.1-8b2ae23f.js create mode 100644 web/settings/assets/InstallAssistantStep5-4a85dca5.js delete mode 100644 web/settings/assets/InstallAssistantStep5-7199c2d2.js create mode 100644 web/settings/assets/InstallAssistantStep6-5c9750cb.js delete mode 100644 web/settings/assets/InstallAssistantStep6-d428a8b2.js create mode 100644 web/settings/assets/InstallAssistantStep7-2bd98bf0.js delete mode 100644 web/settings/assets/InstallAssistantStep7-5a0be87c.js rename web/settings/assets/{InstallAssistantStep8-16380cdc.js => InstallAssistantStep8-23be5b5b.js} (85%) create mode 100644 web/settings/assets/InstallAssistantStep9-1aa5b6bf.js delete mode 100644 web/settings/assets/InstallAssistantStep9-32a8ab2b.js create mode 100644 web/settings/assets/InstallAssistantStepTemplate-59e1095f.js delete mode 100644 web/settings/assets/InstallAssistantStepTemplate-68e25e8a.js create mode 100644 web/settings/assets/IoConfig-38958e2e.js delete mode 100644 web/settings/assets/IoConfig-de1d5cc2.js rename web/settings/assets/{LegalSettings-ca527aea.js => LegalSettings-20201125.js} (51%) delete mode 100644 web/settings/assets/LoadManagementConfig-161f6124.js create mode 100644 web/settings/assets/LoadManagementConfig-61263fe6.js delete mode 100644 web/settings/assets/MqttBridgeConfig-187cba4b.js create mode 100644 web/settings/assets/MqttBridgeConfig-59050cb8.js create mode 100644 web/settings/assets/OpenwbIoPattern-66bb2793.js delete mode 100644 web/settings/assets/OpenwbIoPattern-6f003fb0.js rename web/settings/assets/{OpenwbIoSinglePattern-b3081980.js => OpenwbIoSinglePattern-14df64f6.js} (97%) rename web/settings/assets/{OpenwbSortableList-0d1f7c1c.js => OpenwbSortableList-c7b5b151.js} (92%) create mode 100644 web/settings/assets/OptionalComponents-a2c47c92.js delete mode 100644 web/settings/assets/OptionalComponents-f8223e02.js delete mode 100644 web/settings/assets/PVChargeConfig-9ed443e9.js create mode 100644 web/settings/assets/PVChargeConfig-b6b84699.js delete mode 100644 web/settings/assets/Status-526393e2.js create mode 100644 web/settings/assets/Status-76832ed9.js create mode 100644 web/settings/assets/Support-25ac4d94.js delete mode 100644 web/settings/assets/Support-31be3475.js delete mode 100644 web/settings/assets/System-5edeb34f.js create mode 100644 web/settings/assets/System-9f60a387.js delete mode 100644 web/settings/assets/TestingStore-28ad7b75.js create mode 100644 web/settings/assets/TestingStore-3a739645.js delete mode 100644 web/settings/assets/VehicleConfig-233066dd.js create mode 100644 web/settings/assets/VehicleConfig-c6e5b45b.js create mode 100644 web/settings/assets/backup_cloud-0a9a4a8d.js delete mode 100644 web/settings/assets/backup_cloud-1f3db513.js create mode 100644 web/settings/assets/backup_cloud-5420b416.js create mode 100644 web/settings/assets/backup_cloud-66a4543e.js delete mode 100644 web/settings/assets/backup_cloud-71423bc2.js delete mode 100644 web/settings/assets/backup_cloud-9c3ef2b9.js delete mode 100644 web/settings/assets/backup_cloud-d6cfecbd.js create mode 100644 web/settings/assets/backup_cloud-e3708975.js create mode 100644 web/settings/assets/bat-01a2f194.js create mode 100644 web/settings/assets/bat-02c96333.js delete mode 100644 web/settings/assets/bat-038c6dbc.js delete mode 100644 web/settings/assets/bat-079d4f24.js delete mode 100644 web/settings/assets/bat-13872887.js create mode 100644 web/settings/assets/bat-18693c33.js create mode 100644 web/settings/assets/bat-1ad29484.js delete mode 100644 web/settings/assets/bat-1c0d64c4.js create mode 100644 web/settings/assets/bat-1e5462e4.js create mode 100644 web/settings/assets/bat-24ebfa6e.js create mode 100644 web/settings/assets/bat-2e0391d4.js create mode 100644 web/settings/assets/bat-313da7a3.js delete mode 100644 web/settings/assets/bat-351d44cb.js create mode 100644 web/settings/assets/bat-381c4030.js delete mode 100644 web/settings/assets/bat-4c47ac06.js create mode 100644 web/settings/assets/bat-5276ac71.js create mode 100644 web/settings/assets/bat-5c9d3bae.js delete mode 100644 web/settings/assets/bat-6a84ad0b.js delete mode 100644 web/settings/assets/bat-6bbc2804.js delete mode 100644 web/settings/assets/bat-6ce1b18c.js create mode 100644 web/settings/assets/bat-74a30937.js delete mode 100644 web/settings/assets/bat-7fd552d4.js delete mode 100644 web/settings/assets/bat-847c06c8.js delete mode 100644 web/settings/assets/bat-9e0becca.js create mode 100644 web/settings/assets/bat-9f789e09.js delete mode 100644 web/settings/assets/bat-a55e5a44.js create mode 100644 web/settings/assets/bat-be5c48ce.js delete mode 100644 web/settings/assets/bat-c0ad8e73.js delete mode 100644 web/settings/assets/bat-c6548e6d.js create mode 100644 web/settings/assets/bat-caa2d54a.js delete mode 100644 web/settings/assets/bat-cd102e51.js delete mode 100644 web/settings/assets/bat-d2acbf13.js create mode 100644 web/settings/assets/bat-d365c2cb.js delete mode 100644 web/settings/assets/bat-d6b81877.js delete mode 100644 web/settings/assets/bat-dd5956f5.js create mode 100644 web/settings/assets/bat-e176c2ff.js create mode 100644 web/settings/assets/bat-e326742a.js delete mode 100644 web/settings/assets/bat-e3a454fb.js create mode 100644 web/settings/assets/bat-e4f98942.js delete mode 100644 web/settings/assets/bat-e8342943.js create mode 100644 web/settings/assets/bat-e9ec040d.js create mode 100644 web/settings/assets/bat-efda0fab.js create mode 100644 web/settings/assets/bat-f72ba579.js delete mode 100644 web/settings/assets/bat-fdb9e37e.js delete mode 100644 web/settings/assets/bat_smart_energy-5d1a08e4.js create mode 100644 web/settings/assets/bat_smart_energy-af221efd.js create mode 100644 web/settings/assets/chargePoint-04f787ef.js delete mode 100644 web/settings/assets/chargePoint-2a30a0c1.js rename web/settings/assets/{chargePoint-e515f3fa.js => chargePoint-5ae09ebd.js} (59%) create mode 100644 web/settings/assets/chargePoint-5d28cfe6.js delete mode 100644 web/settings/assets/chargePoint-5f7a56d3.js delete mode 100644 web/settings/assets/chargePoint-73256b81.js create mode 100644 web/settings/assets/chargePoint-8808c043.js rename web/settings/assets/{chargePoint-275481b9.js => chargePoint-b9360c52.js} (63%) create mode 100644 web/settings/assets/chargePoint-c7a2ef8c.js delete mode 100644 web/settings/assets/chargePoint-c8dd557f.js rename web/settings/assets/{chargePoint-ee9642cb.js => chargePoint-d206a228.js} (59%) rename web/settings/assets/{commands-425a88ce.js => commands-6baac453.js} (59%) rename web/settings/assets/{commands-270f1fee.js => commands-c6ddc747.js} (54%) create mode 100644 web/settings/assets/consumption_counter-1c9b3251.js delete mode 100644 web/settings/assets/consumption_counter-7647f4a4.js delete mode 100644 web/settings/assets/counter-005ba391.js create mode 100644 web/settings/assets/counter-01d8e9a4.js delete mode 100644 web/settings/assets/counter-12125a94.js create mode 100644 web/settings/assets/counter-1346ff10.js create mode 100644 web/settings/assets/counter-165ce997.js create mode 100644 web/settings/assets/counter-189db4df.js delete mode 100644 web/settings/assets/counter-18ecc868.js create mode 100644 web/settings/assets/counter-1f565ee4.js create mode 100644 web/settings/assets/counter-21bc2bc2.js delete mode 100644 web/settings/assets/counter-21ec5341.js delete mode 100644 web/settings/assets/counter-22e7f700.js create mode 100644 web/settings/assets/counter-2438b11a.js create mode 100644 web/settings/assets/counter-2aac942b.js delete mode 100644 web/settings/assets/counter-2d3ea68b.js delete mode 100644 web/settings/assets/counter-2dd2fa82.js delete mode 100644 web/settings/assets/counter-303bf50e.js delete mode 100644 web/settings/assets/counter-318086b9.js create mode 100644 web/settings/assets/counter-32894ee7.js create mode 100644 web/settings/assets/counter-332c42a7.js create mode 100644 web/settings/assets/counter-37d67776.js create mode 100644 web/settings/assets/counter-3c133de8.js create mode 100644 web/settings/assets/counter-3e1bf7f1.js delete mode 100644 web/settings/assets/counter-42cbd56b.js delete mode 100644 web/settings/assets/counter-46dc9236.js delete mode 100644 web/settings/assets/counter-487594bd.js delete mode 100644 web/settings/assets/counter-4b7a987f.js delete mode 100644 web/settings/assets/counter-4baa81b9.js delete mode 100644 web/settings/assets/counter-4d76f760.js delete mode 100644 web/settings/assets/counter-537c4dfd.js create mode 100644 web/settings/assets/counter-57c49ae6.js delete mode 100644 web/settings/assets/counter-5aade8ee.js delete mode 100644 web/settings/assets/counter-65d7531d.js delete mode 100644 web/settings/assets/counter-681c80fe.js create mode 100644 web/settings/assets/counter-6e1d95d5.js delete mode 100644 web/settings/assets/counter-6e58a73c.js create mode 100644 web/settings/assets/counter-70b03053.js create mode 100644 web/settings/assets/counter-70de76b4.js create mode 100644 web/settings/assets/counter-76544a83.js create mode 100644 web/settings/assets/counter-81dd5705.js delete mode 100644 web/settings/assets/counter-863bf61e.js create mode 100644 web/settings/assets/counter-8725308d.js delete mode 100644 web/settings/assets/counter-88df4b61.js create mode 100644 web/settings/assets/counter-8950294b.js delete mode 100644 web/settings/assets/counter-8b0a5a6c.js delete mode 100644 web/settings/assets/counter-9a54a193.js delete mode 100644 web/settings/assets/counter-9b4e6f3b.js delete mode 100644 web/settings/assets/counter-9d15865c.js delete mode 100644 web/settings/assets/counter-a51921e1.js create mode 100644 web/settings/assets/counter-aa5bda67.js create mode 100644 web/settings/assets/counter-ac45f9c2.js delete mode 100644 web/settings/assets/counter-ad8342b8.js create mode 100644 web/settings/assets/counter-c21587d3.js create mode 100644 web/settings/assets/counter-c7ccca56.js create mode 100644 web/settings/assets/counter-d72adf8c.js create mode 100644 web/settings/assets/counter-d73a3f9b.js delete mode 100644 web/settings/assets/counter-e13be6e6.js create mode 100644 web/settings/assets/counter-e48f1cfa.js delete mode 100644 web/settings/assets/counter-e561a38d.js delete mode 100644 web/settings/assets/counter-e616e2c9.js delete mode 100644 web/settings/assets/counter-e67347b5.js delete mode 100644 web/settings/assets/counter-e973c67a.js delete mode 100644 web/settings/assets/counter-ea8191e1.js create mode 100644 web/settings/assets/counter-eadf5e57.js delete mode 100644 web/settings/assets/counter-ecd56561.js create mode 100644 web/settings/assets/counter-f02f171d.js create mode 100644 web/settings/assets/counter-f2628932.js create mode 100644 web/settings/assets/counter-f54ee4df.js create mode 100644 web/settings/assets/counter-f8e5fc32.js create mode 100644 web/settings/assets/counter-fdd1cfe4.js create mode 100644 web/settings/assets/counter-fdeb4506.js create mode 100644 web/settings/assets/counter_consumption-06ae199e.js delete mode 100644 web/settings/assets/counter_consumption-85e2b8b0.js delete mode 100644 web/settings/assets/counter_sm-c406a4ca.js create mode 100644 web/settings/assets/counter_sm-e0173218.js delete mode 100644 web/settings/assets/device-0146d660.js create mode 100644 web/settings/assets/device-022cb7a5.js create mode 100644 web/settings/assets/device-026ba885.js create mode 100644 web/settings/assets/device-04198354.js create mode 100644 web/settings/assets/device-05904d00.js delete mode 100644 web/settings/assets/device-06ba50b0.js create mode 100644 web/settings/assets/device-07a65d9a.js create mode 100644 web/settings/assets/device-0bd3c0be.js create mode 100644 web/settings/assets/device-0ff1683d.js delete mode 100644 web/settings/assets/device-1079b467.js create mode 100644 web/settings/assets/device-115ca373.js create mode 100644 web/settings/assets/device-14c83532.js create mode 100644 web/settings/assets/device-160ed507.js create mode 100644 web/settings/assets/device-18f8c834.js delete mode 100644 web/settings/assets/device-1aafef64.js delete mode 100644 web/settings/assets/device-1d483fa9.js delete mode 100644 web/settings/assets/device-212d2c90.js delete mode 100644 web/settings/assets/device-21e55a5c.js create mode 100644 web/settings/assets/device-2251901f.js create mode 100644 web/settings/assets/device-24f54dcc.js delete mode 100644 web/settings/assets/device-25c93738.js create mode 100644 web/settings/assets/device-2671fef8.js create mode 100644 web/settings/assets/device-2c55f22c.js delete mode 100644 web/settings/assets/device-2d3d73a0.js delete mode 100644 web/settings/assets/device-2eabedb3.js create mode 100644 web/settings/assets/device-2f6474c4.js create mode 100644 web/settings/assets/device-30bde472.js delete mode 100644 web/settings/assets/device-3169972d.js delete mode 100644 web/settings/assets/device-32911862.js delete mode 100644 web/settings/assets/device-32f19508.js delete mode 100644 web/settings/assets/device-33ce1c99.js delete mode 100644 web/settings/assets/device-34c2c399.js delete mode 100644 web/settings/assets/device-34d3ea3d.js create mode 100644 web/settings/assets/device-35f7717e.js create mode 100644 web/settings/assets/device-37a05407.js delete mode 100644 web/settings/assets/device-38f54860.js delete mode 100644 web/settings/assets/device-3a871c58.js create mode 100644 web/settings/assets/device-3a96f207.js create mode 100644 web/settings/assets/device-3c6d5af6.js delete mode 100644 web/settings/assets/device-3d201076.js create mode 100644 web/settings/assets/device-4359519d.js create mode 100644 web/settings/assets/device-444877fe.js create mode 100644 web/settings/assets/device-45750f00.js create mode 100644 web/settings/assets/device-46ed909c.js delete mode 100644 web/settings/assets/device-47b44930.js delete mode 100644 web/settings/assets/device-47cdfed3.js create mode 100644 web/settings/assets/device-4b1ba85f.js create mode 100644 web/settings/assets/device-4b49e69a.js create mode 100644 web/settings/assets/device-4bbfca01.js delete mode 100644 web/settings/assets/device-4bcd2be1.js create mode 100644 web/settings/assets/device-4c47ea65.js delete mode 100644 web/settings/assets/device-4d4342ed.js delete mode 100644 web/settings/assets/device-4e9a92f2.js create mode 100644 web/settings/assets/device-52049b98.js create mode 100644 web/settings/assets/device-54b2f204.js create mode 100644 web/settings/assets/device-57c43c99.js create mode 100644 web/settings/assets/device-585500cc.js create mode 100644 web/settings/assets/device-5c141e99.js delete mode 100644 web/settings/assets/device-5f5a7792.js delete mode 100644 web/settings/assets/device-5fb1a238.js create mode 100644 web/settings/assets/device-6017ed76.js create mode 100644 web/settings/assets/device-6081837f.js delete mode 100644 web/settings/assets/device-61c7a6a1.js delete mode 100644 web/settings/assets/device-6342b415.js delete mode 100644 web/settings/assets/device-66495188.js delete mode 100644 web/settings/assets/device-679bd060.js delete mode 100644 web/settings/assets/device-6844ebef.js delete mode 100644 web/settings/assets/device-6b0c1cb1.js create mode 100644 web/settings/assets/device-6ea8eb37.js delete mode 100644 web/settings/assets/device-73d2df08.js delete mode 100644 web/settings/assets/device-7571a6e9.js create mode 100644 web/settings/assets/device-77ab491f.js create mode 100644 web/settings/assets/device-7a7db35b.js create mode 100644 web/settings/assets/device-7c75fb7c.js create mode 100644 web/settings/assets/device-7d03d320.js create mode 100644 web/settings/assets/device-7def54a5.js delete mode 100644 web/settings/assets/device-7e0b9b28.js create mode 100644 web/settings/assets/device-803b339a.js delete mode 100644 web/settings/assets/device-85d087eb.js create mode 100644 web/settings/assets/device-85f57776.js create mode 100644 web/settings/assets/device-86e0a461.js create mode 100644 web/settings/assets/device-8739b2fb.js create mode 100644 web/settings/assets/device-8ec43ff9.js create mode 100644 web/settings/assets/device-91624bc5.js create mode 100644 web/settings/assets/device-91d8873a.js delete mode 100644 web/settings/assets/device-92fd7ab5.js delete mode 100644 web/settings/assets/device-9308334a.js delete mode 100644 web/settings/assets/device-960c8f20.js delete mode 100644 web/settings/assets/device-972a24e1.js create mode 100644 web/settings/assets/device-9962b0b8.js create mode 100644 web/settings/assets/device-9dcf188a.js delete mode 100644 web/settings/assets/device-9f3b6855.js create mode 100644 web/settings/assets/device-9fec4861.js delete mode 100644 web/settings/assets/device-a0399988.js create mode 100644 web/settings/assets/device-a0f15220.js delete mode 100644 web/settings/assets/device-a0fa95d4.js delete mode 100644 web/settings/assets/device-a20ecbb0.js delete mode 100644 web/settings/assets/device-a3e29987.js delete mode 100644 web/settings/assets/device-a502d549.js delete mode 100644 web/settings/assets/device-a8bcc901.js create mode 100644 web/settings/assets/device-aab545a0.js create mode 100644 web/settings/assets/device-ab579910.js create mode 100644 web/settings/assets/device-abd46e94.js create mode 100644 web/settings/assets/device-ad31bc6c.js delete mode 100644 web/settings/assets/device-ae294c78.js create mode 100644 web/settings/assets/device-ae4f5ccf.js delete mode 100644 web/settings/assets/device-af5d2d7d.js delete mode 100644 web/settings/assets/device-b04921b7.js delete mode 100644 web/settings/assets/device-b06c2ec2.js create mode 100644 web/settings/assets/device-b2f0a632.js delete mode 100644 web/settings/assets/device-b2fa9413.js create mode 100644 web/settings/assets/device-b3265f86.js create mode 100644 web/settings/assets/device-b3818b6c.js delete mode 100644 web/settings/assets/device-b565b033.js create mode 100644 web/settings/assets/device-b933a21c.js create mode 100644 web/settings/assets/device-b94aa2cd.js create mode 100644 web/settings/assets/device-bb1ccbe7.js delete mode 100644 web/settings/assets/device-bb99b0ff.js create mode 100644 web/settings/assets/device-bba31079.js delete mode 100644 web/settings/assets/device-c71ae302.js create mode 100644 web/settings/assets/device-c8921d75.js delete mode 100644 web/settings/assets/device-c8cf58de.js delete mode 100644 web/settings/assets/device-ca51cc16.js create mode 100644 web/settings/assets/device-cbf306be.js delete mode 100644 web/settings/assets/device-cf37b016.js delete mode 100644 web/settings/assets/device-d4ad788d.js create mode 100644 web/settings/assets/device-d7f94b0d.js create mode 100644 web/settings/assets/device-d8332f79.js delete mode 100644 web/settings/assets/device-d8a93eb3.js create mode 100644 web/settings/assets/device-daf6231d.js create mode 100644 web/settings/assets/device-dcaf1061.js delete mode 100644 web/settings/assets/device-e172cd2d.js delete mode 100644 web/settings/assets/device-e30832ce.js create mode 100644 web/settings/assets/device-e379eb65.js delete mode 100644 web/settings/assets/device-e4b96323.js delete mode 100644 web/settings/assets/device-e7c95f73.js create mode 100644 web/settings/assets/device-ea2ecac8.js delete mode 100644 web/settings/assets/device-ea6bfe36.js delete mode 100644 web/settings/assets/device-ebeb6744.js delete mode 100644 web/settings/assets/device-f05f6339.js delete mode 100644 web/settings/assets/device-f0df93ee.js delete mode 100644 web/settings/assets/device-f1807705.js delete mode 100644 web/settings/assets/device-f410c3e0.js delete mode 100644 web/settings/assets/device-faa6a2a5.js delete mode 100644 web/settings/assets/device-fae6d510.js delete mode 100644 web/settings/assets/device-fb490d78.js create mode 100644 web/settings/assets/device-fba9cb18.js delete mode 100644 web/settings/assets/device-ff9290bd.js create mode 100644 web/settings/assets/displayTheme-717a89a9.js delete mode 100644 web/settings/assets/displayTheme-a0bde809.js delete mode 100644 web/settings/assets/displayTheme-a10769b7.js create mode 100644 web/settings/assets/displayTheme-cf89ddcd.js delete mode 100644 web/settings/assets/electricity_tariff-1a8bf599.js create mode 100644 web/settings/assets/electricity_tariff-1ac1c5ab.js delete mode 100644 web/settings/assets/electricity_tariff-1c057408.js delete mode 100644 web/settings/assets/electricity_tariff-28b48a8b.js create mode 100644 web/settings/assets/electricity_tariff-377f97e7.js delete mode 100644 web/settings/assets/electricity_tariff-6043bf73.js create mode 100644 web/settings/assets/electricity_tariff-6a090d74.js create mode 100644 web/settings/assets/electricity_tariff-701d2b86.js create mode 100644 web/settings/assets/electricity_tariff-7bb00a2f.js delete mode 100644 web/settings/assets/electricity_tariff-88e75454.js create mode 100644 web/settings/assets/electricity_tariff-8d854ff1.js rename web/settings/assets/{electricity_tariff-bb9b303f.js => electricity_tariff-ae11ea5d.js} (72%) delete mode 100644 web/settings/assets/electricity_tariff-b47c4656.js create mode 100644 web/settings/assets/electricity_tariff-cf2ab1f8.js delete mode 100644 web/settings/assets/electricity_tariff-d88859b8.js delete mode 100644 web/settings/assets/external_inverter-320c1f8c.js create mode 100644 web/settings/assets/external_inverter-8e60306f.js delete mode 100644 web/settings/assets/index-0992d19b.js create mode 100644 web/settings/assets/index-8dd8e083.js delete mode 100644 web/settings/assets/inverter-00436be2.js create mode 100644 web/settings/assets/inverter-01923309.js create mode 100644 web/settings/assets/inverter-0b8cbadd.js delete mode 100644 web/settings/assets/inverter-0e843ffe.js create mode 100644 web/settings/assets/inverter-1484b10b.js delete mode 100644 web/settings/assets/inverter-157ed243.js delete mode 100644 web/settings/assets/inverter-18ce5bf2.js delete mode 100644 web/settings/assets/inverter-1dc39de7.js create mode 100644 web/settings/assets/inverter-218dfb39.js delete mode 100644 web/settings/assets/inverter-22f3c475.js create mode 100644 web/settings/assets/inverter-254014f2.js delete mode 100644 web/settings/assets/inverter-2e0b66fa.js create mode 100644 web/settings/assets/inverter-2e642f10.js create mode 100644 web/settings/assets/inverter-31446a68.js delete mode 100644 web/settings/assets/inverter-32f9b72e.js create mode 100644 web/settings/assets/inverter-332388ea.js create mode 100644 web/settings/assets/inverter-3370b8b6.js delete mode 100644 web/settings/assets/inverter-3ae089d3.js create mode 100644 web/settings/assets/inverter-3fe8754b.js create mode 100644 web/settings/assets/inverter-423aa924.js delete mode 100644 web/settings/assets/inverter-45fa28a3.js delete mode 100644 web/settings/assets/inverter-4621f53d.js delete mode 100644 web/settings/assets/inverter-53355b39.js create mode 100644 web/settings/assets/inverter-5531e828.js delete mode 100644 web/settings/assets/inverter-5ac0453f.js delete mode 100644 web/settings/assets/inverter-63be17df.js create mode 100644 web/settings/assets/inverter-6427ac53.js delete mode 100644 web/settings/assets/inverter-71b44c07.js create mode 100644 web/settings/assets/inverter-7afcc2ba.js delete mode 100644 web/settings/assets/inverter-7bb16085.js create mode 100644 web/settings/assets/inverter-7bea2389.js delete mode 100644 web/settings/assets/inverter-7de7992b.js delete mode 100644 web/settings/assets/inverter-7eb695ef.js delete mode 100644 web/settings/assets/inverter-7ff3cd0f.js create mode 100644 web/settings/assets/inverter-809f70c1.js create mode 100644 web/settings/assets/inverter-811d2fd2.js delete mode 100644 web/settings/assets/inverter-84112ddc.js delete mode 100644 web/settings/assets/inverter-8ac71de3.js create mode 100644 web/settings/assets/inverter-9022a53b.js delete mode 100644 web/settings/assets/inverter-91e7bfd3.js create mode 100644 web/settings/assets/inverter-948bcdb7.js create mode 100644 web/settings/assets/inverter-96158dd7.js create mode 100644 web/settings/assets/inverter-97aca950.js delete mode 100644 web/settings/assets/inverter-aa3864d0.js delete mode 100644 web/settings/assets/inverter-b1698e75.js create mode 100644 web/settings/assets/inverter-b447983e.js create mode 100644 web/settings/assets/inverter-b490ca31.js create mode 100644 web/settings/assets/inverter-b99fda43.js delete mode 100644 web/settings/assets/inverter-bb0b052c.js create mode 100644 web/settings/assets/inverter-bc849b92.js create mode 100644 web/settings/assets/inverter-d41890ab.js delete mode 100644 web/settings/assets/inverter-d8aa0787.js create mode 100644 web/settings/assets/inverter-d8e7de15.js delete mode 100644 web/settings/assets/inverter-da07e623.js delete mode 100644 web/settings/assets/inverter-e3f0ea6e.js create mode 100644 web/settings/assets/inverter-e626a82d.js delete mode 100644 web/settings/assets/inverter-e6cbd119.js create mode 100644 web/settings/assets/inverter-ea38ab2a.js delete mode 100644 web/settings/assets/inverter-ee06ed09.js create mode 100644 web/settings/assets/inverter-f1be98fb.js create mode 100644 web/settings/assets/inverter-f4ccd46a.js delete mode 100644 web/settings/assets/inverter-fb7b4862.js delete mode 100644 web/settings/assets/inverter_secondary-63cbb85c.js create mode 100644 web/settings/assets/inverter_secondary-be8c6f76.js create mode 100644 web/settings/assets/io_action-639b3028.js rename web/settings/assets/{io_action-7d03813b.js => io_action-7fdda1cd.js} (60%) rename web/settings/assets/{io_action-cd694bad.js => io_action-a52c3f8c.js} (50%) rename web/settings/assets/{io_action-c74be46e.js => io_action-d6457738.js} (59%) delete mode 100644 web/settings/assets/io_action-fc96684d.js create mode 100644 web/settings/assets/io_device-4394e2dd.js delete mode 100644 web/settings/assets/io_device-85eefe72.js rename web/settings/assets/{io_device-bab7e132.js => io_device-e4d01342.js} (70%) delete mode 100644 web/settings/assets/monitoring-14acb64f.js create mode 100644 web/settings/assets/monitoring-1f99e249.js create mode 100644 web/settings/assets/vehicle-04c99766.js delete mode 100644 web/settings/assets/vehicle-0bf59308.js rename web/settings/assets/{vehicle-eec1770e.js => vehicle-16754a95.js} (69%) delete mode 100644 web/settings/assets/vehicle-16e46ceb.js create mode 100644 web/settings/assets/vehicle-38543ffd.js create mode 100644 web/settings/assets/vehicle-3896a2ec.js create mode 100644 web/settings/assets/vehicle-3cb9cb75.js delete mode 100644 web/settings/assets/vehicle-432a8e97.js create mode 100644 web/settings/assets/vehicle-4a5ca121.js delete mode 100644 web/settings/assets/vehicle-5d3ec9e7.js rename web/settings/assets/{vehicle-1b6d0189.js => vehicle-65e3046c.js} (52%) delete mode 100644 web/settings/assets/vehicle-66cc49e0.js create mode 100644 web/settings/assets/vehicle-673ea579.js create mode 100644 web/settings/assets/vehicle-70e7db8e.js create mode 100644 web/settings/assets/vehicle-8289a840.js create mode 100644 web/settings/assets/vehicle-8c0aaa75.js delete mode 100644 web/settings/assets/vehicle-8cf65d4b.js delete mode 100644 web/settings/assets/vehicle-8ef77206.js delete mode 100644 web/settings/assets/vehicle-904e1b9a.js create mode 100644 web/settings/assets/vehicle-9505d809.js create mode 100644 web/settings/assets/vehicle-98b9fcdb.js create mode 100644 web/settings/assets/vehicle-9efbb8ea.js delete mode 100644 web/settings/assets/vehicle-a118bbc8.js create mode 100644 web/settings/assets/vehicle-b82069af.js delete mode 100644 web/settings/assets/vehicle-bd25f961.js delete mode 100644 web/settings/assets/vehicle-bf282483.js delete mode 100644 web/settings/assets/vehicle-c70b570d.js delete mode 100644 web/settings/assets/vehicle-c7df15c6.js create mode 100644 web/settings/assets/vehicle-da3e8433.js delete mode 100644 web/settings/assets/vehicle-dddd8c6f.js create mode 100644 web/settings/assets/vehicle-e0cbc84a.js create mode 100644 web/settings/assets/vehicle-e45de3aa.js delete mode 100644 web/settings/assets/vehicle-edb9af18.js delete mode 100644 web/settings/assets/vehicle-edca70a6.js create mode 100644 web/settings/assets/vehicle-f2b05f39.js delete mode 100644 web/settings/assets/vehicle-f35ebd53.js delete mode 100644 web/settings/assets/vehicle-f4c3c45b.js create mode 100644 web/settings/assets/vehicle-fbca4a35.js rename web/settings/assets/{vehicle-33bf94c2.js => vehicle-fe38074f.js} (85%) rename web/settings/assets/{vendor-36bf053b.js => vendor-25d394b4.js} (80%) delete mode 100644 web/settings/assets/vendor-axios-090d6ce2.js create mode 100644 web/settings/assets/vendor-axios-ac33d60c.js rename web/settings/assets/{vendor-bootstrap-87ba0f33.js => vendor-bootstrap-374cd88e.js} (99%) rename web/settings/assets/{vendor-chartjs-43b0fa2b.js => vendor-chartjs-94a826eb.js} (99%) rename web/settings/assets/{vendor-fortawesome-2b3791bb.js => vendor-fortawesome-a02b6813.js} (99%) rename web/settings/assets/{vendor-jquery-ffd3fdac.js => vendor-jquery-3364d39b.js} (99%) rename web/settings/assets/{vendor-sortablejs-32624a33.js => vendor-sortablejs-0eb84ec8.js} (99%) create mode 100644 web/settings/assets/webTheme-3d6548f9.js create mode 100644 web/settings/assets/webTheme-5cb70cc5.js delete mode 100644 web/settings/assets/webTheme-866069f2.js delete mode 100644 web/settings/assets/webTheme-afd39c5a.js diff --git a/web/settings/assets/ChargeLog-9b005407.js b/web/settings/assets/ChargeLog-40aaca0a.js similarity index 76% rename from web/settings/assets/ChargeLog-9b005407.js rename to web/settings/assets/ChargeLog-40aaca0a.js index 450f817f13..d8b02c8b82 100644 --- a/web/settings/assets/ChargeLog-9b005407.js +++ b/web/settings/assets/ChargeLog-40aaca0a.js @@ -1,3 +1,3 @@ -import{l as N,a2 as k,a3 as B,F as x}from"./vendor-fortawesome-2b3791bb.js";import{_ as E,a1 as S,u,l as h,m as c,G as g,E as i,A as s,x as V,z as I,B as d,F as n,P as _,q as w}from"./vendor-36bf053b.js";import{C as W}from"./index-0992d19b.js";import"./vendor-sortablejs-32624a33.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";N.add(k,B);const F={name:"OpenwbChargeLogView",components:{Vue3TableLite:S,FontAwesomeIcon:x},mixins:[W],emits:["sendCommand"],data(){return{dateTimeFormat:new Intl.DateTimeFormat(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}),mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/charge_log_data_config","openWB/chargepoint/+/config","openWB/vehicle/+/name"],currentMonth:"",chargeLogRequestData:{month:"",year:"",filter:{chargepoint:{id:[]},vehicle:{id:[],tag:[],chargemode:[],prio:void 0}}},downloadFile:null,table:{messages:{pagingInfo:"Einträge {0}-{1} von {2}",pageSizeChangeLabel:"Einträge:",gotoPageLabel:" Gehe zu:",noDataAvailable:"Keine Einträge gefunden."},pageOptions:[{value:5,text:"5"},{value:10,text:"10"},{value:25,text:"25"},{value:50,text:"50"},{value:100,text:"100"}],columns:[{label:"Beginn",field:"time_begin",sortable:!0},{label:"Ende",field:"time_end",sortable:!0},{label:"Dauer",field:"time_time_charged",sortable:!0},{label:"Kosten",field:"data_costs",sortable:!0},{label:"Energieaufteilung",field:"data_power_source",sortable:!1},{label:"Fahrzeug",field:"vehicle_name",sortable:!0},{label:"Lademodus",field:"vehicle_chargemode",sortable:!0},{label:"Priorität",field:"vehicle_prio",sortable:!0},{label:"ID-Tag",field:"vehicle_rfid",sortable:!0},{label:"SoC Beginn",field:"vehicle_soc_at_start",sortable:!0},{label:"SoC Ende",field:"vehicle_soc_at_end",sortable:!0},{label:"Ladepunkt",field:"chargepoint_name",sortable:!0},{label:"Seriennummer",field:"chargepoint_serial_number",sortable:!0},{label:"Energie",field:"data_imported_since_mode_switch",sortable:!0},{label:"Zähler Beginn",field:"chargepoint_imported_at_start",sortable:!0},{label:"Zähler Ende",field:"chargepoint_imported_at_end",sortable:!0}],sortable:{order:"timestamp_begin",sort:"asc"}},totals:{columns:[{label:"Dauer",field:"time_charged",sortable:!1},{label:"Energie",field:"imported_since_mode_switch",sortable:!1},{label:"Reichweite",field:"range_charged",sortable:!1},{label:"Kosten",field:"costs",sortable:!1}]}}},computed:{mqttClientId(){return this.$root.mqttClientId},baseUrl(){const t=parseInt(location.port)||(location.protocol==="https:"?443:80);return`${location.protocol}//${location.hostname}:${t}/openWB/web/settings/downloadChargeLog.php`},downloadUrlMonth(){return!this.chargeLogRequestData.year||!this.chargeLogRequestData.month?(console.error("Fehlende Parameter für Monat oder Jahr"),null):`${this.baseUrl}?year=${this.chargeLogRequestData.year}&month=${this.chargeLogRequestData.month}`},downloadUrlYear(){return this.chargeLogRequestData.year?`${this.baseUrl}?year=${this.chargeLogRequestData.year}`:(console.error("Fehlendes Jahr"),null)},chargeLogDate:{get(){return this.chargeLogRequestData.year+"-"+this.chargeLogRequestData.month},set(t){let e=t.split("-");this.chargeLogRequestData.year=e[0],this.chargeLogRequestData.month=e[1]}},chargeLogTotals(){return this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"]?[this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"].totals]:[]},chargeLogColumns(){return this.table.columns.map(t=>({...t,headerClasses:this.addClasses(t.field),columnClasses:this.addClasses(t.field)}))},chargeLogDataset:{get(){if(this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"]==null)return[];try{return this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"].entries.map(t=>{var e=Date.parse(t.time.begin),o=Date.parse(t.time.end);return{chargepoint_id:t.chargepoint.id,chargepoint_name:t.chargepoint.name,chargepoint_imported_at_start:t.chargepoint.imported_at_start,chargepoint_imported_at_end:t.chargepoint.imported_at_end,chargepoint_serial_number:t.chargepoint.serial_number,vehicle_id:t.vehicle.id,vehicle_name:t.vehicle.name,vehicle_chargemode:this.translateChargeMode(t.vehicle.chargemode),vehicle_rfid:t.vehicle.rfid,vehicle_prio:t.vehicle.prio,vehicle_soc_at_start:t.vehicle.soc_at_start,vehicle_soc_at_end:t.vehicle.soc_at_end,vehicle_range_at_start:t.vehicle.range_at_start,vehicle_range_at_end:t.vehicle.range_at_end,timestamp_begin:e/1e3,time_begin:isNaN(e)?null:this.dateTimeFormat.format(new Date(e)),timestamp_end:o/1e3,time_end:isNaN(o)?null:this.dateTimeFormat.format(new Date(o)),time_time_charged:t.time.time_charged,data_power_source:t.data.power_source?{pv:t.data.power_source.pv*100,grid:t.data.power_source.grid*100,bat:t.data.power_source.bat*100,cp:t.data.power_source.cp*100}:void 0,data_range_charged:t.data.range_charged,data_costs:t.data.costs,data_imported_since_plugged:t.data.imported_since_plugged,data_imported_since_mode_switch:t.data.imported_since_mode_switch}})}catch(t){return console.error(t),[]}}},chargeLogCsv:{get(){return[['"Beginn"','"Ende"','"Zeitstempel Beginn"','"Zeitstempel Ende"','"Dauer"','"Kosten"','"Energieanteil Netz"','"Energieanteil Ladepunkte"','"Energieanteil Speicher"','"Energieanteil PV"','"Fahrzeug"','"Fahrzeug-ID"','"Lademodus"','"Priorität"','"ID-Tag"','"SoC Beginn"','"SoC Ende"','"Reichweite Beginn"','"Reichweite Ende"','"Ladepunkt"','"Ladepunkt-ID"','"Zähler Seriennummer"','"Energie"','"Reichweite"','"Zählerstand Beginn"','"Zählerstand Ende"','"Energie seit Anstecken"'],...this.chargeLogDataset.map(e=>[e.time_begin==null?"":'"'+e.time_begin+'"',e.time_end==null?"":'"'+e.time_end+'"',e.timestamp_begin==null||isNaN(e.timestamp_begin)?"":e.timestamp_begin,e.timestamp_end==null||isNaN(e.timestamp_end)?"":e.timestamp_end,'"'+e.time_time_charged+'"',this.formatCosts(e.data_costs,!1),e.data_power_source==null?"":this.formatNumber(e.data_power_source.grid,2),e.data_power_source==null?"":this.formatNumber(e.data_power_source.cp,2),e.data_power_source==null?"":this.formatNumber(e.data_power_source.bat,2),e.data_power_source==null?"":this.formatNumber(e.data_power_source.pv,2),'"'+e.vehicle_name+'"',e.vehicle_id,'"'+e.vehicle_chargemode+'"','"'+this.formatBool(e.vehicle_prio)+'"',e.vehicle_rfid==null?"":'"'+e.vehicle_rfid+'"',e.vehicle_soc_at_start==null?"":this.formatNumber(e.vehicle_soc_at_start,0),e.vehicle_soc_at_end==null?"":this.formatNumber(e.vehicle_soc_at_end,0),e.vehicle_range_at_start==null?"":this.formatNumber(e.vehicle_range_at_start,0),e.vehicle_range_at_end==null?"":this.formatNumber(e.vehicle_range_at_end,0),'"'+e.chargepoint_name+'"',e.chargepoint_id,e.chargepoint_serial_number==null?"":'"'+e.chargepoint_serial_number+'"',this.formatNumber(e.data_imported_since_mode_switch/1e3,2),this.formatNumber(e.data_range_charged,0),this.formatNumber(e.chargepoint_imported_at_start/1e3,2),this.formatNumber(e.chargepoint_imported_at_end/1e3,2),this.formatNumber(e.data_imported_since_plugged/1e3,2)])].map(e=>e.join(";")).join(` +import{l as N,a2 as k,a3 as B,F as x}from"./vendor-fortawesome-a02b6813.js";import{_ as E,a1 as S,u,l as h,m as c,G as g,E as i,A as s,x as V,z as I,B as d,F as n,P as _,q as w}from"./vendor-25d394b4.js";import{C as W}from"./index-8dd8e083.js";import"./vendor-sortablejs-0eb84ec8.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";N.add(k,B);const F={name:"OpenwbChargeLogView",components:{Vue3TableLite:S,FontAwesomeIcon:x},mixins:[W],emits:["sendCommand"],data(){return{dateTimeFormat:new Intl.DateTimeFormat(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}),mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/charge_log_data_config","openWB/chargepoint/+/config","openWB/vehicle/+/name"],currentMonth:"",chargeLogRequestData:{month:"",year:"",filter:{chargepoint:{id:[]},vehicle:{id:[],tag:[],chargemode:[],prio:void 0}}},downloadFile:null,table:{messages:{pagingInfo:"Einträge {0}-{1} von {2}",pageSizeChangeLabel:"Einträge:",gotoPageLabel:" Gehe zu:",noDataAvailable:"Keine Einträge gefunden."},pageOptions:[{value:5,text:"5"},{value:10,text:"10"},{value:25,text:"25"},{value:50,text:"50"},{value:100,text:"100"}],columns:[{label:"Beginn",field:"time_begin",sortable:!0},{label:"Ende",field:"time_end",sortable:!0},{label:"Dauer",field:"time_time_charged",sortable:!0},{label:"Kosten",field:"data_costs",sortable:!0},{label:"Energieaufteilung",field:"data_power_source",sortable:!1},{label:"Fahrzeug",field:"vehicle_name",sortable:!0},{label:"Lademodus",field:"vehicle_chargemode",sortable:!0},{label:"Priorität",field:"vehicle_prio",sortable:!0},{label:"ID-Tag",field:"vehicle_rfid",sortable:!0},{label:"SoC Beginn",field:"vehicle_soc_at_start",sortable:!0},{label:"SoC Ende",field:"vehicle_soc_at_end",sortable:!0},{label:"Ladepunkt",field:"chargepoint_name",sortable:!0},{label:"Seriennummer",field:"chargepoint_serial_number",sortable:!0},{label:"Energie",field:"data_imported_since_mode_switch",sortable:!0},{label:"Zähler Beginn",field:"chargepoint_imported_at_start",sortable:!0},{label:"Zähler Ende",field:"chargepoint_imported_at_end",sortable:!0}],sortable:{order:"timestamp_begin",sort:"asc"}},totals:{columns:[{label:"Dauer",field:"time_charged",sortable:!1},{label:"Energie",field:"imported_since_mode_switch",sortable:!1},{label:"Reichweite",field:"range_charged",sortable:!1},{label:"Kosten",field:"costs",sortable:!1}]}}},computed:{mqttClientId(){return this.$root.mqttClientId},baseUrl(){const t=parseInt(location.port)||(location.protocol==="https:"?443:80);return`${location.protocol}//${location.hostname}:${t}/openWB/web/settings/downloadChargeLog.php`},downloadUrlMonth(){return!this.chargeLogRequestData.year||!this.chargeLogRequestData.month?(console.error("Fehlende Parameter für Monat oder Jahr"),null):`${this.baseUrl}?year=${this.chargeLogRequestData.year}&month=${this.chargeLogRequestData.month}`},downloadUrlYear(){return this.chargeLogRequestData.year?`${this.baseUrl}?year=${this.chargeLogRequestData.year}`:(console.error("Fehlendes Jahr"),null)},chargeLogDate:{get(){return this.chargeLogRequestData.year+"-"+this.chargeLogRequestData.month},set(t){let e=t.split("-");this.chargeLogRequestData.year=e[0],this.chargeLogRequestData.month=e[1]}},chargeLogTotals(){return this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"]?[this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"].totals]:[]},chargeLogColumns(){return this.table.columns.map(t=>({...t,headerClasses:this.addClasses(t.field),columnClasses:this.addClasses(t.field)}))},chargeLogDataset:{get(){if(this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"]==null)return[];try{return this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"].entries.map(t=>{var e=Date.parse(t.time.begin),o=Date.parse(t.time.end);return{chargepoint_id:t.chargepoint.id,chargepoint_name:t.chargepoint.name,chargepoint_imported_at_start:t.chargepoint.imported_at_start,chargepoint_imported_at_end:t.chargepoint.imported_at_end,chargepoint_serial_number:t.chargepoint.serial_number,vehicle_id:t.vehicle.id,vehicle_name:t.vehicle.name,vehicle_chargemode:this.translateChargeMode(t.vehicle.chargemode),vehicle_rfid:t.vehicle.rfid,vehicle_prio:t.vehicle.prio,vehicle_soc_at_start:t.vehicle.soc_at_start,vehicle_soc_at_end:t.vehicle.soc_at_end,vehicle_range_at_start:t.vehicle.range_at_start,vehicle_range_at_end:t.vehicle.range_at_end,timestamp_begin:e/1e3,time_begin:isNaN(e)?null:this.dateTimeFormat.format(new Date(e)),timestamp_end:o/1e3,time_end:isNaN(o)?null:this.dateTimeFormat.format(new Date(o)),time_time_charged:t.time.time_charged,data_power_source:t.data.power_source?{pv:t.data.power_source.pv*100,grid:t.data.power_source.grid*100,bat:t.data.power_source.bat*100,cp:t.data.power_source.cp*100}:void 0,data_range_charged:t.data.range_charged,data_costs:t.data.costs,data_imported_since_plugged:t.data.imported_since_plugged,data_imported_since_mode_switch:t.data.imported_since_mode_switch}})}catch(t){return console.error(t),[]}}},chargeLogCsv:{get(){return[['"Beginn"','"Ende"','"Zeitstempel Beginn"','"Zeitstempel Ende"','"Dauer"','"Kosten"','"Energieanteil Netz"','"Energieanteil Ladepunkte"','"Energieanteil Speicher"','"Energieanteil PV"','"Fahrzeug"','"Fahrzeug-ID"','"Lademodus"','"Priorität"','"ID-Tag"','"SoC Beginn"','"SoC Ende"','"Reichweite Beginn"','"Reichweite Ende"','"Ladepunkt"','"Ladepunkt-ID"','"Zähler Seriennummer"','"Energie"','"Reichweite"','"Zählerstand Beginn"','"Zählerstand Ende"','"Energie seit Anstecken"'],...this.chargeLogDataset.map(e=>[e.time_begin==null?"":'"'+e.time_begin+'"',e.time_end==null?"":'"'+e.time_end+'"',e.timestamp_begin==null||isNaN(e.timestamp_begin)?"":e.timestamp_begin,e.timestamp_end==null||isNaN(e.timestamp_end)?"":e.timestamp_end,'"'+e.time_time_charged+'"',this.formatCosts(e.data_costs,!1),e.data_power_source==null?"":this.formatNumber(e.data_power_source.grid,2),e.data_power_source==null?"":this.formatNumber(e.data_power_source.cp,2),e.data_power_source==null?"":this.formatNumber(e.data_power_source.bat,2),e.data_power_source==null?"":this.formatNumber(e.data_power_source.pv,2),'"'+e.vehicle_name+'"',e.vehicle_id,'"'+e.vehicle_chargemode+'"','"'+this.formatBool(e.vehicle_prio)+'"',e.vehicle_rfid==null?"":'"'+e.vehicle_rfid+'"',e.vehicle_soc_at_start==null?"":this.formatNumber(e.vehicle_soc_at_start,0),e.vehicle_soc_at_end==null?"":this.formatNumber(e.vehicle_soc_at_end,0),e.vehicle_range_at_start==null?"":this.formatNumber(e.vehicle_range_at_start,0),e.vehicle_range_at_end==null?"":this.formatNumber(e.vehicle_range_at_end,0),'"'+e.chargepoint_name+'"',e.chargepoint_id,e.chargepoint_serial_number==null?"":'"'+e.chargepoint_serial_number+'"',this.formatNumber(e.data_imported_since_mode_switch/1e3,2),this.formatNumber(e.data_range_charged,0),this.formatNumber(e.chargepoint_imported_at_start/1e3,2),this.formatNumber(e.chargepoint_imported_at_end/1e3,2),this.formatNumber(e.data_imported_since_plugged/1e3,2)])].map(e=>e.join(";")).join(` `)+` -`}},chargeLogRead:{get(){return this.chargeLogDataset!=null}},chargeLogHasEntries:{get(){return this.chargeLogDataset==null?!1:this.chargeLogDataset.length>0}},totalRecordCount(){return this.chargeLogDataset.length},chargeModeList(){let t=this.chargeModes.map(e=>({value:e,text:this.translateChargeMode(e)}));return t.unshift({value:void 0,text:"Alle"}),t},chargePointList(){let t=this.getWildcardTopics("openWB/chargepoint/+/config");var e=[{value:void 0,text:"Alle"}];for(const[,o]of Object.entries(t))e.push({value:o.id,text:o.name});return e},vehicleList(){let t=this.getWildcardTopics("openWB/vehicle/+/name");var e=[{value:void 0,text:"Alle"}];for(const[o,f]of Object.entries(t)){let l=parseInt(o.match(/\/([0-9]+)\/name$/)[1]);e.push({value:l,text:f})}return e}},beforeMount(){this.mqttTopicsToSubscribe.push("openWB/log/"+this.mqttClientId+"/data")},mounted(){const t=new Date;this.currentMonth=this.chargeLogDate=t.getFullYear()+"-"+String(t.getMonth()+1).padStart(2,"0"),this.requestChargeLog()},methods:{cleanRequestData(){"id"in this.chargeLogRequestData.filter.chargepoint&&(this.chargeLogRequestData.filter.chargepoint.id=this.chargeLogRequestData.filter.chargepoint.id.filter(t=>t!=null)),"chargemode"in this.chargeLogRequestData.filter.vehicle&&(this.chargeLogRequestData.filter.vehicle.chargemode=this.chargeLogRequestData.filter.vehicle.chargemode.filter(t=>t!=null)),"id"in this.chargeLogRequestData.filter.vehicle&&(this.chargeLogRequestData.filter.vehicle.id=this.chargeLogRequestData.filter.vehicle.id.filter(t=>t!=null))},requestChargeLog(){if(document.forms.chargeLogForm.reportValidity())this.cleanRequestData(),this.$emit("sendCommand",{command:"getChargeLog",data:this.chargeLogRequestData});else{console.warn("form invalid");return}},makeTextFile(t){var e=new Blob([t],{type:"text/csv"});return this.downloadFile!==null&&window.URL.revokeObjectURL(this.downloadFile),this.downloadFile=window.URL.createObjectURL(e),this.downloadFile},downloadChargeLog(){this.$refs.downloadChargeLogLink.setAttribute("download","Ladeprotokoll-"+this.chargeLogDate+".csv"),this.$refs.downloadChargeLogLink.href=this.makeTextFile(this.chargeLogCsv),this.$refs.downloadChargeLogLink.dispatchEvent(new MouseEvent("click"))},addClasses(t){return this.$store.state.mqtt["openWB/general/charge_log_data_config"]!==void 0&&Object.hasOwn(this.$store.state.mqtt["openWB/general/charge_log_data_config"],t)?this.$store.state.mqtt["openWB/general/charge_log_data_config"][t]?[]:["d-none"]:[]},getProgressTitle(t){return`Netz: ${this.formatNumber(t.grid,0,0)}%, Ladepunkte: ${this.formatNumber(t.cp,0,0)}%, Speicher: ${this.formatNumber(t.bat,0,0)}%, PV: ${this.formatNumber(t.pv,0,0)}%`},formatBool(t){return t?"Ja":"Nein"},formatW(t,e=!0){let o=this.dashIfNotSet(this.formatNumber(t/1e3,2));return e?o+"kW":o},formatWh(t,e=!0){let o=this.dashIfNotSet(this.formatNumber(t/1e3,2));return e?o+"kWh":o},formatRange(t,e=!0){let o=this.dashIfNotSet(this.formatNumber(t,0));return e?o+"km":o},formatSoc(t,e=!0){let o=this.dashIfNotSet(this.formatNumber(t,0));return e?o+"%":o},formatCosts(t,e=!0){let o=this.dashIfNotSet(this.formatNumber(t,2));return e?o+"€":o},dashIfNotSet(t){return t==null||t==""||t==null?"-":t},getChargeModeClass(t){switch(t){case"Sofort":return"bg-danger";case"PV":return"bg-success";case"Zielladen":return"bg-primary";case"Zeitladen":return"bg-warning";case"Eco":case"Standby":return"bg-secondary";case"Stop":return"bg-dark";default:return console.warn("unknown charge mode:",t),"bg-light"}}}},y={class:"chargeLog"},T={key:0},U={key:1},M={name:"chargeLogForm"},P=["href"],z=["href"],O={key:1},A={class:"td-end"},Z={class:"td-end"},j=["title"],J=["aria-valuenow"],K=["aria-valuenow"],Y=["aria-valuenow"],G=["aria-valuenow"],H={key:1,class:"td-center"},Q={class:"td-end"},X={class:"no-wrap"},$={class:"no-wrap"},ee={class:"td-end"},te={class:"no-wrap"},ae={class:"no-wrap"},re={class:"td-end"},se={class:"no-wrap"},ie={class:"no-wrap"},oe={class:"td-end"},ne={class:"td-end"},le={key:0},de={class:"row justify-content-center"},ge={ref:"downloadChargeLogLink",class:"hide"},ue={class:"td-end"},he={class:"td-end"},ce={class:"td-end"},_e={class:"td-end"};function me(t,e,o,f,l,r){const m=u("openwb-base-alert"),D=u("openwb-base-text-input"),b=u("font-awesome-icon"),C=u("openwb-base-button-group-input"),p=u("openwb-base-select-input"),q=u("openwb-base-array-input"),v=u("openwb-base-card"),L=u("vue3-table-lite"),R=u("openwb-base-click-button");return h(),c("div",y,[t.$store.state.mqtt["openWB/general/extern"]===!0?(h(),c("div",T,[g(m,{subtype:"info"},{default:i(()=>[...e[13]||(e[13]=[d(' Das Ladeprotokoll ist nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. Du findest alle Ladevorgänge in der openWB, die sich im Steuerungsmodus "primary" befindet. ',-1)])]),_:1})])):(h(),c("div",U,[s("form",M,[g(v,{title:"Filter"},{default:i(()=>[g(D,{modelValue:r.chargeLogDate,"onUpdate:modelValue":[e[0]||(e[0]=a=>r.chargeLogDate=a),e[1]||(e[1]=a=>r.requestChargeLog())],title:"Zeitraum",subtype:"month",min:"2018-01","show-quick-buttons":!0,max:l.currentMonth},null,8,["modelValue","max"]),g(v,{title:"Erweiterte Optionen",collapsible:!0,collapsed:!0},{header:i(()=>[g(b,{icon:["fas","filter"]}),e[14]||(e[14]=d(" Erweiterte Optionen ",-1))]),default:i(()=>[g(C,{modelValue:l.chargeLogRequestData.filter.vehicle.prio,"onUpdate:modelValue":[e[2]||(e[2]=a=>l.chargeLogRequestData.filter.vehicle.prio=a),e[3]||(e[3]=a=>r.requestChargeLog())],title:"Priorität",buttons:[{buttonValue:void 0,text:"Alle"},{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),g(p,{modelValue:l.chargeLogRequestData.filter.vehicle.chargemode,"onUpdate:modelValue":[e[4]||(e[4]=a=>l.chargeLogRequestData.filter.vehicle.chargemode=a),e[5]||(e[5]=a=>r.requestChargeLog())],title:"Lademodus",multiple:"",options:r.chargeModeList},{help:i(()=>[...e[15]||(e[15]=[d(" Es können mehrere Elemente ausgewählt werden. ",-1)])]),_:1},8,["modelValue","options"]),g(p,{modelValue:l.chargeLogRequestData.filter.chargepoint.id,"onUpdate:modelValue":[e[6]||(e[6]=a=>l.chargeLogRequestData.filter.chargepoint.id=a),e[7]||(e[7]=a=>r.requestChargeLog())],title:"Ladepunkt",multiple:"",options:r.chargePointList},{help:i(()=>[...e[16]||(e[16]=[d(" Es können mehrere Elemente ausgewählt werden. ",-1)])]),_:1},8,["modelValue","options"]),g(p,{modelValue:l.chargeLogRequestData.filter.vehicle.id,"onUpdate:modelValue":[e[8]||(e[8]=a=>l.chargeLogRequestData.filter.vehicle.id=a),e[9]||(e[9]=a=>r.requestChargeLog())],title:"Fahrzeug",multiple:"",options:r.vehicleList},{help:i(()=>[...e[17]||(e[17]=[d(" Es können mehrere Elemente ausgewählt werden. ",-1)])]),_:1},8,["modelValue","options"]),g(q,{modelValue:l.chargeLogRequestData.filter.vehicle.tag,"onUpdate:modelValue":[e[10]||(e[10]=a=>l.chargeLogRequestData.filter.vehicle.tag=a),e[11]||(e[11]=a=>r.requestChargeLog())],title:"ID-Tags"},{help:i(()=>[...e[18]||(e[18]=[d(" Es können mehrere Tags als Filter verwendet werden. ",-1)])]),_:1},8,["modelValue"])]),_:1})]),_:1}),g(m,{subtype:"info"},{default:i(()=>[e[19]||(e[19]=d(" Das Ladeprotokoll kann monatsweise automatisiert über folgende URL abgerufen werden: ",-1)),s("a",{href:r.downloadUrlMonth},n(r.downloadUrlMonth),9,P),e[20]||(e[20]=d()),e[21]||(e[21]=s("br",null,null,-1)),e[22]||(e[22]=d(" Das komplette Ladeprotokoll für das gesamte Jahr kann automatisiert über folgende URL abgerufen werden: ",-1)),s("a",{href:r.downloadUrlYear},n(r.downloadUrlYear),9,z)]),_:1}),r.chargeLogRead?(h(),c("div",O,[g(L,{class:"charge-log-table","is-static-mode":!0,columns:r.chargeLogColumns,rows:r.chargeLogDataset,total:r.totalRecordCount,sortable:l.table.sortable,messages:l.table.messages,"page-options":l.table.pageOptions,limit:25,"is-slot-mode":!0},{time_begin:i(a=>[d(n(r.dashIfNotSet(a.value.time_begin)),1)]),time_end:i(a=>[d(n(r.dashIfNotSet(a.value.time_end)),1)]),time_time_charged:i(a=>[s("div",A,n(a.value.time_time_charged),1)]),data_costs:i(a=>[s("div",Z,n(r.formatCosts(a.value.data_costs)),1)]),data_power_source:i(a=>[a.value.data_power_source?(h(),c("div",{key:0,class:"progress td-center",title:r.getProgressTitle(a.value.data_power_source)},[s("div",{class:"progress-bar bg-danger",role:"progressbar",style:_({width:a.value.data_power_source.grid+"%"}),"aria-valuenow":a.value.data_power_source.grid,"aria-valuemin":"0","aria-valuemax":"100"},null,12,J),s("div",{class:"progress-bar bg-primary",role:"progressbar",style:_({width:a.value.data_power_source.cp+"%"}),"aria-valuenow":a.value.data_power_source.cp,"aria-valuemin":"0","aria-valuemax":"100"},null,12,K),s("div",{class:"progress-bar bg-warning",role:"progressbar",style:_({width:a.value.data_power_source.bat+"%"}),"aria-valuenow":a.value.data_power_source.bat,"aria-valuemin":"0","aria-valuemax":"100"},null,12,Y),s("div",{class:"progress-bar bg-success",role:"progressbar",style:_({width:a.value.data_power_source.pv+"%"}),"aria-valuenow":a.value.data_power_source.pv,"aria-valuemin":"0","aria-valuemax":"100"},null,12,G)],8,j)):(h(),c("div",H," - "))]),vehicle_chargemode:i(a=>[s("div",{class:w(["td-center tag",r.getChargeModeClass(a.value.vehicle_chargemode)])},n(a.value.vehicle_chargemode),3)]),vehicle_prio:i(a=>[s("div",{class:w(["td-center tag",a.value.vehicle_prio?"bg-success":"bg-danger"])},n(r.formatBool(a.value.vehicle_prio)),3)]),vehicle_rfid:i(a=>[d(n(r.dashIfNotSet(a.value.vehicle_rfid)),1)]),vehicle_soc_at_start:i(a=>[s("div",Q,[s("span",X,n(r.formatSoc(a.value.vehicle_soc_at_start)),1),s("span",$," ("+n(r.formatRange(a.value.vehicle_range_at_start))+") ",1)])]),vehicle_soc_at_end:i(a=>[s("div",ee,[s("span",te,n(r.formatSoc(a.value.vehicle_soc_at_end)),1),s("span",ae," ("+n(r.formatRange(a.value.vehicle_range_at_end))+") ",1)])]),chargepoint_name:i(a=>[d(n(r.dashIfNotSet(a.value.chargepoint_name)),1)]),chargepoint_serial_number:i(a=>[d(n(r.dashIfNotSet(a.value.chargepoint_serial_number)),1)]),data_imported_since_mode_switch:i(a=>[s("div",re,[s("span",se,n(r.formatWh(a.value.data_imported_since_mode_switch)),1),s("span",ie," ("+n(r.formatRange(a.value.data_range_charged))+") ",1)])]),chargepoint_imported_at_start:i(a=>[s("div",oe,n(r.formatWh(a.value.chargepoint_imported_at_start)),1)]),chargepoint_imported_at_end:i(a=>[s("div",ne,n(r.formatWh(a.value.chargepoint_imported_at_end)),1)]),_:1},8,["columns","rows","total","sortable","messages","page-options"]),r.totalRecordCount>0?(h(),c("div",le,[s("div",de,[g(R,{class:"col-4 btn-success",onButtonClicked:e[12]||(e[12]=a=>r.downloadChargeLog())},{default:i(()=>[e[24]||(e[24]=d(" Als CSV exportieren ",-1)),g(b,{icon:["fas","download"]})]),_:1}),s("a",ge,null,512)]),e[25]||(e[25]=s("div",{class:"row"},[s("div",{class:"col"},[s("h2",null,"Summe")])],-1)),g(L,{class:"charge-log-totals","is-static-mode":!0,"is-hide-paging":!0,columns:l.totals.columns,rows:r.chargeLogTotals,total:1,"is-slot-mode":!0},{time_charged:i(a=>[s("div",ue,n(a.value.time_charged),1)]),imported_since_mode_switch:i(a=>[s("div",he,n(r.formatWh(a.value.imported_since_mode_switch)),1)]),range_charged:i(a=>[s("div",ce,n(r.formatRange(a.value.range_charged)),1)]),costs:i(a=>[s("div",_e,n(r.formatCosts(a.value.costs)),1)]),_:1},8,["columns","rows"])])):I("",!0)])):(h(),V(m,{key:0,subtype:"info"},{default:i(()=>[...e[23]||(e[23]=[d(" Es wurden noch keine Daten abgerufen. ",-1)])]),_:1}))])]))])}const Ce=E(F,[["render",me],["__scopeId","data-v-8607e7e7"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ChargeLog.vue"]]);export{Ce as default}; +`}},chargeLogRead:{get(){return this.chargeLogDataset!=null}},chargeLogHasEntries:{get(){return this.chargeLogDataset==null?!1:this.chargeLogDataset.length>0}},totalRecordCount(){return this.chargeLogDataset.length},chargeModeList(){let t=this.chargeModes.map(e=>({value:e,text:this.translateChargeMode(e)}));return t.unshift({value:void 0,text:"Alle"}),t},chargePointList(){let t=this.getWildcardTopics("openWB/chargepoint/+/config");var e=[{value:void 0,text:"Alle"}];for(const[,o]of Object.entries(t))e.push({value:o.id,text:o.name});return e},vehicleList(){let t=this.getWildcardTopics("openWB/vehicle/+/name");var e=[{value:void 0,text:"Alle"}];for(const[o,f]of Object.entries(t)){let l=parseInt(o.match(/\/([0-9]+)\/name$/)[1]);e.push({value:l,text:f})}return e}},beforeMount(){this.mqttTopicsToSubscribe.push("openWB/log/"+this.mqttClientId+"/data")},mounted(){const t=new Date;this.currentMonth=this.chargeLogDate=t.getFullYear()+"-"+String(t.getMonth()+1).padStart(2,"0"),this.requestChargeLog()},methods:{cleanRequestData(){"id"in this.chargeLogRequestData.filter.chargepoint&&(this.chargeLogRequestData.filter.chargepoint.id=this.chargeLogRequestData.filter.chargepoint.id.filter(t=>t!=null)),"chargemode"in this.chargeLogRequestData.filter.vehicle&&(this.chargeLogRequestData.filter.vehicle.chargemode=this.chargeLogRequestData.filter.vehicle.chargemode.filter(t=>t!=null)),"id"in this.chargeLogRequestData.filter.vehicle&&(this.chargeLogRequestData.filter.vehicle.id=this.chargeLogRequestData.filter.vehicle.id.filter(t=>t!=null))},requestChargeLog(){if(document.forms.chargeLogForm.reportValidity())this.cleanRequestData(),this.$emit("sendCommand",{command:"getChargeLog",data:this.chargeLogRequestData});else{console.warn("form invalid");return}},makeTextFile(t){var e=new Blob([t],{type:"text/csv"});return this.downloadFile!==null&&window.URL.revokeObjectURL(this.downloadFile),this.downloadFile=window.URL.createObjectURL(e),this.downloadFile},downloadChargeLog(){this.$refs.downloadChargeLogLink.setAttribute("download","Ladeprotokoll-"+this.chargeLogDate+".csv"),this.$refs.downloadChargeLogLink.href=this.makeTextFile(this.chargeLogCsv),this.$refs.downloadChargeLogLink.dispatchEvent(new MouseEvent("click"))},addClasses(t){return this.$store.state.mqtt["openWB/general/charge_log_data_config"]!==void 0&&Object.hasOwn(this.$store.state.mqtt["openWB/general/charge_log_data_config"],t)?this.$store.state.mqtt["openWB/general/charge_log_data_config"][t]?[]:["d-none"]:[]},getProgressTitle(t){return`Netz: ${this.formatNumber(t.grid,0,0)}%, Ladepunkte: ${this.formatNumber(t.cp,0,0)}%, Speicher: ${this.formatNumber(t.bat,0,0)}%, PV: ${this.formatNumber(t.pv,0,0)}%`},formatBool(t){return t?"Ja":"Nein"},formatW(t,e=!0){let o=this.dashIfNotSet(this.formatNumber(t/1e3,2));return e?o+"kW":o},formatWh(t,e=!0){let o=this.dashIfNotSet(this.formatNumber(t/1e3,2));return e?o+"kWh":o},formatRange(t,e=!0){let o=this.dashIfNotSet(this.formatNumber(t,0));return e?o+"km":o},formatSoc(t,e=!0){let o=this.dashIfNotSet(this.formatNumber(t,0));return e?o+"%":o},formatCosts(t,e=!0){let o=this.dashIfNotSet(this.formatNumber(t,2));return e?o+"€":o},dashIfNotSet(t){return t==null||t==""||t==null?"-":t},getChargeModeClass(t){switch(t){case"Sofort":return"bg-danger";case"PV":return"bg-success";case"Zielladen":return"bg-primary";case"Zeitladen":return"bg-warning";case"Eco":case"Standby":return"bg-secondary";case"Stop":return"bg-dark";default:return console.warn("unknown charge mode:",t),"bg-light"}}}},y={class:"chargeLog"},T={key:0},U={key:1},M={name:"chargeLogForm"},P=["href"],z=["href"],O={key:1},A={class:"td-end"},Z={class:"td-end"},j=["title"],J=["aria-valuenow"],K=["aria-valuenow"],Y=["aria-valuenow"],G=["aria-valuenow"],H={key:1,class:"td-center"},Q={class:"td-end"},X={class:"no-wrap"},$={class:"no-wrap"},ee={class:"td-end"},te={class:"no-wrap"},ae={class:"no-wrap"},re={class:"td-end"},se={class:"no-wrap"},ie={class:"no-wrap"},oe={class:"td-end"},ne={class:"td-end"},le={key:0},de={class:"row justify-content-center"},ge={ref:"downloadChargeLogLink",class:"hide"},ue={class:"td-end"},he={class:"td-end"},ce={class:"td-end"},_e={class:"td-end"};function me(t,e,o,f,l,r){const m=u("openwb-base-alert"),D=u("openwb-base-text-input"),b=u("font-awesome-icon"),C=u("openwb-base-button-group-input"),p=u("openwb-base-select-input"),q=u("openwb-base-array-input"),v=u("openwb-base-card"),L=u("vue3-table-lite"),R=u("openwb-base-click-button");return h(),c("div",y,[t.$store.state.mqtt["openWB/general/extern"]===!0?(h(),c("div",T,[g(m,{subtype:"info"},{default:i(()=>e[13]||(e[13]=[d(' Das Ladeprotokoll ist nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. Du findest alle Ladevorgänge in der openWB, die sich im Steuerungsmodus "primary" befindet. ',-1)])),_:1,__:[13]})])):(h(),c("div",U,[s("form",M,[g(v,{title:"Filter"},{default:i(()=>[g(D,{modelValue:r.chargeLogDate,"onUpdate:modelValue":[e[0]||(e[0]=a=>r.chargeLogDate=a),e[1]||(e[1]=a=>r.requestChargeLog())],title:"Zeitraum",subtype:"month",min:"2018-01","show-quick-buttons":!0,max:l.currentMonth},null,8,["modelValue","max"]),g(v,{title:"Erweiterte Optionen",collapsible:!0,collapsed:!0},{header:i(()=>[g(b,{icon:["fas","filter"]}),e[14]||(e[14]=d(" Erweiterte Optionen ",-1))]),default:i(()=>[g(C,{modelValue:l.chargeLogRequestData.filter.vehicle.prio,"onUpdate:modelValue":[e[2]||(e[2]=a=>l.chargeLogRequestData.filter.vehicle.prio=a),e[3]||(e[3]=a=>r.requestChargeLog())],title:"Priorität",buttons:[{buttonValue:void 0,text:"Alle"},{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),g(p,{modelValue:l.chargeLogRequestData.filter.vehicle.chargemode,"onUpdate:modelValue":[e[4]||(e[4]=a=>l.chargeLogRequestData.filter.vehicle.chargemode=a),e[5]||(e[5]=a=>r.requestChargeLog())],title:"Lademodus",multiple:"",options:r.chargeModeList},{help:i(()=>e[15]||(e[15]=[d(" Es können mehrere Elemente ausgewählt werden. ",-1)])),_:1},8,["modelValue","options"]),g(p,{modelValue:l.chargeLogRequestData.filter.chargepoint.id,"onUpdate:modelValue":[e[6]||(e[6]=a=>l.chargeLogRequestData.filter.chargepoint.id=a),e[7]||(e[7]=a=>r.requestChargeLog())],title:"Ladepunkt",multiple:"",options:r.chargePointList},{help:i(()=>e[16]||(e[16]=[d(" Es können mehrere Elemente ausgewählt werden. ",-1)])),_:1},8,["modelValue","options"]),g(p,{modelValue:l.chargeLogRequestData.filter.vehicle.id,"onUpdate:modelValue":[e[8]||(e[8]=a=>l.chargeLogRequestData.filter.vehicle.id=a),e[9]||(e[9]=a=>r.requestChargeLog())],title:"Fahrzeug",multiple:"",options:r.vehicleList},{help:i(()=>e[17]||(e[17]=[d(" Es können mehrere Elemente ausgewählt werden. ",-1)])),_:1},8,["modelValue","options"]),g(q,{modelValue:l.chargeLogRequestData.filter.vehicle.tag,"onUpdate:modelValue":[e[10]||(e[10]=a=>l.chargeLogRequestData.filter.vehicle.tag=a),e[11]||(e[11]=a=>r.requestChargeLog())],title:"ID-Tags"},{help:i(()=>e[18]||(e[18]=[d(" Es können mehrere Tags als Filter verwendet werden. ",-1)])),_:1},8,["modelValue"])]),_:1})]),_:1}),g(m,{subtype:"info"},{default:i(()=>[e[19]||(e[19]=d(" Das Ladeprotokoll kann monatsweise automatisiert über folgende URL abgerufen werden: ",-1)),s("a",{href:r.downloadUrlMonth},n(r.downloadUrlMonth),9,P),e[20]||(e[20]=d()),e[21]||(e[21]=s("br",null,null,-1)),e[22]||(e[22]=d(" Das komplette Ladeprotokoll für das gesamte Jahr kann automatisiert über folgende URL abgerufen werden: ",-1)),s("a",{href:r.downloadUrlYear},n(r.downloadUrlYear),9,z)]),_:1,__:[19,20,21,22]}),r.chargeLogRead?(h(),c("div",O,[g(L,{class:"charge-log-table","is-static-mode":!0,columns:r.chargeLogColumns,rows:r.chargeLogDataset,total:r.totalRecordCount,sortable:l.table.sortable,messages:l.table.messages,"page-options":l.table.pageOptions,limit:25,"is-slot-mode":!0},{time_begin:i(a=>[d(n(r.dashIfNotSet(a.value.time_begin)),1)]),time_end:i(a=>[d(n(r.dashIfNotSet(a.value.time_end)),1)]),time_time_charged:i(a=>[s("div",A,n(a.value.time_time_charged),1)]),data_costs:i(a=>[s("div",Z,n(r.formatCosts(a.value.data_costs)),1)]),data_power_source:i(a=>[a.value.data_power_source?(h(),c("div",{key:0,class:"progress td-center",title:r.getProgressTitle(a.value.data_power_source)},[s("div",{class:"progress-bar bg-danger",role:"progressbar",style:_({width:a.value.data_power_source.grid+"%"}),"aria-valuenow":a.value.data_power_source.grid,"aria-valuemin":"0","aria-valuemax":"100"},null,12,J),s("div",{class:"progress-bar bg-primary",role:"progressbar",style:_({width:a.value.data_power_source.cp+"%"}),"aria-valuenow":a.value.data_power_source.cp,"aria-valuemin":"0","aria-valuemax":"100"},null,12,K),s("div",{class:"progress-bar bg-warning",role:"progressbar",style:_({width:a.value.data_power_source.bat+"%"}),"aria-valuenow":a.value.data_power_source.bat,"aria-valuemin":"0","aria-valuemax":"100"},null,12,Y),s("div",{class:"progress-bar bg-success",role:"progressbar",style:_({width:a.value.data_power_source.pv+"%"}),"aria-valuenow":a.value.data_power_source.pv,"aria-valuemin":"0","aria-valuemax":"100"},null,12,G)],8,j)):(h(),c("div",H," - "))]),vehicle_chargemode:i(a=>[s("div",{class:w(["td-center tag",r.getChargeModeClass(a.value.vehicle_chargemode)])},n(a.value.vehicle_chargemode),3)]),vehicle_prio:i(a=>[s("div",{class:w(["td-center tag",a.value.vehicle_prio?"bg-success":"bg-danger"])},n(r.formatBool(a.value.vehicle_prio)),3)]),vehicle_rfid:i(a=>[d(n(r.dashIfNotSet(a.value.vehicle_rfid)),1)]),vehicle_soc_at_start:i(a=>[s("div",Q,[s("span",X,n(r.formatSoc(a.value.vehicle_soc_at_start)),1),s("span",$," ("+n(r.formatRange(a.value.vehicle_range_at_start))+") ",1)])]),vehicle_soc_at_end:i(a=>[s("div",ee,[s("span",te,n(r.formatSoc(a.value.vehicle_soc_at_end)),1),s("span",ae," ("+n(r.formatRange(a.value.vehicle_range_at_end))+") ",1)])]),chargepoint_name:i(a=>[d(n(r.dashIfNotSet(a.value.chargepoint_name)),1)]),chargepoint_serial_number:i(a=>[d(n(r.dashIfNotSet(a.value.chargepoint_serial_number)),1)]),data_imported_since_mode_switch:i(a=>[s("div",re,[s("span",se,n(r.formatWh(a.value.data_imported_since_mode_switch)),1),s("span",ie," ("+n(r.formatRange(a.value.data_range_charged))+") ",1)])]),chargepoint_imported_at_start:i(a=>[s("div",oe,n(r.formatWh(a.value.chargepoint_imported_at_start)),1)]),chargepoint_imported_at_end:i(a=>[s("div",ne,n(r.formatWh(a.value.chargepoint_imported_at_end)),1)]),_:1},8,["columns","rows","total","sortable","messages","page-options"]),r.totalRecordCount>0?(h(),c("div",le,[s("div",de,[g(R,{class:"col-4 btn-success",onButtonClicked:e[12]||(e[12]=a=>r.downloadChargeLog())},{default:i(()=>[e[24]||(e[24]=d(" Als CSV exportieren ",-1)),g(b,{icon:["fas","download"]})]),_:1,__:[24]}),s("a",ge,null,512)]),e[25]||(e[25]=s("div",{class:"row"},[s("div",{class:"col"},[s("h2",null,"Summe")])],-1)),g(L,{class:"charge-log-totals","is-static-mode":!0,"is-hide-paging":!0,columns:l.totals.columns,rows:r.chargeLogTotals,total:1,"is-slot-mode":!0},{time_charged:i(a=>[s("div",ue,n(a.value.time_charged),1)]),imported_since_mode_switch:i(a=>[s("div",he,n(r.formatWh(a.value.imported_since_mode_switch)),1)]),range_charged:i(a=>[s("div",ce,n(r.formatRange(a.value.range_charged)),1)]),costs:i(a=>[s("div",_e,n(r.formatCosts(a.value.costs)),1)]),_:1},8,["columns","rows"])])):I("",!0)])):(h(),V(m,{key:0,subtype:"info"},{default:i(()=>e[23]||(e[23]=[d(" Es wurden noch keine Daten abgerufen. ",-1)])),_:1,__:[23]}))])]))])}const Ce=E(F,[["render",me],["__scopeId","data-v-8607e7e7"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ChargeLog.vue"]]);export{Ce as default}; diff --git a/web/settings/assets/ChargePointInstallation-7e22d920.js b/web/settings/assets/ChargePointInstallation-7e22d920.js new file mode 100644 index 0000000000..bdb9ed059c --- /dev/null +++ b/web/settings/assets/ChargePointInstallation-7e22d920.js @@ -0,0 +1 @@ +import{l as F,ab as R,al as N,G as Z,am as j,an as J,F as $,d as ee,Q as ne,ao as te,M as ae}from"./vendor-fortawesome-a02b6813.js";import{_ as L,C as H}from"./index-8dd8e083.js";import{_ as M}from"./dynamic-import-helper-be004503.js";import{_ as z,u as p,l,m as u,x as h,E as o,B as i,F as v,G as a,A as m,a2 as T,a3 as O,N as A,q as oe,y as U,z as g,M as S,D as le}from"./vendor-25d394b4.js";const ie={props:{chargePoint:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},se=z(ie,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/ChargePointConfigMixin.vue"]]),re={name:"ChargePointConfigFallback",mixins:[se]},ue={class:"charge-point-config-fallback"},de={key:1};function pe(n,e,c,P,_,t){const w=p("openwb-base-alert"),f=p("openwb-base-textarea");return l(),u("div",ue,[Object.keys(n.chargePoint.configuration).length==0?(l(),h(w,{key:0,subtype:"info"},{default:o(()=>[i(' Der Ladepunkt-Typ "'+v(n.chargePoint.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(l(),u("div",de,[a(w,{subtype:"warning"},{default:o(()=>[i(' Es wurde keine Konfigurationsseite für den Ladepunkt-Typ "'+v(n.chargePoint.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),a(f,{title:"Konfiguration",subtype:"json","model-value":n.chargePoint.configuration,"onUpdate:modelValue":e[0]||(e[0]=C=>n.updateConfiguration(C,"configuration"))},{help:o(()=>e[1]||(e[1]=[i(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),a(w,{subtype:"info"},{default:o(()=>[m("pre",null,v(JSON.stringify(n.chargePoint.configuration,void 0,2)),1)]),_:1})]))])}const me=z(re,[["render",pe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointConfigFallback.vue"]]),ge={props:{chargePoint:{type:Object,required:!0}}},ce=z(ge,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/ChargePointCommandsMixin.vue"]]),be={name:"ChargePointCommandsFallback",mixins:[ce]},fe={class:"charge-point-commands-fallback"};function he(n,e,c,P,_,t){return l(),u("div",fe)}const _e=z(be,[["render",he],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointCommandsFallback.vue"]]),ke={name:"OpenwbChargePointProxy",props:{chargePoint:{required:!0,type:Object}},emits:["update:configuration"],methods:{getChargePointSettingsComponent(){return console.debug(`loading charge point settings: ${this.chargePoint.type}`),T({loader:()=>M(Object.assign({"./external_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-5d28cfe6.js"),["assets/chargePoint-5d28cfe6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./internal_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-b9360c52.js"),["assets/chargePoint-b9360c52.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mqtt/chargePoint.vue":()=>L(()=>import("./chargePoint-c7a2ef8c.js"),["assets/chargePoint-c7a2ef8c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_dc_adapter/chargePoint.vue":()=>L(()=>import("./chargePoint-d206a228.js"),["assets/chargePoint-d206a228.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_pro/chargePoint.vue":()=>L(()=>import("./chargePoint-5ae09ebd.js"),["assets/chargePoint-5ae09ebd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_series2_satellit/chargePoint.vue":()=>L(()=>import("./chargePoint-8808c043.js"),["assets/chargePoint-8808c043.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smartwb/chargePoint.vue":()=>L(()=>import("./chargePoint-04f787ef.js"),["assets/chargePoint-04f787ef.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.chargePoint.type}/chargePoint.vue`),errorComponent:me})},getChargePointCommandsComponent(){return console.debug(`loading charge point commands: ${this.chargePoint.type}`),T({loader:()=>M(Object.assign({"./internal_openwb/commands.vue":()=>L(()=>import("./commands-6baac453.js"),["assets/commands-6baac453.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_pro/commands.vue":()=>L(()=>import("./commands-c6ddc747.js"),["assets/commands-c6ddc747.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.chargePoint.type}/commands.vue`),errorComponent:_e})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function ve(n,e,c,P,_,t){const w=p("openwb-base-heading");return l(),u(A,null,[a(w,null,{default:o(()=>[i(' Einstellungen für Ladepunkt Typ "'+v(c.chargePoint.type)+'" ',1)]),_:1}),(l(),h(O(t.getChargePointSettingsComponent()),{"charge-point":c.chargePoint,"onUpdate:configuration":e[0]||(e[0]=f=>t.updateConfiguration(f))},null,40,["charge-point"])),e[1]||(e[1]=m("hr",null,null,-1)),a(w,null,{default:o(()=>[i(' Befehle für Ladepunkt Typ "'+v(c.chargePoint.type)+'" ',1)]),_:1}),(l(),h(O(t.getChargePointCommandsComponent()),{"charge-point":c.chargePoint},null,8,["charge-point"]))],64)}const we=z(ke,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointProxy.vue"]]);F.add(R,N,Z,j,J);const ye={name:"TemplateAutoLockPlan",components:{FontAwesomeIcon:$},mixins:[H],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0}},emits:["update:modelValue","sendCommand"],data(){return{showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:this.templateId,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeAutolockPlan",data:{template:this.templateId,plan:this.modelValue.id}})}}},Ce={key:0},Pe={key:1},Ve={key:2},Le={key:1},Be={key:2};function We(n,e,c,P,_,t){const w=p("openwb-base-modal-dialog"),f=p("font-awesome-icon"),C=p("openwb-base-avatar"),y=p("openwb-base-text-input"),B=p("openwb-base-button-group-input"),I=p("openwb-base-card");return l(),u(A,null,[a(w,{show:_.showRemoveModal,title:"Autolock Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:o(()=>[i(' Wollen Sie den Autolock Zeitplan "'+v(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),a(I,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:o(b=>[b.collapsed==!0?(l(),u("span",{key:0,class:oe(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=U(k=>t.plan.active=!t.plan.active,["stop"]))},[a(f,{icon:["fas","clock"]}),i(" "+v(t.plan.time[0])+" - "+v(t.plan.time[1])+" ",1),t.plan.frequency.selected=="once"?(l(),u("span",Ce,[a(f,{icon:["fas","calendar-day"]}),i(" "+v(n.formatDate(t.plan.frequency.once[0])==n.formatDate(t.plan.frequency.once[1])?n.formatDate(t.plan.frequency.once[0]):n.formatDate(t.plan.frequency.once[0])+" - "+n.formatDate(t.plan.frequency.once[1])),1)])):g("",!0),t.plan.frequency.selected=="daily"?(l(),u("span",Pe,[a(f,{icon:["fas","calendar-week"]})])):g("",!0),t.plan.frequency.selected=="weekly"?(l(),u("span",Ve,[a(f,{icon:["fas","calendar-alt"]})])):g("",!0)],2)):g("",!0),b.collapsed==!1?(l(),u("span",Le,[a(C,{class:"bg-success clickable",title:"Autolock Zeitplan duplizieren",onClick:e[1]||(e[1]=U(k=>t.copyPlan(),["stop"]))},{default:o(()=>[a(f,{icon:["fas","copy"]})]),_:1}),a(C,{class:"bg-danger clickable ml-1",title:"Autolock Zeitplan löschen",onClick:e[2]||(e[2]=U(k=>t.removePlanModal(),["stop"]))},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:1})])):g("",!0)]),default:o(()=>[a(y,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=b=>t.plan.name=b),title:"Bezeichnung"},null,8,["modelValue"]),a(B,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=b=>t.plan.active=b),title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),a(y,{modelValue:t.plan.time[0],"onUpdate:modelValue":e[5]||(e[5]=b=>t.plan.time[0]=b),title:"Sperren um",subtype:"time"},null,8,["modelValue"]),a(y,{modelValue:t.plan.time[1],"onUpdate:modelValue":e[6]||(e[6]=b=>t.plan.time[1]=b),title:"Freigeben um",subtype:"time"},null,8,["modelValue"]),a(B,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[7]||(e[7]=b=>t.plan.frequency.selected=b),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(l(),h(y,{key:0,modelValue:t.plan.frequency.once[0],"onUpdate:modelValue":e[8]||(e[8]=b=>t.plan.frequency.once[0]=b),title:"Sperren ab ...",subtype:"date"},null,8,["modelValue"])):g("",!0),t.plan.frequency.selected=="once"?(l(),h(y,{key:1,modelValue:t.plan.frequency.once[1],"onUpdate:modelValue":e[9]||(e[9]=b=>t.plan.frequency.once[1]=b),title:"... bis",subtype:"date",min:t.plan.frequency.once[0]},null,8,["modelValue","min"])):g("",!0),t.plan.frequency.selected=="weekly"?(l(),u("div",Be,[(l(!0),u(A,null,S(n.weekdays,(b,k)=>(l(),h(B,{key:k,modelValue:t.plan.frequency.weekly[k],"onUpdate:modelValue":V=>t.plan.frequency.weekly[k]=V,title:b,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):g("",!0)]),_:1},8,["title"])],64)}const Ae=z(ye,[["render",We],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/TemplateAutoLockPlan.vue"]]);F.add(ee,R,N,Z,j,J,ne,te);const ze={name:"OpenwbChargePointInstallationView",components:{FontAwesomeIcon:$,FontAwesomeLayers:ae,OpenwbChargePointProxy:we,TemplateAutoLockPlan:Ae},mixins:[H],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/optional/dc_charging","openWB/optional/ocpp/config","openWB/optional/rfid/active","openWB/chargepoint/+/config","openWB/chargepoint/template/+","openWB/system/configurable/chargepoints","openWB/system/configurable/chargepoints_internal"],chargePointToAdd:void 0,showChargePointModal:!1,modalChargePointIndex:void 0,showChargePointTemplateModal:!1,modalChargePointTemplateIndex:void 0}},computed:{dcChargingEnabled:{get(){return this.$store.state.mqtt["openWB/optional/dc_charging"]}},installedChargePoints:{get(){let n=this.getWildcardTopics("openWB/chargepoint/+/config"),e={};for(const[c,P]of Object.entries(n))(P.type==="internal_openwb"||this.$store.state.mqtt["openWB/general/extern"]===!1)&&(e[c]=P);return e}},chargePointTemplates:{get(){return this.getWildcardTopics("openWB/chargepoint/template/+")}},chargePointTemplateList:{get(){let n=[];return Object.keys(this.chargePointTemplates).forEach(e=>{let c=parseInt(e.match(/([0-9]+)/g)[0]),P=this.$store.state.mqtt["openWB/chargepoint/template/"+c].name;n.push({value:c,text:P})}),n}}},methods:{addChargePoint(){this.$emit("sendCommand",{command:"addChargepoint",data:{type:this.chargePointToAdd}})},removeChargePointModal(n,e){n.stopPropagation(),this.modalChargePointIndex=parseInt(e.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showChargePointModal=!0},removeChargePoint(n,e){this.showChargePointModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargepoint",data:{id:e}})},getChargePointList(){return this.$store.state.mqtt["openWB/general/extern"]===!1?this.$store.state.mqtt["openWB/system/configurable/chargepoints"]:this.$store.state.mqtt["openWB/system/configurable/chargepoints_internal"]},getChargePointName(n){return this.$store.state.mqtt["openWB/chargepoint/"+n+"/config"]?this.$store.state.mqtt["openWB/chargepoint/"+n+"/config"].name:"Ladepunkt "+n},getChargePointTemplateIndex(n){return parseInt(n.match(/([^/]+)$/)[0])},getChargePointTemplateName(n){return this.$store.state.mqtt["openWB/chargepoint/template/"+n]?this.$store.state.mqtt["openWB/chargepoint/template/"+n].name:"Profil "+n},addChargePointTemplate(n,e){n.stopPropagation();let c={};e&&(c.copy=this.getChargePointTemplateIndex(e)),this.$emit("sendCommand",{command:"addChargepointTemplate",data:c})},removeChargePointTemplateModal(n,e){n.stopPropagation(),this.modalChargePointTemplateIndex=this.getChargePointTemplateIndex(e),this.showChargePointTemplateModal=!0},removeChargePointTemplate(n,e){this.showChargePointTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargepointTemplate",data:{id:e}})},addChargePointTemplateAutolockPlan(n){this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:this.getChargePointTemplateIndex(n)}})},updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)}}},Ie={class:"chargePointInstallation"},Ee={name:"chargePointInstallationForm"},Ue={key:0},Se={key:2},De={key:0},xe={key:0,class:"border-secondary"},qe={key:0},Me={key:1},Te={key:1},Oe={key:0},Fe={key:0},Re={key:1},Ne={key:1},Ze={key:0},je={key:2},Je={key:4};function $e(n,e,c,P,_,t){const w=p("openwb-base-modal-dialog"),f=p("font-awesome-icon"),C=p("openwb-base-alert"),y=p("openwb-base-avatar"),B=p("openwb-base-text-input"),I=p("openwb-base-select-input"),b=p("openwb-charge-point-proxy"),k=p("openwb-base-heading"),V=p("openwb-base-button-group-input"),E=p("openwb-base-card"),G=p("font-awesome-layers"),x=p("router-link"),Q=p("openwb-base-array-input"),q=p("openwb-base-range-input"),X=p("openwb-base-number-input"),Y=p("template-auto-lock-plan"),K=p("openwb-base-submit-buttons");return l(),u(A,null,[a(w,{show:_.showChargePointModal,title:"Ladepunkt löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=s=>t.removeChargePoint(s,_.modalChargePointIndex))},{default:o(()=>[i(' Wollen Sie den Ladepunkt "'+v(t.getChargePointName(_.modalChargePointIndex))+'" (ID: '+v(_.modalChargePointIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),a(w,{show:_.showChargePointTemplateModal,title:"Ladepunkt-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=s=>t.removeChargePointTemplate(s,_.modalChargePointTemplateIndex))},{default:o(()=>[i(' Wollen Sie das Ladepunkt-Profil "'+v(t.getChargePointTemplateName(_.modalChargePointTemplateIndex))+'" (ID: '+v(_.modalChargePointTemplateIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),m("div",Ie,[m("form",Ee,[a(E,{title:"Ladepunkte",subtype:"primary",collapsible:!0,collapsed:!c.installAssistantActive},{header:o(()=>[a(f,{icon:["fas","charging-station"]}),e[7]||(e[7]=i(" Ladepunkte ",-1))]),default:o(()=>[a(C,{subtype:"info"},{default:o(()=>e[8]||(e[8]=[i(" Eine detaillierte Anleitung zur Einrichtung der Ladepunkte findet sich in unserem ",-1),m("a",{href:"https://wiki.openwb.de/doku.php?id=openwb:software:konfiguration:ladepunkte:openwb",target:"_blank",rel:"noopener noreferrer"},"Wiki",-1),i(" . ",-1)])),_:1,__:[8]}),(l(!0),u(A,null,S(t.installedChargePoints,(s,d)=>(l(),h(E,{key:d,title:s.name+" (ID: "+s.id+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(r=>[r.collapsed?g("",!0):(l(),h(y,{key:0,class:"bg-danger clickable",title:"Ladepunkt löschen",onClick:W=>t.removeChargePointModal(W,d)},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:o(()=>[a(B,{title:"Bezeichnung",subtype:"text","model-value":s.name,"onUpdate:modelValue":r=>n.updateState(d,r,"name")},null,8,["model-value","onUpdate:modelValue"]),a(B,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":n.$store.state.mqtt[d].type},null,8,["model-value"]),s.type!=="internal_openwb"||n.$store.state.mqtt["openWB/general/extern"]===!1?(l(),u("span",Ue,[a(I,{title:"Ladepunkt-Profil",options:t.chargePointTemplateList,"model-value":n.$store.state.mqtt[d].template,"onUpdate:modelValue":r=>n.updateState(d,r,"template")},null,8,["options","model-value","onUpdate:modelValue"])])):g("",!0),n.$store.state.mqtt["openWB/optional/ocpp/config"].active===!0?(l(),h(B,{key:1,title:"OCPP-Chargebox ID","model-value":s.ocpp_chargebox_id,"onUpdate:modelValue":r=>n.updateState(d,r,"ocpp_chargebox_id")},{help:o(()=>[...e[9]||(e[9]=[i(" Bitte geben Sie hier die Chargebox ID ein, die im OCPP-Backend für diesen Ladepunkt verwendet wird. Sollen die Daten dieses Ladepunktes nicht an ein OCPP-Backend übertragen werden, lasse dieses Feld leer. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])):g("",!0),e[15]||(e[15]=m("hr",null,null,-1)),a(b,{"charge-point":s,"onUpdate:configuration":r=>t.updateConfiguration(d,r)},null,8,["charge-point","onUpdate:configuration"]),(s.type!=="internal_openwb"||n.$store.state.mqtt["openWB/general/extern"]===!1)&&s.charging_type!=="DC"?(l(),u("div",Se,[e[14]||(e[14]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[10]||(e[10]=[i(" Hardware-Optionen ",-1)])]),_:1,__:[10]}),a(V,{title:"automatische Phasenumschaltung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.auto_phase_switch_hw,"onUpdate:modelValue":r=>n.updateState(d,r,"auto_phase_switch_hw")},null,8,["model-value","onUpdate:modelValue"]),a(V,{title:"Control-Pilot-Unterbrechung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.control_pilot_interruption_hw,"onUpdate:modelValue":r=>n.updateState(d,r,"control_pilot_interruption_hw")},{help:o(()=>[...e[11]||(e[11]=[i(' Die Control-Pilot-Leitung ist im Ladekabel integriert und dient der Steuerung der Fahrzeugladung (An/Aus/Stromvorgaben). Bei einigen Fahrzeugen können durch die Regelung erzwungene, längere Ladestopps (z.B. beim PV-Laden) zu unerwünschten "Einschlaf"-Effekten des Fahrzeuges führen. Mit diesem Feature, welches hardwareseitig verbaut sein muss, kann ein Abstecken des Ladesteckers simuliert werden, um ein Aufwecken des Fahrzeuges zu ermöglichen. Die Funktion hängt immer auch vom Fahrzeugtyp ab. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(k,null,{default:o(()=>[...e[12]||(e[12]=[i(" Elektrischer Anschluss ",-1)])]),_:1,__:[12]}),a(V,{title:"Anzahl angeschlossener Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":s.connected_phases,"onUpdate:modelValue":r=>n.updateState(d,r,"connected_phases")},null,8,["model-value","onUpdate:modelValue"]),a(V,{title:"Phase 1 des Ladekabels",buttons:[{buttonValue:1,text:"EVU L1"},{buttonValue:2,text:"EVU L2"},{buttonValue:3,text:"EVU L3"}],"model-value":s.phase_1,"onUpdate:modelValue":r=>n.updateState(d,r,"phase_1")},{help:o(()=>[...e[13]||(e[13]=[i(" Hier ist anzugeben, an welcher Phase des Hausanschlusses (EVU-Punkt) die Phase 1 dieses Ladepunktes angeschlossen ist. Diese Information wird für das Lastmanagement benötigt, um bei einer Schieflast gezielt einzelne Ladepunkte zu drosseln.",-1),m("br",null,null,-1),i(' Bei mehreren Ladepunkten macht es Sinn, die Phasen der LP rotierend anzuschließen, damit mehrere "nicht-dreiphasig" ladende Fahrzeuge mit optimaler Leistung laden können, bevor das Lastmanagement eingreift.',-1),m("br",null,null,-1),i(" Es wird vorausgesetzt, dass das Drehfeld innerhalb der Installation gleich bleibt. Wenn z.B. L1 des Ladepunktes auf EVU-L2 liegt, muss L2 des Ladepunktes auf EVU-L3 aufgelegt sein (und L3 des Ladepunktes auf EVU-L1).",-1),m("br",null,null,-1),i(" Eine Möglichkeit, die zur Ladepunktphase L1 zugehörige EVU-Phase zu ermitteln, ist eine einphasige Ladung zu starten und die Phasenströme am EVU-Zähler zu beobachten. Mit einem zweiphasig ladenden Fahrzeug kann danach auch der Anschluss von L2 ermittelt und so das Drehfeld kontrolliert werden.",-1),m("br",null,null,-1),i(" Im Zweifel bitte das Drehfeld von einer Fachkraft prüfen und korrigieren lassen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])])):g("",!0)]),_:2,__:[15]},1032,["title"]))),128)),Object.keys(t.installedChargePoints).length>0?(l(),u("hr",De)):g("",!0),a(I,{title:"Verfügbare Ladepunkte","not-selected":"Bitte auswählen",options:t.getChargePointList(),"model-value":_.chargePointToAdd,"add-button":!0,"onUpdate:modelValue":e[2]||(e[2]=s=>_.chargePointToAdd=s),"onInput:add":t.addChargePoint},{help:o(()=>e[16]||(e[16]=[i(" Bitte einen Ladepunkt auswählen, der der openWB-Regelung hinzugefügt werden soll.",-1),m("br",null,null,-1),m("ul",null,[m("li",null," Interne openWB - wenn diese openWB über einen verbauten Ladepunkt mit Regelcontroller verfügt (z.B. Standard(+), Custom, Duo, Buchse, NICHT Standalone); ansonsten immer anlegen, egal ob diese openWB steuert = primary oder ferngesteuert wird = secondary "),m("li",null," Secondary openWB - wenn diese openWB (primary) die Fernsteuerung von weiteren openWB (secondary) übernimmt "),m("li",null,"MQTT-Ladepunkt - nur zur Nutzung des openWB-Simulators zugelassen"),m("li",null,"openWB Pro - wenn diese openWB (primary) die Fernsteuerung einer openWB Pro (secondary) übernimmt"),m("li",null," openWB series2 Satellit/Satellit Duo - wenn diese openWB (primary) die Fernsteuerung einer openWB series2 Satellit/Satellit Duo (secondary) übernimmt "),m("li",null," smartWB/EVSE-Wifi - wenn diese openWB (primary) die Fernsteuerung einer smartWB/EVSE-Wifi übernimmt ")],-1)])),_:1},8,["options","model-value","onInput:add"])]),_:1},8,["collapsed"]),n.$store.state.mqtt["openWB/general/extern"]==!1||!c.installAssistantActive?(l(),u("hr",xe)):g("",!0),n.$store.state.mqtt["openWB/general/extern"]===!1||!c.installAssistantActive?(l(),h(E,{key:1,title:"Ladepunkt-Profile",collapsible:!0,collapsed:!0},{header:o(()=>[a(G,{class:"fa-lg"},{default:o(()=>[a(f,{icon:["far","file"]}),a(f,{icon:["fas","charging-station"],transform:"shrink-8"})]),_:1}),e[17]||(e[17]=i(" Ladepunkt-Profile ",-1))]),actions:o(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(l(),h(y,{key:0,class:"bg-success clickable",title:"Neues Ladepunkt-Profil anlegen",onClick:t.addChargePointTemplate},{default:o(()=>[a(f,{icon:["fas","plus"]})]),_:1},8,["onClick"])):g("",!0)]),default:o(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(l(),u("div",qe,[a(C,{subtype:"info"},{default:o(()=>e[18]||(e[18]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[18]})])):(l(),u("div",Me,[(l(!0),u(A,null,S(t.chargePointTemplates,(s,d)=>(l(),h(E,{key:d,title:`${s.name} (ID: ${t.getChargePointTemplateIndex(d)})`,collapsible:!0,collapsed:!0},{actions:o(r=>[r.collapsed==!1?(l(),h(y,{key:0,class:"bg-success clickable",title:"Ladepunkt-Profil duplizieren",onClick:W=>t.addChargePointTemplate(W,d)},{default:o(()=>[a(f,{icon:["fas","copy"]})]),_:2},1032,["onClick"])):g("",!0),r.collapsed==!1&&!d.endsWith("/0")?(l(),h(y,{key:1,class:"bg-danger clickable ml-1",title:"Ladepunkt-Profil löschen",onClick:W=>t.removeChargePointTemplateModal(W,d)},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:2},1032,["onClick"])):g("",!0)]),default:o(()=>[a(B,{title:"Bezeichnung",subtype:"text","model-value":s.name,disabled:d.endsWith("/0"),"onUpdate:modelValue":r=>n.updateState(d,r,"name")},le({_:2},[d.endsWith("/0")?{name:"help",fn:o(()=>[e[19]||(e[19]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(l(),h(V,{key:0,title:"Typ des Ladeprofils",buttons:[{buttonValue:"AC",text:"AC"},{buttonValue:"DC",text:"DC"}],"model-value":s.charging_type,"onUpdate:modelValue":r=>n.updateState(d,r,"charging_type")},null,8,["model-value","onUpdate:modelValue"])):g("",!0),e[39]||(e[39]=m("hr",null,null,-1)),c.installAssistantActive?g("",!0):(l(),u("div",Te,[a(k,null,{default:o(()=>[...e[20]||(e[20]=[i(" Zugangskontrolle ",-1)])]),_:1,__:[20]}),s.valid_tags.length>0?(l(),u("div",Oe,[a(C,{subtype:"info"},{default:o(()=>[e[22]||(e[22]=i(" Einstellungen zur Zugangskontrolle finden sich unter ",-1)),a(x,{to:"/IdentificationConfig"},{default:o(()=>[...e[21]||(e[21]=[i(" Einstellungen - Identifikation ",-1)])]),_:1,__:[21]}),e[23]||(e[23]=i(". ",-1)),n.$store.state.mqtt["openWB/optional/rfid/active"]===!0&&s.disable_after_unplug?(l(),u("div",Fe," Die Option ist aktiv. Ladepunkte denen dieses Ladepunkt-Profil zugeordnet ist müssen per ID-Tag entsperrt werden. ")):(l(),u("div",Re,"Aktuell ist die Option in den Einstellungen deaktiviert.")),e[24]||(e[24]=i(" Dem Ladepunkt-Profil sind folgende ID-Tags zum Entsperren zugeordnet: ",-1))]),_:2,__:[22,23,24]},1024),a(Q,{title:"Zugeordnete ID-Tags","no-elements-message":"Keine keine ID-Tags zugeordnet.","no-input":"true","model-value":s.valid_tags},null,8,["model-value"])])):(l(),u("div",Ne,[a(C,{subtype:"info"},{default:o(()=>[e[26]||(e[26]=i(" Einstellungen zur Zugangskontrolle finden sich unter ",-1)),a(x,{to:"/IdentificationConfig"},{default:o(()=>[...e[25]||(e[25]=[i(" Einstellungen - Identifikation ",-1)])]),_:1,__:[25]}),e[27]||(e[27]=i(".",-1)),e[28]||(e[28]=m("br",null,null,-1)),e[29]||(e[29]=i(" Dem Ladepunkt-Profil sind aktuell keine ID-Tags zum Entsperren zugeordnet. ",-1))]),_:1,__:[26,27,28,29]})]))])),e[40]||(e[40]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[30]||(e[30]=[i(" Angaben zum konfigurierten Ladestrom der openWB ",-1)])]),_:1,__:[30]}),a(C,{subtype:"info"},{default:o(()=>[e[31]||(e[31]=i(" Hier werden die maximalen Ladeströme entsprechend der in dem zugeordneten Ladepunkt genutzten Phasen eingestellt.",-1)),e[32]||(e[32]=m("br",null,null,-1)),e[33]||(e[33]=i(" Generell gilt, dass diese Werte in Übereinstimmung mit der Ausführung des Ladepunktes und des elektrischen Anschlusses bzw. der Absicherung zu wählen sind. ",-1)),s.charging_type==="AC"?(l(),u("span",Ze," Bei einer openWB mit 22kW Maximalleistung sind hier jeweils 32A einzustellen. Ist die openWB beispielsweise auf 11kW begrenzt (KfW-Förderung oder die Zuleitung ist mit 16A abgesichert), dann sind hier jeweils 16A einzustellen. ")):g("",!0)]),_:2,__:[31,32,33]},1024),s.charging_type==="AC"||t.dcChargingEnabled!==!0?(l(),u("div",je,[a(q,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":s.max_current_single_phase,"onUpdate:modelValue":r=>n.updateState(d,r,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),a(q,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":s.max_current_multi_phases,"onUpdate:modelValue":r=>n.updateState(d,r,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"])])):(l(),h(X,{key:3,title:"Maximalleistung",min:22,max:420,step:1,unit:"kW",precision:5,"model-value":n.ac_current2dc_power(s.dc_max_current),"onUpdate:modelValue":r=>n.updateState(d,n.dc_power2ac_current(r),"dc_max_current")},null,8,["model-value","onUpdate:modelValue"])),c.installAssistantActive?g("",!0):(l(),u("div",Je,[e[38]||(e[38]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[34]||(e[34]=[i(" Sperren nach Uhrzeit (Komplettsperrung - keine Freischaltung per ID-Tag möglich) ",-1)])]),_:1,__:[34]}),a(V,{title:"Sperren nach Uhrzeit aktiv",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.autolock.active,"onUpdate:modelValue":r=>n.updateState(d,r,"autolock.active")},{help:o(()=>[...e[35]||(e[35]=[i(" WirdSperren nach Uhrzeit aktiviert, können Fahrzeugladungen mittels Zeitplan auf gewünschte Zeitbereiche eingeschränkt werden. Dies kann z.B. bei Zugänglichkeiten zu Ladepunkten in öffentlichen oder halb-öffentlichen Bereichen sinnvoll sein. In dieser Zeit ist keine Freischaltung per RFID, Fahrzeugerkennung oder Pin möglich. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(V,{title:"Erst nach Ladeende sperren",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.autolock.wait_for_charging_end,"onUpdate:modelValue":r=>n.updateState(d,r,"autolock.wait_for_charging_end")},{help:o(()=>[...e[36]||(e[36]=[i(' Wenn ein Zeitplan Sperren nach Uhrzeit aktiviert, werden alle Ladepunkte direkt gesperrt und laufende Ladevorgänge beendet. Wird hier "Ja" ausgewählt, dann werden laufende Ladevorgänge NICHT beendet und diese Ladepunkte erst nach abgeschlossener Ladung gesperrt. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(k,null,{actions:o(()=>[a(y,{class:"bg-success clickable",title:"Neuen Autolock Zeitplan anlegen",onClick:U(r=>t.addChargePointTemplateAutolockPlan(d),["stop"])},{default:o(()=>[a(f,{icon:["fas","plus"]})]),_:2},1032,["onClick"])]),default:o(()=>[e[37]||(e[37]=i(" Zeitpläne für Sperren nach Uhrzeit ",-1))]),_:2,__:[37]},1024)])),(l(!0),u(A,null,S(s.autolock.plans,(r,W)=>(l(),h(Y,{key:W,"model-value":r,"template-id":s.id,"onUpdate:modelValue":D=>n.updateState(d,D,`autolock.plans.${W}`),onSendCommand:e[3]||(e[3]=D=>n.$emit("sendCommand",D))},null,8,["model-value","template-id","onUpdate:modelValue"]))),128))]),_:2,__:[39,40]},1032,["title"]))),128))]))]),_:1})):g("",!0),a(K,{"form-name":"chargePointInstallationForm",onSave:e[4]||(e[4]=s=>n.$emit("save")),onReset:e[5]||(e[5]=s=>n.$emit("reset")),onDefaults:e[6]||(e[6]=s=>n.$emit("defaults"))})])])],64)}const He=z(ze,[["render",$e],["__scopeId","data-v-75fe5743"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ChargePointInstallation.vue"]]),Ke=Object.freeze(Object.defineProperty({__proto__:null,default:He},Symbol.toStringTag,{value:"Module"}));export{se as C,ce as a,He as b,Ke as c}; diff --git a/web/settings/assets/ChargePointInstallation-81239155.js b/web/settings/assets/ChargePointInstallation-81239155.js deleted file mode 100644 index bfa327c573..0000000000 --- a/web/settings/assets/ChargePointInstallation-81239155.js +++ /dev/null @@ -1 +0,0 @@ -import{l as F,ab as R,al as N,G as Z,am as j,an as J,F as $,d as ee,Q as ne,ao as te,M as ae}from"./vendor-fortawesome-2b3791bb.js";import{_ as L,C as H}from"./index-0992d19b.js";import{_ as M}from"./dynamic-import-helper-be004503.js";import{_ as z,u as p,l,m as u,x as h,E as o,B as i,F as v,G as a,A as m,a2 as T,a3 as O,N as A,q as oe,y as U,z as g,M as S,D as le}from"./vendor-36bf053b.js";const ie={props:{chargePoint:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},se=z(ie,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/ChargePointConfigMixin.vue"]]),re={name:"ChargePointConfigFallback",mixins:[se]},ue={class:"charge-point-config-fallback"},de={key:1};function pe(n,e,c,P,_,t){const w=p("openwb-base-alert"),f=p("openwb-base-textarea");return l(),u("div",ue,[Object.keys(n.chargePoint.configuration).length==0?(l(),h(w,{key:0,subtype:"info"},{default:o(()=>[i(' Der Ladepunkt-Typ "'+v(n.chargePoint.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(l(),u("div",de,[a(w,{subtype:"warning"},{default:o(()=>[i(' Es wurde keine Konfigurationsseite für den Ladepunkt-Typ "'+v(n.chargePoint.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),a(f,{title:"Konfiguration",subtype:"json","model-value":n.chargePoint.configuration,"onUpdate:modelValue":e[0]||(e[0]=C=>n.updateConfiguration(C,"configuration"))},{help:o(()=>[...e[1]||(e[1]=[i(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),a(w,{subtype:"info"},{default:o(()=>[m("pre",null,v(JSON.stringify(n.chargePoint.configuration,void 0,2)),1)]),_:1})]))])}const me=z(re,[["render",pe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointConfigFallback.vue"]]),ge={props:{chargePoint:{type:Object,required:!0}}},ce=z(ge,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/ChargePointCommandsMixin.vue"]]),be={name:"ChargePointCommandsFallback",mixins:[ce]},fe={class:"charge-point-commands-fallback"};function he(n,e,c,P,_,t){return l(),u("div",fe)}const _e=z(be,[["render",he],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointCommandsFallback.vue"]]),ke={name:"OpenwbChargePointProxy",props:{chargePoint:{required:!0,type:Object}},emits:["update:configuration"],methods:{getChargePointSettingsComponent(){return console.debug(`loading charge point settings: ${this.chargePoint.type}`),T({loader:()=>M(Object.assign({"./external_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-5f7a56d3.js"),["assets/chargePoint-5f7a56d3.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./internal_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-275481b9.js"),["assets/chargePoint-275481b9.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mqtt/chargePoint.vue":()=>L(()=>import("./chargePoint-c8dd557f.js"),["assets/chargePoint-c8dd557f.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_dc_adapter/chargePoint.vue":()=>L(()=>import("./chargePoint-ee9642cb.js"),["assets/chargePoint-ee9642cb.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_pro/chargePoint.vue":()=>L(()=>import("./chargePoint-e515f3fa.js"),["assets/chargePoint-e515f3fa.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_series2_satellit/chargePoint.vue":()=>L(()=>import("./chargePoint-73256b81.js"),["assets/chargePoint-73256b81.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smartwb/chargePoint.vue":()=>L(()=>import("./chargePoint-2a30a0c1.js"),["assets/chargePoint-2a30a0c1.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.chargePoint.type}/chargePoint.vue`),errorComponent:me})},getChargePointCommandsComponent(){return console.debug(`loading charge point commands: ${this.chargePoint.type}`),T({loader:()=>M(Object.assign({"./internal_openwb/commands.vue":()=>L(()=>import("./commands-425a88ce.js"),["assets/commands-425a88ce.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_pro/commands.vue":()=>L(()=>import("./commands-270f1fee.js"),["assets/commands-270f1fee.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.chargePoint.type}/commands.vue`),errorComponent:_e})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function ve(n,e,c,P,_,t){const w=p("openwb-base-heading");return l(),u(A,null,[a(w,null,{default:o(()=>[i(' Einstellungen für Ladepunkt Typ "'+v(c.chargePoint.type)+'" ',1)]),_:1}),(l(),h(O(t.getChargePointSettingsComponent()),{"charge-point":c.chargePoint,"onUpdate:configuration":e[0]||(e[0]=f=>t.updateConfiguration(f))},null,40,["charge-point"])),e[1]||(e[1]=m("hr",null,null,-1)),a(w,null,{default:o(()=>[i(' Befehle für Ladepunkt Typ "'+v(c.chargePoint.type)+'" ',1)]),_:1}),(l(),h(O(t.getChargePointCommandsComponent()),{"charge-point":c.chargePoint},null,8,["charge-point"]))],64)}const we=z(ke,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointProxy.vue"]]);F.add(R,N,Z,j,J);const ye={name:"TemplateAutoLockPlan",components:{FontAwesomeIcon:$},mixins:[H],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0}},emits:["update:modelValue","sendCommand"],data(){return{showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:this.templateId,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeAutolockPlan",data:{template:this.templateId,plan:this.modelValue.id}})}}},Ce={key:0},Pe={key:1},Ve={key:2},Le={key:1},Be={key:2};function We(n,e,c,P,_,t){const w=p("openwb-base-modal-dialog"),f=p("font-awesome-icon"),C=p("openwb-base-avatar"),y=p("openwb-base-text-input"),B=p("openwb-base-button-group-input"),I=p("openwb-base-card");return l(),u(A,null,[a(w,{show:_.showRemoveModal,title:"Autolock Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:o(()=>[i(' Wollen Sie den Autolock Zeitplan "'+v(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),a(I,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:o(b=>[b.collapsed==!0?(l(),u("span",{key:0,class:oe(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=U(k=>t.plan.active=!t.plan.active,["stop"]))},[a(f,{icon:["fas","clock"]}),i(" "+v(t.plan.time[0])+" - "+v(t.plan.time[1])+" ",1),t.plan.frequency.selected=="once"?(l(),u("span",Ce,[a(f,{icon:["fas","calendar-day"]}),i(" "+v(n.formatDate(t.plan.frequency.once[0])==n.formatDate(t.plan.frequency.once[1])?n.formatDate(t.plan.frequency.once[0]):n.formatDate(t.plan.frequency.once[0])+" - "+n.formatDate(t.plan.frequency.once[1])),1)])):g("",!0),t.plan.frequency.selected=="daily"?(l(),u("span",Pe,[a(f,{icon:["fas","calendar-week"]})])):g("",!0),t.plan.frequency.selected=="weekly"?(l(),u("span",Ve,[a(f,{icon:["fas","calendar-alt"]})])):g("",!0)],2)):g("",!0),b.collapsed==!1?(l(),u("span",Le,[a(C,{class:"bg-success clickable",title:"Autolock Zeitplan duplizieren",onClick:e[1]||(e[1]=U(k=>t.copyPlan(),["stop"]))},{default:o(()=>[a(f,{icon:["fas","copy"]})]),_:1}),a(C,{class:"bg-danger clickable ml-1",title:"Autolock Zeitplan löschen",onClick:e[2]||(e[2]=U(k=>t.removePlanModal(),["stop"]))},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:1})])):g("",!0)]),default:o(()=>[a(y,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=b=>t.plan.name=b),title:"Bezeichnung"},null,8,["modelValue"]),a(B,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=b=>t.plan.active=b),title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),a(y,{modelValue:t.plan.time[0],"onUpdate:modelValue":e[5]||(e[5]=b=>t.plan.time[0]=b),title:"Sperren um",subtype:"time"},null,8,["modelValue"]),a(y,{modelValue:t.plan.time[1],"onUpdate:modelValue":e[6]||(e[6]=b=>t.plan.time[1]=b),title:"Freigeben um",subtype:"time"},null,8,["modelValue"]),a(B,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[7]||(e[7]=b=>t.plan.frequency.selected=b),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(l(),h(y,{key:0,modelValue:t.plan.frequency.once[0],"onUpdate:modelValue":e[8]||(e[8]=b=>t.plan.frequency.once[0]=b),title:"Sperren ab ...",subtype:"date"},null,8,["modelValue"])):g("",!0),t.plan.frequency.selected=="once"?(l(),h(y,{key:1,modelValue:t.plan.frequency.once[1],"onUpdate:modelValue":e[9]||(e[9]=b=>t.plan.frequency.once[1]=b),title:"... bis",subtype:"date",min:t.plan.frequency.once[0]},null,8,["modelValue","min"])):g("",!0),t.plan.frequency.selected=="weekly"?(l(),u("div",Be,[(l(!0),u(A,null,S(n.weekdays,(b,k)=>(l(),h(B,{key:k,modelValue:t.plan.frequency.weekly[k],"onUpdate:modelValue":V=>t.plan.frequency.weekly[k]=V,title:b,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):g("",!0)]),_:1},8,["title"])],64)}const Ae=z(ye,[["render",We],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/TemplateAutoLockPlan.vue"]]);F.add(ee,R,N,Z,j,J,ne,te);const ze={name:"OpenwbChargePointInstallationView",components:{FontAwesomeIcon:$,FontAwesomeLayers:ae,OpenwbChargePointProxy:we,TemplateAutoLockPlan:Ae},mixins:[H],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/optional/dc_charging","openWB/optional/ocpp/config","openWB/optional/rfid/active","openWB/chargepoint/+/config","openWB/chargepoint/template/+","openWB/system/configurable/chargepoints","openWB/system/configurable/chargepoints_internal"],chargePointToAdd:void 0,showChargePointModal:!1,modalChargePointIndex:void 0,showChargePointTemplateModal:!1,modalChargePointTemplateIndex:void 0}},computed:{dcChargingEnabled:{get(){return this.$store.state.mqtt["openWB/optional/dc_charging"]}},installedChargePoints:{get(){let n=this.getWildcardTopics("openWB/chargepoint/+/config"),e={};for(const[c,P]of Object.entries(n))(P.type==="internal_openwb"||this.$store.state.mqtt["openWB/general/extern"]===!1)&&(e[c]=P);return e}},chargePointTemplates:{get(){return this.getWildcardTopics("openWB/chargepoint/template/+")}},chargePointTemplateList:{get(){let n=[];return Object.keys(this.chargePointTemplates).forEach(e=>{let c=parseInt(e.match(/([0-9]+)/g)[0]),P=this.$store.state.mqtt["openWB/chargepoint/template/"+c].name;n.push({value:c,text:P})}),n}}},methods:{addChargePoint(){this.$emit("sendCommand",{command:"addChargepoint",data:{type:this.chargePointToAdd}})},removeChargePointModal(n,e){n.stopPropagation(),this.modalChargePointIndex=parseInt(e.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showChargePointModal=!0},removeChargePoint(n,e){this.showChargePointModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargepoint",data:{id:e}})},getChargePointList(){return this.$store.state.mqtt["openWB/general/extern"]===!1?this.$store.state.mqtt["openWB/system/configurable/chargepoints"]:this.$store.state.mqtt["openWB/system/configurable/chargepoints_internal"]},getChargePointName(n){return this.$store.state.mqtt["openWB/chargepoint/"+n+"/config"]?this.$store.state.mqtt["openWB/chargepoint/"+n+"/config"].name:"Ladepunkt "+n},getChargePointTemplateIndex(n){return parseInt(n.match(/([^/]+)$/)[0])},getChargePointTemplateName(n){return this.$store.state.mqtt["openWB/chargepoint/template/"+n]?this.$store.state.mqtt["openWB/chargepoint/template/"+n].name:"Profil "+n},addChargePointTemplate(n,e){n.stopPropagation();let c={};e&&(c.copy=this.getChargePointTemplateIndex(e)),this.$emit("sendCommand",{command:"addChargepointTemplate",data:c})},removeChargePointTemplateModal(n,e){n.stopPropagation(),this.modalChargePointTemplateIndex=this.getChargePointTemplateIndex(e),this.showChargePointTemplateModal=!0},removeChargePointTemplate(n,e){this.showChargePointTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargepointTemplate",data:{id:e}})},addChargePointTemplateAutolockPlan(n){this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:this.getChargePointTemplateIndex(n)}})},updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)}}},Ie={class:"chargePointInstallation"},Ee={name:"chargePointInstallationForm"},Ue={key:0},Se={key:2},De={key:0},xe={key:0,class:"border-secondary"},qe={key:0},Me={key:1},Te={key:1},Oe={key:0},Fe={key:0},Re={key:1},Ne={key:1},Ze={key:0},je={key:2},Je={key:4};function $e(n,e,c,P,_,t){const w=p("openwb-base-modal-dialog"),f=p("font-awesome-icon"),C=p("openwb-base-alert"),y=p("openwb-base-avatar"),B=p("openwb-base-text-input"),I=p("openwb-base-select-input"),b=p("openwb-charge-point-proxy"),k=p("openwb-base-heading"),V=p("openwb-base-button-group-input"),E=p("openwb-base-card"),G=p("font-awesome-layers"),x=p("router-link"),Q=p("openwb-base-array-input"),q=p("openwb-base-range-input"),X=p("openwb-base-number-input"),Y=p("template-auto-lock-plan"),K=p("openwb-base-submit-buttons");return l(),u(A,null,[a(w,{show:_.showChargePointModal,title:"Ladepunkt löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=s=>t.removeChargePoint(s,_.modalChargePointIndex))},{default:o(()=>[i(' Wollen Sie den Ladepunkt "'+v(t.getChargePointName(_.modalChargePointIndex))+'" (ID: '+v(_.modalChargePointIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),a(w,{show:_.showChargePointTemplateModal,title:"Ladepunkt-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=s=>t.removeChargePointTemplate(s,_.modalChargePointTemplateIndex))},{default:o(()=>[i(' Wollen Sie das Ladepunkt-Profil "'+v(t.getChargePointTemplateName(_.modalChargePointTemplateIndex))+'" (ID: '+v(_.modalChargePointTemplateIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),m("div",Ie,[m("form",Ee,[a(E,{title:"Ladepunkte",subtype:"primary",collapsible:!0,collapsed:!c.installAssistantActive},{header:o(()=>[a(f,{icon:["fas","charging-station"]}),e[7]||(e[7]=i(" Ladepunkte ",-1))]),default:o(()=>[a(C,{subtype:"info"},{default:o(()=>[...e[8]||(e[8]=[i(" Eine detaillierte Anleitung zur Einrichtung der Ladepunkte findet sich in unserem ",-1),m("a",{href:"https://wiki.openwb.de/doku.php?id=openwb:software:konfiguration:ladepunkte:openwb",target:"_blank",rel:"noopener noreferrer"},"Wiki",-1),i(" . ",-1)])]),_:1}),(l(!0),u(A,null,S(t.installedChargePoints,(s,d)=>(l(),h(E,{key:d,title:s.name+" (ID: "+s.id+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(r=>[r.collapsed?g("",!0):(l(),h(y,{key:0,class:"bg-danger clickable",title:"Ladepunkt löschen",onClick:W=>t.removeChargePointModal(W,d)},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:o(()=>[a(B,{title:"Bezeichnung",subtype:"text","model-value":s.name,"onUpdate:modelValue":r=>n.updateState(d,r,"name")},null,8,["model-value","onUpdate:modelValue"]),a(B,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":n.$store.state.mqtt[d].type},null,8,["model-value"]),s.type!=="internal_openwb"||n.$store.state.mqtt["openWB/general/extern"]===!1?(l(),u("span",Ue,[a(I,{title:"Ladepunkt-Profil",options:t.chargePointTemplateList,"model-value":n.$store.state.mqtt[d].template,"onUpdate:modelValue":r=>n.updateState(d,r,"template")},null,8,["options","model-value","onUpdate:modelValue"])])):g("",!0),n.$store.state.mqtt["openWB/optional/ocpp/config"].active===!0?(l(),h(B,{key:1,title:"OCPP-Chargebox ID","model-value":s.ocpp_chargebox_id,"onUpdate:modelValue":r=>n.updateState(d,r,"ocpp_chargebox_id")},{help:o(()=>[...e[9]||(e[9]=[i(" Bitte geben Sie hier die Chargebox ID ein, die im OCPP-Backend für diesen Ladepunkt verwendet wird. Sollen die Daten dieses Ladepunktes nicht an ein OCPP-Backend übertragen werden, lasse dieses Feld leer. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):g("",!0),e[15]||(e[15]=m("hr",null,null,-1)),a(b,{"charge-point":s,"onUpdate:configuration":r=>t.updateConfiguration(d,r)},null,8,["charge-point","onUpdate:configuration"]),(s.type!=="internal_openwb"||n.$store.state.mqtt["openWB/general/extern"]===!1)&&s.charging_type!=="DC"?(l(),u("div",Se,[e[14]||(e[14]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[10]||(e[10]=[i(" Hardware-Optionen ",-1)])]),_:1}),a(V,{title:"automatische Phasenumschaltung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.auto_phase_switch_hw,"onUpdate:modelValue":r=>n.updateState(d,r,"auto_phase_switch_hw")},null,8,["model-value","onUpdate:modelValue"]),a(V,{title:"Control-Pilot-Unterbrechung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.control_pilot_interruption_hw,"onUpdate:modelValue":r=>n.updateState(d,r,"control_pilot_interruption_hw")},{help:o(()=>[...e[11]||(e[11]=[i(' Die Control-Pilot-Leitung ist im Ladekabel integriert und dient der Steuerung der Fahrzeugladung (An/Aus/Stromvorgaben). Bei einigen Fahrzeugen können durch die Regelung erzwungene, längere Ladestopps (z.B. beim PV-Laden) zu unerwünschten "Einschlaf"-Effekten des Fahrzeuges führen. Mit diesem Feature, welches hardwareseitig verbaut sein muss, kann ein Abstecken des Ladesteckers simuliert werden, um ein Aufwecken des Fahrzeuges zu ermöglichen. Die Funktion hängt immer auch vom Fahrzeugtyp ab. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(k,null,{default:o(()=>[...e[12]||(e[12]=[i(" Elektrischer Anschluss ",-1)])]),_:1}),a(V,{title:"Anzahl angeschlossener Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":s.connected_phases,"onUpdate:modelValue":r=>n.updateState(d,r,"connected_phases")},null,8,["model-value","onUpdate:modelValue"]),a(V,{title:"Phase 1 des Ladekabels",buttons:[{buttonValue:1,text:"EVU L1"},{buttonValue:2,text:"EVU L2"},{buttonValue:3,text:"EVU L3"}],"model-value":s.phase_1,"onUpdate:modelValue":r=>n.updateState(d,r,"phase_1")},{help:o(()=>[...e[13]||(e[13]=[i(" Hier ist anzugeben, an welcher Phase des Hausanschlusses (EVU-Punkt) die Phase 1 dieses Ladepunktes angeschlossen ist. Diese Information wird für das Lastmanagement benötigt, um bei einer Schieflast gezielt einzelne Ladepunkte zu drosseln.",-1),m("br",null,null,-1),i(' Bei mehreren Ladepunkten macht es Sinn, die Phasen der LP rotierend anzuschließen, damit mehrere "nicht-dreiphasig" ladende Fahrzeuge mit optimaler Leistung laden können, bevor das Lastmanagement eingreift.',-1),m("br",null,null,-1),i(" Es wird vorausgesetzt, dass das Drehfeld innerhalb der Installation gleich bleibt. Wenn z.B. L1 des Ladepunktes auf EVU-L2 liegt, muss L2 des Ladepunktes auf EVU-L3 aufgelegt sein (und L3 des Ladepunktes auf EVU-L1).",-1),m("br",null,null,-1),i(" Eine Möglichkeit, die zur Ladepunktphase L1 zugehörige EVU-Phase zu ermitteln, ist eine einphasige Ladung zu starten und die Phasenströme am EVU-Zähler zu beobachten. Mit einem zweiphasig ladenden Fahrzeug kann danach auch der Anschluss von L2 ermittelt und so das Drehfeld kontrolliert werden.",-1),m("br",null,null,-1),i(" Im Zweifel bitte das Drehfeld von einer Fachkraft prüfen und korrigieren lassen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])])):g("",!0)]),_:2},1032,["title"]))),128)),Object.keys(t.installedChargePoints).length>0?(l(),u("hr",De)):g("",!0),a(I,{title:"Verfügbare Ladepunkte","not-selected":"Bitte auswählen",options:t.getChargePointList(),"model-value":_.chargePointToAdd,"add-button":!0,"onUpdate:modelValue":e[2]||(e[2]=s=>_.chargePointToAdd=s),"onInput:add":t.addChargePoint},{help:o(()=>[...e[16]||(e[16]=[i(" Bitte einen Ladepunkt auswählen, der der openWB-Regelung hinzugefügt werden soll.",-1),m("br",null,null,-1),m("ul",null,[m("li",null," Interne openWB - wenn diese openWB über einen verbauten Ladepunkt mit Regelcontroller verfügt (z.B. Standard(+), Custom, Duo, Buchse, NICHT Standalone); ansonsten immer anlegen, egal ob diese openWB steuert = primary oder ferngesteuert wird = secondary "),m("li",null," Secondary openWB - wenn diese openWB (primary) die Fernsteuerung von weiteren openWB (secondary) übernimmt "),m("li",null,"MQTT-Ladepunkt - nur zur Nutzung des openWB-Simulators zugelassen"),m("li",null,"openWB Pro - wenn diese openWB (primary) die Fernsteuerung einer openWB Pro (secondary) übernimmt"),m("li",null," openWB series2 Satellit/Satellit Duo - wenn diese openWB (primary) die Fernsteuerung einer openWB series2 Satellit/Satellit Duo (secondary) übernimmt "),m("li",null," smartWB/EVSE-Wifi - wenn diese openWB (primary) die Fernsteuerung einer smartWB/EVSE-Wifi übernimmt ")],-1)])]),_:1},8,["options","model-value","onInput:add"])]),_:1},8,["collapsed"]),n.$store.state.mqtt["openWB/general/extern"]==!1||!c.installAssistantActive?(l(),u("hr",xe)):g("",!0),n.$store.state.mqtt["openWB/general/extern"]===!1||!c.installAssistantActive?(l(),h(E,{key:1,title:"Ladepunkt-Profile",collapsible:!0,collapsed:!0},{header:o(()=>[a(G,{class:"fa-lg"},{default:o(()=>[a(f,{icon:["far","file"]}),a(f,{icon:["fas","charging-station"],transform:"shrink-8"})]),_:1}),e[17]||(e[17]=i(" Ladepunkt-Profile ",-1))]),actions:o(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(l(),h(y,{key:0,class:"bg-success clickable",title:"Neues Ladepunkt-Profil anlegen",onClick:t.addChargePointTemplate},{default:o(()=>[a(f,{icon:["fas","plus"]})]),_:1},8,["onClick"])):g("",!0)]),default:o(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(l(),u("div",qe,[a(C,{subtype:"info"},{default:o(()=>[...e[18]||(e[18]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(l(),u("div",Me,[(l(!0),u(A,null,S(t.chargePointTemplates,(s,d)=>(l(),h(E,{key:d,title:`${s.name} (ID: ${t.getChargePointTemplateIndex(d)})`,collapsible:!0,collapsed:!0},{actions:o(r=>[r.collapsed==!1?(l(),h(y,{key:0,class:"bg-success clickable",title:"Ladepunkt-Profil duplizieren",onClick:W=>t.addChargePointTemplate(W,d)},{default:o(()=>[a(f,{icon:["fas","copy"]})]),_:1},8,["onClick"])):g("",!0),r.collapsed==!1&&!d.endsWith("/0")?(l(),h(y,{key:1,class:"bg-danger clickable ml-1",title:"Ladepunkt-Profil löschen",onClick:W=>t.removeChargePointTemplateModal(W,d)},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:1},8,["onClick"])):g("",!0)]),default:o(()=>[a(B,{title:"Bezeichnung",subtype:"text","model-value":s.name,disabled:d.endsWith("/0"),"onUpdate:modelValue":r=>n.updateState(d,r,"name")},le({_:2},[d.endsWith("/0")?{name:"help",fn:o(()=>[e[19]||(e[19]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(l(),h(V,{key:0,title:"Typ des Ladeprofils",buttons:[{buttonValue:"AC",text:"AC"},{buttonValue:"DC",text:"DC"}],"model-value":s.charging_type,"onUpdate:modelValue":r=>n.updateState(d,r,"charging_type")},null,8,["model-value","onUpdate:modelValue"])):g("",!0),e[39]||(e[39]=m("hr",null,null,-1)),c.installAssistantActive?g("",!0):(l(),u("div",Te,[a(k,null,{default:o(()=>[...e[20]||(e[20]=[i(" Zugangskontrolle ",-1)])]),_:1}),s.valid_tags.length>0?(l(),u("div",Oe,[a(C,{subtype:"info"},{default:o(()=>[e[22]||(e[22]=i(" Einstellungen zur Zugangskontrolle finden sich unter ",-1)),a(x,{to:"/IdentificationConfig"},{default:o(()=>[...e[21]||(e[21]=[i(" Einstellungen - Identifikation ",-1)])]),_:1}),e[23]||(e[23]=i(". ",-1)),n.$store.state.mqtt["openWB/optional/rfid/active"]===!0&&s.disable_after_unplug?(l(),u("div",Fe," Die Option ist aktiv. Ladepunkte denen dieses Ladepunkt-Profil zugeordnet ist müssen per ID-Tag entsperrt werden. ")):(l(),u("div",Re,"Aktuell ist die Option in den Einstellungen deaktiviert.")),e[24]||(e[24]=i(" Dem Ladepunkt-Profil sind folgende ID-Tags zum Entsperren zugeordnet: ",-1))]),_:2},1024),a(Q,{title:"Zugeordnete ID-Tags","no-elements-message":"Keine keine ID-Tags zugeordnet.","no-input":"true","model-value":s.valid_tags},null,8,["model-value"])])):(l(),u("div",Ne,[a(C,{subtype:"info"},{default:o(()=>[e[26]||(e[26]=i(" Einstellungen zur Zugangskontrolle finden sich unter ",-1)),a(x,{to:"/IdentificationConfig"},{default:o(()=>[...e[25]||(e[25]=[i(" Einstellungen - Identifikation ",-1)])]),_:1}),e[27]||(e[27]=i(".",-1)),e[28]||(e[28]=m("br",null,null,-1)),e[29]||(e[29]=i(" Dem Ladepunkt-Profil sind aktuell keine ID-Tags zum Entsperren zugeordnet. ",-1))]),_:1})]))])),e[40]||(e[40]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[30]||(e[30]=[i(" Angaben zum konfigurierten Ladestrom der openWB ",-1)])]),_:1}),a(C,{subtype:"info"},{default:o(()=>[e[31]||(e[31]=i(" Hier werden die maximalen Ladeströme entsprechend der in dem zugeordneten Ladepunkt genutzten Phasen eingestellt.",-1)),e[32]||(e[32]=m("br",null,null,-1)),e[33]||(e[33]=i(" Generell gilt, dass diese Werte in Übereinstimmung mit der Ausführung des Ladepunktes und des elektrischen Anschlusses bzw. der Absicherung zu wählen sind. ",-1)),s.charging_type==="AC"?(l(),u("span",Ze," Bei einer openWB mit 22kW Maximalleistung sind hier jeweils 32A einzustellen. Ist die openWB beispielsweise auf 11kW begrenzt (KfW-Förderung oder die Zuleitung ist mit 16A abgesichert), dann sind hier jeweils 16A einzustellen. ")):g("",!0)]),_:2},1024),s.charging_type==="AC"||t.dcChargingEnabled!==!0?(l(),u("div",je,[a(q,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":s.max_current_single_phase,"onUpdate:modelValue":r=>n.updateState(d,r,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),a(q,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":s.max_current_multi_phases,"onUpdate:modelValue":r=>n.updateState(d,r,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"])])):(l(),h(X,{key:3,title:"Maximalleistung",min:22,max:420,step:1,unit:"kW",precision:5,"model-value":n.ac_current2dc_power(s.dc_max_current),"onUpdate:modelValue":r=>n.updateState(d,n.dc_power2ac_current(r),"dc_max_current")},null,8,["model-value","onUpdate:modelValue"])),c.installAssistantActive?g("",!0):(l(),u("div",Je,[e[38]||(e[38]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[34]||(e[34]=[i(" Sperren nach Uhrzeit (Komplettsperrung - keine Freischaltung per ID-Tag möglich) ",-1)])]),_:1}),a(V,{title:"Sperren nach Uhrzeit aktiv",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.autolock.active,"onUpdate:modelValue":r=>n.updateState(d,r,"autolock.active")},{help:o(()=>[...e[35]||(e[35]=[i(" WirdSperren nach Uhrzeit aktiviert, können Fahrzeugladungen mittels Zeitplan auf gewünschte Zeitbereiche eingeschränkt werden. Dies kann z.B. bei Zugänglichkeiten zu Ladepunkten in öffentlichen oder halb-öffentlichen Bereichen sinnvoll sein. In dieser Zeit ist keine Freischaltung per RFID, Fahrzeugerkennung oder Pin möglich. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(V,{title:"Erst nach Ladeende sperren",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.autolock.wait_for_charging_end,"onUpdate:modelValue":r=>n.updateState(d,r,"autolock.wait_for_charging_end")},{help:o(()=>[...e[36]||(e[36]=[i(' Wenn ein Zeitplan Sperren nach Uhrzeit aktiviert, werden alle Ladepunkte direkt gesperrt und laufende Ladevorgänge beendet. Wird hier "Ja" ausgewählt, dann werden laufende Ladevorgänge NICHT beendet und diese Ladepunkte erst nach abgeschlossener Ladung gesperrt. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(k,null,{actions:o(()=>[a(y,{class:"bg-success clickable",title:"Neuen Autolock Zeitplan anlegen",onClick:U(r=>t.addChargePointTemplateAutolockPlan(d),["stop"])},{default:o(()=>[a(f,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:o(()=>[e[37]||(e[37]=i(" Zeitpläne für Sperren nach Uhrzeit ",-1))]),_:2},1024)])),(l(!0),u(A,null,S(s.autolock.plans,(r,W)=>(l(),h(Y,{key:W,"model-value":r,"template-id":s.id,"onUpdate:modelValue":D=>n.updateState(d,D,`autolock.plans.${W}`),onSendCommand:e[3]||(e[3]=D=>n.$emit("sendCommand",D))},null,8,["model-value","template-id","onUpdate:modelValue"]))),128))]),_:2},1032,["title"]))),128))]))]),_:1})):g("",!0),a(K,{"form-name":"chargePointInstallationForm",onSave:e[4]||(e[4]=s=>n.$emit("save")),onReset:e[5]||(e[5]=s=>n.$emit("reset")),onDefaults:e[6]||(e[6]=s=>n.$emit("defaults"))})])])],64)}const He=z(ze,[["render",$e],["__scopeId","data-v-75fe5743"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ChargePointInstallation.vue"]]),Ke=Object.freeze(Object.defineProperty({__proto__:null,default:He},Symbol.toStringTag,{value:"Module"}));export{se as C,ce as a,He as b,Ke as c}; diff --git a/web/settings/assets/Chart-bf0ff6a8.js b/web/settings/assets/Chart-0e7a4a70.js similarity index 89% rename from web/settings/assets/Chart-bf0ff6a8.js rename to web/settings/assets/Chart-0e7a4a70.js index e541e1385e..d9268b8a5a 100644 --- a/web/settings/assets/Chart-bf0ff6a8.js +++ b/web/settings/assets/Chart-0e7a4a70.js @@ -1 +1 @@ -import{l as L,Q as T,_ as H,Z as V,Y as O,a4 as M,a5 as j,F as q}from"./vendor-fortawesome-2b3791bb.js";import{C as z}from"./index-0992d19b.js";import{C as P,p as E,a as B,L as N,b as F,B as K,f as Z,P as $,c as J,T as X,i as G,d as Y,e as U,g as Q}from"./vendor-chartjs-43b0fa2b.js";import{_ as ee,u as h,l as o,m as s,G as d,E as c,x as f,B as b,A as _,N as k,M as x,F as D,z as C}from"./vendor-36bf053b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./vendor-luxon-cc86f6dc.js";L.add(T,H,V,O,M,j);P.register(E,B,N,F,K,Z,$,J,X,G,Y);const te={name:"OpenwbChartView",components:{ChartjsLine:U,FontAwesomeIcon:q},mixins:[z],props:{initialChartRange:{type:String,required:!1,validator:function(e){return["day","month","year"].indexOf(e)!==-1},default:"day"},initialDate:{type:String,required:!1,validator:function(e){return e.match(/^(([0-9]{4})(-[0-9]{2}(-[0-9]{2})?)?)?$/g)},default:""}},emits:["sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/log/daily/#","openWB/log/monthly/#","openWB/log/yearly/#","openWB/system/device/+/component/+/config","openWB/chargepoint/+/config","openWB/vehicle/+/name"],currentDate:"",chartRange:"day",blockChartInit:!1,chartIsLoading:!1,chartRequestDate:{day:"",month:"",year:""},datasetTemplates:{"counter-power_average":{label:"Zähler",unit:"kW",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported":{label:"Zähler",unit:"kWh",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_exported":{label:"Zähler",unit:"kWh",jsonKey:null,borderColor:"rgba(0, 255, 105, 0.7)",backgroundColor:"rgba(0, 255, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_grid":{label:"Zähler (Netzanteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_pv":{label:"Zähler (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_bat":{label:"Zähler (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"pv-power_exported":{label:"PV",unit:"kW",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(10, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",stack:"inverter-power",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"pv-energy_exported":{label:"PV",unit:"kWh",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(10, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"inverter-exported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-power_average":{label:"Speicher",unit:"kW",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",stack:"battery-power",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-energy_imported":{label:"Speicher",unit:"kWh",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"battery-imported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-energy_exported":{label:"Speicher",unit:"kWh",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"battery-exported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-soc":{label:"Speicher SoC",unit:"%",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",borderDash:[10,5],hidden:!0,fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",borderWidth:2,data:null,yAxisID:"y3",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-power_average":{label:"Ladepunkt",unit:"kW",jsonKey:null,borderColor:"rgba(0, 0, 255, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",stack:"charge-point-power",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported":{label:"Ladepunkt",unit:"kWh",jsonKey:null,borderColor:"rgba(0, 0, 255, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"charge-point-imported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported_grid":{label:"Ladepunkt (Netzanteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"charge-point-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported_pv":{label:"Ladepunkt (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"charge-point-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported_bat":{label:"Ladepunkt (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"charge-point-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"ev-soc":{label:"Fahrzeug SoC",unit:"%",jsonKey:null,borderColor:"rgba(0, 0, 255, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",borderDash:[10,5],hidden:!0,fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",borderWidth:2,data:null,yAxisID:"y3",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"sh-power_average":{label:"SmartHome",unit:"kW",jsonKey:null,borderColor:"rgba(232, 62, 140, 0.7)",backgroundColor:"rgba(232, 72, 150, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"sh-energy_imported":{label:"SmartHome",unit:"kWh",jsonKey:null,borderColor:"rgba(232, 62, 140, 0.7)",backgroundColor:"rgba(232, 72, 150, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"sh-energy_exported":{label:"SmartHome",unit:"kWh",jsonKey:null,borderColor:"rgba(232, 62, 140, 0.7)",backgroundColor:"rgba(232, 72, 150, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-power_imported":{label:"Hausverbrauch",unit:"kW",jsonKey:null,borderColor:"rgba(120, 122, 124, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported":{label:"Hausverbrauch",unit:"kWh",jsonKey:null,borderColor:"rgba(120, 122, 124, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported_grid":{label:"Hausverbrauch (Netzanteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"hc-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported_pv":{label:"Hausverbrauch (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"hc-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported_bat":{label:"Hausverbrauch (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"hc-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}}},chartOptions:{plugins:{title:{display:!1},tooltip:{enabled:!0,callbacks:{label:e=>`${e.dataset.label}: ${e.formattedValue} ${e.dataset.unit}`}},legend:{display:!0},zoom:{pan:{enabled:!0,mode:"x",threshold:5},zoom:{wheel:{enabled:!0},pinch:{enabled:!0},mode:"x"}}},elements:{point:{radius:2}},responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{x:{type:"time",time:{unit:"",tooltipFormat:""},display:!0,title:{display:!0,text:""},ticks:{source:"timestamp",font:{size:12},maxTicksLimit:0},grid:{}},y:{position:"left",type:"linear",display:"auto",suggestedMin:0,suggestedMax:0,title:{font:{size:12},display:!0,text:"Leistung [kW]"},grid:{},ticks:{font:{size:12},stepSize:.2,maxTicksLimit:11}},y2:{position:"left",type:"linear",display:"auto",suggestedMin:0,suggestedMax:0,title:{font:{size:12},display:!0,text:"Energie [kWh]"},grid:{},ticks:{font:{size:12},stepSize:.2,maxTicksLimit:11}},y3:{position:"right",type:"linear",display:"auto",suggestedMin:0,suggestedMax:100,title:{font:{size:12},display:!0,text:"SoC [%]"},grid:{display:!1},ticks:{font:{size:12},stepSize:10,maxTicksLimit:11}}}},chartDatasets:{datasets:[]}}},computed:{dateInput(){var e={title:"Datum",type:"date",min:"2018-01-01"};switch(this.chartRange){case"month":e={title:"Monat",type:"month",min:"2018-01"};break;case"year":e={title:"Jahr",type:"year",min:"2018"};break}return e},chartDate:{get(){var e=this.chartRequestDate.year;return this.chartRange!="year"&&(e=e+"-"+this.chartRequestDate.month),this.chartRange=="day"&&(e=e+"-"+this.chartRequestDate.day),e},set(e){let t=e.split("-");this.chartRequestDate.year=t[0],t.length>1?this.chartRequestDate.month=t[1]:this.chartRequestDate.month="",t.length>2?this.chartRequestDate.day=t[2]:this.chartRequestDate.day=""}},chartScaleX(){var e={unit:"minute",tooltipFormat:"DD T",text:"Zeit",maxTicksLimit:24};switch(this.chartRange){case"month":e={unit:"day",tooltipFormat:"DD",text:"Tag",maxTicksLimit:31};break;case"year":e={unit:"month",tooltipFormat:"LLLL yyyy",text:"Monat",maxTicksLimit:12};break}return e},commandData(){var e={date:this.chartRequestDate.year+this.chartRequestDate.month+this.chartRequestDate.day};switch(this.chartRange){case"month":e={date:this.chartRequestDate.year+this.chartRequestDate.month};break;case"year":e={date:this.chartRequestDate.year};break}return e},baseTopic(){var e="openWB/log/";switch(this.chartRange){case"day":e=e+"daily/";break;case"month":e=e+"monthly/";break;case"year":e=e+"yearly/";break}return e},chartDataRead(){return this.chartDataObject!=null},chartDataHasEntries(){return this.chartDataObject?this.chartDataObject.length>0:!1},chartTotals(){if(this.$store.state.mqtt[this.baseTopic+this.commandData.date]&&Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"totals")){var e=JSON.parse(JSON.stringify(this.$store.state.mqtt[this.baseTopic+this.commandData.date].totals));return delete e.energy_source,Object.keys(e.counter).forEach(t=>{Object.prototype.hasOwnProperty.call(e.counter[t],"grid")&&delete e.counter[t].grid}),Object.keys(e).forEach(t=>{Object.prototype.hasOwnProperty.call(e[t],"all")&&(Object.keys(e[t]).length<=2&&["bat","pv"].includes(t)?delete e[t].all:e[t]={all:e[t].all,...e[t]})}),e}},chartDataObject(){if(this.$store.state.mqtt[this.baseTopic+this.commandData.date]){var e=this.$store.state.mqtt[this.baseTopic+this.commandData.date];Object.prototype.hasOwnProperty.call(e,"entries")&&(e=e.entries);var t=JSON.parse(JSON.stringify(e)).map(a=>(a.timestamp=a.timestamp*1e3,a));return t}},chartData(){if(this.chartDataObject){var e=["pv","counter","bat","cp","sh","ev","hc"];const t=this.chartDataObject[this.chartDataObject.length-1];return t&&e.forEach(a=>{Object.prototype.hasOwnProperty.call(t,a)&&(Object.prototype.hasOwnProperty.call(t[a],"all")&&(["bat","pv"].includes(a)&&Object.keys(t[a]).length<=2?delete t[a].all:t[a]={all:t[a].all,...t[a]}),Object.entries(t[a]).forEach(([n,i])=>{Object.keys(i).forEach(r=>{this.initDataset(a,n,r)})}))}),this.chartDatasets}}},watch:{chartRange(){this.init()},chartDataRead:{handler(e){e&&(this.chartIsLoading=!1)},immediate:!0}},mounted(){this.init()},methods:{handleChartClick(e){if(this.chartRange=="day")return;const t=this.$refs.myChart.chart;if(!t)return;const a=Q(t,e);if(!a.length)return;const{datasetIndex:n,index:i}=a[0],r=this.chartData.datasets[n].data[i].date;var u="",g="";switch(this.chartRange){case"month":u=r.substring(0,4)+"-"+r.substring(4,6)+"-"+r.substring(6),g="day";break;case"year":u=r.substring(0,4)+"-"+r.substring(4,6),g="month";break}this.blockChartInit=!0,this.chartDate=u,this.chartRange=g},getCardSubtype(e){switch(e){case"bat":return"warning";case"counter":return"danger";case"cp":return"primary";case"pv":return"success";case"sh":return"pink";default:return"secondary"}},getCardIcon(e){switch(e){case"bat":return["fas","car-battery"];case"counter":return["fas","gauge-high"];case"cp":return["fas","charging-station"];case"pv":return["fas","solar-panel"];case"sh":return["fas","house-signal"];case"hc":return["fas","house"];default:return}},hideDataset(e,t,a){return!!(["bat","pv","cp"].includes(e)&&Object.prototype.hasOwnProperty.call(this.chartTotals[e],"all")&&t!="all"||["grid","bat","pv","cp"].includes(a.split("_").pop()))},getTotalsLabel(e,t=void 0,a=void 0){var n="*test*";if(!t&&!a){switch(e){case"bat":return"Speicher";case"counter":return"Zähler";case"pv":return"Wechselrichter";case"cp":return"Ladepunkte";case"sh":return"SmartHome-Geräte";case"hc":return"Hausverbrauch";default:console.warn("unknown group key:",e)}return"*"+e+"*"}if(t&&!a){if(t=="all")return"Summe";if(Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"names"))return this.$store.state.mqtt[this.baseTopic+this.commandData.date].names[t]}if(t&&a){switch(e){case"bat":case"cp":switch(a){case"imported":case"energy_imported":return"Ladung";case"exported":case"energy_exported":return"Entladung";case"energy_imported_grid":return"Ladung (Netz-Anteil)";case"energy_imported_pv":return"Ladung (PV-Anteil)";case"energy_imported_bat":return"Ladung (Speicher-Anteil)";case"energy_imported_cp":return"Ladung (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;case"counter":switch(a){case"imported":case"energy_imported":return"Bezug/Verbrauch";case"exported":case"energy_exported":return"Einspeisung/Erzeugung";case"energy_imported_grid":return"Verbrauch (Netz-Anteil)";case"energy_imported_pv":return"Verbrauch (PV-Anteil)";case"energy_imported_bat":return"Verbrauch (Speicher-Anteil)";case"energy_imported_cp":return"Verbrauch (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;case"pv":switch(a){case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,a)}break;case"sh":switch(a){case"imported":case"energy_imported":return"Verbrauch";case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,a)}break;case"hc":switch(a){case"imported":case"energy_imported":return"Verbrauch";case"energy_imported_grid":return"Verbrauch (Netz-Anteil)";case"energy_imported_pv":return"Verbrauch (PV-Anteil)";case"energy_imported_bat":return"Verbrauch (Speicher-Anteil)";case"energy_imported_cp":return"Verbrauch (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;default:console.warn("unknown group key:",e)}return"*"+e+"+"+t+"+"+a+"*"}return n},getDatasetLabel(e,t,a,n){var i=["*"+n],r=[];if(t=="all")switch(e!=="hc"&&r.push("Summe"),e){case"pv":i=["PV"];break;case"bat":switch(i=["Speicher"],a){case"soc":i.push("SoC");break}break;case"cp":i=["Ladepunkte"];break;case"hc":i=["Hausverbrauch"]}else Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"names")&&Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date].names,t)&&(i=[this.$store.state.mqtt[this.baseTopic+this.commandData.date].names[t]]);switch(e){case"bat":case"ev":case"cp":switch(a){case"soc":r.push("SoC");break;case"energy_imported":r.push("Ladung");break;case"energy_exported":r.push("Entladung");break;case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break;case"counter":switch(a){case"energy_imported":r.push("Bezug/Verbrauch");break;case"energy_exported":r.push("Einspeisung/Erzeugung");break;case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break;case"sh":switch(a){case"energy_imported":r.push("Verbrauch");break;case"energy_exported":r.push("Erzeugung");break}break;case"hc":switch(a){case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break}return`${i.join(" ")}${r.length?" ("+r.join(", ")+")":""}`},getDatasetIndex(e){let t=this.chartDatasets.datasets.findIndex(a=>a.jsonKey==e);if(t!=-1)return t},updateDatasetStack(e,t,a){if(e){if(t=="all"&&!["grid","pv","bat","cp"].includes(a.split("_").slice(-1)[0])){console.debug("not stacking totals for:",e,t,a);return}return e.includes("#")?(console.debug("updating stack template:",e,t,a),e.replace("#",t)):e}},addDataset(e,t,a,n){if(console.debug("adding dataset:",e,t,a,n),!(Object.prototype.hasOwnProperty.call(this.chartTotals,e)&&!Object.prototype.hasOwnProperty.call(this.chartTotals[e],t))){var i=e+"-"+a;if(this.datasetTemplates[i]){var r=JSON.parse(JSON.stringify(this.datasetTemplates[i]));return r.parsing.yAxisKey=n,r.jsonKey=n,r.data=this.chartDataObject,r.label=this.getDatasetLabel(e,t,a,n),r.labelSuffix!=null&&(r.label=r.label+r.labelSuffix),r.hidden=this.hideDataset(e,t,a),r.stack=this.updateDatasetStack(r.stack,t,a),this.chartDatasets.datasets.push(r)-1}else console.warn("no matching template found for: "+n+" with template: "+i)}},initDataset(e,t,a){var n=[];this.chartRange=="day"?n={counter:["power_average"],pv:["power_exported"],bat:["power_average","soc"],cp:["power_average"],sh:["power_average"],ev:["soc"],hc:["power_imported"]}:n={counter:["energy_imported","energy_exported","energy_imported_grid","energy_imported_pv","energy_imported_bat"],pv:["energy_exported"],bat:["energy_imported","energy_exported"],cp:["energy_imported","energy_imported_grid","energy_imported_pv","energy_imported_bat"],sh:["energy_imported","energy_exported"],ev:[],hc:["energy_imported","energy_imported_grid","energy_imported_pv","energy_imported_bat"]};const i=e+"."+t+"."+a;if(n[e].includes(a)){var r=this.getDatasetIndex(i);r==null&&(r=this.addDataset(e,t,a,i))}else console.debug("skipping dataset:",i)},setupScaleX(){this.chartOptions.scales.x.time.unit=this.chartScaleX.unit,this.chartOptions.scales.x.time.tooltipFormat=this.chartScaleX.tooltipFormat,this.chartOptions.scales.x.title.text=this.chartScaleX.text,this.chartOptions.scales.x.ticks.maxTicksLimit=this.chartScaleX.maxTicksLimit},requestChart(){if(document.forms.chartFilterForm.reportValidity()){this.chartIsLoading=!0,this.setupScaleX(),this.chartDatasets.datasets=[];var t="";switch(this.chartRange){case"day":t="getDailyLog";break;case"month":t="getMonthlyLog";break;case"year":t="getYearlyLog";break}this.$emit("sendCommand",{command:t,data:this.commandData})}else{console.warn("form invalid");return}},clearChartData(){this.getWildcardIndexList(this.baseTopic+"+").forEach(e=>{this.$store.commit("removeTopic",`${this.baseTopic}${e}`)})},updateChart(){this.clearChartData(),this.requestChart()},init(){const e=new Date;this.currentDate=String(e.getFullYear()),this.chartRange!="year"&&(this.currentDate=this.currentDate+"-"+String(e.getMonth()+1).padStart(2,"0")),this.chartRange=="day"&&(this.currentDate=this.currentDate+"-"+String(e.getDate()).padStart(2,"0")),this.blockChartInit?this.blockChartInit=!1:this.initialDate==null||this.initialDate==""?this.chartDate=this.currentDate:this.chartDate=this.initialDate,this.updateChart()}}},re={class:"chart"},ae={key:0},ie={key:1},ne={name:"chartFilterForm"},oe={key:1},se={key:1},le={class:"openwb-chart"},de={name:"chartTotalsForm"},ce={key:1};function ue(e,t,a,n,i,r){const u=h("openwb-base-alert"),g=h("openwb-base-select-input"),v=h("openwb-base-text-input"),y=h("openwb-base-card"),S=h("chartjs-line"),R=h("font-awesome-icon"),w=h("openwb-base-heading");return o(),s("div",re,[e.$store.state.mqtt["openWB/general/extern"]===!0?(o(),s("div",ae,[d(u,{subtype:"info"},{default:c(()=>[...t[3]||(t[3]=[b(' Die Auswertungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. Du findest alle Auswertungen in der openWB, welche sich im Steuerungsmodus "primary" befindet. ',-1)])]),_:1})])):(o(),s("div",ie,[d(y,{title:"Filter",collapsible:!0,collapsed:!1},{default:c(()=>[_("form",ne,[d(g,{modelValue:i.chartRange,"onUpdate:modelValue":t[0]||(t[0]=p=>i.chartRange=p),title:"Zeitraum",options:[{value:"day",text:"Tag"},{value:"month",text:"Monat"},{value:"year",text:"Jahr"}]},null,8,["modelValue"]),d(v,{modelValue:r.chartDate,"onUpdate:modelValue":[t[1]||(t[1]=p=>r.chartDate=p),t[2]||(t[2]=p=>r.updateChart())],title:r.dateInput.title,subtype:r.dateInput.type,min:r.dateInput.min,max:i.currentDate,"show-quick-buttons":!0},null,8,["modelValue","title","subtype","min","max"])])]),_:1}),i.chartIsLoading?(o(),f(u,{key:0,subtype:"info"},{default:c(()=>[...t[4]||(t[4]=[b(" Daten werden geladen... ",-1)])]),_:1})):(o(),s("div",oe,[r.chartDataHasEntries?(o(),s("div",se,[d(y,{title:"Diagramm",collapsible:!0,collapsed:!1},{default:c(()=>[_("div",le,[d(S,{ref:"myChart",data:r.chartData,options:i.chartOptions,onClick:r.handleChartClick},null,8,["data","options","onClick"])])]),_:1}),d(y,{title:"Summen",collapsible:!0,collapsed:!0},{default:c(()=>[_("form",de,[(o(!0),s(k,null,x(Object.fromEntries(Object.entries(r.chartTotals).filter(([p,l])=>Object.keys(l).length>0)),(p,l)=>(o(),f(y,{key:l,collapsible:!0,collapsed:!0,subtype:r.getCardSubtype(l)},{header:c(()=>[d(R,{icon:r.getCardIcon(l)},null,8,["icon"]),b(" "+D(r.getTotalsLabel(l)),1)]),default:c(()=>[(o(!0),s(k,null,x(p,(I,m)=>(o(),s("div",{key:m},[l!=="hc"?(o(),f(w,{key:0},{default:c(()=>[b(D(r.getTotalsLabel(l,m)),1)]),_:2},1024)):C("",!0),(o(!0),s(k,null,x(I,(W,A)=>(o(),s("div",{key:A},[d(v,{title:r.getTotalsLabel(l,m,A),readonly:"",class:"text-right",unit:"kWh","model-value":e.formatNumber(W/1e3,3)},null,8,["title","model-value"])]))),128)),m=="all"&&l!="hc"?(o(),s("hr",ce)):C("",!0)]))),128))]),_:2},1032,["subtype"]))),128))])]),_:1})])):(o(),f(u,{key:0,subtype:"info"},{default:c(()=>[...t[5]||(t[5]=[b(" Es konnten keine Daten für diesen Zeitraum gefunden werden. ",-1)])]),_:1}))]))]))])}const xe=ee(te,[["render",ue],["__scopeId","data-v-e00a7cd5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Chart.vue"]]);export{xe as default}; +import{l as L,Q as T,_ as H,Z as V,Y as O,a4 as M,a5 as j,F as q}from"./vendor-fortawesome-a02b6813.js";import{C as z}from"./index-8dd8e083.js";import{C as P,p as E,a as B,L as N,b as F,B as K,f as Z,P as $,c as J,T as X,i as G,d as Y,e as U,g as Q}from"./vendor-chartjs-94a826eb.js";import{_ as ee,u as h,l as o,m as s,G as d,E as c,x as _,B as b,A as f,N as k,M as x,F as D,z as C}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./vendor-luxon-cc86f6dc.js";L.add(T,H,V,O,M,j);P.register(E,B,N,F,K,Z,$,J,X,G,Y);const te={name:"OpenwbChartView",components:{ChartjsLine:U,FontAwesomeIcon:q},mixins:[z],props:{initialChartRange:{type:String,required:!1,validator:function(e){return["day","month","year"].indexOf(e)!==-1},default:"day"},initialDate:{type:String,required:!1,validator:function(e){return e.match(/^(([0-9]{4})(-[0-9]{2}(-[0-9]{2})?)?)?$/g)},default:""}},emits:["sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/log/daily/#","openWB/log/monthly/#","openWB/log/yearly/#","openWB/system/device/+/component/+/config","openWB/chargepoint/+/config","openWB/vehicle/+/name"],currentDate:"",chartRange:"day",blockChartInit:!1,chartIsLoading:!1,chartRequestDate:{day:"",month:"",year:""},datasetTemplates:{"counter-power_average":{label:"Zähler",unit:"kW",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported":{label:"Zähler",unit:"kWh",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_exported":{label:"Zähler",unit:"kWh",jsonKey:null,borderColor:"rgba(0, 255, 105, 0.7)",backgroundColor:"rgba(0, 255, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_grid":{label:"Zähler (Netzanteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_pv":{label:"Zähler (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_bat":{label:"Zähler (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"pv-power_exported":{label:"PV",unit:"kW",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(10, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",stack:"inverter-power",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"pv-energy_exported":{label:"PV",unit:"kWh",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(10, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"inverter-exported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-power_average":{label:"Speicher",unit:"kW",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",stack:"battery-power",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-energy_imported":{label:"Speicher",unit:"kWh",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"battery-imported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-energy_exported":{label:"Speicher",unit:"kWh",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"battery-exported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-soc":{label:"Speicher SoC",unit:"%",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",borderDash:[10,5],hidden:!0,fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",borderWidth:2,data:null,yAxisID:"y3",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-power_average":{label:"Ladepunkt",unit:"kW",jsonKey:null,borderColor:"rgba(0, 0, 255, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",stack:"charge-point-power",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported":{label:"Ladepunkt",unit:"kWh",jsonKey:null,borderColor:"rgba(0, 0, 255, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"charge-point-imported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported_grid":{label:"Ladepunkt (Netzanteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"charge-point-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported_pv":{label:"Ladepunkt (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"charge-point-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported_bat":{label:"Ladepunkt (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"charge-point-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"ev-soc":{label:"Fahrzeug SoC",unit:"%",jsonKey:null,borderColor:"rgba(0, 0, 255, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",borderDash:[10,5],hidden:!0,fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",borderWidth:2,data:null,yAxisID:"y3",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"sh-power_average":{label:"SmartHome",unit:"kW",jsonKey:null,borderColor:"rgba(232, 62, 140, 0.7)",backgroundColor:"rgba(232, 72, 150, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"sh-energy_imported":{label:"SmartHome",unit:"kWh",jsonKey:null,borderColor:"rgba(232, 62, 140, 0.7)",backgroundColor:"rgba(232, 72, 150, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"sh-energy_exported":{label:"SmartHome",unit:"kWh",jsonKey:null,borderColor:"rgba(232, 62, 140, 0.7)",backgroundColor:"rgba(232, 72, 150, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-power_imported":{label:"Hausverbrauch",unit:"kW",jsonKey:null,borderColor:"rgba(120, 122, 124, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported":{label:"Hausverbrauch",unit:"kWh",jsonKey:null,borderColor:"rgba(120, 122, 124, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported_grid":{label:"Hausverbrauch (Netzanteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"hc-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported_pv":{label:"Hausverbrauch (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"hc-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported_bat":{label:"Hausverbrauch (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"hc-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}}},chartOptions:{plugins:{title:{display:!1},tooltip:{enabled:!0,callbacks:{label:e=>`${e.dataset.label}: ${e.formattedValue} ${e.dataset.unit}`}},legend:{display:!0},zoom:{pan:{enabled:!0,mode:"x",threshold:5},zoom:{wheel:{enabled:!0},pinch:{enabled:!0},mode:"x"}}},elements:{point:{radius:2}},responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{x:{type:"time",time:{unit:"",tooltipFormat:""},display:!0,title:{display:!0,text:""},ticks:{source:"timestamp",font:{size:12},maxTicksLimit:0},grid:{}},y:{position:"left",type:"linear",display:"auto",suggestedMin:0,suggestedMax:0,title:{font:{size:12},display:!0,text:"Leistung [kW]"},grid:{},ticks:{font:{size:12},stepSize:.2,maxTicksLimit:11}},y2:{position:"left",type:"linear",display:"auto",suggestedMin:0,suggestedMax:0,title:{font:{size:12},display:!0,text:"Energie [kWh]"},grid:{},ticks:{font:{size:12},stepSize:.2,maxTicksLimit:11}},y3:{position:"right",type:"linear",display:"auto",suggestedMin:0,suggestedMax:100,title:{font:{size:12},display:!0,text:"SoC [%]"},grid:{display:!1},ticks:{font:{size:12},stepSize:10,maxTicksLimit:11}}}},chartDatasets:{datasets:[]}}},computed:{dateInput(){var e={title:"Datum",type:"date",min:"2018-01-01"};switch(this.chartRange){case"month":e={title:"Monat",type:"month",min:"2018-01"};break;case"year":e={title:"Jahr",type:"year",min:"2018"};break}return e},chartDate:{get(){var e=this.chartRequestDate.year;return this.chartRange!="year"&&(e=e+"-"+this.chartRequestDate.month),this.chartRange=="day"&&(e=e+"-"+this.chartRequestDate.day),e},set(e){let t=e.split("-");this.chartRequestDate.year=t[0],t.length>1?this.chartRequestDate.month=t[1]:this.chartRequestDate.month="",t.length>2?this.chartRequestDate.day=t[2]:this.chartRequestDate.day=""}},chartScaleX(){var e={unit:"minute",tooltipFormat:"DD T",text:"Zeit",maxTicksLimit:24};switch(this.chartRange){case"month":e={unit:"day",tooltipFormat:"DD",text:"Tag",maxTicksLimit:31};break;case"year":e={unit:"month",tooltipFormat:"LLLL yyyy",text:"Monat",maxTicksLimit:12};break}return e},commandData(){var e={date:this.chartRequestDate.year+this.chartRequestDate.month+this.chartRequestDate.day};switch(this.chartRange){case"month":e={date:this.chartRequestDate.year+this.chartRequestDate.month};break;case"year":e={date:this.chartRequestDate.year};break}return e},baseTopic(){var e="openWB/log/";switch(this.chartRange){case"day":e=e+"daily/";break;case"month":e=e+"monthly/";break;case"year":e=e+"yearly/";break}return e},chartDataRead(){return this.chartDataObject!=null},chartDataHasEntries(){return this.chartDataObject?this.chartDataObject.length>0:!1},chartTotals(){if(this.$store.state.mqtt[this.baseTopic+this.commandData.date]&&Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"totals")){var e=JSON.parse(JSON.stringify(this.$store.state.mqtt[this.baseTopic+this.commandData.date].totals));return delete e.energy_source,Object.keys(e.counter).forEach(t=>{Object.prototype.hasOwnProperty.call(e.counter[t],"grid")&&delete e.counter[t].grid}),Object.keys(e).forEach(t=>{Object.prototype.hasOwnProperty.call(e[t],"all")&&(Object.keys(e[t]).length<=2&&["bat","pv"].includes(t)?delete e[t].all:e[t]={all:e[t].all,...e[t]})}),e}},chartDataObject(){if(this.$store.state.mqtt[this.baseTopic+this.commandData.date]){var e=this.$store.state.mqtt[this.baseTopic+this.commandData.date];Object.prototype.hasOwnProperty.call(e,"entries")&&(e=e.entries);var t=JSON.parse(JSON.stringify(e)).map(a=>(a.timestamp=a.timestamp*1e3,a));return t}},chartData(){if(this.chartDataObject){var e=["pv","counter","bat","cp","sh","ev","hc"];const t=this.chartDataObject[this.chartDataObject.length-1];return t&&e.forEach(a=>{Object.prototype.hasOwnProperty.call(t,a)&&(Object.prototype.hasOwnProperty.call(t[a],"all")&&(["bat","pv"].includes(a)&&Object.keys(t[a]).length<=2?delete t[a].all:t[a]={all:t[a].all,...t[a]}),Object.entries(t[a]).forEach(([n,i])=>{Object.keys(i).forEach(r=>{this.initDataset(a,n,r)})}))}),this.chartDatasets}}},watch:{chartRange(){this.init()},chartDataRead:{handler(e){e&&(this.chartIsLoading=!1)},immediate:!0}},mounted(){this.init()},methods:{handleChartClick(e){if(this.chartRange=="day")return;const t=this.$refs.myChart.chart;if(!t)return;const a=Q(t,e);if(!a.length)return;const{datasetIndex:n,index:i}=a[0],r=this.chartData.datasets[n].data[i].date;var u="",g="";switch(this.chartRange){case"month":u=r.substring(0,4)+"-"+r.substring(4,6)+"-"+r.substring(6),g="day";break;case"year":u=r.substring(0,4)+"-"+r.substring(4,6),g="month";break}this.blockChartInit=!0,this.chartDate=u,this.chartRange=g},getCardSubtype(e){switch(e){case"bat":return"warning";case"counter":return"danger";case"cp":return"primary";case"pv":return"success";case"sh":return"pink";default:return"secondary"}},getCardIcon(e){switch(e){case"bat":return["fas","car-battery"];case"counter":return["fas","gauge-high"];case"cp":return["fas","charging-station"];case"pv":return["fas","solar-panel"];case"sh":return["fas","house-signal"];case"hc":return["fas","house"];default:return}},hideDataset(e,t,a){return!!(["bat","pv","cp"].includes(e)&&Object.prototype.hasOwnProperty.call(this.chartTotals[e],"all")&&t!="all"||["grid","bat","pv","cp"].includes(a.split("_").pop()))},getTotalsLabel(e,t=void 0,a=void 0){var n="*test*";if(!t&&!a){switch(e){case"bat":return"Speicher";case"counter":return"Zähler";case"pv":return"Wechselrichter";case"cp":return"Ladepunkte";case"sh":return"SmartHome-Geräte";case"hc":return"Hausverbrauch";default:console.warn("unknown group key:",e)}return"*"+e+"*"}if(t&&!a){if(t=="all")return"Summe";if(Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"names"))return this.$store.state.mqtt[this.baseTopic+this.commandData.date].names[t]}if(t&&a){switch(e){case"bat":case"cp":switch(a){case"imported":case"energy_imported":return"Ladung";case"exported":case"energy_exported":return"Entladung";case"energy_imported_grid":return"Ladung (Netz-Anteil)";case"energy_imported_pv":return"Ladung (PV-Anteil)";case"energy_imported_bat":return"Ladung (Speicher-Anteil)";case"energy_imported_cp":return"Ladung (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;case"counter":switch(a){case"imported":case"energy_imported":return"Bezug/Verbrauch";case"exported":case"energy_exported":return"Einspeisung/Erzeugung";case"energy_imported_grid":return"Verbrauch (Netz-Anteil)";case"energy_imported_pv":return"Verbrauch (PV-Anteil)";case"energy_imported_bat":return"Verbrauch (Speicher-Anteil)";case"energy_imported_cp":return"Verbrauch (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;case"pv":switch(a){case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,a)}break;case"sh":switch(a){case"imported":case"energy_imported":return"Verbrauch";case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,a)}break;case"hc":switch(a){case"imported":case"energy_imported":return"Verbrauch";case"energy_imported_grid":return"Verbrauch (Netz-Anteil)";case"energy_imported_pv":return"Verbrauch (PV-Anteil)";case"energy_imported_bat":return"Verbrauch (Speicher-Anteil)";case"energy_imported_cp":return"Verbrauch (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;default:console.warn("unknown group key:",e)}return"*"+e+"+"+t+"+"+a+"*"}return n},getDatasetLabel(e,t,a,n){var i=["*"+n],r=[];if(t=="all")switch(e!=="hc"&&r.push("Summe"),e){case"pv":i=["PV"];break;case"bat":switch(i=["Speicher"],a){case"soc":i.push("SoC");break}break;case"cp":i=["Ladepunkte"];break;case"hc":i=["Hausverbrauch"]}else Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"names")&&Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date].names,t)&&(i=[this.$store.state.mqtt[this.baseTopic+this.commandData.date].names[t]]);switch(e){case"bat":case"ev":case"cp":switch(a){case"soc":r.push("SoC");break;case"energy_imported":r.push("Ladung");break;case"energy_exported":r.push("Entladung");break;case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break;case"counter":switch(a){case"energy_imported":r.push("Bezug/Verbrauch");break;case"energy_exported":r.push("Einspeisung/Erzeugung");break;case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break;case"sh":switch(a){case"energy_imported":r.push("Verbrauch");break;case"energy_exported":r.push("Erzeugung");break}break;case"hc":switch(a){case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break}return`${i.join(" ")}${r.length?" ("+r.join(", ")+")":""}`},getDatasetIndex(e){let t=this.chartDatasets.datasets.findIndex(a=>a.jsonKey==e);if(t!=-1)return t},updateDatasetStack(e,t,a){if(e){if(t=="all"&&!["grid","pv","bat","cp"].includes(a.split("_").slice(-1)[0])){console.debug("not stacking totals for:",e,t,a);return}return e.includes("#")?(console.debug("updating stack template:",e,t,a),e.replace("#",t)):e}},addDataset(e,t,a,n){if(console.debug("adding dataset:",e,t,a,n),!(Object.prototype.hasOwnProperty.call(this.chartTotals,e)&&!Object.prototype.hasOwnProperty.call(this.chartTotals[e],t))){var i=e+"-"+a;if(this.datasetTemplates[i]){var r=JSON.parse(JSON.stringify(this.datasetTemplates[i]));return r.parsing.yAxisKey=n,r.jsonKey=n,r.data=this.chartDataObject,r.label=this.getDatasetLabel(e,t,a,n),r.labelSuffix!=null&&(r.label=r.label+r.labelSuffix),r.hidden=this.hideDataset(e,t,a),r.stack=this.updateDatasetStack(r.stack,t,a),this.chartDatasets.datasets.push(r)-1}else console.warn("no matching template found for: "+n+" with template: "+i)}},initDataset(e,t,a){var n=[];this.chartRange=="day"?n={counter:["power_average"],pv:["power_exported"],bat:["power_average","soc"],cp:["power_average"],sh:["power_average"],ev:["soc"],hc:["power_imported"]}:n={counter:["energy_imported","energy_exported","energy_imported_grid","energy_imported_pv","energy_imported_bat"],pv:["energy_exported"],bat:["energy_imported","energy_exported"],cp:["energy_imported","energy_imported_grid","energy_imported_pv","energy_imported_bat"],sh:["energy_imported","energy_exported"],ev:[],hc:["energy_imported","energy_imported_grid","energy_imported_pv","energy_imported_bat"]};const i=e+"."+t+"."+a;if(n[e].includes(a)){var r=this.getDatasetIndex(i);r==null&&(r=this.addDataset(e,t,a,i))}else console.debug("skipping dataset:",i)},setupScaleX(){this.chartOptions.scales.x.time.unit=this.chartScaleX.unit,this.chartOptions.scales.x.time.tooltipFormat=this.chartScaleX.tooltipFormat,this.chartOptions.scales.x.title.text=this.chartScaleX.text,this.chartOptions.scales.x.ticks.maxTicksLimit=this.chartScaleX.maxTicksLimit},requestChart(){if(document.forms.chartFilterForm.reportValidity()){this.chartIsLoading=!0,this.setupScaleX(),this.chartDatasets.datasets=[];var t="";switch(this.chartRange){case"day":t="getDailyLog";break;case"month":t="getMonthlyLog";break;case"year":t="getYearlyLog";break}this.$emit("sendCommand",{command:t,data:this.commandData})}else{console.warn("form invalid");return}},clearChartData(){this.getWildcardIndexList(this.baseTopic+"+").forEach(e=>{this.$store.commit("removeTopic",`${this.baseTopic}${e}`)})},updateChart(){this.clearChartData(),this.requestChart()},init(){const e=new Date;this.currentDate=String(e.getFullYear()),this.chartRange!="year"&&(this.currentDate=this.currentDate+"-"+String(e.getMonth()+1).padStart(2,"0")),this.chartRange=="day"&&(this.currentDate=this.currentDate+"-"+String(e.getDate()).padStart(2,"0")),this.blockChartInit?this.blockChartInit=!1:this.initialDate==null||this.initialDate==""?this.chartDate=this.currentDate:this.chartDate=this.initialDate,this.updateChart()}}},re={class:"chart"},ae={key:0},ie={key:1},ne={name:"chartFilterForm"},oe={key:1},se={key:1},le={class:"openwb-chart"},de={name:"chartTotalsForm"},ce={key:1};function ue(e,t,a,n,i,r){const u=h("openwb-base-alert"),g=h("openwb-base-select-input"),v=h("openwb-base-text-input"),y=h("openwb-base-card"),S=h("chartjs-line"),R=h("font-awesome-icon"),w=h("openwb-base-heading");return o(),s("div",re,[e.$store.state.mqtt["openWB/general/extern"]===!0?(o(),s("div",ae,[d(u,{subtype:"info"},{default:c(()=>t[3]||(t[3]=[b(' Die Auswertungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. Du findest alle Auswertungen in der openWB, welche sich im Steuerungsmodus "primary" befindet. ',-1)])),_:1,__:[3]})])):(o(),s("div",ie,[d(y,{title:"Filter",collapsible:!0,collapsed:!1},{default:c(()=>[f("form",ne,[d(g,{modelValue:i.chartRange,"onUpdate:modelValue":t[0]||(t[0]=p=>i.chartRange=p),title:"Zeitraum",options:[{value:"day",text:"Tag"},{value:"month",text:"Monat"},{value:"year",text:"Jahr"}]},null,8,["modelValue"]),d(v,{modelValue:r.chartDate,"onUpdate:modelValue":[t[1]||(t[1]=p=>r.chartDate=p),t[2]||(t[2]=p=>r.updateChart())],title:r.dateInput.title,subtype:r.dateInput.type,min:r.dateInput.min,max:i.currentDate,"show-quick-buttons":!0},null,8,["modelValue","title","subtype","min","max"])])]),_:1}),i.chartIsLoading?(o(),_(u,{key:0,subtype:"info"},{default:c(()=>t[4]||(t[4]=[b(" Daten werden geladen... ",-1)])),_:1,__:[4]})):(o(),s("div",oe,[r.chartDataHasEntries?(o(),s("div",se,[d(y,{title:"Diagramm",collapsible:!0,collapsed:!1},{default:c(()=>[f("div",le,[d(S,{ref:"myChart",data:r.chartData,options:i.chartOptions,onClick:r.handleChartClick},null,8,["data","options","onClick"])])]),_:1}),d(y,{title:"Summen",collapsible:!0,collapsed:!0},{default:c(()=>[f("form",de,[(o(!0),s(k,null,x(Object.fromEntries(Object.entries(r.chartTotals).filter(([p,l])=>Object.keys(l).length>0)),(p,l)=>(o(),_(y,{key:l,collapsible:!0,collapsed:!0,subtype:r.getCardSubtype(l)},{header:c(()=>[d(R,{icon:r.getCardIcon(l)},null,8,["icon"]),b(" "+D(r.getTotalsLabel(l)),1)]),default:c(()=>[(o(!0),s(k,null,x(p,(I,m)=>(o(),s("div",{key:m},[l!=="hc"?(o(),_(w,{key:0},{default:c(()=>[b(D(r.getTotalsLabel(l,m)),1)]),_:2},1024)):C("",!0),(o(!0),s(k,null,x(I,(W,A)=>(o(),s("div",{key:A},[d(v,{title:r.getTotalsLabel(l,m,A),readonly:"",class:"text-right",unit:"kWh","model-value":e.formatNumber(W/1e3,3)},null,8,["title","model-value"])]))),128)),m=="all"&&l!="hc"?(o(),s("hr",ce)):C("",!0)]))),128))]),_:2},1032,["subtype"]))),128))])]),_:1})])):(o(),_(u,{key:0,subtype:"info"},{default:c(()=>t[5]||(t[5]=[b(" Es konnten keine Daten für diesen Zeitraum gefunden werden. ",-1)])),_:1,__:[5]}))]))]))])}const xe=ee(te,[["render",ue],["__scopeId","data-v-e00a7cd5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Chart.vue"]]);export{xe as default}; diff --git a/web/settings/assets/CloudConfig-1f382920.js b/web/settings/assets/CloudConfig-1f382920.js new file mode 100644 index 0000000000..5eae34fda2 --- /dev/null +++ b/web/settings/assets/CloudConfig-1f382920.js @@ -0,0 +1 @@ +import{l as q,aa as S,F as z}from"./vendor-fortawesome-a02b6813.js";import{C as P}from"./index-8dd8e083.js";import{_ as h,u as a,l,m as C,G as s,E as t,A as i,x as p,z as m,D as Z,N as I,B as r,q as k}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";q.add(S);const M={name:"OpenwbCloudConfigView",components:{FontAwesomeIcon:z},mixins:[P],emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/dataprotection_acknowledged","openWB/system/mqtt/bridge/+","openWB/system/mqtt/valid_partner_ids"],enableNewCloudButton:!0,newCloudData:{email:"",username:"",partner:!1},enableCloudConnectButton:!0,connectCloudData:{username:"",password:"",partner:!1},enableRemoveCloudButton:!0,showCloudRemoveModal:!1}},computed:{cloudBridge:{get(){let n=this.getWildcardTopics("openWB/system/mqtt/bridge/+");for(const[e,w]of Object.entries(n))w.remote.is_openwb_cloud||delete n[e];return n}},cloudBridgeKey:{get(){for(const[n,e]of Object.entries(this.cloudBridge))if(e.remote.is_openwb_cloud)return n}},cloudSettings:{get(){return{username:this.cloudBridge[this.cloudBridgeKey].remote.username,password:this.cloudBridge[this.cloudBridgeKey].remote.password,partner:this.cloudBridge[this.cloudBridgeKey].access?this.cloudBridge[this.cloudBridgeKey].access.partner:!1}}}},methods:{getMqttBridgeIndex(n){return parseInt(n.match(/(?:\/)(\d+)$/)[1])},createCloud(){document.forms.cloudConfigCreateForm.reportValidity()&&(this.$emit("save"),this.$emit("sendCommand",{command:"initCloud",data:this.newCloudData}),this.enableNewCloudButton=!1)},connectCloud(){document.forms.cloudConfigConnectForm.reportValidity()&&(this.$emit("save"),this.$emit("sendCommand",{command:"connectCloud",data:this.connectCloudData}),this.enableCloudConnectButton=!1)},removeCloudModal(n){n.stopPropagation(),this.showCloudRemoveModal=!0},removeCloud(n){this.showCloudRemoveModal=!1,n=="confirm"&&(this.updateState("openWB/system/mqtt/valid_partner_ids",[]),this.$emit("sendCommand",{command:"removeMqttBridge",data:{bridge:this.getMqttBridgeIndex(this.cloudBridgeKey)}}),this.enableCloudConnectButton=!0)}}},K={class:"cloud-config"},x={key:1},R={key:1,name:"cloudConfigConnectForm"},U={class:"row justify-content-center"},A={key:2,name:"cloudConfigured"},N={class:"row justify-content-center"};function F(n,e,w,j,u,d){const D=a("openwb-base-modal-dialog"),c=a("router-link"),g=a("openwb-base-alert"),b=a("openwb-base-text-input"),B=a("openwb-base-button-group-input"),f=a("font-awesome-icon"),_=a("openwb-base-array-input"),y=a("openwb-base-click-button"),v=a("openwb-base-card"),V=a("openwb-base-heading"),W=a("openwb-base-submit-buttons");return l(),C(I,null,[s(D,{show:u.showCloudRemoveModal,title:"Cloud Zugang löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=o=>d.removeCloud(o))},{default:t(()=>e[13]||(e[13]=[r(" Willst Du den vorhandenen Cloud Zugang wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",-1)])),_:1,__:[13]},8,["show"]),i("div",K,[n.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(l(),p(g,{key:0,subtype:"danger"},{default:t(()=>[e[15]||(e[15]=r(" Du musst der ",-1)),s(c,{to:"/System/LegalSettings"},{default:t(()=>e[14]||(e[14]=[r(" Datenschutzerklärung ",-1)])),_:1,__:[14]}),e[16]||(e[16]=r(" zustimmen, um die openWB Cloud nutzen zu können. ",-1))]),_:1,__:[15,16]})):(l(),C("div",x,[s(g,{subtype:"success"},{default:t(()=>[e[18]||(e[18]=r(" Du hast der ",-1)),s(c,{to:"/System/LegalSettings"},{default:t(()=>e[17]||(e[17]=[r(" Datenschutzerklärung ",-1)])),_:1,__:[17]}),e[19]||(e[19]=r(" zugestimmt und kannst die openWB Cloud nutzen. ",-1))]),_:1,__:[18,19]}),u.enableRemoveCloudButton?m("",!0):(l(),p(g,{key:0,subtype:"warning"},{default:t(()=>e[20]||(e[20]=[r(" Der Zugang wurde entfernt. Bitte starte die openWB neu, um die Änderungen anzuwenden! ",-1)])),_:1,__:[20]})),d.cloudBridgeKey?m("",!0):(l(),C("form",R,[s(v,{title:"Vorhandenen Zugang einrichten"},Z({default:t(()=>[s(g,{subtype:"info"},{default:t(()=>e[21]||(e[21]=[i("p",null,[r(" Bitte nutze die in/an der openWB notierten Zugangsdaten. Wenn bei einer gekauften openWB keine Zugangsdaten vorhanden sind, schreibe bitte eine Mail unter Angabe der Bestell- und/oder Seriennummer an "),i("a",{href:"mailto:support@openwb.de",subject:"Cloud Zugangsdaten"}," support@openwb.de "),r(" . ")],-1),i("p",null,[r(" Eine Anleitung zur Einrichtung der openWB Cloud findest Du im "),i("a",{href:"https://wiki.openwb.de/doku.php?id=openwb:faq:cloudeinrichten",target:"_blank",rel:"noopener noreferrer"}," Wiki "),r(". ")],-1)])),_:1,__:[21]}),s(b,{modelValue:u.connectCloudData.username,"onUpdate:modelValue":e[1]||(e[1]=o=>u.connectCloudData.username=o),title:"Benutzername",required:"",subtype:"user"},null,8,["modelValue"]),s(b,{modelValue:u.connectCloudData.password,"onUpdate:modelValue":e[2]||(e[2]=o=>u.connectCloudData.password=o),title:"Passwort",required:"",subtype:"password"},null,8,["modelValue"]),s(B,{modelValue:u.connectCloudData.partner,"onUpdate:modelValue":e[3]||(e[3]=o=>u.connectCloudData.partner=o),title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},{help:t(()=>e[22]||(e[22]=[r(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ",-1)])),_:1},8,["modelValue"]),u.connectCloudData.partner?(l(),p(_,{key:0,title:"Gültige Partner-IDs","no-elements-message":"Keine Partner-ID zugeordnet.","model-value":n.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[4]||(e[4]=o=>n.updateState("openWB/system/mqtt/valid_partner_ids",o))},{"input-prefix":t(()=>[s(f,{icon:["fas","user-gear"]})]),"element-prefix":t(()=>[s(f,{icon:["fas","user-gear"]})]),help:t(()=>e[23]||(e[23]=[r(" Die Partner-ID erhältst Du von Deinem Installateur. Ist hier keine Partner-ID eingetragen, dann kann auch niemand - trotz aktiviertem Zugang für Partner - über das Partner-Portal auf diese openWB zugreifen! ",-1)])),_:1},8,["model-value"])):m("",!0)]),_:2},[n.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:t(()=>[i("div",U,[s(y,{class:k(["col-4",u.enableCloudConnectButton?"btn-success":"btn-outline-success"]),disabled:!u.enableCloudConnectButton,onButtonClicked:d.connectCloud},{default:t(()=>e[24]||(e[24]=[r(" Mit Cloud verbinden ",-1)])),_:1,__:[24]},8,["class","disabled","onButtonClicked"])])]),key:"0"}:void 0]),1024)])),d.cloudBridgeKey?(l(),C("form",A,[!u.enableCloudConnectButton||!u.enableNewCloudButton?(l(),p(g,{key:0,subtype:"warning"},{default:t(()=>e[25]||(e[25]=[r(" Der Zugang wurde eingerichtet. Bitte starte die die openWB neu, um die Änderungen anzuwenden! ",-1)])),_:1,__:[25]})):m("",!0),s(v,{title:"Vorhandener Cloud Zugang"},{footer:t(()=>[i("div",N,[s(y,{class:k(["col-4",u.enableRemoveCloudButton?"btn-danger":"btn-outline-danger"]),disabled:!u.enableRemoveCloudButton,onButtonClicked:e[9]||(e[9]=o=>d.removeCloudModal(o))},{default:t(()=>e[29]||(e[29]=[r(" Zugang löschen ",-1)])),_:1,__:[29]},8,["class","disabled"])])]),default:t(()=>[s(V,null,{default:t(()=>e[26]||(e[26]=[i("span",null,[r(" Mit diesen Zugangsdaten kannst Du dich in der "),i("a",{href:"https://remote.openwb.de/",target:"_blank",rel:"noopener noreferrer"}," openWB Cloud "),r(" anmelden. ")],-1)])),_:1,__:[26]}),s(b,{modelValue:d.cloudSettings.username,"onUpdate:modelValue":e[5]||(e[5]=o=>d.cloudSettings.username=o),title:"Benutzername",required:"",subtype:"user",disabled:""},null,8,["modelValue"]),s(b,{modelValue:d.cloudSettings.password,"onUpdate:modelValue":e[6]||(e[6]=o=>d.cloudSettings.password=o),title:"Passwort",required:"",subtype:"password",disabled:""},null,8,["modelValue"]),e[30]||(e[30]=i("hr",null,null,-1)),s(B,{title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":d.cloudSettings.partner,"onUpdate:modelValue":e[7]||(e[7]=o=>n.updateState(d.cloudBridgeKey,o,"access.partner"))},{help:t(()=>e[27]||(e[27]=[r(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ",-1)])),_:1},8,["model-value"]),d.cloudSettings.partner?(l(),p(_,{key:0,title:"Gültige Partner-IDs","no-elements-message":"Keine Partner-ID zugeordnet.","model-value":n.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[8]||(e[8]=o=>n.updateState("openWB/system/mqtt/valid_partner_ids",o))},{"input-prefix":t(()=>[s(f,{icon:["fas","user-gear"]})]),"element-prefix":t(()=>[s(f,{icon:["fas","user-gear"]})]),help:t(()=>e[28]||(e[28]=[r(" Die Partner-ID erhältst Du von Deinem Installateur. Ist hier keine Partner-ID eingetragen, dann kann auch niemand - trotz aktiviertem Zugang für Partner - über das Partner-Portal auf diese openWB zugreifen! ",-1)])),_:1},8,["model-value"])):m("",!0)]),_:1,__:[30]})])):m("",!0),d.cloudBridgeKey?(l(),p(W,{key:3,"form-name":"cloudConfigured",onSave:e[10]||(e[10]=o=>n.$emit("save")),onReset:e[11]||(e[11]=o=>n.$emit("reset")),onDefaults:e[12]||(e[12]=o=>n.$emit("defaults"))})):m("",!0)]))])],64)}const Q=h(M,[["render",F],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/CloudConfig.vue"]]);export{Q as default}; diff --git a/web/settings/assets/CloudConfig-fd8466da.js b/web/settings/assets/CloudConfig-fd8466da.js deleted file mode 100644 index 21da980ad6..0000000000 --- a/web/settings/assets/CloudConfig-fd8466da.js +++ /dev/null @@ -1 +0,0 @@ -import{l as q,aa as S,F as z}from"./vendor-fortawesome-2b3791bb.js";import{C as P}from"./index-0992d19b.js";import{_ as h,u as a,l,m as C,G as s,E as t,A as i,x as p,z as m,D as Z,N as I,B as r,q as _}from"./vendor-36bf053b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";q.add(S);const M={name:"OpenwbCloudConfigView",components:{FontAwesomeIcon:z},mixins:[P],emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/dataprotection_acknowledged","openWB/system/mqtt/bridge/+","openWB/system/mqtt/valid_partner_ids"],enableNewCloudButton:!0,newCloudData:{email:"",username:"",partner:!1},enableCloudConnectButton:!0,connectCloudData:{username:"",password:"",partner:!1},enableRemoveCloudButton:!0,showCloudRemoveModal:!1}},computed:{cloudBridge:{get(){let n=this.getWildcardTopics("openWB/system/mqtt/bridge/+");for(const[e,w]of Object.entries(n))w.remote.is_openwb_cloud||delete n[e];return n}},cloudBridgeKey:{get(){for(const[n,e]of Object.entries(this.cloudBridge))if(e.remote.is_openwb_cloud)return n}},cloudSettings:{get(){return{username:this.cloudBridge[this.cloudBridgeKey].remote.username,password:this.cloudBridge[this.cloudBridgeKey].remote.password,partner:this.cloudBridge[this.cloudBridgeKey].access?this.cloudBridge[this.cloudBridgeKey].access.partner:!1}}}},methods:{getMqttBridgeIndex(n){return parseInt(n.match(/(?:\/)(\d+)$/)[1])},createCloud(){document.forms.cloudConfigCreateForm.reportValidity()&&(this.$emit("save"),this.$emit("sendCommand",{command:"initCloud",data:this.newCloudData}),this.enableNewCloudButton=!1)},connectCloud(){document.forms.cloudConfigConnectForm.reportValidity()&&(this.$emit("save"),this.$emit("sendCommand",{command:"connectCloud",data:this.connectCloudData}),this.enableCloudConnectButton=!1)},removeCloudModal(n){n.stopPropagation(),this.showCloudRemoveModal=!0},removeCloud(n){this.showCloudRemoveModal=!1,n=="confirm"&&(this.updateState("openWB/system/mqtt/valid_partner_ids",[]),this.$emit("sendCommand",{command:"removeMqttBridge",data:{bridge:this.getMqttBridgeIndex(this.cloudBridgeKey)}}),this.enableCloudConnectButton=!0)}}},K={class:"cloud-config"},x={key:1},R={key:1,name:"cloudConfigConnectForm"},U={class:"row justify-content-center"},A={key:2,name:"cloudConfigured"},N={class:"row justify-content-center"};function F(n,e,w,j,u,d){const D=a("openwb-base-modal-dialog"),c=a("router-link"),g=a("openwb-base-alert"),b=a("openwb-base-text-input"),B=a("openwb-base-button-group-input"),f=a("font-awesome-icon"),y=a("openwb-base-array-input"),v=a("openwb-base-click-button"),k=a("openwb-base-card"),V=a("openwb-base-heading"),W=a("openwb-base-submit-buttons");return l(),C(I,null,[s(D,{show:u.showCloudRemoveModal,title:"Cloud Zugang löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=o=>d.removeCloud(o))},{default:t(()=>[...e[13]||(e[13]=[r(" Willst Du den vorhandenen Cloud Zugang wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",-1)])]),_:1},8,["show"]),i("div",K,[n.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(l(),p(g,{key:0,subtype:"danger"},{default:t(()=>[e[15]||(e[15]=r(" Du musst der ",-1)),s(c,{to:"/System/LegalSettings"},{default:t(()=>[...e[14]||(e[14]=[r(" Datenschutzerklärung ",-1)])]),_:1}),e[16]||(e[16]=r(" zustimmen, um die openWB Cloud nutzen zu können. ",-1))]),_:1})):(l(),C("div",x,[s(g,{subtype:"success"},{default:t(()=>[e[18]||(e[18]=r(" Du hast der ",-1)),s(c,{to:"/System/LegalSettings"},{default:t(()=>[...e[17]||(e[17]=[r(" Datenschutzerklärung ",-1)])]),_:1}),e[19]||(e[19]=r(" zugestimmt und kannst die openWB Cloud nutzen. ",-1))]),_:1}),u.enableRemoveCloudButton?m("",!0):(l(),p(g,{key:0,subtype:"warning"},{default:t(()=>[...e[20]||(e[20]=[r(" Der Zugang wurde entfernt. Bitte starte die openWB neu, um die Änderungen anzuwenden! ",-1)])]),_:1})),d.cloudBridgeKey?m("",!0):(l(),C("form",R,[s(k,{title:"Vorhandenen Zugang einrichten"},Z({default:t(()=>[s(g,{subtype:"info"},{default:t(()=>[...e[21]||(e[21]=[i("p",null,[r(" Bitte nutze die in/an der openWB notierten Zugangsdaten. Wenn bei einer gekauften openWB keine Zugangsdaten vorhanden sind, schreibe bitte eine Mail unter Angabe der Bestell- und/oder Seriennummer an "),i("a",{href:"mailto:support@openwb.de",subject:"Cloud Zugangsdaten"}," support@openwb.de "),r(" . ")],-1),i("p",null,[r(" Eine Anleitung zur Einrichtung der openWB Cloud findest Du im "),i("a",{href:"https://wiki.openwb.de/doku.php?id=openwb:faq:cloudeinrichten",target:"_blank",rel:"noopener noreferrer"}," Wiki "),r(". ")],-1)])]),_:1}),s(b,{modelValue:u.connectCloudData.username,"onUpdate:modelValue":e[1]||(e[1]=o=>u.connectCloudData.username=o),title:"Benutzername",required:"",subtype:"user"},null,8,["modelValue"]),s(b,{modelValue:u.connectCloudData.password,"onUpdate:modelValue":e[2]||(e[2]=o=>u.connectCloudData.password=o),title:"Passwort",required:"",subtype:"password"},null,8,["modelValue"]),s(B,{modelValue:u.connectCloudData.partner,"onUpdate:modelValue":e[3]||(e[3]=o=>u.connectCloudData.partner=o),title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},{help:t(()=>[...e[22]||(e[22]=[r(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ",-1)])]),_:1},8,["modelValue"]),u.connectCloudData.partner?(l(),p(y,{key:0,title:"Gültige Partner-IDs","no-elements-message":"Keine Partner-ID zugeordnet.","model-value":n.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[4]||(e[4]=o=>n.updateState("openWB/system/mqtt/valid_partner_ids",o))},{"input-prefix":t(()=>[s(f,{icon:["fas","user-gear"]})]),"element-prefix":t(()=>[s(f,{icon:["fas","user-gear"]})]),help:t(()=>[...e[23]||(e[23]=[r(" Die Partner-ID erhältst Du von Deinem Installateur. Ist hier keine Partner-ID eingetragen, dann kann auch niemand - trotz aktiviertem Zugang für Partner - über das Partner-Portal auf diese openWB zugreifen! ",-1)])]),_:1},8,["model-value"])):m("",!0)]),_:2},[n.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:t(()=>[i("div",U,[s(v,{class:_(["col-4",u.enableCloudConnectButton?"btn-success":"btn-outline-success"]),disabled:!u.enableCloudConnectButton,onButtonClicked:d.connectCloud},{default:t(()=>[...e[24]||(e[24]=[r(" Mit Cloud verbinden ",-1)])]),_:1},8,["class","disabled","onButtonClicked"])])]),key:"0"}:void 0]),1024)])),d.cloudBridgeKey?(l(),C("form",A,[!u.enableCloudConnectButton||!u.enableNewCloudButton?(l(),p(g,{key:0,subtype:"warning"},{default:t(()=>[...e[25]||(e[25]=[r(" Der Zugang wurde eingerichtet. Bitte starte die die openWB neu, um die Änderungen anzuwenden! ",-1)])]),_:1})):m("",!0),s(k,{title:"Vorhandener Cloud Zugang"},{footer:t(()=>[i("div",N,[s(v,{class:_(["col-4",u.enableRemoveCloudButton?"btn-danger":"btn-outline-danger"]),disabled:!u.enableRemoveCloudButton,onButtonClicked:e[9]||(e[9]=o=>d.removeCloudModal(o))},{default:t(()=>[...e[29]||(e[29]=[r(" Zugang löschen ",-1)])]),_:1},8,["class","disabled"])])]),default:t(()=>[s(V,null,{default:t(()=>[...e[26]||(e[26]=[i("span",null,[r(" Mit diesen Zugangsdaten kannst Du dich in der "),i("a",{href:"https://remote.openwb.de/",target:"_blank",rel:"noopener noreferrer"}," openWB Cloud "),r(" anmelden. ")],-1)])]),_:1}),s(b,{modelValue:d.cloudSettings.username,"onUpdate:modelValue":e[5]||(e[5]=o=>d.cloudSettings.username=o),title:"Benutzername",required:"",subtype:"user",disabled:""},null,8,["modelValue"]),s(b,{modelValue:d.cloudSettings.password,"onUpdate:modelValue":e[6]||(e[6]=o=>d.cloudSettings.password=o),title:"Passwort",required:"",subtype:"password",disabled:""},null,8,["modelValue"]),e[30]||(e[30]=i("hr",null,null,-1)),s(B,{title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":d.cloudSettings.partner,"onUpdate:modelValue":e[7]||(e[7]=o=>n.updateState(d.cloudBridgeKey,o,"access.partner"))},{help:t(()=>[...e[27]||(e[27]=[r(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ",-1)])]),_:1},8,["model-value"]),d.cloudSettings.partner?(l(),p(y,{key:0,title:"Gültige Partner-IDs","no-elements-message":"Keine Partner-ID zugeordnet.","model-value":n.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[8]||(e[8]=o=>n.updateState("openWB/system/mqtt/valid_partner_ids",o))},{"input-prefix":t(()=>[s(f,{icon:["fas","user-gear"]})]),"element-prefix":t(()=>[s(f,{icon:["fas","user-gear"]})]),help:t(()=>[...e[28]||(e[28]=[r(" Die Partner-ID erhältst Du von Deinem Installateur. Ist hier keine Partner-ID eingetragen, dann kann auch niemand - trotz aktiviertem Zugang für Partner - über das Partner-Portal auf diese openWB zugreifen! ",-1)])]),_:1},8,["model-value"])):m("",!0)]),_:1})])):m("",!0),d.cloudBridgeKey?(l(),p(W,{key:3,"form-name":"cloudConfigured",onSave:e[10]||(e[10]=o=>n.$emit("save")),onReset:e[11]||(e[11]=o=>n.$emit("reset")),onDefaults:e[12]||(e[12]=o=>n.$emit("defaults"))})):m("",!0)]))])],64)}const Q=h(M,[["render",F],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/CloudConfig.vue"]]);export{Q as default}; diff --git a/web/settings/assets/DataManagement-52054445.js b/web/settings/assets/DataManagement-52054445.js new file mode 100644 index 0000000000..4652e703b2 --- /dev/null +++ b/web/settings/assets/DataManagement-52054445.js @@ -0,0 +1 @@ +import{l as F,a6 as V,a7 as E,F as A,as as q,at as H,au as N,av as $,aw as I}from"./vendor-fortawesome-a02b6813.js";import{_ as B,C as G}from"./index-8dd8e083.js";import{_ as j}from"./dynamic-import-helper-be004503.js";import{_ as C,u as d,l as u,m,x as y,E as i,B as o,F as b,G as t,A as s,a2 as z,a3 as P,N as W,z as w,q as M,M as T,D as J}from"./vendor-25d394b4.js";const K={props:{backupCloud:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})},sendSystemCommand(n,e={}){this.$emit("sendCommand",{command:n,data:e})}}},Z=C(K,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/BackupCloudConfigMixin.vue"]]),Q={name:"BackupCloudConfigFallback",mixins:[Z]},X={class:"backup-cloud-fallback"},Y={key:1};function ee(n,e,a,_,l,r){const p=d("openwb-base-alert"),c=d("openwb-base-textarea");return u(),m("div",X,[Object.keys(n.backupCloud.configuration).length==0?(u(),y(p,{key:0,subtype:"info"},{default:i(()=>[o(' Die Backup-Cloud "'+b(n.backupCloud.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(u(),m("div",Y,[t(p,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für die Backup-Cloud "'+b(n.backupCloud.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),t(c,{title:"Konfiguration",subtype:"json","model-value":n.backupCloud.configuration,"onUpdate:modelValue":e[0]||(e[0]=k=>n.updateConfiguration(k,"configuration"))},{help:i(()=>e[1]||(e[1]=[o(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),t(p,{subtype:"info"},{default:i(()=>[s("pre",null,b(JSON.stringify(n.backupCloud.configuration,void 0,2)),1)]),_:1})]))])}const ne=C(Q,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudConfigFallback.vue"]]);F.add(V,E);const te={name:"OpenwbBackupCloudProxy",components:{FontAwesomeIcon:A},props:{backupCloud:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{getBackupCloudComponent(){return console.debug(`loading backup cloud: ${this.backupCloud.type}`),z({loader:()=>j(Object.assign({"./nextcloud/backup_cloud.vue":()=>B(()=>import("./backup_cloud-5420b416.js"),["assets/backup_cloud-5420b416.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./nfs/backup_cloud.vue":()=>B(()=>import("./backup_cloud-66a4543e.js"),["assets/backup_cloud-66a4543e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./onedrive/backup_cloud.vue":()=>B(()=>import("./backup_cloud-0a9a4a8d.js"),["assets/backup_cloud-0a9a4a8d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./samba/backup_cloud.vue":()=>B(()=>import("./backup_cloud-e3708975.js"),["assets/backup_cloud-e3708975.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.backupCloud.type}/backup_cloud.vue`),errorComponent:ne})},updateConfiguration(n){this.$emit("update:configuration",n)},sendCommand(n){this.$emit("sendCommand",n)}}};function oe(n,e,a,_,l,r){const p=d("font-awesome-icon"),c=d("openwb-base-alert"),k=d("openwb-base-heading");return u(),m(W,null,[a.backupCloud.official?(u(),y(c,{key:0,subtype:"success"},{default:i(()=>[t(p,{icon:["fas","certificate"]}),o(' Das ausgewählte Backup-Cloud Modul "'+b(a.backupCloud.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(u(),y(c,{key:1,subtype:"info"},{default:i(()=>[t(p,{icon:["fas","people-group"]}),o(' Das ausgewählte Backup-Cloud Modul "'+b(a.backupCloud.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),t(k,null,{default:i(()=>[o(' Einstellungen für Backup-Cloud Modul "'+b(a.backupCloud.name)+'" ',1)]),_:1}),(u(),y(P(r.getBackupCloudComponent()),{"backup-cloud":a.backupCloud,"onUpdate:configuration":e[0]||(e[0]=h=>r.updateConfiguration(h)),onSendCommand:e[1]||(e[1]=h=>r.sendCommand(h))},null,40,["backup-cloud"]))],64)}const ie=C(te,[["render",oe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudProxy.vue"]]),se={props:{monitoring:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},ae=C(se,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/MonitoringConfigMixin.vue"]]),re={name:"MonitoringConfigFallback",mixins:[ae]},le={class:"monitoring-fallback"},ue={key:1};function de(n,e,a,_,l,r){const p=d("openwb-base-alert"),c=d("openwb-base-textarea");return u(),m("div",le,[Object.keys(n.monitoring.configuration).length==0?(u(),y(p,{key:0,subtype:"info"},{default:i(()=>[o(' Der Anbieter "'+b(n.monitoring.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(u(),m("div",ue,[t(p,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für den Anbieter "'+b(n.monitoring.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),t(c,{title:"Konfiguration",subtype:"json","model-value":n.monitoring.configuration,"onUpdate:modelValue":e[0]||(e[0]=k=>n.updateConfiguration(k,"configuration"))},{help:i(()=>e[1]||(e[1]=[o(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),t(p,{subtype:"info"},{default:i(()=>[s("pre",null,b(JSON.stringify(n.monitoring.configuration,void 0,2)),1)]),_:1})]))])}const pe=C(re,[["render",de],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/OpenwbMonitoringConfigFallback.vue"]]);F.add(V,E);const ce={name:"OpenwbMonitoringProxy",components:{FontAwesomeIcon:A},props:{monitoring:{type:Object,required:!0}},emits:["update:configuration"],methods:{getMonitoringComponent(){return console.debug(`loading monitoring: ${this.monitoring.type}`),z({loader:()=>j(Object.assign({"./zabbix/monitoring.vue":()=>B(()=>import("./monitoring-1f99e249.js"),["assets/monitoring-1f99e249.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.monitoring.type}/monitoring.vue`),errorComponent:pe})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function me(n,e,a,_,l,r){const p=d("font-awesome-icon"),c=d("openwb-base-alert"),k=d("openwb-base-heading");return u(),m(W,null,[a.monitoring.official?(u(),y(c,{key:0,subtype:"success"},{default:i(()=>[t(p,{icon:["fas","certificate"]}),o(' Das ausgewählte Monitoring Modul "'+b(a.monitoring.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(u(),y(c,{key:1,subtype:"info"},{default:i(()=>[t(p,{icon:["fas","people-group"]}),o(' Das ausgewählte Monitoring Modul "'+b(a.monitoring.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),t(k,null,{default:i(()=>[o(' Einstellungen für Modul "'+b(a.monitoring.name)+'" ',1)]),_:1}),(u(),y(P(r.getMonitoringComponent()),{monitoring:a.monitoring,"onUpdate:configuration":e[0]||(e[0]=h=>r.updateConfiguration(h))},null,40,["monitoring"]))],64)}const ge=C(ce,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/OpenwbMonitoringProxy.vue"]]);F.add(q,H,N,$,I);const fe={name:"OpenwbDataManagementView",components:{FontAwesomeIcon:A,OpenwbBackupCloudProxy:ie,OpenwbMonitoringProxy:ge},mixins:[G],props:{installAssistantActive:{type:Boolean,required:!1,default:!1},showBackupCloudSection:{type:Boolean,required:!1,default:!0}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/configurable/backup_clouds","openWB/system/configurable/monitoring","openWB/system/backup_cloud/config","openWB/system/backup_cloud/backup_before_update","openWB/system/device/+/component/+/config","openWB/chargepoint/+/config","openWB/optional/monitoring/config","openWB/vehicle/+/name","openWB/LegacySmartHome/config/get/Devices/+/device_configured","openWB/LegacySmartHome/config/get/Devices/+/device_name"],warningAcknowledged:!1,showRestoreSection:!this.installAssistantActive,selectedRestoreFile:void 0,restoreUploadDone:!1,selectedDataMigrationFile:void 0,dataMigrationUploadDone:!1,dataMigrationConfig:[{sectionName:"Ladepunkte",sectionComponents:[{key:"cp1",label:"Ladepunkt 1",validTypes:["chargePoint"]},{key:"cp2",label:"Ladepunkt 2",validTypes:["chargePoint"]},{key:"cp3",label:"Ladepunkt 3",validTypes:["chargePoint"]},{key:"cp4",label:"Ladepunkt 4",validTypes:["chargePoint"]},{key:"cp5",label:"Ladepunkt 5",validTypes:["chargePoint"]},{key:"cp6",label:"Ladepunkt 6",validTypes:["chargePoint"]},{key:"cp7",label:"Ladepunkt 7",validTypes:["chargePoint"]},{key:"cp8",label:"Ladepunkt 8",validTypes:["chargePoint"]}]},{sectionName:"Zähler",sectionComponents:[{key:"evu",label:"EVU",validTypes:["counter"]},{key:"consumer1",label:"Verbraucher 1",validTypes:["counter"]},{key:"consumer2",label:"Verbraucher 2",validTypes:["counter"]},{key:"consumer3",label:"Verbraucher 3",validTypes:["counter"]}]},{sectionName:"Wechselrichter",sectionComponents:[{key:"pvAll",label:"Wechselrichter (Summe)",validTypes:["inverter"],help:"Die 1.9er Version von openWB speichert lediglich die Summen-Leistung aller Wechselrichter."}]},{sectionName:"Batteriespeicher",sectionComponents:[{key:"bat",label:"Speicher 1",validTypes:["battery"]}]},{sectionName:"Fahrzeuge",sectionComponents:[{key:"ev1",label:"Fahrzeug von Ladepunkt 1",validTypes:["vehicle"]},{key:"ev2",label:"Fahrzeug von Ladepunkt 2",validTypes:["vehicle"]}]},{sectionName:"SmartHome 2.0",sectionComponents:[{key:"sh1",label:"Gerät 1",validTypes:["smartHome"]},{key:"sh2",label:"Gerät 2",validTypes:["smartHome"]},{key:"sh3",label:"Gerät 3",validTypes:["smartHome"]},{key:"sh4",label:"Gerät 4",validTypes:["smartHome"]},{key:"sh5",label:"Gerät 5",validTypes:["smartHome"]},{key:"sh6",label:"Gerät 6",validTypes:["smartHome"]},{key:"sh7",label:"Gerät 7",validTypes:["smartHome"]},{key:"sh8",label:"Gerät 8",validTypes:["smartHome"]},{key:"sh9",label:"Gerät 9",validTypes:["smartHome"]}]}],dataMigrationMapping:{cp1:void 0,cp2:void 0,cp3:void 0,cp4:void 0,cp5:void 0,cp6:void 0,cp7:void 0,cp8:void 0,evu:void 0,pvAll:void 0,bat:void 0,consumer1:void 0,consumer2:void 0,consumer3:void 0,sh1:void 0,sh2:void 0,sh3:void 0,sh4:void 0,sh5:void 0,sh6:void 0,sh7:void 0,sh8:void 0,sh9:void 0,ev1:void 0,ev2:void 0}}},computed:{backupCloudList(){return this.$store.state.mqtt["openWB/system/configurable/backup_clouds"]},componentConfigurations(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")},chargePointOptions(){let n=this.getWildcardTopics("openWB/chargepoint/+/config");var e=[];for(const a of Object.values(n))e.push({value:a.id,text:a.name});return e},counterOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"counter")&&n.push({value:e.id,text:e.name});return n},inverterOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"inverter")&&n.push({value:e.id,text:e.name});return n},monitoringList(){return this.$store.state.mqtt["openWB/system/configurable/monitoring"]},batteryOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"bat")&&n.push({value:e.id,text:e.name});return n},vehicleOptions(){let n=this.getWildcardTopics("openWB/vehicle/+/name");var e=[];for(const[a,_]of Object.entries(n)){let l=parseInt(a.match(/\/(\d\d?)\//)[1]);e.push({value:l,text:_})}return e},smartHomeOptions(){let n=this.getWildcardTopics("openWB/LegacySmartHome/config/get/Devices/+/device_configured");var e=[];for(const[a,_]of Object.entries(n))if(_==1){let l=parseInt(a.match(/\/(\d\d?)\//)[1]);e.push({value:l,text:this.$store.state.mqtt[`openWB/LegacySmartHome/config/get/Devices/${l}/device_name`]})}return e}},methods:{isComponentType(n,e){return n.split("_").includes(e)},getBackupCloudDefaultConfiguration(n){const e=this.backupCloudList.find(a=>a.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for backup cloud type!",n),{})},sendSystemCommand(n,e={}){this.$emit("sendCommand",{command:n,data:e})},getMigrationOptions(n){var e=[{value:void 0,text:"-- nicht übernehmen --"}];return n.includes("chargePoint")&&e.push(...this.chargePointOptions),n.includes("counter")&&e.push(...this.counterOptions),n.includes("inverter")&&e.push(...this.inverterOptions),n.includes("battery")&&e.push(...this.batteryOptions),n.includes("vehicle")&&e.push(...this.vehicleOptions),n.includes("smartHome")&&e.push(...this.smartHomeOptions),e},updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)},updateSelectedBackupCloud(n){this.updateState("openWB/system/backup_cloud/config",n,"type"),this.updateState("openWB/system/backup_cloud/config",this.getBackupCloudDefaultConfiguration(n))},updateSelectedRestoreFile(n){this.selectedRestoreFile=n.target.files[0]},updateSelectedDataMigrationFile(n){this.selectedDataMigrationFile=n.target.files[0]},uploadFile(n,e,a){return new Promise(_=>{if(e!==void 0){this.$root.postClientMessage("Hochladen der Datei gestartet.","info");let l=new FormData;l.append("file",e),l.append("target",n),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/uploadFile.php",l,{headers:{"Content-Type":"multipart/form-data"}}).then(()=>{this.$root.postClientMessage(a,"success"),_(!0)}).catch(r=>{if(r.response){console.error(r.response.status,r.response.data);var p="Hochladen der Datei fehlgeschlagen!
"+r.response.status+": "+r.response.data}else r.request?(console.error(r.request),p+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",r.message),p+="Es ist ein unbekannter Fehler aufgetreten.");this.$root.postClientMessage(p,"danger"),_(!1)})}else console.error("no file selected for upload"),_(!1)})},getMonitoringDefaultConfiguration(n){const e=this.monitoringList.find(a=>a.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for monitoring type!",n),{})},updateSelectedMonitoring(n){this.updateState("openWB/optional/monitoring/config",n,"type"),this.updateState("openWB/optional/monitoring/config",this.getMonitoringDefaultConfiguration(n))},async uploadRestoreFile(){const n="Die Sicherungsdatei wurde erfolgreich hochgeladen. Sie können die Wiederherstellung jetzt starten.";this.restoreUploadDone=await this.uploadFile("restore",this.selectedRestoreFile,n)},async uploadDataMigrationFile(){const n="Die Sicherungsdatei wurde erfolgreich hochgeladen. Sie können den Import jetzt starten.";this.dataMigrationUploadDone=await this.uploadFile("migrate",this.selectedDataMigrationFile,n)},restoreBackup(){this.sendSystemCommand("restoreBackup"),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})},dataMigration(){this.sendSystemCommand("dataMigration",this.dataMigrationMapping)},factoryReset(){this.sendSystemCommand("factoryReset",{}),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})}}},be={class:"system"},he={key:1},ke={name:"backupForm"},_e={class:"row justify-content-center"},ye={class:"col-md-4 d-flex py-1 justify-content-center"},ve={key:0,name:"restoreForm"},we={class:"input-group"},Ce={class:"input-group-prepend"},Be={class:"input-group-text"},De={class:"custom-file"},Se={id:"input-file-label",class:"custom-file-label",for:"input-file","data-browse":"Suchen"},Me={class:"input-group-append"},We=["disabled"],Oe={class:"row justify-content-center"},Fe={class:"col-md-4 d-flex py-1 justify-content-center"},Ae={key:1},Le={key:0,name:"cloudBackupForm"},Te={key:0},Ve={name:"dataMigrationForm"},Ee={class:"input-group"},je={class:"input-group-prepend"},ze={class:"input-group-text"},Pe={class:"custom-file"},xe={id:"data-migration-file-label",class:"custom-file-label",for:"data-migration-file","data-browse":"Suchen"},Re={class:"input-group-append"},Ue=["disabled"],qe={class:"row justify-content-center"},He={class:"col-md-4 d-flex py-1 justify-content-center"},Ne={key:1,name:"resetForm"},$e={class:"row justify-content-center"},Ie={class:"col-md-4 d-flex py-1 justify-content-center"},Ge={key:2,name:"monitoringForm"},Je={key:0},Ke={key:1},Ze={key:0};function Qe(n,e,a,_,l,r){const p=d("openwb-base-button-group-input"),c=d("openwb-base-alert"),k=d("openwb-base-heading"),h=d("font-awesome-icon"),D=d("openwb-base-click-button"),O=d("openwb-base-select-input"),x=d("openwb-base-button-input"),R=d("openwb-backup-cloud-proxy"),L=d("openwb-base-submit-buttons"),S=d("openwb-base-card"),U=d("openwb-monitoring-proxy");return u(),m("div",be,[a.installAssistantActive?w("",!0):(u(),y(c,{key:0,subtype:"danger"},{default:i(()=>[e[21]||(e[21]=s("h2",null,"Achtung!",-1)),e[22]||(e[22]=s("p",null," Vor allen Aktionen auf dieser Seite ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)),t(p,{modelValue:l.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=g=>l.warningAcknowledged=g),title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"])]),_:1,__:[21,22]})),l.warningAcknowledged||a.installAssistantActive?(u(),m("div",he,[t(S,{title:"Sicherung / Wiederherstellung",subtype:"success",collapsible:!0,collapsed:!a.installAssistantActive},{default:i(()=>{var g,v;return[s("form",ke,[t(k,null,{default:i(()=>e[23]||(e[23]=[o("Sicherung",-1)])),_:1,__:[23]}),t(c,{subtype:"danger"},{default:i(()=>e[24]||(e[24]=[o(' Aktuell können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ',-1)])),_:1,__:[24]}),t(c,{subtype:"info"},{default:i(()=>e[25]||(e[25]=[o(" Nachdem die Sicherung abgeschlossen ist, kann die erstellte Datei über den Link in der Benachrichtigung oder ",-1),s("a",{href:"/openWB/data/backup/",target:"_blank"},"hier",-1),o(" heruntergeladen werden. Beim Herunterladen bitte darauf achten, dass die Datei mit der Endung .tar.gz gespeichert wird. Ggf. das automatische Entpacken des Browsers deaktivieren. ",-1)])),_:1,__:[25]}),s("div",_e,[s("div",ye,[t(D,{class:"btn-success clickable",onButtonClicked:e[1]||(e[1]=f=>r.sendSystemCommand("createBackup",{use_extended_filename:!0}))},{default:i(()=>[e[26]||(e[26]=o(" Sicherung erstellen ",-1)),t(h,{icon:["fas","archive"]})]),_:1,__:[26]})])])]),l.showRestoreSection?(u(),m("form",ve,[e[31]||(e[31]=s("hr",null,null,-1)),t(k,null,{default:i(()=>e[27]||(e[27]=[o("Wiederherstellung",-1)])),_:1,__:[27]}),t(c,{subtype:"danger"},{default:i(()=>e[28]||(e[28]=[o(" Für die Wiederherstellung wird eine aktive Internetverbindung benötigt.",-1),s("br",null,null,-1),o(' Es können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ',-1)])),_:1,__:[28]}),s("div",we,[s("div",Ce,[s("div",Be,[t(h,{icon:["fas","file-archive"]})])]),s("div",De,[s("input",{id:"input-file",type:"file",class:"custom-file-input",accept:".tar.gz,application/gzip,application/tar+gzip",onChange:e[2]||(e[2]=f=>r.updateSelectedRestoreFile(f))},null,32),s("label",Se,b(l.selectedRestoreFile?l.selectedRestoreFile.name:"Bitte eine Datei auswählen"),1)]),s("div",Me,[s("button",{class:M(["btn",l.selectedRestoreFile?"btn-success clickable":"btn-outline-success"]),disabled:!l.selectedRestoreFile,type:"button",onClick:e[3]||(e[3]=f=>r.uploadRestoreFile())},[e[29]||(e[29]=o(" Hochladen ",-1)),t(h,{icon:["fas","upload"]})],10,We)])]),s("div",Oe,[s("div",Fe,[t(D,{class:M(l.restoreUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!l.restoreUploadDone,onButtonClicked:e[4]||(e[4]=f=>r.restoreBackup())},{default:i(()=>[e[30]||(e[30]=o(" Wiederherstellung starten ",-1)),t(h,{icon:["fas","box-open"]})]),_:1,__:[30]},8,["class","disabled"])])])])):w("",!0),a.installAssistantActive?w("",!0):(u(),m("div",Ae,[a.showBackupCloudSection?(u(),m("form",Le,[e[35]||(e[35]=s("hr",null,null,-1)),t(k,null,{default:i(()=>e[32]||(e[32]=[o(" Automatische Sicherung in einen Cloud-Dienst ",-1)])),_:1,__:[32]}),t(c,{subtype:"info"},{default:i(()=>e[33]||(e[33]=[o(" Ist die openWB als primary konfiguriert, wird zwischen Mitternacht und 5:00 Uhr automatisch eine Sicherung erstellt und in den angegebenen Cloud-Dienst (nicht openWB Cloud!) hochgeladen. Ist kein Cloud-Dienst konfiguriert, wird keine automatische Sicherung erstellt. Die automatische Sicherung kann unabhängig von der openWB Cloud genutzt werden.",-1),s("br",null,null,-1),o(" Die manuelle Cloud-Sicherung und -falls aktiviert- die Sicherung vor einem Update werden sowohl von einer primary als auch von einer secondary durchgeführt.",-1),s("br",null,null,-1),o(" Die Anleitung zur Konfiguration des Cloud-Dienstes findest Du ",-1),s("a",{href:"https://github.com/openWB/core/wiki/Cloud-Sicherung",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),o(" . ",-1)])),_:1,__:[33]}),t(O,{class:"mb-2",title:"Backup-Cloud",options:r.backupCloudList,"model-value":(g=n.$store.state.mqtt["openWB/system/backup_cloud/config"])==null?void 0:g.type,"onUpdate:modelValue":e[5]||(e[5]=f=>r.updateSelectedBackupCloud(f))},null,8,["options","model-value"]),(v=n.$store.state.mqtt["openWB/system/backup_cloud/config"])!=null&&v.type?(u(),m("div",Te,[t(p,{title:"Sicherung vor System-Update",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/system/backup_cloud/backup_before_update"],"onUpdate:modelValue":e[6]||(e[6]=f=>n.updateState("openWB/system/backup_cloud/backup_before_update",f))},{help:i(()=>e[34]||(e[34]=[o(" Ist diese Option aktiviert, dann wird vor jedem System-Update automatisch eine Sicherung erstellt und diese in die Backup-Cloud hochgeladen. ",-1)])),_:1},8,["model-value"]),t(x,{title:"Manuelle Cloud-Sicherung","button-text":"Sicherung erstellen und hochladen",subtype:"success",onButtonClicked:e[7]||(e[7]=f=>r.sendSystemCommand("createCloudBackup",{}))}),t(R,{"backup-cloud":n.$store.state.mqtt["openWB/system/backup_cloud/config"],"onUpdate:configuration":e[8]||(e[8]=f=>r.updateConfiguration("openWB/system/backup_cloud/config",f)),onSendCommand:e[9]||(e[9]=f=>r.sendSystemCommand(f.command,f.args))},null,8,["backup-cloud"])])):w("",!0),t(L,{"form-name":"cloudBackupForm","hide-reset":!0,"hide-defaults":!0,onSave:e[10]||(e[10]=f=>n.$emit("save")),onReset:e[11]||(e[11]=f=>n.$emit("reset")),onDefaults:e[12]||(e[12]=f=>n.$emit("defaults"))})])):w("",!0)]))]}),_:1},8,["collapsed"]),!a.installAssistantActive&&!n.$store.state.mqtt["openWB/general/extern"]?(u(),y(S,{key:0,title:"Datenübernahme",subtype:"success",collapsible:!0,collapsed:!0},{default:i(()=>[s("form",Ve,[t(c,{subtype:"info"},{default:i(()=>e[36]||(e[36]=[o(" Hier kann die Sicherung aus den älteren Software Versionen 1.9.303 oder 1.9.304 hochgeladen werden, um vorhandene historische Daten (Diagramme und Ladeprotokolle) sowie Cloud-Daten und Seriennummer in diese Installation zu importieren.",-1),s("br",null,null,-1),o(" Ein Import aus Versionen kleiner als 1.9.303 ist nicht möglich. Falls eine Datenübernahme aus 1.9er Versionen gewünscht ist, muss erst ein Upgrade auf 1.9.303 oder 1.9.304 durchgeführt werden! Die Zuordnung zwischen den alten und neuen Komponenten muss manuell durchgeführt werden. ",-1)])),_:1,__:[36]}),t(c,{subtype:"danger"},{default:i(()=>e[37]||(e[37]=[o(" Die Portierung kann bei vielen historischen Daten von mehreren Jahren durchaus bis zu 30 Minuten dauern. Die openWB in dieser Zeit bitte nicht herunterfahren! Du erhältst eine Meldung, wenn die Datenübernahme abgeschlossen ist.",-1),s("br",null,null,-1),o(" Vor der Datenübernahme unbedingt eine Sicherung erstellen.",-1),s("br",null,null,-1),o(" Die Datenübernahme kann nur durch Einspielen einer Sicherung rückgängig gemacht werden! ",-1)])),_:1,__:[37]}),s("div",Ee,[s("div",je,[s("div",ze,[t(h,{icon:["fas","file-archive"]})])]),s("div",Pe,[s("input",{id:"data-migration-file",type:"file",class:"custom-file-input",accept:".tar.gz,application/gzip,application/tar+gzip",onChange:e[13]||(e[13]=g=>r.updateSelectedDataMigrationFile(g))},null,32),s("label",xe,b(l.selectedDataMigrationFile?l.selectedDataMigrationFile.name:"Bitte eine Datei auswählen"),1)]),s("div",Re,[s("button",{class:M(["btn",l.selectedDataMigrationFile?"btn-success clickable":"btn-outline-success"]),disabled:!l.selectedDataMigrationFile,type:"button",onClick:e[14]||(e[14]=g=>r.uploadDataMigrationFile())},[e[38]||(e[38]=o(" Hochladen ",-1)),t(h,{icon:["fas","upload"]})],10,Ue)])]),t(k,null,{default:i(()=>e[39]||(e[39]=[o(" Zuordnung der Komponenten ",-1)])),_:1,__:[39]}),(u(!0),m(W,null,T(l.dataMigrationConfig,g=>(u(),m("div",{key:g.sectionName},[t(k,null,{default:i(()=>[o(b(g.sectionName),1)]),_:2},1024),(u(!0),m(W,null,T(g.sectionComponents,v=>(u(),y(O,{key:v.key,modelValue:l.dataMigrationMapping[v.key],"onUpdate:modelValue":f=>l.dataMigrationMapping[v.key]=f,title:v.label,options:r.getMigrationOptions(v.validTypes)},J({_:2},[v.help?{name:"help",fn:i(()=>[o(b(v.help),1)]),key:"0"}:void 0]),1032,["modelValue","onUpdate:modelValue","title","options"]))),128))]))),128)),s("div",qe,[s("div",He,[t(D,{class:M(l.dataMigrationUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!l.dataMigrationUploadDone,onButtonClicked:e[15]||(e[15]=g=>r.dataMigration())},{default:i(()=>[e[40]||(e[40]=o(" Datenübernahme starten ",-1)),t(h,{icon:["fas","box-open"]})]),_:1,__:[40]},8,["class","disabled"])])])])]),_:1})):w("",!0),a.installAssistantActive?w("",!0):(u(),m("form",Ne,[t(S,{title:"Zurücksetzen",subtype:"danger",collapsible:!0,collapsed:!0},{footer:i(()=>[s("div",$e,[s("div",Ie,[t(D,{class:"btn-danger clickable",onButtonClicked:e[16]||(e[16]=g=>r.factoryReset())},{default:i(()=>[t(h,{icon:["fas","skull-crossbones"]}),e[42]||(e[42]=o(" Zurücksetzen ",-1)),t(h,{icon:["fas","skull-crossbones"]})]),_:1,__:[42]})])])]),default:i(()=>[t(c,{subtype:"danger"},{default:i(()=>e[41]||(e[41]=[o(" Alle Einstellungen, angelegte Geräte/Komponenten, Ladepunkte und Fahrzeuge, etc., Tages-, Monats- und Jahresauswertungen sowie das Ladeprotokoll werden unwiederbringlich gelöscht. Auch die Vorkonfiguration im Auslieferungszustand wird gelöscht. Die openWB muss danach komplett neu eingerichtet werden. Die openWB wird hierfür automatisch neu gestartet. Bitte erstelle vor dem Zurücksetzen eine Sicherung! ",-1)])),_:1,__:[41]})]),_:1})])),a.installAssistantActive?w("",!0):(u(),m("form",Ge,[t(S,{title:"Monitoring",subtype:"success",collapsible:!0,collapsed:!0},{footer:i(()=>[t(L,{"form-name":"monitoringForm","hide-defaults":!0,onSave:e[19]||(e[19]=g=>n.$emit("save")),onReset:e[20]||(e[20]=g=>n.$emit("reset"))})]),default:i(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(u(),m("div",Je,[t(c,{subtype:"info"},{default:i(()=>e[43]||(e[43]=[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[43]})])):(u(),m("div",Ke,[t(c,{subtype:"info"},{default:i(()=>e[44]||(e[44]=[o(" Das Monitoring informiert Dich sofort per E-Mail, wenn eine Deiner Komponenten oder Ladepunkte ein Problem hat oder die openWB nicht mehr erreichbar ist. ",-1)])),_:1,__:[44]}),t(O,{class:"mb-2",title:"Anbieter",options:r.monitoringList,"model-value":n.$store.state.mqtt["openWB/optional/monitoring/config"]?n.$store.state.mqtt["openWB/optional/monitoring/config"].type:"","onUpdate:modelValue":e[17]||(e[17]=g=>r.updateSelectedMonitoring(g))},null,8,["options","model-value"]),n.$store.state.mqtt["openWB/optional/monitoring/config"]&&n.$store.state.mqtt["openWB/optional/monitoring/config"].type?(u(),m("div",Ze,[t(U,{monitoring:n.$store.state.mqtt["openWB/optional/monitoring/config"],"onUpdate:configuration":e[18]||(e[18]=g=>r.updateConfiguration("openWB/optional/monitoring/config",g))},null,8,["monitoring"])])):w("",!0)]))]),_:1})]))])):w("",!0)])}const Xe=C(fe,[["render",Qe],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DataManagement.vue"]]),on=Object.freeze(Object.defineProperty({__proto__:null,default:Xe},Symbol.toStringTag,{value:"Module"}));export{Z as B,Xe as D,ae as M,on as a}; diff --git a/web/settings/assets/DataManagement-81c5a852.js b/web/settings/assets/DataManagement-81c5a852.js deleted file mode 100644 index 0b23d1d285..0000000000 --- a/web/settings/assets/DataManagement-81c5a852.js +++ /dev/null @@ -1 +0,0 @@ -import{l as F,a6 as V,a7 as E,F as A,as as q,at as H,au as N,av as $,aw as I}from"./vendor-fortawesome-2b3791bb.js";import{_ as B,C as G}from"./index-0992d19b.js";import{_ as j}from"./dynamic-import-helper-be004503.js";import{_ as C,u as d,l as u,m,x as v,E as i,B as o,F as b,G as t,A as s,a2 as z,a3 as P,N as W,z as w,q as M,M as T,D as J}from"./vendor-36bf053b.js";const K={props:{backupCloud:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})},sendSystemCommand(n,e={}){this.$emit("sendCommand",{command:n,data:e})}}},Z=C(K,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/BackupCloudConfigMixin.vue"]]),Q={name:"BackupCloudConfigFallback",mixins:[Z]},X={class:"backup-cloud-fallback"},Y={key:1};function ee(n,e,a,y,l,r){const p=d("openwb-base-alert"),c=d("openwb-base-textarea");return u(),m("div",X,[Object.keys(n.backupCloud.configuration).length==0?(u(),v(p,{key:0,subtype:"info"},{default:i(()=>[o(' Die Backup-Cloud "'+b(n.backupCloud.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(u(),m("div",Y,[t(p,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für die Backup-Cloud "'+b(n.backupCloud.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),t(c,{title:"Konfiguration",subtype:"json","model-value":n.backupCloud.configuration,"onUpdate:modelValue":e[0]||(e[0]=k=>n.updateConfiguration(k,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[o(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),t(p,{subtype:"info"},{default:i(()=>[s("pre",null,b(JSON.stringify(n.backupCloud.configuration,void 0,2)),1)]),_:1})]))])}const ne=C(Q,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudConfigFallback.vue"]]);F.add(V,E);const te={name:"OpenwbBackupCloudProxy",components:{FontAwesomeIcon:A},props:{backupCloud:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{getBackupCloudComponent(){return console.debug(`loading backup cloud: ${this.backupCloud.type}`),z({loader:()=>j(Object.assign({"./nextcloud/backup_cloud.vue":()=>B(()=>import("./backup_cloud-1f3db513.js"),["assets/backup_cloud-1f3db513.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./nfs/backup_cloud.vue":()=>B(()=>import("./backup_cloud-71423bc2.js"),["assets/backup_cloud-71423bc2.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./onedrive/backup_cloud.vue":()=>B(()=>import("./backup_cloud-9c3ef2b9.js"),["assets/backup_cloud-9c3ef2b9.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./samba/backup_cloud.vue":()=>B(()=>import("./backup_cloud-d6cfecbd.js"),["assets/backup_cloud-d6cfecbd.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.backupCloud.type}/backup_cloud.vue`),errorComponent:ne})},updateConfiguration(n){this.$emit("update:configuration",n)},sendCommand(n){this.$emit("sendCommand",n)}}};function oe(n,e,a,y,l,r){const p=d("font-awesome-icon"),c=d("openwb-base-alert"),k=d("openwb-base-heading");return u(),m(W,null,[a.backupCloud.official?(u(),v(c,{key:0,subtype:"success"},{default:i(()=>[t(p,{icon:["fas","certificate"]}),o(' Das ausgewählte Backup-Cloud Modul "'+b(a.backupCloud.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(u(),v(c,{key:1,subtype:"info"},{default:i(()=>[t(p,{icon:["fas","people-group"]}),o(' Das ausgewählte Backup-Cloud Modul "'+b(a.backupCloud.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),t(k,null,{default:i(()=>[o(' Einstellungen für Backup-Cloud Modul "'+b(a.backupCloud.name)+'" ',1)]),_:1}),(u(),v(P(r.getBackupCloudComponent()),{"backup-cloud":a.backupCloud,"onUpdate:configuration":e[0]||(e[0]=h=>r.updateConfiguration(h)),onSendCommand:e[1]||(e[1]=h=>r.sendCommand(h))},null,40,["backup-cloud"]))],64)}const ie=C(te,[["render",oe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudProxy.vue"]]),se={props:{monitoring:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},ae=C(se,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/MonitoringConfigMixin.vue"]]),re={name:"MonitoringConfigFallback",mixins:[ae]},le={class:"monitoring-fallback"},ue={key:1};function de(n,e,a,y,l,r){const p=d("openwb-base-alert"),c=d("openwb-base-textarea");return u(),m("div",le,[Object.keys(n.monitoring.configuration).length==0?(u(),v(p,{key:0,subtype:"info"},{default:i(()=>[o(' Der Anbieter "'+b(n.monitoring.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(u(),m("div",ue,[t(p,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für den Anbieter "'+b(n.monitoring.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),t(c,{title:"Konfiguration",subtype:"json","model-value":n.monitoring.configuration,"onUpdate:modelValue":e[0]||(e[0]=k=>n.updateConfiguration(k,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[o(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),t(p,{subtype:"info"},{default:i(()=>[s("pre",null,b(JSON.stringify(n.monitoring.configuration,void 0,2)),1)]),_:1})]))])}const pe=C(re,[["render",de],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/OpenwbMonitoringConfigFallback.vue"]]);F.add(V,E);const ce={name:"OpenwbMonitoringProxy",components:{FontAwesomeIcon:A},props:{monitoring:{type:Object,required:!0}},emits:["update:configuration"],methods:{getMonitoringComponent(){return console.debug(`loading monitoring: ${this.monitoring.type}`),z({loader:()=>j(Object.assign({"./zabbix/monitoring.vue":()=>B(()=>import("./monitoring-14acb64f.js"),["assets/monitoring-14acb64f.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.monitoring.type}/monitoring.vue`),errorComponent:pe})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function me(n,e,a,y,l,r){const p=d("font-awesome-icon"),c=d("openwb-base-alert"),k=d("openwb-base-heading");return u(),m(W,null,[a.monitoring.official?(u(),v(c,{key:0,subtype:"success"},{default:i(()=>[t(p,{icon:["fas","certificate"]}),o(' Das ausgewählte Monitoring Modul "'+b(a.monitoring.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(u(),v(c,{key:1,subtype:"info"},{default:i(()=>[t(p,{icon:["fas","people-group"]}),o(' Das ausgewählte Monitoring Modul "'+b(a.monitoring.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),t(k,null,{default:i(()=>[o(' Einstellungen für Modul "'+b(a.monitoring.name)+'" ',1)]),_:1}),(u(),v(P(r.getMonitoringComponent()),{monitoring:a.monitoring,"onUpdate:configuration":e[0]||(e[0]=h=>r.updateConfiguration(h))},null,40,["monitoring"]))],64)}const ge=C(ce,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/OpenwbMonitoringProxy.vue"]]);F.add(q,H,N,$,I);const fe={name:"OpenwbDataManagementView",components:{FontAwesomeIcon:A,OpenwbBackupCloudProxy:ie,OpenwbMonitoringProxy:ge},mixins:[G],props:{installAssistantActive:{type:Boolean,required:!1,default:!1},showBackupCloudSection:{type:Boolean,required:!1,default:!0}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/configurable/backup_clouds","openWB/system/configurable/monitoring","openWB/system/backup_cloud/config","openWB/system/backup_cloud/backup_before_update","openWB/system/device/+/component/+/config","openWB/chargepoint/+/config","openWB/optional/monitoring/config","openWB/vehicle/+/name","openWB/LegacySmartHome/config/get/Devices/+/device_configured","openWB/LegacySmartHome/config/get/Devices/+/device_name"],warningAcknowledged:!1,showRestoreSection:!this.installAssistantActive,selectedRestoreFile:void 0,restoreUploadDone:!1,selectedDataMigrationFile:void 0,dataMigrationUploadDone:!1,dataMigrationConfig:[{sectionName:"Ladepunkte",sectionComponents:[{key:"cp1",label:"Ladepunkt 1",validTypes:["chargePoint"]},{key:"cp2",label:"Ladepunkt 2",validTypes:["chargePoint"]},{key:"cp3",label:"Ladepunkt 3",validTypes:["chargePoint"]},{key:"cp4",label:"Ladepunkt 4",validTypes:["chargePoint"]},{key:"cp5",label:"Ladepunkt 5",validTypes:["chargePoint"]},{key:"cp6",label:"Ladepunkt 6",validTypes:["chargePoint"]},{key:"cp7",label:"Ladepunkt 7",validTypes:["chargePoint"]},{key:"cp8",label:"Ladepunkt 8",validTypes:["chargePoint"]}]},{sectionName:"Zähler",sectionComponents:[{key:"evu",label:"EVU",validTypes:["counter"]},{key:"consumer1",label:"Verbraucher 1",validTypes:["counter"]},{key:"consumer2",label:"Verbraucher 2",validTypes:["counter"]},{key:"consumer3",label:"Verbraucher 3",validTypes:["counter"]}]},{sectionName:"Wechselrichter",sectionComponents:[{key:"pvAll",label:"Wechselrichter (Summe)",validTypes:["inverter"],help:"Die 1.9er Version von openWB speichert lediglich die Summen-Leistung aller Wechselrichter."}]},{sectionName:"Batteriespeicher",sectionComponents:[{key:"bat",label:"Speicher 1",validTypes:["battery"]}]},{sectionName:"Fahrzeuge",sectionComponents:[{key:"ev1",label:"Fahrzeug von Ladepunkt 1",validTypes:["vehicle"]},{key:"ev2",label:"Fahrzeug von Ladepunkt 2",validTypes:["vehicle"]}]},{sectionName:"SmartHome 2.0",sectionComponents:[{key:"sh1",label:"Gerät 1",validTypes:["smartHome"]},{key:"sh2",label:"Gerät 2",validTypes:["smartHome"]},{key:"sh3",label:"Gerät 3",validTypes:["smartHome"]},{key:"sh4",label:"Gerät 4",validTypes:["smartHome"]},{key:"sh5",label:"Gerät 5",validTypes:["smartHome"]},{key:"sh6",label:"Gerät 6",validTypes:["smartHome"]},{key:"sh7",label:"Gerät 7",validTypes:["smartHome"]},{key:"sh8",label:"Gerät 8",validTypes:["smartHome"]},{key:"sh9",label:"Gerät 9",validTypes:["smartHome"]}]}],dataMigrationMapping:{cp1:void 0,cp2:void 0,cp3:void 0,cp4:void 0,cp5:void 0,cp6:void 0,cp7:void 0,cp8:void 0,evu:void 0,pvAll:void 0,bat:void 0,consumer1:void 0,consumer2:void 0,consumer3:void 0,sh1:void 0,sh2:void 0,sh3:void 0,sh4:void 0,sh5:void 0,sh6:void 0,sh7:void 0,sh8:void 0,sh9:void 0,ev1:void 0,ev2:void 0}}},computed:{backupCloudList(){return this.$store.state.mqtt["openWB/system/configurable/backup_clouds"]},componentConfigurations(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")},chargePointOptions(){let n=this.getWildcardTopics("openWB/chargepoint/+/config");var e=[];for(const a of Object.values(n))e.push({value:a.id,text:a.name});return e},counterOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"counter")&&n.push({value:e.id,text:e.name});return n},inverterOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"inverter")&&n.push({value:e.id,text:e.name});return n},monitoringList(){return this.$store.state.mqtt["openWB/system/configurable/monitoring"]},batteryOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"bat")&&n.push({value:e.id,text:e.name});return n},vehicleOptions(){let n=this.getWildcardTopics("openWB/vehicle/+/name");var e=[];for(const[a,y]of Object.entries(n)){let l=parseInt(a.match(/\/(\d\d?)\//)[1]);e.push({value:l,text:y})}return e},smartHomeOptions(){let n=this.getWildcardTopics("openWB/LegacySmartHome/config/get/Devices/+/device_configured");var e=[];for(const[a,y]of Object.entries(n))if(y==1){let l=parseInt(a.match(/\/(\d\d?)\//)[1]);e.push({value:l,text:this.$store.state.mqtt[`openWB/LegacySmartHome/config/get/Devices/${l}/device_name`]})}return e}},methods:{isComponentType(n,e){return n.split("_").includes(e)},getBackupCloudDefaultConfiguration(n){const e=this.backupCloudList.find(a=>a.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for backup cloud type!",n),{})},sendSystemCommand(n,e={}){this.$emit("sendCommand",{command:n,data:e})},getMigrationOptions(n){var e=[{value:void 0,text:"-- nicht übernehmen --"}];return n.includes("chargePoint")&&e.push(...this.chargePointOptions),n.includes("counter")&&e.push(...this.counterOptions),n.includes("inverter")&&e.push(...this.inverterOptions),n.includes("battery")&&e.push(...this.batteryOptions),n.includes("vehicle")&&e.push(...this.vehicleOptions),n.includes("smartHome")&&e.push(...this.smartHomeOptions),e},updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)},updateSelectedBackupCloud(n){this.updateState("openWB/system/backup_cloud/config",n,"type"),this.updateState("openWB/system/backup_cloud/config",this.getBackupCloudDefaultConfiguration(n))},updateSelectedRestoreFile(n){this.selectedRestoreFile=n.target.files[0]},updateSelectedDataMigrationFile(n){this.selectedDataMigrationFile=n.target.files[0]},uploadFile(n,e,a){return new Promise(y=>{if(e!==void 0){this.$root.postClientMessage("Hochladen der Datei gestartet.","info");let l=new FormData;l.append("file",e),l.append("target",n),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/uploadFile.php",l,{headers:{"Content-Type":"multipart/form-data"}}).then(()=>{this.$root.postClientMessage(a,"success"),y(!0)}).catch(r=>{if(r.response){console.error(r.response.status,r.response.data);var p="Hochladen der Datei fehlgeschlagen!
"+r.response.status+": "+r.response.data}else r.request?(console.error(r.request),p+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",r.message),p+="Es ist ein unbekannter Fehler aufgetreten.");this.$root.postClientMessage(p,"danger"),y(!1)})}else console.error("no file selected for upload"),y(!1)})},getMonitoringDefaultConfiguration(n){const e=this.monitoringList.find(a=>a.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for monitoring type!",n),{})},updateSelectedMonitoring(n){this.updateState("openWB/optional/monitoring/config",n,"type"),this.updateState("openWB/optional/monitoring/config",this.getMonitoringDefaultConfiguration(n))},async uploadRestoreFile(){const n="Die Sicherungsdatei wurde erfolgreich hochgeladen. Sie können die Wiederherstellung jetzt starten.";this.restoreUploadDone=await this.uploadFile("restore",this.selectedRestoreFile,n)},async uploadDataMigrationFile(){const n="Die Sicherungsdatei wurde erfolgreich hochgeladen. Sie können den Import jetzt starten.";this.dataMigrationUploadDone=await this.uploadFile("migrate",this.selectedDataMigrationFile,n)},restoreBackup(){this.sendSystemCommand("restoreBackup"),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})},dataMigration(){this.sendSystemCommand("dataMigration",this.dataMigrationMapping)},factoryReset(){this.sendSystemCommand("factoryReset",{}),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})}}},be={class:"system"},he={key:1},ke={name:"backupForm"},ye={class:"row justify-content-center"},ve={class:"col-md-4 d-flex py-1 justify-content-center"},_e={key:0,name:"restoreForm"},we={class:"input-group"},Ce={class:"input-group-prepend"},Be={class:"input-group-text"},De={class:"custom-file"},Se={id:"input-file-label",class:"custom-file-label",for:"input-file","data-browse":"Suchen"},Me={class:"input-group-append"},We=["disabled"],Oe={class:"row justify-content-center"},Fe={class:"col-md-4 d-flex py-1 justify-content-center"},Ae={key:1},Le={key:0,name:"cloudBackupForm"},Te={key:0},Ve={name:"dataMigrationForm"},Ee={class:"input-group"},je={class:"input-group-prepend"},ze={class:"input-group-text"},Pe={class:"custom-file"},xe={id:"data-migration-file-label",class:"custom-file-label",for:"data-migration-file","data-browse":"Suchen"},Re={class:"input-group-append"},Ue=["disabled"],qe={class:"row justify-content-center"},He={class:"col-md-4 d-flex py-1 justify-content-center"},Ne={key:1,name:"resetForm"},$e={class:"row justify-content-center"},Ie={class:"col-md-4 d-flex py-1 justify-content-center"},Ge={key:2,name:"monitoringForm"},Je={key:0},Ke={key:1},Ze={key:0};function Qe(n,e,a,y,l,r){const p=d("openwb-base-button-group-input"),c=d("openwb-base-alert"),k=d("openwb-base-heading"),h=d("font-awesome-icon"),D=d("openwb-base-click-button"),O=d("openwb-base-select-input"),x=d("openwb-base-button-input"),R=d("openwb-backup-cloud-proxy"),L=d("openwb-base-submit-buttons"),S=d("openwb-base-card"),U=d("openwb-monitoring-proxy");return u(),m("div",be,[a.installAssistantActive?w("",!0):(u(),v(c,{key:0,subtype:"danger"},{default:i(()=>[e[21]||(e[21]=s("h2",null,"Achtung!",-1)),e[22]||(e[22]=s("p",null," Vor allen Aktionen auf dieser Seite ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)),t(p,{modelValue:l.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=g=>l.warningAcknowledged=g),title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"])]),_:1})),l.warningAcknowledged||a.installAssistantActive?(u(),m("div",he,[t(S,{title:"Sicherung / Wiederherstellung",subtype:"success",collapsible:!0,collapsed:!a.installAssistantActive},{default:i(()=>{var g,_;return[s("form",ke,[t(k,null,{default:i(()=>[...e[23]||(e[23]=[o("Sicherung",-1)])]),_:1}),t(c,{subtype:"danger"},{default:i(()=>[...e[24]||(e[24]=[o(' Aktuell können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ',-1)])]),_:1}),t(c,{subtype:"info"},{default:i(()=>[...e[25]||(e[25]=[o(" Nachdem die Sicherung abgeschlossen ist, kann die erstellte Datei über den Link in der Benachrichtigung oder ",-1),s("a",{href:"/openWB/data/backup/",target:"_blank"},"hier",-1),o(" heruntergeladen werden. Beim Herunterladen bitte darauf achten, dass die Datei mit der Endung .tar.gz gespeichert wird. Ggf. das automatische Entpacken des Browsers deaktivieren. ",-1)])]),_:1}),s("div",ye,[s("div",ve,[t(D,{class:"btn-success clickable",onButtonClicked:e[1]||(e[1]=f=>r.sendSystemCommand("createBackup",{use_extended_filename:!0}))},{default:i(()=>[e[26]||(e[26]=o(" Sicherung erstellen ",-1)),t(h,{icon:["fas","archive"]})]),_:1})])])]),l.showRestoreSection?(u(),m("form",_e,[e[31]||(e[31]=s("hr",null,null,-1)),t(k,null,{default:i(()=>[...e[27]||(e[27]=[o("Wiederherstellung",-1)])]),_:1}),t(c,{subtype:"danger"},{default:i(()=>[...e[28]||(e[28]=[o(" Für die Wiederherstellung wird eine aktive Internetverbindung benötigt.",-1),s("br",null,null,-1),o(' Es können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ',-1)])]),_:1}),s("div",we,[s("div",Ce,[s("div",Be,[t(h,{icon:["fas","file-archive"]})])]),s("div",De,[s("input",{id:"input-file",type:"file",class:"custom-file-input",accept:".tar.gz,application/gzip,application/tar+gzip",onChange:e[2]||(e[2]=f=>r.updateSelectedRestoreFile(f))},null,32),s("label",Se,b(l.selectedRestoreFile?l.selectedRestoreFile.name:"Bitte eine Datei auswählen"),1)]),s("div",Me,[s("button",{class:M(["btn",l.selectedRestoreFile?"btn-success clickable":"btn-outline-success"]),disabled:!l.selectedRestoreFile,type:"button",onClick:e[3]||(e[3]=f=>r.uploadRestoreFile())},[e[29]||(e[29]=o(" Hochladen ",-1)),t(h,{icon:["fas","upload"]})],10,We)])]),s("div",Oe,[s("div",Fe,[t(D,{class:M(l.restoreUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!l.restoreUploadDone,onButtonClicked:e[4]||(e[4]=f=>r.restoreBackup())},{default:i(()=>[e[30]||(e[30]=o(" Wiederherstellung starten ",-1)),t(h,{icon:["fas","box-open"]})]),_:1},8,["class","disabled"])])])])):w("",!0),a.installAssistantActive?w("",!0):(u(),m("div",Ae,[a.showBackupCloudSection?(u(),m("form",Le,[e[35]||(e[35]=s("hr",null,null,-1)),t(k,null,{default:i(()=>[...e[32]||(e[32]=[o(" Automatische Sicherung in einen Cloud-Dienst ",-1)])]),_:1}),t(c,{subtype:"info"},{default:i(()=>[...e[33]||(e[33]=[o(" Ist die openWB als primary konfiguriert, wird zwischen Mitternacht und 5:00 Uhr automatisch eine Sicherung erstellt und in den angegebenen Cloud-Dienst (nicht openWB Cloud!) hochgeladen. Ist kein Cloud-Dienst konfiguriert, wird keine automatische Sicherung erstellt. Die automatische Sicherung kann unabhängig von der openWB Cloud genutzt werden.",-1),s("br",null,null,-1),o(" Die manuelle Cloud-Sicherung und -falls aktiviert- die Sicherung vor einem Update werden sowohl von einer primary als auch von einer secondary durchgeführt.",-1),s("br",null,null,-1),o(" Die Anleitung zur Konfiguration des Cloud-Dienstes findest Du ",-1),s("a",{href:"https://github.com/openWB/core/wiki/Cloud-Sicherung",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),o(" . ",-1)])]),_:1}),t(O,{class:"mb-2",title:"Backup-Cloud",options:r.backupCloudList,"model-value":(g=n.$store.state.mqtt["openWB/system/backup_cloud/config"])==null?void 0:g.type,"onUpdate:modelValue":e[5]||(e[5]=f=>r.updateSelectedBackupCloud(f))},null,8,["options","model-value"]),(_=n.$store.state.mqtt["openWB/system/backup_cloud/config"])!=null&&_.type?(u(),m("div",Te,[t(p,{title:"Sicherung vor System-Update",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/system/backup_cloud/backup_before_update"],"onUpdate:modelValue":e[6]||(e[6]=f=>n.updateState("openWB/system/backup_cloud/backup_before_update",f))},{help:i(()=>[...e[34]||(e[34]=[o(" Ist diese Option aktiviert, dann wird vor jedem System-Update automatisch eine Sicherung erstellt und diese in die Backup-Cloud hochgeladen. ",-1)])]),_:1},8,["model-value"]),t(x,{title:"Manuelle Cloud-Sicherung","button-text":"Sicherung erstellen und hochladen",subtype:"success",onButtonClicked:e[7]||(e[7]=f=>r.sendSystemCommand("createCloudBackup",{}))}),t(R,{"backup-cloud":n.$store.state.mqtt["openWB/system/backup_cloud/config"],"onUpdate:configuration":e[8]||(e[8]=f=>r.updateConfiguration("openWB/system/backup_cloud/config",f)),onSendCommand:e[9]||(e[9]=f=>r.sendSystemCommand(f.command,f.args))},null,8,["backup-cloud"])])):w("",!0),t(L,{"form-name":"cloudBackupForm","hide-reset":!0,"hide-defaults":!0,onSave:e[10]||(e[10]=f=>n.$emit("save")),onReset:e[11]||(e[11]=f=>n.$emit("reset")),onDefaults:e[12]||(e[12]=f=>n.$emit("defaults"))})])):w("",!0)]))]}),_:1},8,["collapsed"]),!a.installAssistantActive&&!n.$store.state.mqtt["openWB/general/extern"]?(u(),v(S,{key:0,title:"Datenübernahme",subtype:"success",collapsible:!0,collapsed:!0},{default:i(()=>[s("form",Ve,[t(c,{subtype:"info"},{default:i(()=>[...e[36]||(e[36]=[o(" Hier kann die Sicherung aus den älteren Software Versionen 1.9.303 oder 1.9.304 hochgeladen werden, um vorhandene historische Daten (Diagramme und Ladeprotokolle) sowie Cloud-Daten und Seriennummer in diese Installation zu importieren.",-1),s("br",null,null,-1),o(" Ein Import aus Versionen kleiner als 1.9.303 ist nicht möglich. Falls eine Datenübernahme aus 1.9er Versionen gewünscht ist, muss erst ein Upgrade auf 1.9.303 oder 1.9.304 durchgeführt werden! Die Zuordnung zwischen den alten und neuen Komponenten muss manuell durchgeführt werden. ",-1)])]),_:1}),t(c,{subtype:"danger"},{default:i(()=>[...e[37]||(e[37]=[o(" Die Portierung kann bei vielen historischen Daten von mehreren Jahren durchaus bis zu 30 Minuten dauern. Die openWB in dieser Zeit bitte nicht herunterfahren! Du erhältst eine Meldung, wenn die Datenübernahme abgeschlossen ist.",-1),s("br",null,null,-1),o(" Vor der Datenübernahme unbedingt eine Sicherung erstellen.",-1),s("br",null,null,-1),o(" Die Datenübernahme kann nur durch Einspielen einer Sicherung rückgängig gemacht werden! ",-1)])]),_:1}),s("div",Ee,[s("div",je,[s("div",ze,[t(h,{icon:["fas","file-archive"]})])]),s("div",Pe,[s("input",{id:"data-migration-file",type:"file",class:"custom-file-input",accept:".tar.gz,application/gzip,application/tar+gzip",onChange:e[13]||(e[13]=g=>r.updateSelectedDataMigrationFile(g))},null,32),s("label",xe,b(l.selectedDataMigrationFile?l.selectedDataMigrationFile.name:"Bitte eine Datei auswählen"),1)]),s("div",Re,[s("button",{class:M(["btn",l.selectedDataMigrationFile?"btn-success clickable":"btn-outline-success"]),disabled:!l.selectedDataMigrationFile,type:"button",onClick:e[14]||(e[14]=g=>r.uploadDataMigrationFile())},[e[38]||(e[38]=o(" Hochladen ",-1)),t(h,{icon:["fas","upload"]})],10,Ue)])]),t(k,null,{default:i(()=>[...e[39]||(e[39]=[o(" Zuordnung der Komponenten ",-1)])]),_:1}),(u(!0),m(W,null,T(l.dataMigrationConfig,g=>(u(),m("div",{key:g.sectionName},[t(k,null,{default:i(()=>[o(b(g.sectionName),1)]),_:2},1024),(u(!0),m(W,null,T(g.sectionComponents,_=>(u(),v(O,{key:_.key,modelValue:l.dataMigrationMapping[_.key],"onUpdate:modelValue":f=>l.dataMigrationMapping[_.key]=f,title:_.label,options:r.getMigrationOptions(_.validTypes)},J({_:2},[_.help?{name:"help",fn:i(()=>[o(b(_.help),1)]),key:"0"}:void 0]),1032,["modelValue","onUpdate:modelValue","title","options"]))),128))]))),128)),s("div",qe,[s("div",He,[t(D,{class:M(l.dataMigrationUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!l.dataMigrationUploadDone,onButtonClicked:e[15]||(e[15]=g=>r.dataMigration())},{default:i(()=>[e[40]||(e[40]=o(" Datenübernahme starten ",-1)),t(h,{icon:["fas","box-open"]})]),_:1},8,["class","disabled"])])])])]),_:1})):w("",!0),a.installAssistantActive?w("",!0):(u(),m("form",Ne,[t(S,{title:"Zurücksetzen",subtype:"danger",collapsible:!0,collapsed:!0},{footer:i(()=>[s("div",$e,[s("div",Ie,[t(D,{class:"btn-danger clickable",onButtonClicked:e[16]||(e[16]=g=>r.factoryReset())},{default:i(()=>[t(h,{icon:["fas","skull-crossbones"]}),e[42]||(e[42]=o(" Zurücksetzen ",-1)),t(h,{icon:["fas","skull-crossbones"]})]),_:1})])])]),default:i(()=>[t(c,{subtype:"danger"},{default:i(()=>[...e[41]||(e[41]=[o(" Alle Einstellungen, angelegte Geräte/Komponenten, Ladepunkte und Fahrzeuge, etc., Tages-, Monats- und Jahresauswertungen sowie das Ladeprotokoll werden unwiederbringlich gelöscht. Auch die Vorkonfiguration im Auslieferungszustand wird gelöscht. Die openWB muss danach komplett neu eingerichtet werden. Die openWB wird hierfür automatisch neu gestartet. Bitte erstelle vor dem Zurücksetzen eine Sicherung! ",-1)])]),_:1})]),_:1})])),a.installAssistantActive?w("",!0):(u(),m("form",Ge,[t(S,{title:"Monitoring",subtype:"success",collapsible:!0,collapsed:!0},{footer:i(()=>[t(L,{"form-name":"monitoringForm","hide-defaults":!0,onSave:e[19]||(e[19]=g=>n.$emit("save")),onReset:e[20]||(e[20]=g=>n.$emit("reset"))})]),default:i(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(u(),m("div",Je,[t(c,{subtype:"info"},{default:i(()=>[...e[43]||(e[43]=[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(u(),m("div",Ke,[t(c,{subtype:"info"},{default:i(()=>[...e[44]||(e[44]=[o(" Das Monitoring informiert Dich sofort per E-Mail, wenn eine Deiner Komponenten oder Ladepunkte ein Problem hat oder die openWB nicht mehr erreichbar ist. ",-1)])]),_:1}),t(O,{class:"mb-2",title:"Anbieter",options:r.monitoringList,"model-value":n.$store.state.mqtt["openWB/optional/monitoring/config"]?n.$store.state.mqtt["openWB/optional/monitoring/config"].type:"","onUpdate:modelValue":e[17]||(e[17]=g=>r.updateSelectedMonitoring(g))},null,8,["options","model-value"]),n.$store.state.mqtt["openWB/optional/monitoring/config"]&&n.$store.state.mqtt["openWB/optional/monitoring/config"].type?(u(),m("div",Ze,[t(U,{monitoring:n.$store.state.mqtt["openWB/optional/monitoring/config"],"onUpdate:configuration":e[18]||(e[18]=g=>r.updateConfiguration("openWB/optional/monitoring/config",g))},null,8,["monitoring"])])):w("",!0)]))]),_:1})]))])):w("",!0)])}const Xe=C(fe,[["render",Qe],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DataManagement.vue"]]),on=Object.freeze(Object.defineProperty({__proto__:null,default:Xe},Symbol.toStringTag,{value:"Module"}));export{Z as B,Xe as D,ae as M,on as a}; diff --git a/web/settings/assets/DebugConfig-9a9e00cc.js b/web/settings/assets/DebugConfig-044b24f7.js similarity index 58% rename from web/settings/assets/DebugConfig-9a9e00cc.js rename to web/settings/assets/DebugConfig-044b24f7.js index fd639a06c7..cd4e47e15e 100644 --- a/web/settings/assets/DebugConfig-9a9e00cc.js +++ b/web/settings/assets/DebugConfig-044b24f7.js @@ -1,2 +1,2 @@ -import{C as x}from"./index-0992d19b.js";import{l as B,ac as V,ad as z,k as W,ae as P,g as M,F as T}from"./vendor-fortawesome-2b3791bb.js";import{a as y}from"./vendor-axios-090d6ce2.js";import{_ as F,a4 as N,u as l,l as u,x as g,E as r,q as f,y as L,G as p,z as m,B as h,F as v,A as b,m as C,N as S,M as q}from"./vendor-36bf053b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-sortablejs-32624a33.js";B.add(V,z,W,P,M);const E={name:"OpenwbLogCard",components:{FontAwesomeIcon:T},props:{title:{type:String,required:!0},logFile:{type:String,required:!0}},data(){return{logData:"-- noch nicht geladen --",loading:!1,foundFiles:[],selectedVariant:"",copyMessage:!1,pastebinLink:""}},methods:{async getFilePromise(o,e=!1,n=!0,a=!1){return y[a?"head":"get"](location.protocol+"//"+location.host+o).then(s=>{if(a)return!0;{const d=s.data;return d||"log file is empty"}}).catch(s=>{if(!n)throw s;return s.response?s.response.status==404&&e?a?!1:"":`A 404 is expected if running node.js dev server! -`+s.response.status+" "+s.response.statusText+": "+s.response.request.responseURL:s.request?s.request:s.message})},async loadLog(o,e=""){this.logData="wird aktualisiert...",this.loading=!0,this.pastebinLink="";var n="";e&&(o=o.replace(".log",`.${e}.log`));for(let t=4;t>=1;t--){const s=await this.getFilePromise(o+"."+t,!0);n+=s}const a=await this.getFilePromise(o);n+=a,this.logData=n,this.loading=!1},async checkLatestLog(o){const e=[{suffix:"latest",title:"Letzten 3 Durchläufe",description:"Logs der Letzten 3 Durchläufe laden"},{suffix:"current",title:"Letzter Durchlauf",description:"Logs des letzten Durchlaufs laden"},{suffix:"latest-warning",title:"Letzter Durchlauf mit Warnung oder Fehler",description:"Fehlerprotokoll laden"}];this.foundFiles=[];for(const n of e){const a=o.replace(".log",`.${n.suffix}.log`);try{await this.getFilePromise(a,!1,!1,!0),this.foundFiles.push(n),n.suffix==="latest"&&(this.selectedVariant="latest",console.log("Found latest log file: ",a))}catch(t){console.log(t)}}this.foundFiles.length>0&&this.foundFiles.push({suffix:"",title:"Vollständiges Log",description:"Vollständiges Log laden"})},async onCardExpand(){await this.checkLatestLog(this.logFile),this.loadLog(this.logFile,this.selectedVariant)},copyToClipboard(o=this.logData,e=!0){if(navigator.clipboard&&navigator.clipboard.writeText)navigator.clipboard.writeText(o).then(()=>{e&&this.showCopyMessage()}).catch(n=>{console.error("Fehler beim Kopieren in die Zwischenablage: ",n)});else{const n=document.createElement("textarea");n.value=o,document.body.appendChild(n),n.select();try{document.execCommand("copy"),e&&this.showCopyMessage()}catch(a){console.error("Fehler beim Kopieren in die Zwischenablage: ",a)}document.body.removeChild(n)}},showCopyMessage(){this.copyMessage=!0,this.$root.postClientMessage("Log in die Zwischenablage kopiert.","info"),setTimeout(()=>{this.copyMessage=!1},3e3)},async postToPastebin(){try{const o=N.gzip(this.logData),e=await y.post("https://bytebin.openwb.de/post",o,{headers:{"Content-Type":"text/log","Content-Encoding":"gzip"}});if(!e.data.key)throw new Error("Key is missing in the response");const n=e.data.key;this.pastebinLink=`https://paste.openwb.de/${n}`,console.log("Pastebin link:",this.pastebinLink),this.copyToClipboard(this.pastebinLink,!1),this.$root.postClientMessage(`Log an Pastebin gesendet.
Key: ${n}
Der Link wurde in die Zwischenablage kopiert.`,"info")}catch(o){console.error("Fehler beim Posten auf paste.openwb.de: ",o)}}}},I={class:"log-data mb-0"};function A(o,e,n,a,t,s){const d=l("font-awesome-icon"),c=l("openwb-base-avatar"),w=l("openwb-base-select-input"),_=l("openwb-base-alert"),k=l("openwb-base-card");return u(),g(k,{title:n.title,class:"log-card",collapsible:!0,collapsed:!0,onExpanded:s.onCardExpand},{actions:r(({collapsed:i})=>[i?m("",!0):(u(),g(c,{key:0,class:f(["clickable mr-1",t.pastebinLink?"bg-success":"bg-info"]),onClick:L(s.postToPastebin,["stop"])},{default:r(()=>[p(d,{icon:t.pastebinLink?["fas","check"]:["fas","share-nodes"],title:t.pastebinLink?"Link in die Zwischenablage kopiert":"Log auf paste.openwb.de teilen"},null,8,["icon","title"])]),_:1},8,["class","onClick"])),i?m("",!0):(u(),g(c,{key:1,class:f(["clickable mr-1",t.copyMessage?"bg-success":"bg-info"]),onClick:e[0]||(e[0]=L(D=>s.copyToClipboard(t.logData),["stop"]))},{default:r(()=>[p(d,{icon:t.copyMessage?["fas","check"]:["fas","clipboard"],title:t.copyMessage?"Log in die Zwischenablage kopiert":"Log kopieren"},null,8,["icon","title"])]),_:1},8,["class"])),i?m("",!0):(u(),g(c,{key:2,class:f(["clickable",t.loading?"bg-success":"bg-info"]),onClick:e[1]||(e[1]=L(D=>s.loadLog(n.logFile,t.selectedVariant),["stop"]))},{default:r(()=>[p(d,{class:f(t.loading?"fa-spin-pulse":""),icon:t.loading?["fas","spinner"]:["fas","file-download"],title:"Log laden/aktualisieren"},null,8,["class","icon"])]),_:1},8,["class"]))]),default:r(()=>[t.foundFiles.length>0?(u(),g(_,{key:0,subtype:"info"},{default:r(()=>[h(" Im "+v(n.title)+" stehen unterschiedliche Logauszüge zur Verfügung. Standardmässig werden Logs der letzten 3 Durchläufe geladen, für viele Fälle sollte dies ausreichen. Optional kann auch das gesamte Log geladen werden.",1),e[4]||(e[4]=b("br",null,null,-1)),e[5]||(e[5]=h(" Wurde eine Warnung oder ein Fehler protokolliert steht zusätzlich der letzte Durchlauf mit Warnungen und Fehlern zur Verfügung.",-1)),e[6]||(e[6]=b("br",null,null,-1)),p(w,{modelValue:t.selectedVariant,"onUpdate:modelValue":e[2]||(e[2]=i=>t.selectedVariant=i),title:"Logfile",required:"",options:t.foundFiles.map(i=>({value:i.suffix,text:i.title})),onChange:e[3]||(e[3]=i=>s.loadLog(n.logFile,t.selectedVariant))},null,8,["modelValue","options"])]),_:1})):m("",!0),b("pre",I,v(t.logData),1)]),_:1},8,["title","onExpanded"])}const K=F(E,[["render",A],["__scopeId","data-v-a320c3d6"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/debug_config/LogCard.vue"]]),Z={name:"OpenwbDebuggingView",components:{OpenwbLogCard:K},mixins:[x],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/debug_level"],logFiles:[{title:"Main-Log",fileName:"/openWB/ramdisk/main.log"},{title:"Log des internen Ladepunktes",fileName:"/openWB/ramdisk/internal_chargepoint.log"},{title:"MQTT-Log",fileName:"/openWB/ramdisk/mqtt.log"},{title:"SoC-Log",fileName:"/openWB/ramdisk/soc.log"},{title:"Protokoll des letzten Updates",fileName:"/openWB/data/log/update.log"},{title:"Protokoll des Remote-Dienstes",fileName:"/openWB/ramdisk/remote_support.log"},{title:"Protokoll des SmartHome Dienstes",fileName:"/openWB/ramdisk/smarthome.log"},{title:"Protokoll der Datenmigration",fileName:"/openWB/data/log/data_migration.log"},{title:"Protokoll über die Schaltvorgänge von steuerbaren Verbrauchseinrichtungen",fileName:"/openWB/data/log/steuve_control_command.log"},{title:"Thread-Errors",fileName:"/openWB/ramdisk/thread_errors.log"}]}}},O={class:"debugging"},R={name:"debugConfigForm"};function U(o,e,n,a,t,s){const d=l("openwb-base-button-group-input"),c=l("openwb-base-alert"),w=l("openwb-base-card"),_=l("openwb-base-submit-buttons"),k=l("openwb-log-card");return u(),C("div",O,[b("form",R,[p(w,{title:"Protokollierung"},{default:r(()=>[p(d,{title:"Debug Level",buttons:[{buttonValue:30,text:"Warnungen und Fehler"},{buttonValue:20,text:"Info"},{buttonValue:10,text:"Details"}],"model-value":o.$store.state.mqtt["openWB/system/debug_level"],"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateState("openWB/system/debug_level",i))},{help:r(()=>[...e[4]||(e[4]=[h(' Wenn der Debug Level auf "Info" oder "Details" gesetzt wird, werden mehr Informationen in die Logdateien geschrieben. Im normalen Betrieb sollte immer "Warnungen und Fehler" gewählt werden, um die Schreibvorgänge auf der SD-Karte zu reduzieren. ',-1)])]),_:1},8,["model-value"]),p(c,{subtype:"warning"},{default:r(()=>[...e[5]||(e[5]=[h(' Achtung! In den Einstellungen "Info" und "Details" können in den Logdateien sensible Daten wie Benutzernamen und Passwörter enthalten sein. Diese sollten vor dem Veröffentlichen z.B. im Forum unkenntlich gemacht werden. Private IP-Adressen (z.B. 192.168.x.x) müssen nicht maskiert werden, da diese nicht über das Internet erreichbar sind. ',-1)])]),_:1})]),_:1}),p(_,{"form-name":"debugConfigForm",onSave:e[1]||(e[1]=i=>o.$emit("save")),onReset:e[2]||(e[2]=i=>o.$emit("reset")),onDefaults:e[3]||(e[3]=i=>o.$emit("defaults"))})]),(u(!0),C(S,null,q(t.logFiles,i=>(u(),g(k,{key:i.fileName,title:i.title,"log-file":i.fileName},null,8,["title","log-file"]))),128))])}const H=F(Z,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DebugConfig.vue"]]);export{H as default}; +import{C as x}from"./index-8dd8e083.js";import{l as B,ac as V,ad as z,k as W,ae as P,g as M,F as T}from"./vendor-fortawesome-a02b6813.js";import{a as y}from"./vendor-axios-ac33d60c.js";import{_ as F,a4 as N,u as l,l as u,x as g,E as r,q as f,y as L,G as p,z as m,B as h,F as v,A as b,m as C,N as S,M as q}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-sortablejs-0eb84ec8.js";B.add(V,z,W,P,M);const E={name:"OpenwbLogCard",components:{FontAwesomeIcon:T},props:{title:{type:String,required:!0},logFile:{type:String,required:!0}},data(){return{logData:"-- noch nicht geladen --",loading:!1,foundFiles:[],selectedVariant:"",copyMessage:!1,pastebinLink:""}},methods:{async getFilePromise(o,e=!1,n=!0,a=!1){return y[a?"head":"get"](location.protocol+"//"+location.host+o).then(s=>{if(a)return!0;{const d=s.data;return d||"log file is empty"}}).catch(s=>{if(!n)throw s;return s.response?s.response.status==404&&e?a?!1:"":`A 404 is expected if running node.js dev server! +`+s.response.status+" "+s.response.statusText+": "+s.response.request.responseURL:s.request?s.request:s.message})},async loadLog(o,e=""){this.logData="wird aktualisiert...",this.loading=!0,this.pastebinLink="";var n="";e&&(o=o.replace(".log",`.${e}.log`));for(let t=4;t>=1;t--){const s=await this.getFilePromise(o+"."+t,!0);n+=s}const a=await this.getFilePromise(o);n+=a,this.logData=n,this.loading=!1},async checkLatestLog(o){const e=[{suffix:"latest",title:"Letzten 3 Durchläufe",description:"Logs der Letzten 3 Durchläufe laden"},{suffix:"current",title:"Letzter Durchlauf",description:"Logs des letzten Durchlaufs laden"},{suffix:"latest-warning",title:"Letzter Durchlauf mit Warnung oder Fehler",description:"Fehlerprotokoll laden"}];this.foundFiles=[];for(const n of e){const a=o.replace(".log",`.${n.suffix}.log`);try{await this.getFilePromise(a,!1,!1,!0),this.foundFiles.push(n),n.suffix==="latest"&&(this.selectedVariant="latest",console.log("Found latest log file: ",a))}catch(t){console.log(t)}}this.foundFiles.length>0&&this.foundFiles.push({suffix:"",title:"Vollständiges Log",description:"Vollständiges Log laden"})},async onCardExpand(){await this.checkLatestLog(this.logFile),this.loadLog(this.logFile,this.selectedVariant)},copyToClipboard(o=this.logData,e=!0){if(navigator.clipboard&&navigator.clipboard.writeText)navigator.clipboard.writeText(o).then(()=>{e&&this.showCopyMessage()}).catch(n=>{console.error("Fehler beim Kopieren in die Zwischenablage: ",n)});else{const n=document.createElement("textarea");n.value=o,document.body.appendChild(n),n.select();try{document.execCommand("copy"),e&&this.showCopyMessage()}catch(a){console.error("Fehler beim Kopieren in die Zwischenablage: ",a)}document.body.removeChild(n)}},showCopyMessage(){this.copyMessage=!0,this.$root.postClientMessage("Log in die Zwischenablage kopiert.","info"),setTimeout(()=>{this.copyMessage=!1},3e3)},async postToPastebin(){try{const o=N.gzip(this.logData),e=await y.post("https://bytebin.openwb.de/post",o,{headers:{"Content-Type":"text/log","Content-Encoding":"gzip"}});if(!e.data.key)throw new Error("Key is missing in the response");const n=e.data.key;this.pastebinLink=`https://paste.openwb.de/${n}`,console.log("Pastebin link:",this.pastebinLink),this.copyToClipboard(this.pastebinLink,!1),this.$root.postClientMessage(`Log an Pastebin gesendet.
Key: ${n}
Der Link wurde in die Zwischenablage kopiert.`,"info")}catch(o){console.error("Fehler beim Posten auf paste.openwb.de: ",o)}}}},I={class:"log-data mb-0"};function A(o,e,n,a,t,s){const d=l("font-awesome-icon"),c=l("openwb-base-avatar"),_=l("openwb-base-select-input"),w=l("openwb-base-alert"),k=l("openwb-base-card");return u(),g(k,{title:n.title,class:"log-card",collapsible:!0,collapsed:!0,onExpanded:s.onCardExpand},{actions:r(({collapsed:i})=>[i?m("",!0):(u(),g(c,{key:0,class:f(["clickable mr-1",t.pastebinLink?"bg-success":"bg-info"]),onClick:L(s.postToPastebin,["stop"])},{default:r(()=>[p(d,{icon:t.pastebinLink?["fas","check"]:["fas","share-nodes"],title:t.pastebinLink?"Link in die Zwischenablage kopiert":"Log auf paste.openwb.de teilen"},null,8,["icon","title"])]),_:1},8,["class","onClick"])),i?m("",!0):(u(),g(c,{key:1,class:f(["clickable mr-1",t.copyMessage?"bg-success":"bg-info"]),onClick:e[0]||(e[0]=L(D=>s.copyToClipboard(t.logData),["stop"]))},{default:r(()=>[p(d,{icon:t.copyMessage?["fas","check"]:["fas","clipboard"],title:t.copyMessage?"Log in die Zwischenablage kopiert":"Log kopieren"},null,8,["icon","title"])]),_:1},8,["class"])),i?m("",!0):(u(),g(c,{key:2,class:f(["clickable",t.loading?"bg-success":"bg-info"]),onClick:e[1]||(e[1]=L(D=>s.loadLog(n.logFile,t.selectedVariant),["stop"]))},{default:r(()=>[p(d,{class:f(t.loading?"fa-spin-pulse":""),icon:t.loading?["fas","spinner"]:["fas","file-download"],title:"Log laden/aktualisieren"},null,8,["class","icon"])]),_:1},8,["class"]))]),default:r(()=>[t.foundFiles.length>0?(u(),g(w,{key:0,subtype:"info"},{default:r(()=>[h(" Im "+v(n.title)+" stehen unterschiedliche Logauszüge zur Verfügung. Standardmässig werden Logs der letzten 3 Durchläufe geladen, für viele Fälle sollte dies ausreichen. Optional kann auch das gesamte Log geladen werden.",1),e[4]||(e[4]=b("br",null,null,-1)),e[5]||(e[5]=h(" Wurde eine Warnung oder ein Fehler protokolliert steht zusätzlich der letzte Durchlauf mit Warnungen und Fehlern zur Verfügung.",-1)),e[6]||(e[6]=b("br",null,null,-1)),p(_,{modelValue:t.selectedVariant,"onUpdate:modelValue":e[2]||(e[2]=i=>t.selectedVariant=i),title:"Logfile",required:"",options:t.foundFiles.map(i=>({value:i.suffix,text:i.title})),onChange:e[3]||(e[3]=i=>s.loadLog(n.logFile,t.selectedVariant))},null,8,["modelValue","options"])]),_:1,__:[4,5,6]})):m("",!0),b("pre",I,v(t.logData),1)]),_:1},8,["title","onExpanded"])}const K=F(E,[["render",A],["__scopeId","data-v-a320c3d6"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/debug_config/LogCard.vue"]]),Z={name:"OpenwbDebuggingView",components:{OpenwbLogCard:K},mixins:[x],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/debug_level"],logFiles:[{title:"Main-Log",fileName:"/openWB/ramdisk/main.log"},{title:"Log des internen Ladepunktes",fileName:"/openWB/ramdisk/internal_chargepoint.log"},{title:"MQTT-Log",fileName:"/openWB/ramdisk/mqtt.log"},{title:"SoC-Log",fileName:"/openWB/ramdisk/soc.log"},{title:"Protokoll des letzten Updates",fileName:"/openWB/data/log/update.log"},{title:"Protokoll des Remote-Dienstes",fileName:"/openWB/ramdisk/remote_support.log"},{title:"Protokoll des SmartHome Dienstes",fileName:"/openWB/ramdisk/smarthome.log"},{title:"Protokoll der Datenmigration",fileName:"/openWB/data/log/data_migration.log"},{title:"Protokoll über die Schaltvorgänge von steuerbaren Verbrauchseinrichtungen",fileName:"/openWB/data/log/steuve_control_command.log"},{title:"Thread-Errors",fileName:"/openWB/ramdisk/thread_errors.log"}]}}},O={class:"debugging"},R={name:"debugConfigForm"};function U(o,e,n,a,t,s){const d=l("openwb-base-button-group-input"),c=l("openwb-base-alert"),_=l("openwb-base-card"),w=l("openwb-base-submit-buttons"),k=l("openwb-log-card");return u(),C("div",O,[b("form",R,[p(_,{title:"Protokollierung"},{default:r(()=>[p(d,{title:"Debug Level",buttons:[{buttonValue:30,text:"Warnungen und Fehler"},{buttonValue:20,text:"Info"},{buttonValue:10,text:"Details"}],"model-value":o.$store.state.mqtt["openWB/system/debug_level"],"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateState("openWB/system/debug_level",i))},{help:r(()=>e[4]||(e[4]=[h(' Wenn der Debug Level auf "Info" oder "Details" gesetzt wird, werden mehr Informationen in die Logdateien geschrieben. Im normalen Betrieb sollte immer "Warnungen und Fehler" gewählt werden, um die Schreibvorgänge auf der SD-Karte zu reduzieren. ',-1)])),_:1},8,["model-value"]),p(c,{subtype:"warning"},{default:r(()=>e[5]||(e[5]=[h(' Achtung! In den Einstellungen "Info" und "Details" können in den Logdateien sensible Daten wie Benutzernamen und Passwörter enthalten sein. Diese sollten vor dem Veröffentlichen z.B. im Forum unkenntlich gemacht werden. Private IP-Adressen (z.B. 192.168.x.x) müssen nicht maskiert werden, da diese nicht über das Internet erreichbar sind. ',-1)])),_:1,__:[5]})]),_:1}),p(w,{"form-name":"debugConfigForm",onSave:e[1]||(e[1]=i=>o.$emit("save")),onReset:e[2]||(e[2]=i=>o.$emit("reset")),onDefaults:e[3]||(e[3]=i=>o.$emit("defaults"))})]),(u(!0),C(S,null,q(t.logFiles,i=>(u(),g(k,{key:i.fileName,title:i.title,"log-file":i.fileName},null,8,["title","log-file"]))),128))])}const H=F(Z,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DebugConfig.vue"]]);export{H as default}; diff --git a/web/settings/assets/GeneralChargeConfig-0f9eaa85.js b/web/settings/assets/GeneralChargeConfig-0f9eaa85.js deleted file mode 100644 index f14da94954..0000000000 --- a/web/settings/assets/GeneralChargeConfig-0f9eaa85.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as m,C as L}from"./index-0992d19b.js";import{_ as O}from"./dynamic-import-helper-be004503.js";import{l as q,a6 as D,a7 as F,F as A}from"./vendor-fortawesome-2b3791bb.js";import{_ as B,u,l as a,m as s,x as b,E as r,B as i,F as h,G as n,A as d,a2 as U,a3 as N,N as I,z as y}from"./vendor-36bf053b.js";const M={props:{electricityTariff:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},R=B(M,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/ElectricityTariffConfigMixin.vue"]]),Z={name:"ElectricityTariffConfigFallback",mixins:[R]},H={class:"backup-cloud-fallback"},j={key:1};function G(t,e,g,W,z,f){const l=u("openwb-base-alert"),p=u("openwb-base-textarea");return a(),s("div",H,[Object.keys(t.electricityTariff.configuration).length==0?(a(),b(l,{key:0,subtype:"info"},{default:r(()=>[i(' Der Anbieter "'+h(t.electricityTariff.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(a(),s("div",j,[n(l,{subtype:"warning"},{default:r(()=>[i(' Es wurde keine Konfigurationsseite für den Anbieter "'+h(t.electricityTariff.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(p,{title:"Konfiguration",subtype:"json","model-value":t.electricityTariff.configuration,"onUpdate:modelValue":e[0]||(e[0]=_=>t.updateConfiguration(_,"configuration"))},{help:r(()=>[...e[1]||(e[1]=[i(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),n(l,{subtype:"info"},{default:r(()=>[d("pre",null,h(JSON.stringify(t.electricityTariff.configuration,void 0,2)),1)]),_:1})]))])}const J=B(Z,[["render",G],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/OpenwbElectricityTariffConfigFallback.vue"]]);q.add(D,F);const K={name:"OpenwbElectricityTariffProxy",components:{FontAwesomeIcon:A},props:{electricityTariff:{type:Object,required:!0}},emits:["update:configuration"],methods:{getTariffComponent(){return console.debug(`loading electricity tariff: ${this.electricityTariff.type}`),U({loader:()=>O(Object.assign({"./awattar/electricity_tariff.vue":()=>m(()=>import("./electricity_tariff-1c057408.js"),["assets/electricity_tariff-1c057408.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/index-0992d19b.js","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./energycharts/electricity_tariff.vue":()=>m(()=>import("./electricity_tariff-6043bf73.js"),["assets/electricity_tariff-6043bf73.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/index-0992d19b.js","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fixed_hours/electricity_tariff.vue":()=>m(()=>import("./electricity_tariff-b47c4656.js"),["assets/electricity_tariff-b47c4656.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js","assets/electricity_tariff-48648707.css"]),"./octopusenergy/electricity_tariff.vue":()=>m(()=>import("./electricity_tariff-bb9b303f.js"),["assets/electricity_tariff-bb9b303f.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/index-0992d19b.js","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./ostrom/electricity_tariff.vue":()=>m(()=>import("./electricity_tariff-d88859b8.js"),["assets/electricity_tariff-d88859b8.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/index-0992d19b.js","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./rabot/electricity_tariff.vue":()=>m(()=>import("./electricity_tariff-28b48a8b.js"),["assets/electricity_tariff-28b48a8b.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/index-0992d19b.js","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tibber/electricity_tariff.vue":()=>m(()=>import("./electricity_tariff-1a8bf599.js"),["assets/electricity_tariff-1a8bf599.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/index-0992d19b.js","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./voltego/electricity_tariff.vue":()=>m(()=>import("./electricity_tariff-88e75454.js"),["assets/electricity_tariff-88e75454.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/index-0992d19b.js","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.electricityTariff.type}/electricity_tariff.vue`),errorComponent:J})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function x(t,e,g,W,z,f){const l=u("font-awesome-icon"),p=u("openwb-base-alert"),_=u("openwb-base-heading");return a(),s(I,null,[g.electricityTariff.official?(a(),b(p,{key:0,subtype:"success"},{default:r(()=>[n(l,{icon:["fas","certificate"]}),i(' Das ausgewählte Modul "'+h(g.electricityTariff.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(a(),b(p,{key:1,subtype:"info"},{default:r(()=>[n(l,{icon:["fas","people-group"]}),i(' Das ausgewählte Modul "'+h(g.electricityTariff.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),n(_,null,{default:r(()=>[i(' Einstellungen für Modul "'+h(g.electricityTariff.name)+'" ',1)]),_:1}),(a(),b(N(f.getTariffComponent()),{"electricity-tariff":g.electricityTariff,"onUpdate:configuration":e[0]||(e[0]=c=>f.updateConfiguration(c))},null,40,["electricity-tariff"]))],64)}const Q=B(K,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/OpenwbElectricityTariffProxy.vue"]]),X={name:"OpenwbGeneralChargeConfigView",components:{OpenwbElectricityTariffProxy:Q},mixins:[L],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/bat/config/power_limit_mode","openWB/bat/config/bat_control_permitted","openWB/bat/get/power_limit_controllable","openWB/general/extern","openWB/general/chargemode_config/phase_switch_delay","openWB/general/chargemode_config/retry_failed_phase_switches","openWB/general/chargemode_config/unbalanced_load","openWB/general/chargemode_config/unbalanced_load_limit","openWB/general/prices/bat","openWB/general/prices/grid","openWB/general/prices/pv","openWB/optional/et/provider","openWB/optional/ocpp/config","openWB/system/configurable/electricity_tariffs"]}},computed:{electricityTariffList(){return this.$store.state.mqtt["openWB/system/configurable/electricity_tariffs"]}},methods:{getElectricityTariffDefaultConfiguration(t){const e=this.electricityTariffList.find(g=>g.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for electricity tariff type!",t),{})},updateSelectedElectricityTariff(t){this.updateState("openWB/optional/et/provider",t,"type"),this.updateState("openWB/optional/et/provider",this.getElectricityTariffDefaultConfiguration(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},Y={class:"generalChargeConfig"},ee={name:"generalChargeConfigForm"},te={key:0},ne={key:1},ie={key:0},re={key:1},oe={key:1},ae={key:0},se={key:1},le={key:0},ue={key:0},de={key:1},pe={key:0},ge={key:1},me={key:0};function fe(t,e,g,W,z,f){const l=u("openwb-base-alert"),p=u("openwb-base-button-group-input"),_=u("openwb-base-range-input"),c=u("openwb-base-number-input"),w=u("openwb-base-card"),k=u("openwb-base-heading"),S=u("openwb-base-select-input"),C=u("openwb-electricity-tariff-proxy"),$=u("openwb-base-text-input"),T=u("openwb-base-submit-buttons");return a(),s("div",Y,[d("form",ee,[n(w,{title:"Allgemein"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",te,[n(l,{subtype:"info"},{default:r(()=>[...e[17]||(e[17]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(a(),s("div",ne,[n(p,{title:"Begrenzung der Schieflast",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"],"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateState("openWB/general/chargemode_config/unbalanced_load",o))},{help:r(()=>[...e[18]||(e[18]=[i(" Wenn diese Option aktiviert ist, werden nicht-dreiphasige Ladevorgänge so geregelt, dass am Netzanschlusspunkt (EVU-Zähler) die eingestellte Grenze für die Schieflast nicht überschritten wird. Hierfür muss der EVU-Zähler einzelne Phasenströme bereitstellen!",-1),d("br",null,null,-1),i(' Weiterhin müssen bei den Ladepunkten sowie Fahrzeugen sämtliche Angaben zur Anzahl angeschlossener/unterstützter Phasen und der Phasenrotation hinterlegt werden, damit der Regelung bekannt ist, welcher Ladevorgang welche Phase am Netzanschluss beeinflusst. siehe "Konfiguration - Ladepunkte -> elektrischer Anschluss - Phase 1" und "Konfiguration - Fahrzeuge -> Fahrzeug-Profile" ',-1)])]),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"]?(a(),b(_,{key:0,title:"Erlaubte Schieflast",min:10,max:32,step:1,unit:"A","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load_limit"],"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateState("openWB/general/chargemode_config/unbalanced_load_limit",o))},{help:r(()=>[...e[19]||(e[19]=[i(" Hiermit wird festgelegt, welche Schieflast am Netzanschlusspunkt erlaubt ist. Bei Überschreitung werden gezielt einzelne Ladevorgänge in der Leistung begrenzt. ",-1)])]),_:1},8,["model-value"])):y("",!0),n(p,{title:"Phasenumschaltung wiederholt anstoßen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/retry_failed_phase_switches"],"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateState("openWB/general/chargemode_config/retry_failed_phase_switches",o))},{help:r(()=>[...e[20]||(e[20]=[i(" Wenn diese Option aktiviert ist, werden bis zu zwei Umschaltversuche vorgenommen, wenn die vorgegebene und genutzte Phasenzahl nicht übereinstimmen. Wird die Option deaktiviert, wird nur eine Umschaltung durchgeführt.",-1),d("br",null,null,-1),i(" Die gezählten Fehlversuche werden beim nächsten Wechsel des Lademodus oder mit dem Abstecken zurückgesetzt. ",-1)])]),_:1},8,["model-value"]),n(c,{title:"Pufferzeit zwischen automat. Phasenumschaltungen",unit:"Min.",min:5,max:180,step:1,"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/phase_switch_delay"],"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateState("openWB/general/chargemode_config/phase_switch_delay",o))},{help:r(()=>[...e[21]||(e[21]=[i(" Um zu viele Umschaltungen zu vermeiden, wird mindestens die hier eingestellte Zeit zwischen zwei Umschaltungen abgewartet. Das Umschalten auf mehrphasiges Laden erfolgt nur, wenn mit der maximalen Stromstärke geladen wird und genug Leistung für mehrphasiges Laden zur Verfügung steht. Auf einphasiges Laden wird zurückgeschaltet, wenn auf die minimale Stromstärke heruntergeregelt wurde. Die Verzögerung wird nur bei der automatischen Phasenumschaltung bei Überschuss-Laden abgewartet.",-1),d("br",null,null,-1),i(" Ist ausreichend Überschuss vorhanden, wird beim Ladestart die Umschaltverzögerung nicht abgewartet, sondern direkt mit mehrphasiger Ladung begonnen. ",-1)])]),_:1},8,["model-value"])]))]),_:1}),n(w,{title:"Ladekosten"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",ie,[n(l,{subtype:"info"},{default:r(()=>[...e[22]||(e[22]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(a(),s("div",re,[n(k,{class:"mt-0"},{help:r(()=>[...e[23]||(e[23]=[i(" Zur Berechnung der Ladekosten im Lade-Protokoll werden stundenweise die Anteile der Stromquellen (Speicher, Netz, PV) berechnet und mit den hier angegebenen Preisen multipliziert.",-1),d("br",null,null,-1),i(" Ist die Abrechnung über das Ladeprotokoll, z.B. mit dem Arbeitgeber, vereinbart, ist bei allen drei Feldern der vereinbarte Preis einzutragen. ",-1)])]),default:r(()=>[e[24]||(e[24]=i(" Berechnung der Ladekosten ",-1))]),_:1}),t.$store.state.mqtt["openWB/optional/et/provider"]&&t.$store.state.mqtt["openWB/optional/et/provider"].type?(a(),b(l,{key:0,subtype:"info"},{default:r(()=>[...e[25]||(e[25]=[i(" Für den Netzbezug wird der dynamische Strompreis des Anbieters für variable Stromtarife verwendet. Wenn keine dynamischen Strompreise abgefragt werden können, wird der eingetragene Preis für den Netzbezug verwendet. ",-1)])]),_:1})):y("",!0),n(c,{title:"Preis für Netzbezug",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/general/prices/grid"]*1e5,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateState("openWB/general/prices/grid",parseFloat((o/1e5).toFixed(7))))},null,8,["model-value"]),n(c,{title:"Preis für Speicherentladung",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/general/prices/bat"]*1e5,"onUpdate:modelValue":e[5]||(e[5]=o=>t.updateState("openWB/general/prices/bat",parseFloat((o/1e5).toFixed(7))))},null,8,["model-value"]),n(c,{title:"Preis für PV-Strom",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/general/prices/pv"]*1e5,"onUpdate:modelValue":e[6]||(e[6]=o=>t.updateState("openWB/general/prices/pv",parseFloat((o/1e5).toFixed(7))))},null,8,["model-value"]),e[28]||(e[28]=d("hr",null,null,-1)),n(k,null,{default:r(()=>[...e[26]||(e[26]=[i(" Variable Stromtarife ",-1)])]),_:1}),n(l,{subtype:"info"},{default:r(()=>[...e[27]||(e[27]=[i(" Bei Sofort- und Zeitladen wird nur geladen, wenn der Strompreis unter dem angegebenen maximalen Strompreis liegt. Für Zielladen wird die Ladedauer ermittelt und dann zu den günstigsten Stunden geladen.",-1),d("br",null,null,-1),i(" Wenn keine Preise abgefragt werden können, wird bei Sofort- und Zeitladen immer geladen und bei Zielladen zunächst mit PV-Überschuss und zum Erreichen des Zieltermins mit Netzstrom. ",-1)])]),_:1}),n(S,{class:"mb-2",title:"Anbieter",options:f.electricityTariffList,"model-value":t.$store.state.mqtt["openWB/optional/et/provider"]?t.$store.state.mqtt["openWB/optional/et/provider"].type:"","onUpdate:modelValue":e[7]||(e[7]=o=>f.updateSelectedElectricityTariff(o))},null,8,["options","model-value"]),t.$store.state.mqtt["openWB/optional/et/provider"]&&t.$store.state.mqtt["openWB/optional/et/provider"].type?(a(),s("div",oe,[n(C,{"electricity-tariff":t.$store.state.mqtt["openWB/optional/et/provider"],"onUpdate:configuration":e[8]||(e[8]=o=>f.updateConfiguration("openWB/optional/et/provider",o))},null,8,["electricity-tariff"])])):y("",!0)]))]),_:1}),n(w,{title:"Optional"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",ae,[n(l,{subtype:"info"},{default:r(()=>[...e[29]||(e[29]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(a(),s("div",se,[n(l,{subtype:"info",class:"mb-3"},{default:r(()=>[e[30]||(e[30]=d("p",null,[i(" Die aktive Speichersteuerung durch openWB basiert auf öffentlich zugänglichen Informationen zu den verschiedenen Speichersystemen. Diese können auch nicht herstellerseitig freigegebene Informationen beinhalten."),d("br"),i(' Fragen bezüglich der Gewährleistung und Hardwarekompatibilität sind vor der Nutzung mit dem Hersteller zu klären. openWB übernimmt keine Haftung für Schäden, welche aus der Nutzung der "aktiven Speichersteuerung" entstehen. ')],-1)),n(p,{title:"Hinweise zur aktiven Speichersteuerung gelesen und akzeptiert",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/bat/config/bat_control_permitted"],"onUpdate:modelValue":e[9]||(e[9]=o=>t.updateState("openWB/bat/config/bat_control_permitted",o))},null,8,["model-value"])]),_:1}),t.$store.state.mqtt["openWB/bat/config/bat_control_permitted"]===!0?(a(),s("div",le,[n(k,{class:"mt-0"},{default:r(()=>[...e[31]||(e[31]=[i(" Speicher-Entladung ins Fahrzeug steuern ",-1)])]),_:1}),t.$store.state.mqtt["openWB/bat/get/power_limit_controllable"]===!0?(a(),s("div",ue,[n(p,{title:"Speicher-Entladung",buttons:[{buttonValue:"no_limit",text:"immer"},{buttonValue:"limit_stop",text:"gesperrt, wenn Fahrzeug lädt"},{buttonValue:"limit_to_home_consumption",text:"für Hausverbrauch"}],"model-value":t.$store.state.mqtt["openWB/bat/config/power_limit_mode"],"onUpdate:modelValue":e[10]||(e[10]=o=>t.updateState("openWB/bat/config/power_limit_mode",o))},{help:r(()=>[...e[32]||(e[32]=[i(" Wenn das Entladen des Speichers immer erlaubt ist, wird das Fahrzeug aus dem Speicher geladen anstatt Strom aus dem Netz zu beziehen.",-1),d("br",null,null,-1),i(' Im Modus "gesperrt, wenn Fahrzeug lädt", wird die Entladung nur zugelassen, wenn alle Fahrzeuge im Modus PV-Laden ohne Mindeststrom oder Zielladen mit PV-Überschuss laden.',-1),d("br",null,null,-1),i(' Wenn das Entladen des Speichers auf den Hausverbrauch begrenzt ist und mindestens ein Fahrzeug nicht im Modus PV-Laden ohne Mindeststrom oder Zielladen lädt, wird die Entladung des Speichers in Höhe des Hausverbrauchs zugelassen. Kann die Entladung am Speicher nur komplett gesperrt werden, verhält sich diese Einstellung wie "gesperrt, wenn Fahrzeug lädt".',-1),d("br",null,null,-1),i(" Diese Einstellung übersteuert ggf die Einstellungen zur Speicher-Beachtung im Modus PV-Laden. ",-1)])]),_:1},8,["model-value"])])):(a(),s("div",de,[n(l,{subtype:"info"},{default:r(()=>[...e[33]||(e[33]=[i(" Die Speicher-Entladung ins Fahrzeug kann nicht gesteuert werden, da die Entladeleistung nicht an den/die konfigurierten Speicher übergeben werden kann. ",-1)])]),_:1})]))])):y("",!0)]))]),_:1}),n(w,{title:"OCPP Anbindung"},{default:r(()=>{var o,E,P,V;return[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",pe,[n(l,{subtype:"info"},{default:r(()=>[...e[34]||(e[34]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(a(),s("div",ge,[n(p,{title:"OCPP aktivieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(o=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:o.active,"onUpdate:modelValue":e[11]||(e[11]=v=>t.updateState("openWB/optional/ocpp/config",v,"active"))},null,8,["model-value"]),((E=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:E.active)===!0?(a(),s("div",me,[n(l,{subtype:"info"},{default:r(()=>[...e[35]||(e[35]=[i(" Die Ladepunkte übermitteln den ID-Tag, Heartbeat und den Zählerstand zum Zeitpunkt des Ansteckens, Absteckens und alle 5 Minuten. Eine Steuerung per OCPP ist nicht möglich.",-1),d("br",null,null,-1),i(" Alle Ladepunkte, die ihre Daten an das OCPP-Backend übermitteln sollen, müssen zunächst im OCPP-Backend angelegt werden. Die dort eingetragene Chargebox ID muss in der openWB in den Einstellungen des Ladepunkts eingetragen werden. ",-1)])]),_:1}),n($,{title:"URL des OCPP-Backends",subtype:"url","model-value":(P=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:P.url,"onUpdate:modelValue":e[12]||(e[12]=v=>t.updateState("openWB/optional/ocpp/config",v,"url"))},null,8,["model-value"]),n(S,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"ocpp1.6",text:"OCPP 1.6"},{value:"ocpp2.0.1",text:"OCPP 2.0.1"}],"model-value":(V=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:V.version,"onUpdate:modelValue":e[13]||(e[13]=v=>t.updateState("openWB/optional/ocpp/config",v,"version"))},null,8,["model-value"])])):y("",!0)]))]}),_:1}),n(T,{"form-name":"generalChargeConfigForm",onSave:e[14]||(e[14]=o=>t.$emit("save")),onReset:e[15]||(e[15]=o=>t.$emit("reset")),onDefaults:e[16]||(e[16]=o=>t.$emit("defaults"))})])])}const ce=B(X,[["render",fe],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralChargeConfig.vue"]]),ye=Object.freeze(Object.defineProperty({__proto__:null,default:ce},Symbol.toStringTag,{value:"Module"}));export{R as E,ye as G}; diff --git a/web/settings/assets/GeneralChargeConfig-d70b0d95.js b/web/settings/assets/GeneralChargeConfig-d70b0d95.js new file mode 100644 index 0000000000..2e1154b2e4 --- /dev/null +++ b/web/settings/assets/GeneralChargeConfig-d70b0d95.js @@ -0,0 +1 @@ +import{_ as f,C as q}from"./index-8dd8e083.js";import{_ as D}from"./dynamic-import-helper-be004503.js";import{l as O,a6 as L,a7 as A,F}from"./vendor-fortawesome-a02b6813.js";import{_ as B,u,l as a,m as s,x as _,E as r,B as i,F as h,G as n,A as d,a2 as U,a3 as N,N as I,z as m}from"./vendor-25d394b4.js";const R={props:{electricityTariff:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},Z=B(R,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/ElectricityTariffConfigMixin.vue"]]),j={name:"ElectricityTariffConfigFallback",mixins:[Z]},H={class:"backup-cloud-fallback"},G={key:1};function M(t,e,g,W,z,c){const l=u("openwb-base-alert"),p=u("openwb-base-textarea");return a(),s("div",H,[Object.keys(t.electricityTariff.configuration).length==0?(a(),_(l,{key:0,subtype:"info"},{default:r(()=>[i(' Der Anbieter "'+h(t.electricityTariff.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(a(),s("div",G,[n(l,{subtype:"warning"},{default:r(()=>[i(' Es wurde keine Konfigurationsseite für den Anbieter "'+h(t.electricityTariff.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(p,{title:"Konfiguration",subtype:"json","model-value":t.electricityTariff.configuration,"onUpdate:modelValue":e[0]||(e[0]=v=>t.updateConfiguration(v,"configuration"))},{help:r(()=>e[1]||(e[1]=[i(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),n(l,{subtype:"info"},{default:r(()=>[d("pre",null,h(JSON.stringify(t.electricityTariff.configuration,void 0,2)),1)]),_:1})]))])}const J=B(j,[["render",M],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/OpenwbElectricityTariffConfigFallback.vue"]]);O.add(L,A);const K={name:"OpenwbElectricityTariffProxy",components:{FontAwesomeIcon:F},props:{electricityTariff:{type:Object,required:!0}},emits:["update:configuration"],methods:{getTariffComponent(){return console.debug(`loading electricity tariff: ${this.electricityTariff.type}`),U({loader:()=>D(Object.assign({"./awattar/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-8d854ff1.js"),["assets/electricity_tariff-8d854ff1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-8dd8e083.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./energycharts/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-cf2ab1f8.js"),["assets/electricity_tariff-cf2ab1f8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-8dd8e083.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fixed_hours/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-6a090d74.js"),["assets/electricity_tariff-6a090d74.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js","assets/electricity_tariff-48648707.css"]),"./octopusenergy/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-ae11ea5d.js"),["assets/electricity_tariff-ae11ea5d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-8dd8e083.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./ostrom/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-377f97e7.js"),["assets/electricity_tariff-377f97e7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-8dd8e083.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./rabot/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-1ac1c5ab.js"),["assets/electricity_tariff-1ac1c5ab.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-8dd8e083.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tibber/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-701d2b86.js"),["assets/electricity_tariff-701d2b86.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-8dd8e083.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./voltego/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-7bb00a2f.js"),["assets/electricity_tariff-7bb00a2f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-8dd8e083.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.electricityTariff.type}/electricity_tariff.vue`),errorComponent:J})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function Q(t,e,g,W,z,c){const l=u("font-awesome-icon"),p=u("openwb-base-alert"),v=u("openwb-base-heading");return a(),s(I,null,[g.electricityTariff.official?(a(),_(p,{key:0,subtype:"success"},{default:r(()=>[n(l,{icon:["fas","certificate"]}),i(' Das ausgewählte Modul "'+h(g.electricityTariff.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(a(),_(p,{key:1,subtype:"info"},{default:r(()=>[n(l,{icon:["fas","people-group"]}),i(' Das ausgewählte Modul "'+h(g.electricityTariff.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),n(v,null,{default:r(()=>[i(' Einstellungen für Modul "'+h(g.electricityTariff.name)+'" ',1)]),_:1}),(a(),_(N(c.getTariffComponent()),{"electricity-tariff":g.electricityTariff,"onUpdate:configuration":e[0]||(e[0]=b=>c.updateConfiguration(b))},null,40,["electricity-tariff"]))],64)}const X=B(K,[["render",Q],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/OpenwbElectricityTariffProxy.vue"]]),Y={name:"OpenwbGeneralChargeConfigView",components:{OpenwbElectricityTariffProxy:X},mixins:[q],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/bat/config/power_limit_mode","openWB/bat/config/bat_control_permitted","openWB/bat/get/power_limit_controllable","openWB/general/extern","openWB/general/chargemode_config/phase_switch_delay","openWB/general/chargemode_config/retry_failed_phase_switches","openWB/general/chargemode_config/unbalanced_load","openWB/general/chargemode_config/unbalanced_load_limit","openWB/general/prices/bat","openWB/general/prices/grid","openWB/general/prices/pv","openWB/optional/et/provider","openWB/optional/ocpp/config","openWB/system/configurable/electricity_tariffs"]}},computed:{electricityTariffList(){return this.$store.state.mqtt["openWB/system/configurable/electricity_tariffs"]}},methods:{getElectricityTariffDefaultConfiguration(t){const e=this.electricityTariffList.find(g=>g.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for electricity tariff type!",t),{})},updateSelectedElectricityTariff(t){this.updateState("openWB/optional/et/provider",t,"type"),this.updateState("openWB/optional/et/provider",this.getElectricityTariffDefaultConfiguration(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},x={class:"generalChargeConfig"},ee={name:"generalChargeConfigForm"},te={key:0},ne={key:1},ie={key:0},re={key:1},oe={key:1},ae={key:0},se={key:1},le={key:0},ue={key:0},de={key:0},pe={key:1},ge={key:2},fe={key:1},me={key:0},ce={key:1},be={key:0};function _e(t,e,g,W,z,c){const l=u("openwb-base-alert"),p=u("openwb-base-button-group-input"),v=u("openwb-base-range-input"),b=u("openwb-base-number-input"),w=u("openwb-base-card"),k=u("openwb-base-heading"),S=u("openwb-base-select-input"),V=u("openwb-electricity-tariff-proxy"),C=u("openwb-base-text-input"),T=u("openwb-base-submit-buttons");return a(),s("div",x,[d("form",ee,[n(w,{title:"Allgemein"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",te,[n(l,{subtype:"info"},{default:r(()=>e[17]||(e[17]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[17]})])):(a(),s("div",ne,[n(p,{title:"Begrenzung der Schieflast",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"],"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateState("openWB/general/chargemode_config/unbalanced_load",o))},{help:r(()=>e[18]||(e[18]=[i(" Wenn diese Option aktiviert ist, werden nicht-dreiphasige Ladevorgänge so geregelt, dass am Netzanschlusspunkt (EVU-Zähler) die eingestellte Grenze für die Schieflast nicht überschritten wird. Hierfür muss der EVU-Zähler einzelne Phasenströme bereitstellen!",-1),d("br",null,null,-1),i(' Weiterhin müssen bei den Ladepunkten sowie Fahrzeugen sämtliche Angaben zur Anzahl angeschlossener/unterstützter Phasen und der Phasenrotation hinterlegt werden, damit der Regelung bekannt ist, welcher Ladevorgang welche Phase am Netzanschluss beeinflusst. siehe "Konfiguration - Ladepunkte -> elektrischer Anschluss - Phase 1" und "Konfiguration - Fahrzeuge -> Fahrzeug-Profile" ',-1)])),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"]?(a(),_(v,{key:0,title:"Erlaubte Schieflast",min:10,max:32,step:1,unit:"A","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load_limit"],"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateState("openWB/general/chargemode_config/unbalanced_load_limit",o))},{help:r(()=>e[19]||(e[19]=[i(" Hiermit wird festgelegt, welche Schieflast am Netzanschlusspunkt erlaubt ist. Bei Überschreitung werden gezielt einzelne Ladevorgänge in der Leistung begrenzt. ",-1)])),_:1},8,["model-value"])):m("",!0),n(p,{title:"Phasenumschaltung wiederholt anstoßen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/retry_failed_phase_switches"],"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateState("openWB/general/chargemode_config/retry_failed_phase_switches",o))},{help:r(()=>e[20]||(e[20]=[i(" Wenn diese Option aktiviert ist, werden bis zu zwei Umschaltversuche vorgenommen, wenn die vorgegebene und genutzte Phasenzahl nicht übereinstimmen. Wird die Option deaktiviert, wird nur eine Umschaltung durchgeführt.",-1),d("br",null,null,-1),i(" Die gezählten Fehlversuche werden beim nächsten Wechsel des Lademodus oder mit dem Abstecken zurückgesetzt. ",-1)])),_:1},8,["model-value"]),n(b,{title:"Pufferzeit zwischen automat. Phasenumschaltungen",unit:"Min.",min:5,max:180,step:1,"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/phase_switch_delay"],"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateState("openWB/general/chargemode_config/phase_switch_delay",o))},{help:r(()=>e[21]||(e[21]=[i(" Um zu viele Umschaltungen zu vermeiden, wird mindestens die hier eingestellte Zeit zwischen zwei Umschaltungen abgewartet. Das Umschalten auf mehrphasiges Laden erfolgt nur, wenn mit der maximalen Stromstärke geladen wird und genug Leistung für mehrphasiges Laden zur Verfügung steht. Auf einphasiges Laden wird zurückgeschaltet, wenn auf die minimale Stromstärke heruntergeregelt wurde. Die Verzögerung wird nur bei der automatischen Phasenumschaltung bei Überschuss-Laden abgewartet.",-1),d("br",null,null,-1),i(" Ist ausreichend Überschuss vorhanden, wird beim Ladestart die Umschaltverzögerung nicht abgewartet, sondern direkt mit mehrphasiger Ladung begonnen. ",-1)])),_:1},8,["model-value"])]))]),_:1}),n(w,{title:"Ladekosten"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",ie,[n(l,{subtype:"info"},{default:r(()=>e[22]||(e[22]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[22]})])):(a(),s("div",re,[n(k,{class:"mt-0"},{help:r(()=>e[23]||(e[23]=[i(" Zur Berechnung der Ladekosten im Lade-Protokoll werden stundenweise die Anteile der Stromquellen (Speicher, Netz, PV) berechnet und mit den hier angegebenen Preisen multipliziert.",-1),d("br",null,null,-1),i(" Ist die Abrechnung über das Ladeprotokoll, z.B. mit dem Arbeitgeber, vereinbart, ist bei allen drei Feldern der vereinbarte Preis einzutragen. ",-1)])),default:r(()=>[e[24]||(e[24]=i(" Berechnung der Ladekosten ",-1))]),_:1,__:[24]}),t.$store.state.mqtt["openWB/optional/et/provider"]&&t.$store.state.mqtt["openWB/optional/et/provider"].type?(a(),_(l,{key:0,subtype:"info"},{default:r(()=>e[25]||(e[25]=[i(" Für den Netzbezug wird der dynamische Strompreis des Anbieters für variable Stromtarife verwendet. Wenn keine dynamischen Strompreise abgefragt werden können, wird der eingetragene Preis für den Netzbezug verwendet. ",-1)])),_:1,__:[25]})):m("",!0),n(b,{title:"Preis für Netzbezug",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/general/prices/grid"]*1e5,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateState("openWB/general/prices/grid",parseFloat((o/1e5).toFixed(7))))},null,8,["model-value"]),n(b,{title:"Preis für Speicherentladung",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/general/prices/bat"]*1e5,"onUpdate:modelValue":e[5]||(e[5]=o=>t.updateState("openWB/general/prices/bat",parseFloat((o/1e5).toFixed(7))))},null,8,["model-value"]),n(b,{title:"Preis für PV-Strom",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/general/prices/pv"]*1e5,"onUpdate:modelValue":e[6]||(e[6]=o=>t.updateState("openWB/general/prices/pv",parseFloat((o/1e5).toFixed(7))))},null,8,["model-value"]),e[28]||(e[28]=d("hr",null,null,-1)),n(k,null,{default:r(()=>e[26]||(e[26]=[i(" Variable Stromtarife ",-1)])),_:1,__:[26]}),n(l,{subtype:"info"},{default:r(()=>e[27]||(e[27]=[i(" Bei Sofort- und Zeitladen wird nur geladen, wenn der Strompreis unter dem angegebenen maximalen Strompreis liegt. Für Zielladen wird die Ladedauer ermittelt und dann zu den günstigsten Stunden geladen.",-1),d("br",null,null,-1),i(" Wenn keine Preise abgefragt werden können, wird bei Sofort- und Zeitladen immer geladen und bei Zielladen zunächst mit PV-Überschuss und zum Erreichen des Zieltermins mit Netzstrom. ",-1)])),_:1,__:[27]}),n(S,{class:"mb-2",title:"Anbieter",options:c.electricityTariffList,"model-value":t.$store.state.mqtt["openWB/optional/et/provider"]?t.$store.state.mqtt["openWB/optional/et/provider"].type:"","onUpdate:modelValue":e[7]||(e[7]=o=>c.updateSelectedElectricityTariff(o))},null,8,["options","model-value"]),t.$store.state.mqtt["openWB/optional/et/provider"]&&t.$store.state.mqtt["openWB/optional/et/provider"].type?(a(),s("div",oe,[n(V,{"electricity-tariff":t.$store.state.mqtt["openWB/optional/et/provider"],"onUpdate:configuration":e[8]||(e[8]=o=>c.updateConfiguration("openWB/optional/et/provider",o))},null,8,["electricity-tariff"])])):m("",!0)]))]),_:1}),n(w,{title:"Optional"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",ae,[n(l,{subtype:"info"},{default:r(()=>e[29]||(e[29]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[29]})])):(a(),s("div",se,[n(l,{subtype:"info",class:"mb-3"},{default:r(()=>[e[30]||(e[30]=d("p",null,[i(" Die aktive Speichersteuerung durch openWB basiert auf öffentlich zugänglichen Informationen zu den verschiedenen Speichersystemen. Diese können auch nicht herstellerseitig freigegebene Informationen beinhalten."),d("br"),i(' Fragen bezüglich der Gewährleistung und Hardwarekompatibilität sind vor der Nutzung mit dem Hersteller zu klären. openWB übernimmt keine Haftung für Schäden, welche aus der Nutzung der "aktiven Speichersteuerung" entstehen. ')],-1)),n(p,{title:"Hinweise zur aktiven Speichersteuerung gelesen und akzeptiert",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/bat/config/bat_control_permitted"],"onUpdate:modelValue":e[9]||(e[9]=o=>t.updateState("openWB/bat/config/bat_control_permitted",o))},null,8,["model-value"])]),_:1,__:[30]}),t.$store.state.mqtt["openWB/bat/config/bat_control_permitted"]===!0?(a(),s("div",le,[n(k,{class:"mt-0"},{default:r(()=>e[31]||(e[31]=[i(" Speicher-Entladung ins Fahrzeug steuern ",-1)])),_:1,__:[31]}),t.$store.state.mqtt["openWB/bat/get/power_limit_controllable"]===!0?(a(),s("div",ue,[n(p,{title:"Speichersteuerung",buttons:[{buttonValue:"no_limit",text:"Aus"},{buttonValue:"limit_stop",text:"volle Entladesperre"},{buttonValue:"limit_to_home_consumption",text:"Entladung in Fahrzeuge sperren"}],"model-value":t.$store.state.mqtt["openWB/bat/config/power_limit_mode"],"onUpdate:modelValue":e[10]||(e[10]=o=>t.updateState("openWB/bat/config/power_limit_mode",o))},{help:r(()=>[t.$store.state.mqtt["openWB/bat/config/power_limit_mode"]==="no_limit"?(a(),s("div",de," Der Speicher regelt eigenständig und wird nicht gesteuert. Es greift nur die konfigurierte Speicherbeachtung (Modus-PV). ")):m("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_mode"]==="limit_stop"?(a(),s("div",pe," Die Speicherentladung wird komplett gesperrt, sobald ein Fahrzeug lädt! Alle Verbraucher (Fahrzeuge, Hausverbrauch) werden durch Netzstrom versorgt. ")):m("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_mode"]==="limit_to_home_consumption"?(a(),s("div",ge,' Fahrzeugladung erzeugt Netzbezug statt Speicherentladung. Weitere Verbraucher (bspw. Hausverbrauch) werden durch den Speicher ausgeglichen. Kann die Entladung am Speicher nur komplett gesperrt werden, verhält sich diese Einstellung wie "volle Entladesperre". ')):m("",!0)]),_:1},8,["model-value"])])):(a(),s("div",fe,[n(l,{subtype:"info"},{default:r(()=>e[32]||(e[32]=[i(" Die Speicher-Entladung ins Fahrzeug kann nicht gesteuert werden, da die Entladeleistung nicht an den/die konfigurierten Speicher übergeben werden kann. ",-1)])),_:1,__:[32]})]))])):m("",!0)]))]),_:1}),n(w,{title:"OCPP Anbindung"},{default:r(()=>{var o,E,P,$;return[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",me,[n(l,{subtype:"info"},{default:r(()=>e[33]||(e[33]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[33]})])):(a(),s("div",ce,[n(p,{title:"OCPP aktivieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(o=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:o.active,"onUpdate:modelValue":e[11]||(e[11]=y=>t.updateState("openWB/optional/ocpp/config",y,"active"))},null,8,["model-value"]),((E=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:E.active)===!0?(a(),s("div",be,[n(l,{subtype:"info"},{default:r(()=>e[34]||(e[34]=[i(" Die Ladepunkte übermitteln den ID-Tag, Heartbeat und den Zählerstand zum Zeitpunkt des Ansteckens, Absteckens und alle 5 Minuten. Eine Steuerung per OCPP ist nicht möglich.",-1),d("br",null,null,-1),i(" Alle Ladepunkte, die ihre Daten an das OCPP-Backend übermitteln sollen, müssen zunächst im OCPP-Backend angelegt werden. Die dort eingetragene Chargebox ID muss in der openWB in den Einstellungen des Ladepunkts eingetragen werden. ",-1)])),_:1,__:[34]}),n(C,{title:"URL des OCPP-Backends",subtype:"url","model-value":(P=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:P.url,"onUpdate:modelValue":e[12]||(e[12]=y=>t.updateState("openWB/optional/ocpp/config",y,"url"))},null,8,["model-value"]),n(S,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"ocpp1.6",text:"OCPP 1.6"},{value:"ocpp2.0.1",text:"OCPP 2.0.1"}],"model-value":($=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:$.version,"onUpdate:modelValue":e[13]||(e[13]=y=>t.updateState("openWB/optional/ocpp/config",y,"version"))},null,8,["model-value"])])):m("",!0)]))]}),_:1}),n(T,{"form-name":"generalChargeConfigForm",onSave:e[14]||(e[14]=o=>t.$emit("save")),onReset:e[15]||(e[15]=o=>t.$emit("reset")),onDefaults:e[16]||(e[16]=o=>t.$emit("defaults"))})])])}const he=B(Y,[["render",_e],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralChargeConfig.vue"]]),ke=Object.freeze(Object.defineProperty({__proto__:null,default:he},Symbol.toStringTag,{value:"Module"}));export{Z as E,ke as G}; diff --git a/web/settings/assets/GeneralConfig-5de8d06f.js b/web/settings/assets/GeneralConfig-5de8d06f.js deleted file mode 100644 index 1b1b6ef53f..0000000000 --- a/web/settings/assets/GeneralConfig-5de8d06f.js +++ /dev/null @@ -1 +0,0 @@ -import{l as J,a6 as I,a7 as x,F,a0 as j,Q as H,E as K,ag as Z,ah as Q,ai as X}from"./vendor-fortawesome-2b3791bb.js";import{_ as O,C as Y}from"./index-0992d19b.js";import{_ as ee}from"./dynamic-import-helper-be004503.js";import{_ as W,u as m,l as r,m as g,x as c,E as o,B as a,F as w,G as n,A as f,a2 as te,a3 as ne,N as oe,z as b}from"./vendor-36bf053b.js";const ae={props:{webTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},se=W(ae,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/WebThemeConfigMixin.vue"]]),le={name:"WebThemeFallback",mixins:[se]},re={class:"web-theme-fallback"},ie={key:1};function ue(t,e,u,B,V,h){const p=m("openwb-base-alert"),l=m("openwb-base-textarea");return r(),g("div",re,[Object.keys(t.webTheme.configuration).length==0?(r(),c(p,{key:0,subtype:"info"},{default:o(()=>[a(' Das Web Theme "'+w(t.webTheme.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(r(),g("div",ie,[n(p,{subtype:"warning"},{default:o(()=>[a(' Es wurde keine Konfigurationsseite für das Web Theme "'+w(t.webTheme.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(l,{title:"Theme Konfiguration",subtype:"json","model-value":t.webTheme.configuration,"onUpdate:modelValue":e[0]||(e[0]=_=>t.updateConfiguration(_,"configuration"))},{help:o(()=>[...e[1]||(e[1]=[a(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),n(p,{subtype:"info"},{default:o(()=>[f("pre",null,w(JSON.stringify(t.webTheme.configuration,void 0,2)),1)]),_:1})]))])}const de=W(le,[["render",ue],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeFallback.vue"]]);J.add(I,x);const ge={name:"OpenwbWebThemeProxy",components:{FontAwesomeIcon:F},props:{webTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{getThemeComponent(){return console.debug(`loading web theme: ${this.webTheme.type}`),te({loader:()=>ee(Object.assign({"./koala/webTheme.vue":()=>O(()=>import("./webTheme-866069f2.js"),["assets/webTheme-866069f2.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./standard_legacy/webTheme.vue":()=>O(()=>import("./webTheme-afd39c5a.js"),["assets/webTheme-afd39c5a.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.webTheme.type}/webTheme.vue`),errorComponent:de})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function me(t,e,u,B,V,h){const p=m("font-awesome-icon"),l=m("openwb-base-alert"),_=m("openwb-base-heading");return r(),g(oe,null,[u.webTheme.official?(r(),c(l,{key:0,subtype:"success"},{default:o(()=>[n(p,{icon:["fas","certificate"]}),a(' Das ausgewählte Web Theme "'+w(u.webTheme.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(r(),c(l,{key:1,subtype:"info"},{default:o(()=>[n(p,{icon:["fas","people-group"]}),e[1]||(e[1]=a(" Das ausgewählte Theme wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ",-1))]),_:1})),n(_,null,{default:o(()=>[a(' Einstellungen für Web Theme "'+w(u.webTheme.name)+'" ',1)]),_:1}),(r(),c(ne(h.getThemeComponent()),{"web-theme":u.webTheme,"onUpdate:configuration":e[0]||(e[0]=v=>h.updateConfiguration(v))},null,40,["web-theme"]))],64)}const pe=W(ge,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeProxy.vue"]]);J.add(j,H,K,Z,Q,X);const be={name:"OpenwbGeneralConfigView",components:{OpenwbWebThemeProxy:pe,FontAwesomeIcon:F},mixins:[Y],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/charge_log_data_config","openWB/general/control_interval","openWB/general/extern","openWB/general/external_buttons_hw","openWB/general/grid_protection_configured","openWB/general/http_api","openWB/general/modbus_control","openWB/general/notifications/configuration","openWB/general/notifications/plug","openWB/general/notifications/selected","openWB/general/notifications/smart_home","openWB/general/notifications/start_charging","openWB/general/notifications/stop_charging","openWB/general/price_kwh","openWB/general/range_unit","openWB/general/web_theme","openWB/system/configurable/web_themes","openWB/system/ip_address"]}},computed:{webThemeList:{get(){return this.$store.state.mqtt["openWB/system/configurable/web_themes"]}},webThemeGroupList:{get(){var e;let t=[{label:"openWB",options:[]},{label:"Community",options:[]}];return(e=this.webThemeList)==null||e.forEach(u=>{u.official===!0?t[0].options.push(u):t[1].options.push(u)}),t}}},methods:{getIpAddress(){return this.$store.state.mqtt["openWB/system/ip_address"]},getWebThemeDefaults(t){const e=this.webThemeList.find(u=>u.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for web theme type!",t),{})},updateSelectedWebTheme(t){this.updateState("openWB/general/web_theme",this.getWebThemeDefaults(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},fe={class:"generalConfig"},_e={name:"generalConfigForm"},ce={key:0},he={key:1},we={key:1},ve={key:0},We={key:0},Be={key:1},Ve={key:0},ye={key:1},Se={key:0},ke={key:0},Te={key:1};function $e(t,e,u,B,V,h){const p=m("openwb-base-alert"),l=m("openwb-base-button-group-input"),_=m("openwb-base-card"),v=m("openwb-base-heading"),R=m("openwb-base-select-input"),M=m("openwb-web-theme-proxy"),d=m("font-awesome-icon"),G=m("openwb-base-submit-buttons");return r(),g("div",fe,[f("form",_e,[n(_,{title:"Steuerungsmodus"},{default:o(()=>[n(p,{subtype:"info"},{default:o(()=>[...e[27]||(e[27]=[f("p",null,' Wird für den Steuerungsmodus "primary" gewählt, übernimmt diese openWB die alleinige Regelung und steuert ggf. vorhandene weitere openWB (z.B. secondary openWB, openWB Pro, Satellit u.a.) fern. Sie werden in den Ladepunkt-Einstellungen der primary-openWB hinzugefügt. ',-1),f("p",null,' Wird für den Steuerungsmodus "secondary" gewählt, übernimmt diese openWB keine Regelung und muss von einer anderen primary openWB ferngesteuert werden. Wichtig ist, dass in der secondary-openWB eine "interne openWB" mit der korrekten Bauart (= openWB-Hardwarevariante z.B. "Custom, Standard, Standard+, Duo, Buchse") konfiguriert ist. Bei einer Duo sind zwei "interne openWB" zu konfigurieren. Im "secondary"-Modus bleiben alle ausgeblendeten Einstellungen unbeachtet. ',-1)])]),_:1}),n(l,{title:"Steuerungsmodus",buttons:[{buttonValue:!1,text:"primary",class:"btn-outline-danger"},{buttonValue:!0,text:"secondary",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/extern"],"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateState("openWB/general/extern",i))},null,8,["model-value"]),u.installAssistantActive?b("",!0):(r(),g("div",ce,[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),c(l,{key:0,title:"Steuerung über Modbus als secondary",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/modbus_control"],"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateState("openWB/general/modbus_control",i))},{help:o(()=>[...e[28]||(e[28]=[a(" Im secondary-Modus kann die openWB über die Modbus-Schnittstelle gesteuert werden. Die Register sind ",-1),f("a",{href:"https://openwb.de/main/wp-content/uploads/2023/10/ModbusTCP-openWB-series2-Pro-1.pdf",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),a(" dokumentiert. Bei aktivierter Modbus-Schnittstelle darf die openWB nicht von einer primary-openWB gesteuert werden. ",-1)])]),_:1},8,["model-value"])):b("",!0),t.$store.state.mqtt["openWB/general/extern"]===!0&&t.$store.state.mqtt["openWB/general/modbus_control"]!==!0?(r(),g("div",he,[n(p,{subtype:"info",class:"mb-2"},{default:o(()=>[...e[29]||(e[29]=[a(' Wenn die Steuerung über Modbus auf "Aus" geändert wird, muss danach ein Neustart durchgeführt werden! ',-1)])]),_:1})])):b("",!0)])),u.installAssistantActive?b("",!0):(r(),g("div",we,[n(l,{title:"HTTP-API",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/http_api"],"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateState("openWB/general/http_api",i))},{help:o(()=>[...e[30]||(e[30]=[f("p",null,[a(" Mit der HTTP-API kann man den Wert eines MQTT-Topics per HTTPs abfragen oder neu setzen. Die Schnittstelle ist "),f("a",{href:"https://openwb.de/main/wp-content/uploads/2025/02/HTTP-API-fuer-openWB-series1-und-series2.pdf",target:"_blank",rel:"noopener noreferrer"}," hier "),a(" dokumentiert. ")],-1)])]),_:1},8,["model-value"])]))]),_:1}),u.installAssistantActive?b("",!0):(r(),g("div",ve,[n(_,{title:"Hardware"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),g("div",We,[n(p,{subtype:"info"},{default:o(()=>[...e[31]||(e[31]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):b("",!0),t.$store.state.mqtt["openWB/general/extern"]===!1?(r(),g("div",Be,[n(l,{title:"Geschwindigkeit Regelintervall",buttons:[{buttonValue:10,text:"Normal",class:"btn-outline-success"},{buttonValue:20,text:"Langsam",class:"btn-outline-warning"},{buttonValue:60,text:"Sehr Langsam",class:"btn-outline-danger"}],"model-value":t.$store.state.mqtt["openWB/general/control_interval"],"onUpdate:modelValue":e[3]||(e[3]=i=>t.updateState("openWB/general/control_interval",i))},{help:o(()=>[...e[32]||(e[32]=[a(' Sollten Probleme oder Fehlermeldungen auftauchen, stelle bitte zunächst das Regelintervall auf "Normal". Werden Module genutzt, welche z.B. eine Online-API zur Abfrage nutzen (höhere Latenzzeiten) oder möchte man weniger Regeleingriffe, so kann man das Regelintervall auf "Langsam" (20 Sekunden) herabsetzen. Die Einstellung „Sehr Langsam“ führt zu einer Regelzeit von 60 Sekunden.',-1),f("br",null,null,-1),f("span",{class:"text-danger"},' Nicht nur die Regelung der PV geführten Ladung, sondern auch die Ladestromänderung, beispielsweise “Stop“ etc., werden dann nur noch in diesem Intervall ausgeführt. Die Regelung wird insgesamt träger. Solange es keinen triftigen Grund gibt, sollte "Normal" gewählt werden. ',-1)])]),_:1},8,["model-value"]),n(l,{title:"Netzschutz",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/grid_protection_configured"],"onUpdate:modelValue":e[4]||(e[4]=i=>t.updateState("openWB/general/grid_protection_configured",i))},{help:o(()=>[...e[33]||(e[33]=[a(' Diese Option ist standardmäßig aktiviert und sollte so belassen werden. Bei Unterschreitung einer kritischen Frequenz des Stromnetzes wird die Ladung nach einer zufälligen Zeit zwischen 1 und 90 Sekunden pausiert. Der Lademodus wechselt auf "Stop". Sobald die Frequenz wieder in einem normalen Bereich ist wird automatisch der zuletzt gewählte Lademodus wieder aktiviert. Ebenso wird die Ladung bei Überschreiten von 51,8 Hz unterbrochen. Dies ist dann der Fall, wenn der Energieversorger Wartungsarbeiten am (Teil-)Netz durchführt und auf einen vorübergehenden Generator-Betrieb umschaltet. Die Erhöhung der Frequenz wird durchgeführt, um die PV Anlagen abzuschalten.',-1),f("br",null,null,-1),f("span",{class:"text-danger"}," Die Option ist nur aktiv, wenn der EVU-Zähler die Frequenz übermittelt. ",-1)])]),_:1},8,["model-value"])])):b("",!0)]),_:1})])),u.installAssistantActive?b("",!0):(r(),c(_,{key:1,title:"Darstellung"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),g("div",Ve,[n(p,{subtype:"info"},{default:o(()=>[...e[34]||(e[34]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(r(),g("div",ye,[n(v,{class:"mt-0"},{default:o(()=>[...e[35]||(e[35]=[a(" Hauptseite ",-1)])]),_:1}),t.$store.state.mqtt["openWB/general/web_theme"]!==void 0?(r(),g("div",Se,[n(R,{class:"mb-2",title:"Theme",groups:h.webThemeGroupList,"model-value":t.$store.state.mqtt["openWB/general/web_theme"].type,"onUpdate:modelValue":e[5]||(e[5]=i=>h.updateSelectedWebTheme(i))},null,8,["groups","model-value"]),t.$store.state.mqtt["openWB/general/web_theme"].type?(r(),c(M,{key:0,"web-theme":t.$store.state.mqtt["openWB/general/web_theme"],"onUpdate:configuration":e[6]||(e[6]=i=>h.updateConfiguration("openWB/general/web_theme",i))},null,8,["web-theme"])):b("",!0)])):b("",!0)]))]),_:1})),u.installAssistantActive?b("",!0):(r(),c(_,{key:2,title:"Lade-Protokoll"},{default:o(()=>{var i,y,S,k,T,$,q,C,N,z,A,D,E,U,P,L;return[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),g("div",ke,[n(p,{subtype:"info"},{default:o(()=>[...e[36]||(e[36]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(r(),g("div",Te,[n(l,{title:"Einheit für Entfernungen","model-value":t.$store.state.mqtt["openWB/general/range_unit"],buttons:[{buttonValue:"km",text:"Kilometer"},{buttonValue:"mi",text:"Meilen"}],"onUpdate:modelValue":e[7]||(e[7]=s=>t.updateState("openWB/general/range_unit",s))},null,8,["model-value"]),n(v,null,{default:o(()=>[...e[37]||(e[37]=[a(" Auswahl der Datenfelder ",-1)])]),_:1}),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(i=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:i.time_begin,"onUpdate:modelValue":e[8]||(e[8]=s=>t.updateState("openWB/general/charge_log_data_config",s,"time_begin"))},{title:o(()=>[n(d,{icon:["fas","calendar"]}),e[38]||(e[38]=a(" Beginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(y=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:y.time_end,"onUpdate:modelValue":e[9]||(e[9]=s=>t.updateState("openWB/general/charge_log_data_config",s,"time_end"))},{title:o(()=>[n(d,{icon:["fas","calendar"]}),e[39]||(e[39]=a(" Ende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(S=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:S.time_time_charged,"onUpdate:modelValue":e[10]||(e[10]=s=>t.updateState("openWB/general/charge_log_data_config",s,"time_time_charged"))},{title:o(()=>[n(d,{icon:["fas","clock"]}),e[40]||(e[40]=a(" Dauer ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(k=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:k.data_costs,"onUpdate:modelValue":e[11]||(e[11]=s=>t.updateState("openWB/general/charge_log_data_config",s,"data_costs"))},{title:o(()=>[n(d,{icon:["fas","coins"]}),e[41]||(e[41]=a(" Kosten ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(T=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:T.data_power_source,"onUpdate:modelValue":e[12]||(e[12]=s=>t.updateState("openWB/general/charge_log_data_config",s,"data_power_source"))},{title:o(()=>[n(d,{icon:["fas","pie-chart"]}),e[42]||(e[42]=a(" Energieaufteilung ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":($=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:$.vehicle_name,"onUpdate:modelValue":e[13]||(e[13]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_name"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[43]||(e[43]=a(" Name ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(q=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:q.vehicle_chargemode,"onUpdate:modelValue":e[14]||(e[14]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_chargemode"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[44]||(e[44]=a(" Lademodus ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(C=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:C.vehicle_prio,"onUpdate:modelValue":e[15]||(e[15]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_prio"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[45]||(e[45]=a(" Priorität ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(N=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:N.vehicle_rfid,"onUpdate:modelValue":e[16]||(e[16]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_rfid"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[46]||(e[46]=a(" ID-Tag ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(z=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:z.vehicle_soc_at_start,"onUpdate:modelValue":e[17]||(e[17]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_soc_at_start"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[47]||(e[47]=a(" SoC bei Ladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(A=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:A.vehicle_soc_at_end,"onUpdate:modelValue":e[18]||(e[18]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_soc_at_end"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[48]||(e[48]=a(" SoC bei Ladende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(D=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:D.chargepoint_name,"onUpdate:modelValue":e[19]||(e[19]=s=>t.updateState("openWB/general/charge_log_data_config",s,"chargepoint_name"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[49]||(e[49]=a(" Name ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(E=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:E.chargepoint_serial_number,"onUpdate:modelValue":e[20]||(e[20]=s=>t.updateState("openWB/general/charge_log_data_config",s,"chargepoint_serial_number"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[50]||(e[50]=a(" Seriennummer ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(U=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:U.data_imported_since_mode_switch,"onUpdate:modelValue":e[21]||(e[21]=s=>t.updateState("openWB/general/charge_log_data_config",s,"data_imported_since_mode_switch"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[51]||(e[51]=a(" Geladene Energie ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(P=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:P.chargepoint_imported_at_start,"onUpdate:modelValue":e[22]||(e[22]=s=>t.updateState("openWB/general/charge_log_data_config",s,"chargepoint_imported_at_start"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[52]||(e[52]=a(" Zählerstand bei Ladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(L=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:L.chargepoint_imported_at_end,"onUpdate:modelValue":e[23]||(e[23]=s=>t.updateState("openWB/general/charge_log_data_config",s,"chargepoint_imported_at_end"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[53]||(e[53]=a(" Zählerstand bei Ladeende ",-1))]),_:1},8,["model-value"])]))]}),_:1})),n(G,{"form-name":"generalConfigForm",onSave:e[24]||(e[24]=i=>t.$emit("save")),onReset:e[25]||(e[25]=i=>t.$emit("reset")),onDefaults:e[26]||(e[26]=i=>t.$emit("defaults"))})])])}const qe=W(be,[["render",$e],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralConfig.vue"]]),De=Object.freeze(Object.defineProperty({__proto__:null,default:qe},Symbol.toStringTag,{value:"Module"}));export{qe as G,se as W,De as a}; diff --git a/web/settings/assets/GeneralConfig-cc87a1f9.js b/web/settings/assets/GeneralConfig-cc87a1f9.js new file mode 100644 index 0000000000..5a78f0563f --- /dev/null +++ b/web/settings/assets/GeneralConfig-cc87a1f9.js @@ -0,0 +1 @@ +import{l as J,a6 as I,a7 as x,F,a0 as j,Q as H,E as K,ag as Z,ah as Q,ai as X}from"./vendor-fortawesome-a02b6813.js";import{_ as O,C as Y}from"./index-8dd8e083.js";import{_ as ee}from"./dynamic-import-helper-be004503.js";import{_ as W,u as m,l as r,m as g,x as c,E as o,B as a,F as w,G as n,A as f,a2 as te,a3 as ne,N as oe,z as b}from"./vendor-25d394b4.js";const ae={props:{webTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},se=W(ae,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/WebThemeConfigMixin.vue"]]),le={name:"WebThemeFallback",mixins:[se]},re={class:"web-theme-fallback"},ie={key:1};function ue(t,e,u,B,V,h){const p=m("openwb-base-alert"),l=m("openwb-base-textarea");return r(),g("div",re,[Object.keys(t.webTheme.configuration).length==0?(r(),c(p,{key:0,subtype:"info"},{default:o(()=>[a(' Das Web Theme "'+w(t.webTheme.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(r(),g("div",ie,[n(p,{subtype:"warning"},{default:o(()=>[a(' Es wurde keine Konfigurationsseite für das Web Theme "'+w(t.webTheme.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(l,{title:"Theme Konfiguration",subtype:"json","model-value":t.webTheme.configuration,"onUpdate:modelValue":e[0]||(e[0]=_=>t.updateConfiguration(_,"configuration"))},{help:o(()=>e[1]||(e[1]=[a(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),n(p,{subtype:"info"},{default:o(()=>[f("pre",null,w(JSON.stringify(t.webTheme.configuration,void 0,2)),1)]),_:1})]))])}const de=W(le,[["render",ue],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeFallback.vue"]]);J.add(I,x);const ge={name:"OpenwbWebThemeProxy",components:{FontAwesomeIcon:F},props:{webTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{getThemeComponent(){return console.debug(`loading web theme: ${this.webTheme.type}`),te({loader:()=>ee(Object.assign({"./koala/webTheme.vue":()=>O(()=>import("./webTheme-5cb70cc5.js"),["assets/webTheme-5cb70cc5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./standard_legacy/webTheme.vue":()=>O(()=>import("./webTheme-3d6548f9.js"),["assets/webTheme-3d6548f9.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.webTheme.type}/webTheme.vue`),errorComponent:de})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function me(t,e,u,B,V,h){const p=m("font-awesome-icon"),l=m("openwb-base-alert"),_=m("openwb-base-heading");return r(),g(oe,null,[u.webTheme.official?(r(),c(l,{key:0,subtype:"success"},{default:o(()=>[n(p,{icon:["fas","certificate"]}),a(' Das ausgewählte Web Theme "'+w(u.webTheme.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(r(),c(l,{key:1,subtype:"info"},{default:o(()=>[n(p,{icon:["fas","people-group"]}),e[1]||(e[1]=a(" Das ausgewählte Theme wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ",-1))]),_:1,__:[1]})),n(_,null,{default:o(()=>[a(' Einstellungen für Web Theme "'+w(u.webTheme.name)+'" ',1)]),_:1}),(r(),c(ne(h.getThemeComponent()),{"web-theme":u.webTheme,"onUpdate:configuration":e[0]||(e[0]=v=>h.updateConfiguration(v))},null,40,["web-theme"]))],64)}const pe=W(ge,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeProxy.vue"]]);J.add(j,H,K,Z,Q,X);const be={name:"OpenwbGeneralConfigView",components:{OpenwbWebThemeProxy:pe,FontAwesomeIcon:F},mixins:[Y],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/charge_log_data_config","openWB/general/control_interval","openWB/general/extern","openWB/general/external_buttons_hw","openWB/general/grid_protection_configured","openWB/general/http_api","openWB/general/modbus_control","openWB/general/notifications/configuration","openWB/general/notifications/plug","openWB/general/notifications/selected","openWB/general/notifications/smart_home","openWB/general/notifications/start_charging","openWB/general/notifications/stop_charging","openWB/general/price_kwh","openWB/general/range_unit","openWB/general/web_theme","openWB/system/configurable/web_themes","openWB/system/ip_address"]}},computed:{webThemeList:{get(){return this.$store.state.mqtt["openWB/system/configurable/web_themes"]}},webThemeGroupList:{get(){var e;let t=[{label:"openWB",options:[]},{label:"Community",options:[]}];return(e=this.webThemeList)==null||e.forEach(u=>{u.official===!0?t[0].options.push(u):t[1].options.push(u)}),t}}},methods:{getIpAddress(){return this.$store.state.mqtt["openWB/system/ip_address"]},getWebThemeDefaults(t){const e=this.webThemeList.find(u=>u.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for web theme type!",t),{})},updateSelectedWebTheme(t){this.updateState("openWB/general/web_theme",this.getWebThemeDefaults(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},fe={class:"generalConfig"},_e={name:"generalConfigForm"},ce={key:0},he={key:1},we={key:1},ve={key:0},We={key:0},Be={key:1},Ve={key:0},ye={key:1},Se={key:0},ke={key:0},Te={key:1};function $e(t,e,u,B,V,h){const p=m("openwb-base-alert"),l=m("openwb-base-button-group-input"),_=m("openwb-base-card"),v=m("openwb-base-heading"),R=m("openwb-base-select-input"),M=m("openwb-web-theme-proxy"),d=m("font-awesome-icon"),G=m("openwb-base-submit-buttons");return r(),g("div",fe,[f("form",_e,[n(_,{title:"Steuerungsmodus"},{default:o(()=>[n(p,{subtype:"info"},{default:o(()=>e[27]||(e[27]=[f("p",null,' Wird für den Steuerungsmodus "primary" gewählt, übernimmt diese openWB die alleinige Regelung und steuert ggf. vorhandene weitere openWB (z.B. secondary openWB, openWB Pro, Satellit u.a.) fern. Sie werden in den Ladepunkt-Einstellungen der primary-openWB hinzugefügt. ',-1),f("p",null,' Wird für den Steuerungsmodus "secondary" gewählt, übernimmt diese openWB keine Regelung und muss von einer anderen primary openWB ferngesteuert werden. Wichtig ist, dass in der secondary-openWB eine "interne openWB" mit der korrekten Bauart (= openWB-Hardwarevariante z.B. "Custom, Standard, Standard+, Duo, Buchse") konfiguriert ist. Bei einer Duo sind zwei "interne openWB" zu konfigurieren. Im "secondary"-Modus bleiben alle ausgeblendeten Einstellungen unbeachtet. ',-1)])),_:1,__:[27]}),n(l,{title:"Steuerungsmodus",buttons:[{buttonValue:!1,text:"primary",class:"btn-outline-danger"},{buttonValue:!0,text:"secondary",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/extern"],"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateState("openWB/general/extern",i))},null,8,["model-value"]),u.installAssistantActive?b("",!0):(r(),g("div",ce,[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),c(l,{key:0,title:"Steuerung über Modbus als secondary",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/modbus_control"],"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateState("openWB/general/modbus_control",i))},{help:o(()=>e[28]||(e[28]=[a(" Im secondary-Modus kann die openWB über die Modbus-Schnittstelle gesteuert werden. Die Register sind ",-1),f("a",{href:"https://openwb.de/main/wp-content/uploads/2023/10/ModbusTCP-openWB-series2-Pro-1.pdf",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),a(" dokumentiert. Bei aktivierter Modbus-Schnittstelle darf die openWB nicht von einer primary-openWB gesteuert werden. ",-1)])),_:1},8,["model-value"])):b("",!0),t.$store.state.mqtt["openWB/general/extern"]===!0&&t.$store.state.mqtt["openWB/general/modbus_control"]!==!0?(r(),g("div",he,[n(p,{subtype:"info",class:"mb-2"},{default:o(()=>e[29]||(e[29]=[a(' Wenn die Steuerung über Modbus auf "Aus" geändert wird, muss danach ein Neustart durchgeführt werden! ',-1)])),_:1,__:[29]})])):b("",!0)])),u.installAssistantActive?b("",!0):(r(),g("div",we,[n(l,{title:"HTTP-API",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/http_api"],"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateState("openWB/general/http_api",i))},{help:o(()=>e[30]||(e[30]=[f("p",null,[a(" Mit der HTTP-API kann man den Wert eines MQTT-Topics per HTTPs abfragen oder neu setzen. Die Schnittstelle ist "),f("a",{href:"https://openwb.de/main/wp-content/uploads/2025/02/HTTP-API-fuer-openWB-series1-und-series2.pdf",target:"_blank",rel:"noopener noreferrer"}," hier "),a(" dokumentiert. ")],-1)])),_:1},8,["model-value"])]))]),_:1}),u.installAssistantActive?b("",!0):(r(),g("div",ve,[n(_,{title:"Hardware"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),g("div",We,[n(p,{subtype:"info"},{default:o(()=>e[31]||(e[31]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[31]})])):b("",!0),t.$store.state.mqtt["openWB/general/extern"]===!1?(r(),g("div",Be,[n(l,{title:"Geschwindigkeit Regelintervall",buttons:[{buttonValue:10,text:"Normal",class:"btn-outline-success"},{buttonValue:20,text:"Langsam",class:"btn-outline-warning"},{buttonValue:60,text:"Sehr Langsam",class:"btn-outline-danger"}],"model-value":t.$store.state.mqtt["openWB/general/control_interval"],"onUpdate:modelValue":e[3]||(e[3]=i=>t.updateState("openWB/general/control_interval",i))},{help:o(()=>e[32]||(e[32]=[a(' Sollten Probleme oder Fehlermeldungen auftauchen, stelle bitte zunächst das Regelintervall auf "Normal". Werden Module genutzt, welche z.B. eine Online-API zur Abfrage nutzen (höhere Latenzzeiten) oder möchte man weniger Regeleingriffe, so kann man das Regelintervall auf "Langsam" (20 Sekunden) herabsetzen. Die Einstellung „Sehr Langsam“ führt zu einer Regelzeit von 60 Sekunden.',-1),f("br",null,null,-1),f("span",{class:"text-danger"},' Nicht nur die Regelung der PV geführten Ladung, sondern auch die Ladestromänderung, beispielsweise “Stop“ etc., werden dann nur noch in diesem Intervall ausgeführt. Die Regelung wird insgesamt träger. Solange es keinen triftigen Grund gibt, sollte "Normal" gewählt werden. ',-1)])),_:1},8,["model-value"]),n(l,{title:"Netzschutz",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/grid_protection_configured"],"onUpdate:modelValue":e[4]||(e[4]=i=>t.updateState("openWB/general/grid_protection_configured",i))},{help:o(()=>e[33]||(e[33]=[a(' Diese Option ist standardmäßig aktiviert und sollte so belassen werden. Bei Unterschreitung einer kritischen Frequenz des Stromnetzes wird die Ladung nach einer zufälligen Zeit zwischen 1 und 90 Sekunden pausiert. Der Lademodus wechselt auf "Stop". Sobald die Frequenz wieder in einem normalen Bereich ist wird automatisch der zuletzt gewählte Lademodus wieder aktiviert. Ebenso wird die Ladung bei Überschreiten von 51,8 Hz unterbrochen. Dies ist dann der Fall, wenn der Energieversorger Wartungsarbeiten am (Teil-)Netz durchführt und auf einen vorübergehenden Generator-Betrieb umschaltet. Die Erhöhung der Frequenz wird durchgeführt, um die PV Anlagen abzuschalten.',-1),f("br",null,null,-1),f("span",{class:"text-danger"}," Die Option ist nur aktiv, wenn der EVU-Zähler die Frequenz übermittelt. ",-1)])),_:1},8,["model-value"])])):b("",!0)]),_:1})])),u.installAssistantActive?b("",!0):(r(),c(_,{key:1,title:"Darstellung"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),g("div",Ve,[n(p,{subtype:"info"},{default:o(()=>e[34]||(e[34]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[34]})])):(r(),g("div",ye,[n(v,{class:"mt-0"},{default:o(()=>e[35]||(e[35]=[a(" Hauptseite ",-1)])),_:1,__:[35]}),t.$store.state.mqtt["openWB/general/web_theme"]!==void 0?(r(),g("div",Se,[n(R,{class:"mb-2",title:"Theme",groups:h.webThemeGroupList,"model-value":t.$store.state.mqtt["openWB/general/web_theme"].type,"onUpdate:modelValue":e[5]||(e[5]=i=>h.updateSelectedWebTheme(i))},null,8,["groups","model-value"]),t.$store.state.mqtt["openWB/general/web_theme"].type?(r(),c(M,{key:0,"web-theme":t.$store.state.mqtt["openWB/general/web_theme"],"onUpdate:configuration":e[6]||(e[6]=i=>h.updateConfiguration("openWB/general/web_theme",i))},null,8,["web-theme"])):b("",!0)])):b("",!0)]))]),_:1})),u.installAssistantActive?b("",!0):(r(),c(_,{key:2,title:"Lade-Protokoll"},{default:o(()=>{var i,y,S,k,T,$,q,C,N,z,A,D,E,U,P,L;return[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),g("div",ke,[n(p,{subtype:"info"},{default:o(()=>e[36]||(e[36]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[36]})])):(r(),g("div",Te,[n(l,{title:"Einheit für Entfernungen","model-value":t.$store.state.mqtt["openWB/general/range_unit"],buttons:[{buttonValue:"km",text:"Kilometer"},{buttonValue:"mi",text:"Meilen"}],"onUpdate:modelValue":e[7]||(e[7]=s=>t.updateState("openWB/general/range_unit",s))},null,8,["model-value"]),n(v,null,{default:o(()=>e[37]||(e[37]=[a(" Auswahl der Datenfelder ",-1)])),_:1,__:[37]}),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(i=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:i.time_begin,"onUpdate:modelValue":e[8]||(e[8]=s=>t.updateState("openWB/general/charge_log_data_config",s,"time_begin"))},{title:o(()=>[n(d,{icon:["fas","calendar"]}),e[38]||(e[38]=a(" Beginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(y=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:y.time_end,"onUpdate:modelValue":e[9]||(e[9]=s=>t.updateState("openWB/general/charge_log_data_config",s,"time_end"))},{title:o(()=>[n(d,{icon:["fas","calendar"]}),e[39]||(e[39]=a(" Ende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(S=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:S.time_time_charged,"onUpdate:modelValue":e[10]||(e[10]=s=>t.updateState("openWB/general/charge_log_data_config",s,"time_time_charged"))},{title:o(()=>[n(d,{icon:["fas","clock"]}),e[40]||(e[40]=a(" Dauer ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(k=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:k.data_costs,"onUpdate:modelValue":e[11]||(e[11]=s=>t.updateState("openWB/general/charge_log_data_config",s,"data_costs"))},{title:o(()=>[n(d,{icon:["fas","coins"]}),e[41]||(e[41]=a(" Kosten ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(T=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:T.data_power_source,"onUpdate:modelValue":e[12]||(e[12]=s=>t.updateState("openWB/general/charge_log_data_config",s,"data_power_source"))},{title:o(()=>[n(d,{icon:["fas","pie-chart"]}),e[42]||(e[42]=a(" Energieaufteilung ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":($=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:$.vehicle_name,"onUpdate:modelValue":e[13]||(e[13]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_name"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[43]||(e[43]=a(" Name ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(q=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:q.vehicle_chargemode,"onUpdate:modelValue":e[14]||(e[14]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_chargemode"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[44]||(e[44]=a(" Lademodus ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(C=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:C.vehicle_prio,"onUpdate:modelValue":e[15]||(e[15]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_prio"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[45]||(e[45]=a(" Priorität ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(N=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:N.vehicle_rfid,"onUpdate:modelValue":e[16]||(e[16]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_rfid"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[46]||(e[46]=a(" ID-Tag ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(z=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:z.vehicle_soc_at_start,"onUpdate:modelValue":e[17]||(e[17]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_soc_at_start"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[47]||(e[47]=a(" SoC bei Ladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(A=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:A.vehicle_soc_at_end,"onUpdate:modelValue":e[18]||(e[18]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_soc_at_end"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[48]||(e[48]=a(" SoC bei Ladende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(D=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:D.chargepoint_name,"onUpdate:modelValue":e[19]||(e[19]=s=>t.updateState("openWB/general/charge_log_data_config",s,"chargepoint_name"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[49]||(e[49]=a(" Name ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(E=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:E.chargepoint_serial_number,"onUpdate:modelValue":e[20]||(e[20]=s=>t.updateState("openWB/general/charge_log_data_config",s,"chargepoint_serial_number"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[50]||(e[50]=a(" Seriennummer ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(U=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:U.data_imported_since_mode_switch,"onUpdate:modelValue":e[21]||(e[21]=s=>t.updateState("openWB/general/charge_log_data_config",s,"data_imported_since_mode_switch"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[51]||(e[51]=a(" Geladene Energie ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(P=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:P.chargepoint_imported_at_start,"onUpdate:modelValue":e[22]||(e[22]=s=>t.updateState("openWB/general/charge_log_data_config",s,"chargepoint_imported_at_start"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[52]||(e[52]=a(" Zählerstand bei Ladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(L=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:L.chargepoint_imported_at_end,"onUpdate:modelValue":e[23]||(e[23]=s=>t.updateState("openWB/general/charge_log_data_config",s,"chargepoint_imported_at_end"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[53]||(e[53]=a(" Zählerstand bei Ladeende ",-1))]),_:1},8,["model-value"])]))]}),_:1})),n(G,{"form-name":"generalConfigForm",onSave:e[24]||(e[24]=i=>t.$emit("save")),onReset:e[25]||(e[25]=i=>t.$emit("reset")),onDefaults:e[26]||(e[26]=i=>t.$emit("defaults"))})])])}const qe=W(be,[["render",$e],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralConfig.vue"]]),De=Object.freeze(Object.defineProperty({__proto__:null,default:qe},Symbol.toStringTag,{value:"Module"}));export{qe as G,se as W,De as a}; diff --git a/web/settings/assets/HardwareInstallation-35a2a562.js b/web/settings/assets/HardwareInstallation-35a2a562.js deleted file mode 100644 index a19236b58e..0000000000 --- a/web/settings/assets/HardwareInstallation-35a2a562.js +++ /dev/null @@ -1 +0,0 @@ -import{l as S,d as U,y as q,aj as G,ab as N,_ as K,Z as F,Y as H,F as $}from"./vendor-fortawesome-2b3791bb.js";import{_ as e,C as J}from"./index-0992d19b.js";import{_ as x}from"./dynamic-import-helper-be004503.js";import{_ as I,u as p,l as v,m as g,x as E,E as r,B as d,F as f,G as u,A as c,a2 as z,a3 as Z,z as R,N as L,M as k,q as Y}from"./vendor-36bf053b.js";const Q={props:{device:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,o=void 0){this.$emit("update:configuration",{value:t,object:o})}}},B=I(Q,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/DeviceConfigMixin.vue"]]),X={name:"DeviceFallback",mixins:[B]},ee={class:"device-fallback"},oe={key:1};function te(t,o,i,m,s,n){const l=p("openwb-base-alert"),b=p("openwb-base-textarea");return v(),g("div",ee,[Object.keys(t.device.configuration).length==0?(v(),E(l,{key:0,subtype:"info"},{default:r(()=>[d(' Der Gerät-Typ "'+f(t.device.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(v(),g("div",oe,[u(l,{subtype:"warning"},{default:r(()=>[d(' Es wurde keine Konfigurationsseite für den Geräte-Typ "'+f(t.device.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),u(b,{title:"Konfiguration",subtype:"json","model-value":t.device.configuration,"onUpdate:modelValue":o[0]||(o[0]=T=>t.updateConfiguration(T,"configuration"))},{help:r(()=>[...o[1]||(o[1]=[d(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),u(l,{subtype:"info"},{default:r(()=>[c("pre",null,f(JSON.stringify(t.device.configuration,void 0,2)),1)]),_:1})]))])}const _e=I(X,[["render",te],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbDeviceConfigFallback.vue"]]),ie={mixins:[B],props:{component:{type:Object,required:!0}}},re=I(ie,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/ComponentConfigMixin.vue"]]),ne={name:"ComponentFallback",mixins:[re]},ue={class:"component-fallback"},de={key:1};function ve(t,o,i,m,s,n){const l=p("openwb-base-alert"),b=p("openwb-base-textarea");return v(),g("div",ue,[Object.keys(t.component.configuration).length==0?(v(),E(l,{key:0,subtype:"info"},{default:r(()=>[d(' Der Komponenten-Typ "'+f(t.component.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(v(),g("div",de,[u(l,{subtype:"warning"},{default:r(()=>[d(' Es wurde keine Konfigurationsseite für den Komponenten-Typ "'+f(t.component.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),u(b,{title:"Konfiguration",subtype:"json","model-value":t.component.configuration,"onUpdate:modelValue":o[0]||(o[0]=T=>t.updateConfiguration(T,"configuration"))},{help:r(()=>[...o[1]||(o[1]=[d(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),u(l,{subtype:"info"},{default:r(()=>[c("pre",null,f(JSON.stringify(t.component.configuration,void 0,2)),1)]),_:1})]))])}const se=I(ne,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbComponentConfigFallback.vue"]]),ae={name:"OpenwbConfigProxy",props:{device:{type:Object,required:!0},component:{type:Object,required:!1,default:void 0}},emits:["update:configuration"],methods:{getComponent(){var t;return console.debug(`loading component: ${this.device.type} / ${(t=this.component)==null?void 0:t.type}`),this.component!==void 0?z({loader:()=>x(Object.assign({"./algodue/algodue/device.vue":()=>e(()=>import("./device-1aafef64.js"),["assets/device-1aafef64.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./alpha_ess/alpha_ess/device.vue":()=>e(()=>import("./device-92fd7ab5.js"),["assets/device-92fd7ab5.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./ampere/ampere/device.vue":()=>e(()=>import("./device-ae294c78.js"),["assets/device-ae294c78.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./avm/avm/counter.vue":()=>e(()=>import("./counter-46dc9236.js"),["assets/counter-46dc9236.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./avm/avm/device.vue":()=>e(()=>import("./device-9f3b6855.js"),["assets/device-9f3b6855.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./azzurro_zcs/azzurro_zcs/device.vue":()=>e(()=>import("./device-f1807705.js"),["assets/device-f1807705.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./batterx/batterx/device.vue":()=>e(()=>import("./device-fae6d510.js"),["assets/device-fae6d510.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./benning/benning/device.vue":()=>e(()=>import("./device-c71ae302.js"),["assets/device-c71ae302.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./benning/benning/inverter.vue":()=>e(()=>import("./inverter-45fa28a3.js"),["assets/inverter-45fa28a3.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./byd/byd/device.vue":()=>e(()=>import("./device-2d3d73a0.js"),["assets/device-2d3d73a0.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./carlo_gavazzi/carlo_gavazzi/counter.vue":()=>e(()=>import("./counter-ea8191e1.js"),["assets/counter-ea8191e1.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./carlo_gavazzi/carlo_gavazzi/device.vue":()=>e(()=>import("./device-6844ebef.js"),["assets/device-6844ebef.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/bat.vue":()=>e(()=>import("./bat-c6548e6d.js"),["assets/bat-c6548e6d.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/counter.vue":()=>e(()=>import("./counter-537c4dfd.js"),["assets/counter-537c4dfd.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/device.vue":()=>e(()=>import("./device-06ba50b0.js"),["assets/device-06ba50b0.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/inverter.vue":()=>e(()=>import("./inverter-157ed243.js"),["assets/inverter-157ed243.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/counter.vue":()=>e(()=>import("./counter-2d3ea68b.js"),["assets/counter-2d3ea68b.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/device.vue":()=>e(()=>import("./device-f0df93ee.js"),["assets/device-f0df93ee.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/inverter.vue":()=>e(()=>import("./inverter-da07e623.js"),["assets/inverter-da07e623.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./e3dc/e3dc/device.vue":()=>e(()=>import("./device-a8bcc901.js"),["assets/device-a8bcc901.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./elgris/elgris/device.vue":()=>e(()=>import("./device-cf37b016.js"),["assets/device-cf37b016.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/counter.vue":()=>e(()=>import("./counter-9b4e6f3b.js"),["assets/counter-9b4e6f3b.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/device.vue":()=>e(()=>import("./device-f410c3e0.js"),["assets/device-f410c3e0.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/inverter.vue":()=>e(()=>import("./inverter-3ae089d3.js"),["assets/inverter-3ae089d3.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fems/fems/bat.vue":()=>e(()=>import("./bat-e3a454fb.js"),["assets/bat-e3a454fb.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fems/fems/device.vue":()=>e(()=>import("./device-4e9a92f2.js"),["assets/device-4e9a92f2.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/bat.vue":()=>e(()=>import("./bat-6a84ad0b.js"),["assets/bat-6a84ad0b.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/counter.vue":()=>e(()=>import("./counter-21ec5341.js"),["assets/counter-21ec5341.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/device.vue":()=>e(()=>import("./device-47b44930.js"),["assets/device-47b44930.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/inverter.vue":()=>e(()=>import("./inverter-fb7b4862.js"),["assets/inverter-fb7b4862.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/bat.vue":()=>e(()=>import("./bat-fdb9e37e.js"),["assets/bat-fdb9e37e.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/counter_sm.vue":()=>e(()=>import("./counter_sm-c406a4ca.js"),["assets/counter_sm-c406a4ca.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/device.vue":()=>e(()=>import("./device-66495188.js"),["assets/device-66495188.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/inverter_secondary.vue":()=>e(()=>import("./inverter_secondary-63cbb85c.js"),["assets/inverter_secondary-63cbb85c.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/bat.vue":()=>e(()=>import("./bat-847c06c8.js"),["assets/bat-847c06c8.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/counter.vue":()=>e(()=>import("./counter-18ecc868.js"),["assets/counter-18ecc868.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/device.vue":()=>e(()=>import("./device-85d087eb.js"),["assets/device-85d087eb.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/inverter.vue":()=>e(()=>import("./inverter-7de7992b.js"),["assets/inverter-7de7992b.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/bat.vue":()=>e(()=>import("./bat-c0ad8e73.js"),["assets/bat-c0ad8e73.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/counter.vue":()=>e(()=>import("./counter-9d15865c.js"),["assets/counter-9d15865c.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/device.vue":()=>e(()=>import("./device-6342b415.js"),["assets/device-6342b415.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/inverter.vue":()=>e(()=>import("./inverter-32f9b72e.js"),["assets/inverter-32f9b72e.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/bat.vue":()=>e(()=>import("./bat-d2acbf13.js"),["assets/bat-d2acbf13.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/counter.vue":()=>e(()=>import("./counter-005ba391.js"),["assets/counter-005ba391.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/device.vue":()=>e(()=>import("./device-5f5a7792.js"),["assets/device-5f5a7792.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/inverter.vue":()=>e(()=>import("./inverter-7bb16085.js"),["assets/inverter-7bb16085.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/virtual/counter.vue":()=>e(()=>import("./counter-88df4b61.js"),["assets/counter-88df4b61.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./good_we/good_we/bat.vue":()=>e(()=>import("./bat-9e0becca.js"),["assets/bat-9e0becca.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./good_we/good_we/device.vue":()=>e(()=>import("./device-1d483fa9.js"),["assets/device-1d483fa9.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./growatt/growatt/device.vue":()=>e(()=>import("./device-47cdfed3.js"),["assets/device-47cdfed3.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei/device.vue":()=>e(()=>import("./device-ebeb6744.js"),["assets/device-ebeb6744.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_emma/device.vue":()=>e(()=>import("./device-3a871c58.js"),["assets/device-3a871c58.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/bat.vue":()=>e(()=>import("./bat-d6b81877.js"),["assets/bat-d6b81877.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/counter.vue":()=>e(()=>import("./counter-4b7a987f.js"),["assets/counter-4b7a987f.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/device.vue":()=>e(()=>import("./device-faa6a2a5.js"),["assets/device-faa6a2a5.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/inverter.vue":()=>e(()=>import("./inverter-b1698e75.js"),["assets/inverter-b1698e75.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./janitza/janitza/counter.vue":()=>e(()=>import("./counter-681c80fe.js"),["assets/counter-681c80fe.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./janitza/janitza/device.vue":()=>e(()=>import("./device-c8cf58de.js"),["assets/device-c8cf58de.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kaco/kaco_tx/device.vue":()=>e(()=>import("./device-34c2c399.js"),["assets/device-34c2c399.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kaco/kaco_tx/inverter.vue":()=>e(()=>import("./inverter-00436be2.js"),["assets/inverter-00436be2.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/counter.vue":()=>e(()=>import("./counter-5aade8ee.js"),["assets/counter-5aade8ee.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/device.vue":()=>e(()=>import("./device-3d201076.js"),["assets/device-3d201076.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/inverter.vue":()=>e(()=>import("./inverter-7eb695ef.js"),["assets/inverter-7eb695ef.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko_old/device.vue":()=>e(()=>import("./device-b04921b7.js"),["assets/device-b04921b7.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_plenticore/counter.vue":()=>e(()=>import("./counter-12125a94.js"),["assets/counter-12125a94.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_plenticore/device.vue":()=>e(()=>import("./device-1079b467.js"),["assets/device-1079b467.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_sem/counter.vue":()=>e(()=>import("./counter-e616e2c9.js"),["assets/counter-e616e2c9.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_sem/device.vue":()=>e(()=>import("./device-32911862.js"),["assets/device-32911862.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_steca/device.vue":()=>e(()=>import("./device-25c93738.js"),["assets/device-25c93738.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_steca/inverter.vue":()=>e(()=>import("./inverter-18ce5bf2.js"),["assets/inverter-18ce5bf2.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./lg/lg/device.vue":()=>e(()=>import("./device-9308334a.js"),["assets/device-9308334a.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/bat.vue":()=>e(()=>import("./bat-a55e5a44.js"),["assets/bat-a55e5a44.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/counter.vue":()=>e(()=>import("./counter-e67347b5.js"),["assets/counter-e67347b5.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/device.vue":()=>e(()=>import("./device-972a24e1.js"),["assets/device-972a24e1.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/inverter.vue":()=>e(()=>import("./inverter-d8aa0787.js"),["assets/inverter-d8aa0787.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mystrom/mystrom/device.vue":()=>e(()=>import("./device-e172cd2d.js"),["assets/device-e172cd2d.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./nibe/nibe/counter.vue":()=>e(()=>import("./counter-ecd56561.js"),["assets/counter-ecd56561.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./nibe/nibe/device.vue":()=>e(()=>import("./device-7571a6e9.js"),["assets/device-7571a6e9.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./opendtu/opendtu/device.vue":()=>e(()=>import("./device-212d2c90.js"),["assets/device-212d2c90.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./opendtu/opendtu/inverter.vue":()=>e(()=>import("./inverter-aa3864d0.js"),["assets/inverter-aa3864d0.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_bat_kit/bat.vue":()=>e(()=>import("./bat-4c47ac06.js"),["assets/bat-4c47ac06.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_evu_kit/bat.vue":()=>e(()=>import("./bat-7fd552d4.js"),["assets/bat-7fd552d4.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_evu_kit/counter.vue":()=>e(()=>import("./counter-863bf61e.js"),["assets/counter-863bf61e.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_evu_kit/inverter.vue":()=>e(()=>import("./inverter-ee06ed09.js"),["assets/inverter-ee06ed09.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/bat.vue":()=>e(()=>import("./bat-1c0d64c4.js"),["assets/bat-1c0d64c4.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/consumption_counter.vue":()=>e(()=>import("./consumption_counter-7647f4a4.js"),["assets/consumption_counter-7647f4a4.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/counter.vue":()=>e(()=>import("./counter-4d76f760.js"),["assets/counter-4d76f760.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/device.vue":()=>e(()=>import("./device-32f19508.js"),["assets/device-32f19508.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/inverter.vue":()=>e(()=>import("./inverter-63be17df.js"),["assets/inverter-63be17df.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_pv_kit/inverter.vue":()=>e(()=>import("./inverter-22f3c475.js"),["assets/inverter-22f3c475.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./orno/orno/counter.vue":()=>e(()=>import("./counter-318086b9.js"),["assets/counter-318086b9.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./orno/orno/device.vue":()=>e(()=>import("./device-e7c95f73.js"),["assets/device-e7c95f73.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerdog/powerdog/counter.vue":()=>e(()=>import("./counter-6e58a73c.js"),["assets/counter-6e58a73c.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerdog/powerdog/device.vue":()=>e(()=>import("./device-e4b96323.js"),["assets/device-e4b96323.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/counter.vue":()=>e(()=>import("./counter-42cbd56b.js"),["assets/counter-42cbd56b.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/device.vue":()=>e(()=>import("./device-38f54860.js"),["assets/device-38f54860.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/inverter.vue":()=>e(()=>import("./inverter-e3f0ea6e.js"),["assets/inverter-e3f0ea6e.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./qcells/qcells/device.vue":()=>e(()=>import("./device-679bd060.js"),["assets/device-679bd060.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./rct/rct/device.vue":()=>e(()=>import("./device-0146d660.js"),["assets/device-0146d660.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./saxpower/saxpower/device.vue":()=>e(()=>import("./device-4bcd2be1.js"),["assets/device-4bcd2be1.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./shelly/shelly/counter.vue":()=>e(()=>import("./counter-e973c67a.js"),["assets/counter-e973c67a.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./shelly/shelly/device.vue":()=>e(()=>import("./device-d4ad788d.js"),["assets/device-d4ad788d.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens/device.vue":()=>e(()=>import("./device-ea6bfe36.js"),["assets/device-ea6bfe36.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens_sentron/device.vue":()=>e(()=>import("./device-b2fa9413.js"),["assets/device-b2fa9413.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/bat.vue":()=>e(()=>import("./bat-13872887.js"),["assets/bat-13872887.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/counter.vue":()=>e(()=>import("./counter-487594bd.js"),["assets/counter-487594bd.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/device.vue":()=>e(()=>import("./device-af5d2d7d.js"),["assets/device-af5d2d7d.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/inverter.vue":()=>e(()=>import("./inverter-2e0b66fa.js"),["assets/inverter-2e0b66fa.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_shm/counter.vue":()=>e(()=>import("./counter-2dd2fa82.js"),["assets/counter-2dd2fa82.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_shm/inverter.vue":()=>e(()=>import("./inverter-0e843ffe.js"),["assets/inverter-0e843ffe.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/bat.vue":()=>e(()=>import("./bat-6bbc2804.js"),["assets/bat-6bbc2804.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/bat_smart_energy.vue":()=>e(()=>import("./bat_smart_energy-5d1a08e4.js"),["assets/bat_smart_energy-5d1a08e4.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/counter.vue":()=>e(()=>import("./counter-65d7531d.js"),["assets/counter-65d7531d.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/device.vue":()=>e(()=>import("./device-b06c2ec2.js"),["assets/device-b06c2ec2.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/inverter.vue":()=>e(()=>import("./inverter-4621f53d.js"),["assets/inverter-4621f53d.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_island/bat.vue":()=>e(()=>import("./bat-e8342943.js"),["assets/bat-e8342943.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_island/device.vue":()=>e(()=>import("./device-33ce1c99.js"),["assets/device-33ce1c99.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_webbox/device.vue":()=>e(()=>import("./device-21e55a5c.js"),["assets/device-21e55a5c.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/counter.vue":()=>e(()=>import("./counter-22e7f700.js"),["assets/counter-22e7f700.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/device.vue":()=>e(()=>import("./device-a0fa95d4.js"),["assets/device-a0fa95d4.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/inverter.vue":()=>e(()=>import("./inverter-91e7bfd3.js"),["assets/inverter-91e7bfd3.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smartfox/smartfox/device.vue":()=>e(()=>import("./device-2eabedb3.js"),["assets/device-2eabedb3.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sofar/sofar/device.vue":()=>e(()=>import("./device-d8a93eb3.js"),["assets/device-d8a93eb3.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_log/solar_log/counter.vue":()=>e(()=>import("./counter-e13be6e6.js"),["assets/counter-e13be6e6.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_log/solar_log/device.vue":()=>e(()=>import("./device-ff9290bd.js"),["assets/device-ff9290bd.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_view/solar_view/device.vue":()=>e(()=>import("./device-7e0b9b28.js"),["assets/device-7e0b9b28.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_view/solar_view/inverter.vue":()=>e(()=>import("./inverter-7ff3cd0f.js"),["assets/inverter-7ff3cd0f.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_watt/solar_watt/device.vue":()=>e(()=>import("./device-bb99b0ff.js"),["assets/device-bb99b0ff.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_world/solar_world/device.vue":()=>e(()=>import("./device-960c8f20.js"),["assets/device-960c8f20.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/bat.vue":()=>e(()=>import("./bat-079d4f24.js"),["assets/bat-079d4f24.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/counter.vue":()=>e(()=>import("./counter-a51921e1.js"),["assets/counter-a51921e1.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/device.vue":()=>e(()=>import("./device-a3e29987.js"),["assets/device-a3e29987.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/external_inverter.vue":()=>e(()=>import("./external_inverter-320c1f8c.js"),["assets/external_inverter-320c1f8c.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/inverter.vue":()=>e(()=>import("./inverter-84112ddc.js"),["assets/inverter-84112ddc.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/bat.vue":()=>e(()=>import("./bat-6ce1b18c.js"),["assets/bat-6ce1b18c.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/device.vue":()=>e(()=>import("./device-61c7a6a1.js"),["assets/device-61c7a6a1.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/inverter.vue":()=>e(()=>import("./inverter-5ac0453f.js"),["assets/inverter-5ac0453f.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solax/solax/device.vue":()=>e(()=>import("./device-fb490d78.js"),["assets/device-fb490d78.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/bat.vue":()=>e(()=>import("./bat-dd5956f5.js"),["assets/bat-dd5956f5.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/counter.vue":()=>e(()=>import("./counter-4baa81b9.js"),["assets/counter-4baa81b9.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/device.vue":()=>e(()=>import("./device-a20ecbb0.js"),["assets/device-a20ecbb0.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/inverter.vue":()=>e(()=>import("./inverter-bb0b052c.js"),["assets/inverter-bb0b052c.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/bat.vue":()=>e(()=>import("./bat-351d44cb.js"),["assets/bat-351d44cb.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/counter.vue":()=>e(()=>import("./counter-8b0a5a6c.js"),["assets/counter-8b0a5a6c.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/counter_consumption.vue":()=>e(()=>import("./counter_consumption-85e2b8b0.js"),["assets/counter_consumption-85e2b8b0.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/device.vue":()=>e(()=>import("./device-ca51cc16.js"),["assets/device-ca51cc16.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/bat.vue":()=>e(()=>import("./bat-cd102e51.js"),["assets/bat-cd102e51.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/device.vue":()=>e(()=>import("./device-6b0c1cb1.js"),["assets/device-6b0c1cb1.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/inverter.vue":()=>e(()=>import("./inverter-8ac71de3.js"),["assets/inverter-8ac71de3.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sungrow/sungrow/device.vue":()=>e(()=>import("./device-5fb1a238.js"),["assets/device-5fb1a238.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sunways/sunways/device.vue":()=>e(()=>import("./device-73d2df08.js"),["assets/device-73d2df08.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tasmota/tasmota/device.vue":()=>e(()=>import("./device-34d3ea3d.js"),["assets/device-34d3ea3d.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/tesla/counter.vue":()=>e(()=>import("./counter-ad8342b8.js"),["assets/counter-ad8342b8.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/tesla/device.vue":()=>e(()=>import("./device-a0399988.js"),["assets/device-a0399988.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./thermia/thermia/counter.vue":()=>e(()=>import("./counter-9a54a193.js"),["assets/counter-9a54a193.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./thermia/thermia/device.vue":()=>e(()=>import("./device-3169972d.js"),["assets/device-3169972d.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./upower/upower/device.vue":()=>e(()=>import("./device-4d4342ed.js"),["assets/device-4d4342ed.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./varta/varta/device.vue":()=>e(()=>import("./device-a502d549.js"),["assets/device-a502d549.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./varta/varta/inverter.vue":()=>e(()=>import("./inverter-1dc39de7.js"),["assets/inverter-1dc39de7.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/bat.vue":()=>e(()=>import("./bat-038c6dbc.js"),["assets/bat-038c6dbc.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/counter.vue":()=>e(()=>import("./counter-303bf50e.js"),["assets/counter-303bf50e.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/device.vue":()=>e(()=>import("./device-f05f6339.js"),["assets/device-f05f6339.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/inverter.vue":()=>e(()=>import("./inverter-71b44c07.js"),["assets/inverter-71b44c07.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/counter.vue":()=>e(()=>import("./counter-e561a38d.js"),["assets/counter-e561a38d.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/device.vue":()=>e(()=>import("./device-b565b033.js"),["assets/device-b565b033.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/inverter.vue":()=>e(()=>import("./inverter-e6cbd119.js"),["assets/inverter-e6cbd119.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./youless/youless/device.vue":()=>e(()=>import("./device-e30832ce.js"),["assets/device-e30832ce.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./youless/youless/inverter.vue":()=>e(()=>import("./inverter-53355b39.js"),["assets/inverter-53355b39.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.device.vendor}/${this.device.type}/${this.component.type}.vue`),errorComponent:se}):z({loader:()=>x(Object.assign({"./algodue/algodue/device.vue":()=>e(()=>import("./device-1aafef64.js"),["assets/device-1aafef64.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./alpha_ess/alpha_ess/device.vue":()=>e(()=>import("./device-92fd7ab5.js"),["assets/device-92fd7ab5.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./ampere/ampere/device.vue":()=>e(()=>import("./device-ae294c78.js"),["assets/device-ae294c78.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./avm/avm/device.vue":()=>e(()=>import("./device-9f3b6855.js"),["assets/device-9f3b6855.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./azzurro_zcs/azzurro_zcs/device.vue":()=>e(()=>import("./device-f1807705.js"),["assets/device-f1807705.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./batterx/batterx/device.vue":()=>e(()=>import("./device-fae6d510.js"),["assets/device-fae6d510.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./benning/benning/device.vue":()=>e(()=>import("./device-c71ae302.js"),["assets/device-c71ae302.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./byd/byd/device.vue":()=>e(()=>import("./device-2d3d73a0.js"),["assets/device-2d3d73a0.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./carlo_gavazzi/carlo_gavazzi/device.vue":()=>e(()=>import("./device-6844ebef.js"),["assets/device-6844ebef.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/device.vue":()=>e(()=>import("./device-06ba50b0.js"),["assets/device-06ba50b0.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/device.vue":()=>e(()=>import("./device-f0df93ee.js"),["assets/device-f0df93ee.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./e3dc/e3dc/device.vue":()=>e(()=>import("./device-a8bcc901.js"),["assets/device-a8bcc901.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./elgris/elgris/device.vue":()=>e(()=>import("./device-cf37b016.js"),["assets/device-cf37b016.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/device.vue":()=>e(()=>import("./device-f410c3e0.js"),["assets/device-f410c3e0.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fems/fems/device.vue":()=>e(()=>import("./device-4e9a92f2.js"),["assets/device-4e9a92f2.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/device.vue":()=>e(()=>import("./device-47b44930.js"),["assets/device-47b44930.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/device.vue":()=>e(()=>import("./device-66495188.js"),["assets/device-66495188.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/device.vue":()=>e(()=>import("./device-85d087eb.js"),["assets/device-85d087eb.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/device.vue":()=>e(()=>import("./device-6342b415.js"),["assets/device-6342b415.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/device.vue":()=>e(()=>import("./device-5f5a7792.js"),["assets/device-5f5a7792.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./good_we/good_we/device.vue":()=>e(()=>import("./device-1d483fa9.js"),["assets/device-1d483fa9.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./growatt/growatt/device.vue":()=>e(()=>import("./device-47cdfed3.js"),["assets/device-47cdfed3.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei/device.vue":()=>e(()=>import("./device-ebeb6744.js"),["assets/device-ebeb6744.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_emma/device.vue":()=>e(()=>import("./device-3a871c58.js"),["assets/device-3a871c58.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/device.vue":()=>e(()=>import("./device-faa6a2a5.js"),["assets/device-faa6a2a5.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./janitza/janitza/device.vue":()=>e(()=>import("./device-c8cf58de.js"),["assets/device-c8cf58de.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kaco/kaco_tx/device.vue":()=>e(()=>import("./device-34c2c399.js"),["assets/device-34c2c399.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/device.vue":()=>e(()=>import("./device-3d201076.js"),["assets/device-3d201076.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko_old/device.vue":()=>e(()=>import("./device-b04921b7.js"),["assets/device-b04921b7.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_plenticore/device.vue":()=>e(()=>import("./device-1079b467.js"),["assets/device-1079b467.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_sem/device.vue":()=>e(()=>import("./device-32911862.js"),["assets/device-32911862.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_steca/device.vue":()=>e(()=>import("./device-25c93738.js"),["assets/device-25c93738.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./lg/lg/device.vue":()=>e(()=>import("./device-9308334a.js"),["assets/device-9308334a.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/device.vue":()=>e(()=>import("./device-972a24e1.js"),["assets/device-972a24e1.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mystrom/mystrom/device.vue":()=>e(()=>import("./device-e172cd2d.js"),["assets/device-e172cd2d.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./nibe/nibe/device.vue":()=>e(()=>import("./device-7571a6e9.js"),["assets/device-7571a6e9.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./opendtu/opendtu/device.vue":()=>e(()=>import("./device-212d2c90.js"),["assets/device-212d2c90.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/device.vue":()=>e(()=>import("./device-32f19508.js"),["assets/device-32f19508.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./orno/orno/device.vue":()=>e(()=>import("./device-e7c95f73.js"),["assets/device-e7c95f73.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerdog/powerdog/device.vue":()=>e(()=>import("./device-e4b96323.js"),["assets/device-e4b96323.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/device.vue":()=>e(()=>import("./device-38f54860.js"),["assets/device-38f54860.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./qcells/qcells/device.vue":()=>e(()=>import("./device-679bd060.js"),["assets/device-679bd060.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./rct/rct/device.vue":()=>e(()=>import("./device-0146d660.js"),["assets/device-0146d660.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./saxpower/saxpower/device.vue":()=>e(()=>import("./device-4bcd2be1.js"),["assets/device-4bcd2be1.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./shelly/shelly/device.vue":()=>e(()=>import("./device-d4ad788d.js"),["assets/device-d4ad788d.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens/device.vue":()=>e(()=>import("./device-ea6bfe36.js"),["assets/device-ea6bfe36.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens_sentron/device.vue":()=>e(()=>import("./device-b2fa9413.js"),["assets/device-b2fa9413.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/device.vue":()=>e(()=>import("./device-af5d2d7d.js"),["assets/device-af5d2d7d.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/device.vue":()=>e(()=>import("./device-b06c2ec2.js"),["assets/device-b06c2ec2.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_island/device.vue":()=>e(()=>import("./device-33ce1c99.js"),["assets/device-33ce1c99.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_webbox/device.vue":()=>e(()=>import("./device-21e55a5c.js"),["assets/device-21e55a5c.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/device.vue":()=>e(()=>import("./device-a0fa95d4.js"),["assets/device-a0fa95d4.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smartfox/smartfox/device.vue":()=>e(()=>import("./device-2eabedb3.js"),["assets/device-2eabedb3.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sofar/sofar/device.vue":()=>e(()=>import("./device-d8a93eb3.js"),["assets/device-d8a93eb3.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_log/solar_log/device.vue":()=>e(()=>import("./device-ff9290bd.js"),["assets/device-ff9290bd.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_view/solar_view/device.vue":()=>e(()=>import("./device-7e0b9b28.js"),["assets/device-7e0b9b28.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_watt/solar_watt/device.vue":()=>e(()=>import("./device-bb99b0ff.js"),["assets/device-bb99b0ff.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_world/solar_world/device.vue":()=>e(()=>import("./device-960c8f20.js"),["assets/device-960c8f20.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/device.vue":()=>e(()=>import("./device-a3e29987.js"),["assets/device-a3e29987.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/device.vue":()=>e(()=>import("./device-61c7a6a1.js"),["assets/device-61c7a6a1.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solax/solax/device.vue":()=>e(()=>import("./device-fb490d78.js"),["assets/device-fb490d78.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/device.vue":()=>e(()=>import("./device-a20ecbb0.js"),["assets/device-a20ecbb0.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/device.vue":()=>e(()=>import("./device-ca51cc16.js"),["assets/device-ca51cc16.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/device.vue":()=>e(()=>import("./device-6b0c1cb1.js"),["assets/device-6b0c1cb1.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sungrow/sungrow/device.vue":()=>e(()=>import("./device-5fb1a238.js"),["assets/device-5fb1a238.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sunways/sunways/device.vue":()=>e(()=>import("./device-73d2df08.js"),["assets/device-73d2df08.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tasmota/tasmota/device.vue":()=>e(()=>import("./device-34d3ea3d.js"),["assets/device-34d3ea3d.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/tesla/device.vue":()=>e(()=>import("./device-a0399988.js"),["assets/device-a0399988.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./thermia/thermia/device.vue":()=>e(()=>import("./device-3169972d.js"),["assets/device-3169972d.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./upower/upower/device.vue":()=>e(()=>import("./device-4d4342ed.js"),["assets/device-4d4342ed.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./varta/varta/device.vue":()=>e(()=>import("./device-a502d549.js"),["assets/device-a502d549.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/device.vue":()=>e(()=>import("./device-f05f6339.js"),["assets/device-f05f6339.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/device.vue":()=>e(()=>import("./device-b565b033.js"),["assets/device-b565b033.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./youless/youless/device.vue":()=>e(()=>import("./device-e30832ce.js"),["assets/device-e30832ce.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.device.vendor}/${this.device.type}/device.vue`),errorComponent:_e})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function me(t,o,i,m,s,n){return v(),E(Z(n.getComponent()),{device:i.device,component:i.component,configuration:i.component?i.component.configuration:i.device.configuration,"device-id":i.device.id,"device-type":i.device.type,"component-id":i.component?i.component.id:void 0,"component-type":i.component?i.component.type:void 0,"onUpdate:configuration":o[0]||(o[0]=l=>n.updateConfiguration(l))},null,40,["device","component","configuration","device-id","device-type","component-id","component-type"])}const pe=I(ae,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbConfigProxy.vue"]]);S.add(U,q,G,N,K,F,H);const le={name:"OpenwbHardwareInstallationView",components:{FontAwesomeIcon:$,OpenwbConfigProxy:pe},mixins:[J],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/counter/get/hierarchy","openWB/system/device/+/config","openWB/system/device/+/component/+/config","openWB/system/configurable/devices_components"],selectedVendor:void 0,deviceToAdd:void 0,showDeviceRemoveModal:!1,modalDevice:void 0,modalDeviceName:"",componentToAdd:[],showComponentRemoveModal:!1,modalComponent:void 0,modalComponentName:""}},computed:{installedDevices:{get(){return this.getWildcardTopics("openWB/system/device/+/config")}},installedComponents:{get(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")}},vendorList:{get(){return this.$store.state.mqtt["openWB/system/configurable/devices_components"]===void 0?[]:Object.entries(this.$store.state.mqtt["openWB/system/configurable/devices_components"]).map(([t,o])=>({label:o.group_name,options:Object.entries(o.vendors).map(([i,m])=>({value:[t,i],text:m.vendor_name})).sort((i,m)=>i.text.localeCompare(m.text))})).sort((t,o)=>-t.label.localeCompare(o.label))}},deviceList:{get(){if(this.selectedVendor===void 0)return[];let[t,o]=this.selectedVendor;return Object.entries(this.$store.state.mqtt["openWB/system/configurable/devices_components"][t].vendors[o].devices).map(([i,m])=>({value:[o,i],text:m.device_name})).sort((i,m)=>i.text.localeCompare(m.text))}}},methods:{getComponentTypeClass(t){return t.match(/^(.+_)?counter(_.+)?$/)?"danger":t.match(/^(.+_)?inverter(_.+)?$/)?"success":t.match(/^(.+_)?bat(_.+)?$/)?"warning":"dark"},getComponentTypeIcon(t){return t.match(/^(.+_)?counter(_.+)?$/)?["fas","fa-gauge-high"]:t.match(/^(.+_)?inverter(_.+)?$/)?["fas","fa-solar-panel"]:t.match(/^(.+_)?bat(_.+)?$/)?["fas","fa-car-battery"]:["fas","fa-microchip"]},getMyInstalledComponents(t){return this.getWildcardTopics("openWB/system/device/"+t+"/component/+/config")},deviceHasConfiguredComponents(t){return Object.keys(this.getMyInstalledComponents(t)).length>0},addDevice(){this.$emit("sendCommand",{command:"addDevice",data:{vendor:this.deviceToAdd[0],type:this.deviceToAdd[1]}})},removeDeviceModal(t,o,i){i.stopPropagation(),this.modalDevice=t,this.modalDeviceName=o,this.showDeviceRemoveModal=!0},removeDevice(t){this.showDeviceRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeDevice",data:{id:this.modalDevice}})},addComponent(t,o,i,m){this.$emit("sendCommand",{command:"addComponent",data:{deviceId:t,deviceType:i,deviceVendor:o,type:m}})},removeComponentModal(t,o,i,m,s){s.stopPropagation(),this.modalComponent={deviceId:t,id:o,type:i},this.modalComponentName=m,this.showComponentRemoveModal=!0},removeComponent(t){this.showComponentRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeComponent",data:this.modalComponent})},getComponentList(t,o){if(t===void 0||o===void 0)return[];let i=[];return Object.values(this.$store.state.mqtt["openWB/system/configurable/devices_components"]).every(m=>m.vendors[t]!==void 0?(m.vendors[t].devices[o]!==void 0&&(i=Object.entries(m.vendors[t].devices[o].components).map(([n,l])=>({value:n,text:l.component_name}))),!1):!0),i},updateConfiguration(t,o){console.debug("updateConfiguration",t,o),this.updateState(t,o.value,o.object)}}},ce={class:"hardwareInstallation"},Ee={name:"hardwareInstallationForm"},ge={key:0},Ve={key:1},fe={key:1},Oe={key:0};function Te(t,o,i,m,s,n){const l=p("openwb-base-modal-dialog"),b=p("router-link"),T=p("openwb-base-alert"),A=p("font-awesome-icon"),D=p("openwb-base-avatar"),P=p("openwb-base-text-input"),C=p("openwb-config-proxy"),M=p("openwb-base-heading"),w=p("openwb-base-card"),y=p("openwb-base-select-input"),j=p("openwb-base-submit-buttons");return v(),g(L,null,[u(l,{show:s.showDeviceRemoveModal,title:"Gerät löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:n.removeDevice},{default:r(()=>[d(' Wollen Sie das Gerät "'+f(s.modalDeviceName)+'" inklusive aller Komponenten wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),u(l,{show:s.showComponentRemoveModal,title:"Komponente löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:n.removeComponent},{default:r(()=>[d(' Wollen Sie die Komponente "'+f(s.modalComponentName)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),c("div",ce,[c("form",Ee,[i.installAssistantActive?R("",!0):(v(),E(T,{key:0,subtype:"info"},{default:r(()=>[o[7]||(o[7]=d(" Wenn neue Komponenten - insbesondere Zähler - konfiguriert wurden, ist auch das ",-1)),u(b,{to:"/LoadManagementConfiguration"},{default:r(()=>[...o[6]||(o[6]=[d(" Lastmanagement ",-1)])]),_:1}),o[8]||(o[8]=d(" zu prüfen!",-1)),o[9]||(o[9]=c("br",null,null,-1)),o[10]||(o[10]=d(" Je nach Hersteller muss eventuell die Kommunikation im Wechselrichter freigegeben werden (z.B. Aktivierung Modbus TCP, Portfreigaben o.Ä.) ",-1))]),_:1})),u(w,{title:"Geräte und Komponenten"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(v(),g("div",ge,[u(T,{subtype:"info"},{default:r(()=>[...o[11]||(o[11]=[d(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(v(),g("div",Ve,[(v(!0),g(L,null,k(n.installedDevices,(_,h)=>(v(),E(w,{key:h,collapsible:!0,collapsed:!0,subtype:"dark"},{header:r(()=>[u(A,{icon:["fas","network-wired"]}),d(" "+f(_==null?void 0:_.name),1)]),actions:r(a=>[a.collapsed?(v(),g("div",fe,[(v(!0),g(L,null,k(n.getMyInstalledComponents(_==null?void 0:_.id),V=>(v(),E(D,{key:V.id,class:Y("ml-1 bg-"+n.getComponentTypeClass(V.type))},{default:r(()=>[u(A,{icon:n.getComponentTypeIcon(V.type)},null,8,["icon"])]),_:2},1032,["class"]))),128))])):(v(),E(D,{key:0,class:"bg-danger clickable",onClick:V=>n.removeDeviceModal(_==null?void 0:_.id,_==null?void 0:_.name,V)},{default:r(()=>[u(A,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:r(()=>[u(P,{title:"Bezeichnung",subtype:"text","model-value":_==null?void 0:_.name,"onUpdate:modelValue":a=>t.updateState(h,a,"name")},null,8,["model-value","onUpdate:modelValue"]),o[19]||(o[19]=c("hr",null,null,-1)),u(C,{device:_,"onUpdate:configuration":a=>n.updateConfiguration(h,a)},null,8,["device","onUpdate:configuration"]),o[20]||(o[20]=c("hr",null,null,-1)),u(M,null,{default:r(()=>[...o[12]||(o[12]=[d("Komponenten",-1)])]),_:1}),n.deviceHasConfiguredComponents(_==null?void 0:_.id)?R("",!0):(v(),E(T,{key:0,subtype:"warning"},{default:r(()=>[...o[13]||(o[13]=[d(" Es wurden noch keine Komponenten zu diesem Gerät angelegt. ",-1)])]),_:1})),(v(!0),g(L,null,k(n.getMyInstalledComponents(_.id),(a,V)=>(v(),E(w,{key:a.id,collapsible:!0,collapsed:!0,subtype:n.getComponentTypeClass(a.type)},{header:r(()=>[u(A,{icon:n.getComponentTypeIcon(a.type)},null,8,["icon"]),d(" "+f(a.name),1)]),actions:r(O=>[O.collapsed?R("",!0):(v(),E(D,{key:0,class:"bg-danger clickable",onClick:W=>n.removeComponentModal(_.id,a.id,a.type,a.name,W)},{default:r(()=>[u(A,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:r(()=>[u(P,{title:"Bezeichnung",subtype:"text","model-value":a.name,"onUpdate:modelValue":O=>t.updateState(V,O,"name")},null,8,["model-value","onUpdate:modelValue"]),u(P,{title:"Hersteller",subtype:"text","model-value":a.info.manufacturer,"onUpdate:modelValue":O=>t.updateState(V,O,"info.manufacturer")},{help:r(()=>[...o[14]||(o[14]=[d(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),u(P,{title:"Modell",subtype:"text","model-value":a.info.model,"onUpdate:modelValue":O=>t.updateState(V,O,"info.model")},{help:r(()=>[...o[15]||(o[15]=[d(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),o[16]||(o[16]=c("hr",null,null,-1)),u(C,{device:_,component:a,"onUpdate:configuration":O=>n.updateConfiguration(V,O)},null,8,["device","component","onUpdate:configuration"])]),_:2},1032,["subtype"]))),128)),o[21]||(o[21]=c("hr",null,null,-1)),n.getComponentList(_.vendor,_.type).length?(v(),E(y,{key:1,title:"Verfügbare Komponenten","not-selected":"Bitte auswählen",options:n.getComponentList(_.vendor,_.type),"model-value":s.componentToAdd[_.id],"add-button":!0,"onUpdate:modelValue":a=>s.componentToAdd[_.id]=a,"onInput:add":a=>n.addComponent(_.id,_.vendor,_.type,s.componentToAdd[_.id])},{help:r(()=>[...o[17]||(o[17]=[d(" Bitte eine Komponente auswählen, die hinzugefügt werden soll. Für jeden Datensatz, z.B. Wechselrichter- und Batteriedaten, muss eine Wechselrichter- und eine Batteriekomponente hinzugefügt werden. ",-1)])]),_:1},8,["options","model-value","onUpdate:modelValue","onInput:add"])):(v(),E(T,{key:2,subtype:"info"},{default:r(()=>[...o[18]||(o[18]=[d(" Dieses System bietet keine Komponenten zur Installation an. ",-1)])]),_:1}))]),_:2},1024))),128)),Object.keys(n.installedDevices).length>0?(v(),g("hr",Oe)):R("",!0),u(y,{modelValue:s.selectedVendor,"onUpdate:modelValue":o[0]||(o[0]=_=>s.selectedVendor=_),title:"Hersteller","not-selected":"Bitte auswählen",groups:n.vendorList},null,8,["modelValue","groups"]),u(y,{modelValue:s.deviceToAdd,"onUpdate:modelValue":[o[1]||(o[1]=_=>s.deviceToAdd=_),o[2]||(o[2]=_=>s.deviceToAdd=_)],title:"Verfügbare Geräte","not-selected":"Bitte auswählen",disabled:s.selectedVendor===void 0,options:n.deviceList,"model-value":s.deviceToAdd,"add-button":!0,"onInput:add":n.addDevice},{help:r(()=>[...o[22]||(o[22]=[c("p",null,[d(' Die openWB-Regelung ist auf Werte von Messpunkten (Zähler, Energy Meter usw.) angewiesen. Hierfür werden "Geräte" und "Komponenten" verwendet.'),c("br"),d(' Ein "Gerät" wird hierbei durch seine Verbindungseinstellungen (z.B. IP-Adresse) spezifiziert (häufig durch manuelle Eingabe oder manchmal automatisch ermittelt) und kann über mehrere untergeordnete "Komponenten" verfügen, z.B. einen Messpunkt für PV-Erzeugung, einen Messpunkt für Netzeinspeisung/-bezug am EVU-Punkt usw.. Ein "Gerät" bedingt somit immer mindestens eine zugehörige "Komponente". ')],-1),c("p",null,[d(' Bsp: Werden die Werte von verschiedenen Messpunkten (z.B. PV und EVU) über die gleiche IP-Adresse abgefragt, wird dafür ein "Gerät" mit zwei "Komponenten" für PV- und EVU- Messpunkt angelegt.'),c("br"),d(' Verfügt dagegen jeder Messpunkt über eine eigene IP-Adresse, wird jeder Messpunkt als eigenes "Gerät" mit nur einer "Komponente" angelegt. ')],-1),c("p",null,' Das "Gerät" wird in der Dropdown-Liste ausgewählt und mit "+" der Regelung hinzugefügt. Im Anschluss erfolgt die Konfiguration des "Gerätes" innerhalb des schwarzen "Geräte"-Reiters. ',-1)])]),_:1},8,["modelValue","disabled","options","model-value","onInput:add"])]))]),_:1}),u(j,{"form-name":"hardwareInstallationForm",onSave:o[3]||(o[3]=_=>t.$emit("save")),onReset:o[4]||(o[4]=_=>t.$emit("reset")),onDefaults:o[5]||(o[5]=_=>t.$emit("defaults"))})])])],64)}const Ie=I(le,[["render",Te],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/HardwareInstallation.vue"]]),Le=Object.freeze(Object.defineProperty({__proto__:null,default:Ie},Symbol.toStringTag,{value:"Module"}));export{re as C,B as D,Ie as H,Le as a}; diff --git a/web/settings/assets/HardwareInstallation-be759b0c.js b/web/settings/assets/HardwareInstallation-be759b0c.js new file mode 100644 index 0000000000..95a15b690d --- /dev/null +++ b/web/settings/assets/HardwareInstallation-be759b0c.js @@ -0,0 +1 @@ +import{l as S,d as U,y as q,aj as G,ab as N,_ as K,Z as F,Y as H,F as $}from"./vendor-fortawesome-a02b6813.js";import{_ as e,C as J}from"./index-8dd8e083.js";import{_ as x}from"./dynamic-import-helper-be004503.js";import{_ as I,u as p,l as v,m as g,x as E,E as r,B as d,F as f,G as u,A as c,a2 as z,a3 as Z,z as R,N as L,M as k,q as Y}from"./vendor-25d394b4.js";const Q={props:{device:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,o=void 0){this.$emit("update:configuration",{value:t,object:o})}}},B=I(Q,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/DeviceConfigMixin.vue"]]),X={name:"DeviceFallback",mixins:[B]},ee={class:"device-fallback"},oe={key:1};function te(t,o,i,m,s,n){const l=p("openwb-base-alert"),b=p("openwb-base-textarea");return v(),g("div",ee,[Object.keys(t.device.configuration).length==0?(v(),E(l,{key:0,subtype:"info"},{default:r(()=>[d(' Der Gerät-Typ "'+f(t.device.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(v(),g("div",oe,[u(l,{subtype:"warning"},{default:r(()=>[d(' Es wurde keine Konfigurationsseite für den Geräte-Typ "'+f(t.device.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),u(b,{title:"Konfiguration",subtype:"json","model-value":t.device.configuration,"onUpdate:modelValue":o[0]||(o[0]=T=>t.updateConfiguration(T,"configuration"))},{help:r(()=>o[1]||(o[1]=[d(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),u(l,{subtype:"info"},{default:r(()=>[c("pre",null,f(JSON.stringify(t.device.configuration,void 0,2)),1)]),_:1})]))])}const _e=I(X,[["render",te],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbDeviceConfigFallback.vue"]]),ie={mixins:[B],props:{component:{type:Object,required:!0}}},re=I(ie,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/ComponentConfigMixin.vue"]]),ne={name:"ComponentFallback",mixins:[re]},ue={class:"component-fallback"},de={key:1};function ve(t,o,i,m,s,n){const l=p("openwb-base-alert"),b=p("openwb-base-textarea");return v(),g("div",ue,[Object.keys(t.component.configuration).length==0?(v(),E(l,{key:0,subtype:"info"},{default:r(()=>[d(' Der Komponenten-Typ "'+f(t.component.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(v(),g("div",de,[u(l,{subtype:"warning"},{default:r(()=>[d(' Es wurde keine Konfigurationsseite für den Komponenten-Typ "'+f(t.component.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),u(b,{title:"Konfiguration",subtype:"json","model-value":t.component.configuration,"onUpdate:modelValue":o[0]||(o[0]=T=>t.updateConfiguration(T,"configuration"))},{help:r(()=>o[1]||(o[1]=[d(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),u(l,{subtype:"info"},{default:r(()=>[c("pre",null,f(JSON.stringify(t.component.configuration,void 0,2)),1)]),_:1})]))])}const se=I(ne,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbComponentConfigFallback.vue"]]),ae={name:"OpenwbConfigProxy",props:{device:{type:Object,required:!0},component:{type:Object,required:!1,default:void 0}},emits:["update:configuration"],methods:{getComponent(){var t;return console.debug(`loading component: ${this.device.type} / ${(t=this.component)==null?void 0:t.type}`),this.component!==void 0?z({loader:()=>x(Object.assign({"./algodue/algodue/device.vue":()=>e(()=>import("./device-57c43c99.js"),["assets/device-57c43c99.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./alpha_ess/alpha_ess/device.vue":()=>e(()=>import("./device-aab545a0.js"),["assets/device-aab545a0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./ampere/ampere/device.vue":()=>e(()=>import("./device-fba9cb18.js"),["assets/device-fba9cb18.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./avm/avm/counter.vue":()=>e(()=>import("./counter-21bc2bc2.js"),["assets/counter-21bc2bc2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./avm/avm/device.vue":()=>e(()=>import("./device-d8332f79.js"),["assets/device-d8332f79.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./azzurro_zcs/azzurro_zcs/device.vue":()=>e(()=>import("./device-bba31079.js"),["assets/device-bba31079.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./batterx/batterx/device.vue":()=>e(()=>import("./device-85f57776.js"),["assets/device-85f57776.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./benning/benning/device.vue":()=>e(()=>import("./device-14c83532.js"),["assets/device-14c83532.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./benning/benning/inverter.vue":()=>e(()=>import("./inverter-b490ca31.js"),["assets/inverter-b490ca31.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./byd/byd/device.vue":()=>e(()=>import("./device-ae4f5ccf.js"),["assets/device-ae4f5ccf.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./carlo_gavazzi/carlo_gavazzi/counter.vue":()=>e(()=>import("./counter-2438b11a.js"),["assets/counter-2438b11a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./carlo_gavazzi/carlo_gavazzi/device.vue":()=>e(()=>import("./device-d7f94b0d.js"),["assets/device-d7f94b0d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/bat.vue":()=>e(()=>import("./bat-313da7a3.js"),["assets/bat-313da7a3.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/counter.vue":()=>e(()=>import("./counter-fdd1cfe4.js"),["assets/counter-fdd1cfe4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/device.vue":()=>e(()=>import("./device-160ed507.js"),["assets/device-160ed507.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/inverter.vue":()=>e(()=>import("./inverter-f4ccd46a.js"),["assets/inverter-f4ccd46a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/counter.vue":()=>e(()=>import("./counter-165ce997.js"),["assets/counter-165ce997.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/device.vue":()=>e(()=>import("./device-a0f15220.js"),["assets/device-a0f15220.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/inverter.vue":()=>e(()=>import("./inverter-e626a82d.js"),["assets/inverter-e626a82d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./e3dc/e3dc/device.vue":()=>e(()=>import("./device-b933a21c.js"),["assets/device-b933a21c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./elgris/elgris/device.vue":()=>e(()=>import("./device-2671fef8.js"),["assets/device-2671fef8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/counter.vue":()=>e(()=>import("./counter-37d67776.js"),["assets/counter-37d67776.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/device.vue":()=>e(()=>import("./device-ab579910.js"),["assets/device-ab579910.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/inverter.vue":()=>e(()=>import("./inverter-3fe8754b.js"),["assets/inverter-3fe8754b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fems/fems/bat.vue":()=>e(()=>import("./bat-caa2d54a.js"),["assets/bat-caa2d54a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fems/fems/device.vue":()=>e(()=>import("./device-0bd3c0be.js"),["assets/device-0bd3c0be.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/bat.vue":()=>e(()=>import("./bat-f72ba579.js"),["assets/bat-f72ba579.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/counter.vue":()=>e(()=>import("./counter-eadf5e57.js"),["assets/counter-eadf5e57.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/device.vue":()=>e(()=>import("./device-803b339a.js"),["assets/device-803b339a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/inverter.vue":()=>e(()=>import("./inverter-31446a68.js"),["assets/inverter-31446a68.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/bat.vue":()=>e(()=>import("./bat-1e5462e4.js"),["assets/bat-1e5462e4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/counter_sm.vue":()=>e(()=>import("./counter_sm-e0173218.js"),["assets/counter_sm-e0173218.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/device.vue":()=>e(()=>import("./device-6017ed76.js"),["assets/device-6017ed76.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/inverter_secondary.vue":()=>e(()=>import("./inverter_secondary-be8c6f76.js"),["assets/inverter_secondary-be8c6f76.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/bat.vue":()=>e(()=>import("./bat-be5c48ce.js"),["assets/bat-be5c48ce.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/counter.vue":()=>e(()=>import("./counter-d72adf8c.js"),["assets/counter-d72adf8c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/device.vue":()=>e(()=>import("./device-5c141e99.js"),["assets/device-5c141e99.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/inverter.vue":()=>e(()=>import("./inverter-7afcc2ba.js"),["assets/inverter-7afcc2ba.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/bat.vue":()=>e(()=>import("./bat-efda0fab.js"),["assets/bat-efda0fab.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/counter.vue":()=>e(()=>import("./counter-f8e5fc32.js"),["assets/counter-f8e5fc32.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/device.vue":()=>e(()=>import("./device-7c75fb7c.js"),["assets/device-7c75fb7c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/inverter.vue":()=>e(()=>import("./inverter-2e642f10.js"),["assets/inverter-2e642f10.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/bat.vue":()=>e(()=>import("./bat-1ad29484.js"),["assets/bat-1ad29484.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/counter.vue":()=>e(()=>import("./counter-1346ff10.js"),["assets/counter-1346ff10.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/device.vue":()=>e(()=>import("./device-4b1ba85f.js"),["assets/device-4b1ba85f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/inverter.vue":()=>e(()=>import("./inverter-96158dd7.js"),["assets/inverter-96158dd7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/virtual/counter.vue":()=>e(()=>import("./counter-1f565ee4.js"),["assets/counter-1f565ee4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./good_we/good_we/bat.vue":()=>e(()=>import("./bat-74a30937.js"),["assets/bat-74a30937.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./good_we/good_we/device.vue":()=>e(()=>import("./device-2c55f22c.js"),["assets/device-2c55f22c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./growatt/growatt/device.vue":()=>e(()=>import("./device-45750f00.js"),["assets/device-45750f00.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei/device.vue":()=>e(()=>import("./device-9962b0b8.js"),["assets/device-9962b0b8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_emma/device.vue":()=>e(()=>import("./device-b94aa2cd.js"),["assets/device-b94aa2cd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/bat.vue":()=>e(()=>import("./bat-02c96333.js"),["assets/bat-02c96333.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/counter.vue":()=>e(()=>import("./counter-70de76b4.js"),["assets/counter-70de76b4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/device.vue":()=>e(()=>import("./device-0ff1683d.js"),["assets/device-0ff1683d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/inverter.vue":()=>e(()=>import("./inverter-d8e7de15.js"),["assets/inverter-d8e7de15.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./janitza/janitza/counter.vue":()=>e(()=>import("./counter-332c42a7.js"),["assets/counter-332c42a7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./janitza/janitza/device.vue":()=>e(()=>import("./device-35f7717e.js"),["assets/device-35f7717e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kaco/kaco_tx/device.vue":()=>e(()=>import("./device-77ab491f.js"),["assets/device-77ab491f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kaco/kaco_tx/inverter.vue":()=>e(()=>import("./inverter-97aca950.js"),["assets/inverter-97aca950.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/counter.vue":()=>e(()=>import("./counter-57c49ae6.js"),["assets/counter-57c49ae6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/device.vue":()=>e(()=>import("./device-cbf306be.js"),["assets/device-cbf306be.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/inverter.vue":()=>e(()=>import("./inverter-1484b10b.js"),["assets/inverter-1484b10b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko_old/device.vue":()=>e(()=>import("./device-18f8c834.js"),["assets/device-18f8c834.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_plenticore/counter.vue":()=>e(()=>import("./counter-70b03053.js"),["assets/counter-70b03053.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_plenticore/device.vue":()=>e(()=>import("./device-abd46e94.js"),["assets/device-abd46e94.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_sem/counter.vue":()=>e(()=>import("./counter-2aac942b.js"),["assets/counter-2aac942b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_sem/device.vue":()=>e(()=>import("./device-9dcf188a.js"),["assets/device-9dcf188a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_steca/device.vue":()=>e(()=>import("./device-05904d00.js"),["assets/device-05904d00.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_steca/inverter.vue":()=>e(()=>import("./inverter-811d2fd2.js"),["assets/inverter-811d2fd2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./lg/lg/device.vue":()=>e(()=>import("./device-e379eb65.js"),["assets/device-e379eb65.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/bat.vue":()=>e(()=>import("./bat-e4f98942.js"),["assets/bat-e4f98942.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/counter.vue":()=>e(()=>import("./counter-3c133de8.js"),["assets/counter-3c133de8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/device.vue":()=>e(()=>import("./device-37a05407.js"),["assets/device-37a05407.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/inverter.vue":()=>e(()=>import("./inverter-b447983e.js"),["assets/inverter-b447983e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mystrom/mystrom/device.vue":()=>e(()=>import("./device-8739b2fb.js"),["assets/device-8739b2fb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./nibe/nibe/counter.vue":()=>e(()=>import("./counter-e48f1cfa.js"),["assets/counter-e48f1cfa.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./nibe/nibe/device.vue":()=>e(()=>import("./device-ad31bc6c.js"),["assets/device-ad31bc6c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./opendtu/opendtu/device.vue":()=>e(()=>import("./device-86e0a461.js"),["assets/device-86e0a461.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./opendtu/opendtu/inverter.vue":()=>e(()=>import("./inverter-bc849b92.js"),["assets/inverter-bc849b92.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_bat_kit/bat.vue":()=>e(()=>import("./bat-e9ec040d.js"),["assets/bat-e9ec040d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_evu_kit/bat.vue":()=>e(()=>import("./bat-e326742a.js"),["assets/bat-e326742a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_evu_kit/counter.vue":()=>e(()=>import("./counter-01d8e9a4.js"),["assets/counter-01d8e9a4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_evu_kit/inverter.vue":()=>e(()=>import("./inverter-d41890ab.js"),["assets/inverter-d41890ab.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/bat.vue":()=>e(()=>import("./bat-24ebfa6e.js"),["assets/bat-24ebfa6e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/consumption_counter.vue":()=>e(()=>import("./consumption_counter-1c9b3251.js"),["assets/consumption_counter-1c9b3251.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/counter.vue":()=>e(()=>import("./counter-8950294b.js"),["assets/counter-8950294b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/device.vue":()=>e(()=>import("./device-4359519d.js"),["assets/device-4359519d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/inverter.vue":()=>e(()=>import("./inverter-948bcdb7.js"),["assets/inverter-948bcdb7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_pv_kit/inverter.vue":()=>e(()=>import("./inverter-218dfb39.js"),["assets/inverter-218dfb39.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./orno/orno/counter.vue":()=>e(()=>import("./counter-32894ee7.js"),["assets/counter-32894ee7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./orno/orno/device.vue":()=>e(()=>import("./device-4b49e69a.js"),["assets/device-4b49e69a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerdog/powerdog/counter.vue":()=>e(()=>import("./counter-f02f171d.js"),["assets/counter-f02f171d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerdog/powerdog/device.vue":()=>e(()=>import("./device-bb1ccbe7.js"),["assets/device-bb1ccbe7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/counter.vue":()=>e(()=>import("./counter-76544a83.js"),["assets/counter-76544a83.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/device.vue":()=>e(()=>import("./device-c8921d75.js"),["assets/device-c8921d75.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/inverter.vue":()=>e(()=>import("./inverter-f1be98fb.js"),["assets/inverter-f1be98fb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./qcells/qcells/device.vue":()=>e(()=>import("./device-022cb7a5.js"),["assets/device-022cb7a5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./rct/rct/device.vue":()=>e(()=>import("./device-8ec43ff9.js"),["assets/device-8ec43ff9.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./saxpower/saxpower/device.vue":()=>e(()=>import("./device-54b2f204.js"),["assets/device-54b2f204.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./shelly/shelly/counter.vue":()=>e(()=>import("./counter-189db4df.js"),["assets/counter-189db4df.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./shelly/shelly/device.vue":()=>e(()=>import("./device-4bbfca01.js"),["assets/device-4bbfca01.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens/device.vue":()=>e(()=>import("./device-115ca373.js"),["assets/device-115ca373.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens_sentron/device.vue":()=>e(()=>import("./device-3c6d5af6.js"),["assets/device-3c6d5af6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/bat.vue":()=>e(()=>import("./bat-e176c2ff.js"),["assets/bat-e176c2ff.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/counter.vue":()=>e(()=>import("./counter-6e1d95d5.js"),["assets/counter-6e1d95d5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/device.vue":()=>e(()=>import("./device-444877fe.js"),["assets/device-444877fe.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/inverter.vue":()=>e(()=>import("./inverter-01923309.js"),["assets/inverter-01923309.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_shm/counter.vue":()=>e(()=>import("./counter-8725308d.js"),["assets/counter-8725308d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_shm/inverter.vue":()=>e(()=>import("./inverter-3370b8b6.js"),["assets/inverter-3370b8b6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/bat.vue":()=>e(()=>import("./bat-5c9d3bae.js"),["assets/bat-5c9d3bae.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/bat_smart_energy.vue":()=>e(()=>import("./bat_smart_energy-af221efd.js"),["assets/bat_smart_energy-af221efd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/counter.vue":()=>e(()=>import("./counter-f2628932.js"),["assets/counter-f2628932.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/device.vue":()=>e(()=>import("./device-6081837f.js"),["assets/device-6081837f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/inverter.vue":()=>e(()=>import("./inverter-809f70c1.js"),["assets/inverter-809f70c1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_island/bat.vue":()=>e(()=>import("./bat-2e0391d4.js"),["assets/bat-2e0391d4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_island/device.vue":()=>e(()=>import("./device-91d8873a.js"),["assets/device-91d8873a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_webbox/device.vue":()=>e(()=>import("./device-b3265f86.js"),["assets/device-b3265f86.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/counter.vue":()=>e(()=>import("./counter-d73a3f9b.js"),["assets/counter-d73a3f9b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/device.vue":()=>e(()=>import("./device-46ed909c.js"),["assets/device-46ed909c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/inverter.vue":()=>e(()=>import("./inverter-254014f2.js"),["assets/inverter-254014f2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smartfox/smartfox/device.vue":()=>e(()=>import("./device-04198354.js"),["assets/device-04198354.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sofar/sofar/device.vue":()=>e(()=>import("./device-026ba885.js"),["assets/device-026ba885.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_log/solar_log/counter.vue":()=>e(()=>import("./counter-c7ccca56.js"),["assets/counter-c7ccca56.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_log/solar_log/device.vue":()=>e(()=>import("./device-7def54a5.js"),["assets/device-7def54a5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_view/solar_view/device.vue":()=>e(()=>import("./device-30bde472.js"),["assets/device-30bde472.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_view/solar_view/inverter.vue":()=>e(()=>import("./inverter-5531e828.js"),["assets/inverter-5531e828.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_watt/solar_watt/device.vue":()=>e(()=>import("./device-b2f0a632.js"),["assets/device-b2f0a632.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_world/solar_world/device.vue":()=>e(()=>import("./device-7d03d320.js"),["assets/device-7d03d320.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/bat.vue":()=>e(()=>import("./bat-d365c2cb.js"),["assets/bat-d365c2cb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/counter.vue":()=>e(()=>import("./counter-f54ee4df.js"),["assets/counter-f54ee4df.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/device.vue":()=>e(()=>import("./device-585500cc.js"),["assets/device-585500cc.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/external_inverter.vue":()=>e(()=>import("./external_inverter-8e60306f.js"),["assets/external_inverter-8e60306f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/inverter.vue":()=>e(()=>import("./inverter-423aa924.js"),["assets/inverter-423aa924.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/bat.vue":()=>e(()=>import("./bat-5276ac71.js"),["assets/bat-5276ac71.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/device.vue":()=>e(()=>import("./device-2f6474c4.js"),["assets/device-2f6474c4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/inverter.vue":()=>e(()=>import("./inverter-7bea2389.js"),["assets/inverter-7bea2389.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solax/solax/device.vue":()=>e(()=>import("./device-4c47ea65.js"),["assets/device-4c47ea65.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/bat.vue":()=>e(()=>import("./bat-381c4030.js"),["assets/bat-381c4030.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/counter.vue":()=>e(()=>import("./counter-81dd5705.js"),["assets/counter-81dd5705.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/device.vue":()=>e(()=>import("./device-9fec4861.js"),["assets/device-9fec4861.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/inverter.vue":()=>e(()=>import("./inverter-b99fda43.js"),["assets/inverter-b99fda43.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/bat.vue":()=>e(()=>import("./bat-9f789e09.js"),["assets/bat-9f789e09.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/counter.vue":()=>e(()=>import("./counter-3e1bf7f1.js"),["assets/counter-3e1bf7f1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/counter_consumption.vue":()=>e(()=>import("./counter_consumption-06ae199e.js"),["assets/counter_consumption-06ae199e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/device.vue":()=>e(()=>import("./device-52049b98.js"),["assets/device-52049b98.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/bat.vue":()=>e(()=>import("./bat-01a2f194.js"),["assets/bat-01a2f194.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/device.vue":()=>e(()=>import("./device-dcaf1061.js"),["assets/device-dcaf1061.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/inverter.vue":()=>e(()=>import("./inverter-6427ac53.js"),["assets/inverter-6427ac53.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sungrow/sungrow/device.vue":()=>e(()=>import("./device-91624bc5.js"),["assets/device-91624bc5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sunways/sunways/device.vue":()=>e(()=>import("./device-07a65d9a.js"),["assets/device-07a65d9a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tasmota/tasmota/device.vue":()=>e(()=>import("./device-3a96f207.js"),["assets/device-3a96f207.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/tesla/counter.vue":()=>e(()=>import("./counter-fdeb4506.js"),["assets/counter-fdeb4506.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/tesla/device.vue":()=>e(()=>import("./device-ea2ecac8.js"),["assets/device-ea2ecac8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./thermia/thermia/counter.vue":()=>e(()=>import("./counter-c21587d3.js"),["assets/counter-c21587d3.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./thermia/thermia/device.vue":()=>e(()=>import("./device-daf6231d.js"),["assets/device-daf6231d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./upower/upower/device.vue":()=>e(()=>import("./device-6ea8eb37.js"),["assets/device-6ea8eb37.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./varta/varta/device.vue":()=>e(()=>import("./device-b3818b6c.js"),["assets/device-b3818b6c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./varta/varta/inverter.vue":()=>e(()=>import("./inverter-0b8cbadd.js"),["assets/inverter-0b8cbadd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/bat.vue":()=>e(()=>import("./bat-18693c33.js"),["assets/bat-18693c33.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/counter.vue":()=>e(()=>import("./counter-aa5bda67.js"),["assets/counter-aa5bda67.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/device.vue":()=>e(()=>import("./device-2251901f.js"),["assets/device-2251901f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/inverter.vue":()=>e(()=>import("./inverter-332388ea.js"),["assets/inverter-332388ea.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/counter.vue":()=>e(()=>import("./counter-ac45f9c2.js"),["assets/counter-ac45f9c2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/device.vue":()=>e(()=>import("./device-7a7db35b.js"),["assets/device-7a7db35b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/inverter.vue":()=>e(()=>import("./inverter-9022a53b.js"),["assets/inverter-9022a53b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./youless/youless/device.vue":()=>e(()=>import("./device-24f54dcc.js"),["assets/device-24f54dcc.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./youless/youless/inverter.vue":()=>e(()=>import("./inverter-ea38ab2a.js"),["assets/inverter-ea38ab2a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.device.vendor}/${this.device.type}/${this.component.type}.vue`),errorComponent:se}):z({loader:()=>x(Object.assign({"./algodue/algodue/device.vue":()=>e(()=>import("./device-57c43c99.js"),["assets/device-57c43c99.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./alpha_ess/alpha_ess/device.vue":()=>e(()=>import("./device-aab545a0.js"),["assets/device-aab545a0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./ampere/ampere/device.vue":()=>e(()=>import("./device-fba9cb18.js"),["assets/device-fba9cb18.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./avm/avm/device.vue":()=>e(()=>import("./device-d8332f79.js"),["assets/device-d8332f79.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./azzurro_zcs/azzurro_zcs/device.vue":()=>e(()=>import("./device-bba31079.js"),["assets/device-bba31079.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./batterx/batterx/device.vue":()=>e(()=>import("./device-85f57776.js"),["assets/device-85f57776.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./benning/benning/device.vue":()=>e(()=>import("./device-14c83532.js"),["assets/device-14c83532.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./byd/byd/device.vue":()=>e(()=>import("./device-ae4f5ccf.js"),["assets/device-ae4f5ccf.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./carlo_gavazzi/carlo_gavazzi/device.vue":()=>e(()=>import("./device-d7f94b0d.js"),["assets/device-d7f94b0d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/device.vue":()=>e(()=>import("./device-160ed507.js"),["assets/device-160ed507.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/device.vue":()=>e(()=>import("./device-a0f15220.js"),["assets/device-a0f15220.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./e3dc/e3dc/device.vue":()=>e(()=>import("./device-b933a21c.js"),["assets/device-b933a21c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./elgris/elgris/device.vue":()=>e(()=>import("./device-2671fef8.js"),["assets/device-2671fef8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/device.vue":()=>e(()=>import("./device-ab579910.js"),["assets/device-ab579910.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fems/fems/device.vue":()=>e(()=>import("./device-0bd3c0be.js"),["assets/device-0bd3c0be.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/device.vue":()=>e(()=>import("./device-803b339a.js"),["assets/device-803b339a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/device.vue":()=>e(()=>import("./device-6017ed76.js"),["assets/device-6017ed76.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/device.vue":()=>e(()=>import("./device-5c141e99.js"),["assets/device-5c141e99.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/device.vue":()=>e(()=>import("./device-7c75fb7c.js"),["assets/device-7c75fb7c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/device.vue":()=>e(()=>import("./device-4b1ba85f.js"),["assets/device-4b1ba85f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./good_we/good_we/device.vue":()=>e(()=>import("./device-2c55f22c.js"),["assets/device-2c55f22c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./growatt/growatt/device.vue":()=>e(()=>import("./device-45750f00.js"),["assets/device-45750f00.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei/device.vue":()=>e(()=>import("./device-9962b0b8.js"),["assets/device-9962b0b8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_emma/device.vue":()=>e(()=>import("./device-b94aa2cd.js"),["assets/device-b94aa2cd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/device.vue":()=>e(()=>import("./device-0ff1683d.js"),["assets/device-0ff1683d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./janitza/janitza/device.vue":()=>e(()=>import("./device-35f7717e.js"),["assets/device-35f7717e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kaco/kaco_tx/device.vue":()=>e(()=>import("./device-77ab491f.js"),["assets/device-77ab491f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/device.vue":()=>e(()=>import("./device-cbf306be.js"),["assets/device-cbf306be.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko_old/device.vue":()=>e(()=>import("./device-18f8c834.js"),["assets/device-18f8c834.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_plenticore/device.vue":()=>e(()=>import("./device-abd46e94.js"),["assets/device-abd46e94.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_sem/device.vue":()=>e(()=>import("./device-9dcf188a.js"),["assets/device-9dcf188a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_steca/device.vue":()=>e(()=>import("./device-05904d00.js"),["assets/device-05904d00.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./lg/lg/device.vue":()=>e(()=>import("./device-e379eb65.js"),["assets/device-e379eb65.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/device.vue":()=>e(()=>import("./device-37a05407.js"),["assets/device-37a05407.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mystrom/mystrom/device.vue":()=>e(()=>import("./device-8739b2fb.js"),["assets/device-8739b2fb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./nibe/nibe/device.vue":()=>e(()=>import("./device-ad31bc6c.js"),["assets/device-ad31bc6c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./opendtu/opendtu/device.vue":()=>e(()=>import("./device-86e0a461.js"),["assets/device-86e0a461.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/device.vue":()=>e(()=>import("./device-4359519d.js"),["assets/device-4359519d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./orno/orno/device.vue":()=>e(()=>import("./device-4b49e69a.js"),["assets/device-4b49e69a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerdog/powerdog/device.vue":()=>e(()=>import("./device-bb1ccbe7.js"),["assets/device-bb1ccbe7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/device.vue":()=>e(()=>import("./device-c8921d75.js"),["assets/device-c8921d75.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./qcells/qcells/device.vue":()=>e(()=>import("./device-022cb7a5.js"),["assets/device-022cb7a5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./rct/rct/device.vue":()=>e(()=>import("./device-8ec43ff9.js"),["assets/device-8ec43ff9.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./saxpower/saxpower/device.vue":()=>e(()=>import("./device-54b2f204.js"),["assets/device-54b2f204.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./shelly/shelly/device.vue":()=>e(()=>import("./device-4bbfca01.js"),["assets/device-4bbfca01.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens/device.vue":()=>e(()=>import("./device-115ca373.js"),["assets/device-115ca373.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens_sentron/device.vue":()=>e(()=>import("./device-3c6d5af6.js"),["assets/device-3c6d5af6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/device.vue":()=>e(()=>import("./device-444877fe.js"),["assets/device-444877fe.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/device.vue":()=>e(()=>import("./device-6081837f.js"),["assets/device-6081837f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_island/device.vue":()=>e(()=>import("./device-91d8873a.js"),["assets/device-91d8873a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_webbox/device.vue":()=>e(()=>import("./device-b3265f86.js"),["assets/device-b3265f86.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/device.vue":()=>e(()=>import("./device-46ed909c.js"),["assets/device-46ed909c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smartfox/smartfox/device.vue":()=>e(()=>import("./device-04198354.js"),["assets/device-04198354.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sofar/sofar/device.vue":()=>e(()=>import("./device-026ba885.js"),["assets/device-026ba885.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_log/solar_log/device.vue":()=>e(()=>import("./device-7def54a5.js"),["assets/device-7def54a5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_view/solar_view/device.vue":()=>e(()=>import("./device-30bde472.js"),["assets/device-30bde472.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_watt/solar_watt/device.vue":()=>e(()=>import("./device-b2f0a632.js"),["assets/device-b2f0a632.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_world/solar_world/device.vue":()=>e(()=>import("./device-7d03d320.js"),["assets/device-7d03d320.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/device.vue":()=>e(()=>import("./device-585500cc.js"),["assets/device-585500cc.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/device.vue":()=>e(()=>import("./device-2f6474c4.js"),["assets/device-2f6474c4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solax/solax/device.vue":()=>e(()=>import("./device-4c47ea65.js"),["assets/device-4c47ea65.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/device.vue":()=>e(()=>import("./device-9fec4861.js"),["assets/device-9fec4861.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/device.vue":()=>e(()=>import("./device-52049b98.js"),["assets/device-52049b98.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/device.vue":()=>e(()=>import("./device-dcaf1061.js"),["assets/device-dcaf1061.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sungrow/sungrow/device.vue":()=>e(()=>import("./device-91624bc5.js"),["assets/device-91624bc5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sunways/sunways/device.vue":()=>e(()=>import("./device-07a65d9a.js"),["assets/device-07a65d9a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tasmota/tasmota/device.vue":()=>e(()=>import("./device-3a96f207.js"),["assets/device-3a96f207.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/tesla/device.vue":()=>e(()=>import("./device-ea2ecac8.js"),["assets/device-ea2ecac8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./thermia/thermia/device.vue":()=>e(()=>import("./device-daf6231d.js"),["assets/device-daf6231d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./upower/upower/device.vue":()=>e(()=>import("./device-6ea8eb37.js"),["assets/device-6ea8eb37.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./varta/varta/device.vue":()=>e(()=>import("./device-b3818b6c.js"),["assets/device-b3818b6c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/device.vue":()=>e(()=>import("./device-2251901f.js"),["assets/device-2251901f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/device.vue":()=>e(()=>import("./device-7a7db35b.js"),["assets/device-7a7db35b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./youless/youless/device.vue":()=>e(()=>import("./device-24f54dcc.js"),["assets/device-24f54dcc.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.device.vendor}/${this.device.type}/device.vue`),errorComponent:_e})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function me(t,o,i,m,s,n){return v(),E(Z(n.getComponent()),{device:i.device,component:i.component,configuration:i.component?i.component.configuration:i.device.configuration,"device-id":i.device.id,"device-type":i.device.type,"component-id":i.component?i.component.id:void 0,"component-type":i.component?i.component.type:void 0,"onUpdate:configuration":o[0]||(o[0]=l=>n.updateConfiguration(l))},null,40,["device","component","configuration","device-id","device-type","component-id","component-type"])}const pe=I(ae,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbConfigProxy.vue"]]);S.add(U,q,G,N,K,F,H);const le={name:"OpenwbHardwareInstallationView",components:{FontAwesomeIcon:$,OpenwbConfigProxy:pe},mixins:[J],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/counter/get/hierarchy","openWB/system/device/+/config","openWB/system/device/+/component/+/config","openWB/system/configurable/devices_components"],selectedVendor:void 0,deviceToAdd:void 0,showDeviceRemoveModal:!1,modalDevice:void 0,modalDeviceName:"",componentToAdd:[],showComponentRemoveModal:!1,modalComponent:void 0,modalComponentName:""}},computed:{installedDevices:{get(){return this.getWildcardTopics("openWB/system/device/+/config")}},installedComponents:{get(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")}},vendorList:{get(){return this.$store.state.mqtt["openWB/system/configurable/devices_components"]===void 0?[]:Object.entries(this.$store.state.mqtt["openWB/system/configurable/devices_components"]).map(([t,o])=>({label:o.group_name,options:Object.entries(o.vendors).map(([i,m])=>({value:[t,i],text:m.vendor_name})).sort((i,m)=>i.text.localeCompare(m.text))})).sort((t,o)=>-t.label.localeCompare(o.label))}},deviceList:{get(){if(this.selectedVendor===void 0)return[];let[t,o]=this.selectedVendor;return Object.entries(this.$store.state.mqtt["openWB/system/configurable/devices_components"][t].vendors[o].devices).map(([i,m])=>({value:[o,i],text:m.device_name})).sort((i,m)=>i.text.localeCompare(m.text))}}},methods:{getComponentTypeClass(t){return t.match(/^(.+_)?counter(_.+)?$/)?"danger":t.match(/^(.+_)?inverter(_.+)?$/)?"success":t.match(/^(.+_)?bat(_.+)?$/)?"warning":"dark"},getComponentTypeIcon(t){return t.match(/^(.+_)?counter(_.+)?$/)?["fas","fa-gauge-high"]:t.match(/^(.+_)?inverter(_.+)?$/)?["fas","fa-solar-panel"]:t.match(/^(.+_)?bat(_.+)?$/)?["fas","fa-car-battery"]:["fas","fa-microchip"]},getMyInstalledComponents(t){return this.getWildcardTopics("openWB/system/device/"+t+"/component/+/config")},deviceHasConfiguredComponents(t){return Object.keys(this.getMyInstalledComponents(t)).length>0},addDevice(){this.$emit("sendCommand",{command:"addDevice",data:{vendor:this.deviceToAdd[0],type:this.deviceToAdd[1]}})},removeDeviceModal(t,o,i){i.stopPropagation(),this.modalDevice=t,this.modalDeviceName=o,this.showDeviceRemoveModal=!0},removeDevice(t){this.showDeviceRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeDevice",data:{id:this.modalDevice}})},addComponent(t,o,i,m){this.$emit("sendCommand",{command:"addComponent",data:{deviceId:t,deviceType:i,deviceVendor:o,type:m}})},removeComponentModal(t,o,i,m,s){s.stopPropagation(),this.modalComponent={deviceId:t,id:o,type:i},this.modalComponentName=m,this.showComponentRemoveModal=!0},removeComponent(t){this.showComponentRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeComponent",data:this.modalComponent})},getComponentList(t,o){if(t===void 0||o===void 0)return[];let i=[];return Object.values(this.$store.state.mqtt["openWB/system/configurable/devices_components"]).every(m=>m.vendors[t]!==void 0?(m.vendors[t].devices[o]!==void 0&&(i=Object.entries(m.vendors[t].devices[o].components).map(([n,l])=>({value:n,text:l.component_name}))),!1):!0),i},updateConfiguration(t,o){console.debug("updateConfiguration",t,o),this.updateState(t,o.value,o.object)}}},ce={class:"hardwareInstallation"},Ee={name:"hardwareInstallationForm"},ge={key:0},Ve={key:1},fe={key:1},Oe={key:0};function Te(t,o,i,m,s,n){const l=p("openwb-base-modal-dialog"),b=p("router-link"),T=p("openwb-base-alert"),A=p("font-awesome-icon"),D=p("openwb-base-avatar"),P=p("openwb-base-text-input"),C=p("openwb-config-proxy"),M=p("openwb-base-heading"),w=p("openwb-base-card"),y=p("openwb-base-select-input"),j=p("openwb-base-submit-buttons");return v(),g(L,null,[u(l,{show:s.showDeviceRemoveModal,title:"Gerät löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:n.removeDevice},{default:r(()=>[d(' Wollen Sie das Gerät "'+f(s.modalDeviceName)+'" inklusive aller Komponenten wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),u(l,{show:s.showComponentRemoveModal,title:"Komponente löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:n.removeComponent},{default:r(()=>[d(' Wollen Sie die Komponente "'+f(s.modalComponentName)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),c("div",ce,[c("form",Ee,[i.installAssistantActive?R("",!0):(v(),E(T,{key:0,subtype:"info"},{default:r(()=>[o[7]||(o[7]=d(" Wenn neue Komponenten - insbesondere Zähler - konfiguriert wurden, ist auch das ",-1)),u(b,{to:"/LoadManagementConfiguration"},{default:r(()=>o[6]||(o[6]=[d(" Lastmanagement ",-1)])),_:1,__:[6]}),o[8]||(o[8]=d(" zu prüfen!",-1)),o[9]||(o[9]=c("br",null,null,-1)),o[10]||(o[10]=d(" Je nach Hersteller muss eventuell die Kommunikation im Wechselrichter freigegeben werden (z.B. Aktivierung Modbus TCP, Portfreigaben o.Ä.) ",-1))]),_:1,__:[7,8,9,10]})),u(w,{title:"Geräte und Komponenten"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(v(),g("div",ge,[u(T,{subtype:"info"},{default:r(()=>o[11]||(o[11]=[d(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[11]})])):(v(),g("div",Ve,[(v(!0),g(L,null,k(n.installedDevices,(_,h)=>(v(),E(w,{key:h,collapsible:!0,collapsed:!0,subtype:"dark"},{header:r(()=>[u(A,{icon:["fas","network-wired"]}),d(" "+f(_==null?void 0:_.name),1)]),actions:r(a=>[a.collapsed?(v(),g("div",fe,[(v(!0),g(L,null,k(n.getMyInstalledComponents(_==null?void 0:_.id),V=>(v(),E(D,{key:V.id,class:Y("ml-1 bg-"+n.getComponentTypeClass(V.type))},{default:r(()=>[u(A,{icon:n.getComponentTypeIcon(V.type)},null,8,["icon"])]),_:2},1032,["class"]))),128))])):(v(),E(D,{key:0,class:"bg-danger clickable",onClick:V=>n.removeDeviceModal(_==null?void 0:_.id,_==null?void 0:_.name,V)},{default:r(()=>[u(A,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:r(()=>[u(P,{title:"Bezeichnung",subtype:"text","model-value":_==null?void 0:_.name,"onUpdate:modelValue":a=>t.updateState(h,a,"name")},null,8,["model-value","onUpdate:modelValue"]),o[19]||(o[19]=c("hr",null,null,-1)),u(C,{device:_,"onUpdate:configuration":a=>n.updateConfiguration(h,a)},null,8,["device","onUpdate:configuration"]),o[20]||(o[20]=c("hr",null,null,-1)),u(M,null,{default:r(()=>[...o[12]||(o[12]=[d("Komponenten",-1)])]),_:1,__:[12]}),n.deviceHasConfiguredComponents(_==null?void 0:_.id)?R("",!0):(v(),E(T,{key:0,subtype:"warning"},{default:r(()=>[...o[13]||(o[13]=[d(" Es wurden noch keine Komponenten zu diesem Gerät angelegt. ",-1)])]),_:1,__:[13]})),(v(!0),g(L,null,k(n.getMyInstalledComponents(_.id),(a,V)=>(v(),E(w,{key:a.id,collapsible:!0,collapsed:!0,subtype:n.getComponentTypeClass(a.type)},{header:r(()=>[u(A,{icon:n.getComponentTypeIcon(a.type)},null,8,["icon"]),d(" "+f(a.name),1)]),actions:r(O=>[O.collapsed?R("",!0):(v(),E(D,{key:0,class:"bg-danger clickable",onClick:W=>n.removeComponentModal(_.id,a.id,a.type,a.name,W)},{default:r(()=>[u(A,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:r(()=>[u(P,{title:"Bezeichnung",subtype:"text","model-value":a.name,"onUpdate:modelValue":O=>t.updateState(V,O,"name")},null,8,["model-value","onUpdate:modelValue"]),u(P,{title:"Hersteller",subtype:"text","model-value":a.info.manufacturer,"onUpdate:modelValue":O=>t.updateState(V,O,"info.manufacturer")},{help:r(()=>[...o[14]||(o[14]=[d(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),u(P,{title:"Modell",subtype:"text","model-value":a.info.model,"onUpdate:modelValue":O=>t.updateState(V,O,"info.model")},{help:r(()=>[...o[15]||(o[15]=[d(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),o[16]||(o[16]=c("hr",null,null,-1)),u(C,{device:_,component:a,"onUpdate:configuration":O=>n.updateConfiguration(V,O)},null,8,["device","component","onUpdate:configuration"])]),_:2,__:[16]},1032,["subtype"]))),128)),o[21]||(o[21]=c("hr",null,null,-1)),n.getComponentList(_.vendor,_.type).length?(v(),E(y,{key:1,title:"Verfügbare Komponenten","not-selected":"Bitte auswählen",options:n.getComponentList(_.vendor,_.type),"model-value":s.componentToAdd[_.id],"add-button":!0,"onUpdate:modelValue":a=>s.componentToAdd[_.id]=a,"onInput:add":a=>n.addComponent(_.id,_.vendor,_.type,s.componentToAdd[_.id])},{help:r(()=>[...o[17]||(o[17]=[d(" Bitte eine Komponente auswählen, die hinzugefügt werden soll. Für jeden Datensatz, z.B. Wechselrichter- und Batteriedaten, muss eine Wechselrichter- und eine Batteriekomponente hinzugefügt werden. ",-1)])]),_:2},1032,["options","model-value","onUpdate:modelValue","onInput:add"])):(v(),E(T,{key:2,subtype:"info"},{default:r(()=>[...o[18]||(o[18]=[d(" Dieses System bietet keine Komponenten zur Installation an. ",-1)])]),_:1,__:[18]}))]),_:2,__:[19,20,21]},1024))),128)),Object.keys(n.installedDevices).length>0?(v(),g("hr",Oe)):R("",!0),u(y,{modelValue:s.selectedVendor,"onUpdate:modelValue":o[0]||(o[0]=_=>s.selectedVendor=_),title:"Hersteller","not-selected":"Bitte auswählen",groups:n.vendorList},null,8,["modelValue","groups"]),u(y,{modelValue:s.deviceToAdd,"onUpdate:modelValue":[o[1]||(o[1]=_=>s.deviceToAdd=_),o[2]||(o[2]=_=>s.deviceToAdd=_)],title:"Verfügbare Geräte","not-selected":"Bitte auswählen",disabled:s.selectedVendor===void 0,options:n.deviceList,"model-value":s.deviceToAdd,"add-button":!0,"onInput:add":n.addDevice},{help:r(()=>o[22]||(o[22]=[c("p",null,[d(' Die openWB-Regelung ist auf Werte von Messpunkten (Zähler, Energy Meter usw.) angewiesen. Hierfür werden "Geräte" und "Komponenten" verwendet.'),c("br"),d(' Ein "Gerät" wird hierbei durch seine Verbindungseinstellungen (z.B. IP-Adresse) spezifiziert (häufig durch manuelle Eingabe oder manchmal automatisch ermittelt) und kann über mehrere untergeordnete "Komponenten" verfügen, z.B. einen Messpunkt für PV-Erzeugung, einen Messpunkt für Netzeinspeisung/-bezug am EVU-Punkt usw.. Ein "Gerät" bedingt somit immer mindestens eine zugehörige "Komponente". ')],-1),c("p",null,[d(' Bsp: Werden die Werte von verschiedenen Messpunkten (z.B. PV und EVU) über die gleiche IP-Adresse abgefragt, wird dafür ein "Gerät" mit zwei "Komponenten" für PV- und EVU- Messpunkt angelegt.'),c("br"),d(' Verfügt dagegen jeder Messpunkt über eine eigene IP-Adresse, wird jeder Messpunkt als eigenes "Gerät" mit nur einer "Komponente" angelegt. ')],-1),c("p",null,' Das "Gerät" wird in der Dropdown-Liste ausgewählt und mit "+" der Regelung hinzugefügt. Im Anschluss erfolgt die Konfiguration des "Gerätes" innerhalb des schwarzen "Geräte"-Reiters. ',-1)])),_:1},8,["modelValue","disabled","options","model-value","onInput:add"])]))]),_:1}),u(j,{"form-name":"hardwareInstallationForm",onSave:o[3]||(o[3]=_=>t.$emit("save")),onReset:o[4]||(o[4]=_=>t.$emit("reset")),onDefaults:o[5]||(o[5]=_=>t.$emit("defaults"))})])])],64)}const Ie=I(le,[["render",Te],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/HardwareInstallation.vue"]]),Le=Object.freeze(Object.defineProperty({__proto__:null,default:Ie},Symbol.toStringTag,{value:"Module"}));export{re as C,B as D,Ie as H,Le as a}; diff --git a/web/settings/assets/IdentificationConfig-3d28d565.js b/web/settings/assets/IdentificationConfig-3d28d565.js deleted file mode 100644 index bce4a37450..0000000000 --- a/web/settings/assets/IdentificationConfig-3d28d565.js +++ /dev/null @@ -1,2 +0,0 @@ -import{C as $}from"./index-0992d19b.js";import{_ as w,u as p,l as o,m as s,A as l,G as a,E as r,B as i,z as f,N as B,M as W,F as b,x as y}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";const F={name:"IdentificationConfigView",mixins:[$],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/chargepoint/+/config","openWB/chargepoint/+/get/rfid","openWB/chargepoint/+/get/vehicle_id","openWB/chargepoint/+/get/rfid_timestamp","openWB/chargepoint/+/set/rfid","openWB/optional/rfid/active","openWB/chargepoint/template/+","openWB/vehicle/template/charge_template/+","openWB/vehicle/+/name","openWB/vehicle/+/charge_template","openWB/vehicle/+/tag_id"],tempIdTagList:{}}},computed:{idTagList(){return Object.values(this.updateIdTagList())},chargePointTemplates:{get(){return this.getWildcardTopics("openWB/chargepoint/template/+")}},vehicleIndexes:{get(){return this.getWildcardIndexList("openWB/vehicle/+/name")}}},methods:{getIdFromTopic(e){return e.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,"")},updateIdTagList(){return Object.entries(this.getWildcardTopics("^openWB/chargepoint/[^+/]+/[gs]et/(rfid|vehicle_id)$",!0)).forEach(e=>{e[1]!==null&&(this.tempIdTagList[e[1]]=`${e[1]} (${e[0].includes("/set/")?"zugewiesen":"erfasst"} an ${this.getChargePointName(this.getIdFromTopic(e[0]))})`)}),this.tempIdTagList},getChargePointName(e){return this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"]?this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"].name:"Ladepunkt "+e},getChargePointTemplateIndex(e){return parseInt(e.match(/([^/]+)$/)[0])},getVehicleName(e){return this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]?this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]:"Fahrzeug "+e}}},D={class:"optionalComponents"},L={name:"optionalComponentsForm"},I={key:0},q={key:1},V={key:0},S={key:0},T={key:1},E={key:2},C={key:0},N={key:0},A={key:1},P={key:2},U=["title","collapsed"],Z={key:0},j={key:0},O={key:1};function R(e,t,G,H,J,m){const u=p("openwb-base-alert"),h=p("openwb-base-button-group-input"),_=p("openwb-base-textarea"),c=p("openwb-base-card"),g=p("openwb-base-heading"),k=p("openwb-base-array-input"),z=p("openwb-base-submit-buttons");return o(),s("div",D,[l("form",L,[a(c,{title:"Identifikation"},{default:r(()=>[a(u,{subtype:"info"},{default:r(()=>[...t[4]||(t[4]=[i(" Die Identifikation kann zum Entsperren von Ladepunkten und/oder zur Zuordnung von Fahrzeugen genutzt werden und kann auf mehreren Wegen erfolgen: ",-1),l("ul",null,[l("li",null,"Über einen RFID-Reader (optional in der openWB verbaut, z.B. anhand des Lieferscheins prüfen)."),l("li",null," Durch die automatische Fahrzeugerkennung der openWB Pro/ Pro+ (in den Einstellungen der openWB Pro aktivieren). "),l("li",null,"Durch manuelle Eingabe einer ID an einer openWB mit Display.")],-1),l("p",null,"Bei openWB Pro/Pro+ werden RFID-Tags nur bei angestecktem Fahrzeug erfasst!",-1),l("p",null,[i(" Für die Erkennung kann auch ein Muster (mittels Wildcards) hinterlegt werden. Ein ? entspricht dabei einem Zeichen, ein * beliebig vielen Zeichen. So ist bspw. die Erkennung von Fahrzeugen mit wechselnder ID (u.a. Fahrzeuge der VW Gruppe) möglich."),l("br"),i(" Es wird davon abgeraten die Funktion für die Entsperrung von öffentlich zugänglichen Ladepunkten zu nutzen, um unbefugten Zugriff zu vermeiden. ")],-1)])]),_:1}),a(h,{title:"Identifikation aktivieren","model-value":e.$store.state.mqtt["openWB/optional/rfid/active"],buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":t[0]||(t[0]=n=>e.updateState("openWB/optional/rfid/active",n))},null,8,["model-value"]),e.$store.state.mqtt["openWB/general/extern"]===!0?(o(),s("div",I,[a(u,{subtype:"info"},{default:r(()=>[...t[5]||(t[5]=[i(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(o(),s("div",q,[e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(o(),s("div",V,[a(_,{title:"Erkannte ID-Tags",readonly:"",disabled:"","model-value":m.idTagList.join(` -`)},null,8,["model-value"])])):f("",!0)]))]),_:1}),a(g,{class:"mt-0"},{default:r(()=>[...t[6]||(t[6]=[i(" Entsperren von Ladepunkten (gekoppelt an Ladepunkt-Profil) ",-1)])]),_:1}),l("div",null,[a(c,{title:"Ladepunkt-Profile",collapsible:!0,collapsed:!0},{default:r(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(o(),s("div",S,[a(u,{subtype:"info"},{default:r(()=>[...t[7]||(t[7]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet.',-1),l("br",null,null,-1),i(' Die Konfiguration zum Entsperren von Ladepunkten bitte auf der "primary" openWB durchführen. ',-1)])]),_:1})])):e.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(o(),s("div",T,[a(u,{subtype:"info"},{default:r(()=>[...t[8]||(t[8]=[i(" Diese Einstellungen sind nur verfügbar, wenn Identifikation aktiviert ist. ",-1)])]),_:1})])):(o(),s("div",E,[a(u,{subtype:"info"},{default:r(()=>[...t[9]||(t[9]=[i(" Hier zugeordnete ID-Tags entsperren beim Scannen das jeweilige Ladepunkt-Profil. Der ID-Tag kann an jedem Ladepunkt genutzt werden, dem das entsprechende Ladepunkt-Profil zugeordnet wurde. ",-1)])]),_:1}),(o(!0),s(B,null,W(m.chargePointTemplates,(n,d)=>(o(),s("div",{key:d},[a(g,{class:"mt-0"},{default:r(()=>[i(b(n.name),1)]),_:2},1024),e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(o(),s("div",C,[a(k,{title:"Zugeordnete ID-Tags","no-elements-message":'"'+n.name+'" sind keine ID-Tags zugeordnet.',pattern:"^[^\\s].*[^\\s]$","model-value":n.valid_tags,"onUpdate:modelValue":v=>e.updateState(d,v,"valid_tags")},null,8,["no-elements-message","model-value","onUpdate:modelValue"])])):f("",!0),a(h,{title:"Sperre nach Abstecken",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.disable_after_unplug,"onUpdate:modelValue":v=>e.updateState(d,v,"disable_after_unplug")},{help:r(()=>[i(b('Ist "Sperre nach Abstecken" aktiviert, wird der Ladepunkt mit Ladepunkt-Profil "'+n.name+'" nach Abstecken eines Fahrzeugs automatisch gesperrt. Ist die Funktion deaktiviert, bleibt der Ladepunkt entsperrt.'),1)]),_:2},1032,["model-value","onUpdate:modelValue"]),t[10]||(t[10]=l("br",null,null,-1))]))),128))]))]),_:1})]),a(g,{class:"mt-0"},{default:r(()=>[...t[11]||(t[11]=[i(" Zuordnung von Fahrzeugen ",-1)])]),_:1}),l("div",null,[a(c,{subtype:"info",collapsible:!0,collapsed:e.$route.params.section!="vehicle"},{header:r(()=>[...t[12]||(t[12]=[i(" Fahrzeuge ",-1)])]),default:r(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(o(),s("div",N,[a(u,{subtype:"info"},{default:r(()=>[...t[13]||(t[13]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet.',-1),l("br",null,null,-1),i(' Die Konfiguration zur Fahrzeugzuordnung bitte auf der "primary" openWB durchführen. ',-1)])]),_:1})])):e.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(o(),s("div",A,[a(u,{subtype:"info"},{default:r(()=>[...t[14]||(t[14]=[i(" Diese Einstellungen sind nur verfügbar, wenn Identifikation aktiviert ist. ",-1)])]),_:1})])):(o(),s("div",P,[a(u,{subtype:"info"},{default:r(()=>[...t[15]||(t[15]=[i(" Hier zugeordnete ID-Tags weisen dem Ladepunkt beim Scannen automatisch das jeweilige Fahrzeug zu. Ist bei Scannen des ID-Tags noch kein Fahrzeug angeschlossen muss dies zeitnah erfolgen, da der ID-Tag nach 5min verworfen wird. ",-1)])]),_:1}),(o(!0),s(B,null,W(m.vehicleIndexes,n=>(o(),s("div",{key:n,title:m.getVehicleName(n),collapsible:!0,collapsed:!(e.$route.params.section=="vehicle"&&parseInt(e.$route.params.section_index)==n),subtype:"info"},[t[16]||(t[16]=l("br",null,null,-1)),a(g,{class:"mt-0"},{default:r(()=>[i(b(e.$store.state.mqtt["openWB/vehicle/"+n+"/name"]),1)]),_:2},1024),e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(o(),s("div",Z,[a(k,{title:"Zugeordnete ID-Tags","no-elements-message":'"'+e.$store.state.mqtt["openWB/vehicle/"+n+"/name"]+'" sind keine ID-Tags zugeordnet.',pattern:"^[^\\s].*[^\\s]$","model-value":e.$store.state.mqtt["openWB/vehicle/"+n+"/tag_id"],"onUpdate:modelValue":d=>e.updateState("openWB/vehicle/"+n+"/tag_id",d)},null,8,["no-elements-message","model-value","onUpdate:modelValue"])])):f("",!0),n!=0?(o(),y(h,{key:1,title:"Standard-Fahrzeug nach Abstecken zuordnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":e.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"]].load_default,"onUpdate:modelValue":d=>e.updateState("openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"],d,"load_default")},{help:r(()=>[i(b('Ist diese Option aktiviert, wird am Ladepunkt nach Abstecken auf das Standard-Fahrzeug zurückgesetzt. Die Option ist im Lade-Profil "'+e.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"]].name+'" gespeichert.')+" ",1),e.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"]].load_default===!0?(o(),s("div",j,' "Standard-Fahrzeug nach Abstecken" ist für alle Fahrzeuge aktiviert, denen dieses Lade-Profil zugeordnet wurde. ')):(o(),s("div",O,' "Standard-Fahrzeug nach Abstecken" ist für alle Fahrzeuge deaktiviert, denen dieses Lade-Profil zugeordnet wurde. '))]),_:2},1032,["model-value","onUpdate:modelValue"])):f("",!0)],8,U))),128))]))]),_:1},8,["collapsed"])]),a(z,{"form-name":"optionalComponentsForm",onSave:t[1]||(t[1]=n=>e.$emit("save")),onReset:t[2]||(t[2]=n=>e.$emit("reset")),onDefaults:t[3]||(t[3]=n=>e.$emit("defaults"))})])])}const te=w(F,[["render",R],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/IdentificationConfig.vue"]]);export{te as default}; diff --git a/web/settings/assets/IdentificationConfig-a3531ccb.js b/web/settings/assets/IdentificationConfig-a3531ccb.js new file mode 100644 index 0000000000..5f496c6e11 --- /dev/null +++ b/web/settings/assets/IdentificationConfig-a3531ccb.js @@ -0,0 +1,2 @@ +import{C as $}from"./index-8dd8e083.js";import{_ as w,u as p,l as o,m as s,A as l,G as a,E as r,B as i,z as f,N as k,M as B,F as b,x as y}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const F={name:"IdentificationConfigView",mixins:[$],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/chargepoint/+/config","openWB/chargepoint/+/get/rfid","openWB/chargepoint/+/get/vehicle_id","openWB/chargepoint/+/get/rfid_timestamp","openWB/chargepoint/+/set/rfid","openWB/optional/rfid/active","openWB/chargepoint/template/+","openWB/vehicle/template/charge_template/+","openWB/vehicle/+/name","openWB/vehicle/+/charge_template","openWB/vehicle/+/tag_id"],tempIdTagList:{}}},computed:{idTagList(){return Object.values(this.updateIdTagList())},chargePointTemplates:{get(){return this.getWildcardTopics("openWB/chargepoint/template/+")}},vehicleIndexes:{get(){return this.getWildcardIndexList("openWB/vehicle/+/name")}}},methods:{getIdFromTopic(e){return e.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,"")},updateIdTagList(){return Object.entries(this.getWildcardTopics("^openWB/chargepoint/[^+/]+/[gs]et/(rfid|vehicle_id)$",!0)).forEach(e=>{e[1]!==null&&(this.tempIdTagList[e[1]]=`${e[1]} (${e[0].includes("/set/")?"zugewiesen":"erfasst"} an ${this.getChargePointName(this.getIdFromTopic(e[0]))})`)}),this.tempIdTagList},getChargePointName(e){return this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"]?this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"].name:"Ladepunkt "+e},getChargePointTemplateIndex(e){return parseInt(e.match(/([^/]+)$/)[0])},getVehicleName(e){return this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]?this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]:"Fahrzeug "+e}}},D={class:"optionalComponents"},L={name:"optionalComponentsForm"},I={key:0},q={key:1},V={key:0},S={key:0},T={key:1},E={key:2},C={key:0},N={key:0},A={key:1},P={key:2},U=["title","collapsed"],Z={key:0},j={key:0},O={key:1};function R(e,t,G,H,J,m){const u=p("openwb-base-alert"),h=p("openwb-base-button-group-input"),W=p("openwb-base-textarea"),c=p("openwb-base-card"),g=p("openwb-base-heading"),_=p("openwb-base-array-input"),z=p("openwb-base-submit-buttons");return o(),s("div",D,[l("form",L,[a(c,{title:"Identifikation"},{default:r(()=>[a(u,{subtype:"info"},{default:r(()=>t[4]||(t[4]=[i(" Die Identifikation kann zum Entsperren von Ladepunkten und/oder zur Zuordnung von Fahrzeugen genutzt werden und kann auf mehreren Wegen erfolgen: ",-1),l("ul",null,[l("li",null,"Über einen RFID-Reader (optional in der openWB verbaut, z.B. anhand des Lieferscheins prüfen)."),l("li",null," Durch die automatische Fahrzeugerkennung der openWB Pro/ Pro+ (in den Einstellungen der openWB Pro aktivieren). "),l("li",null,"Durch manuelle Eingabe einer ID an einer openWB mit Display.")],-1),l("p",null,"Bei openWB Pro/Pro+ werden RFID-Tags nur bei angestecktem Fahrzeug erfasst!",-1),l("p",null,[i(" Für die Erkennung kann auch ein Muster (mittels Wildcards) hinterlegt werden. Ein ? entspricht dabei einem Zeichen, ein * beliebig vielen Zeichen. So ist bspw. die Erkennung von Fahrzeugen mit wechselnder ID (u.a. Fahrzeuge der VW Gruppe) möglich."),l("br"),i(" Es wird davon abgeraten die Funktion für die Entsperrung von öffentlich zugänglichen Ladepunkten zu nutzen, um unbefugten Zugriff zu vermeiden. ")],-1)])),_:1,__:[4]}),a(h,{title:"Identifikation aktivieren","model-value":e.$store.state.mqtt["openWB/optional/rfid/active"],buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":t[0]||(t[0]=n=>e.updateState("openWB/optional/rfid/active",n))},null,8,["model-value"]),e.$store.state.mqtt["openWB/general/extern"]===!0?(o(),s("div",I,[a(u,{subtype:"info"},{default:r(()=>t[5]||(t[5]=[i(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[5]})])):(o(),s("div",q,[e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(o(),s("div",V,[a(W,{title:"Erkannte ID-Tags",readonly:"",disabled:"","model-value":m.idTagList.join(` +`)},null,8,["model-value"])])):f("",!0)]))]),_:1}),a(g,{class:"mt-0"},{default:r(()=>t[6]||(t[6]=[i(" Entsperren von Ladepunkten (gekoppelt an Ladepunkt-Profil) ",-1)])),_:1,__:[6]}),l("div",null,[a(c,{title:"Ladepunkt-Profile",collapsible:!0,collapsed:!0},{default:r(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(o(),s("div",S,[a(u,{subtype:"info"},{default:r(()=>t[7]||(t[7]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet.',-1),l("br",null,null,-1),i(' Die Konfiguration zum Entsperren von Ladepunkten bitte auf der "primary" openWB durchführen. ',-1)])),_:1,__:[7]})])):e.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(o(),s("div",T,[a(u,{subtype:"info"},{default:r(()=>t[8]||(t[8]=[i(" Diese Einstellungen sind nur verfügbar, wenn Identifikation aktiviert ist. ",-1)])),_:1,__:[8]})])):(o(),s("div",E,[a(u,{subtype:"info"},{default:r(()=>t[9]||(t[9]=[i(" Hier zugeordnete ID-Tags entsperren beim Scannen das jeweilige Ladepunkt-Profil. Der ID-Tag kann an jedem Ladepunkt genutzt werden, dem das entsprechende Ladepunkt-Profil zugeordnet wurde. ",-1)])),_:1,__:[9]}),(o(!0),s(k,null,B(m.chargePointTemplates,(n,d)=>(o(),s("div",{key:d},[a(g,{class:"mt-0"},{default:r(()=>[i(b(n.name),1)]),_:2},1024),e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(o(),s("div",C,[a(_,{title:"Zugeordnete ID-Tags","no-elements-message":'"'+n.name+'" sind keine ID-Tags zugeordnet.',pattern:"^[^\\s].*[^\\s]$","model-value":n.valid_tags,"onUpdate:modelValue":v=>e.updateState(d,v,"valid_tags")},null,8,["no-elements-message","model-value","onUpdate:modelValue"])])):f("",!0),a(h,{title:"Sperre nach Abstecken",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.disable_after_unplug,"onUpdate:modelValue":v=>e.updateState(d,v,"disable_after_unplug")},{help:r(()=>[i(b('Ist "Sperre nach Abstecken" aktiviert, wird der Ladepunkt mit Ladepunkt-Profil "'+n.name+'" nach Abstecken eines Fahrzeugs automatisch gesperrt. Ist die Funktion deaktiviert, bleibt der Ladepunkt entsperrt.'),1)]),_:2},1032,["model-value","onUpdate:modelValue"]),t[10]||(t[10]=l("br",null,null,-1))]))),128))]))]),_:1})]),a(g,{class:"mt-0"},{default:r(()=>t[11]||(t[11]=[i(" Zuordnung von Fahrzeugen ",-1)])),_:1,__:[11]}),l("div",null,[a(c,{subtype:"info",collapsible:!0,collapsed:e.$route.params.section!="vehicle"},{header:r(()=>t[12]||(t[12]=[i(" Fahrzeuge ",-1)])),default:r(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(o(),s("div",N,[a(u,{subtype:"info"},{default:r(()=>t[13]||(t[13]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet.',-1),l("br",null,null,-1),i(' Die Konfiguration zur Fahrzeugzuordnung bitte auf der "primary" openWB durchführen. ',-1)])),_:1,__:[13]})])):e.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(o(),s("div",A,[a(u,{subtype:"info"},{default:r(()=>t[14]||(t[14]=[i(" Diese Einstellungen sind nur verfügbar, wenn Identifikation aktiviert ist. ",-1)])),_:1,__:[14]})])):(o(),s("div",P,[a(u,{subtype:"info"},{default:r(()=>t[15]||(t[15]=[i(" Hier zugeordnete ID-Tags weisen dem Ladepunkt beim Scannen automatisch das jeweilige Fahrzeug zu. Ist bei Scannen des ID-Tags noch kein Fahrzeug angeschlossen muss dies zeitnah erfolgen, da der ID-Tag nach 5min verworfen wird. ",-1)])),_:1,__:[15]}),(o(!0),s(k,null,B(m.vehicleIndexes,n=>(o(),s("div",{key:n,title:m.getVehicleName(n),collapsible:!0,collapsed:!(e.$route.params.section=="vehicle"&&parseInt(e.$route.params.section_index)==n),subtype:"info"},[t[16]||(t[16]=l("br",null,null,-1)),a(g,{class:"mt-0"},{default:r(()=>[i(b(e.$store.state.mqtt["openWB/vehicle/"+n+"/name"]),1)]),_:2},1024),e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(o(),s("div",Z,[a(_,{title:"Zugeordnete ID-Tags","no-elements-message":'"'+e.$store.state.mqtt["openWB/vehicle/"+n+"/name"]+'" sind keine ID-Tags zugeordnet.',pattern:"^[^\\s].*[^\\s]$","model-value":e.$store.state.mqtt["openWB/vehicle/"+n+"/tag_id"],"onUpdate:modelValue":d=>e.updateState("openWB/vehicle/"+n+"/tag_id",d)},null,8,["no-elements-message","model-value","onUpdate:modelValue"])])):f("",!0),n!=0?(o(),y(h,{key:1,title:"Standard-Fahrzeug nach Abstecken zuordnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":e.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"]].load_default,"onUpdate:modelValue":d=>e.updateState("openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"],d,"load_default")},{help:r(()=>[i(b('Ist diese Option aktiviert, wird am Ladepunkt nach Abstecken auf das Standard-Fahrzeug zurückgesetzt. Die Option ist im Lade-Profil "'+e.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"]].name+'" gespeichert.')+" ",1),e.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"]].load_default===!0?(o(),s("div",j,' "Standard-Fahrzeug nach Abstecken" ist für alle Fahrzeuge aktiviert, denen dieses Lade-Profil zugeordnet wurde. ')):(o(),s("div",O,' "Standard-Fahrzeug nach Abstecken" ist für alle Fahrzeuge deaktiviert, denen dieses Lade-Profil zugeordnet wurde. '))]),_:2},1032,["model-value","onUpdate:modelValue"])):f("",!0)],8,U))),128))]))]),_:1},8,["collapsed"])]),a(z,{"form-name":"optionalComponentsForm",onSave:t[1]||(t[1]=n=>e.$emit("save")),onReset:t[2]||(t[2]=n=>e.$emit("reset")),onDefaults:t[3]||(t[3]=n=>e.$emit("defaults"))})])])}const te=w(F,[["render",R],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/IdentificationConfig.vue"]]);export{te as default}; diff --git a/web/settings/assets/InstallAssistant-56db2231.js b/web/settings/assets/InstallAssistant-56db2231.js new file mode 100644 index 0000000000..6ed6f5ecad --- /dev/null +++ b/web/settings/assets/InstallAssistant-56db2231.js @@ -0,0 +1 @@ +import{C as r,_ as t}from"./index-8dd8e083.js";import{_}from"./dynamic-import-helper-be004503.js";import{_ as m,a2 as p,u as d,l as i,m as u,G as A,E as v,x as E,a3 as I,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const P={name:"InstallAssistantView",mixins:[r],emits:["sendCommand","save","reset","defaults"],data(){return{currentPage:0,lastPage:10,showEndAssistantModal:!1}},methods:{getInstallAssistantStepComponent(){return console.debug(`loading assistant page: ${this.currentPage}`),p({loader:()=>_(Object.assign({"../components/install_assistant/InstallAssistantStep0.vue":()=>t(()=>import("./InstallAssistantStep0-acacfc75.js"),["assets/InstallAssistantStep0-acacfc75.js","assets/index-8dd8e083.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-59e1095f.js","assets/InstallAssistantStepTemplate-930e3c07.css"]),"../components/install_assistant/InstallAssistantStep1.vue":()=>t(()=>import("./InstallAssistantStep1-a93e968d.js"),["assets/InstallAssistantStep1-a93e968d.js","assets/index-8dd8e083.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-59e1095f.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/DataManagement-52054445.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep10.vue":()=>t(()=>import("./InstallAssistantStep10-3d573bb7.js"),["assets/InstallAssistantStep10-3d573bb7.js","assets/index-8dd8e083.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-59e1095f.js","assets/InstallAssistantStepTemplate-930e3c07.css"]),"../components/install_assistant/InstallAssistantStep2.vue":()=>t(()=>import("./InstallAssistantStep2-b4941f0c.js"),["assets/InstallAssistantStep2-b4941f0c.js","assets/index-8dd8e083.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-59e1095f.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/System-9f60a387.js","assets/System-f301c290.css"]),"../components/install_assistant/InstallAssistantStep3.vue":()=>t(()=>import("./InstallAssistantStep3-b0741703.js"),["assets/InstallAssistantStep3-b0741703.js","assets/index-8dd8e083.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-59e1095f.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/GeneralConfig-cc87a1f9.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep4.1.vue":()=>t(()=>import("./InstallAssistantStep4.1-8b2ae23f.js"),["assets/InstallAssistantStep4.1-8b2ae23f.js","assets/index-8dd8e083.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-59e1095f.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/IoConfig-38958e2e.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep4.vue":()=>t(()=>import("./InstallAssistantStep4-f46d2116.js"),["assets/InstallAssistantStep4-f46d2116.js","assets/index-8dd8e083.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-59e1095f.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/ChargePointInstallation-7e22d920.js","assets/dynamic-import-helper-be004503.js","assets/ChargePointInstallation-7b9399a8.css"]),"../components/install_assistant/InstallAssistantStep5.vue":()=>t(()=>import("./InstallAssistantStep5-4a85dca5.js"),["assets/InstallAssistantStep5-4a85dca5.js","assets/index-8dd8e083.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-59e1095f.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/HardwareInstallation-be759b0c.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep6.vue":()=>t(()=>import("./InstallAssistantStep6-5c9750cb.js"),["assets/InstallAssistantStep6-5c9750cb.js","assets/index-8dd8e083.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-59e1095f.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/ChargePointInstallation-7e22d920.js","assets/dynamic-import-helper-be004503.js","assets/ChargePointInstallation-7b9399a8.css"]),"../components/install_assistant/InstallAssistantStep7.vue":()=>t(()=>import("./InstallAssistantStep7-2bd98bf0.js"),["assets/InstallAssistantStep7-2bd98bf0.js","assets/index-8dd8e083.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-59e1095f.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/LoadManagementConfig-61263fe6.js","assets/OpenwbSortableList-c7b5b151.js","assets/OpenwbSortableList-7ba533e4.css"]),"../components/install_assistant/InstallAssistantStep8.vue":()=>t(()=>import("./InstallAssistantStep8-23be5b5b.js"),["assets/InstallAssistantStep8-23be5b5b.js","assets/index-8dd8e083.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-59e1095f.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/VehicleConfig-c6e5b45b.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep9.vue":()=>t(()=>import("./InstallAssistantStep9-1aa5b6bf.js"),["assets/InstallAssistantStep9-1aa5b6bf.js","assets/index-8dd8e083.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-59e1095f.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/DataManagement-52054445.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStepTemplate.vue":()=>t(()=>import("./InstallAssistantStepTemplate-59e1095f.js"),["assets/InstallAssistantStepTemplate-59e1095f.js","assets/index-8dd8e083.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-930e3c07.css"])}),`../components/install_assistant/InstallAssistantStep${this.currentPage}.vue`)})},switchPage(s){s>=0&&s<=this.lastPage?this.currentPage=s:console.error(`invalid assistant page number: ${s}`)},endAssistantModal(){this.currentPage!=this.lastPage?this.showEndAssistantModal=!0:this.endAssistant("confirm")},endAssistant(s){this.showEndAssistantModal=!1,s=="confirm"&&(this.updateState("openWB/system/installAssistantDone",!0),this.$root.doPublish("openWB/set/system/installAssistantDone",!0),this.$router.push("/Status"))}}};function S(s,n,f,g,o,e){const l=d("openwb-base-modal-dialog");return i(),u("div",null,[A(l,{show:o.showEndAssistantModal,title:"Assistent beenden",subtype:"danger",buttons:[{text:"Beenden",event:"confirm",subtype:"danger"}],onModalResult:e.endAssistant},{default:v(()=>n[4]||(n[4]=[c(" Wollen Sie den Assistenten wirklich vorzeitig beenden? ",-1)])),_:1,__:[4]},8,["show","onModalResult"]),(i(),E(I(e.getInstallAssistantStepComponent()),{onSendCommand:n[0]||(n[0]=a=>s.$emit("sendCommand",a)),onSave:n[1]||(n[1]=a=>s.$emit("save")),onReset:n[2]||(n[2]=a=>s.$emit("reset")),onDefaults:n[3]||(n[3]=a=>s.$emit("defaults")),onSwitchPage:e.switchPage,onEndAssistant:e.endAssistantModal},null,40,["onSwitchPage","onEndAssistant"]))])}const L=m(P,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/InstallAssistant.vue"]]);export{L as default}; diff --git a/web/settings/assets/InstallAssistant-bd77c405.js b/web/settings/assets/InstallAssistant-bd77c405.js deleted file mode 100644 index a73584473b..0000000000 --- a/web/settings/assets/InstallAssistant-bd77c405.js +++ /dev/null @@ -1 +0,0 @@ -import{C as r,_ as t}from"./index-0992d19b.js";import{_}from"./dynamic-import-helper-be004503.js";import{_ as m,a2 as p,u as d,l as i,m as u,G as A,E as v,x as E,a3 as I,B as c}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";const P={name:"InstallAssistantView",mixins:[r],emits:["sendCommand","save","reset","defaults"],data(){return{currentPage:0,lastPage:10,showEndAssistantModal:!1}},methods:{getInstallAssistantStepComponent(){return console.debug(`loading assistant page: ${this.currentPage}`),p({loader:()=>_(Object.assign({"../components/install_assistant/InstallAssistantStep0.vue":()=>t(()=>import("./InstallAssistantStep0-945d70d5.js"),["assets/InstallAssistantStep0-945d70d5.js","assets/index-0992d19b.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-68e25e8a.js","assets/InstallAssistantStepTemplate-930e3c07.css"]),"../components/install_assistant/InstallAssistantStep1.vue":()=>t(()=>import("./InstallAssistantStep1-5c749d29.js"),["assets/InstallAssistantStep1-5c749d29.js","assets/index-0992d19b.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-68e25e8a.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/DataManagement-81c5a852.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep10.vue":()=>t(()=>import("./InstallAssistantStep10-bbcd7854.js"),["assets/InstallAssistantStep10-bbcd7854.js","assets/index-0992d19b.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-68e25e8a.js","assets/InstallAssistantStepTemplate-930e3c07.css"]),"../components/install_assistant/InstallAssistantStep2.vue":()=>t(()=>import("./InstallAssistantStep2-77cc84d7.js"),["assets/InstallAssistantStep2-77cc84d7.js","assets/index-0992d19b.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-68e25e8a.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/System-5edeb34f.js","assets/System-f301c290.css"]),"../components/install_assistant/InstallAssistantStep3.vue":()=>t(()=>import("./InstallAssistantStep3-209bef66.js"),["assets/InstallAssistantStep3-209bef66.js","assets/index-0992d19b.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-68e25e8a.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/GeneralConfig-5de8d06f.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep4.1.vue":()=>t(()=>import("./InstallAssistantStep4.1-7846b3e0.js"),["assets/InstallAssistantStep4.1-7846b3e0.js","assets/index-0992d19b.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-68e25e8a.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/IoConfig-de1d5cc2.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep4.vue":()=>t(()=>import("./InstallAssistantStep4-efa21e90.js"),["assets/InstallAssistantStep4-efa21e90.js","assets/index-0992d19b.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-68e25e8a.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/ChargePointInstallation-81239155.js","assets/dynamic-import-helper-be004503.js","assets/ChargePointInstallation-7b9399a8.css"]),"../components/install_assistant/InstallAssistantStep5.vue":()=>t(()=>import("./InstallAssistantStep5-7199c2d2.js"),["assets/InstallAssistantStep5-7199c2d2.js","assets/index-0992d19b.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-68e25e8a.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/HardwareInstallation-35a2a562.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep6.vue":()=>t(()=>import("./InstallAssistantStep6-d428a8b2.js"),["assets/InstallAssistantStep6-d428a8b2.js","assets/index-0992d19b.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-68e25e8a.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/ChargePointInstallation-81239155.js","assets/dynamic-import-helper-be004503.js","assets/ChargePointInstallation-7b9399a8.css"]),"../components/install_assistant/InstallAssistantStep7.vue":()=>t(()=>import("./InstallAssistantStep7-5a0be87c.js"),["assets/InstallAssistantStep7-5a0be87c.js","assets/index-0992d19b.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-68e25e8a.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/LoadManagementConfig-161f6124.js","assets/OpenwbSortableList-0d1f7c1c.js","assets/OpenwbSortableList-7ba533e4.css"]),"../components/install_assistant/InstallAssistantStep8.vue":()=>t(()=>import("./InstallAssistantStep8-16380cdc.js"),["assets/InstallAssistantStep8-16380cdc.js","assets/index-0992d19b.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-68e25e8a.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/VehicleConfig-233066dd.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep9.vue":()=>t(()=>import("./InstallAssistantStep9-32a8ab2b.js"),["assets/InstallAssistantStep9-32a8ab2b.js","assets/index-0992d19b.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-68e25e8a.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/DataManagement-81c5a852.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStepTemplate.vue":()=>t(()=>import("./InstallAssistantStepTemplate-68e25e8a.js"),["assets/InstallAssistantStepTemplate-68e25e8a.js","assets/index-0992d19b.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-930e3c07.css"])}),`../components/install_assistant/InstallAssistantStep${this.currentPage}.vue`)})},switchPage(s){s>=0&&s<=this.lastPage?this.currentPage=s:console.error(`invalid assistant page number: ${s}`)},endAssistantModal(){this.currentPage!=this.lastPage?this.showEndAssistantModal=!0:this.endAssistant("confirm")},endAssistant(s){this.showEndAssistantModal=!1,s=="confirm"&&(this.updateState("openWB/system/installAssistantDone",!0),this.$root.doPublish("openWB/set/system/installAssistantDone",!0),this.$router.push("/Status"))}}};function S(s,n,f,g,o,e){const l=d("openwb-base-modal-dialog");return i(),u("div",null,[A(l,{show:o.showEndAssistantModal,title:"Assistent beenden",subtype:"danger",buttons:[{text:"Beenden",event:"confirm",subtype:"danger"}],onModalResult:e.endAssistant},{default:v(()=>[...n[4]||(n[4]=[c(" Wollen Sie den Assistenten wirklich vorzeitig beenden? ",-1)])]),_:1},8,["show","onModalResult"]),(i(),E(I(e.getInstallAssistantStepComponent()),{onSendCommand:n[0]||(n[0]=a=>s.$emit("sendCommand",a)),onSave:n[1]||(n[1]=a=>s.$emit("save")),onReset:n[2]||(n[2]=a=>s.$emit("reset")),onDefaults:n[3]||(n[3]=a=>s.$emit("defaults")),onSwitchPage:e.switchPage,onEndAssistant:e.endAssistantModal},null,40,["onSwitchPage","onEndAssistant"]))])}const L=m(P,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/InstallAssistant.vue"]]);export{L as default}; diff --git a/web/settings/assets/InstallAssistantStep0-945d70d5.js b/web/settings/assets/InstallAssistantStep0-945d70d5.js deleted file mode 100644 index 85818cbd19..0000000000 --- a/web/settings/assets/InstallAssistantStep0-945d70d5.js +++ /dev/null @@ -1 +0,0 @@ -import{C as m}from"./index-0992d19b.js";import g from"./InstallAssistantStepTemplate-68e25e8a.js";import{F as f}from"./vendor-fortawesome-2b3791bb.js";import{_ as h,u as i,l as c,x as w,E as r,G as a,B as o,A as n}from"./vendor-36bf053b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";const A={name:"InstallAssistantStep0",components:{InstallAssistantStepTemplate:g,FontAwesomeIcon:f},mixins:[m],emits:["switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[],showModalWarning:!1}),methods:{requestNextPage(){this.showModalWarning=!0},nextPage(s){this.showModalWarning=!1,s==="confirm"&&this.$emit("switchPage",1)},previousPage(){},endAssistant(){this.$emit("endAssistant")}}},b={class:"font-weight-bold"};function k(s,e,x,B,P,t){const l=i("openwb-base-modal-dialog"),u=i("FontAwesomeIcon"),d=i("InstallAssistantStepTemplate");return c(),w(d,{title:"Start","hide-previous":!0,onNextPage:t.requestNextPage,onPreviousPage:t.previousPage,onEndAssistant:t.endAssistant},{content:r(()=>[a(l,{show:s.showModalWarning,title:"Achtung!",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"success"}],onModalResult:e[0]||(e[0]=p=>t.nextPage(p))},{default:r(()=>[...e[1]||(e[1]=[o(" Bevor der Assistent gestartet wird, ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)])]),_:1},8,["show"]),e[4]||(e[4]=n("h2",null,"Vielen Dank, dass Du Dich für openWB entschieden hast.",-1)),e[5]||(e[5]=n("p",null,"Dieser Assistent führt durch die Konfiguration der einzelnen Module:",-1)),e[6]||(e[6]=n("ol",null,[n("li",null,"Datensicherung der bestehenden Konfiguration"),n("li",null,"Aktualisierung des openWB-Systems"),n("li",null,"Allgemeine Einstellungen: Auswahl des Betriebsmodus primary (steuernd) bzw. secondary (gesteuerte WB)")],-1)),e[7]||(e[7]=n("p",null," Wird diese openWB als secondary betrieben, so werden nur die lokalen Ladepunkte eingerichtet. Im Betriebsmodus primary werden die folgenden zusätzlichen Schritte durchlaufen: ",-1)),e[8]||(e[8]=n("ol",{start:"4"},[n("li",null,"Ein- und Ausgänge konfigurieren"),n("li",null,"Energiesystem - Geräte und Komponenten einrichten"),n("li",null,"Einrichten der Ladepunkte (openWB als primary)"),n("li",null,"Konfiguration des Lastmanagements"),n("li",null,"Einrichten der Fahrzeuge"),n("li",null,"Datensicherung der neuen Konfiguration")],-1)),e[9]||(e[9]=n("p",null,"Danach ist die Grundkonfiguration abgeschlossen.",-1)),n("p",b,[e[2]||(e[2]=o(" Bitte während der Einrichtung auch die jeweiligen Hilfstexte lesen, welche durch Klick auf ",-1)),a(u,{icon:["far","question-circle"]}),e[3]||(e[3]=o(" erscheinen. Hier sind weiterführende Informationen zu den Eingabefeldern zu finden. ",-1))])]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const N=h(A,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep0.vue"]]);export{N as default}; diff --git a/web/settings/assets/InstallAssistantStep0-acacfc75.js b/web/settings/assets/InstallAssistantStep0-acacfc75.js new file mode 100644 index 0000000000..d818596314 --- /dev/null +++ b/web/settings/assets/InstallAssistantStep0-acacfc75.js @@ -0,0 +1 @@ +import{C as m}from"./index-8dd8e083.js";import g from"./InstallAssistantStepTemplate-59e1095f.js";import{F as f}from"./vendor-fortawesome-a02b6813.js";import{_ as h,u as i,l as c,x as w,E as r,G as a,B as o,A as n}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const A={name:"InstallAssistantStep0",components:{InstallAssistantStepTemplate:g,FontAwesomeIcon:f},mixins:[m],emits:["switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[],showModalWarning:!1}),methods:{requestNextPage(){this.showModalWarning=!0},nextPage(s){this.showModalWarning=!1,s==="confirm"&&this.$emit("switchPage",1)},previousPage(){},endAssistant(){this.$emit("endAssistant")}}},b={class:"font-weight-bold"};function k(s,e,x,B,P,t){const l=i("openwb-base-modal-dialog"),u=i("FontAwesomeIcon"),d=i("InstallAssistantStepTemplate");return c(),w(d,{title:"Start","hide-previous":!0,onNextPage:t.requestNextPage,onPreviousPage:t.previousPage,onEndAssistant:t.endAssistant},{content:r(()=>[a(l,{show:s.showModalWarning,title:"Achtung!",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"success"}],onModalResult:e[0]||(e[0]=p=>t.nextPage(p))},{default:r(()=>e[1]||(e[1]=[o(" Bevor der Assistent gestartet wird, ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)])),_:1,__:[1]},8,["show"]),e[4]||(e[4]=n("h2",null,"Vielen Dank, dass Du Dich für openWB entschieden hast.",-1)),e[5]||(e[5]=n("p",null,"Dieser Assistent führt durch die Konfiguration der einzelnen Module:",-1)),e[6]||(e[6]=n("ol",null,[n("li",null,"Datensicherung der bestehenden Konfiguration"),n("li",null,"Aktualisierung des openWB-Systems"),n("li",null,"Allgemeine Einstellungen: Auswahl des Betriebsmodus primary (steuernd) bzw. secondary (gesteuerte WB)")],-1)),e[7]||(e[7]=n("p",null," Wird diese openWB als secondary betrieben, so werden nur die lokalen Ladepunkte eingerichtet. Im Betriebsmodus primary werden die folgenden zusätzlichen Schritte durchlaufen: ",-1)),e[8]||(e[8]=n("ol",{start:"4"},[n("li",null,"Ein- und Ausgänge konfigurieren"),n("li",null,"Energiesystem - Geräte und Komponenten einrichten"),n("li",null,"Einrichten der Ladepunkte (openWB als primary)"),n("li",null,"Konfiguration des Lastmanagements"),n("li",null,"Einrichten der Fahrzeuge"),n("li",null,"Datensicherung der neuen Konfiguration")],-1)),e[9]||(e[9]=n("p",null,"Danach ist die Grundkonfiguration abgeschlossen.",-1)),n("p",b,[e[2]||(e[2]=o(" Bitte während der Einrichtung auch die jeweiligen Hilfstexte lesen, welche durch Klick auf ",-1)),a(u,{icon:["far","question-circle"]}),e[3]||(e[3]=o(" erscheinen. Hier sind weiterführende Informationen zu den Eingabefeldern zu finden. ",-1))])]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const N=h(A,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep0.vue"]]);export{N as default}; diff --git a/web/settings/assets/InstallAssistantStep1-5c749d29.js b/web/settings/assets/InstallAssistantStep1-5c749d29.js deleted file mode 100644 index 15c0eeab22..0000000000 --- a/web/settings/assets/InstallAssistantStep1-5c749d29.js +++ /dev/null @@ -1 +0,0 @@ -import{C as m}from"./index-0992d19b.js";import p from"./InstallAssistantStepTemplate-68e25e8a.js";import{D as l}from"./DataManagement-81c5a852.js";import{_ as d,u as a,l as u,x as g,E as o,A as f,G as v}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const A={name:"InstallAssistantStep1",components:{InstallAssistantStepTemplate:p,DataManagement:l},mixins:[m],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",2)},previousPage(){this.$emit("switchPage",0)},endAssistant(){this.$emit("endAssistant")}}};function P(t,e,c,S,w,n){const i=a("DataManagement"),r=a("InstallAssistantStepTemplate");return u(),g(r,{title:"1. Datensicherung der bestehenden Konfiguration",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>[...e[4]||(e[4]=[f("p",null," Wir empfehlen an dieser Stelle eine Sicherung der openWB zu erstellen, auf welche später zurückgegriffen werden kann, insbesondere, wenn die openWB schon konfiguriert war und der Assistent nun erneut ausgeführt wird. ",-1)])]),content:o(()=>[v(i,{"install-assistant-active":!0,"show-backup-cloud-section":!1,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const N=d(A,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep1.vue"]]);export{N as default}; diff --git a/web/settings/assets/InstallAssistantStep1-a93e968d.js b/web/settings/assets/InstallAssistantStep1-a93e968d.js new file mode 100644 index 0000000000..538ec44236 --- /dev/null +++ b/web/settings/assets/InstallAssistantStep1-a93e968d.js @@ -0,0 +1 @@ +import{C as m}from"./index-8dd8e083.js";import p from"./InstallAssistantStepTemplate-59e1095f.js";import{D as l}from"./DataManagement-52054445.js";import{_ as d,u as a,l as u,x as g,E as o,A as f,G as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const A={name:"InstallAssistantStep1",components:{InstallAssistantStepTemplate:p,DataManagement:l},mixins:[m],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",2)},previousPage(){this.$emit("switchPage",0)},endAssistant(){this.$emit("endAssistant")}}};function P(t,e,c,S,w,n){const i=a("DataManagement"),r=a("InstallAssistantStepTemplate");return u(),g(r,{title:"1. Datensicherung der bestehenden Konfiguration",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>e[4]||(e[4]=[f("p",null," Wir empfehlen an dieser Stelle eine Sicherung der openWB zu erstellen, auf welche später zurückgegriffen werden kann, insbesondere, wenn die openWB schon konfiguriert war und der Assistent nun erneut ausgeführt wird. ",-1)])),content:o(()=>[v(i,{"install-assistant-active":!0,"show-backup-cloud-section":!1,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const N=d(A,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep1.vue"]]);export{N as default}; diff --git a/web/settings/assets/InstallAssistantStep10-3d573bb7.js b/web/settings/assets/InstallAssistantStep10-3d573bb7.js new file mode 100644 index 0000000000..01e2850142 --- /dev/null +++ b/web/settings/assets/InstallAssistantStep10-3d573bb7.js @@ -0,0 +1 @@ +import{C as a}from"./index-8dd8e083.js";import o from"./InstallAssistantStepTemplate-59e1095f.js";import{_ as r,u as l,l as m,x as p,E as d,A as n}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const u={name:"InstallAssistantStep10",components:{InstallAssistantStepTemplate:o},mixins:[a],emits:["switchPage","endAssistant","sendCommand"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){},previousPage(){this.$emit("switchPage",9)},sendCommand(t){this.$emit("sendCommand",t)},endAssistant(){this.$emit("endAssistant")}}};function g(t,s,c,f,A,e){const i=l("InstallAssistantStepTemplate");return m(),p(i,{title:"Abgeschlossen","hide-next":!0,onNextPage:e.nextPage,onPreviousPage:e.previousPage,onEndAssistant:e.endAssistant},{content:d(()=>s[0]||(s[0]=[n("h2",null,"Die Grundkonfiguration ist abgeschlossen.",-1),n("p",null," Die grundlegende Konfiguration der openWB ist abgeschlossen. Du wirst mit Beendigung dieses Assistenten auf die Statusseite weitergeleitet. Bitte überprüfe die dargestellten Informationen und passe bei Unstimmigkeiten die Einstellungen in den jeweiligen Konfigurationsseiten an (openWB -> Einstellungen -> Konfiguration). ",-1)])),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const w=r(u,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep10.vue"]]);export{w as default}; diff --git a/web/settings/assets/InstallAssistantStep10-bbcd7854.js b/web/settings/assets/InstallAssistantStep10-bbcd7854.js deleted file mode 100644 index 375209fb51..0000000000 --- a/web/settings/assets/InstallAssistantStep10-bbcd7854.js +++ /dev/null @@ -1 +0,0 @@ -import{C as a}from"./index-0992d19b.js";import o from"./InstallAssistantStepTemplate-68e25e8a.js";import{_ as r,u as l,l as m,x as p,E as d,A as n}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";const u={name:"InstallAssistantStep10",components:{InstallAssistantStepTemplate:o},mixins:[a],emits:["switchPage","endAssistant","sendCommand"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){},previousPage(){this.$emit("switchPage",9)},sendCommand(t){this.$emit("sendCommand",t)},endAssistant(){this.$emit("endAssistant")}}};function g(t,s,c,f,A,e){const i=l("InstallAssistantStepTemplate");return m(),p(i,{title:"Abgeschlossen","hide-next":!0,onNextPage:e.nextPage,onPreviousPage:e.previousPage,onEndAssistant:e.endAssistant},{content:d(()=>[...s[0]||(s[0]=[n("h2",null,"Die Grundkonfiguration ist abgeschlossen.",-1),n("p",null," Die grundlegende Konfiguration der openWB ist abgeschlossen. Du wirst mit Beendigung dieses Assistenten auf die Statusseite weitergeleitet. Bitte überprüfe die dargestellten Informationen und passe bei Unstimmigkeiten die Einstellungen in den jeweiligen Konfigurationsseiten an (openWB -> Einstellungen -> Konfiguration). ",-1)])]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const w=r(u,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep10.vue"]]);export{w as default}; diff --git a/web/settings/assets/InstallAssistantStep2-77cc84d7.js b/web/settings/assets/InstallAssistantStep2-77cc84d7.js deleted file mode 100644 index 06bf7817c4..0000000000 --- a/web/settings/assets/InstallAssistantStep2-77cc84d7.js +++ /dev/null @@ -1 +0,0 @@ -import{C as l}from"./index-0992d19b.js";import p from"./InstallAssistantStepTemplate-68e25e8a.js";import d from"./System-5edeb34f.js";import{_ as u,u as i,l as f,x as g,E as o,A as a,G as S}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";const A={name:"InstallAssistantStep2",components:{InstallAssistantStepTemplate:p,SystemView:d},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",3)},previousPage(){this.$emit("switchPage",1)},endAssistant(){this.$emit("endAssistant")}}};function v(t,e,w,P,c,n){const r=i("SystemView"),m=i("InstallAssistantStepTemplate");return f(),g(m,{title:"2. Aktualisierung des openWB-Systems",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>[...e[4]||(e[4]=[a("p",null,"Bitte ein System-Update durchführen, um die Software auf den neuesten Stand zu bringen.",-1),a("p",null,' Hierzu "Informationen aktualisieren" klicken. Falls ein Update verfügbar ist, wird der Update-Button grün (zum Update bereit). ',-1),a("p",null,' Ein Klick auf "Update" startet die Aktualisierung, welche auch einen automatischen Reboot initiiert (bitte ca. 5 Minuten warten). Danach muss der Assistent neu gestartet werden. ',-1)])]),content:o(()=>[S(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const T=u(A,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep2.vue"]]);export{T as default}; diff --git a/web/settings/assets/InstallAssistantStep2-b4941f0c.js b/web/settings/assets/InstallAssistantStep2-b4941f0c.js new file mode 100644 index 0000000000..f186b25dfc --- /dev/null +++ b/web/settings/assets/InstallAssistantStep2-b4941f0c.js @@ -0,0 +1 @@ +import{C as l}from"./index-8dd8e083.js";import p from"./InstallAssistantStepTemplate-59e1095f.js";import d from"./System-9f60a387.js";import{_ as u,u as i,l as f,x as g,E as o,A as a,G as S}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const A={name:"InstallAssistantStep2",components:{InstallAssistantStepTemplate:p,SystemView:d},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",3)},previousPage(){this.$emit("switchPage",1)},endAssistant(){this.$emit("endAssistant")}}};function v(t,e,w,P,c,n){const r=i("SystemView"),m=i("InstallAssistantStepTemplate");return f(),g(m,{title:"2. Aktualisierung des openWB-Systems",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>e[4]||(e[4]=[a("p",null,"Bitte ein System-Update durchführen, um die Software auf den neuesten Stand zu bringen.",-1),a("p",null,' Hierzu "Informationen aktualisieren" klicken. Falls ein Update verfügbar ist, wird der Update-Button grün (zum Update bereit). ',-1),a("p",null,' Ein Klick auf "Update" startet die Aktualisierung, welche auch einen automatischen Reboot initiiert (bitte ca. 5 Minuten warten). Danach muss der Assistent neu gestartet werden. ',-1)])),content:o(()=>[S(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const T=u(A,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep2.vue"]]);export{T as default}; diff --git a/web/settings/assets/InstallAssistantStep3-209bef66.js b/web/settings/assets/InstallAssistantStep3-209bef66.js deleted file mode 100644 index 98cffb0eb5..0000000000 --- a/web/settings/assets/InstallAssistantStep3-209bef66.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./index-0992d19b.js";import d from"./InstallAssistantStepTemplate-68e25e8a.js";import{G as m}from"./GeneralConfig-5de8d06f.js";import{_ as u,u as i,l as g,x as f,E as r,A as a,G as w}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const S={name:"InstallAssistantStep3",components:{InstallAssistantStepTemplate:d,GeneralConfigView:m},mixins:[p],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:["openWB/general/extern"]}),methods:{nextPage(){this.$emit("switchPage",this.$store.state.mqtt["openWB/general/extern"]?4:4.1)},previousPage(){this.$emit("switchPage",2)},endAssistant(){this.$emit("endAssistant")}}};function A(t,e,P,k,v,s){const o=i("GeneralConfigView"),l=i("InstallAssistantStepTemplate");return g(),f(l,{title:"3. Auswahl des Steuerungsmodus",onNextPage:s.nextPage,onPreviousPage:s.previousPage,onEndAssistant:s.endAssistant},{help:r(()=>[...e[4]||(e[4]=[a("p",null,' Hier festlegen, ob die openWB als "steuernd" (primary) oder als ferngesteuert (secondary) arbeiten soll. Die Einstellung gilt für genau die WB, auf der aktuell konfiguriert wird (korrekte IP-Adresse beachten). ',-1),a("p",null," Eine openWB standalone hat keinen Ladepunkt und arbeitet nur als Steuerteil (primary). Eine openWB Standard(+), custom, Duo (2 Ladepunkte) und Buchse können sowohl als steuernde primary oder als ferngesteuerte secondary betrieben werden. Eine openWB Pro und Satellit können nur als s.g. Ladepunkt genutzt werden und benötigen zwingend einen separaten primary als Steuerteil. ",-1),a("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:r(()=>[w(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=n=>t.$emit("sendCommand",n)),onSave:e[1]||(e[1]=n=>t.$emit("save")),onReset:e[2]||(e[2]=n=>t.$emit("reset")),onDefaults:e[3]||(e[3]=n=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const y=u(S,[["render",A],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep3.vue"]]);export{y as default}; diff --git a/web/settings/assets/InstallAssistantStep3-b0741703.js b/web/settings/assets/InstallAssistantStep3-b0741703.js new file mode 100644 index 0000000000..c447d3ba8c --- /dev/null +++ b/web/settings/assets/InstallAssistantStep3-b0741703.js @@ -0,0 +1 @@ +import{C as p}from"./index-8dd8e083.js";import d from"./InstallAssistantStepTemplate-59e1095f.js";import{G as m}from"./GeneralConfig-cc87a1f9.js";import{_ as u,u as i,l as g,x as f,E as r,A as a,G as w}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const S={name:"InstallAssistantStep3",components:{InstallAssistantStepTemplate:d,GeneralConfigView:m},mixins:[p],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:["openWB/general/extern"]}),methods:{nextPage(){this.$emit("switchPage",this.$store.state.mqtt["openWB/general/extern"]?4:4.1)},previousPage(){this.$emit("switchPage",2)},endAssistant(){this.$emit("endAssistant")}}};function A(t,e,P,k,v,s){const o=i("GeneralConfigView"),l=i("InstallAssistantStepTemplate");return g(),f(l,{title:"3. Auswahl des Steuerungsmodus",onNextPage:s.nextPage,onPreviousPage:s.previousPage,onEndAssistant:s.endAssistant},{help:r(()=>e[4]||(e[4]=[a("p",null,' Hier festlegen, ob die openWB als "steuernd" (primary) oder als ferngesteuert (secondary) arbeiten soll. Die Einstellung gilt für genau die WB, auf der aktuell konfiguriert wird (korrekte IP-Adresse beachten). ',-1),a("p",null," Eine openWB standalone hat keinen Ladepunkt und arbeitet nur als Steuerteil (primary). Eine openWB Standard(+), custom, Duo (2 Ladepunkte) und Buchse können sowohl als steuernde primary oder als ferngesteuerte secondary betrieben werden. Eine openWB Pro und Satellit können nur als s.g. Ladepunkt genutzt werden und benötigen zwingend einen separaten primary als Steuerteil. ",-1),a("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:r(()=>[w(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=n=>t.$emit("sendCommand",n)),onSave:e[1]||(e[1]=n=>t.$emit("save")),onReset:e[2]||(e[2]=n=>t.$emit("reset")),onDefaults:e[3]||(e[3]=n=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const y=u(S,[["render",A],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep3.vue"]]);export{y as default}; diff --git a/web/settings/assets/InstallAssistantStep4-efa21e90.js b/web/settings/assets/InstallAssistantStep4-efa21e90.js deleted file mode 100644 index ba796e730d..0000000000 --- a/web/settings/assets/InstallAssistantStep4-efa21e90.js +++ /dev/null @@ -1 +0,0 @@ -import{C as l}from"./index-0992d19b.js";import d from"./InstallAssistantStepTemplate-68e25e8a.js";import{b as m}from"./ChargePointInstallation-81239155.js";import{_ as u,u as a,l as g,x as f,E as o,A as n,G as w}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const v={name:"InstallAssistantStep4",components:{InstallAssistantStepTemplate:d,ChargePointInstallationView:m},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",9)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function P(t,e,B,k,S,i){const r=a("ChargePointInstallationView"),p=a("InstallAssistantStepTemplate");return g(),f(p,{title:"4. Einrichten der Ladepunkte (openWB als secondary)",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:o(()=>[...e[4]||(e[4]=[n("p",null,' Diese openWB wurde als "secondary" eingestellt und wird von einer anderen openWB oder standalone ferngesteuert. ',-1),n("p",null," Bei vorkonfigurierten openWBs ist ab Werk bereits ein (zwei bei einer Duo) interner Ladepunkt eingetragen. Es müssen keine weiteren Ladepunkte hinzugefügt werden. ",-1),n("p",null,' Tragen Sie unter Ladepunkte bei verfügbare Ladepunkte "Interne openWB" ein und wählen Sie die Bauart der openWB (z.B. openWB series 1/2 custom, Standard (+), Buchse oder Pro+) aus. ',-1),n("p",null,"Wenn eine openWB Duo gewählt wird, so sind zwei Ladepunkte mit Ladepunkt-Nummer 1 und 2 zu konfigurieren.",-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:o(()=>[w(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const T=u(v,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep4.vue"]]);export{T as default}; diff --git a/web/settings/assets/InstallAssistantStep4-f46d2116.js b/web/settings/assets/InstallAssistantStep4-f46d2116.js new file mode 100644 index 0000000000..978d828f9f --- /dev/null +++ b/web/settings/assets/InstallAssistantStep4-f46d2116.js @@ -0,0 +1 @@ +import{C as l}from"./index-8dd8e083.js";import d from"./InstallAssistantStepTemplate-59e1095f.js";import{b as m}from"./ChargePointInstallation-7e22d920.js";import{_ as u,u as a,l as g,x as f,E as o,A as n,G as w}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"InstallAssistantStep4",components:{InstallAssistantStepTemplate:d,ChargePointInstallationView:m},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",9)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function P(t,e,B,k,S,i){const r=a("ChargePointInstallationView"),p=a("InstallAssistantStepTemplate");return g(),f(p,{title:"4. Einrichten der Ladepunkte (openWB als secondary)",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:o(()=>e[4]||(e[4]=[n("p",null,' Diese openWB wurde als "secondary" eingestellt und wird von einer anderen openWB oder standalone ferngesteuert. ',-1),n("p",null," Bei vorkonfigurierten openWBs ist ab Werk bereits ein (zwei bei einer Duo) interner Ladepunkt eingetragen. Es müssen keine weiteren Ladepunkte hinzugefügt werden. ",-1),n("p",null,' Tragen Sie unter Ladepunkte bei verfügbare Ladepunkte "Interne openWB" ein und wählen Sie die Bauart der openWB (z.B. openWB series 1/2 custom, Standard (+), Buchse oder Pro+) aus. ',-1),n("p",null,"Wenn eine openWB Duo gewählt wird, so sind zwei Ladepunkte mit Ladepunkt-Nummer 1 und 2 zu konfigurieren.",-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:o(()=>[w(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const T=u(v,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep4.vue"]]);export{T as default}; diff --git a/web/settings/assets/InstallAssistantStep4.1-7846b3e0.js b/web/settings/assets/InstallAssistantStep4.1-7846b3e0.js deleted file mode 100644 index 28bb33875e..0000000000 --- a/web/settings/assets/InstallAssistantStep4.1-7846b3e0.js +++ /dev/null @@ -1 +0,0 @@ -import{C as l}from"./index-0992d19b.js";import p from"./InstallAssistantStepTemplate-68e25e8a.js";import{I as d}from"./IoConfig-de1d5cc2.js";import{_ as u,u as a,l as g,x as f,E as o,A as i,G as v}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const w={name:"InstallAssistantStep4.1",components:{InstallAssistantStepTemplate:p,IoConfigView:d},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",5)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function S(t,e,A,P,c,n){const r=a("IoConfigView"),m=a("InstallAssistantStepTemplate");return g(),f(m,{title:"4. Ein- und Ausgänge konfigurieren",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>[...e[4]||(e[4]=[i("p",null,'Diese openWB ist als "primary" konfiguriert und übernimmt die Regelung des Systems.',-1),i("p",null," Sofern openWB als Energiemanagementsystem für steuerbare Verbrauchseinrichtungen (SteuVE) gemäß §14a EnWG verwendet werden soll, so ist für die VNB-Signaleingänge die entsprechende Hardware auszuwählen. ",-1),i("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:o(()=>[v(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const N=u(w,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep4.1.vue"]]);export{N as default}; diff --git a/web/settings/assets/InstallAssistantStep4.1-8b2ae23f.js b/web/settings/assets/InstallAssistantStep4.1-8b2ae23f.js new file mode 100644 index 0000000000..683e14142f --- /dev/null +++ b/web/settings/assets/InstallAssistantStep4.1-8b2ae23f.js @@ -0,0 +1 @@ +import{C as l}from"./index-8dd8e083.js";import p from"./InstallAssistantStepTemplate-59e1095f.js";import{I as d}from"./IoConfig-38958e2e.js";import{_ as u,u as a,l as g,x as f,E as o,A as i,G as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const w={name:"InstallAssistantStep4.1",components:{InstallAssistantStepTemplate:p,IoConfigView:d},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",5)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function S(t,e,A,P,c,n){const r=a("IoConfigView"),m=a("InstallAssistantStepTemplate");return g(),f(m,{title:"4. Ein- und Ausgänge konfigurieren",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>e[4]||(e[4]=[i("p",null,'Diese openWB ist als "primary" konfiguriert und übernimmt die Regelung des Systems.',-1),i("p",null," Sofern openWB als Energiemanagementsystem für steuerbare Verbrauchseinrichtungen (SteuVE) gemäß §14a EnWG verwendet werden soll, so ist für die VNB-Signaleingänge die entsprechende Hardware auszuwählen. ",-1),i("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:o(()=>[v(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const N=u(w,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep4.1.vue"]]);export{N as default}; diff --git a/web/settings/assets/InstallAssistantStep5-4a85dca5.js b/web/settings/assets/InstallAssistantStep5-4a85dca5.js new file mode 100644 index 0000000000..3aa4cc09b9 --- /dev/null +++ b/web/settings/assets/InstallAssistantStep5-4a85dca5.js @@ -0,0 +1 @@ +import{C as d}from"./index-8dd8e083.js";import m from"./InstallAssistantStepTemplate-59e1095f.js";import{H as p}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as r,l as g,x as w,E as a,A as s,G as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const h={name:"InstallAssistantStep5",components:{InstallAssistantStepTemplate:m,HardwareInstallationView:p},mixins:[d],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",6)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function v(t,e,c,A,P,i){const o=r("HardwareInstallationView"),l=r("InstallAssistantStepTemplate");return g(),w(l,{title:"5. Energiesystem - Geräte und Komponenten einrichten",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>e[4]||(e[4]=[s("p",null," Für die Regelung werden aktuelle Leistungswerte des EVU-Zählers, der PV-Anlage und ggf. eines Speichers benötigt. ",-1),s("p",null," Sofern das System nicht zurückgesetzt wurde, ist im Auslieferungszustand für erste Ladetests ein virtueller Zähler vorkonfiguriert. Dieser muss zuerst gelöscht werden, wenn das im Gebäude installierte Energiesystem konfiguriert wird. ",-1),s("p",null," Alle Komponenten, welche über die gleiche IP-Adresse erreichbar sind werden als ein Gerät verstanden. Dieses Gerät ist über den Herstellernamen des Energiesystems im Auswahlmenü der verfügbaren Geräte auszuwählen. Unterhalb des Gerätes werden die zugehörigen Komponenten EVU-Zähler, WR und Speicher konfiguriert. Es können je nach Bedarf beliebig viele Geräte und Komponenten miteinander kombiniert werden. ",-1),s("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:a(()=>[f(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=n=>t.$emit("sendCommand",n)),onSave:e[1]||(e[1]=n=>t.$emit("save")),onReset:e[2]||(e[2]=n=>t.$emit("reset")),onDefaults:e[3]||(e[3]=n=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const z=u(h,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep5.vue"]]);export{z as default}; diff --git a/web/settings/assets/InstallAssistantStep5-7199c2d2.js b/web/settings/assets/InstallAssistantStep5-7199c2d2.js deleted file mode 100644 index f0bc54d26f..0000000000 --- a/web/settings/assets/InstallAssistantStep5-7199c2d2.js +++ /dev/null @@ -1 +0,0 @@ -import{C as d}from"./index-0992d19b.js";import m from"./InstallAssistantStepTemplate-68e25e8a.js";import{H as p}from"./HardwareInstallation-35a2a562.js";import{_ as u,u as r,l as g,x as w,E as a,A as s,G as f}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const h={name:"InstallAssistantStep5",components:{InstallAssistantStepTemplate:m,HardwareInstallationView:p},mixins:[d],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",6)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function v(t,e,c,A,P,i){const o=r("HardwareInstallationView"),l=r("InstallAssistantStepTemplate");return g(),w(l,{title:"5. Energiesystem - Geräte und Komponenten einrichten",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[...e[4]||(e[4]=[s("p",null," Für die Regelung werden aktuelle Leistungswerte des EVU-Zählers, der PV-Anlage und ggf. eines Speichers benötigt. ",-1),s("p",null," Sofern das System nicht zurückgesetzt wurde, ist im Auslieferungszustand für erste Ladetests ein virtueller Zähler vorkonfiguriert. Dieser muss zuerst gelöscht werden, wenn das im Gebäude installierte Energiesystem konfiguriert wird. ",-1),s("p",null," Alle Komponenten, welche über die gleiche IP-Adresse erreichbar sind werden als ein Gerät verstanden. Dieses Gerät ist über den Herstellernamen des Energiesystems im Auswahlmenü der verfügbaren Geräte auszuwählen. Unterhalb des Gerätes werden die zugehörigen Komponenten EVU-Zähler, WR und Speicher konfiguriert. Es können je nach Bedarf beliebig viele Geräte und Komponenten miteinander kombiniert werden. ",-1),s("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:a(()=>[f(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=n=>t.$emit("sendCommand",n)),onSave:e[1]||(e[1]=n=>t.$emit("save")),onReset:e[2]||(e[2]=n=>t.$emit("reset")),onDefaults:e[3]||(e[3]=n=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const z=u(h,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep5.vue"]]);export{z as default}; diff --git a/web/settings/assets/InstallAssistantStep6-5c9750cb.js b/web/settings/assets/InstallAssistantStep6-5c9750cb.js new file mode 100644 index 0000000000..12a79b29be --- /dev/null +++ b/web/settings/assets/InstallAssistantStep6-5c9750cb.js @@ -0,0 +1 @@ +import{C as d}from"./index-8dd8e083.js";import u from"./InstallAssistantStepTemplate-59e1095f.js";import{b as p}from"./ChargePointInstallation-7e22d920.js";import{_ as m,u as a,l as h,x as g,E as r,A as n,G as w}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const P={name:"InstallAssistantStep6",components:{InstallAssistantStepTemplate:u,ChargePointInstallationView:p},mixins:[d],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",7)},previousPage(){this.$emit("switchPage",5)},endAssistant(){this.$emit("endAssistant")}}};function c(t,e,f,b,k,i){const o=a("ChargePointInstallationView"),l=a("InstallAssistantStepTemplate");return h(),g(l,{title:"6. Einrichten der Ladepunkte (openWB als primary)",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:r(()=>e[4]||(e[4]=[n("p",null,' Enthält die steuernde openWB (primary) Ladetechnik, wird bei "Verfügbare Ladepunkte" "Interne openWB" ausgewählt. Weitere LP werden im primary als "Secondary openWB" oder andere WB-Typen wie "openWB Pro", "openwB Satellit" eingebunden. ',-1),n("p",null,"Bei openWBs ab Werk ist hier bereits ein Ladepunkt eingetragen.",-1),n("p",null," Nachfolgend werden die Eigenschaften des Ladepunktes wie IP-Adresse und elektrischer Anschluss definiert. Die meisten openWB werden 3-phasig angeschlossen! Bei mehreren Ladepunkten ist auf phasenrotierten Anschluss der openWB-Zuleitung zu achten! Abschließend wird die korrekte Zuordnung der Phase 1 des Ladekabels zur zugehörigen EVU-Zählerphase konfiguriert. Dies ist sehr wichtig, um optimales Lastmanagement sicherzustellen! ",-1),n("p",null," Tipp zur Zuordnung: Verwende ein nur 1-phasig ladendes Auto (z.B. Hybrid) oder stelle bei openWB mit 1p3p-Phasenumschaltung temporär unter Sofortladen (s. Einstellungen -> Ladeeinstellungen) auf einphasig, um eine 1-phasige Ladung zu erzwingen. Gehe unter Status und vergleiche die Leistungen bzw. Ströme der 3 Phasen am EVU-Zähler (rot) beim und nach dem Autoladen (Sofortladen mit 16A/ Stop). Diejenige EVU-Phase, die deutlich erhöhte Werte anzeigt, ist die auszuwählende EVU-Phase. ",-1),n("p",null,' Im grauen Abschnitt "Ladepunkt-Profile" können neben dem Standard-Ladepunkt-Profil auch weitere Ladepunkt-Profile, die andere WB-Typen abbilden, erstellt werden. Dort sind Eintragungen bzgl. des Ladepunkt-Maximalstroms bei einer Phase bzw. mehreren Phasen vorzunehmen. Die Profile werden abschließend im jeweiligen blauen Ladepunkt mittels Auswahlmenü zugeordnet. ',-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:r(()=>[w(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const $=m(P,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep6.vue"]]);export{$ as default}; diff --git a/web/settings/assets/InstallAssistantStep6-d428a8b2.js b/web/settings/assets/InstallAssistantStep6-d428a8b2.js deleted file mode 100644 index 51551e32d1..0000000000 --- a/web/settings/assets/InstallAssistantStep6-d428a8b2.js +++ /dev/null @@ -1 +0,0 @@ -import{C as d}from"./index-0992d19b.js";import u from"./InstallAssistantStepTemplate-68e25e8a.js";import{b as p}from"./ChargePointInstallation-81239155.js";import{_ as m,u as a,l as h,x as g,E as r,A as n,G as w}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const P={name:"InstallAssistantStep6",components:{InstallAssistantStepTemplate:u,ChargePointInstallationView:p},mixins:[d],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",7)},previousPage(){this.$emit("switchPage",5)},endAssistant(){this.$emit("endAssistant")}}};function c(t,e,f,b,k,i){const o=a("ChargePointInstallationView"),l=a("InstallAssistantStepTemplate");return h(),g(l,{title:"6. Einrichten der Ladepunkte (openWB als primary)",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:r(()=>[...e[4]||(e[4]=[n("p",null,' Enthält die steuernde openWB (primary) Ladetechnik, wird bei "Verfügbare Ladepunkte" "Interne openWB" ausgewählt. Weitere LP werden im primary als "Secondary openWB" oder andere WB-Typen wie "openWB Pro", "openwB Satellit" eingebunden. ',-1),n("p",null,"Bei openWBs ab Werk ist hier bereits ein Ladepunkt eingetragen.",-1),n("p",null," Nachfolgend werden die Eigenschaften des Ladepunktes wie IP-Adresse und elektrischer Anschluss definiert. Die meisten openWB werden 3-phasig angeschlossen! Bei mehreren Ladepunkten ist auf phasenrotierten Anschluss der openWB-Zuleitung zu achten! Abschließend wird die korrekte Zuordnung der Phase 1 des Ladekabels zur zugehörigen EVU-Zählerphase konfiguriert. Dies ist sehr wichtig, um optimales Lastmanagement sicherzustellen! ",-1),n("p",null," Tipp zur Zuordnung: Verwende ein nur 1-phasig ladendes Auto (z.B. Hybrid) oder stelle bei openWB mit 1p3p-Phasenumschaltung temporär unter Sofortladen (s. Einstellungen -> Ladeeinstellungen) auf einphasig, um eine 1-phasige Ladung zu erzwingen. Gehe unter Status und vergleiche die Leistungen bzw. Ströme der 3 Phasen am EVU-Zähler (rot) beim und nach dem Autoladen (Sofortladen mit 16A/ Stop). Diejenige EVU-Phase, die deutlich erhöhte Werte anzeigt, ist die auszuwählende EVU-Phase. ",-1),n("p",null,' Im grauen Abschnitt "Ladepunkt-Profile" können neben dem Standard-Ladepunkt-Profil auch weitere Ladepunkt-Profile, die andere WB-Typen abbilden, erstellt werden. Dort sind Eintragungen bzgl. des Ladepunkt-Maximalstroms bei einer Phase bzw. mehreren Phasen vorzunehmen. Die Profile werden abschließend im jeweiligen blauen Ladepunkt mittels Auswahlmenü zugeordnet. ',-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:r(()=>[w(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const $=m(P,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep6.vue"]]);export{$ as default}; diff --git a/web/settings/assets/InstallAssistantStep7-2bd98bf0.js b/web/settings/assets/InstallAssistantStep7-2bd98bf0.js new file mode 100644 index 0000000000..30c8a632b7 --- /dev/null +++ b/web/settings/assets/InstallAssistantStep7-2bd98bf0.js @@ -0,0 +1 @@ +import{C as l}from"./index-8dd8e083.js";import m from"./InstallAssistantStepTemplate-59e1095f.js";import p from"./LoadManagementConfig-61263fe6.js";import{_ as u,u as r,l as g,x as h,E as a,A as n,G as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./OpenwbSortableList-c7b5b151.js";const f={name:"InstallAssistantStep7",components:{InstallAssistantStepTemplate:m,LoadManagementConfigView:p},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",8)},previousPage(){this.$emit("switchPage",6)},endAssistant(){this.$emit("endAssistant")}}};function b(t,e,S,w,A,i){const o=r("LoadManagementConfigView"),d=r("InstallAssistantStepTemplate");return g(),h(d,{title:"7. Konfiguration des Lastmanagements",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>e[4]||(e[4]=[n("p",null," Im Lastmanagement werden die maximale Leistung sowie die maximalen Ströme für jede Phase des Zählermoduls sowie bei Hybrid-Systemen (per DC-angebundener Speicher) die maximale Ausgangsleistung des Wechselrichters der PV-Anlage eingetragen, falls eine solche vorhanden ist. ",-1),n("p",null,' Der erste Zähler ist in der Regel der Zähler am EVU-Punkt (Position des PV/Speicher-Smartmeters direkt hinter dem VNB-Zähler). In openWB ist hierzu auf die unterhalb der "Vorhandene Zählermodule" liegende (rote) EVU-Zähler-Komponente zu klicken, in welche die maximale EVU-Leistung sowie die Phasenströme eingetragen werden, für die der Hausanschluss abgesichert ist (Elektriker fragen, typisch f. EFH: 24kW/3x35A, 43kW/3x63A). ',-1),n("p",null," Ist ein Wechselrichter mit DC-angebundenem Speicher unter Geräte hinzugefügt worden, dann ist unter der (grünen) WR-Komponente noch die maximale Ausgangsleistung des WR einzutragen. ",-1),n("p",null,' Der EVU-Zähler (rot) schließt alle weiteren Komponenten wie WR und Speicher unter sich ein. Bei AC-eingebundenen Speichern befinden sich WR und Speicher in derselben Ebene, bei DC-eingebundenen Speichern (Hybrid) der Speicher unterhalb des WR. Die Ladepunkte (z.B. "secondary openWB") befinden sich auf derselben Ebene wie der WR und unterhalb des EVU-Zählers. Anpassungen der Anordnungen sind über die Pfeil-Bereiche der Komponenten durch einfaches Verschieben mit der Maus oder am Smartphone möglich. ',-1),n("p",null,null,-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:a(()=>[c(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const I=u(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep7.vue"]]);export{I as default}; diff --git a/web/settings/assets/InstallAssistantStep7-5a0be87c.js b/web/settings/assets/InstallAssistantStep7-5a0be87c.js deleted file mode 100644 index 7b55295d99..0000000000 --- a/web/settings/assets/InstallAssistantStep7-5a0be87c.js +++ /dev/null @@ -1 +0,0 @@ -import{C as l}from"./index-0992d19b.js";import m from"./InstallAssistantStepTemplate-68e25e8a.js";import p from"./LoadManagementConfig-161f6124.js";import{_ as u,u as r,l as g,x as h,E as a,A as n,G as c}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./OpenwbSortableList-0d1f7c1c.js";const f={name:"InstallAssistantStep7",components:{InstallAssistantStepTemplate:m,LoadManagementConfigView:p},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",8)},previousPage(){this.$emit("switchPage",6)},endAssistant(){this.$emit("endAssistant")}}};function b(t,e,S,w,A,i){const o=r("LoadManagementConfigView"),d=r("InstallAssistantStepTemplate");return g(),h(d,{title:"7. Konfiguration des Lastmanagements",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[...e[4]||(e[4]=[n("p",null," Im Lastmanagement werden die maximale Leistung sowie die maximalen Ströme für jede Phase des Zählermoduls sowie bei Hybrid-Systemen (per DC-angebundener Speicher) die maximale Ausgangsleistung des Wechselrichters der PV-Anlage eingetragen, falls eine solche vorhanden ist. ",-1),n("p",null,' Der erste Zähler ist in der Regel der Zähler am EVU-Punkt (Position des PV/Speicher-Smartmeters direkt hinter dem VNB-Zähler). In openWB ist hierzu auf die unterhalb der "Vorhandene Zählermodule" liegende (rote) EVU-Zähler-Komponente zu klicken, in welche die maximale EVU-Leistung sowie die Phasenströme eingetragen werden, für die der Hausanschluss abgesichert ist (Elektriker fragen, typisch f. EFH: 24kW/3x35A, 43kW/3x63A). ',-1),n("p",null," Ist ein Wechselrichter mit DC-angebundenem Speicher unter Geräte hinzugefügt worden, dann ist unter der (grünen) WR-Komponente noch die maximale Ausgangsleistung des WR einzutragen. ",-1),n("p",null,' Der EVU-Zähler (rot) schließt alle weiteren Komponenten wie WR und Speicher unter sich ein. Bei AC-eingebundenen Speichern befinden sich WR und Speicher in derselben Ebene, bei DC-eingebundenen Speichern (Hybrid) der Speicher unterhalb des WR. Die Ladepunkte (z.B. "secondary openWB") befinden sich auf derselben Ebene wie der WR und unterhalb des EVU-Zählers. Anpassungen der Anordnungen sind über die Pfeil-Bereiche der Komponenten durch einfaches Verschieben mit der Maus oder am Smartphone möglich. ',-1),n("p",null,null,-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:a(()=>[c(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const I=u(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep7.vue"]]);export{I as default}; diff --git a/web/settings/assets/InstallAssistantStep8-16380cdc.js b/web/settings/assets/InstallAssistantStep8-23be5b5b.js similarity index 85% rename from web/settings/assets/InstallAssistantStep8-16380cdc.js rename to web/settings/assets/InstallAssistantStep8-23be5b5b.js index 8daed3d657..acf77efe8a 100644 --- a/web/settings/assets/InstallAssistantStep8-16380cdc.js +++ b/web/settings/assets/InstallAssistantStep8-23be5b5b.js @@ -1 +1 @@ -import{C as g}from"./index-0992d19b.js";import p from"./InstallAssistantStepTemplate-68e25e8a.js";import{a as h}from"./VehicleConfig-233066dd.js";import{F as f}from"./vendor-fortawesome-2b3791bb.js";import{_ as z,u as r,l as w,x as P,E as a,A as n,B as o,G as d}from"./vendor-36bf053b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const A={name:"InstallAssistantStep8",components:{InstallAssistantStepTemplate:p,VehicleConfigView:h,FontAwesomeIcon:f},mixins:[g],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",9)},previousPage(){this.$emit("switchPage",7)},endAssistant(){this.$emit("endAssistant")}}},F={class:"font-weight-bold"};function v(t,e,c,S,V,i){const l=r("FontAwesomeIcon"),u=r("VehicleConfigView"),m=r("InstallAssistantStepTemplate");return w(),P(m,{title:"8. Einrichten der Fahrzeuge",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[e[6]||(e[6]=n("p",null,"Vor dem eigentlichen Fahrzeug werden zuerst die Fahrzeug- und Lade-Profile konfiguriert.",-1)),e[7]||(e[7]=n("p",null," Bei nur einem Fahrzeug reicht das Standard-Fahrzeug-Profil aus. Bei mehreren Fahrzeugtypen werden weitere Fahrzeug-Profile hinzugefügt. Im Anschluss werden die Fahrzeug-Profile mit den passenden Einstellungen des Fahrzeugtyps versehen (Mindeststromstärke, Maximalstromstärke bei einer/mehreren Phase/n sowie Angaben zur Batterie und Handhabung der Phasen entsprechend den Daten des Automobilherstellers. Im Zweifelsfall den Hersteller des Autos oder im openWB-Forum nachfragen). ",-1)),n("p",F,[e[4]||(e[4]=o(' Wichtig: Die "Angaben zur Handhabung von Phasen" des Fahrzeugs sind richtig einzutragen! Beachte die Hilfstexte, die Du durch Klick auf ',-1)),d(l,{icon:["far","question-circle"]}),e[5]||(e[5]=o(" anzeigen kannst. ",-1))]),e[8]||(e[8]=n("p",null," Bei nur einem Fahrzeug reicht das Standard-Lade-Profil aus. Bei mehreren Fahrzeugen können weitere Lade-Profile hinzugefügt werden. Dies erlaubt die Nutzung unterschiedlicher Lademodi je Fahrzeug (z.B. EV1 = Sofortladen, EV2 = PV-Laden). Im Anschluss werden die Voreinstellungen zu den verschiedenen Lademodi konfiguriert. ",-1)),e[9]||(e[9]=n("p",null," Nun wird das eigentliche Fahrzeug angelegt und mit dem gewünschten Fahrzeug-Profil / Lade-Profil versehen. Ist nur ein Fahrzeug vorhanden, reicht das Standard-Fahrzeug aus. ",-1)),e[10]||(e[10]=n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1))]),content:a(()=>[d(u,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const T=z(A,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep8.vue"]]);export{T as default}; +import{C as g}from"./index-8dd8e083.js";import p from"./InstallAssistantStepTemplate-59e1095f.js";import{a as h}from"./VehicleConfig-c6e5b45b.js";import{F as f}from"./vendor-fortawesome-a02b6813.js";import{_ as z,u as r,l as w,x as P,E as a,A as n,B as o,G as d}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const A={name:"InstallAssistantStep8",components:{InstallAssistantStepTemplate:p,VehicleConfigView:h,FontAwesomeIcon:f},mixins:[g],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",9)},previousPage(){this.$emit("switchPage",7)},endAssistant(){this.$emit("endAssistant")}}},F={class:"font-weight-bold"};function v(t,e,c,S,V,i){const l=r("FontAwesomeIcon"),u=r("VehicleConfigView"),m=r("InstallAssistantStepTemplate");return w(),P(m,{title:"8. Einrichten der Fahrzeuge",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[e[6]||(e[6]=n("p",null,"Vor dem eigentlichen Fahrzeug werden zuerst die Fahrzeug- und Lade-Profile konfiguriert.",-1)),e[7]||(e[7]=n("p",null," Bei nur einem Fahrzeug reicht das Standard-Fahrzeug-Profil aus. Bei mehreren Fahrzeugtypen werden weitere Fahrzeug-Profile hinzugefügt. Im Anschluss werden die Fahrzeug-Profile mit den passenden Einstellungen des Fahrzeugtyps versehen (Mindeststromstärke, Maximalstromstärke bei einer/mehreren Phase/n sowie Angaben zur Batterie und Handhabung der Phasen entsprechend den Daten des Automobilherstellers. Im Zweifelsfall den Hersteller des Autos oder im openWB-Forum nachfragen). ",-1)),n("p",F,[e[4]||(e[4]=o(' Wichtig: Die "Angaben zur Handhabung von Phasen" des Fahrzeugs sind richtig einzutragen! Beachte die Hilfstexte, die Du durch Klick auf ',-1)),d(l,{icon:["far","question-circle"]}),e[5]||(e[5]=o(" anzeigen kannst. ",-1))]),e[8]||(e[8]=n("p",null," Bei nur einem Fahrzeug reicht das Standard-Lade-Profil aus. Bei mehreren Fahrzeugen können weitere Lade-Profile hinzugefügt werden. Dies erlaubt die Nutzung unterschiedlicher Lademodi je Fahrzeug (z.B. EV1 = Sofortladen, EV2 = PV-Laden). Im Anschluss werden die Voreinstellungen zu den verschiedenen Lademodi konfiguriert. ",-1)),e[9]||(e[9]=n("p",null," Nun wird das eigentliche Fahrzeug angelegt und mit dem gewünschten Fahrzeug-Profil / Lade-Profil versehen. Ist nur ein Fahrzeug vorhanden, reicht das Standard-Fahrzeug aus. ",-1)),e[10]||(e[10]=n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1))]),content:a(()=>[d(u,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const T=z(A,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep8.vue"]]);export{T as default}; diff --git a/web/settings/assets/InstallAssistantStep9-1aa5b6bf.js b/web/settings/assets/InstallAssistantStep9-1aa5b6bf.js new file mode 100644 index 0000000000..aab54cfa53 --- /dev/null +++ b/web/settings/assets/InstallAssistantStep9-1aa5b6bf.js @@ -0,0 +1 @@ +import{C as l}from"./index-8dd8e083.js";import p from"./InstallAssistantStepTemplate-59e1095f.js";import{D as u}from"./DataManagement-52054445.js";import{_ as d,u as a,l as g,x as f,E as i,A as o,G as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const A={name:"InstallAssistantStep9",components:{InstallAssistantStepTemplate:p,DataManagement:u},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:["openWB/general/extern"]}),computed:{stepNumber(){return this.$store.state.mqtt["openWB/general/extern"]?5:9}},methods:{nextPage(){this.$emit("switchPage",10)},previousPage(){this.$emit("switchPage",this.$store.state.mqtt["openWB/general/extern"]?4:8)},endAssistant(){this.$emit("endAssistant")}}};function P(t,e,$,S,c,n){const r=a("DataManagement"),m=a("InstallAssistantStepTemplate");return g(),f(m,{title:`${n.stepNumber}. Datensicherung der neuen Konfiguration`,onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:i(()=>e[4]||(e[4]=[o("p",null," Wir empfehlen an dieser Stelle eine manuell initiierte Sicherung der neu konfigurierten openWB zu erstellen. ",-1),o("p",null," Dieser Vorgang sollte im Betrieb regelmäßig wiederholt werden (mindestens vor Updates), um sowohl die individuellen Log-Daten als auch auf ältere Konfigurationen zurückgreifen zu können (Backups). ",-1)])),content:i(()=>[v(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["title","onNextPage","onPreviousPage","onEndAssistant"])}const W=d(A,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep9.vue"]]);export{W as default}; diff --git a/web/settings/assets/InstallAssistantStep9-32a8ab2b.js b/web/settings/assets/InstallAssistantStep9-32a8ab2b.js deleted file mode 100644 index a5ab4ea5b0..0000000000 --- a/web/settings/assets/InstallAssistantStep9-32a8ab2b.js +++ /dev/null @@ -1 +0,0 @@ -import{C as l}from"./index-0992d19b.js";import p from"./InstallAssistantStepTemplate-68e25e8a.js";import{D as u}from"./DataManagement-81c5a852.js";import{_ as d,u as a,l as g,x as f,E as i,A as o,G as v}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const A={name:"InstallAssistantStep9",components:{InstallAssistantStepTemplate:p,DataManagement:u},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:["openWB/general/extern"]}),computed:{stepNumber(){return this.$store.state.mqtt["openWB/general/extern"]?5:9}},methods:{nextPage(){this.$emit("switchPage",10)},previousPage(){this.$emit("switchPage",this.$store.state.mqtt["openWB/general/extern"]?4:8)},endAssistant(){this.$emit("endAssistant")}}};function P(t,e,$,S,c,n){const r=a("DataManagement"),m=a("InstallAssistantStepTemplate");return g(),f(m,{title:`${n.stepNumber}. Datensicherung der neuen Konfiguration`,onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:i(()=>[...e[4]||(e[4]=[o("p",null," Wir empfehlen an dieser Stelle eine manuell initiierte Sicherung der neu konfigurierten openWB zu erstellen. ",-1),o("p",null," Dieser Vorgang sollte im Betrieb regelmäßig wiederholt werden (mindestens vor Updates), um sowohl die individuellen Log-Daten als auch auf ältere Konfigurationen zurückgreifen zu können (Backups). ",-1)])]),content:i(()=>[v(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["title","onNextPage","onPreviousPage","onEndAssistant"])}const W=d(A,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep9.vue"]]);export{W as default}; diff --git a/web/settings/assets/InstallAssistantStepTemplate-59e1095f.js b/web/settings/assets/InstallAssistantStepTemplate-59e1095f.js new file mode 100644 index 0000000000..b03cf7e407 --- /dev/null +++ b/web/settings/assets/InstallAssistantStepTemplate-59e1095f.js @@ -0,0 +1 @@ +import{C as g}from"./index-8dd8e083.js";import{l as v,ax as y,ay as w,F as x}from"./vendor-fortawesome-a02b6813.js";import{_ as k,u as r,l as a,m as i,G as t,E as s,A as n,B as c,z as p,p as f}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const B="/openWB/web/settings/img/openWB_logo_light.png";v.add(y,w);const h={name:"InstallAssistantStepTemplate",components:{FontAwesomeIcon:x},mixins:[g],props:{title:{type:String,required:!0},hidePrevious:{type:Boolean,required:!1,default:!1},hideNext:{type:Boolean,required:!1,default:!1},hideEnd:{type:Boolean,required:!1,default:!1}},emits:["previousPage","nextPage","endAssistant"],methods:{nextPage(){window.scrollTo(0,0),this.$emit("nextPage")},previousPage(){window.scrollTo(0,0),this.$emit("previousPage")},endAssistant(){this.$emit("endAssistant")}}},A={class:"row justify-content-center mb-1"},C={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},P={key:1,class:"col-md-4 d-flex py-1 justify-content-center"},S={key:2,class:"col-md-4 d-flex py-1 justify-content-center"},T={class:"row justify-content-center"},I={class:"page-help-text col-md-3 py-2"},N={class:"col py-2"};function $(_,e,o,j,W,l){const u=r("font-awesome-icon"),d=r("openwb-base-click-button"),b=r("openwb-base-card");return a(),i("div",null,[t(b,{title:o.title,"body-bg":"white",class:"p-0 mx-3"},{footer:s(()=>[n("div",A,[o.hidePrevious?p("",!0):(a(),i("div",C,[t(d,{class:"btn-block btn-warning",onButtonClicked:e[0]||(e[0]=m=>l.previousPage())},{default:s(()=>[t(u,{icon:["fas","caret-left"]}),e[3]||(e[3]=c(" Zurück ",-1))]),_:1,__:[3]})])),o.hideNext?p("",!0):(a(),i("div",P,[t(d,{class:"btn-block btn-success",onButtonClicked:e[1]||(e[1]=m=>l.nextPage())},{default:s(()=>[e[4]||(e[4]=c(" Weiter ",-1)),t(u,{icon:["fas","caret-right"]})]),_:1,__:[4]})])),o.hideEnd?p("",!0):(a(),i("div",S,[t(d,{class:"btn-block btn-danger",onButtonClicked:e[2]||(e[2]=m=>l.endAssistant())},{default:s(()=>e[5]||(e[5]=[c(" Assistent beenden ",-1)])),_:1,__:[5]})]))])]),default:s(()=>[n("div",T,[n("div",I,[f(_.$slots,"help",{},()=>[e[6]||(e[6]=n("img",{src:B,alt:"openWB Logo",class:"w-100"},null,-1))],!0)]),n("div",N,[f(_.$slots,"content",{},void 0,!0)])])]),_:3},8,["title"])])}const R=k(h,[["render",$],["__scopeId","data-v-db9e78cb"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStepTemplate.vue"]]);export{R as default}; diff --git a/web/settings/assets/InstallAssistantStepTemplate-68e25e8a.js b/web/settings/assets/InstallAssistantStepTemplate-68e25e8a.js deleted file mode 100644 index 5398eb3235..0000000000 --- a/web/settings/assets/InstallAssistantStepTemplate-68e25e8a.js +++ /dev/null @@ -1 +0,0 @@ -import{C as g}from"./index-0992d19b.js";import{l as v,ax as y,ay as w,F as x}from"./vendor-fortawesome-2b3791bb.js";import{_ as k,u as r,l as a,m as i,G as t,E as s,A as n,B as c,z as p,p as f}from"./vendor-36bf053b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";const B="/openWB/web/settings/img/openWB_logo_light.png";v.add(y,w);const h={name:"InstallAssistantStepTemplate",components:{FontAwesomeIcon:x},mixins:[g],props:{title:{type:String,required:!0},hidePrevious:{type:Boolean,required:!1,default:!1},hideNext:{type:Boolean,required:!1,default:!1},hideEnd:{type:Boolean,required:!1,default:!1}},emits:["previousPage","nextPage","endAssistant"],methods:{nextPage(){window.scrollTo(0,0),this.$emit("nextPage")},previousPage(){window.scrollTo(0,0),this.$emit("previousPage")},endAssistant(){this.$emit("endAssistant")}}},A={class:"row justify-content-center mb-1"},C={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},P={key:1,class:"col-md-4 d-flex py-1 justify-content-center"},S={key:2,class:"col-md-4 d-flex py-1 justify-content-center"},T={class:"row justify-content-center"},I={class:"page-help-text col-md-3 py-2"},N={class:"col py-2"};function $(u,e,o,j,W,l){const m=r("font-awesome-icon"),d=r("openwb-base-click-button"),b=r("openwb-base-card");return a(),i("div",null,[t(b,{title:o.title,"body-bg":"white",class:"p-0 mx-3"},{footer:s(()=>[n("div",A,[o.hidePrevious?p("",!0):(a(),i("div",C,[t(d,{class:"btn-block btn-warning",onButtonClicked:e[0]||(e[0]=_=>l.previousPage())},{default:s(()=>[t(m,{icon:["fas","caret-left"]}),e[3]||(e[3]=c(" Zurück ",-1))]),_:1})])),o.hideNext?p("",!0):(a(),i("div",P,[t(d,{class:"btn-block btn-success",onButtonClicked:e[1]||(e[1]=_=>l.nextPage())},{default:s(()=>[e[4]||(e[4]=c(" Weiter ",-1)),t(m,{icon:["fas","caret-right"]})]),_:1})])),o.hideEnd?p("",!0):(a(),i("div",S,[t(d,{class:"btn-block btn-danger",onButtonClicked:e[2]||(e[2]=_=>l.endAssistant())},{default:s(()=>[...e[5]||(e[5]=[c(" Assistent beenden ",-1)])]),_:1})]))])]),default:s(()=>[n("div",T,[n("div",I,[f(u.$slots,"help",{},()=>[e[6]||(e[6]=n("img",{src:B,alt:"openWB Logo",class:"w-100"},null,-1))],!0)]),n("div",N,[f(u.$slots,"content",{},void 0,!0)])])]),_:3},8,["title"])])}const R=k(h,[["render",$],["__scopeId","data-v-db9e78cb"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStepTemplate.vue"]]);export{R as default}; diff --git a/web/settings/assets/IoConfig-38958e2e.js b/web/settings/assets/IoConfig-38958e2e.js new file mode 100644 index 0000000000..fd19f3d846 --- /dev/null +++ b/web/settings/assets/IoConfig-38958e2e.js @@ -0,0 +1 @@ +import{l as q,ab as $,F as L}from"./vendor-fortawesome-a02b6813.js";import{_ as A,C as E}from"./index-8dd8e083.js";import{_ as W}from"./dynamic-import-helper-be004503.js";import{_ as k,u as l,l as a,m as g,x as _,E as i,B as d,F as b,G as r,A as w,a2 as M,N as I,M as x,z as C,a3 as T}from"./vendor-25d394b4.js";const U={props:{ioDevice:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},F=k(U,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceConfigMixin.vue"]]),N={name:"OpenwbIoDeviceConfigFallback",mixins:[F]},z={class:"io-device-config-fallback"},G={key:1};function R(t,e,s,v,c,n){const m=l("openwb-base-alert"),h=l("openwb-base-textarea");return a(),g("div",z,[Object.keys(t.ioDevice.configuration).length==0?(a(),_(m,{key:0,subtype:"info"},{default:i(()=>[d(' Das I/O-Modul "'+b(t.ioDevice.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(a(),g("div",G,[r(m,{subtype:"warning"},{default:i(()=>[d(' Es wurde keine Konfigurationsseite für das I/O-Modul "'+b(t.ioDevice.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),r(h,{title:"Konfiguration",subtype:"json","model-value":t.ioDevice.configuration,"onUpdate:modelValue":e[0]||(e[0]=f=>t.updateConfiguration(f,"configuration"))},{help:i(()=>e[1]||(e[1]=[d(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),r(m,{subtype:"info"},{default:i(()=>[w("pre",null,b(JSON.stringify(t.ioDevice.configuration,void 0,2)),1)]),_:1})]))])}const J=k(N,[["render",R],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceConfigFallback.vue"]]),H={name:"OpenwbIoDeviceProxy",props:{ioDevice:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],computed:{myComponent(){return console.debug(`loading io device: ${this.ioDevice.type}`),M({loader:()=>W(Object.assign({"./add_on/io_device.vue":()=>A(()=>import("./io_device-4394e2dd.js"),["assets/io_device-4394e2dd.js","assets/index-8dd8e083.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./dimm_kit/io_device.vue":()=>A(()=>import("./io_device-e4d01342.js"),["assets/io_device-e4d01342.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.ioDevice.type}/io_device.vue`),errorComponent:J})},outputs(){const t=[];if(this.ioDevice.output){if(this.ioDevice.output.analog)for(const e in this.ioDevice.output.analog)t.push(`openWB/set/system/io/${this.ioDevice.id}/set/manual/analog_output/${e}`);if(this.ioDevice.output.digital)for(const e in this.ioDevice.output.digital)t.push(`openWB/set/system/io/${this.ioDevice.id}/set/manual/digital_output/${e}`)}return t}},methods:{updateConfiguration(t){this.$emit("update:configuration",t)},sendCommand(t){this.$emit("sendCommand",t)}}};function Q(t,e,s,v,c,n){const m=l("openwb-base-heading"),h=l("openwb-base-copy-to-clipboard"),f=l("openwb-base-alert");return a(),g("div",null,[r(m,null,{default:i(()=>[d(' Einstellungen für I/O-Modul "'+b(s.ioDevice.name)+'" ',1)]),_:1}),n.outputs.length?(a(),_(f,{key:0,subtype:"info"},{default:i(()=>[e[2]||(e[2]=d(" Die Ausgänge können über die folgenden Topics manuell per MQTT geschaltet werden. Falls Ausgänge in Aktionen konfiguriert werden, überschreibt das manuelle Setzen den Status. ",-1)),w("ul",null,[(a(!0),g(I,null,x(n.outputs,p=>(a(),g("li",{key:p},[r(h,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[d(b(p),1)]),_:2},1024)]))),128))]),e[3]||(e[3]=d(" Als Wert wird ein boolean als json oder 0/1 akzeptiert.",-1)),e[4]||(e[4]=w("br",null,null,-1)),e[5]||(e[5]=d(" Beispiel: ",-1)),e[6]||(e[6]=w("span",{class:"text-info"},"false",-1))]),_:1,__:[2,3,4,5,6]})):C("",!0),(a(),_(T(n.myComponent),{"io-device":s.ioDevice,"onUpdate:configuration":e[0]||(e[0]=p=>n.updateConfiguration(p)),onSendCommand:e[1]||(e[1]=p=>n.sendCommand(p))},null,40,["io-device"]))])}const X=k(H,[["render",Q],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceProxy.vue"]]),Y={mixins:[E],props:{ioAction:{type:Object,required:!0},ioDevice:{type:Object,required:!0},availableChargePoints:{type:Array,required:!1,default:()=>[]},availableComponents:{type:Array,required:!1,default:()=>[]},availableIoDevices:{type:Array,required:!1,default:()=>[]}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},Z=k(Y,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionConfigMixin.vue"]]),K={name:"OpenwbIoActionConfigFallback",mixins:[Z]},ee={class:"io-action-config-fallback"},te={key:1};function oe(t,e,s,v,c,n){var f,p;const m=l("openwb-base-alert"),h=l("openwb-base-textarea");return a(),g("div",ee,[Object.keys((f=t.ioAction)==null?void 0:f.configuration).length==0?(a(),_(m,{key:0,subtype:"info"},{default:i(()=>{var u;return[d(' Die I/O-Aktion "'+b((u=t.ioAction)==null?void 0:u.name)+'" bietet keine Einstellungen. ',1)]}),_:1})):(a(),g("div",te,[r(m,{subtype:"warning"},{default:i(()=>{var u;return[d(' Es wurde keine Konfigurationsseite für die I/O-Aktion "'+b((u=t.ioAction)==null?void 0:u.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]}),_:1}),r(h,{title:"Konfiguration",subtype:"json","model-value":(p=t.ioAction)==null?void 0:p.configuration,"onUpdate:modelValue":e[0]||(e[0]=u=>t.updateConfiguration(u,"configuration"))},{help:i(()=>e[1]||(e[1]=[d(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),r(m,{subtype:"info"},{default:i(()=>{var u;return[w("pre",null,b(JSON.stringify((u=t.ioAction)==null?void 0:u.configuration,void 0,2)),1)]}),_:1})]))])}const ne=k(K,[["render",oe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionConfigFallback.vue"]]),ie={name:"OpenwbIoActionProxy",props:{ioAction:{type:Object,required:!0},ioDevices:{type:Object,required:!0},installedChargePoints:{type:Object,required:!0},installedComponents:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],computed:{myComponent(){var t,e;return console.debug(`loading io action: ${(t=this.ioAction)==null?void 0:t.group} / ${(e=this.ioAction)==null?void 0:e.type}`),M({loader:()=>{var s,v;return W(Object.assign({"./controllable_consumers/dimming/io_action.vue":()=>A(()=>import("./io_action-a52c3f8c.js"),["assets/io_action-a52c3f8c.js","assets/OpenwbIoSinglePattern-14df64f6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./controllable_consumers/dimming_direct_control/io_action.vue":()=>A(()=>import("./io_action-d6457738.js"),["assets/io_action-d6457738.js","assets/OpenwbIoSinglePattern-14df64f6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./controllable_consumers/ripple_control_receiver/io_action.vue":()=>A(()=>import("./io_action-7fdda1cd.js"),["assets/io_action-7fdda1cd.js","assets/OpenwbIoPattern-66bb2793.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/OpenwbIoPattern-746401f7.css","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generator_systems/stepwise_control/io_action.vue":()=>A(()=>import("./io_action-639b3028.js"),["assets/io_action-639b3028.js","assets/OpenwbIoPattern-66bb2793.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/OpenwbIoPattern-746401f7.css","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${(s=this.ioAction)==null?void 0:s.group}/${(v=this.ioAction)==null?void 0:v.type}/io_action.vue`)},errorComponent:ne})},ioDeviceList(){return Object.keys(this.ioDevices).map(t=>{var e,s;return{value:(e=this.ioDevices[t])==null?void 0:e.id,text:(s=this.ioDevices[t])==null?void 0:s.name}})},availableIoDevices(){return Object.values(this.ioDevices)},availableChargePoints(){return Object.values(this.installedChargePoints).map(t=>({value:t==null?void 0:t.id,text:t==null?void 0:t.name}))},availableComponents(){return Object.values(this.installedComponents).map(t=>({value:t==null?void 0:t.id,text:t==null?void 0:t.name,type:t==null?void 0:t.type}))}},methods:{updateConfiguration(t,e=void 0){e?this.$emit("update:configuration",{value:t,object:e}):this.$emit("update:configuration",t)},updateIoDevice(t){var e;if(this.updateConfiguration(t,"configuration.io_device"),Array.isArray((e=this.ioAction.configuration)==null?void 0:e.input_pattern)){let s=this.ioAction.configuration.input_pattern.map(v=>({value:v.value,matrix:{}}));this.updateConfiguration(s,"configuration.input_pattern")}Object.prototype.hasOwnProperty.call(this.ioAction.configuration,"digital_input")&&this.updateConfiguration(null,"configuration.digital_input")}}},ae={key:0};function se(t,e,s,v,c,n){var f,p;const m=l("openwb-base-heading"),h=l("openwb-base-select-input");return a(),g(I,null,[r(m,null,{default:i(()=>{var u;return[d(' Einstellungen für I/O-Aktion "'+b((u=s.ioAction)==null?void 0:u.name)+'" ',1)]}),_:1}),r(h,{title:"Eingangs-Gerät","not-selected":"Bitte auswählen","empty-value":null,required:"",options:n.ioDeviceList,"model-value":(f=s.ioAction)==null?void 0:f.configuration.io_device,"onUpdate:modelValue":e[0]||(e[0]=u=>n.updateIoDevice(u))},{help:i(()=>e[2]||(e[2]=[d(" Bitte das Gerät auswählen, über das der Schaltbefehl empfangen werden soll. Für jede Aktion kann nur ein Gerät ausgewählt werden. ",-1)])),_:1},8,["options","model-value"]),((p=s.ioAction)==null?void 0:p.configuration.io_device)!==null?(a(),g("div",ae,[e[3]||(e[3]=w("hr",null,null,-1)),(a(),_(T(n.myComponent),{"io-action":s.ioAction,"io-device":s.ioDevices[`openWB/system/io/${s.ioAction.configuration.io_device}/config`],"available-charge-points":n.availableChargePoints,"available-components":n.availableComponents,"available-io-devices":n.availableIoDevices,"onUpdate:configuration":e[1]||(e[1]=u=>n.updateConfiguration(u))},null,40,["io-action","io-device","available-charge-points","available-components","available-io-devices"]))])):C("",!0)],64)}const re=k(ie,[["render",se],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionProxy.vue"]]);q.add($);const ue={name:"OpenwbIoConfigView",components:{FontAwesomeIcon:L,OpenwbIoDeviceProxy:X,OpenwbIoActionProxy:re},mixins:[E],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults","send-command"],data(){return{mqttTopicsToSubscribe:["openWB/system/configurable/io_devices","openWB/system/io/+/config","openWB/system/configurable/io_actions","openWB/io/action/+/config","openWB/chargepoint/+/config","openWB/system/device/+/component/+/config"],showIoDeviceDeleteModal:!1,modalIoDeviceIndex:void 0,ioDeviceToAdd:void 0,showIoActionDeleteModal:!1,modalIoActionIndex:void 0,ioActionToAdd:void 0}},computed:{ioDeviceList:{get(){return this.$store.state.mqtt["openWB/system/configurable/io_devices"]}},installedIoDevices:{get(){return this.getWildcardTopics("openWB/system/io/+/config")}},ioActionList:{get(){return this.$store.state.mqtt["openWB/system/configurable/io_actions"]===void 0?[]:Object.entries(this.$store.state.mqtt["openWB/system/configurable/io_actions"]).map(([t,e])=>({label:e.group_name,options:e.actions.map(s=>({value:[t,s.value],text:s.text})).sort((s,v)=>s.text.localeCompare(v.text))})).sort((t,e)=>t.label.localeCompare(e.label))}},installedIoActions:{get(){return this.getWildcardTopics("openWB/io/action/+/config")}},installedChargePoints:{get(){return this.getWildcardTopics("openWB/chargepoint/+/config")}},installedComponents:{get(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")}}},methods:{getIoDeviceName(t){return this.$store.state.mqtt["openWB/system/io/"+t+"/config"]?this.$store.state.mqtt["openWB/system/io/"+t+"/config"].name:"I/O-Gerät "+t},addIoDevice(){this.$emit("send-command",{command:"addIoDevice",data:{type:this.ioDeviceToAdd}})},removeIoDeviceModal(t,e){e.stopPropagation(),this.modalIoDeviceIndex=parseInt(t.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showIoDeviceDeleteModal=!0},removeIoDevice(t,e){this.showIoDeviceDeleteModal=!1,e=="confirm"&&this.$emit("send-command",{command:"removeIoDevice",data:{id:t}})},addIoAction(){this.$emit("send-command",{command:"addIoAction",data:{type:this.ioActionToAdd}})},removeIoActionModal(t,e){e.stopPropagation(),this.modalIoActionIndex=parseInt(t.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showIoActionDeleteModal=!0},removeIoAction(t,e){this.showIoActionDeleteModal=!1,e=="confirm"&&this.$emit("send-command",{command:"removeIoAction",data:{id:t}})},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},le={class:"ioConfig"},de={name:"ioConfigForm"},pe={key:0},ce={key:0};function me(t,e,s,v,c,n){const m=l("openwb-base-modal-dialog"),h=l("font-awesome-icon"),f=l("openwb-base-avatar"),p=l("openwb-base-text-input"),u=l("openwb-io-device-proxy"),O=l("openwb-base-card"),j=l("openwb-base-select-input"),P=l("openwb-io-action-proxy"),V=l("openwb-base-alert"),S=l("openwb-base-submit-buttons");return a(),g(I,null,[r(m,{show:c.showIoDeviceDeleteModal,title:"Modul löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=o=>n.removeIoDevice(c.modalIoDeviceIndex,o))},{default:i(()=>[d(' Wollen Sie das Ein-/Ausgangs-Gerät "'+b(n.getIoDeviceName(c.modalIoDeviceIndex))+'" (ID: '+b(c.modalIoDeviceIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),r(m,{show:c.showIoActionDeleteModal,title:"Aktion löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=o=>n.removeIoAction(c.modalIoActionIndex,o))},{default:i(()=>[d(' Wollen Sie die Aktion "'+b(n.getIoDeviceName(c.modalIoActionIndex))+'" (ID: '+b(c.modalIoActionIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),w("div",le,[w("form",de,[r(O,{title:"Ein-/Ausgangs-Geräte"},{default:i(()=>[(a(!0),g(I,null,x(n.installedIoDevices,(o,D)=>(a(),_(O,{key:D,title:(o==null?void 0:o.name)+" (ID: "+(o==null?void 0:o.id)+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:i(y=>[y.collapsed?C("",!0):(a(),_(f,{key:0,class:"bg-danger clickable",onClick:B=>n.removeIoDeviceModal(D,B)},{default:i(()=>[r(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:i(()=>[r(p,{title:"Bezeichnung",subtype:"text","model-value":o.name,"onUpdate:modelValue":y=>t.updateState(D,y,"name")},null,8,["model-value","onUpdate:modelValue"]),r(p,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":t.$store.state.mqtt[D].type},null,8,["model-value"]),e[7]||(e[7]=w("hr",null,null,-1)),r(u,{"io-device":o,"onUpdate:configuration":y=>n.updateConfiguration(D,y)},null,8,["io-device","onUpdate:configuration"])]),_:2,__:[7]},1032,["title"]))),128)),Object.keys(n.installedIoDevices).length>0?(a(),g("hr",pe)):C("",!0),r(j,{title:"Verfügbare Geräte","not-selected":"Bitte auswählen",options:n.ioDeviceList,"model-value":c.ioDeviceToAdd,"add-button":!0,"onUpdate:modelValue":e[2]||(e[2]=o=>c.ioDeviceToAdd=o),"onInput:add":n.addIoDevice},{help:i(()=>e[8]||(e[8]=[d(" Bitte ein Ein-/Ausgangs-Modul auswählen, das hinzugefügt werden soll. ",-1)])),_:1},8,["options","model-value","onInput:add"])]),_:1}),r(O,{title:"Ein-/Ausgangs-Aktionen"},{default:i(()=>[(a(!0),g(I,null,x(n.installedIoActions,(o,D)=>(a(),_(O,{key:D,title:(o==null?void 0:o.name)+" (ID: "+(o==null?void 0:o.id)+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:i(y=>[y.collapsed?C("",!0):(a(),_(f,{key:0,class:"bg-danger clickable",onClick:B=>n.removeIoActionModal(D,B)},{default:i(()=>[r(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:i(()=>[r(p,{title:"Bezeichnung",subtype:"text","model-value":o==null?void 0:o.name,"onUpdate:modelValue":y=>t.updateState(D,y,"name")},null,8,["model-value","onUpdate:modelValue"]),r(p,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":[o==null?void 0:o.group,o==null?void 0:o.type].join(" / ")},null,8,["model-value"]),e[9]||(e[9]=w("hr",null,null,-1)),o!==void 0?(a(),_(P,{key:0,"io-action":o,"io-devices":n.installedIoDevices,"installed-charge-points":n.installedChargePoints,"installed-components":n.installedComponents,"onUpdate:configuration":y=>n.updateConfiguration(D,y)},null,8,["io-action","io-devices","installed-charge-points","installed-components","onUpdate:configuration"])):C("",!0)]),_:2,__:[9]},1032,["title"]))),128)),Object.keys(n.installedIoActions).length>0?(a(),g("hr",ce)):C("",!0),Object.keys(n.installedIoDevices).length>0?(a(),_(j,{key:1,title:"Verfügbare Aktionen","not-selected":"Bitte auswählen",groups:n.ioActionList,"model-value":c.ioActionToAdd,"add-button":!0,"onUpdate:modelValue":e[3]||(e[3]=o=>c.ioActionToAdd=o),"onInput:add":n.addIoAction},{help:i(()=>e[10]||(e[10]=[d(" Bitte eine Ein-/Ausgangs-Aktion auswählen, die hinzugefügt werden soll. ",-1)])),_:1},8,["groups","model-value","onInput:add"])):(a(),_(V,{key:2,subtype:"warning"},{default:i(()=>e[11]||(e[11]=[d(" Keine Ein-/Ausgangs-Geräte vorhanden!",-1),w("br",null,null,-1),d(" Bitte fügen Sie zuerst ein Ein-/Ausgangs-Gerät hinzu, bevor Sie Aktionen konfigurieren. ",-1)])),_:1,__:[11]}))]),_:1}),r(S,{"form-name":"ioConfigForm",onSave:e[4]||(e[4]=o=>t.$emit("save")),onReset:e[5]||(e[5]=o=>t.$emit("reset")),onDefaults:e[6]||(e[6]=o=>t.$emit("defaults"))})])])],64)}const ge=k(ue,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/IoConfig.vue"]]),ye=Object.freeze(Object.defineProperty({__proto__:null,default:ge},Symbol.toStringTag,{value:"Module"}));export{ge as I,F as O,Z as a,ye as b}; diff --git a/web/settings/assets/IoConfig-de1d5cc2.js b/web/settings/assets/IoConfig-de1d5cc2.js deleted file mode 100644 index 52050eaabb..0000000000 --- a/web/settings/assets/IoConfig-de1d5cc2.js +++ /dev/null @@ -1 +0,0 @@ -import{l as q,ab as $,F as L}from"./vendor-fortawesome-2b3791bb.js";import{_ as A,C as E}from"./index-0992d19b.js";import{_ as W}from"./dynamic-import-helper-be004503.js";import{_ as k,u as l,l as a,m as g,x as v,E as i,B as d,F as b,G as r,A as w,a2 as M,N as I,M as x,z as C,a3 as T}from"./vendor-36bf053b.js";const U={props:{ioDevice:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},F=k(U,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceConfigMixin.vue"]]),N={name:"OpenwbIoDeviceConfigFallback",mixins:[F]},z={class:"io-device-config-fallback"},G={key:1};function R(t,e,s,_,c,n){const m=l("openwb-base-alert"),h=l("openwb-base-textarea");return a(),g("div",z,[Object.keys(t.ioDevice.configuration).length==0?(a(),v(m,{key:0,subtype:"info"},{default:i(()=>[d(' Das I/O-Modul "'+b(t.ioDevice.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(a(),g("div",G,[r(m,{subtype:"warning"},{default:i(()=>[d(' Es wurde keine Konfigurationsseite für das I/O-Modul "'+b(t.ioDevice.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),r(h,{title:"Konfiguration",subtype:"json","model-value":t.ioDevice.configuration,"onUpdate:modelValue":e[0]||(e[0]=f=>t.updateConfiguration(f,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[d(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),r(m,{subtype:"info"},{default:i(()=>[w("pre",null,b(JSON.stringify(t.ioDevice.configuration,void 0,2)),1)]),_:1})]))])}const J=k(N,[["render",R],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceConfigFallback.vue"]]),H={name:"OpenwbIoDeviceProxy",props:{ioDevice:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],computed:{myComponent(){return console.debug(`loading io device: ${this.ioDevice.type}`),M({loader:()=>W(Object.assign({"./add_on/io_device.vue":()=>A(()=>import("./io_device-85eefe72.js"),["assets/io_device-85eefe72.js","assets/index-0992d19b.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./dimm_kit/io_device.vue":()=>A(()=>import("./io_device-bab7e132.js"),["assets/io_device-bab7e132.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.ioDevice.type}/io_device.vue`),errorComponent:J})},outputs(){const t=[];if(this.ioDevice.output){if(this.ioDevice.output.analog)for(const e in this.ioDevice.output.analog)t.push(`openWB/set/system/io/${this.ioDevice.id}/set/manual/analog_output/${e}`);if(this.ioDevice.output.digital)for(const e in this.ioDevice.output.digital)t.push(`openWB/set/system/io/${this.ioDevice.id}/set/manual/digital_output/${e}`)}return t}},methods:{updateConfiguration(t){this.$emit("update:configuration",t)},sendCommand(t){this.$emit("sendCommand",t)}}};function Q(t,e,s,_,c,n){const m=l("openwb-base-heading"),h=l("openwb-base-copy-to-clipboard"),f=l("openwb-base-alert");return a(),g("div",null,[r(m,null,{default:i(()=>[d(' Einstellungen für I/O-Modul "'+b(s.ioDevice.name)+'" ',1)]),_:1}),n.outputs.length?(a(),v(f,{key:0,subtype:"info"},{default:i(()=>[e[2]||(e[2]=d(" Die Ausgänge können über die folgenden Topics manuell per MQTT geschaltet werden. Falls Ausgänge in Aktionen konfiguriert werden, überschreibt das manuelle Setzen den Status. ",-1)),w("ul",null,[(a(!0),g(I,null,x(n.outputs,p=>(a(),g("li",{key:p},[r(h,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[d(b(p),1)]),_:2},1024)]))),128))]),e[3]||(e[3]=d(" Als Wert wird ein boolean als json oder 0/1 akzeptiert.",-1)),e[4]||(e[4]=w("br",null,null,-1)),e[5]||(e[5]=d(" Beispiel: ",-1)),e[6]||(e[6]=w("span",{class:"text-info"},"false",-1))]),_:1})):C("",!0),(a(),v(T(n.myComponent),{"io-device":s.ioDevice,"onUpdate:configuration":e[0]||(e[0]=p=>n.updateConfiguration(p)),onSendCommand:e[1]||(e[1]=p=>n.sendCommand(p))},null,40,["io-device"]))])}const X=k(H,[["render",Q],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceProxy.vue"]]),Y={mixins:[E],props:{ioAction:{type:Object,required:!0},ioDevice:{type:Object,required:!0},availableChargePoints:{type:Array,required:!1,default:()=>[]},availableComponents:{type:Array,required:!1,default:()=>[]},availableIoDevices:{type:Array,required:!1,default:()=>[]}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},Z=k(Y,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionConfigMixin.vue"]]),K={name:"OpenwbIoActionConfigFallback",mixins:[Z]},ee={class:"io-action-config-fallback"},te={key:1};function oe(t,e,s,_,c,n){var f,p;const m=l("openwb-base-alert"),h=l("openwb-base-textarea");return a(),g("div",ee,[Object.keys((f=t.ioAction)==null?void 0:f.configuration).length==0?(a(),v(m,{key:0,subtype:"info"},{default:i(()=>{var u;return[d(' Die I/O-Aktion "'+b((u=t.ioAction)==null?void 0:u.name)+'" bietet keine Einstellungen. ',1)]}),_:1})):(a(),g("div",te,[r(m,{subtype:"warning"},{default:i(()=>{var u;return[d(' Es wurde keine Konfigurationsseite für die I/O-Aktion "'+b((u=t.ioAction)==null?void 0:u.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]}),_:1}),r(h,{title:"Konfiguration",subtype:"json","model-value":(p=t.ioAction)==null?void 0:p.configuration,"onUpdate:modelValue":e[0]||(e[0]=u=>t.updateConfiguration(u,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[d(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),r(m,{subtype:"info"},{default:i(()=>{var u;return[w("pre",null,b(JSON.stringify((u=t.ioAction)==null?void 0:u.configuration,void 0,2)),1)]}),_:1})]))])}const ne=k(K,[["render",oe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionConfigFallback.vue"]]),ie={name:"OpenwbIoActionProxy",props:{ioAction:{type:Object,required:!0},ioDevices:{type:Object,required:!0},installedChargePoints:{type:Object,required:!0},installedComponents:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],computed:{myComponent(){var t,e;return console.debug(`loading io action: ${(t=this.ioAction)==null?void 0:t.group} / ${(e=this.ioAction)==null?void 0:e.type}`),M({loader:()=>{var s,_;return W(Object.assign({"./controllable_consumers/dimming/io_action.vue":()=>A(()=>import("./io_action-cd694bad.js"),["assets/io_action-cd694bad.js","assets/OpenwbIoSinglePattern-b3081980.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./controllable_consumers/dimming_direct_control/io_action.vue":()=>A(()=>import("./io_action-c74be46e.js"),["assets/io_action-c74be46e.js","assets/OpenwbIoSinglePattern-b3081980.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./controllable_consumers/ripple_control_receiver/io_action.vue":()=>A(()=>import("./io_action-7d03813b.js"),["assets/io_action-7d03813b.js","assets/OpenwbIoPattern-6f003fb0.js","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/OpenwbIoPattern-746401f7.css","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generator_systems/stepwise_control/io_action.vue":()=>A(()=>import("./io_action-fc96684d.js"),["assets/io_action-fc96684d.js","assets/OpenwbIoPattern-6f003fb0.js","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/OpenwbIoPattern-746401f7.css","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${(s=this.ioAction)==null?void 0:s.group}/${(_=this.ioAction)==null?void 0:_.type}/io_action.vue`)},errorComponent:ne})},ioDeviceList(){return Object.keys(this.ioDevices).map(t=>{var e,s;return{value:(e=this.ioDevices[t])==null?void 0:e.id,text:(s=this.ioDevices[t])==null?void 0:s.name}})},availableIoDevices(){return Object.values(this.ioDevices)},availableChargePoints(){return Object.values(this.installedChargePoints).map(t=>({value:t==null?void 0:t.id,text:t==null?void 0:t.name}))},availableComponents(){return Object.values(this.installedComponents).map(t=>({value:t==null?void 0:t.id,text:t==null?void 0:t.name,type:t==null?void 0:t.type}))}},methods:{updateConfiguration(t,e=void 0){e?this.$emit("update:configuration",{value:t,object:e}):this.$emit("update:configuration",t)},updateIoDevice(t){var e;if(this.updateConfiguration(t,"configuration.io_device"),Array.isArray((e=this.ioAction.configuration)==null?void 0:e.input_pattern)){let s=this.ioAction.configuration.input_pattern.map(_=>({value:_.value,matrix:{}}));this.updateConfiguration(s,"configuration.input_pattern")}Object.prototype.hasOwnProperty.call(this.ioAction.configuration,"digital_input")&&this.updateConfiguration(null,"configuration.digital_input")}}},ae={key:0};function se(t,e,s,_,c,n){var f,p;const m=l("openwb-base-heading"),h=l("openwb-base-select-input");return a(),g(I,null,[r(m,null,{default:i(()=>{var u;return[d(' Einstellungen für I/O-Aktion "'+b((u=s.ioAction)==null?void 0:u.name)+'" ',1)]}),_:1}),r(h,{title:"Eingangs-Gerät","not-selected":"Bitte auswählen","empty-value":null,required:"",options:n.ioDeviceList,"model-value":(f=s.ioAction)==null?void 0:f.configuration.io_device,"onUpdate:modelValue":e[0]||(e[0]=u=>n.updateIoDevice(u))},{help:i(()=>[...e[2]||(e[2]=[d(" Bitte das Gerät auswählen, über das der Schaltbefehl empfangen werden soll. Für jede Aktion kann nur ein Gerät ausgewählt werden. ",-1)])]),_:1},8,["options","model-value"]),((p=s.ioAction)==null?void 0:p.configuration.io_device)!==null?(a(),g("div",ae,[e[3]||(e[3]=w("hr",null,null,-1)),(a(),v(T(n.myComponent),{"io-action":s.ioAction,"io-device":s.ioDevices[`openWB/system/io/${s.ioAction.configuration.io_device}/config`],"available-charge-points":n.availableChargePoints,"available-components":n.availableComponents,"available-io-devices":n.availableIoDevices,"onUpdate:configuration":e[1]||(e[1]=u=>n.updateConfiguration(u))},null,40,["io-action","io-device","available-charge-points","available-components","available-io-devices"]))])):C("",!0)],64)}const re=k(ie,[["render",se],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionProxy.vue"]]);q.add($);const ue={name:"OpenwbIoConfigView",components:{FontAwesomeIcon:L,OpenwbIoDeviceProxy:X,OpenwbIoActionProxy:re},mixins:[E],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults","send-command"],data(){return{mqttTopicsToSubscribe:["openWB/system/configurable/io_devices","openWB/system/io/+/config","openWB/system/configurable/io_actions","openWB/io/action/+/config","openWB/chargepoint/+/config","openWB/system/device/+/component/+/config"],showIoDeviceDeleteModal:!1,modalIoDeviceIndex:void 0,ioDeviceToAdd:void 0,showIoActionDeleteModal:!1,modalIoActionIndex:void 0,ioActionToAdd:void 0}},computed:{ioDeviceList:{get(){return this.$store.state.mqtt["openWB/system/configurable/io_devices"]}},installedIoDevices:{get(){return this.getWildcardTopics("openWB/system/io/+/config")}},ioActionList:{get(){return this.$store.state.mqtt["openWB/system/configurable/io_actions"]===void 0?[]:Object.entries(this.$store.state.mqtt["openWB/system/configurable/io_actions"]).map(([t,e])=>({label:e.group_name,options:e.actions.map(s=>({value:[t,s.value],text:s.text})).sort((s,_)=>s.text.localeCompare(_.text))})).sort((t,e)=>t.label.localeCompare(e.label))}},installedIoActions:{get(){return this.getWildcardTopics("openWB/io/action/+/config")}},installedChargePoints:{get(){return this.getWildcardTopics("openWB/chargepoint/+/config")}},installedComponents:{get(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")}}},methods:{getIoDeviceName(t){return this.$store.state.mqtt["openWB/system/io/"+t+"/config"]?this.$store.state.mqtt["openWB/system/io/"+t+"/config"].name:"I/O-Gerät "+t},addIoDevice(){this.$emit("send-command",{command:"addIoDevice",data:{type:this.ioDeviceToAdd}})},removeIoDeviceModal(t,e){e.stopPropagation(),this.modalIoDeviceIndex=parseInt(t.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showIoDeviceDeleteModal=!0},removeIoDevice(t,e){this.showIoDeviceDeleteModal=!1,e=="confirm"&&this.$emit("send-command",{command:"removeIoDevice",data:{id:t}})},addIoAction(){this.$emit("send-command",{command:"addIoAction",data:{type:this.ioActionToAdd}})},removeIoActionModal(t,e){e.stopPropagation(),this.modalIoActionIndex=parseInt(t.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showIoActionDeleteModal=!0},removeIoAction(t,e){this.showIoActionDeleteModal=!1,e=="confirm"&&this.$emit("send-command",{command:"removeIoAction",data:{id:t}})},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},le={class:"ioConfig"},de={name:"ioConfigForm"},pe={key:0},ce={key:0};function me(t,e,s,_,c,n){const m=l("openwb-base-modal-dialog"),h=l("font-awesome-icon"),f=l("openwb-base-avatar"),p=l("openwb-base-text-input"),u=l("openwb-io-device-proxy"),O=l("openwb-base-card"),j=l("openwb-base-select-input"),P=l("openwb-io-action-proxy"),V=l("openwb-base-alert"),S=l("openwb-base-submit-buttons");return a(),g(I,null,[r(m,{show:c.showIoDeviceDeleteModal,title:"Modul löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=o=>n.removeIoDevice(c.modalIoDeviceIndex,o))},{default:i(()=>[d(' Wollen Sie das Ein-/Ausgangs-Gerät "'+b(n.getIoDeviceName(c.modalIoDeviceIndex))+'" (ID: '+b(c.modalIoDeviceIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),r(m,{show:c.showIoActionDeleteModal,title:"Aktion löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=o=>n.removeIoAction(c.modalIoActionIndex,o))},{default:i(()=>[d(' Wollen Sie die Aktion "'+b(n.getIoDeviceName(c.modalIoActionIndex))+'" (ID: '+b(c.modalIoActionIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),w("div",le,[w("form",de,[r(O,{title:"Ein-/Ausgangs-Geräte"},{default:i(()=>[(a(!0),g(I,null,x(n.installedIoDevices,(o,D)=>(a(),v(O,{key:D,title:(o==null?void 0:o.name)+" (ID: "+(o==null?void 0:o.id)+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:i(y=>[y.collapsed?C("",!0):(a(),v(f,{key:0,class:"bg-danger clickable",onClick:B=>n.removeIoDeviceModal(D,B)},{default:i(()=>[r(h,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:i(()=>[r(p,{title:"Bezeichnung",subtype:"text","model-value":o.name,"onUpdate:modelValue":y=>t.updateState(D,y,"name")},null,8,["model-value","onUpdate:modelValue"]),r(p,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":t.$store.state.mqtt[D].type},null,8,["model-value"]),e[7]||(e[7]=w("hr",null,null,-1)),r(u,{"io-device":o,"onUpdate:configuration":y=>n.updateConfiguration(D,y)},null,8,["io-device","onUpdate:configuration"])]),_:2},1032,["title"]))),128)),Object.keys(n.installedIoDevices).length>0?(a(),g("hr",pe)):C("",!0),r(j,{title:"Verfügbare Geräte","not-selected":"Bitte auswählen",options:n.ioDeviceList,"model-value":c.ioDeviceToAdd,"add-button":!0,"onUpdate:modelValue":e[2]||(e[2]=o=>c.ioDeviceToAdd=o),"onInput:add":n.addIoDevice},{help:i(()=>[...e[8]||(e[8]=[d(" Bitte ein Ein-/Ausgangs-Modul auswählen, das hinzugefügt werden soll. ",-1)])]),_:1},8,["options","model-value","onInput:add"])]),_:1}),r(O,{title:"Ein-/Ausgangs-Aktionen"},{default:i(()=>[(a(!0),g(I,null,x(n.installedIoActions,(o,D)=>(a(),v(O,{key:D,title:(o==null?void 0:o.name)+" (ID: "+(o==null?void 0:o.id)+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:i(y=>[y.collapsed?C("",!0):(a(),v(f,{key:0,class:"bg-danger clickable",onClick:B=>n.removeIoActionModal(D,B)},{default:i(()=>[r(h,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:i(()=>[r(p,{title:"Bezeichnung",subtype:"text","model-value":o==null?void 0:o.name,"onUpdate:modelValue":y=>t.updateState(D,y,"name")},null,8,["model-value","onUpdate:modelValue"]),r(p,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":[o==null?void 0:o.group,o==null?void 0:o.type].join(" / ")},null,8,["model-value"]),e[9]||(e[9]=w("hr",null,null,-1)),o!==void 0?(a(),v(P,{key:0,"io-action":o,"io-devices":n.installedIoDevices,"installed-charge-points":n.installedChargePoints,"installed-components":n.installedComponents,"onUpdate:configuration":y=>n.updateConfiguration(D,y)},null,8,["io-action","io-devices","installed-charge-points","installed-components","onUpdate:configuration"])):C("",!0)]),_:2},1032,["title"]))),128)),Object.keys(n.installedIoActions).length>0?(a(),g("hr",ce)):C("",!0),Object.keys(n.installedIoDevices).length>0?(a(),v(j,{key:1,title:"Verfügbare Aktionen","not-selected":"Bitte auswählen",groups:n.ioActionList,"model-value":c.ioActionToAdd,"add-button":!0,"onUpdate:modelValue":e[3]||(e[3]=o=>c.ioActionToAdd=o),"onInput:add":n.addIoAction},{help:i(()=>[...e[10]||(e[10]=[d(" Bitte eine Ein-/Ausgangs-Aktion auswählen, die hinzugefügt werden soll. ",-1)])]),_:1},8,["groups","model-value","onInput:add"])):(a(),v(V,{key:2,subtype:"warning"},{default:i(()=>[...e[11]||(e[11]=[d(" Keine Ein-/Ausgangs-Geräte vorhanden!",-1),w("br",null,null,-1),d(" Bitte fügen Sie zuerst ein Ein-/Ausgangs-Gerät hinzu, bevor Sie Aktionen konfigurieren. ",-1)])]),_:1}))]),_:1}),r(S,{"form-name":"ioConfigForm",onSave:e[4]||(e[4]=o=>t.$emit("save")),onReset:e[5]||(e[5]=o=>t.$emit("reset")),onDefaults:e[6]||(e[6]=o=>t.$emit("defaults"))})])])],64)}const ge=k(ue,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/IoConfig.vue"]]),ye=Object.freeze(Object.defineProperty({__proto__:null,default:ge},Symbol.toStringTag,{value:"Module"}));export{ge as I,F as O,Z as a,ye as b}; diff --git a/web/settings/assets/LegalSettings-ca527aea.js b/web/settings/assets/LegalSettings-20201125.js similarity index 51% rename from web/settings/assets/LegalSettings-ca527aea.js rename to web/settings/assets/LegalSettings-20201125.js index f3b14f52a1..a18ca70930 100644 --- a/web/settings/assets/LegalSettings-ca527aea.js +++ b/web/settings/assets/LegalSettings-20201125.js @@ -1 +1 @@ -import{l as _,af as k,F as v}from"./vendor-fortawesome-2b3791bb.js";import{C as y}from"./index-0992d19b.js";import{_ as B,u as n,l as i,m as z,A as a,G as o,E as r,x as m,B as u,z as p}from"./vendor-36bf053b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";_.add(k);const S={name:"OpenwbDataProtectionView",components:{FontAwesomeIcon:v},mixins:[y],emits:["sendCommand","save"],data(){return{mqttTopicsToSubscribe:["openWB/system/dataprotection_acknowledged"]}},methods:{sendSystemCommand(t,e={}){this.$emit("sendCommand",{command:t,data:e})}}},$={class:"dataProtection"},h={name:"dataProtectionForm"},C={class:"row justify-content-center"},V={class:"col-md-4 d-flex justify-content-center"};function W(t,e,N,A,x,b){const d=n("openwb-base-button-group-input"),c=n("font-awesome-icon"),g=n("openwb-base-click-button"),l=n("openwb-base-alert"),w=n("openwb-base-submit-buttons"),f=n("openwb-base-card");return i(),z("div",$,[a("form",h,[o(f,{title:"Nutzungsbedingungen & Datenschutzerklärung"},{footer:r(()=>[o(w,{"form-name":"dataProtectionForm","hide-reset":!0,"hide-defaults":!0,onSave:e[3]||(e[3]=s=>t.$emit("save"))})]),default:r(()=>[e[7]||(e[7]=a("iframe",{src:"dataProtection-usageTerms.html",width:"100%",height:"400px",class:"bg-light"},null,-1)),e[8]||(e[8]=a("hr",null,null,-1)),o(d,{title:"Nutzungsbedingungen",buttons:[{buttonValue:!1,text:"Ablehnen",class:"btn-outline-danger"},{buttonValue:!0,text:"Akzeptieren",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/system/usage_terms_acknowledged"],"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateState("openWB/system/usage_terms_acknowledged",s))},null,8,["model-value"]),t.$store.state.mqtt["openWB/system/usage_terms_acknowledged"]?p("",!0):(i(),m(l,{key:0,subtype:"danger",class:"mb-1"},{default:r(()=>[e[5]||(e[5]=u(" Sie müssen die Nutzungsbedingungen akzeptieren, bevor openWB eingesetzt werden kann. ",-1)),a("div",C,[a("div",V,[o(g,{class:"btn-danger",onButtonClicked:e[1]||(e[1]=s=>b.sendSystemCommand("systemShutdown"))},{default:r(()=>[e[4]||(e[4]=u(" Nicht akzeptieren und ausschalten ",-1)),o(c,{icon:["fas","power-off"]})]),_:1})])])]),_:1})),o(d,{title:"Datenschutzerklärung",buttons:[{buttonValue:!1,text:"Ablehnen",class:"btn-outline-danger"},{buttonValue:!0,text:"Akzeptieren",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"],"onUpdate:modelValue":e[2]||(e[2]=s=>t.updateState("openWB/system/dataprotection_acknowledged",s))},null,8,["model-value"]),t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]?p("",!0):(i(),m(l,{key:1,subtype:"warning"},{default:r(()=>[...e[6]||(e[6]=[u(" Wenn Du nicht einwilligst, wird eine ggf. konfigurierte Cloud-Anbindung gelöscht. Die openWB arbeitet autark wie gewohnt weiter. Fernzugriff und Remote-Support sind dann nicht mehr möglich! ",-1)])]),_:1}))]),_:1})])])}const L=B(S,[["render",W],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LegalSettings.vue"]]);export{L as default}; +import{l as f,af as k,F as v}from"./vendor-fortawesome-a02b6813.js";import{C as y}from"./index-8dd8e083.js";import{_ as B,u as n,l as i,m as z,A as a,G as o,E as r,x as m,B as u,z as p}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";f.add(k);const S={name:"OpenwbDataProtectionView",components:{FontAwesomeIcon:v},mixins:[y],emits:["sendCommand","save"],data(){return{mqttTopicsToSubscribe:["openWB/system/dataprotection_acknowledged"]}},methods:{sendSystemCommand(t,e={}){this.$emit("sendCommand",{command:t,data:e})}}},$={class:"dataProtection"},h={name:"dataProtectionForm"},C={class:"row justify-content-center"},V={class:"col-md-4 d-flex justify-content-center"};function W(t,e,N,A,x,b){const d=n("openwb-base-button-group-input"),c=n("font-awesome-icon"),g=n("openwb-base-click-button"),l=n("openwb-base-alert"),_=n("openwb-base-submit-buttons"),w=n("openwb-base-card");return i(),z("div",$,[a("form",h,[o(w,{title:"Nutzungsbedingungen & Datenschutzerklärung"},{footer:r(()=>[o(_,{"form-name":"dataProtectionForm","hide-reset":!0,"hide-defaults":!0,onSave:e[3]||(e[3]=s=>t.$emit("save"))})]),default:r(()=>[e[7]||(e[7]=a("iframe",{src:"dataProtection-usageTerms.html",width:"100%",height:"400px",class:"bg-light"},null,-1)),e[8]||(e[8]=a("hr",null,null,-1)),o(d,{title:"Nutzungsbedingungen",buttons:[{buttonValue:!1,text:"Ablehnen",class:"btn-outline-danger"},{buttonValue:!0,text:"Akzeptieren",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/system/usage_terms_acknowledged"],"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateState("openWB/system/usage_terms_acknowledged",s))},null,8,["model-value"]),t.$store.state.mqtt["openWB/system/usage_terms_acknowledged"]?p("",!0):(i(),m(l,{key:0,subtype:"danger",class:"mb-1"},{default:r(()=>[e[5]||(e[5]=u(" Sie müssen die Nutzungsbedingungen akzeptieren, bevor openWB eingesetzt werden kann. ",-1)),a("div",C,[a("div",V,[o(g,{class:"btn-danger",onButtonClicked:e[1]||(e[1]=s=>b.sendSystemCommand("systemShutdown"))},{default:r(()=>[e[4]||(e[4]=u(" Nicht akzeptieren und ausschalten ",-1)),o(c,{icon:["fas","power-off"]})]),_:1,__:[4]})])])]),_:1,__:[5]})),o(d,{title:"Datenschutzerklärung",buttons:[{buttonValue:!1,text:"Ablehnen",class:"btn-outline-danger"},{buttonValue:!0,text:"Akzeptieren",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"],"onUpdate:modelValue":e[2]||(e[2]=s=>t.updateState("openWB/system/dataprotection_acknowledged",s))},null,8,["model-value"]),t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]?p("",!0):(i(),m(l,{key:1,subtype:"warning"},{default:r(()=>e[6]||(e[6]=[u(" Wenn Du nicht einwilligst, wird eine ggf. konfigurierte Cloud-Anbindung gelöscht. Die openWB arbeitet autark wie gewohnt weiter. Fernzugriff und Remote-Support sind dann nicht mehr möglich! ",-1)])),_:1,__:[6]}))]),_:1,__:[7,8]})])])}const L=B(S,[["render",W],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LegalSettings.vue"]]);export{L as default}; diff --git a/web/settings/assets/LoadManagementConfig-161f6124.js b/web/settings/assets/LoadManagementConfig-161f6124.js deleted file mode 100644 index 697a2083ea..0000000000 --- a/web/settings/assets/LoadManagementConfig-161f6124.js +++ /dev/null @@ -1 +0,0 @@ -import{l as C,Z as L,Y as x,F as V}from"./vendor-fortawesome-2b3791bb.js";import{C as Z}from"./index-0992d19b.js";import{S as q}from"./OpenwbSortableList-0d1f7c1c.js";import{_ as $,u as l,l as u,m,A as d,G as s,E as o,B as i,x as f,z as A,N as v,M as k,F as W}from"./vendor-36bf053b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";C.add(L,x);const E={name:"OpenwbLoadManagementConfigView",components:{SortableList:q,FontAwesomeIcon:V},mixins:[Z],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/counter/config/home_consumption_source_id","openWB/counter/config/consider_less_charging","openWB/counter/get/hierarchy","openWB/system/device/+/component/+/config","openWB/counter/+/config/max_power_errorcase","openWB/counter/+/config/max_currents","openWB/counter/+/config/max_total_power","openWB/pv/+/config/max_ac_out","openWB/chargepoint/+/config"]}},computed:{componentConfigurations(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")},counterConfigs:{get(){let t=this.getWildcardTopics("openWB/system/device/+/component/+/config");return Object.keys(t).filter(e=>{var n;return(n=t[e])==null?void 0:n.type.includes("counter")}).reduce((e,n)=>({...e,[n]:t[n]}),{})}},counterOptions(){var t=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e==null?void 0:e.type,"counter")&&t.push({value:e.id,text:e.name});return t.sort((e,n)=>e.text==n.text?0:e.text>n.text?1:-1)},inverterConfigs:{get(){let t=this.getWildcardTopics("openWB/system/device/+/component/+/config");return Object.keys(t).filter(e=>{var n;return(n=t[e])==null?void 0:n.type.includes("inverter")}).reduce((e,n)=>({...e,[n]:t[n]}),{})}},hierarchyLabels:{get(){let t={};for(const e of Object.values(this.$store.state.mqtt["openWB/counter/get/hierarchy"]))t={...t,...this.getElementTreeNames(e)};return t}},getHcSourceIdOptions(){let t=[{value:null,text:"von openWB berechnen (in 99% der Fälle die richtige Einstellung)"}],e=[{label:"Eingerichtete Zähler-Komponenten",options:[...this.counterOptions]}];return{options:t,groups:e}}},methods:{getElementTreeNames(t){let e={};if(t.type=="cp"){let n=this.getChargePoint(t.id);n&&(e[t.id]=n.name)}else{let n=this.getComponent(t.id);n&&(e[t.id]=n.name)}return t.children.forEach(n=>{e={...e,...this.getElementTreeNames(n)}}),e},getComponent(t){let e;return Object.keys(this.$store.state.mqtt).forEach(n=>{n.match("^openWB/system/device/[0-9]+/component/"+t+"/config$")&&(e=this.$store.state.mqtt[n])}),e},getChargePoint(t){let e;return Object.keys(this.$store.state.mqtt).forEach(n=>{n.match("^openWB/chargepoint/"+t+"/config$")&&(e=this.$store.state.mqtt[n])}),e},isComponentType(t,e){return t==null?void 0:t.split("_").includes(e)}}},M={class:"loadManagementConfig"},U={name:"loadManagementConfigForm"},F={key:0},D={key:1},O={key:0},P={key:1};function N(t,e,n,H,j,g){const c=l("openwb-base-alert"),_=l("router-link"),B=l("openwb-base-button-group-input"),S=l("openwb-base-select-input"),b=l("openwb-base-heading"),w=l("font-awesome-icon"),p=l("openwb-base-number-input"),h=l("openwb-base-card"),z=l("sortable-list"),y=l("openwb-base-submit-buttons");return u(),m("div",M,[d("form",U,[s(h,{title:"Einstellungen",collapsible:!0,collapsed:!1},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(u(),m("div",F,[s(c,{subtype:"info"},{default:o(()=>[...e[6]||(e[6]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(u(),m("div",D,[n.installAssistantActive?A("",!0):(u(),f(c,{key:0,subtype:"info"},{default:o(()=>[e[8]||(e[8]=i(" Die Konfiguration für die externe Steuerung durch den Netzbetreiber (RSE, EMS, §14a) erfolgt in den ",-1)),s(_,{to:"/IoConfiguration"},{default:o(()=>[...e[7]||(e[7]=[i("Einstellungen der Ein-/Ausgänge",-1)])]),_:1}),e[9]||(e[9]=i(" im Bereich der Aktionen. ",-1))]),_:1})),s(B,{title:"Fahrzeuge, die nicht mit Sollstrom laden",buttons:[{buttonValue:!1,text:"nicht berücksichtigen",class:"btn-outline-danger"},{buttonValue:!0,text:"berücksichtigen",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/counter/config/consider_less_charging"],"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateState("openWB/counter/config/consider_less_charging",r))},{help:o(()=>[...e[10]||(e[10]=[d("p",null," Wenn angesteckte Fahrzeuge, die nicht oder nicht mit der Sollstromstärke laden, im Lastmanagement berücksichtigt werden, wird für diese der Sollstrom reserviert. Dadurch können bei Eingreifen des Lastmanagements andere Fahrzeuge möglicherweise nur mit reduzierter Stromstärke laden und der reservierte Strom wird nicht genutzt. Wenn die Fahrzeuge wieder Leistung beziehen, z.B. um vorzuklimatisieren, nutzen sie den für sie reservierten Strom. ",-1),d("p",null," Wenn angesteckte Fahrzeuge, die nicht oder nicht mit der Sollstromstärke laden, nicht im Lastmanagement berücksichtigt werden, wird für diese auch kein Strom bei vorliegender Ladefreigabe reserviert bzw. es wird nur der tatsächlich genutzte Strom im Lastmanagement berücksichtigt. Andere Fahrzeuge können dadurch mit höherer Stromstärke laden. Wenn die maximalen Lastmanagement-Grenzen fast erreicht sind und die Fahrzeuge wieder Leistung beziehen, z.B. um vorzuklimatisieren, kann es zu einer kurzzeitigen Überschreitung der Lastmanagement-Grenzen kommen, bis im nächsten Zyklus die Stromstärken aller Ladepunkte an die neue Situation angepasst wurden. Das kurzzeitige Überschreiten der Maximal-Werte stellt für die Sicherungen in der Regel kein Problem dar. ",-1)])]),_:1},8,["model-value"]),s(S,{title:"Hausverbrauch",options:g.getHcSourceIdOptions.options,groups:g.getHcSourceIdOptions.groups,"model-value":t.$store.state.mqtt["openWB/counter/config/home_consumption_source_id"],"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateState("openWB/counter/config/home_consumption_source_id",r))},{help:o(()=>[...e[11]||(e[11]=[i(" Meist ist der Zähler am EVU-Punkt installiert, dann muss hier 'von openWB berechnen' ausgewählt werden. Wenn der Zähler im Hausverbrauchszweig installiert ist, die Struktur wie im ",-1),d("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"}," Wiki ",-1),i(" beschrieben anordnen und hier den Hausverbrauchszähler auswählen. Dann wird dieser Wert abzüglich der Ladeleistung als Hausverbrauch erfasst. ",-1)])]),_:1},8,["options","groups","model-value"]),s(b,null,{default:o(()=>[...e[12]||(e[12]=[i(" Vorhandene Zählermodule ",-1)])]),_:1}),s(c,{subtype:"info"},{default:o(()=>[...e[13]||(e[13]=[i(" Die maximale Leistung wird nur für den EVU-Zähler berücksichtigt. Bei Zwischenzählern begrenzt das Lastmanagement rein anhand der maximalen Phasenströme.",-1),d("br",null,null,-1),i(" Wenn ein Zähler nicht auslesbar ist, wird weiterhin versucht, diesen auszulesen und nach 60s die angenommene Leistung im Fehlerfall verwendet, die unten für jeden Zähler eingestellt wird, um eine Überlast zu vermeiden. Die angenommene Leistung wird gleichmäßig auf die Phasen verteilt.",-1),d("br",null,null,-1),i(" Überlicherweise sind Hausanschlüsse mit 24kW und 3*35A bzw. 43kW und 3*63A abgesichert. ",-1)])]),_:1}),(u(!0),m(v,null,k(g.counterConfigs,r=>(u(),f(h,{key:r.id,collapsible:!0,collapsed:!0,subtype:"danger"},{header:o(()=>[s(w,{icon:["fas","gauge-high"]}),i(" "+W(r.name),1)]),default:o(()=>[s(p,{title:"Maximale Leistung",min:1,step:.1,required:"",unit:"kW","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_total_power"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_total_power",a*1e3)},{help:o(()=>[...e[14]||(e[14]=[i(" Maximal zulässige Leistung für diesen (Zwischen-)Zähler. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximaler Strom L1",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_currents"][0],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_currents",a,"0")},{help:o(()=>[...e[15]||(e[15]=[i(" Maximal zulässiger Strom für die Phase 1 dieses (Zwischen-)Zählers. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximaler Strom L2",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_currents"][1],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_currents",a,"1")},{help:o(()=>[...e[16]||(e[16]=[i(" Maximal zulässiger Strom für die Phase 2 dieses (Zwischen-)Zählers. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximaler Strom L3",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_currents"][2],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_currents",a,"2")},{help:o(()=>[...e[17]||(e[17]=[i(" Maximal zulässiger Strom für die Phase 3 dieses (Zwischen-)Zählers. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximale Leistung im Fehlerfall",min:0,step:.1,unit:"kW","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_power_errorcase"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_power_errorcase",a*1e3)},{help:o(()=>[...e[18]||(e[18]=[i(" Angenommen Leistung für diesen (Zwischen-)Zähler, falls vom Zähler keine Werte abgefragt werden können. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1024))),128)),s(b,null,{default:o(()=>[...e[19]||(e[19]=[i(" Vorhandene Wechselrichtermodule ",-1)])]),_:1}),(u(!0),m(v,null,k(g.inverterConfigs,r=>(u(),f(h,{key:r.id,collapsible:!0,collapsed:!0,subtype:"success"},{header:o(()=>[s(w,{icon:["fas","solar-panel"]}),i(" "+W(r.name),1)]),default:o(()=>[s(p,{title:"Maximale Ausgangsleistung des Wechselrichters",min:0,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/pv/"+r.id+"/config/max_ac_out"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/pv/"+r.id+"/config/max_ac_out",a*1e3)},{help:o(()=>[...e[20]||(e[20]=[i(" Bei 0 kW erfolgt keine Berücksichtigung der maximalen Ausgangsleistung. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1024))),128))]))]),_:1}),s(h,{title:"Struktur",collapsible:!0,collapsed:!0},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(u(),m("div",O,[s(c,{subtype:"info"},{default:o(()=>[...e[21]||(e[21]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(u(),m("div",P,[s(z,{title:"Anordnung der Komponenten","model-value":t.$store.state.mqtt["openWB/counter/get/hierarchy"],labels:g.hierarchyLabels,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateState("openWB/counter/get/hierarchy",r))},{help:o(()=>[...e[22]||(e[22]=[i(" Durch die Anordnung der Komponenten werden Abhängigkeiten abgebildet.",-1),d("br",null,null,-1),i(" An erster Stelle muss eine Zählerkomponente stehen, die den Netzanschlusspunkt erfasst. Dafür kann auch ein virtueller Zähler genutzt werden.",-1),d("br",null,null,-1),i(" Die weiteren Komponenten müssen hierarchisch so angeordnet werden, wie sie auch physisch im Stromnetz angeschlossen werden.",-1),d("br",null,null,-1),i(" Bei DC-gekoppelten Speichern sind diese hinter dem zugehörigen Wechselrichter zu platzieren, damit die Abhängigkeit in der Regelung berücksichtigt werden kann. ",-1)])]),_:1},8,["model-value","labels"])]))]),_:1}),s(y,{"form-name":"loadManagementConfigForm",onSave:e[3]||(e[3]=r=>t.$emit("save")),onReset:e[4]||(e[4]=r=>t.$emit("reset")),onDefaults:e[5]||(e[5]=r=>t.$emit("defaults"))})])])}const X=$(E,[["render",N],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LoadManagementConfig.vue"]]);export{X as default}; diff --git a/web/settings/assets/LoadManagementConfig-61263fe6.js b/web/settings/assets/LoadManagementConfig-61263fe6.js new file mode 100644 index 0000000000..c096577ed9 --- /dev/null +++ b/web/settings/assets/LoadManagementConfig-61263fe6.js @@ -0,0 +1 @@ +import{l as C,Z as L,Y as x,F as V}from"./vendor-fortawesome-a02b6813.js";import{C as Z}from"./index-8dd8e083.js";import{S as q}from"./OpenwbSortableList-c7b5b151.js";import{_ as $,u as l,l as u,m,A as d,G as s,E as o,B as i,x as f,z as A,N as w,M as v,F as k}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";C.add(L,x);const E={name:"OpenwbLoadManagementConfigView",components:{SortableList:q,FontAwesomeIcon:V},mixins:[Z],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/counter/config/home_consumption_source_id","openWB/counter/config/consider_less_charging","openWB/counter/get/hierarchy","openWB/system/device/+/component/+/config","openWB/counter/+/config/max_power_errorcase","openWB/counter/+/config/max_currents","openWB/counter/+/config/max_total_power","openWB/pv/+/config/max_ac_out","openWB/chargepoint/+/config"]}},computed:{componentConfigurations(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")},counterConfigs:{get(){let t=this.getWildcardTopics("openWB/system/device/+/component/+/config");return Object.keys(t).filter(e=>{var n;return(n=t[e])==null?void 0:n.type.includes("counter")}).reduce((e,n)=>({...e,[n]:t[n]}),{})}},counterOptions(){var t=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e==null?void 0:e.type,"counter")&&t.push({value:e.id,text:e.name});return t.sort((e,n)=>e.text==n.text?0:e.text>n.text?1:-1)},inverterConfigs:{get(){let t=this.getWildcardTopics("openWB/system/device/+/component/+/config");return Object.keys(t).filter(e=>{var n;return(n=t[e])==null?void 0:n.type.includes("inverter")}).reduce((e,n)=>({...e,[n]:t[n]}),{})}},hierarchyLabels:{get(){let t={};for(const e of Object.values(this.$store.state.mqtt["openWB/counter/get/hierarchy"]))t={...t,...this.getElementTreeNames(e)};return t}},getHcSourceIdOptions(){let t=[{value:null,text:"von openWB berechnen (in 99% der Fälle die richtige Einstellung)"}],e=[{label:"Eingerichtete Zähler-Komponenten",options:[...this.counterOptions]}];return{options:t,groups:e}}},methods:{getElementTreeNames(t){let e={};if(t.type=="cp"){let n=this.getChargePoint(t.id);n&&(e[t.id]=n.name)}else{let n=this.getComponent(t.id);n&&(e[t.id]=n.name)}return t.children.forEach(n=>{e={...e,...this.getElementTreeNames(n)}}),e},getComponent(t){let e;return Object.keys(this.$store.state.mqtt).forEach(n=>{n.match("^openWB/system/device/[0-9]+/component/"+t+"/config$")&&(e=this.$store.state.mqtt[n])}),e},getChargePoint(t){let e;return Object.keys(this.$store.state.mqtt).forEach(n=>{n.match("^openWB/chargepoint/"+t+"/config$")&&(e=this.$store.state.mqtt[n])}),e},isComponentType(t,e){return t==null?void 0:t.split("_").includes(e)}}},M={class:"loadManagementConfig"},U={name:"loadManagementConfigForm"},F={key:0},D={key:1},O={key:0},P={key:1};function N(t,e,n,H,j,g){const c=l("openwb-base-alert"),W=l("router-link"),B=l("openwb-base-button-group-input"),S=l("openwb-base-select-input"),b=l("openwb-base-heading"),_=l("font-awesome-icon"),p=l("openwb-base-number-input"),h=l("openwb-base-card"),z=l("sortable-list"),y=l("openwb-base-submit-buttons");return u(),m("div",M,[d("form",U,[s(h,{title:"Einstellungen",collapsible:!0,collapsed:!1},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(u(),m("div",F,[s(c,{subtype:"info"},{default:o(()=>e[6]||(e[6]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[6]})])):(u(),m("div",D,[n.installAssistantActive?A("",!0):(u(),f(c,{key:0,subtype:"info"},{default:o(()=>[e[8]||(e[8]=i(" Die Konfiguration für die externe Steuerung durch den Netzbetreiber (RSE, EMS, §14a) erfolgt in den ",-1)),s(W,{to:"/IoConfiguration"},{default:o(()=>e[7]||(e[7]=[i("Einstellungen der Ein-/Ausgänge",-1)])),_:1,__:[7]}),e[9]||(e[9]=i(" im Bereich der Aktionen. ",-1))]),_:1,__:[8,9]})),s(B,{title:"Fahrzeuge, die nicht mit Sollstrom laden",buttons:[{buttonValue:!1,text:"nicht berücksichtigen",class:"btn-outline-danger"},{buttonValue:!0,text:"berücksichtigen",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/counter/config/consider_less_charging"],"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateState("openWB/counter/config/consider_less_charging",r))},{help:o(()=>e[10]||(e[10]=[d("p",null," Wenn angesteckte Fahrzeuge, die nicht oder nicht mit der Sollstromstärke laden, im Lastmanagement berücksichtigt werden, wird für diese der Sollstrom reserviert. Dadurch können bei Eingreifen des Lastmanagements andere Fahrzeuge möglicherweise nur mit reduzierter Stromstärke laden und der reservierte Strom wird nicht genutzt. Wenn die Fahrzeuge wieder Leistung beziehen, z.B. um vorzuklimatisieren, nutzen sie den für sie reservierten Strom. ",-1),d("p",null," Wenn angesteckte Fahrzeuge, die nicht oder nicht mit der Sollstromstärke laden, nicht im Lastmanagement berücksichtigt werden, wird für diese auch kein Strom bei vorliegender Ladefreigabe reserviert bzw. es wird nur der tatsächlich genutzte Strom im Lastmanagement berücksichtigt. Andere Fahrzeuge können dadurch mit höherer Stromstärke laden. Wenn die maximalen Lastmanagement-Grenzen fast erreicht sind und die Fahrzeuge wieder Leistung beziehen, z.B. um vorzuklimatisieren, kann es zu einer kurzzeitigen Überschreitung der Lastmanagement-Grenzen kommen, bis im nächsten Zyklus die Stromstärken aller Ladepunkte an die neue Situation angepasst wurden. Das kurzzeitige Überschreiten der Maximal-Werte stellt für die Sicherungen in der Regel kein Problem dar. ",-1)])),_:1},8,["model-value"]),s(S,{title:"Hausverbrauch",options:g.getHcSourceIdOptions.options,groups:g.getHcSourceIdOptions.groups,"model-value":t.$store.state.mqtt["openWB/counter/config/home_consumption_source_id"],"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateState("openWB/counter/config/home_consumption_source_id",r))},{help:o(()=>e[11]||(e[11]=[i(" Meist ist der Zähler am EVU-Punkt installiert, dann muss hier 'von openWB berechnen' ausgewählt werden. Wenn der Zähler im Hausverbrauchszweig installiert ist, die Struktur wie im ",-1),d("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"}," Wiki ",-1),i(" beschrieben anordnen und hier den Hausverbrauchszähler auswählen. Dann wird dieser Wert abzüglich der Ladeleistung als Hausverbrauch erfasst. ",-1)])),_:1},8,["options","groups","model-value"]),s(b,null,{default:o(()=>e[12]||(e[12]=[i(" Vorhandene Zählermodule ",-1)])),_:1,__:[12]}),s(c,{subtype:"info"},{default:o(()=>e[13]||(e[13]=[i(" Die maximale Leistung wird nur für den EVU-Zähler berücksichtigt. Bei Zwischenzählern begrenzt das Lastmanagement rein anhand der maximalen Phasenströme.",-1),d("br",null,null,-1),i(" Wenn ein Zähler nicht auslesbar ist, wird weiterhin versucht, diesen auszulesen und nach 60s die angenommene Leistung im Fehlerfall verwendet, die unten für jeden Zähler eingestellt wird, um eine Überlast zu vermeiden. Die angenommene Leistung wird gleichmäßig auf die Phasen verteilt.",-1),d("br",null,null,-1),i(" Überlicherweise sind Hausanschlüsse mit 24kW und 3*35A bzw. 43kW und 3*63A abgesichert. ",-1)])),_:1,__:[13]}),(u(!0),m(w,null,v(g.counterConfigs,r=>(u(),f(h,{key:r.id,collapsible:!0,collapsed:!0,subtype:"danger"},{header:o(()=>[s(_,{icon:["fas","gauge-high"]}),i(" "+k(r.name),1)]),default:o(()=>[s(p,{title:"Maximale Leistung",min:1,step:.1,required:"",unit:"kW","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_total_power"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_total_power",a*1e3)},{help:o(()=>[...e[14]||(e[14]=[i(" Maximal zulässige Leistung für diesen (Zwischen-)Zähler. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximaler Strom L1",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_currents"][0],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_currents",a,"0")},{help:o(()=>[...e[15]||(e[15]=[i(" Maximal zulässiger Strom für die Phase 1 dieses (Zwischen-)Zählers. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximaler Strom L2",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_currents"][1],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_currents",a,"1")},{help:o(()=>[...e[16]||(e[16]=[i(" Maximal zulässiger Strom für die Phase 2 dieses (Zwischen-)Zählers. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximaler Strom L3",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_currents"][2],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_currents",a,"2")},{help:o(()=>[...e[17]||(e[17]=[i(" Maximal zulässiger Strom für die Phase 3 dieses (Zwischen-)Zählers. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximale Leistung im Fehlerfall",min:0,step:.1,unit:"kW","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_power_errorcase"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_power_errorcase",a*1e3)},{help:o(()=>[...e[18]||(e[18]=[i(" Angenommen Leistung für diesen (Zwischen-)Zähler, falls vom Zähler keine Werte abgefragt werden können. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1024))),128)),s(b,null,{default:o(()=>e[19]||(e[19]=[i(" Vorhandene Wechselrichtermodule ",-1)])),_:1,__:[19]}),(u(!0),m(w,null,v(g.inverterConfigs,r=>(u(),f(h,{key:r.id,collapsible:!0,collapsed:!0,subtype:"success"},{header:o(()=>[s(_,{icon:["fas","solar-panel"]}),i(" "+k(r.name),1)]),default:o(()=>[s(p,{title:"Maximale Ausgangsleistung des Wechselrichters",min:0,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/pv/"+r.id+"/config/max_ac_out"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/pv/"+r.id+"/config/max_ac_out",a*1e3)},{help:o(()=>[...e[20]||(e[20]=[i(" Bei 0 kW erfolgt keine Berücksichtigung der maximalen Ausgangsleistung. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1024))),128))]))]),_:1}),s(h,{title:"Struktur",collapsible:!0,collapsed:!0},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(u(),m("div",O,[s(c,{subtype:"info"},{default:o(()=>e[21]||(e[21]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[21]})])):(u(),m("div",P,[s(z,{title:"Anordnung der Komponenten","model-value":t.$store.state.mqtt["openWB/counter/get/hierarchy"],labels:g.hierarchyLabels,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateState("openWB/counter/get/hierarchy",r))},{help:o(()=>e[22]||(e[22]=[i(" Durch die Anordnung der Komponenten werden Abhängigkeiten abgebildet.",-1),d("br",null,null,-1),i(" An erster Stelle muss eine Zählerkomponente stehen, die den Netzanschlusspunkt erfasst. Dafür kann auch ein virtueller Zähler genutzt werden.",-1),d("br",null,null,-1),i(" Die weiteren Komponenten müssen hierarchisch so angeordnet werden, wie sie auch physisch im Stromnetz angeschlossen werden.",-1),d("br",null,null,-1),i(" Bei DC-gekoppelten Speichern sind diese hinter dem zugehörigen Wechselrichter zu platzieren, damit die Abhängigkeit in der Regelung berücksichtigt werden kann. ",-1)])),_:1},8,["model-value","labels"])]))]),_:1}),s(y,{"form-name":"loadManagementConfigForm",onSave:e[3]||(e[3]=r=>t.$emit("save")),onReset:e[4]||(e[4]=r=>t.$emit("reset")),onDefaults:e[5]||(e[5]=r=>t.$emit("defaults"))})])])}const X=$(E,[["render",N],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LoadManagementConfig.vue"]]);export{X as default}; diff --git a/web/settings/assets/MqttBridgeConfig-187cba4b.js b/web/settings/assets/MqttBridgeConfig-187cba4b.js deleted file mode 100644 index 19151f30d6..0000000000 --- a/web/settings/assets/MqttBridgeConfig-187cba4b.js +++ /dev/null @@ -1 +0,0 @@ -import{l as x,d as z,ab as D,F as A}from"./vendor-fortawesome-2b3791bb.js";import{C}from"./index-0992d19b.js";import{_ as W,u,l as m,m as b,G as a,E as o,A as g,N as M,B as s,F as q,x as _,z as B,M as E}from"./vendor-36bf053b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";x.add(z,D);const Q={name:"OpenwbMqttBridgeConfigurationView",components:{FontAwesomeIcon:A},mixins:[C],emits:["sendCommand","save","reset"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/mqtt/bridge/+"],showMqttBridgeModal:!1,modalMqttBridgeIndex:void 0}},computed:{configuredMqttBridges:{get(){let t=this.getWildcardTopics("openWB/system/mqtt/bridge/+");for(const[e,v]of Object.entries(t))v.remote.is_openwb_cloud&&delete t[e];return t}}},methods:{addMqttBridge(t){t.stopPropagation(),this.$emit("sendCommand",{command:"addMqttBridge",data:{}})},getMqttBridgeIndex(t){return parseInt(t.match(/(?:\/)(\d+)$/)[1])},removeMqttBridgeModal(t,e){e.stopPropagation(),this.modalMqttBridgeIndex=this.getMqttBridgeIndex(t),this.showMqttBridgeModal=!0},removeMqttBridge(t,e){this.showMqttBridgeModal=!1,e=="confirm"&&this.$emit("sendCommand",{command:"removeMqttBridge",data:{bridge:t}})},getMqttBridgeName(t){return this.$store.state.mqtt["openWB/system/mqtt/bridge/"+t]?this.$store.state.mqtt["openWB/system/mqtt/bridge/"+t].name:t}}},Z={class:"mqttBridgeConfiguration"},L={key:0},I={key:1},N=["name"];function y(t,e,v,P,f,i){const T=u("openwb-base-modal-dialog"),c=u("openwb-base-alert"),h=u("font-awesome-icon"),w=u("openwb-base-avatar"),p=u("openwb-base-text-input"),d=u("openwb-base-button-group-input"),k=u("openwb-base-heading"),S=u("openwb-base-number-input"),U=u("openwb-base-submit-buttons"),V=u("openwb-base-card");return m(),b(M,null,[a(T,{show:f.showMqttBridgeModal,title:"MQTT-Brücke löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=l=>i.removeMqttBridge(f.modalMqttBridgeIndex,l))},{default:o(()=>[s(' Wollen Sie die MQTT-Brücke "'+q(i.getMqttBridgeName(f.modalMqttBridgeIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),g("div",Z,[a(c,{subtype:"danger"},{default:o(()=>[...e[1]||(e[1]=[s(" ACHTUNG: Die Konfiguration einer MQTT-Brücke erlaubt allen Nutzern mit Zugang zum entfernten MQTT-Server alle weitergeleiteten Daten dieser openWB einzusehen!",-1),g("br",null,null,-1),s(' Es wird dringend empfohlen, dies nur für nicht-öffentliche MQTT-Server unter Verwendung starker Transport-Verschlüsselung (TLS) mit persönlichem Login und strenger Zugriffskontrolle (zumindest für die MQTT-Themen unterhalb von "Entfernter Präfix") zu aktivieren! ',-1)])]),_:1}),a(V,{title:"Konfigurierte MQTT-Brücken"},{actions:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!1?(m(),_(w,{key:0,class:"bg-success clickable",onClick:i.addMqttBridge},{default:o(()=>[a(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):B("",!0)]),default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(m(),b("div",L,[a(c,{subtype:"info"},{default:o(()=>[...e[2]||(e[2]=[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(m(),b("div",I,[Object.keys(i.configuredMqttBridges).length===0?(m(),_(c,{key:0,subtype:"info"},{default:o(()=>[...e[3]||(e[3]=[s(" Es wurde noch keine MQTT-Brücke konfiguriert. ",-1)])]),_:1})):B("",!0),(m(!0),b(M,null,E(i.configuredMqttBridges,(l,r)=>(m(),b("form",{key:r,name:"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(r)},[a(V,{title:l.name,collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(()=>[a(w,{class:"bg-danger clickable",onClick:n=>i.removeMqttBridgeModal(r,n)},{default:o(()=>[a(h,{icon:["fas","trash"]})]),_:1},8,["onClick"])]),footer:o(()=>[a(U,{"form-name":"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(r),"hide-defaults":!0,onSave:n=>t.$emit("save",[r]),onReset:n=>t.$emit("reset",[r])},null,8,["form-name","onSave","onReset"])]),default:o(()=>[a(p,{title:"Bezeichnung",subtype:"text",required:"",pattern:"[A-Za-z0-9]+","model-value":l.name,"onUpdate:modelValue":n=>t.updateState(r,n,"name")},{help:o(()=>[...e[4]||(e[4]=[s(" Die Bezeichnung darf nur aus Buchstaben ohne Umlaute und Zahlen bestehen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"Brücke aktivieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":l.active,"onUpdate:modelValue":n=>t.updateState(r,n,"active")},null,8,["model-value","onUpdate:modelValue"]),e[14]||(e[14]=g("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[5]||(e[5]=[s(" Einstellungen zur Verbindung ",-1)])]),_:1}),a(p,{title:"Entfernter Server",subtype:"host",required:"","model-value":l.remote.host,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.host")},null,8,["model-value","onUpdate:modelValue"]),a(S,{title:"Entfernter Port",required:"",min:1,max:65535,"model-value":l.remote.port,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.port")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Benutzername",subtype:"user",required:"",pattern:"[a-zA-Z0-9_\\-+.]+","model-value":l.remote.username,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.username")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Passwort",subtype:"password",required:"","model-value":l.remote.password,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.password")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Präfix",subtype:"text",pattern:"[A-Za-z0-9_\\-]+(\\/[A-Za-z0-9_\\-]+)?\\/","model-value":l.remote.prefix,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.prefix")},{help:o(()=>[...e[6]||(e[6]=[s(' Das Präfix darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. Optional kann mit einem Schrägstrich "/" eine Topic-Struktur abgebildet werden. Am Ende des Präfixes muss ein Schrägstrich "/" stehen. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(p,{title:"Client ID",subtype:"text",required:"",pattern:"[A-Za-z0-9_\\-]+","model-value":l.remote.client_id,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.client_id")},{help:o(()=>[...e[7]||(e[7]=[s(" Die Client ID darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"MQTT Protokoll",required:"required",buttons:[{buttonValue:"mqttv31",text:"v3.1"},{buttonValue:"mqttv311",text:"v3.1.1"}],"model-value":l.remote.protocol,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.protocol")},null,8,["model-value","onUpdate:modelValue"]),a(d,{title:"TLS Version",buttons:[{buttonValue:"auto",text:"Automatisch",class:"btn-outline-success"},{buttonValue:"tlsv1.0",text:"v1.0",class:"btn-outline-warning"},{buttonValue:"tlsv1.1",text:"v1.1",class:"btn-outline-warning"},{buttonValue:"tlsv1.2",text:"v1.2"}],"model-value":l.remote.tls_version,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.tls_version")},{help:o(()=>[...e[8]||(e[8]=[s(' In der Einstellung "Automatisch" wird die Version zwischen Client und Server ausgehandelt. Wenn erforderlich, kann eine spezielle Version erzwungen werden. Versionen kleiner 1.2 gelten als veraltet und sollten nicht mehr verwendet werden. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"Brücke signalisieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l.remote.try_private,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.try_private")},{help:o(()=>[...e[9]||(e[9]=[s(" Aktiviert eine proprietäre Protokoll-Erweiterung des Mosquitto Brokers, welche dem entfernten Broker signalisiert, dass es sich um eine MQTT Brücke handelt. Ergibt bessere Leistung mit Mosquitto-Brokern, ist jedoch inkompatibel mit vielen anderen MQTT-Brokern. Daher bitte nur aktivieren, wenn der Ziel-Broker sicher ein Mosquitto-Broker ist. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),e[15]||(e[15]=g("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[10]||(e[10]=[s(" Datenübertragung ",-1)])]),_:1}),a(d,{title:"Alle Statusdaten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l.data_transfer.status,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.status")},{help:o(()=>[...e[11]||(e[11]=[s(" Wenn aktiviert, werden alle Statusdaten (z.B. Ladezustand, Leistung, Spannungen, Ströme, etc.) der angeschlossenen Komponenten und Ladepunkte übertragen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"Datenserien für Diagramme",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l.data_transfer.graph,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.graph")},{help:o(()=>[...e[12]||(e[12]=[s(" Wenn aktiviert, werden alle Datenserien für die Diagramme (z.B. Leistung über Zeit) der angeschlossenen Komponenten und Ladepunkte übertragen. Dies sind deutlich mehr Daten als bei den Statusdaten allein.",-1),g("br",null,null,-1),s(" Diese Einstellung sollte nur aktiviert werden, wenn die Daten auch tatsächlich benötigt und interpretiert werden können. In der Regel werden die Daten nur für die Web- und Display-Themes benötigt und können daher bei einer MQTT-Brücke deaktiviert bleiben. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"Fernkonfiguration ermöglichen",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l.data_transfer.configuration,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.configuration")},{help:o(()=>[...e[13]||(e[13]=[s(' Wenn aktiviert, können über die MQTT-Brücke auch Konfigurationsänderungen (z.B. Ladeleistung, Zeitsteuerungen, etc.) an die openWB über die Topics "openWB/set/*" gesendet werden. Dies sollte nur aktiviert werden, wenn der entfernte MQTT-Server und alle Nutzer, welche darauf Zugriff haben, absolut vertrauenswürdig sind. Ansonsten besteht die Gefahr, dass unbefugte Nutzer die Konfiguration der openWB verändern und z.B. den Ladevorgang manipulieren. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1032,["title"])],8,N))),128))]))]),_:1})])],64)}const J=W(Q,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/MqttBridgeConfig.vue"]]);export{J as default}; diff --git a/web/settings/assets/MqttBridgeConfig-59050cb8.js b/web/settings/assets/MqttBridgeConfig-59050cb8.js new file mode 100644 index 0000000000..2c451bc926 --- /dev/null +++ b/web/settings/assets/MqttBridgeConfig-59050cb8.js @@ -0,0 +1 @@ +import{l as x,d as z,ab as D,F as A}from"./vendor-fortawesome-a02b6813.js";import{C}from"./index-8dd8e083.js";import{_ as W,u,l as m,m as b,G as a,E as o,A as g,N as V,B as s,F as q,x as M,z as B,M as E}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";x.add(z,D);const Q={name:"OpenwbMqttBridgeConfigurationView",components:{FontAwesomeIcon:A},mixins:[C],emits:["sendCommand","save","reset"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/mqtt/bridge/+"],showMqttBridgeModal:!1,modalMqttBridgeIndex:void 0}},computed:{configuredMqttBridges:{get(){let t=this.getWildcardTopics("openWB/system/mqtt/bridge/+");for(const[e,v]of Object.entries(t))v.remote.is_openwb_cloud&&delete t[e];return t}}},methods:{addMqttBridge(t){t.stopPropagation(),this.$emit("sendCommand",{command:"addMqttBridge",data:{}})},getMqttBridgeIndex(t){return parseInt(t.match(/(?:\/)(\d+)$/)[1])},removeMqttBridgeModal(t,e){e.stopPropagation(),this.modalMqttBridgeIndex=this.getMqttBridgeIndex(t),this.showMqttBridgeModal=!0},removeMqttBridge(t,e){this.showMqttBridgeModal=!1,e=="confirm"&&this.$emit("sendCommand",{command:"removeMqttBridge",data:{bridge:t}})},getMqttBridgeName(t){return this.$store.state.mqtt["openWB/system/mqtt/bridge/"+t]?this.$store.state.mqtt["openWB/system/mqtt/bridge/"+t].name:t}}},Z={class:"mqttBridgeConfiguration"},L={key:0},I={key:1},N=["name"];function y(t,e,v,P,f,i){const T=u("openwb-base-modal-dialog"),c=u("openwb-base-alert"),h=u("font-awesome-icon"),w=u("openwb-base-avatar"),p=u("openwb-base-text-input"),d=u("openwb-base-button-group-input"),_=u("openwb-base-heading"),S=u("openwb-base-number-input"),U=u("openwb-base-submit-buttons"),k=u("openwb-base-card");return m(),b(V,null,[a(T,{show:f.showMqttBridgeModal,title:"MQTT-Brücke löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=l=>i.removeMqttBridge(f.modalMqttBridgeIndex,l))},{default:o(()=>[s(' Wollen Sie die MQTT-Brücke "'+q(i.getMqttBridgeName(f.modalMqttBridgeIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),g("div",Z,[a(c,{subtype:"danger"},{default:o(()=>e[1]||(e[1]=[s(" ACHTUNG: Die Konfiguration einer MQTT-Brücke erlaubt allen Nutzern mit Zugang zum entfernten MQTT-Server alle weitergeleiteten Daten dieser openWB einzusehen!",-1),g("br",null,null,-1),s(' Es wird dringend empfohlen, dies nur für nicht-öffentliche MQTT-Server unter Verwendung starker Transport-Verschlüsselung (TLS) mit persönlichem Login und strenger Zugriffskontrolle (zumindest für die MQTT-Themen unterhalb von "Entfernter Präfix") zu aktivieren! ',-1)])),_:1,__:[1]}),a(k,{title:"Konfigurierte MQTT-Brücken"},{actions:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!1?(m(),M(w,{key:0,class:"bg-success clickable",onClick:i.addMqttBridge},{default:o(()=>[a(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):B("",!0)]),default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(m(),b("div",L,[a(c,{subtype:"info"},{default:o(()=>e[2]||(e[2]=[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[2]})])):(m(),b("div",I,[Object.keys(i.configuredMqttBridges).length===0?(m(),M(c,{key:0,subtype:"info"},{default:o(()=>e[3]||(e[3]=[s(" Es wurde noch keine MQTT-Brücke konfiguriert. ",-1)])),_:1,__:[3]})):B("",!0),(m(!0),b(V,null,E(i.configuredMqttBridges,(l,r)=>(m(),b("form",{key:r,name:"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(r)},[a(k,{title:l.name,collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(()=>[a(w,{class:"bg-danger clickable",onClick:n=>i.removeMqttBridgeModal(r,n)},{default:o(()=>[a(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"])]),footer:o(()=>[a(U,{"form-name":"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(r),"hide-defaults":!0,onSave:n=>t.$emit("save",[r]),onReset:n=>t.$emit("reset",[r])},null,8,["form-name","onSave","onReset"])]),default:o(()=>[a(p,{title:"Bezeichnung",subtype:"text",required:"",pattern:"[A-Za-z0-9]+","model-value":l.name,"onUpdate:modelValue":n=>t.updateState(r,n,"name")},{help:o(()=>[...e[4]||(e[4]=[s(" Die Bezeichnung darf nur aus Buchstaben ohne Umlaute und Zahlen bestehen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(d,{title:"Brücke aktivieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":l.active,"onUpdate:modelValue":n=>t.updateState(r,n,"active")},null,8,["model-value","onUpdate:modelValue"]),e[14]||(e[14]=g("hr",null,null,-1)),a(_,null,{default:o(()=>[...e[5]||(e[5]=[s(" Einstellungen zur Verbindung ",-1)])]),_:1,__:[5]}),a(p,{title:"Entfernter Server",subtype:"host",required:"","model-value":l.remote.host,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.host")},null,8,["model-value","onUpdate:modelValue"]),a(S,{title:"Entfernter Port",required:"",min:1,max:65535,"model-value":l.remote.port,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.port")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Benutzername",subtype:"user",required:"",pattern:"[a-zA-Z0-9_\\-+.]+","model-value":l.remote.username,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.username")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Passwort",subtype:"password",required:"","model-value":l.remote.password,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.password")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Präfix",subtype:"text",pattern:"[A-Za-z0-9_\\-]+(\\/[A-Za-z0-9_\\-]+)?\\/","model-value":l.remote.prefix,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.prefix")},{help:o(()=>[...e[6]||(e[6]=[s(' Das Präfix darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. Optional kann mit einem Schrägstrich "/" eine Topic-Struktur abgebildet werden. Am Ende des Präfixes muss ein Schrägstrich "/" stehen. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(p,{title:"Client ID",subtype:"text",required:"",pattern:"[A-Za-z0-9_\\-]+","model-value":l.remote.client_id,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.client_id")},{help:o(()=>[...e[7]||(e[7]=[s(" Die Client ID darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(d,{title:"MQTT Protokoll",required:"required",buttons:[{buttonValue:"mqttv31",text:"v3.1"},{buttonValue:"mqttv311",text:"v3.1.1"}],"model-value":l.remote.protocol,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.protocol")},null,8,["model-value","onUpdate:modelValue"]),a(d,{title:"TLS Version",buttons:[{buttonValue:"auto",text:"Automatisch",class:"btn-outline-success"},{buttonValue:"tlsv1.0",text:"v1.0",class:"btn-outline-warning"},{buttonValue:"tlsv1.1",text:"v1.1",class:"btn-outline-warning"},{buttonValue:"tlsv1.2",text:"v1.2"}],"model-value":l.remote.tls_version,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.tls_version")},{help:o(()=>[...e[8]||(e[8]=[s(' In der Einstellung "Automatisch" wird die Version zwischen Client und Server ausgehandelt. Wenn erforderlich, kann eine spezielle Version erzwungen werden. Versionen kleiner 1.2 gelten als veraltet und sollten nicht mehr verwendet werden. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(d,{title:"Brücke signalisieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l.remote.try_private,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.try_private")},{help:o(()=>[...e[9]||(e[9]=[s(" Aktiviert eine proprietäre Protokoll-Erweiterung des Mosquitto Brokers, welche dem entfernten Broker signalisiert, dass es sich um eine MQTT Brücke handelt. Ergibt bessere Leistung mit Mosquitto-Brokern, ist jedoch inkompatibel mit vielen anderen MQTT-Brokern. Daher bitte nur aktivieren, wenn der Ziel-Broker sicher ein Mosquitto-Broker ist. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),e[15]||(e[15]=g("hr",null,null,-1)),a(_,null,{default:o(()=>[...e[10]||(e[10]=[s(" Datenübertragung ",-1)])]),_:1,__:[10]}),a(d,{title:"Alle Statusdaten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l.data_transfer.status,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.status")},{help:o(()=>[...e[11]||(e[11]=[s(" Wenn aktiviert, werden alle Statusdaten (z.B. Ladezustand, Leistung, Spannungen, Ströme, etc.) der angeschlossenen Komponenten und Ladepunkte übertragen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(d,{title:"Datenserien für Diagramme",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l.data_transfer.graph,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.graph")},{help:o(()=>[...e[12]||(e[12]=[s(" Wenn aktiviert, werden alle Datenserien für die Diagramme (z.B. Leistung über Zeit) der angeschlossenen Komponenten und Ladepunkte übertragen. Dies sind deutlich mehr Daten als bei den Statusdaten allein.",-1),g("br",null,null,-1),s(" Diese Einstellung sollte nur aktiviert werden, wenn die Daten auch tatsächlich benötigt und interpretiert werden können. In der Regel werden die Daten nur für die Web- und Display-Themes benötigt und können daher bei einer MQTT-Brücke deaktiviert bleiben. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(d,{title:"Fernkonfiguration ermöglichen",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l.data_transfer.configuration,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.configuration")},{help:o(()=>[...e[13]||(e[13]=[s(' Wenn aktiviert, können über die MQTT-Brücke auch Konfigurationsänderungen (z.B. Ladeleistung, Zeitsteuerungen, etc.) an die openWB über die Topics "openWB/set/*" gesendet werden. Dies sollte nur aktiviert werden, wenn der entfernte MQTT-Server und alle Nutzer, welche darauf Zugriff haben, absolut vertrauenswürdig sind. Ansonsten besteht die Gefahr, dass unbefugte Nutzer die Konfiguration der openWB verändern und z.B. den Ladevorgang manipulieren. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2,__:[14,15]},1032,["title"])],8,N))),128))]))]),_:1})])],64)}const J=W(Q,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/MqttBridgeConfig.vue"]]);export{J as default}; diff --git a/web/settings/assets/OpenwbIoPattern-66bb2793.js b/web/settings/assets/OpenwbIoPattern-66bb2793.js new file mode 100644 index 0000000000..2f262fc01f --- /dev/null +++ b/web/settings/assets/OpenwbIoPattern-66bb2793.js @@ -0,0 +1 @@ +import{l as T,n as M,o as q,p as D,q as y,ab as C,d as O,O as A,f as I,a as z,F as E}from"./vendor-fortawesome-a02b6813.js";import{_ as B,u as _,l as a,m as l,A as i,F as P,z as d,N as f,M as g,G as c,E as k,q as x,y as h,K as N,p as S,B as V,x as j}from"./vendor-25d394b4.js";T.add(M,q,D,y,C,O,A,I,z);const p={undefined:{value:void 0,icon:["fas","question"],iconClass:"text-secondary",title:"Nicht relevant",nextValue:!0},true:{value:!0,icon:["fas","square"],iconClass:"",title:"Geschlossen",nextValue:!1},false:{value:!1,icon:["far","square"],iconClass:"",title:"Offen",nextValue:void 0}},H={name:"IoActionContactPattern",components:{FontAwesomeIcon:E},inheritAttrs:!1,props:{contacts:{type:Object,required:!0},modelValue:{type:Array,required:!0},title:{type:String,required:!1,default:"Eingangsmuster"},actionTitle:{type:String,required:!1,default:"Verhalten"},enableAddDelete:{type:Boolean,default:!0},minPatterns:{type:Number,default:1},maxPatterns:{type:Number,default:10},showCheckPattern:{type:Boolean,required:!1,default:!0}},emits:["update:modelValue"],data(){return{showTestPattern:!1,testPattern:{...this.contacts}}},computed:{value:{get(){return this.modelValue},set(s){this.$emit("update:modelValue",s)}},numContacts(){return Object.keys(this.contacts).length},addPatternDisabled(){return this.value.length>=this.maxPatterns},addPatternTooltip(){return this.addPatternDisabled?this.maxPatterns===1?"Es kann maximal ein Muster definiert werden":`Es können maximal ${this.maxPatterns} Muster definiert werden`:"Muster hinzufügen"},deletePatternDisabled(){return this.value.length<=this.minPatterns},deletePatternTooltip(){return this.deletePatternDisabled?this.minPatterns===1?"Es muss mindestens ein Muster definiert sein":`Es müssen mindestens ${this.minPatterns} Muster definiert sein`:"Muster löschen"}},watch:{contacts(){this.testPattern={...this.contacts}}},mounted(){for(;this.value.lengththis.testPattern[e]===void 0?!0:this.value[s].matrix[e]===this.testPattern[e])},deletePattern(s){delete this.value.splice(s,1)},addPattern(){this.value.push({matrix:{},value:null})}}},F={class:"w-100 mb-2"},Q=["span"],G=["colspan"],L={key:0,rowspan:"2",class:"contact-header"},U=["colspan"],W={key:0},J={key:0,class:"text-center"},R={key:1},X={key:0},Y=["colspan"],Z={key:1,class:"bg-info"},K=["colspan"];function $(s,e,r,ee,u,n){const m=_("font-awesome-icon"),w=_("openwb-base-click-button"),v=_("openwb-base-button-group-input");return a(),l(f,null,[i("table",F,[i("colgroup",null,[i("col",{span:n.numContacts,class:"bg-white",style:{border:"1px solid #dee2e6"}},null,8,Q)]),i("thead",null,[i("tr",null,[i("th",{colspan:n.numContacts},P(r.title),9,G),u.showTestPattern?(a(),l("th",L,e[6]||(e[6]=[i("div",null,"Prüfergebnis",-1)]))):d("",!0),i("th",{colspan:r.enableAddDelete?2:1},null,8,U)]),i("tr",null,[(a(!0),l(f,null,g(Object.keys(r.contacts),t=>(a(),l("th",{key:t,class:"contact-header"},[i("div",null,P(t),1)]))),128)),i("th",null,P(r.actionTitle),1),r.enableAddDelete?(a(),l("th",W,[c(w,{class:"bg-success text-white",tooltip:n.addPatternTooltip,disabled:n.addPatternDisabled,onClick:e[0]||(e[0]=t=>n.addPattern())},{default:k(()=>[c(m,{icon:["fas","plus"]})]),_:1},8,["tooltip","disabled"])])):d("",!0)])]),i("tbody",null,[(a(!0),l(f,null,g(n.value,(t,b)=>(a(),l("tr",{key:b},[(a(!0),l(f,null,g(Object.keys(r.contacts),o=>(a(),l("td",{key:o,class:"text-center"},[c(m,{title:n.getTitle(t.matrix[o]),icon:n.getIcon(t.matrix[o]),class:x([n.getIconClass(t.matrix[o]),"fa-fw clickable"]),size:"2x",transform:t.matrix[o]==null?"shrink-6":null,mask:t.matrix[o]==null?["fas","square"]:null,onClick:h(te=>n.toggleContact(b,o),["stop","prevent"]),onMousedown:e[1]||(e[1]=h(()=>{},["stop","prevent"])),onMouseup:e[2]||(e[2]=h(()=>{},["stop","prevent"]))},null,8,["title","icon","class","transform","mask","onClick"])]))),128)),u.showTestPattern?(a(),l("td",J,[c(m,{title:"Muster passt",icon:["fas","check-circle"],class:x(["text-success fa-fw",{hidden:!n.patternMatch(b)}])},null,8,["class"])])):d("",!0),i("td",N({ref_for:!0},s.$attrs),[S(s.$slots,"default",{pattern:t},()=>[V(P(t.value),1)],!0)],16),r.enableAddDelete?(a(),l("td",R,[c(w,{class:"bg-danger text-white",tooltip:n.deletePatternTooltip,disabled:n.deletePatternDisabled,onClick:o=>n.deletePattern(b)},{default:k(()=>[c(m,{icon:["fas","trash"]})]),_:2},1032,["tooltip","disabled","onClick"])])):d("",!0)]))),128)),u.showTestPattern?(a(),l("tr",X,[(a(!0),l(f,null,g(Object.keys(r.contacts),t=>(a(),l("td",{key:t,class:"pt-4"},"   "))),128)),i("td",{colspan:r.enableAddDelete?3:2},null,8,Y)])):d("",!0),u.showTestPattern?(a(),l("tr",Z,[(a(!0),l(f,null,g(Object.keys(r.contacts),t=>(a(),l("td",{key:t,class:"text-center text-body"},[c(m,{title:n.getTitle(u.testPattern[t]),icon:n.getIcon(u.testPattern[t]),class:x([n.getIconClass(u.testPattern[t]),"fa-fw clickable"]),size:"2x",transform:u.testPattern[t]==null?"shrink-6":null,mask:u.testPattern[t]==null?["fas","square"]:null,onClick:h(b=>n.toggleTestPattern(t),["stop","prevent"]),onMousedown:e[3]||(e[3]=h(()=>{},["stop","prevent"])),onMouseup:e[4]||(e[4]=h(()=>{},["stop","prevent"]))},null,8,["title","icon","class","transform","mask","onClick"])]))),128)),i("td",{class:"pl-2",colspan:r.enableAddDelete?3:2}," Prüfmuster ",8,K)])):d("",!0)])]),r.showCheckPattern?(a(),j(v,{key:0,modelValue:u.showTestPattern,"onUpdate:modelValue":e[5]||(e[5]=t=>u.showTestPattern=t),title:"Prüfmuster",buttons:[{buttonValue:!1,text:"Verbergen"},{buttonValue:!0,text:"Anzeigen"}]},{help:k(()=>e[7]||(e[7]=[V(' Das Prüfmuster ist eine Hilfe um zu testen, ob die Eingangsmuster zum gewünschten Verhalten passen. Ein grüner Haken in der Spalte "Prüfergebnis" zeigt an, dass das Eingangsmuster zu dem Prüfmuster passt. Eingangsmuster mit unterschiedlichem Verhalten dürfen nicht gleichzeitig passen, da sonst das Verhalten nicht eindeutig ist. ',-1)])),_:1},8,["modelValue"])):d("",!0)],64)}const ae=B(H,[["render",$],["__scopeId","data-v-3624c649"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoPattern.vue"]]);export{ae as O}; diff --git a/web/settings/assets/OpenwbIoPattern-6f003fb0.js b/web/settings/assets/OpenwbIoPattern-6f003fb0.js deleted file mode 100644 index e2e0d10286..0000000000 --- a/web/settings/assets/OpenwbIoPattern-6f003fb0.js +++ /dev/null @@ -1 +0,0 @@ -import{l as T,n as M,o as q,p as D,q as y,ab as C,d as O,O as A,f as I,a as z,F as E}from"./vendor-fortawesome-2b3791bb.js";import{_ as B,u as _,l as a,m as l,A as i,F as P,z as d,N as f,M as g,G as c,E as k,q as x,y as h,K as N,p as S,B as V,x as j}from"./vendor-36bf053b.js";T.add(M,q,D,y,C,O,A,I,z);const p={undefined:{value:void 0,icon:["fas","question"],iconClass:"text-secondary",title:"Nicht relevant",nextValue:!0},true:{value:!0,icon:["fas","square"],iconClass:"",title:"Geschlossen",nextValue:!1},false:{value:!1,icon:["far","square"],iconClass:"",title:"Offen",nextValue:void 0}},H={name:"IoActionContactPattern",components:{FontAwesomeIcon:E},inheritAttrs:!1,props:{contacts:{type:Object,required:!0},modelValue:{type:Array,required:!0},title:{type:String,required:!1,default:"Eingangsmuster"},actionTitle:{type:String,required:!1,default:"Verhalten"},enableAddDelete:{type:Boolean,default:!0},minPatterns:{type:Number,default:1},maxPatterns:{type:Number,default:10},showCheckPattern:{type:Boolean,required:!1,default:!0}},emits:["update:modelValue"],data(){return{showTestPattern:!1,testPattern:{...this.contacts}}},computed:{value:{get(){return this.modelValue},set(s){this.$emit("update:modelValue",s)}},numContacts(){return Object.keys(this.contacts).length},addPatternDisabled(){return this.value.length>=this.maxPatterns},addPatternTooltip(){return this.addPatternDisabled?this.maxPatterns===1?"Es kann maximal ein Muster definiert werden":`Es können maximal ${this.maxPatterns} Muster definiert werden`:"Muster hinzufügen"},deletePatternDisabled(){return this.value.length<=this.minPatterns},deletePatternTooltip(){return this.deletePatternDisabled?this.minPatterns===1?"Es muss mindestens ein Muster definiert sein":`Es müssen mindestens ${this.minPatterns} Muster definiert sein`:"Muster löschen"}},watch:{contacts(){this.testPattern={...this.contacts}}},mounted(){for(;this.value.lengththis.testPattern[e]===void 0?!0:this.value[s].matrix[e]===this.testPattern[e])},deletePattern(s){delete this.value.splice(s,1)},addPattern(){this.value.push({matrix:{},value:null})}}},F={class:"w-100 mb-2"},Q=["span"],G=["colspan"],L={key:0,rowspan:"2",class:"contact-header"},U=["colspan"],W={key:0},J={key:0,class:"text-center"},R={key:1},X={key:0},Y=["colspan"],Z={key:1,class:"bg-info"},K=["colspan"];function $(s,e,r,ee,u,n){const m=_("font-awesome-icon"),w=_("openwb-base-click-button"),v=_("openwb-base-button-group-input");return a(),l(f,null,[i("table",F,[i("colgroup",null,[i("col",{span:n.numContacts,class:"bg-white",style:{border:"1px solid #dee2e6"}},null,8,Q)]),i("thead",null,[i("tr",null,[i("th",{colspan:n.numContacts},P(r.title),9,G),u.showTestPattern?(a(),l("th",L,[...e[6]||(e[6]=[i("div",null,"Prüfergebnis",-1)])])):d("",!0),i("th",{colspan:r.enableAddDelete?2:1},null,8,U)]),i("tr",null,[(a(!0),l(f,null,g(Object.keys(r.contacts),t=>(a(),l("th",{key:t,class:"contact-header"},[i("div",null,P(t),1)]))),128)),i("th",null,P(r.actionTitle),1),r.enableAddDelete?(a(),l("th",W,[c(w,{class:"bg-success text-white",tooltip:n.addPatternTooltip,disabled:n.addPatternDisabled,onClick:e[0]||(e[0]=t=>n.addPattern())},{default:k(()=>[c(m,{icon:["fas","plus"]})]),_:1},8,["tooltip","disabled"])])):d("",!0)])]),i("tbody",null,[(a(!0),l(f,null,g(n.value,(t,b)=>(a(),l("tr",{key:b},[(a(!0),l(f,null,g(Object.keys(r.contacts),o=>(a(),l("td",{key:o,class:"text-center"},[c(m,{title:n.getTitle(t.matrix[o]),icon:n.getIcon(t.matrix[o]),class:x([n.getIconClass(t.matrix[o]),"fa-fw clickable"]),size:"2x",transform:t.matrix[o]==null?"shrink-6":null,mask:t.matrix[o]==null?["fas","square"]:null,onClick:h(te=>n.toggleContact(b,o),["stop","prevent"]),onMousedown:e[1]||(e[1]=h(()=>{},["stop","prevent"])),onMouseup:e[2]||(e[2]=h(()=>{},["stop","prevent"]))},null,8,["title","icon","class","transform","mask","onClick"])]))),128)),u.showTestPattern?(a(),l("td",J,[c(m,{title:"Muster passt",icon:["fas","check-circle"],class:x(["text-success fa-fw",{hidden:!n.patternMatch(b)}])},null,8,["class"])])):d("",!0),i("td",N({ref_for:!0},s.$attrs),[S(s.$slots,"default",{pattern:t},()=>[V(P(t.value),1)],!0)],16),r.enableAddDelete?(a(),l("td",R,[c(w,{class:"bg-danger text-white",tooltip:n.deletePatternTooltip,disabled:n.deletePatternDisabled,onClick:o=>n.deletePattern(b)},{default:k(()=>[c(m,{icon:["fas","trash"]})]),_:1},8,["tooltip","disabled","onClick"])])):d("",!0)]))),128)),u.showTestPattern?(a(),l("tr",X,[(a(!0),l(f,null,g(Object.keys(r.contacts),t=>(a(),l("td",{key:t,class:"pt-4"},"   "))),128)),i("td",{colspan:r.enableAddDelete?3:2},null,8,Y)])):d("",!0),u.showTestPattern?(a(),l("tr",Z,[(a(!0),l(f,null,g(Object.keys(r.contacts),t=>(a(),l("td",{key:t,class:"text-center text-body"},[c(m,{title:n.getTitle(u.testPattern[t]),icon:n.getIcon(u.testPattern[t]),class:x([n.getIconClass(u.testPattern[t]),"fa-fw clickable"]),size:"2x",transform:u.testPattern[t]==null?"shrink-6":null,mask:u.testPattern[t]==null?["fas","square"]:null,onClick:h(b=>n.toggleTestPattern(t),["stop","prevent"]),onMousedown:e[3]||(e[3]=h(()=>{},["stop","prevent"])),onMouseup:e[4]||(e[4]=h(()=>{},["stop","prevent"]))},null,8,["title","icon","class","transform","mask","onClick"])]))),128)),i("td",{class:"pl-2",colspan:r.enableAddDelete?3:2}," Prüfmuster ",8,K)])):d("",!0)])]),r.showCheckPattern?(a(),j(v,{key:0,modelValue:u.showTestPattern,"onUpdate:modelValue":e[5]||(e[5]=t=>u.showTestPattern=t),title:"Prüfmuster",buttons:[{buttonValue:!1,text:"Verbergen"},{buttonValue:!0,text:"Anzeigen"}]},{help:k(()=>[...e[7]||(e[7]=[V(' Das Prüfmuster ist eine Hilfe um zu testen, ob die Eingangsmuster zum gewünschten Verhalten passen. Ein grüner Haken in der Spalte "Prüfergebnis" zeigt an, dass das Eingangsmuster zu dem Prüfmuster passt. Eingangsmuster mit unterschiedlichem Verhalten dürfen nicht gleichzeitig passen, da sonst das Verhalten nicht eindeutig ist. ',-1)])]),_:1},8,["modelValue"])):d("",!0)],64)}const ae=B(H,[["render",$],["__scopeId","data-v-3624c649"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoPattern.vue"]]);export{ae as O}; diff --git a/web/settings/assets/OpenwbIoSinglePattern-b3081980.js b/web/settings/assets/OpenwbIoSinglePattern-14df64f6.js similarity index 97% rename from web/settings/assets/OpenwbIoSinglePattern-b3081980.js rename to web/settings/assets/OpenwbIoSinglePattern-14df64f6.js index 298b37fd2c..b3cc054a78 100644 --- a/web/settings/assets/OpenwbIoSinglePattern-b3081980.js +++ b/web/settings/assets/OpenwbIoSinglePattern-14df64f6.js @@ -1 +1 @@ -import{_ as m,u as i,l,m as p,G as f,E as r,B as s,F as u,x as g,z as h,N as b}from"./vendor-36bf053b.js";const v={name:"IoActionSinglePattern",inheritAttrs:!1,props:{modelValue:{type:Array,required:!0},contacts:{type:Object,required:!0},contactType:{type:String,required:!1,default:"input",validator:e=>["input","output"].includes(e)},title:{type:String,required:!1,default:void 0}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},contactTitle(){return this.title!==void 0?this.title:this.contactType==="input"?"Eingang":"Ausgang"},contactHelpText(){return this.contactType==="input"?"Bitte den Eingang auswählen, auf welchen reagiert werden soll. Es kann nur ein Eingang ausgewählt werden.":"Bitte den Ausgang auswählen, welcher geschaltet werden soll. Es kann nur ein Ausgang ausgewählt werden."},normalModeHelpText(){return this.contactType==="input"?"Bitte Einstellen, ob der Eingang für den normalen Betrieb (nicht aktiv, nicht gedimmt etc.) geschlossen (NC) oder geöffnet (NO) ist.":"Bitte Einstellen, ob der Ausgang für den normalen Betrieb (nicht aktiv, nicht gedimmt etc.) geschlossen (NC) oder geöffnet (NO) ist."},definedContact:{get(){return this.value!==void 0&&Object.keys(this.value[0].matrix).length!==0?Object.keys(this.value[0].matrix)[0]:null},set(e){if(Object.keys(this.value[0].matrix).length===0){this.value=[{value:!0,matrix:{[e]:!0}},{value:!1,matrix:{[e]:!1}}];return}this.value=[{value:!0,matrix:{[e]:this.definedNormalMode}},{value:!1,matrix:{[e]:!this.definedNormalMode}}]}},definedNormalMode:{get(){return Object.values(this.value[0].matrix)[0]},set(e){this.value=[{value:!0,matrix:{[this.definedContact]:e}},{value:!1,matrix:{[this.definedContact]:!e}}]}},contactOptions(){return Object.keys(this.contacts).map(e=>({value:e,text:e}))}}};function x(e,n,o,_,y,t){const d=i("openwb-base-select-input"),c=i("openwb-base-button-group-input");return l(),p(b,null,[f(d,{modelValue:t.definedContact,"onUpdate:modelValue":n[0]||(n[0]=a=>t.definedContact=a),title:t.contactTitle,required:"","not-selected":"Bitte auswählen","empty-value":null,options:t.contactOptions},{help:r(()=>[s(u(t.contactHelpText),1)]),_:1},8,["modelValue","title","options"]),o.contactType==="input"?(l(),g(c,{key:0,modelValue:t.definedNormalMode,"onUpdate:modelValue":n[1]||(n[1]=a=>t.definedNormalMode=a),title:"Normaler Zustand",buttons:[{buttonValue:!1,text:"geschlossen (NC)"},{buttonValue:!0,text:"geöffnet (NO)"}],disabled:!t.definedContact,required:""},{help:r(()=>[s(u(t.normalModeHelpText),1)]),_:1},8,["modelValue","disabled"])):h("",!0)],64)}const w=m(v,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoSinglePattern.vue"]]);export{w as O}; +import{_ as m,u as i,l,m as p,G as f,E as r,B as s,F as u,x as g,z as h,N as b}from"./vendor-25d394b4.js";const v={name:"IoActionSinglePattern",inheritAttrs:!1,props:{modelValue:{type:Array,required:!0},contacts:{type:Object,required:!0},contactType:{type:String,required:!1,default:"input",validator:e=>["input","output"].includes(e)},title:{type:String,required:!1,default:void 0}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},contactTitle(){return this.title!==void 0?this.title:this.contactType==="input"?"Eingang":"Ausgang"},contactHelpText(){return this.contactType==="input"?"Bitte den Eingang auswählen, auf welchen reagiert werden soll. Es kann nur ein Eingang ausgewählt werden.":"Bitte den Ausgang auswählen, welcher geschaltet werden soll. Es kann nur ein Ausgang ausgewählt werden."},normalModeHelpText(){return this.contactType==="input"?"Bitte Einstellen, ob der Eingang für den normalen Betrieb (nicht aktiv, nicht gedimmt etc.) geschlossen (NC) oder geöffnet (NO) ist.":"Bitte Einstellen, ob der Ausgang für den normalen Betrieb (nicht aktiv, nicht gedimmt etc.) geschlossen (NC) oder geöffnet (NO) ist."},definedContact:{get(){return this.value!==void 0&&Object.keys(this.value[0].matrix).length!==0?Object.keys(this.value[0].matrix)[0]:null},set(e){if(Object.keys(this.value[0].matrix).length===0){this.value=[{value:!0,matrix:{[e]:!0}},{value:!1,matrix:{[e]:!1}}];return}this.value=[{value:!0,matrix:{[e]:this.definedNormalMode}},{value:!1,matrix:{[e]:!this.definedNormalMode}}]}},definedNormalMode:{get(){return Object.values(this.value[0].matrix)[0]},set(e){this.value=[{value:!0,matrix:{[this.definedContact]:e}},{value:!1,matrix:{[this.definedContact]:!e}}]}},contactOptions(){return Object.keys(this.contacts).map(e=>({value:e,text:e}))}}};function x(e,n,o,_,y,t){const d=i("openwb-base-select-input"),c=i("openwb-base-button-group-input");return l(),p(b,null,[f(d,{modelValue:t.definedContact,"onUpdate:modelValue":n[0]||(n[0]=a=>t.definedContact=a),title:t.contactTitle,required:"","not-selected":"Bitte auswählen","empty-value":null,options:t.contactOptions},{help:r(()=>[s(u(t.contactHelpText),1)]),_:1},8,["modelValue","title","options"]),o.contactType==="input"?(l(),g(c,{key:0,modelValue:t.definedNormalMode,"onUpdate:modelValue":n[1]||(n[1]=a=>t.definedNormalMode=a),title:"Normaler Zustand",buttons:[{buttonValue:!1,text:"geschlossen (NC)"},{buttonValue:!0,text:"geöffnet (NO)"}],disabled:!t.definedContact,required:""},{help:r(()=>[s(u(t.normalModeHelpText),1)]),_:1},8,["modelValue","disabled"])):h("",!0)],64)}const w=m(v,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoSinglePattern.vue"]]);export{w as O}; diff --git a/web/settings/assets/OpenwbSortableList-0d1f7c1c.js b/web/settings/assets/OpenwbSortableList-c7b5b151.js similarity index 92% rename from web/settings/assets/OpenwbSortableList-0d1f7c1c.js rename to web/settings/assets/OpenwbSortableList-c7b5b151.js index 377416d749..f22e687a2f 100644 --- a/web/settings/assets/OpenwbSortableList-0d1f7c1c.js +++ b/web/settings/assets/OpenwbSortableList-c7b5b151.js @@ -1 +1 @@ -import{O as v}from"./index-0992d19b.js";import{_,a5 as V,u as l,l as o,x as i,E as d,A as p,q as k,G as m,z as S,B as b,F as g,D as O,p as f,m as B}from"./vendor-36bf053b.js";import{l as L,ak as E,Q as N,_ as C,Z as q,Y as A,F as x}from"./vendor-fortawesome-2b3791bb.js";L.add(E,N,C,q,A);const $={name:"OpenwbNestedList",components:{draggable:V,FontAwesomeIcon:x},props:{list:{type:Object,required:!1,default:void 0},labels:{type:Object,required:!1,default:void 0}},methods:{classes(e){var t="";switch(e.type){case"bat":t+="battery";break;case"cp":t+="charge-point";break;default:t+=e.type;break}return t},getElementLabel(e){return this.labels&&e in this.labels?this.labels[e]:e},getElementIcon(e){switch(e.type){case"bat":return["fas","car-battery"];case"counter":return["fas","gauge-high"];case"cp":return["fas","charging-station"];case"inverter":return["fas","solar-panel"];default:return}}}};function j(e,t,n,h,w,a){const r=l("font-awesome-icon"),c=l("openwb-nested-list",!0),u=l("draggable");return o(),i(u,{class:"dragArea w-100 mb-0",tag:"ul",list:n.list,group:{name:"g1"},"item-key":"id",handle:".handle"},{item:d(({element:s})=>[p("li",null,[p("div",{class:k(["element-titel",a.classes(s)])},[p("span",null,[m(r,{class:"handle",icon:["fas","arrows-alt"]}),a.getElementIcon(s)?(o(),i(r,{key:0,icon:a.getElementIcon(s)},null,8,["icon"])):S("",!0),b(" "+g(a.getElementLabel(s.id)),1)])],2),m(c,{modelValue:s.children,"onUpdate:modelValue":y=>s.children=y,labels:n.labels},null,8,["modelValue","onUpdate:modelValue","labels"])])]),_:1},8,["list"])}const D=_($,[["render",j],["__scopeId","data-v-82c9421a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbNestedList.vue"]]),F={name:"OpenwbSortableList",components:{OpenwbBaseSettingElement:v,OpenwbNestedList:D},props:{id:{type:String,required:!1,default:void 0},title:{type:String,required:!1,default:""},modelValue:{type:Array,required:!1,default:void 0},labels:{type:Object,default:void 0}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},I={key:1};function U(e,t,n,h,w,a){const r=l("openwb-nested-list"),c=l("openwb-base-setting-element");return o(),i(c,null,O({title:d(()=>[f(e.$slots,"title",{},()=>[b(g(n.title),1)])]),default:d(()=>[a.value!==void 0?(o(),i(r,{key:0,modelValue:a.value,"onUpdate:modelValue":t[0]||(t[0]=u=>a.value=u),labels:n.labels},null,8,["modelValue","labels"])):(o(),B("div",I,"Warte auf Daten..."))]),_:2},[e.$slots.help?{name:"help",fn:d(()=>[f(e.$slots,"help")]),key:"0"}:void 0]),1024)}const H=_(F,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbSortableList.vue"]]);export{H as S}; +import{O as v}from"./index-8dd8e083.js";import{_,a5 as V,u as l,l as o,x as i,E as d,A as p,q as k,G as m,z as S,B as b,F as g,D as O,p as f,m as B}from"./vendor-25d394b4.js";import{l as L,ak as E,Q as N,_ as C,Z as q,Y as A,F as x}from"./vendor-fortawesome-a02b6813.js";L.add(E,N,C,q,A);const $={name:"OpenwbNestedList",components:{draggable:V,FontAwesomeIcon:x},props:{list:{type:Object,required:!1,default:void 0},labels:{type:Object,required:!1,default:void 0}},methods:{classes(e){var t="";switch(e.type){case"bat":t+="battery";break;case"cp":t+="charge-point";break;default:t+=e.type;break}return t},getElementLabel(e){return this.labels&&e in this.labels?this.labels[e]:e},getElementIcon(e){switch(e.type){case"bat":return["fas","car-battery"];case"counter":return["fas","gauge-high"];case"cp":return["fas","charging-station"];case"inverter":return["fas","solar-panel"];default:return}}}};function j(e,t,n,h,w,a){const r=l("font-awesome-icon"),c=l("openwb-nested-list",!0),u=l("draggable");return o(),i(u,{class:"dragArea w-100 mb-0",tag:"ul",list:n.list,group:{name:"g1"},"item-key":"id",handle:".handle"},{item:d(({element:s})=>[p("li",null,[p("div",{class:k(["element-titel",a.classes(s)])},[p("span",null,[m(r,{class:"handle",icon:["fas","arrows-alt"]}),a.getElementIcon(s)?(o(),i(r,{key:0,icon:a.getElementIcon(s)},null,8,["icon"])):S("",!0),b(" "+g(a.getElementLabel(s.id)),1)])],2),m(c,{modelValue:s.children,"onUpdate:modelValue":y=>s.children=y,labels:n.labels},null,8,["modelValue","onUpdate:modelValue","labels"])])]),_:1},8,["list"])}const D=_($,[["render",j],["__scopeId","data-v-82c9421a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbNestedList.vue"]]),F={name:"OpenwbSortableList",components:{OpenwbBaseSettingElement:v,OpenwbNestedList:D},props:{id:{type:String,required:!1,default:void 0},title:{type:String,required:!1,default:""},modelValue:{type:Array,required:!1,default:void 0},labels:{type:Object,default:void 0}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},I={key:1};function U(e,t,n,h,w,a){const r=l("openwb-nested-list"),c=l("openwb-base-setting-element");return o(),i(c,null,O({title:d(()=>[f(e.$slots,"title",{},()=>[b(g(n.title),1)])]),default:d(()=>[a.value!==void 0?(o(),i(r,{key:0,modelValue:a.value,"onUpdate:modelValue":t[0]||(t[0]=u=>a.value=u),labels:n.labels},null,8,["modelValue","labels"])):(o(),B("div",I,"Warte auf Daten..."))]),_:2},[e.$slots.help?{name:"help",fn:d(()=>[f(e.$slots,"help")]),key:"0"}:void 0]),1024)}const H=_(F,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbSortableList.vue"]]);export{H as S}; diff --git a/web/settings/assets/OptionalComponents-a2c47c92.js b/web/settings/assets/OptionalComponents-a2c47c92.js new file mode 100644 index 0000000000..f6b499fae5 --- /dev/null +++ b/web/settings/assets/OptionalComponents-a2c47c92.js @@ -0,0 +1 @@ +import{_ as T,C as $}from"./index-8dd8e083.js";import{_ as C}from"./dynamic-import-helper-be004503.js";import{l as O,a6 as S,a7 as V,F as E}from"./vendor-fortawesome-a02b6813.js";import{_ as g,u as l,l as p,m as d,x as f,E as o,B as a,F as y,G as n,A as m,a2 as q,a3 as N,N as z,z as c}from"./vendor-25d394b4.js";const M={props:{displayTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},j=g(M,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/DisplayThemeConfigMixin.vue"]]),A={name:"DisplayThemeFallback",mixins:[j]},F={class:"display-theme-fallback"},L={key:1};function P(t,e,s,v,w,u){const r=l("openwb-base-alert"),b=l("openwb-base-textarea");return p(),d("div",F,[Object.keys(t.displayTheme.configuration).length==0?(p(),f(r,{key:0,subtype:"info"},{default:o(()=>[a(' Das Display-Theme "'+y(t.displayTheme.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(p(),d("div",L,[n(r,{subtype:"warning"},{default:o(()=>[a(' Es wurde keine Konfigurationsseite für das Display-Theme "'+y(t.displayTheme.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(b,{title:"Konfiguration",subtype:"json","model-value":t.displayTheme.configuration,"onUpdate:modelValue":e[0]||(e[0]=_=>t.updateConfiguration(_,"configuration"))},{help:o(()=>e[1]||(e[1]=[a(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),n(r,{subtype:"info"},{default:o(()=>[m("pre",null,y(JSON.stringify(t.displayTheme.configuration,void 0,2)),1)]),_:1})]))])}const U=g(A,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeFallback.vue"]]);O.add(S,V);const x={name:"OpenwbDisplayThemeProxy",components:{FontAwesomeIcon:E},props:{displayTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{getDisplayThemeComponent(){return console.debug(`loading display theme: ${this.displayTheme.type}`),q({loader:()=>C(Object.assign({"./cards/displayTheme.vue":()=>T(()=>import("./displayTheme-717a89a9.js"),["assets/displayTheme-717a89a9.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-8dd8e083.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./colors/displayTheme.vue":()=>T(()=>import("./displayTheme-cf89ddcd.js"),["assets/displayTheme-cf89ddcd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-8dd8e083.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.displayTheme.type}/displayTheme.vue`),errorComponent:U})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function I(t,e,s,v,w,u){const r=l("font-awesome-icon"),b=l("openwb-base-alert"),_=l("openwb-base-heading");return p(),d(z,null,[s.displayTheme.official?(p(),f(b,{key:0,subtype:"success"},{default:o(()=>[n(r,{icon:["fas","certificate"]}),a(' Das ausgewählte Display Theme "'+y(s.displayTheme.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(p(),f(b,{key:1,subtype:"info"},{default:o(()=>[n(r,{icon:["fas","people-group"]}),a(' Das ausgewählte Display Theme "'+y(s.displayTheme.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),n(_,null,{default:o(()=>[a(' Einstellungen für Display Theme "'+y(s.displayTheme.name)+'" ',1)]),_:1}),(p(),f(N(u.getDisplayThemeComponent()),{"display-theme":s.displayTheme,"onUpdate:configuration":e[0]||(e[0]=h=>u.updateConfiguration(h))},null,40,["display-theme"]))],64)}const R=g(x,[["render",I],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeProxy.vue"]]),H={name:"OpenwbOptionalComponentsView",components:{OpenwbDisplayThemeProxy:R},mixins:[$],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/optional/led/active","ToDo/optional/led/instant_blocked","ToDo/optional/led/pv_blocked","ToDo/optional/led/scheduled_blocked","ToDo/optional/led/standby_blocked","ToDo/optional/led/stop_blocked","ToDo/optional/led/instant","ToDo/optional/led/pv","ToDo/optional/led/scheduled","ToDo/optional/led/standby","ToDo/optional/led/stop","openWB/optional/int_display/active","openWB/optional/int_display/on_if_plugged_in","openWB/optional/int_display/only_local_charge_points","openWB/optional/int_display/pin_active","openWB/optional/int_display/pin_code","openWB/optional/int_display/rotation","openWB/optional/int_display/standby","openWB/optional/int_display/theme","openWB/optional/rfid/active","openWB/system/configurable/display_themes"]}},computed:{displayThemeList(){return this.$store.state.mqtt["openWB/system/configurable/display_themes"]},displayThemeGroupList(){var e;let t=[{label:"openWB",options:[]},{label:"Community",options:[]}];return(e=this.displayThemeList)==null||e.forEach(s=>{s.official===!0?t[0].options.push(s):t[1].options.push(s)}),t}},methods:{getDisplayThemeDefaults(t){const e=this.displayThemeList.find(s=>s.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for display theme type!",t),{})},updateSelectedDisplayTheme(t){this.updateState("openWB/optional/int_display/theme",this.getDisplayThemeDefaults(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},J={class:"optionalComponents"},G={name:"optionalComponentsForm"},K={key:0},Z={key:1},Q={key:2},X={key:0};function Y(t,e,s,v,w,u){const r=l("openwb-base-button-group-input"),b=l("openwb-base-heading"),_=l("openwb-base-range-input"),h=l("openwb-base-alert"),D=l("openwb-base-select-input"),B=l("openwb-display-theme-proxy"),W=l("openwb-base-card"),k=l("openwb-base-submit-buttons");return p(),d("div",J,[m("form",G,[n(W,{title:"Display (intern oder extern)"},{default:o(()=>[n(r,{title:"Integriertes Display","model-value":t.$store.state.mqtt["openWB/optional/int_display/active"],buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateState("openWB/optional/int_display/active",i))},{help:o(()=>e[9]||(e[9]=[a(' Je nach Bestellung kann die openWB mit oder ohne Display geliefert worden sein. Auch die Variante "Standalone" bietet beide Optionen. Bitte prüfe zuerst die Hardwareausstattung deiner openWB (z.B. Lieferschein). ',-1)])),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/optional/int_display/active"]==!0?(p(),d("div",K,[n(r,{title:"Orientierung","model-value":t.$store.state.mqtt["openWB/optional/int_display/rotation"],buttons:[{buttonValue:0,text:"0°"},{buttonValue:90,text:"90°"},{buttonValue:180,text:"180°"},{buttonValue:270,text:"270°"}],"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateState("openWB/optional/int_display/rotation",i))},{help:o(()=>e[10]||(e[10]=[a(" Mit dieser Einstellung kann das Display im Uhrzeigersinn gedreht werden, falls erforderlich. Nach einer Änderung ist ein Neustart erforderlich!",-1),m("br",null,null,-1),a(" Diese Einstellung erfordert ein Raspberry Pi Display. Für eine openWB series2 mit integriertem Display muss 0° ausgewählt werden, für eine Standalone mit Display 180°. Anzeigen, welche über HDMI angeschlossen sind, werden nicht unterstützt. ",-1)])),_:1},8,["model-value"]),e[13]||(e[13]=m("hr",null,null,-1)),n(b,null,{default:o(()=>e[11]||(e[11]=[a(" Display Standby ",-1)])),_:1,__:[11]}),n(_,{title:"Ausschaltzeit",min:0,max:12,step:1,"model-value":t.$store.state.mqtt["openWB/optional/int_display/standby"],unit:"Sek",labels:[{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:30,value:30},{label:45,value:45},{label:"1 Min",value:60},{label:"1,5 Min",value:90},{label:"2 Min",value:120},{label:"3 Min",value:180},{label:"4 Min",value:240},{label:"5 Min",value:300},{label:"10 Min",value:600},{label:"Immer an",value:0}],"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateState("openWB/optional/int_display/standby",i))},{help:o(()=>e[12]||(e[12]=[a(" Hier kann eine Zeitspanne angegeben werden, nach der das Display ausgeschaltet wird. ",-1)])),_:1},8,["model-value"])])):c("",!0),t.$store.state.mqtt["openWB/general/extern"]===!0?(p(),d("div",Z,[e[15]||(e[15]=m("hr",null,null,-1)),n(h,{subtype:"info"},{default:o(()=>e[14]||(e[14]=[a(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[14]})])):(p(),d("div",Q,[e[18]||(e[18]=m("hr",null,null,-1)),n(r,{title:"Ladepunkte auf secondary openWB","model-value":t.$store.state.mqtt["openWB/optional/int_display/only_local_charge_points"],buttons:[{buttonValue:!1,text:"Alle",class:"btn-outline-danger"},{buttonValue:!0,text:"Nur Lokale",class:"btn-outline-success"}],"onUpdate:modelValue":e[3]||(e[3]=i=>t.updateState("openWB/optional/int_display/only_local_charge_points",i))},{help:o(()=>e[16]||(e[16]=[a(" Hiermit kann festgelegt werden, ob an angebundenen secondary openWB alle oder nur die jeweils lokalen Ladepunkte angezeigt werden sollen. ",-1)])),_:1},8,["model-value"]),e[19]||(e[19]=m("hr",null,null,-1)),t.$store.state.mqtt["openWB/optional/int_display/theme"]!==void 0?(p(),d("div",X,[n(D,{class:"mb-2",title:"Theme des Displays",groups:u.displayThemeGroupList,"model-value":t.$store.state.mqtt["openWB/optional/int_display/theme"].type,"onUpdate:modelValue":e[4]||(e[4]=i=>u.updateSelectedDisplayTheme(i))},{help:o(()=>e[17]||(e[17]=[a(" Hier können unterschiedliche Display-Anzeigen, s.g. Themes, ausgewählt werden. Die Anzahl der Themes wird sich mit zukünftigen Releases erhöhen. ",-1)])),_:1},8,["groups","model-value"]),t.$store.state.mqtt["openWB/optional/int_display/theme"].type?(p(),f(B,{key:0,"display-theme":t.$store.state.mqtt["openWB/optional/int_display/theme"],"onUpdate:configuration":e[5]||(e[5]=i=>u.updateConfiguration("openWB/optional/int_display/theme",i))},null,8,["display-theme"])):c("",!0)])):c("",!0)]))]),_:1}),n(k,{"form-name":"optionalComponentsForm",onSave:e[6]||(e[6]=i=>t.$emit("save")),onReset:e[7]||(e[7]=i=>t.$emit("reset")),onDefaults:e[8]||(e[8]=i=>t.$emit("defaults"))})])])}const ee=g(H,[["render",Y],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/OptionalComponents.vue"]]),ae=Object.freeze(Object.defineProperty({__proto__:null,default:ee},Symbol.toStringTag,{value:"Module"}));export{j as D,ae as O}; diff --git a/web/settings/assets/OptionalComponents-f8223e02.js b/web/settings/assets/OptionalComponents-f8223e02.js deleted file mode 100644 index 72c034dacd..0000000000 --- a/web/settings/assets/OptionalComponents-f8223e02.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as T,C as $}from"./index-0992d19b.js";import{_ as C}from"./dynamic-import-helper-be004503.js";import{l as O,a6 as S,a7 as V,F as E}from"./vendor-fortawesome-2b3791bb.js";import{_ as g,u as l,l as p,m as d,x as _,E as o,B as a,F as y,G as n,A as m,a2 as q,a3 as N,N as z,z as c}from"./vendor-36bf053b.js";const M={props:{displayTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},j=g(M,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/DisplayThemeConfigMixin.vue"]]),A={name:"DisplayThemeFallback",mixins:[j]},F={class:"display-theme-fallback"},L={key:1};function P(t,e,s,v,w,u){const r=l("openwb-base-alert"),b=l("openwb-base-textarea");return p(),d("div",F,[Object.keys(t.displayTheme.configuration).length==0?(p(),_(r,{key:0,subtype:"info"},{default:o(()=>[a(' Das Display-Theme "'+y(t.displayTheme.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(p(),d("div",L,[n(r,{subtype:"warning"},{default:o(()=>[a(' Es wurde keine Konfigurationsseite für das Display-Theme "'+y(t.displayTheme.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(b,{title:"Konfiguration",subtype:"json","model-value":t.displayTheme.configuration,"onUpdate:modelValue":e[0]||(e[0]=f=>t.updateConfiguration(f,"configuration"))},{help:o(()=>[...e[1]||(e[1]=[a(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),n(r,{subtype:"info"},{default:o(()=>[m("pre",null,y(JSON.stringify(t.displayTheme.configuration,void 0,2)),1)]),_:1})]))])}const U=g(A,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeFallback.vue"]]);O.add(S,V);const x={name:"OpenwbDisplayThemeProxy",components:{FontAwesomeIcon:E},props:{displayTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{getDisplayThemeComponent(){return console.debug(`loading display theme: ${this.displayTheme.type}`),q({loader:()=>C(Object.assign({"./cards/displayTheme.vue":()=>T(()=>import("./displayTheme-a0bde809.js"),["assets/displayTheme-a0bde809.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/index-0992d19b.js","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./colors/displayTheme.vue":()=>T(()=>import("./displayTheme-a10769b7.js"),["assets/displayTheme-a10769b7.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/index-0992d19b.js","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.displayTheme.type}/displayTheme.vue`),errorComponent:U})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function I(t,e,s,v,w,u){const r=l("font-awesome-icon"),b=l("openwb-base-alert"),f=l("openwb-base-heading");return p(),d(z,null,[s.displayTheme.official?(p(),_(b,{key:0,subtype:"success"},{default:o(()=>[n(r,{icon:["fas","certificate"]}),a(' Das ausgewählte Display Theme "'+y(s.displayTheme.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(p(),_(b,{key:1,subtype:"info"},{default:o(()=>[n(r,{icon:["fas","people-group"]}),a(' Das ausgewählte Display Theme "'+y(s.displayTheme.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),n(f,null,{default:o(()=>[a(' Einstellungen für Display Theme "'+y(s.displayTheme.name)+'" ',1)]),_:1}),(p(),_(N(u.getDisplayThemeComponent()),{"display-theme":s.displayTheme,"onUpdate:configuration":e[0]||(e[0]=h=>u.updateConfiguration(h))},null,40,["display-theme"]))],64)}const R=g(x,[["render",I],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeProxy.vue"]]),H={name:"OpenwbOptionalComponentsView",components:{OpenwbDisplayThemeProxy:R},mixins:[$],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/optional/led/active","ToDo/optional/led/instant_blocked","ToDo/optional/led/pv_blocked","ToDo/optional/led/scheduled_blocked","ToDo/optional/led/standby_blocked","ToDo/optional/led/stop_blocked","ToDo/optional/led/instant","ToDo/optional/led/pv","ToDo/optional/led/scheduled","ToDo/optional/led/standby","ToDo/optional/led/stop","openWB/optional/int_display/active","openWB/optional/int_display/on_if_plugged_in","openWB/optional/int_display/only_local_charge_points","openWB/optional/int_display/pin_active","openWB/optional/int_display/pin_code","openWB/optional/int_display/rotation","openWB/optional/int_display/standby","openWB/optional/int_display/theme","openWB/optional/rfid/active","openWB/system/configurable/display_themes"]}},computed:{displayThemeList(){return this.$store.state.mqtt["openWB/system/configurable/display_themes"]},displayThemeGroupList(){var e;let t=[{label:"openWB",options:[]},{label:"Community",options:[]}];return(e=this.displayThemeList)==null||e.forEach(s=>{s.official===!0?t[0].options.push(s):t[1].options.push(s)}),t}},methods:{getDisplayThemeDefaults(t){const e=this.displayThemeList.find(s=>s.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for display theme type!",t),{})},updateSelectedDisplayTheme(t){this.updateState("openWB/optional/int_display/theme",this.getDisplayThemeDefaults(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},J={class:"optionalComponents"},G={name:"optionalComponentsForm"},K={key:0},Z={key:1},Q={key:2},X={key:0};function Y(t,e,s,v,w,u){const r=l("openwb-base-button-group-input"),b=l("openwb-base-heading"),f=l("openwb-base-range-input"),h=l("openwb-base-alert"),D=l("openwb-base-select-input"),B=l("openwb-display-theme-proxy"),W=l("openwb-base-card"),k=l("openwb-base-submit-buttons");return p(),d("div",J,[m("form",G,[n(W,{title:"Display (intern oder extern)"},{default:o(()=>[n(r,{title:"Integriertes Display","model-value":t.$store.state.mqtt["openWB/optional/int_display/active"],buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateState("openWB/optional/int_display/active",i))},{help:o(()=>[...e[9]||(e[9]=[a(' Je nach Bestellung kann die openWB mit oder ohne Display geliefert worden sein. Auch die Variante "Standalone" bietet beide Optionen. Bitte prüfe zuerst die Hardwareausstattung deiner openWB (z.B. Lieferschein). ',-1)])]),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/optional/int_display/active"]==!0?(p(),d("div",K,[n(r,{title:"Orientierung","model-value":t.$store.state.mqtt["openWB/optional/int_display/rotation"],buttons:[{buttonValue:0,text:"0°"},{buttonValue:90,text:"90°"},{buttonValue:180,text:"180°"},{buttonValue:270,text:"270°"}],"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateState("openWB/optional/int_display/rotation",i))},{help:o(()=>[...e[10]||(e[10]=[a(" Mit dieser Einstellung kann das Display im Uhrzeigersinn gedreht werden, falls erforderlich. Nach einer Änderung ist ein Neustart erforderlich!",-1),m("br",null,null,-1),a(" Diese Einstellung erfordert ein Raspberry Pi Display. Für eine openWB series2 mit integriertem Display muss 0° ausgewählt werden, für eine Standalone mit Display 180°. Anzeigen, welche über HDMI angeschlossen sind, werden nicht unterstützt. ",-1)])]),_:1},8,["model-value"]),e[13]||(e[13]=m("hr",null,null,-1)),n(b,null,{default:o(()=>[...e[11]||(e[11]=[a(" Display Standby ",-1)])]),_:1}),n(f,{title:"Ausschaltzeit",min:0,max:12,step:1,"model-value":t.$store.state.mqtt["openWB/optional/int_display/standby"],unit:"Sek",labels:[{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:30,value:30},{label:45,value:45},{label:"1 Min",value:60},{label:"1,5 Min",value:90},{label:"2 Min",value:120},{label:"3 Min",value:180},{label:"4 Min",value:240},{label:"5 Min",value:300},{label:"10 Min",value:600},{label:"Immer an",value:0}],"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateState("openWB/optional/int_display/standby",i))},{help:o(()=>[...e[12]||(e[12]=[a(" Hier kann eine Zeitspanne angegeben werden, nach der das Display ausgeschaltet wird. ",-1)])]),_:1},8,["model-value"])])):c("",!0),t.$store.state.mqtt["openWB/general/extern"]===!0?(p(),d("div",Z,[e[15]||(e[15]=m("hr",null,null,-1)),n(h,{subtype:"info"},{default:o(()=>[...e[14]||(e[14]=[a(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(p(),d("div",Q,[e[18]||(e[18]=m("hr",null,null,-1)),n(r,{title:"Ladepunkte auf secondary openWB","model-value":t.$store.state.mqtt["openWB/optional/int_display/only_local_charge_points"],buttons:[{buttonValue:!1,text:"Alle",class:"btn-outline-danger"},{buttonValue:!0,text:"Nur Lokale",class:"btn-outline-success"}],"onUpdate:modelValue":e[3]||(e[3]=i=>t.updateState("openWB/optional/int_display/only_local_charge_points",i))},{help:o(()=>[...e[16]||(e[16]=[a(" Hiermit kann festgelegt werden, ob an angebundenen secondary openWB alle oder nur die jeweils lokalen Ladepunkte angezeigt werden sollen. ",-1)])]),_:1},8,["model-value"]),e[19]||(e[19]=m("hr",null,null,-1)),t.$store.state.mqtt["openWB/optional/int_display/theme"]!==void 0?(p(),d("div",X,[n(D,{class:"mb-2",title:"Theme des Displays",groups:u.displayThemeGroupList,"model-value":t.$store.state.mqtt["openWB/optional/int_display/theme"].type,"onUpdate:modelValue":e[4]||(e[4]=i=>u.updateSelectedDisplayTheme(i))},{help:o(()=>[...e[17]||(e[17]=[a(" Hier können unterschiedliche Display-Anzeigen, s.g. Themes, ausgewählt werden. Die Anzahl der Themes wird sich mit zukünftigen Releases erhöhen. ",-1)])]),_:1},8,["groups","model-value"]),t.$store.state.mqtt["openWB/optional/int_display/theme"].type?(p(),_(B,{key:0,"display-theme":t.$store.state.mqtt["openWB/optional/int_display/theme"],"onUpdate:configuration":e[5]||(e[5]=i=>u.updateConfiguration("openWB/optional/int_display/theme",i))},null,8,["display-theme"])):c("",!0)])):c("",!0)]))]),_:1}),n(k,{"form-name":"optionalComponentsForm",onSave:e[6]||(e[6]=i=>t.$emit("save")),onReset:e[7]||(e[7]=i=>t.$emit("reset")),onDefaults:e[8]||(e[8]=i=>t.$emit("defaults"))})])])}const ee=g(H,[["render",Y],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/OptionalComponents.vue"]]),ae=Object.freeze(Object.defineProperty({__proto__:null,default:ee},Symbol.toStringTag,{value:"Module"}));export{j as D,ae as O}; diff --git a/web/settings/assets/PVChargeConfig-9ed443e9.js b/web/settings/assets/PVChargeConfig-9ed443e9.js deleted file mode 100644 index 647e5b9efa..0000000000 --- a/web/settings/assets/PVChargeConfig-9ed443e9.js +++ /dev/null @@ -1 +0,0 @@ -import{C as S}from"./index-0992d19b.js";import{l as B,_ as z,a8 as V,a9 as k,F as y}from"./vendor-fortawesome-2b3791bb.js";import{_ as E,u as d,l as g,m as p,A as o,G as i,E as a,B as t,F as C,x as v,z as b}from"./vendor-36bf053b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";B.add(z,V,k);const q={name:"OpenwbPVChargeConfigView",components:{FontAwesomeIcon:y},mixins:[S],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/chargemode_config/pv_charging/control_range","openWB/general/chargemode_config/pv_charging/feed_in_yield","openWB/general/chargemode_config/pv_charging/switch_on_threshold","openWB/general/chargemode_config/pv_charging/switch_on_delay","openWB/general/chargemode_config/pv_charging/switch_off_threshold","openWB/general/chargemode_config/pv_charging/switch_off_delay","openWB/general/chargemode_config/pv_charging/phases_to_use","openWB/general/chargemode_config/pv_charging/bat_mode","openWB/general/chargemode_config/pv_charging/bat_power_reserve","openWB/general/chargemode_config/pv_charging/bat_power_reserve_active","openWB/general/chargemode_config/pv_charging/bat_power_discharge","openWB/general/chargemode_config/pv_charging/bat_power_discharge_active","openWB/general/chargemode_config/pv_charging/min_bat_soc"],calculatedControlMode:void 0}},computed:{controlMode:{get(){if(this.calculatedControlMode!==void 0)return this.calculatedControlMode;const n="openWB/general/chargemode_config/pv_charging/control_range";let e=this.$store.state.mqtt[n];var u="individual";return typeof e<"u"&&(e[0]===-230&&e[1]===0?u="export":e[0]===0&&e[1]===230?u="import":e[0]===-115&&e[1]===115?u="balanced":u="individual"),u},set(n){const e="openWB/general/chargemode_config/pv_charging/control_range";switch(this.calculatedControlMode=n,n){case"export":this.updateState(e,[-230,0]);break;case"import":this.updateState(e,[0,230]);break;case"balanced":this.updateState(e,[-115,115]);break}}},chargingSwitchRange:{get(){return this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_threshold"]+this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]}},batMode:{get(){return this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_mode"]},set(n){this.updateState("openWB/general/chargemode_config/pv_charging/bat_mode",n)}}},watch:{controlMode(n){this.calculatedControlMode=n}}},M={class:"pvChargeConfig"},L={name:"pvChargeConfigForm"},P={key:0},U={key:1},R={key:0},$={key:1},A={key:0};function F(n,e,u,D,N,s){const m=d("openwb-base-alert"),c=d("openwb-base-button-group-input"),l=d("openwb-base-number-input"),f=d("openwb-base-card"),h=d("font-awesome-icon"),w=d("openwb-base-range-input"),_=d("openwb-base-heading"),W=d("openwb-base-submit-buttons");return g(),p("div",M,[o("form",L,[i(f,{title:"Regelparameter"},{default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(g(),p("div",P,[i(m,{subtype:"info"},{default:a(()=>[...e[17]||(e[17]=[t(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(g(),p("div",U,[i(c,{modelValue:s.controlMode,"onUpdate:modelValue":e[0]||(e[0]=r=>s.controlMode=r),title:"Regelmodus",buttons:[{buttonValue:"export",text:"Einspeisung"},{buttonValue:"import",text:"Bezug"},{buttonValue:"balanced",text:"Ausgewogen"},{buttonValue:"individual",text:"Individuell"}]},{help:a(()=>[...e[18]||(e[18]=[t(" Die Ladeleistung kann nicht mit absoluter Genauigkeit eingestellt werden, sodass am EVU-Punkt nicht auf exakt 0W geregelt werden kann. Der Regelmodus legt fest, ob diese Differenz am EVU-Punkt (ca. 200-300W) zu geringem Netzbezug oder geringer Netzeinspeisung führen soll. Liegt die Leistung am EVU-Punkt innerhalb des Regelbereichs, wird nicht nachgeregelt.",-1),o("br",null,null,-1),t(" Bei Speichervorrang erzeugt die Regelung bei Bedarf unabhängig vom eingestellten Regelmodus Einspeisung, damit der Speicher seine Ladeleistung erhöht.",-1),o("br",null,null,-1),t(" Achtung: bei unlogischen Einstellungen kann die Regelung gestört werden! Im Zweifel bitte unsere vordefinierten Modi verwenden. ",-1)])]),_:1},8,["modelValue"]),i(l,{disabled:s.controlMode!=="individual",readonly:s.controlMode!=="individual",title:"Minimum",step:.005,unit:"kW",required:"","model-value":Array.isArray(n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"])?n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"][0]/1e3:void 0,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/control_range",r*1e3,"0"))},{help:a(()=>[...e[19]||(e[19]=[t(" Untere Grenze des Regelbereichs. ",-1)])]),_:1},8,["disabled","readonly","model-value"]),i(l,{disabled:s.controlMode!=="individual",readonly:s.controlMode!=="individual",title:"Maximum",step:.005,unit:"kW",required:"","model-value":Array.isArray(n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"])?n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"][1]/1e3:void 0,"onUpdate:modelValue":e[2]||(e[2]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/control_range",r*1e3,"1"))},{help:a(()=>[...e[20]||(e[20]=[t(" Obere Grenze des Regelbereichs. ",-1)])]),_:1},8,["disabled","readonly","model-value"]),e[27]||(e[27]=o("hr",null,null,-1)),i(m,{subtype:s.chargingSwitchRange<1400?"danger":"info"},{default:a(()=>[t(" Die Differenzleistung zw. Ein- und Abschaltschwelle sollte mind. 1,4 kW (230V x 6A) betragen. (Konfiguriert: "+C((s.chargingSwitchRange/1e3).toLocaleString(void 0))+" kW) ",1)]),_:1},8,["subtype"]),i(l,{title:"Einschaltschwelle",min:0,step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_threshold"]/1e3,"onUpdate:modelValue":e[3]||(e[3]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_on_threshold",r*1e3))},{help:a(()=>[...e[21]||(e[21]=[t(" Wird der Regelbereich in Richtung Einspeisung um diese Leistung überschritten, so wird der Ladevorgang gestartet.",-1),o("br",null,null,-1),t(" Dieser Wert wird pro Phase genutzt und ist daher immer für eine Phase anzugeben. ",-1)])]),_:1},8,["model-value"]),i(l,{title:"Wartezeit Ladestart & Phasenzuschaltung",min:0,step:1,unit:"s",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_delay"],"onUpdate:modelValue":e[4]||(e[4]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_on_delay",r))},{help:a(()=>[...e[22]||(e[22]=[t(" Die Einschaltschwelle muss für die hier angegebene Zeit dauerhaft überschritten werden, bevor ein Ladevorgang gestartet wird.",-1),o("br",null,null,-1),t(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird weiter geladen, wenn die Abschaltschwelle nicht unterschritten wird.",-1),o("br",null,null,-1),t(" Wenn die Pufferzeit zwischen zwei automatischen Phasenumschaltungen abgelaufen ist, wird die hier eingestellte Wartezeit abgewartet. Wenn die Pufferzeit zwischen zwei Umschaltungen noch nicht erreicht ist, wird die längere der beiden Zeiten abgewartet: entweder die verbleibende Pufferzeit oder die Wartezeit. ",-1)])]),_:1},8,["model-value"]),e[28]||(e[28]=o("hr",null,null,-1)),i(m,{subtype:n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]/1e3>0?"danger":"info"},{default:a(()=>[...e[23]||(e[23]=[t(" Ist ein Speicher im System vorhanden, kann eine Abschaltschwelle größer Null zur Speicherentladung führen. (Siehe Fragezeichentext) ",-1)])]),_:1},8,["subtype"]),i(l,{title:"Abschaltschwelle",step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]/1e3,"onUpdate:modelValue":e[5]||(e[5]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_off_threshold",r*1e3))},{help:a(()=>[...e[24]||(e[24]=[t(" Übersteigt der Netzbezug die Abschaltschwelle, wird die Ladung beendet. Eine Abschaltschwelle, die Netzbezug erlaubt, führt in einem System ohne steuerbaren Speicher zur Entladung des Speichers. Der Speicher wird dann auch über den eingestellten Mindest-SoC hinaus entladen (siehe Speicherbeachtung unten). ",-1)])]),_:1},8,["model-value"]),i(l,{title:"Wartezeit Ladeende & Phasenreduktion",min:0,step:1,unit:"s",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_delay"],"onUpdate:modelValue":e[6]||(e[6]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_off_delay",r))},{help:a(()=>[...e[25]||(e[25]=[t(" Die Abschaltschwelle muss für die hier angegebene Zeit dauerhaft unterschritten werden, bevor ein Ladevorgang beendet wird.",-1),o("br",null,null,-1),t(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird die Ladung sofort beendet, wenn die Abschaltschwelle unterschritten wird.",-1),o("br",null,null,-1),t(" Wenn die Pufferzeit zwischen zwei automatischen Phasenumschaltungen abgelaufen ist, wird die hier eingestellte Wartezeit abgewartet. Wenn die Pufferzeit zwischen zwei Umschaltungen noch nicht erreicht ist, wird die längere der beiden Zeiten abgewartet: entweder die verbleibende Pufferzeit oder die Wartezeit. ",-1)])]),_:1},8,["model-value"]),e[29]||(e[29]=o("hr",null,null,-1)),i(l,{title:"Regelpunkt Einspeisegrenze",min:0,step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/feed_in_yield"]/1e3,"onUpdate:modelValue":e[7]||(e[7]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/feed_in_yield",r*1e3))},{help:a(()=>[...e[26]||(e[26]=[t(" Ein Wert größer 0kW bewirkt, dass weniger PV-Leistung zum Laden benutzt wird.",-1),o("br",null,null,-1),t(" Die Nutzung dieser Option ergibt nur Sinn, wenn ein Wechselrichter mit separatem Smart-Meter am EVU-Punkt verbaut ist (nicht der originale Zähler des Versorgers!), welches eine dynamische Begrenzung der Einspeiseleistung am EVU-Punkt durch den PV-Wechselrichter bietet (bitte bei ev. Problemen immer vorab prüfen lassen).",-1),o("br",null,null,-1),t(' Ist eine Einspeiseleistungsreduzierung verbaut (in vielen älteren, privaten Einspeiseverträgen z.B. als 70% Regelung bekannt), wird mit Eingabe des Wertes "Regelpunkt Einspeisegrenze" ein eigenverbrauchsoptimiertes Fahrzeugladen mit PV-Überschussenergie möglich, die sonst abgeregelt werden würde (Nutzung der PV-Peaks).',-1),o("br",null,null,-1),t(' Wird in einem "Ladeprofil" die Option "Einspeisegrenze beachten" eingeschaltet, so wird der Regelpunkt auf diesen Wert verschoben und die Ladung startet erst, wenn der hinterlegte Wert "Regelpunkt Einspeisegrenze" überschritten wird.',-1),o("br",null,null,-1),t(" Zur optimalen Eigenverbrauchssteuerung sollte der Wert einige hundert Watt UNTER der im Wechselrichter hinterlegten EVU-Einspeiseleistungsgrenze liegen, damit openWB die Ladung freigibt, BEVOR der Wechselrichter begrenzt wird. ",-1)])]),_:1},8,["model-value"])]))]),_:1}),i(f,{title:"Speicher-Beachtung"},{default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(g(),p("div",R,[i(m,{subtype:"info"},{default:a(()=>[...e[30]||(e[30]=[t(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(g(),p("div",$,[i(c,{modelValue:s.batMode,"onUpdate:modelValue":e[8]||(e[8]=r=>s.batMode=r),title:"Laden mit Überschuss",buttons:[{buttonValue:"ev_mode"},{buttonValue:"bat_mode"},{buttonValue:"min_soc_bat_mode"}]},{"label-ev_mode":a(()=>[i(h,{icon:["fas","car-side"]}),e[31]||(e[31]=t(" Fahrzeuge ",-1))]),"label-bat_mode":a(()=>[i(h,{icon:["fas","fa-car-battery"]}),e[32]||(e[32]=t(" Speicher ",-1))]),"label-min_soc_bat_mode":a(()=>[i(h,{icon:["fas","fa-battery-half"]}),e[33]||(e[33]=t(" Mindest-SoC des Speichers ",-1))]),help:a(()=>[e[40]||(e[40]=o("p",null,' Sofern ein Hausstromspeicher (im Folgenden "Speicher" genannt) im Energiesystem verbaut ist, kann dieser beim Fahrzeugladen mit berücksichtigt werden. Dies erfolgt passiv über die Berücksichtigung der Speicherleistungswerte und des Speicher-SoC. Eine aktive Speichersteuerung durch openWB ist aktuell mangels Speicherschnittstelle nicht möglich. ',-1)),o("p",null,[e[34]||(e[34]=t(' Bei Auswahl " ',-1)),i(h,{icon:["fas","car-side"]}),e[35]||(e[35]=t(' Fahrzeuge" wird der gesamte Überschuss in das EV geladen. Ist die maximale Ladeleistung der Fahrzeuge erreicht und es wird eingespeist, wird dieser Überschuss in den Speicher geladen. ',-1))]),o("p",null,[e[36]||(e[36]=t(' Bei Auswahl " ',-1)),i(h,{icon:["fas","fa-car-battery"]}),e[37]||(e[37]=t(' Speicher" wird der gesamte Überschuss in den Speicher geladen. Ist die maximale Ladeleistung des Speichers erreicht und es wird eingespeist, wird dieser Überschuss unter Beachtung der Einschaltschwelle in die Fahrzeuge geladen. ',-1))]),o("p",null,[e[38]||(e[38]=t(' Bei Auswahl " ',-1)),i(h,{icon:["fas","fa-battery-half"]}),e[39]||(e[39]=t(' Mindest-SoC des Speichers" wird der Überschuss bis zum Mindest-SoC in den Speicher geladen. Ist die maximale Ladeleistung des Speichers erreicht und es wird eingespeist, wird dieser Überschuss in die Fahrzeuge geladen. Wird der Mindest-SoC überschritten, wird der Überschuss ins Fahrzeug geladen. ',-1))])]),_:1},8,["modelValue"]),s.batMode==="min_soc_bat_mode"?(g(),p("div",A,[i(w,{title:"Mindest-SoC des Speichers",min:0,max:100,step:1,unit:"%",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"],"onUpdate:modelValue":e[9]||(e[9]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/min_bat_soc",r))},null,8,["model-value"]),i(_,null,{default:a(()=>[...e[41]||(e[41]=[t(" Speicher-SoC unterhalb Mindest-SoC ",-1)])]),_:1}),i(c,{title:"Ladeleistung für Speicher reservieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"],"onUpdate:modelValue":e[10]||(e[10]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_reserve_active",r))},{help:a(()=>[...e[42]||(e[42]=[t(" ACHTUNG: Der hier eingestellte Wert darf die maximale Ladeleistung des Speichers nicht überschreiten.",-1),o("br",null,null,-1),t(" Wird der Mindest-SoC des Speichers nicht erreicht, wird der Speicher mit der hier eingestellten Leistung geladen. Mit dem verbleibenden Überschuss werden die Fahrzeuge geladen. ",-1)])]),_:1},8,["model-value"]),n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"]?(g(),v(l,{key:0,title:"Reserve Ladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve"]/1e3,"onUpdate:modelValue":e[11]||(e[11]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_reserve",r*1e3))},null,8,["model-value"])):b("",!0),i(_,null,{default:a(()=>[...e[43]||(e[43]=[t(" Speicher-SoC oberhalb Mindest-SoC ",-1)])]),_:1}),i(c,{title:"Entladung des Speichers erlauben",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"],"onUpdate:modelValue":e[12]||(e[12]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_discharge_active",r))},{help:a(()=>[...e[44]||(e[44]=[t(" Wird der Mindest-SoC überschritten, wird der Überschuss ins Fahrzeug geladen und der Speicher mit der hier eingestellten Leistung in die Fahrzeuge entladen. Die Entladeleistung des Speichers wird dem Überschuss zum Erreichen der Einschaltschwelle hinzugerechnet. ",-1)])]),_:1},8,["model-value"]),n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"]?(g(),v(l,{key:1,title:"Erlaubte Entladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge"]/1e3,"onUpdate:modelValue":e[13]||(e[13]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_discharge",r*1e3))},null,8,["model-value"])):b("",!0)])):b("",!0)]))]),_:1}),i(W,{"form-name":"pvChargeConfigForm",onSave:e[14]||(e[14]=r=>n.$emit("save")),onReset:e[15]||(e[15]=r=>n.$emit("reset")),onDefaults:e[16]||(e[16]=r=>n.$emit("defaults"))})])])}const K=E(q,[["render",F],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/PVChargeConfig.vue"]]);export{K as default}; diff --git a/web/settings/assets/PVChargeConfig-b6b84699.js b/web/settings/assets/PVChargeConfig-b6b84699.js new file mode 100644 index 0000000000..1f62562507 --- /dev/null +++ b/web/settings/assets/PVChargeConfig-b6b84699.js @@ -0,0 +1 @@ +import{C as S}from"./index-8dd8e083.js";import{l as B,_ as z,a8 as V,a9 as k,F as y}from"./vendor-fortawesome-a02b6813.js";import{_ as E,u as d,l as g,m as p,A as o,G as i,E as a,B as t,F as C,x as v,z as b}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";B.add(z,V,k);const q={name:"OpenwbPVChargeConfigView",components:{FontAwesomeIcon:y},mixins:[S],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/chargemode_config/pv_charging/control_range","openWB/general/chargemode_config/pv_charging/feed_in_yield","openWB/general/chargemode_config/pv_charging/switch_on_threshold","openWB/general/chargemode_config/pv_charging/switch_on_delay","openWB/general/chargemode_config/pv_charging/switch_off_threshold","openWB/general/chargemode_config/pv_charging/switch_off_delay","openWB/general/chargemode_config/pv_charging/phases_to_use","openWB/general/chargemode_config/pv_charging/bat_mode","openWB/general/chargemode_config/pv_charging/bat_power_reserve","openWB/general/chargemode_config/pv_charging/bat_power_reserve_active","openWB/general/chargemode_config/pv_charging/bat_power_discharge","openWB/general/chargemode_config/pv_charging/bat_power_discharge_active","openWB/general/chargemode_config/pv_charging/min_bat_soc"],calculatedControlMode:void 0}},computed:{controlMode:{get(){if(this.calculatedControlMode!==void 0)return this.calculatedControlMode;const n="openWB/general/chargemode_config/pv_charging/control_range";let e=this.$store.state.mqtt[n];var u="individual";return typeof e<"u"&&(e[0]===-230&&e[1]===0?u="export":e[0]===0&&e[1]===230?u="import":e[0]===-115&&e[1]===115?u="balanced":u="individual"),u},set(n){const e="openWB/general/chargemode_config/pv_charging/control_range";switch(this.calculatedControlMode=n,n){case"export":this.updateState(e,[-230,0]);break;case"import":this.updateState(e,[0,230]);break;case"balanced":this.updateState(e,[-115,115]);break}}},chargingSwitchRange:{get(){return this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_threshold"]+this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]}},batMode:{get(){return this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_mode"]},set(n){this.updateState("openWB/general/chargemode_config/pv_charging/bat_mode",n)}}},watch:{controlMode(n){this.calculatedControlMode=n}}},M={class:"pvChargeConfig"},L={name:"pvChargeConfigForm"},P={key:0},U={key:1},R={key:0},$={key:1},A={key:0};function F(n,e,u,D,N,s){const m=d("openwb-base-alert"),c=d("openwb-base-button-group-input"),l=d("openwb-base-number-input"),f=d("openwb-base-card"),h=d("font-awesome-icon"),w=d("openwb-base-range-input"),_=d("openwb-base-heading"),W=d("openwb-base-submit-buttons");return g(),p("div",M,[o("form",L,[i(f,{title:"Regelparameter"},{default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(g(),p("div",P,[i(m,{subtype:"info"},{default:a(()=>e[17]||(e[17]=[t(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[17]})])):(g(),p("div",U,[i(c,{modelValue:s.controlMode,"onUpdate:modelValue":e[0]||(e[0]=r=>s.controlMode=r),title:"Regelmodus",buttons:[{buttonValue:"export",text:"Einspeisung"},{buttonValue:"import",text:"Bezug"},{buttonValue:"balanced",text:"Ausgewogen"},{buttonValue:"individual",text:"Individuell"}]},{help:a(()=>e[18]||(e[18]=[t(" Die Ladeleistung kann nicht mit absoluter Genauigkeit eingestellt werden, sodass am EVU-Punkt nicht auf exakt 0W geregelt werden kann. Der Regelmodus legt fest, ob diese Differenz am EVU-Punkt (ca. 200-300W) zu geringem Netzbezug oder geringer Netzeinspeisung führen soll. Liegt die Leistung am EVU-Punkt innerhalb des Regelbereichs, wird nicht nachgeregelt.",-1),o("br",null,null,-1),t(" Bei Speichervorrang erzeugt die Regelung bei Bedarf unabhängig vom eingestellten Regelmodus Einspeisung, damit der Speicher seine Ladeleistung erhöht.",-1),o("br",null,null,-1),t(" Achtung: bei unlogischen Einstellungen kann die Regelung gestört werden! Im Zweifel bitte unsere vordefinierten Modi verwenden. ",-1)])),_:1},8,["modelValue"]),i(l,{disabled:s.controlMode!=="individual",readonly:s.controlMode!=="individual",title:"Minimum",step:.005,unit:"kW",required:"","model-value":Array.isArray(n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"])?n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"][0]/1e3:void 0,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/control_range",r*1e3,"0"))},{help:a(()=>e[19]||(e[19]=[t(" Untere Grenze des Regelbereichs. ",-1)])),_:1},8,["disabled","readonly","model-value"]),i(l,{disabled:s.controlMode!=="individual",readonly:s.controlMode!=="individual",title:"Maximum",step:.005,unit:"kW",required:"","model-value":Array.isArray(n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"])?n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"][1]/1e3:void 0,"onUpdate:modelValue":e[2]||(e[2]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/control_range",r*1e3,"1"))},{help:a(()=>e[20]||(e[20]=[t(" Obere Grenze des Regelbereichs. ",-1)])),_:1},8,["disabled","readonly","model-value"]),e[27]||(e[27]=o("hr",null,null,-1)),i(m,{subtype:s.chargingSwitchRange<1400?"danger":"info"},{default:a(()=>[t(" Die Differenzleistung zw. Ein- und Abschaltschwelle sollte mind. 1,4 kW (230V x 6A) betragen. (Konfiguriert: "+C((s.chargingSwitchRange/1e3).toLocaleString(void 0))+" kW) ",1)]),_:1},8,["subtype"]),i(l,{title:"Einschaltschwelle",min:0,step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_threshold"]/1e3,"onUpdate:modelValue":e[3]||(e[3]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_on_threshold",r*1e3))},{help:a(()=>e[21]||(e[21]=[t(" Wird der Regelbereich in Richtung Einspeisung um diese Leistung überschritten, so wird der Ladevorgang gestartet.",-1),o("br",null,null,-1),t(" Dieser Wert wird pro Phase genutzt und ist daher immer für eine Phase anzugeben. ",-1)])),_:1},8,["model-value"]),i(l,{title:"Wartezeit Ladestart & Phasenzuschaltung",min:0,step:1,unit:"s",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_delay"],"onUpdate:modelValue":e[4]||(e[4]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_on_delay",r))},{help:a(()=>e[22]||(e[22]=[t(" Die Einschaltschwelle muss für die hier angegebene Zeit dauerhaft überschritten werden, bevor ein Ladevorgang gestartet wird.",-1),o("br",null,null,-1),t(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird weiter geladen, wenn die Abschaltschwelle nicht unterschritten wird.",-1),o("br",null,null,-1),t(" Wenn die Pufferzeit zwischen zwei automatischen Phasenumschaltungen abgelaufen ist, wird die hier eingestellte Wartezeit abgewartet. Wenn die Pufferzeit zwischen zwei Umschaltungen noch nicht erreicht ist, wird die längere der beiden Zeiten abgewartet: entweder die verbleibende Pufferzeit oder die Wartezeit. ",-1)])),_:1},8,["model-value"]),e[28]||(e[28]=o("hr",null,null,-1)),i(m,{subtype:n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]/1e3>0?"danger":"info"},{default:a(()=>e[23]||(e[23]=[t(" Ist ein Speicher im System vorhanden, kann eine Abschaltschwelle größer Null zur Speicherentladung führen. (Siehe Fragezeichentext) ",-1)])),_:1,__:[23]},8,["subtype"]),i(l,{title:"Abschaltschwelle",step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]/1e3,"onUpdate:modelValue":e[5]||(e[5]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_off_threshold",r*1e3))},{help:a(()=>e[24]||(e[24]=[t(" Übersteigt der Netzbezug die Abschaltschwelle, wird die Ladung beendet. Eine Abschaltschwelle, die Netzbezug erlaubt, führt in einem System ohne steuerbaren Speicher zur Entladung des Speichers. Der Speicher wird dann auch über den eingestellten Mindest-SoC hinaus entladen (siehe Speicherbeachtung unten). ",-1)])),_:1},8,["model-value"]),i(l,{title:"Wartezeit Ladeende & Phasenreduktion",min:0,step:1,unit:"s",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_delay"],"onUpdate:modelValue":e[6]||(e[6]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_off_delay",r))},{help:a(()=>e[25]||(e[25]=[t(" Die Abschaltschwelle muss für die hier angegebene Zeit dauerhaft unterschritten werden, bevor ein Ladevorgang beendet wird.",-1),o("br",null,null,-1),t(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird die Ladung sofort beendet, wenn die Abschaltschwelle unterschritten wird.",-1),o("br",null,null,-1),t(" Wenn die Pufferzeit zwischen zwei automatischen Phasenumschaltungen abgelaufen ist, wird die hier eingestellte Wartezeit abgewartet. Wenn die Pufferzeit zwischen zwei Umschaltungen noch nicht erreicht ist, wird die längere der beiden Zeiten abgewartet: entweder die verbleibende Pufferzeit oder die Wartezeit. ",-1)])),_:1},8,["model-value"]),e[29]||(e[29]=o("hr",null,null,-1)),i(l,{title:"Regelpunkt Einspeisegrenze",min:0,step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/feed_in_yield"]/1e3,"onUpdate:modelValue":e[7]||(e[7]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/feed_in_yield",r*1e3))},{help:a(()=>e[26]||(e[26]=[t(" Ein Wert größer 0kW bewirkt, dass weniger PV-Leistung zum Laden benutzt wird.",-1),o("br",null,null,-1),t(" Die Nutzung dieser Option ergibt nur Sinn, wenn ein Wechselrichter mit separatem Smart-Meter am EVU-Punkt verbaut ist (nicht der originale Zähler des Versorgers!), welches eine dynamische Begrenzung der Einspeiseleistung am EVU-Punkt durch den PV-Wechselrichter bietet (bitte bei ev. Problemen immer vorab prüfen lassen).",-1),o("br",null,null,-1),t(' Ist eine Einspeiseleistungsreduzierung verbaut (in vielen älteren, privaten Einspeiseverträgen z.B. als 70% Regelung bekannt), wird mit Eingabe des Wertes "Regelpunkt Einspeisegrenze" ein eigenverbrauchsoptimiertes Fahrzeugladen mit PV-Überschussenergie möglich, die sonst abgeregelt werden würde (Nutzung der PV-Peaks).',-1),o("br",null,null,-1),t(' Wird in einem "Ladeprofil" die Option "Einspeisegrenze beachten" eingeschaltet, so wird der Regelpunkt auf diesen Wert verschoben und die Ladung startet erst, wenn der hinterlegte Wert "Regelpunkt Einspeisegrenze" überschritten wird.',-1),o("br",null,null,-1),t(" Zur optimalen Eigenverbrauchssteuerung sollte der Wert einige hundert Watt UNTER der im Wechselrichter hinterlegten EVU-Einspeiseleistungsgrenze liegen, damit openWB die Ladung freigibt, BEVOR der Wechselrichter begrenzt wird. ",-1)])),_:1},8,["model-value"])]))]),_:1}),i(f,{title:"Speicher-Beachtung"},{default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(g(),p("div",R,[i(m,{subtype:"info"},{default:a(()=>e[30]||(e[30]=[t(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[30]})])):(g(),p("div",$,[i(c,{modelValue:s.batMode,"onUpdate:modelValue":e[8]||(e[8]=r=>s.batMode=r),title:"Laden mit Überschuss",buttons:[{buttonValue:"ev_mode"},{buttonValue:"bat_mode"},{buttonValue:"min_soc_bat_mode"}]},{"label-ev_mode":a(()=>[i(h,{icon:["fas","car-side"]}),e[31]||(e[31]=t(" Fahrzeuge ",-1))]),"label-bat_mode":a(()=>[i(h,{icon:["fas","fa-car-battery"]}),e[32]||(e[32]=t(" Speicher ",-1))]),"label-min_soc_bat_mode":a(()=>[i(h,{icon:["fas","fa-battery-half"]}),e[33]||(e[33]=t(" Mindest-SoC des Speichers ",-1))]),help:a(()=>[e[40]||(e[40]=o("p",null,' Sofern ein Hausstromspeicher (im Folgenden "Speicher" genannt) im Energiesystem verbaut ist, kann dieser beim Fahrzeugladen mit berücksichtigt werden. Dies erfolgt passiv über die Berücksichtigung der Speicherleistungswerte und des Speicher-SoC. Eine aktive Speichersteuerung durch openWB ist aktuell mangels Speicherschnittstelle nicht möglich. ',-1)),o("p",null,[e[34]||(e[34]=t(' Bei Auswahl " ',-1)),i(h,{icon:["fas","car-side"]}),e[35]||(e[35]=t(' Fahrzeuge" wird der gesamte Überschuss in das EV geladen. Ist die maximale Ladeleistung der Fahrzeuge erreicht und es wird eingespeist, wird dieser Überschuss in den Speicher geladen. ',-1))]),o("p",null,[e[36]||(e[36]=t(' Bei Auswahl " ',-1)),i(h,{icon:["fas","fa-car-battery"]}),e[37]||(e[37]=t(' Speicher" wird der gesamte Überschuss in den Speicher geladen. Ist die maximale Ladeleistung des Speichers erreicht und es wird eingespeist, wird dieser Überschuss unter Beachtung der Einschaltschwelle in die Fahrzeuge geladen. ',-1))]),o("p",null,[e[38]||(e[38]=t(' Bei Auswahl " ',-1)),i(h,{icon:["fas","fa-battery-half"]}),e[39]||(e[39]=t(' Mindest-SoC des Speichers" wird der Überschuss bis zum Mindest-SoC in den Speicher geladen. Ist die maximale Ladeleistung des Speichers erreicht und es wird eingespeist, wird dieser Überschuss in die Fahrzeuge geladen. Wird der Mindest-SoC überschritten, wird der Überschuss ins Fahrzeug geladen. ',-1))])]),_:1},8,["modelValue"]),s.batMode==="min_soc_bat_mode"?(g(),p("div",A,[i(w,{title:"Mindest-SoC des Speichers",min:0,max:100,step:1,unit:"%",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"],"onUpdate:modelValue":e[9]||(e[9]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/min_bat_soc",r))},null,8,["model-value"]),i(_,null,{default:a(()=>e[41]||(e[41]=[t(" Speicher-SoC unterhalb Mindest-SoC ",-1)])),_:1,__:[41]}),i(c,{title:"Ladeleistung für Speicher reservieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"],"onUpdate:modelValue":e[10]||(e[10]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_reserve_active",r))},{help:a(()=>e[42]||(e[42]=[t(" ACHTUNG: Der hier eingestellte Wert darf die maximale Ladeleistung des Speichers nicht überschreiten.",-1),o("br",null,null,-1),t(" Wird der Mindest-SoC des Speichers nicht erreicht, wird der Speicher mit der hier eingestellten Leistung geladen. Mit dem verbleibenden Überschuss werden die Fahrzeuge geladen. ",-1)])),_:1},8,["model-value"]),n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"]?(g(),v(l,{key:0,title:"Reserve Ladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve"]/1e3,"onUpdate:modelValue":e[11]||(e[11]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_reserve",r*1e3))},null,8,["model-value"])):b("",!0),i(_,null,{default:a(()=>e[43]||(e[43]=[t(" Speicher-SoC oberhalb Mindest-SoC ",-1)])),_:1,__:[43]}),i(c,{title:"Entladung des Speichers erlauben",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"],"onUpdate:modelValue":e[12]||(e[12]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_discharge_active",r))},{help:a(()=>e[44]||(e[44]=[t(" Wird der Mindest-SoC überschritten, wird der Überschuss ins Fahrzeug geladen und der Speicher mit der hier eingestellten Leistung in die Fahrzeuge entladen. Die Entladeleistung des Speichers wird dem Überschuss zum Erreichen der Einschaltschwelle hinzugerechnet. ",-1)])),_:1},8,["model-value"]),n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"]?(g(),v(l,{key:1,title:"Erlaubte Entladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge"]/1e3,"onUpdate:modelValue":e[13]||(e[13]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_discharge",r*1e3))},null,8,["model-value"])):b("",!0)])):b("",!0)]))]),_:1}),i(W,{"form-name":"pvChargeConfigForm",onSave:e[14]||(e[14]=r=>n.$emit("save")),onReset:e[15]||(e[15]=r=>n.$emit("reset")),onDefaults:e[16]||(e[16]=r=>n.$emit("defaults"))})])])}const K=E(q,[["render",F],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/PVChargeConfig.vue"]]);export{K as default}; diff --git a/web/settings/assets/Status-526393e2.js b/web/settings/assets/Status-526393e2.js deleted file mode 100644 index fe3db9425d..0000000000 --- a/web/settings/assets/Status-526393e2.js +++ /dev/null @@ -1 +0,0 @@ -import{C as k}from"./index-0992d19b.js";import{l as C,O as z,P as V,c as M,f as G,F as B,Q as A,R as Z,S as H,T as R,U as F,V as K,W as Q,X as U,Y as J,Z as P,_ as I,$ as X,n as Y,o as tt,p as et,q as st,a0 as ot,a1 as at}from"./vendor-fortawesome-2b3791bb.js";import{_ as w,u as n,l as i,x as m,D as O,E as r,A as t,m as h,G as c,B as g,F as a,z as T,p as S,q as rt,M as x,N as W}from"./vendor-36bf053b.js";import{C as it,p as nt,a as ct,L as lt,b as dt,P as pt,c as ut,T as mt,i as gt,d as ht,e as bt}from"./vendor-chartjs-43b0fa2b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./vendor-luxon-cc86f6dc.js";C.add(z,V,M,G);const _t={name:"StatusCard",components:{FontAwesomeIcon:B},props:{subtype:{type:String,required:!0},state:{type:Number,required:!1,default:0},stateMessage:{type:String,required:!1,default:void 0},componentId:{type:Number,required:!1,default:void 0}},computed:{stateClass(){switch(this.state){case 0:return"success";case 1:return"warning";case 2:return"danger";default:return"dark"}},stateIcon(){switch(this.state){case 0:return["fas","check-circle"];case 1:return["fas","exclamation-triangle"];case 2:return["fas","times-circle"];default:return["fas","question-circle"]}},stateLabel(){switch(this.state){case 0:return"OK";case 1:return"Warnung";case 2:return"Fehler";default:return"Unbekannt"}}}},ft={class:"container"},vt={class:"row justify-content-end"},yt={key:0,class:"col px-0"},Tt={style:{"white-space":"pre-wrap"}},wt={key:1,class:"col col-auto pr-0"},xt={class:"text-right"};function Wt(s,o,l,b,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-avatar"),p=n("openwb-base-alert"),q=n("openwb-base-card");return i(),m(q,{subtype:l.subtype,collapsible:!0,collapsed:!0},O({header:r(()=>[S(s.$slots,"header-left")]),actions:r(()=>[S(s.$slots,"header-right"),c(d,{class:rt(["ml-2",`bg-${e.stateClass}`]),title:e.stateLabel},{default:r(()=>[c(u,{icon:e.stateIcon},null,8,["icon"])]),_:1},8,["class","title"])]),default:r(()=>[S(s.$slots,"default")]),_:2},[l.componentId!==void 0||l.stateMessage?{name:"footer",fn:r(()=>[t("div",ft,[t("div",vt,[l.stateMessage?(i(),h("div",yt,[c(p,{subtype:e.stateClass},{default:r(()=>[c(u,{icon:e.stateIcon},null,8,["icon"]),o[0]||(o[0]=g(" Modulmeldung: ",-1)),t("span",Tt,a(l.stateMessage),1)]),_:1},8,["subtype"])])):T("",!0),l.componentId!==void 0?(i(),h("div",wt,[t("div",xt,"ID: "+a(l.componentId),1)])):T("",!0)])])]),key:"0"}:void 0]),1032,["subtype"])}const N=w(_t,[["render",Wt],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/StatusCard.vue"]]);C.add(A);const kt={name:"ChargePointSumCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/chargepoint/get/power","openWB/chargepoint/get/imported","openWB/chargepoint/get/exported","openWB/chargepoint/get/daily_imported","openWB/chargepoint/get/daily_exported"]}},computed:{baseTopic:{get(){return"openWB/chargepoint"}}}},Ct={class:"text-right"},Bt={class:"row"},Nt={class:"col text-right text-monospace"},qt={class:"row"},$t={class:"col-4 text-right text-monospace"},St={class:"col-4 text-right text-monospace"},At={class:"row"},Pt={class:"col-4 text-right text-monospace"},It={class:"col-4 text-right text-monospace"};function Ot(s,o,l,b,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"primary"},{"header-left":r(()=>[c(u,{icon:["fas","charging-station"]}),o[0]||(o[0]=g(" Alle Ladepunkte ",-1))]),"header-right":r(()=>[t("span",Ct,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1)]),default:r(()=>[c(d,{subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row py-2"},[t("div",{class:"col font-weight-bold"},"Ladevorgang"),t("div",{class:"col text-right"},"Leistung")],-1)),t("div",Bt,[t("div",Nt,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001)),1)])]),_:1}),c(d,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Zählerstände"},{default:r(()=>[o[4]||(o[4]=t("div",{class:"row justify-content-end"},[t("div",{class:"col-4 text-right"},"Geladen"),t("div",{class:"col-4 text-right"},"Entladen")],-1)),t("div",qt,[o[2]||(o[2]=t("div",{class:"col text-right"},"Heute",-1)),t("div",$t,a(s.formatNumberTopic(e.baseTopic+"/get/daily_imported",3,3,.001)+" kWh"),1),t("div",St,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001)+" kWh"),1)]),t("div",At,[o[3]||(o[3]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Pt,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001)+" kWh"),1),t("div",It,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001)+" kWh"),1)])]),_:1})]),_:1})}const Lt=w(kt,[["render",Ot],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ChargePointSumCard.vue"]]);C.add(A,Z,H,R,F,K,Q,U);const jt={name:"ChargePointCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{installedChargePointKey:{type:String,required:!0},installedChargePoint:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/chargepoint/${this.installedChargePoint.id}/get/+`,`openWB/chargepoint/${this.installedChargePoint.id}/get/connected_vehicle/info`,`openWB/chargepoint/${this.installedChargePoint.id}/set/+`,`openWB/internal_chargepoint/${this.installedChargePoint.id}/data/phases_to_use`]}},computed:{chargePointIndex:{get(){return this.installedChargePoint.id}},baseTopic:{get(){return"openWB/chargepoint/"+this.chargePointIndex}},chargingStatus:{get(){let s=this.$store.state.mqtt[this.baseTopic+"/get/plug_state"],o=this.$store.state.mqtt[this.baseTopic+"/get/charge_state"];return s==1&&o==1?{icon:["fas","plug-circle-bolt"],text:"Fahrzeug angesteckt, Ladevorgang aktiv"}:s==1?{icon:["fas","plug-circle-check"],text:"Fahrzeug angesteckt, kein Ladevorgang aktiv"}:{icon:["fas","plug-circle-minus"],text:"Kein Fahrzeug angesteckt"}}}}},Dt={class:"row py-2"},Et={class:"col text-right"},zt={style:{"white-space":"pre-wrap"}},Vt={class:"row"},Mt={class:"col text-right text-monospace"},Gt={class:"col text-right text-monospace"},Zt={class:"row"},Ht={key:0,class:"col text-right text-monospace"},Rt={key:1,class:"col text-right text-monospace"},Ft={class:"col text-right text-monospace"},Kt={class:"row"},Qt={class:"col-4 text-right text-monospace"},Ut={class:"col-4 text-right text-monospace"},Jt={class:"row"},Xt={class:"col-4 text-right text-monospace"},Yt={class:"col-4 text-right text-monospace"},te={class:"row"},ee={class:"col text-right text-monospace"},se={class:"col text-right text-monospace"},oe={class:"col text-right text-monospace"},ae={class:"row"},re={class:"col text-right text-monospace"},ie={class:"col text-right text-monospace"},ne={class:"col text-right text-monospace"},ce={class:"row"},le={class:"col text-right text-monospace"},de={class:"col text-right text-monospace"},pe={class:"col text-right text-monospace"},ue={class:"row"},me={class:"col text-right text-monospace"},ge={class:"col text-right text-monospace"},he={class:"col text-right text-monospace"},be={class:"row"},_e={class:"col text-center text-monospace"};function fe(s,o,l,b,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-alert"),p=n("openwb-base-card"),q=n("status-card");return i(),m(q,{subtype:"primary","component-id":e.chargePointIndex,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","charging-station"]}),g(" "+a(l.installedChargePoint.name),1)]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:r(()=>[c(p,{subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",Dt,[o[0]||(o[0]=t("div",{class:"col col-auto font-weight-bold"},"Status",-1)),t("div",Et,[c(u,{icon:e.chargingStatus.icon,title:e.chargingStatus.text},null,8,["icon","title"]),g(" "+a(e.chargingStatus.text),1)])]),c(d,{subtype:"info"},{default:r(()=>[o[1]||(o[1]=g(" Statusmeldung: ",-1)),t("span",zt,a(s.$store.state.mqtt[e.baseTopic+"/get/state_str"]),1)]),_:1}),t("div",null," max. Ladeleistung: "+a((s.max_power=s.formatNumberTopic(e.baseTopic+"/get/max_evse_current",0))=="-"?s.max_power:Math.floor(s.max_power*3*230/1e3))+" kW ",1)]),_:1}),c(p,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Ladevorgang"},{default:r(()=>[o[2]||(o[2]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Ladestrom Vorgabe"),t("div",{class:"col text-right"},"Leistung")],-1)),t("div",Vt,[t("div",Mt,a(s.formatNumberTopic(e.baseTopic+"/set/current",2))+" A",1),t("div",Gt,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1)]),o[3]||(o[3]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Phasen Vorgabe"),t("div",{class:"col text-right"},"Phasen Aktuell")],-1)),t("div",Zt,[s.$store.state.mqtt["openWB/general/extern"]===!0?(i(),h("div",Ht,a(s.formatNumberTopic("openWB/internal_chargepoint/"+e.chargePointIndex+"/data/phases_to_use")),1)):(i(),h("div",Rt,a(s.formatNumberTopic(e.baseTopic+"/set/phases_to_use")),1)),t("div",Ft,a(s.formatNumberTopic(e.baseTopic+"/get/phases_in_use")),1)])]),_:1}),c(p,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Zählerstände"},{default:r(()=>[o[6]||(o[6]=t("div",{class:"row justify-content-end"},[t("div",{class:"col-4 text-right"},"Geladen"),t("div",{class:"col-4 text-right"},"Entladen")],-1)),t("div",Kt,[o[4]||(o[4]=t("div",{class:"col text-right"},"Heute",-1)),t("div",Qt,a(s.formatNumberTopic(e.baseTopic+"/get/daily_imported",3,3,.001))+" kWh ",1),t("div",Ut,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1)]),t("div",Jt,[o[5]||(o[5]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Xt,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001))+" kWh ",1),t("div",Yt,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1}),c(p,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Werte pro Phase"},{default:r(()=>[t("div",te,[o[7]||(o[7]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Spannung [V]",-1)),t("div",ee,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[0]),1),t("div",se,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[1]),1),t("div",oe,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[2]),1)]),t("div",ae,[o[8]||(o[8]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Strom [A]",-1)),t("div",re,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[0]),1),t("div",ie,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[1]),1),t("div",ne,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[2]),1)]),t("div",ce,[o[9]||(o[9]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Wirkleistung [kW]",-1)),t("div",le,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[0]),1),t("div",de,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[1]),1),t("div",pe,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[2]),1)]),t("div",ue,[o[10]||(o[10]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Leistungsfaktor",-1)),t("div",me,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[0]),1),t("div",ge,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[1]),1),t("div",he,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[2]),1)]),t("div",be,[o[11]||(o[11]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Netzfrequenz",-1)),t("div",_e,a(s.formatNumberTopic(e.baseTopic+"/get/frequency",3))+" Hz ",1)])]),_:1})]),_:1},8,["component-id","state","state-message"])}const ve=w(jt,[["render",fe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ChargePointCard.vue"]]);C.add(J);const ye={name:"CounterCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{counter:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/counter/${this.counter.id}/get/+`]}},computed:{baseTopic:{get(){return"openWB/counter/"+this.counter.id}}}},Te={class:"row"},we={class:"col text-right text-monospace pl-0"},xe={class:"col text-right text-monospace pl-0"},We={class:"row"},ke={class:"col text-right text-monospace pl-0"},Ce={class:"col text-right text-monospace pl-0"},Be={class:"row"},Ne={class:"col"},qe={class:"row"},$e={class:"col text-right text-monospace pl-0"},Se={class:"col text-right text-monospace pl-0"},Ae={class:"col text-right text-monospace pl-0"},Pe={class:"row"},Ie={class:"col"},Oe={class:"row"},Le={class:"col text-right text-monospace pl-0"},je={class:"col text-right text-monospace pl-0"},De={class:"col text-right text-monospace pl-0"},Ee={class:"row"},ze={class:"col"},Ve={class:"row"},Me={class:"col text-right text-monospace pl-0"},Ge={class:"col text-right text-monospace pl-0"},Ze={class:"col text-right text-monospace pl-0"},He={class:"row"},Re={class:"col"},Fe={class:"row"},Ke={class:"col text-right text-monospace pl-0"},Qe={class:"col text-right text-monospace pl-0"},Ue={class:"col text-right text-monospace pl-0"};function Je(s,o,l,b,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"danger","component-id":l.counter.id,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","gauge-high"]}),g(" "+a(l.counter.name),1)]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Leistung"),t("div",{class:"col-6 text-right"},"Netzfrequenz")],-1)),t("div",Te,[t("div",we,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001)+" kW"),1),t("div",xe,a(s.formatNumberTopic(e.baseTopic+"/get/frequency",3)+" Hz"),1)])]),_:1}),c(d,{title:"Zählerstände",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Export"),t("div",{class:"col-6 text-right"},"Import")],-1)),t("div",We,[t("div",ke,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001)+" kWh"),1),t("div",Ce,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001)+" kWh"),1)])]),_:1}),c(d,{title:"Werte pro Phase",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",Be,[o[2]||(o[2]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Spannung [V]",-1)),t("div",Ne,[t("div",qe,[t("div",$e,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[0]),1),t("div",Se,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[1]),1),t("div",Ae,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[2]),1)])])]),t("div",Pe,[o[3]||(o[3]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Strom [A]",-1)),t("div",Ie,[t("div",Oe,[t("div",Le,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[0]),1),t("div",je,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[1]),1),t("div",De,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[2]),1)])])]),t("div",Ee,[o[4]||(o[4]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Wirkleistung [kW]",-1)),t("div",ze,[t("div",Ve,[t("div",Me,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[0]),1),t("div",Ge,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[1]),1),t("div",Ze,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[2]),1)])])]),t("div",He,[o[5]||(o[5]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Leistungsfaktor",-1)),t("div",Re,[t("div",Fe,[t("div",Ke,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[0]),1),t("div",Qe,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[1]),1),t("div",Ue,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[2]),1)])])])]),_:1})]),_:1},8,["component-id","state","state-message"])}const Xe=w(ye,[["render",Je],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/CounterCard.vue"]]);C.add(P);const Ye={name:"InverterSumCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/pv/get/+"]}},computed:{baseTopic:{get(){return"openWB/pv"}}}},ts={class:"row"},es={class:"col text-right text-monospace"},ss={class:"col text-right text-monospace"},os={class:"row"},as={class:"col text-right text-monospace"},rs={class:"col text-right text-monospace"},is={class:"col text-right text-monospace"};function ns(s,o,l,b,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"success",state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","solar-panel"]}),o[0]||(o[0]=g(" Alle Wechselrichter ",-1))]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Leistung"),t("div",{class:"col text-right"},"Zählerstand")],-1)),t("div",ts,[t("div",es,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",ss,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1}),c(d,{title:"Erträge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[2]||(o[2]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Heute"),t("div",{class:"col text-right"},"Monat"),t("div",{class:"col text-right"},"Jahr")],-1)),t("div",os,[t("div",as,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1),t("div",rs,a(s.formatNumberTopic(e.baseTopic+"/get/monthly_exported",1,1,.001))+" kWh ",1),t("div",is,a(s.formatNumberTopic(e.baseTopic+"/get/yearly_exported",0,0,.001))+" kWh ",1)])]),_:1})]),_:1},8,["state","state-message"])}const cs=w(Ye,[["render",ns],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/InverterSumCard.vue"]]);C.add(P);const ls={name:"InverterCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{inverter:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/pv/${this.inverter.id}/get/+`]}},computed:{baseTopic:{get(){return"openWB/pv/"+this.inverter.id}}}},ds={class:"row"},ps={class:"col text-right text-monospace"},us={class:"col text-right text-monospace"},ms={class:"row"},gs={class:"col text-right text-monospace"},hs={class:"col text-right text-monospace"},bs={class:"col text-right text-monospace"},_s={class:"row"},fs={class:"col"},vs={class:"row"},ys={class:"col text-right text-monospace pl-0"},Ts={class:"col text-right text-monospace pl-0"},ws={class:"col text-right text-monospace pl-0"};function xs(s,o,l,b,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"success","component-id":l.inverter.id,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","solar-panel"]}),g(" "+a(l.inverter.name),1)]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Leistung"),t("div",{class:"col text-right"},"Zählerstand")],-1)),t("div",ds,[t("div",ps,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",us,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1}),c(d,{title:"Erträge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Heute"),t("div",{class:"col text-right"},"Monat"),t("div",{class:"col text-right"},"Jahr")],-1)),t("div",ms,[t("div",gs,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1),t("div",hs,a(s.formatNumberTopic(e.baseTopic+"/get/monthly_exported",1,1,.001))+" kWh ",1),t("div",bs,a(s.formatNumberTopic(e.baseTopic+"/get/yearly_exported",0,0,.001))+" kWh ",1)])]),_:1}),c(d,{title:"Werte pro Phase",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",_s,[o[2]||(o[2]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Strom [A]",-1)),t("div",fs,[t("div",vs,[t("div",ys,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[0]),1),t("div",Ts,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[1]),1),t("div",ws,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[2]),1)])])])]),_:1})]),_:1},8,["component-id","state","state-message"])}const Ws=w(ls,[["render",xs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/InverterCard.vue"]]);C.add(I);const ks={name:"BatterySumCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/bat/get/+"]}},computed:{baseTopic:{get(){return"openWB/bat"}}}},Cs={class:"row"},Bs={class:"col text-right text-monospace pl-0"},Ns={class:"col text-right text-monospace pl-0"},qs={class:"row"},$s={class:"col text-right text-monospace"},Ss={class:"col text-right text-monospace"},As={class:"row"},Ps={class:"col text-right text-monospace"},Is={class:"col text-right text-monospace"};function Os(s,o,l,b,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"warning",state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","car-battery"]}),o[0]||(o[0]=g(" Alle Speicher ",-1))]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",1,1,.001))+" kW / "+a(s.$store.state.mqtt[e.baseTopic+"/get/soc"])+" % ",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Leistung"),t("div",{class:"col-6 text-right"},"Ladestand")],-1)),t("div",Cs,[t("div",Bs,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",Ns,a(s.$store.state.mqtt[e.baseTopic+"/get/soc"])+" %",1)])]),_:1}),c(d,{title:"Zählerstände",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[4]||(o[4]=t("div",{class:"row"},[t("div",{class:"col"}),t("div",{class:"col text-right"},"Geladen"),t("div",{class:"col text-right"},"Entladen")],-1)),t("div",qs,[o[2]||(o[2]=t("div",{class:"col text-right"},"Heute",-1)),t("div",$s,a(s.formatNumberTopic(e.baseTopic+"/get/daily_imported",3,3,.001))+" kWh ",1),t("div",Ss,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1)]),t("div",As,[o[3]||(o[3]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Ps,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001))+" kWh ",1),t("div",Is,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1})]),_:1},8,["state","state-message"])}const Ls=w(ks,[["render",Os],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/BatterySumCard.vue"]]);C.add(I);const js={name:"BatteryCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{battery:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/bat/${this.battery.id}/get/+`]}},computed:{baseTopic:{get(){return"openWB/bat/"+this.battery.id}}}},Ds={class:"row"},Es={class:"col text-right text-monospace pl-0"},zs={class:"col text-right text-monospace pl-0"},Vs={class:"row"},Ms={class:"col text-right text-monospace"},Gs={class:"col text-right text-monospace"},Zs={class:"row"},Hs={class:"col text-right text-monospace"},Rs={class:"col text-right text-monospace"},Fs={class:"row"},Ks={class:"col"},Qs={class:"row"},Us={class:"col text-right text-monospace pl-0"},Js={class:"col text-right text-monospace pl-0"},Xs={class:"col text-right text-monospace pl-0"};function Ys(s,o,l,b,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"warning","component-id":l.battery.id,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","car-battery"]}),g(" "+a(l.battery.name),1)]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",1,1,.001))+" kW / "+a(s.$store.state.mqtt[e.baseTopic+"/get/soc"])+" % ",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Leistung"),t("div",{class:"col-6 text-right"},"Ladestand")],-1)),t("div",Ds,[t("div",Es,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",zs,a(s.$store.state.mqtt[e.baseTopic+"/get/soc"])+" %",1)])]),_:1}),c(d,{title:"Zählerstände",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[3]||(o[3]=t("div",{class:"row"},[t("div",{class:"col"}),t("div",{class:"col text-right"},"Geladen"),t("div",{class:"col text-right"},"Entladen")],-1)),t("div",Vs,[o[1]||(o[1]=t("div",{class:"col text-right"},"Heute",-1)),t("div",Ms,a(s.formatNumberTopic(e.baseTopic+"/get/daily_imported",3,3,.001))+" kWh ",1),t("div",Gs,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1)]),t("div",Zs,[o[2]||(o[2]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Hs,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001))+" kWh ",1),t("div",Rs,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1}),c(d,{title:"Werte pro Phase",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",Fs,[o[4]||(o[4]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Strom [A]",-1)),t("div",Ks,[t("div",Qs,[t("div",Us,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[0]),1),t("div",Js,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[1]),1),t("div",Xs,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[2]),1)])])])]),_:1})]),_:1},8,["component-id","state","state-message"])}const to=w(js,[["render",Ys],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/BatteryCard.vue"]]);C.add(X,Y,tt,et,st);const eo={name:"IoDeviceCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{ioDevice:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/io/states/${this.ioDevice.id}/get/+`,"openWB/io/action/+/config","openWB/io/action/+/timestamp"],state:{true:{icon:["fas","square"],title:"Geschlossen",actionTitle:"Aktiv"},false:{icon:["far","square"],title:"Offen",actionTitle:"Inaktiv"}}}},computed:{baseTopic(){return`openWB/io/states/${this.ioDevice.id}`},hasDigitalInputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/digital_input`]||{}).length>0},hasDigitalOutputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/digital_output`]||{}).length>0},hasAnalogInputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/analog_input`]||{}).length>0},hasAnalogOutputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/analog_output`]||{}).length>0},digitalInputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/digital_input`]},digitalOutputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/digital_output`]},analogInputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/analog_input`]},analogOutputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/analog_output`]},ioActionConfigs(){return Object.fromEntries(Object.entries(this.getWildcardTopics("openWB/io/action/+/config")).filter(([,s])=>s.configuration.io_device===this.ioDevice.id))},ioActionState(){return s=>{const o=this.$store.state.mqtt[`openWB/io/action/${s}/timestamp`];return o&&new Date(o*1e3).toLocaleString()}}},methods:{getIcon(s){return this.state[s].icon},getTitle(s){return this.state[s].title},getActionTitle(s){return this.state[s].actionTitle}}},so={class:"col-auto"},oo={class:"col text-right"},ao={class:"row"},ro={class:"row"},io={class:"row"},no={class:"row"};function co(s,o,l,b,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-alert"),p=n("openwb-base-card"),q=n("status-card");return i(),m(q,{subtype:"secondary",state:s.$store.state.mqtt[`${e.baseTopic}/get/fault_state`],"state-message":s.$store.state.mqtt[`${e.baseTopic}/get/fault_str`],"component-id":l.ioDevice.id},{"header-left":r(()=>[c(u,{icon:["fas","tower-broadcast"]}),g(" "+a(l.ioDevice.name),1)]),default:r(()=>[c(p,{title:"Zugehörige Aktionen",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[Object.keys(e.ioActionConfigs).length===0?(i(),m(d,{key:0,subtype:"info",class:"mb-2"},{default:r(()=>[...o[0]||(o[0]=[g(" Es wurden noch keine Aktionen erstellt, welche dieses IO-Gerät als Signalquelle verwenden. ",-1)])]),_:1})):(i(!0),h(W,{key:1},x(e.ioActionConfigs,(_,f)=>(i(),h("div",{key:f,class:"row"},[t("div",so,[c(u,{title:e.getActionTitle(![void 0,null].includes(e.ioActionState(_.id))),icon:e.getIcon(![void 0,null].includes(e.ioActionState(_.id))),class:"fa-fw"},null,8,["title","icon"]),g(" "+a(_.name),1)]),t("div",oo,a(e.ioActionState(_.id)),1)]))),128))]),_:1}),e.hasDigitalInputs?(i(),m(p,{key:0,title:"Digitale Eingänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",ao,[(i(!0),h(W,null,x(e.digitalInputStates,(_,f)=>(i(),h("div",{key:f,class:"col io-state"},[g(a(f)+": ",1),c(u,{title:e.getTitle(_),icon:e.getIcon(_),class:"fa-fw"},null,8,["title","icon"])]))),128))])]),_:1})):T("",!0),e.hasDigitalOutputs?(i(),m(p,{key:1,title:"Digitale Ausgänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",ro,[(i(!0),h(W,null,x(e.digitalOutputStates,(_,f)=>(i(),h("div",{key:f,class:"col io-state"},[g(a(f)+": ",1),c(u,{title:e.getActionTitle(_),icon:e.getIcon(_),class:"fa-fw"},null,8,["title","icon"])]))),128))])]),_:1})):T("",!0),e.hasAnalogInputs?(i(),m(p,{key:2,title:"Analoge Eingänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",io,[(i(!0),h(W,null,x(e.analogInputStates,(_,f)=>(i(),h("div",{key:f,class:"col io-state"},a(f)+": "+a(_),1))),128))])]),_:1})):T("",!0),e.hasAnalogOutputs?(i(),m(p,{key:3,title:"Analoge Ausgänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",no,[(i(!0),h(W,null,x(e.analogOutputStates,(_,f)=>(i(),h("div",{key:f,class:"col io-state"},a(f)+": "+a(_),1))),128))])]),_:1})):T("",!0)]),_:1},8,["state","state-message","component-id"])}const lo=w(eo,[["render",co],["__scopeId","data-v-356761d0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/IoDeviceCard.vue"]]);C.add(ot);const po={name:"VehicleCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{vehicleKey:{type:String,required:!0},vehicleName:{type:String,default:""}},data(){return{mqttTopicsToSubscribe:["openWB/vehicle/+/get/+"]}},computed:{vehicleIndex:{get(){return parseInt(this.vehicleKey.match(/(?:\/)(\d+)(?=\/)/)[1])}},soc:{get(){return this.formatNumberTopic(this.baseTopic+"/get/soc")}},socTimestamp:{get(){return this.$store.state.mqtt[this.baseTopic+"/get/soc_timestamp"]!==void 0?new Date(this.$store.state.mqtt[this.baseTopic+"/get/soc_timestamp"]*1e3).toLocaleString():"-"}},socRange:{get(){return this.$store.state.mqtt[this.baseTopic+"/get/range"]!==void 0?Math.round(this.$store.state.mqtt[this.baseTopic+"/get/range"]):0}},baseTopic:{get(){return"openWB/vehicle/"+this.vehicleIndex}}}},uo={class:"row"},mo={class:"col text-right text-monospace"},go={class:"col text-right text-monospace"},ho={class:"col text-right text-monospace"};function bo(s,o,l,b,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"info","component-id":e.vehicleIndex,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},O({"header-left":r(()=>[c(u,{icon:["fas","car"]}),g(" "+a(l.vehicleName),1)]),default:r(()=>[c(d,{title:"Fahrzeugdaten",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col pr-0 text-right"},"Ladestand"),t("div",{class:"col pr-0 text-right"},"Reichweite"),t("div",{class:"col pr-0 text-right"},"Letzter Zeitstempel")],-1)),t("div",uo,[t("div",mo,a(e.soc)+" %",1),t("div",go,a(e.socRange)+" km",1),t("div",ho,a(e.socTimestamp),1)])]),_:1})]),_:2},[e.soc!="-"?{name:"header-right",fn:r(()=>[g(a(e.soc)+" % ",1)]),key:"0"}:void 0]),1032,["component-id","state","state-message"])}const _o=w(po,[["render",bo],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/VehicleCard.vue"]]);C.add(at);it.register(nt,ct,lt,dt,pt,ut,mt,gt,ht);const fo={name:"ElectricityTariffCard",components:{StatusCard:N,FontAwesomeIcon:B,ChartjsLine:bt},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/optional/et/provider","openWB/optional/et/get/fault_state","openWB/optional/et/get/fault_str","openWB/optional/et/get/prices"],chartDatasets:{datasets:[{label:"Stromtarif",unit:"ct/kWh",type:"line",stepped:!0,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:void 0,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:"price"}}]},chartOptions:{plugins:{title:{display:!1},tooltip:{enabled:!0},legend:{display:!1}},elements:{point:{radius:2}},responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{x:{type:"time",time:{unit:"hour",text:"Zeit",maxTicksLimit:24},display:!0,title:{display:!0,text:"Uhrzeit"},ticks:{font:{size:12},maxTicksLimit:0},grid:{}},y:{position:"left",type:"linear",display:"auto",title:{font:{size:12},display:!0,text:"Preis [ct/kWh]"},grid:{},ticks:{font:{size:12},stepSize:.01,maxTicksLimit:11}}}}}},computed:{electricityTariffConfigured(){const s=this.$store.state.mqtt["openWB/optional/et/provider"];return s!==void 0?s.type!==null:!1},chartDataRead(){return this.chartDataObject.datasets[0].data!=null},chartDataObject(){if(this.$store.state.mqtt["openWB/optional/et/get/prices"]){var s=this.$store.state.mqtt["openWB/optional/et/get/prices"],o=[];for(const[y,e]of Object.entries(s))o.push({timestamp:y*1e3,price:e*1e5});const b=o.slice(-1)[0];o.push({timestamp:b.timestamp+(60*60-1)*1e3,price:b.price})}const l=this.chartDatasets;return l.datasets[0].data=o,l},currentPrice(){return this.chartDataObject.datasets[0].data===void 0||this.chartDataObject.datasets[0].data.length===0?this.formatNumber(0,2):this.formatNumber(this.chartDataObject.datasets[0].data[0].price||0,2)},baseTopic:{get(){return"openWB/optional/et"}}}},vo={class:"openwb-chart"};function yo(s,o,l,b,y,e){const u=n("font-awesome-icon"),d=n("chartjs-line"),p=n("openwb-base-card"),q=n("status-card");return e.electricityTariffConfigured?(i(),m(q,{key:0,subtype:"secondary",state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","ranking-star"]}),o[0]||(o[0]=g(" Variabler Stromtarif ",-1))]),"header-right":r(()=>[g(a(e.currentPrice)+" ct/kWh",1)]),default:r(()=>[c(p,{title:"Anbieter: "+s.$store.state.mqtt[e.baseTopic+"/provider"].name,subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",vo,[e.chartDataRead?(i(),m(d,{key:0,ref:"myChart",data:e.chartDataObject,options:y.chartOptions},null,8,["data","options"])):T("",!0)])]),_:1},8,["title"])]),_:1},8,["state","state-message"])):T("",!0)}const To=w(fo,[["render",yo],["__scopeId","data-v-f4769d2f"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ElectricityTariffCard.vue"]]);const wo={name:"OpenwbStatusView",components:{ChargePointSumCard:Lt,ChargePointCard:ve,CounterCard:Xe,InverterSumCard:cs,InverterCard:Ws,BatterySumCard:Ls,BatteryCard:to,IoDeviceCard:lo,VehicleCard:_o,ElectricityTariffCard:To},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/device/+/component/+/config","openWB/system/io/+/config","openWB/vehicle/+/name","openWB/chargepoint/+/config"]}},computed:{installedChargePoints:{get(){let s=this.getWildcardTopics("openWB/chargepoint/+/config"),o={};for(const[l,b]of Object.entries(s))(b.type==="internal_openwb"||this.$store.state.mqtt["openWB/general/extern"]===!1)&&(o[l]=b);return o}},numChargePointsInstalled:{get(){return Object.keys(this.installedChargePoints).length}},counterConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"counter")}},ioDeviceConfigs:{get(){return this.getWildcardTopics("openWB/system/io/+/config")}},numInvertersInstalled:{get(){return Object.keys(this.inverterConfigs).length}},inverterConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"inverter")}},numBatteriesInstalled:{get(){return Object.keys(this.batteryConfigs).length}},batteryConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"bat")}},vehicleNames:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.getWildcardTopics("openWB/vehicle/+/name")}}},methods:{filterComponentsByType(s,o){return Object.keys(s).filter(l=>s[l].type.includes(o)).reduce((l,b)=>({...l,[b]:s[b]}),{})}}},xo={class:"status"};function Wo(s,o,l,b,y,e){const u=n("charge-point-sum-card"),d=n("charge-point-card"),p=n("counter-card"),q=n("inverter-sum-card"),_=n("inverter-card"),f=n("battery-sum-card"),L=n("battery-card"),j=n("vehicle-card"),D=n("io-device-card"),E=n("electricity-tariff-card");return i(),h("div",xo,[e.numChargePointsInstalled>1&&s.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m(u,{key:0})):T("",!0),(i(!0),h(W,null,x(e.installedChargePoints,(v,$)=>(i(),m(d,{key:$,"installed-charge-point":v,"installed-charge-point-key":$},null,8,["installed-charge-point","installed-charge-point-key"]))),128)),(i(!0),h(W,null,x(e.counterConfigs,v=>(i(),m(p,{key:v.id,counter:v},null,8,["counter"]))),128)),e.numInvertersInstalled>1&&s.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m(q,{key:1})):T("",!0),(i(!0),h(W,null,x(e.inverterConfigs,v=>(i(),m(_,{key:v.id,inverter:v},null,8,["inverter"]))),128)),e.numBatteriesInstalled>1&&s.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m(f,{key:2})):T("",!0),(i(!0),h(W,null,x(e.batteryConfigs,v=>(i(),m(L,{key:v.id,battery:v},null,8,["battery"]))),128)),(i(!0),h(W,null,x(e.vehicleNames,(v,$)=>(i(),m(j,{key:$,"vehicle-key":$,"vehicle-name":v},null,8,["vehicle-key","vehicle-name"]))),128)),(i(!0),h(W,null,x(e.ioDeviceConfigs,v=>(i(),m(D,{key:v.id,"io-device":v},null,8,["io-device"]))),128)),s.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m(E,{key:3})):T("",!0)])}const Io=w(wo,[["render",Wo],["__scopeId","data-v-051028a3"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Status.vue"]]);export{Io as default}; diff --git a/web/settings/assets/Status-76832ed9.js b/web/settings/assets/Status-76832ed9.js new file mode 100644 index 0000000000..f760e5a9c0 --- /dev/null +++ b/web/settings/assets/Status-76832ed9.js @@ -0,0 +1 @@ +import{C as k}from"./index-8dd8e083.js";import{l as C,O as z,P as V,c as M,f as G,F as B,Q as A,R as Z,S as H,T as R,U as F,V as K,W as Q,X as U,Y as J,Z as P,_ as I,$ as X,n as Y,o as tt,p as et,q as st,a0 as ot,a1 as at}from"./vendor-fortawesome-a02b6813.js";import{_ as w,u as n,l as i,x as m,D as O,E as r,A as t,m as h,G as c,B as g,F as a,z as T,p as S,q as rt,M as x,N as W}from"./vendor-25d394b4.js";import{C as it,p as nt,a as ct,L as lt,b as dt,P as pt,c as ut,T as mt,i as gt,d as ht,e as _t}from"./vendor-chartjs-94a826eb.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./vendor-luxon-cc86f6dc.js";C.add(z,V,M,G);const bt={name:"StatusCard",components:{FontAwesomeIcon:B},props:{subtype:{type:String,required:!0},state:{type:Number,required:!1,default:0},stateMessage:{type:String,required:!1,default:void 0},componentId:{type:Number,required:!1,default:void 0}},computed:{stateClass(){switch(this.state){case 0:return"success";case 1:return"warning";case 2:return"danger";default:return"dark"}},stateIcon(){switch(this.state){case 0:return["fas","check-circle"];case 1:return["fas","exclamation-triangle"];case 2:return["fas","times-circle"];default:return["fas","question-circle"]}},stateLabel(){switch(this.state){case 0:return"OK";case 1:return"Warnung";case 2:return"Fehler";default:return"Unbekannt"}}}},ft={class:"container"},vt={class:"row justify-content-end"},yt={key:0,class:"col px-0"},Tt={style:{"white-space":"pre-wrap"}},wt={key:1,class:"col col-auto pr-0"},xt={class:"text-right"};function Wt(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-avatar"),p=n("openwb-base-alert"),q=n("openwb-base-card");return i(),m(q,{subtype:l.subtype,collapsible:!0,collapsed:!0},O({header:r(()=>[S(s.$slots,"header-left")]),actions:r(()=>[S(s.$slots,"header-right"),c(d,{class:rt(["ml-2",`bg-${e.stateClass}`]),title:e.stateLabel},{default:r(()=>[c(u,{icon:e.stateIcon},null,8,["icon"])]),_:1},8,["class","title"])]),default:r(()=>[S(s.$slots,"default")]),_:2},[l.componentId!==void 0||l.stateMessage?{name:"footer",fn:r(()=>[t("div",ft,[t("div",vt,[l.stateMessage?(i(),h("div",yt,[c(p,{subtype:e.stateClass},{default:r(()=>[c(u,{icon:e.stateIcon},null,8,["icon"]),o[0]||(o[0]=g(" Modulmeldung: ",-1)),t("span",Tt,a(l.stateMessage),1)]),_:1,__:[0]},8,["subtype"])])):T("",!0),l.componentId!==void 0?(i(),h("div",wt,[t("div",xt,"ID: "+a(l.componentId),1)])):T("",!0)])])]),key:"0"}:void 0]),1032,["subtype"])}const N=w(bt,[["render",Wt],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/StatusCard.vue"]]);C.add(A);const kt={name:"ChargePointSumCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/chargepoint/get/power","openWB/chargepoint/get/imported","openWB/chargepoint/get/exported","openWB/chargepoint/get/daily_imported","openWB/chargepoint/get/daily_exported"]}},computed:{baseTopic:{get(){return"openWB/chargepoint"}}}},Ct={class:"text-right"},Bt={class:"row"},Nt={class:"col text-right text-monospace"},qt={class:"row"},$t={class:"col-4 text-right text-monospace"},St={class:"col-4 text-right text-monospace"},At={class:"row"},Pt={class:"col-4 text-right text-monospace"},It={class:"col-4 text-right text-monospace"};function Ot(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"primary"},{"header-left":r(()=>[c(u,{icon:["fas","charging-station"]}),o[0]||(o[0]=g(" Alle Ladepunkte ",-1))]),"header-right":r(()=>[t("span",Ct,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1)]),default:r(()=>[c(d,{subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row py-2"},[t("div",{class:"col font-weight-bold"},"Ladevorgang"),t("div",{class:"col text-right"},"Leistung")],-1)),t("div",Bt,[t("div",Nt,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001)),1)])]),_:1,__:[1]}),c(d,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Zählerstände"},{default:r(()=>[o[4]||(o[4]=t("div",{class:"row justify-content-end"},[t("div",{class:"col-4 text-right"},"Geladen"),t("div",{class:"col-4 text-right"},"Entladen")],-1)),t("div",qt,[o[2]||(o[2]=t("div",{class:"col text-right"},"Heute",-1)),t("div",$t,a(s.formatNumberTopic(e.baseTopic+"/get/daily_imported",3,3,.001)+" kWh"),1),t("div",St,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001)+" kWh"),1)]),t("div",At,[o[3]||(o[3]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Pt,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001)+" kWh"),1),t("div",It,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001)+" kWh"),1)])]),_:1,__:[4]})]),_:1})}const Lt=w(kt,[["render",Ot],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ChargePointSumCard.vue"]]);C.add(A,Z,H,R,F,K,Q,U);const jt={name:"ChargePointCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{installedChargePointKey:{type:String,required:!0},installedChargePoint:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/chargepoint/${this.installedChargePoint.id}/get/+`,`openWB/chargepoint/${this.installedChargePoint.id}/get/connected_vehicle/info`,`openWB/chargepoint/${this.installedChargePoint.id}/set/+`,`openWB/internal_chargepoint/${this.installedChargePoint.id}/data/phases_to_use`]}},computed:{chargePointIndex:{get(){return this.installedChargePoint.id}},baseTopic:{get(){return"openWB/chargepoint/"+this.chargePointIndex}},chargingStatus:{get(){let s=this.$store.state.mqtt[this.baseTopic+"/get/plug_state"],o=this.$store.state.mqtt[this.baseTopic+"/get/charge_state"];return s==1&&o==1?{icon:["fas","plug-circle-bolt"],text:"Fahrzeug angesteckt, Ladevorgang aktiv"}:s==1?{icon:["fas","plug-circle-check"],text:"Fahrzeug angesteckt, kein Ladevorgang aktiv"}:{icon:["fas","plug-circle-minus"],text:"Kein Fahrzeug angesteckt"}}}}},Dt={class:"row py-2"},Et={class:"col text-right"},zt={style:{"white-space":"pre-wrap"}},Vt={class:"row"},Mt={class:"col text-right text-monospace"},Gt={class:"col text-right text-monospace"},Zt={class:"row"},Ht={key:0,class:"col text-right text-monospace"},Rt={key:1,class:"col text-right text-monospace"},Ft={class:"col text-right text-monospace"},Kt={class:"row"},Qt={class:"col-4 text-right text-monospace"},Ut={class:"col-4 text-right text-monospace"},Jt={class:"row"},Xt={class:"col-4 text-right text-monospace"},Yt={class:"col-4 text-right text-monospace"},te={class:"row"},ee={class:"col text-right text-monospace"},se={class:"col text-right text-monospace"},oe={class:"col text-right text-monospace"},ae={class:"row"},re={class:"col text-right text-monospace"},ie={class:"col text-right text-monospace"},ne={class:"col text-right text-monospace"},ce={class:"row"},le={class:"col text-right text-monospace"},de={class:"col text-right text-monospace"},pe={class:"col text-right text-monospace"},ue={class:"row"},me={class:"col text-right text-monospace"},ge={class:"col text-right text-monospace"},he={class:"col text-right text-monospace"},_e={class:"row"},be={class:"col text-center text-monospace"};function fe(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-alert"),p=n("openwb-base-card"),q=n("status-card");return i(),m(q,{subtype:"primary","component-id":e.chargePointIndex,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","charging-station"]}),g(" "+a(l.installedChargePoint.name),1)]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:r(()=>[c(p,{subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",Dt,[o[0]||(o[0]=t("div",{class:"col col-auto font-weight-bold"},"Status",-1)),t("div",Et,[c(u,{icon:e.chargingStatus.icon,title:e.chargingStatus.text},null,8,["icon","title"]),g(" "+a(e.chargingStatus.text),1)])]),c(d,{subtype:"info"},{default:r(()=>[o[1]||(o[1]=g(" Statusmeldung: ",-1)),t("span",zt,a(s.$store.state.mqtt[e.baseTopic+"/get/state_str"]),1)]),_:1,__:[1]}),t("div",null," max. Ladeleistung: "+a((s.max_power=s.formatNumberTopic(e.baseTopic+"/get/max_evse_current",0))=="-"?s.max_power:Math.floor(s.max_power*3*230/1e3))+" kW ",1)]),_:1}),c(p,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Ladevorgang"},{default:r(()=>[o[2]||(o[2]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Ladestrom Vorgabe"),t("div",{class:"col text-right"},"Leistung")],-1)),t("div",Vt,[t("div",Mt,a(s.formatNumberTopic(e.baseTopic+"/set/current",2))+" A",1),t("div",Gt,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1)]),o[3]||(o[3]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Phasen Vorgabe"),t("div",{class:"col text-right"},"Phasen Aktuell")],-1)),t("div",Zt,[s.$store.state.mqtt["openWB/general/extern"]===!0?(i(),h("div",Ht,a(s.formatNumberTopic("openWB/internal_chargepoint/"+e.chargePointIndex+"/data/phases_to_use")),1)):(i(),h("div",Rt,a(s.formatNumberTopic(e.baseTopic+"/set/phases_to_use")),1)),t("div",Ft,a(s.formatNumberTopic(e.baseTopic+"/get/phases_in_use")),1)])]),_:1,__:[2,3]}),c(p,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Zählerstände"},{default:r(()=>[o[6]||(o[6]=t("div",{class:"row justify-content-end"},[t("div",{class:"col-4 text-right"},"Geladen"),t("div",{class:"col-4 text-right"},"Entladen")],-1)),t("div",Kt,[o[4]||(o[4]=t("div",{class:"col text-right"},"Heute",-1)),t("div",Qt,a(s.formatNumberTopic(e.baseTopic+"/get/daily_imported",3,3,.001))+" kWh ",1),t("div",Ut,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1)]),t("div",Jt,[o[5]||(o[5]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Xt,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001))+" kWh ",1),t("div",Yt,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1,__:[6]}),c(p,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Werte pro Phase"},{default:r(()=>[t("div",te,[o[7]||(o[7]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Spannung [V]",-1)),t("div",ee,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[0]),1),t("div",se,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[1]),1),t("div",oe,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[2]),1)]),t("div",ae,[o[8]||(o[8]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Strom [A]",-1)),t("div",re,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[0]),1),t("div",ie,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[1]),1),t("div",ne,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[2]),1)]),t("div",ce,[o[9]||(o[9]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Wirkleistung [kW]",-1)),t("div",le,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[0]),1),t("div",de,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[1]),1),t("div",pe,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[2]),1)]),t("div",ue,[o[10]||(o[10]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Leistungsfaktor",-1)),t("div",me,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[0]),1),t("div",ge,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[1]),1),t("div",he,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[2]),1)]),t("div",_e,[o[11]||(o[11]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Netzfrequenz",-1)),t("div",be,a(s.formatNumberTopic(e.baseTopic+"/get/frequency",3))+" Hz ",1)])]),_:1})]),_:1},8,["component-id","state","state-message"])}const ve=w(jt,[["render",fe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ChargePointCard.vue"]]);C.add(J);const ye={name:"CounterCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{counter:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/counter/${this.counter.id}/get/+`]}},computed:{baseTopic:{get(){return"openWB/counter/"+this.counter.id}}}},Te={class:"row"},we={class:"col text-right text-monospace pl-0"},xe={class:"col text-right text-monospace pl-0"},We={class:"row"},ke={class:"col text-right text-monospace pl-0"},Ce={class:"col text-right text-monospace pl-0"},Be={class:"row"},Ne={class:"col"},qe={class:"row"},$e={class:"col text-right text-monospace pl-0"},Se={class:"col text-right text-monospace pl-0"},Ae={class:"col text-right text-monospace pl-0"},Pe={class:"row"},Ie={class:"col"},Oe={class:"row"},Le={class:"col text-right text-monospace pl-0"},je={class:"col text-right text-monospace pl-0"},De={class:"col text-right text-monospace pl-0"},Ee={class:"row"},ze={class:"col"},Ve={class:"row"},Me={class:"col text-right text-monospace pl-0"},Ge={class:"col text-right text-monospace pl-0"},Ze={class:"col text-right text-monospace pl-0"},He={class:"row"},Re={class:"col"},Fe={class:"row"},Ke={class:"col text-right text-monospace pl-0"},Qe={class:"col text-right text-monospace pl-0"},Ue={class:"col text-right text-monospace pl-0"};function Je(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"danger","component-id":l.counter.id,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","gauge-high"]}),g(" "+a(l.counter.name),1)]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Leistung"),t("div",{class:"col-6 text-right"},"Netzfrequenz")],-1)),t("div",Te,[t("div",we,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001)+" kW"),1),t("div",xe,a(s.formatNumberTopic(e.baseTopic+"/get/frequency",3)+" Hz"),1)])]),_:1,__:[0]}),c(d,{title:"Zählerstände",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Export"),t("div",{class:"col-6 text-right"},"Import")],-1)),t("div",We,[t("div",ke,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001)+" kWh"),1),t("div",Ce,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001)+" kWh"),1)])]),_:1,__:[1]}),c(d,{title:"Werte pro Phase",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",Be,[o[2]||(o[2]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Spannung [V]",-1)),t("div",Ne,[t("div",qe,[t("div",$e,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[0]),1),t("div",Se,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[1]),1),t("div",Ae,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[2]),1)])])]),t("div",Pe,[o[3]||(o[3]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Strom [A]",-1)),t("div",Ie,[t("div",Oe,[t("div",Le,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[0]),1),t("div",je,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[1]),1),t("div",De,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[2]),1)])])]),t("div",Ee,[o[4]||(o[4]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Wirkleistung [kW]",-1)),t("div",ze,[t("div",Ve,[t("div",Me,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[0]),1),t("div",Ge,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[1]),1),t("div",Ze,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[2]),1)])])]),t("div",He,[o[5]||(o[5]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Leistungsfaktor",-1)),t("div",Re,[t("div",Fe,[t("div",Ke,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[0]),1),t("div",Qe,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[1]),1),t("div",Ue,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[2]),1)])])])]),_:1})]),_:1},8,["component-id","state","state-message"])}const Xe=w(ye,[["render",Je],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/CounterCard.vue"]]);C.add(P);const Ye={name:"InverterSumCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/pv/get/+"]}},computed:{baseTopic:{get(){return"openWB/pv"}}}},ts={class:"row"},es={class:"col text-right text-monospace"},ss={class:"col text-right text-monospace"},os={class:"row"},as={class:"col text-right text-monospace"},rs={class:"col text-right text-monospace"},is={class:"col text-right text-monospace"};function ns(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"success",state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","solar-panel"]}),o[0]||(o[0]=g(" Alle Wechselrichter ",-1))]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Leistung"),t("div",{class:"col text-right"},"Zählerstand")],-1)),t("div",ts,[t("div",es,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",ss,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1,__:[1]}),c(d,{title:"Erträge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[2]||(o[2]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Heute"),t("div",{class:"col text-right"},"Monat"),t("div",{class:"col text-right"},"Jahr")],-1)),t("div",os,[t("div",as,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1),t("div",rs,a(s.formatNumberTopic(e.baseTopic+"/get/monthly_exported",1,1,.001))+" kWh ",1),t("div",is,a(s.formatNumberTopic(e.baseTopic+"/get/yearly_exported",0,0,.001))+" kWh ",1)])]),_:1,__:[2]})]),_:1},8,["state","state-message"])}const cs=w(Ye,[["render",ns],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/InverterSumCard.vue"]]);C.add(P);const ls={name:"InverterCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{inverter:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/pv/${this.inverter.id}/get/+`]}},computed:{baseTopic:{get(){return"openWB/pv/"+this.inverter.id}}}},ds={class:"row"},ps={class:"col text-right text-monospace"},us={class:"col text-right text-monospace"},ms={class:"row"},gs={class:"col text-right text-monospace"},hs={class:"col text-right text-monospace"},_s={class:"col text-right text-monospace"},bs={class:"row"},fs={class:"col"},vs={class:"row"},ys={class:"col text-right text-monospace pl-0"},Ts={class:"col text-right text-monospace pl-0"},ws={class:"col text-right text-monospace pl-0"};function xs(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"success","component-id":l.inverter.id,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","solar-panel"]}),g(" "+a(l.inverter.name),1)]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Leistung"),t("div",{class:"col text-right"},"Zählerstand")],-1)),t("div",ds,[t("div",ps,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",us,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1,__:[0]}),c(d,{title:"Erträge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Heute"),t("div",{class:"col text-right"},"Monat"),t("div",{class:"col text-right"},"Jahr")],-1)),t("div",ms,[t("div",gs,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1),t("div",hs,a(s.formatNumberTopic(e.baseTopic+"/get/monthly_exported",1,1,.001))+" kWh ",1),t("div",_s,a(s.formatNumberTopic(e.baseTopic+"/get/yearly_exported",0,0,.001))+" kWh ",1)])]),_:1,__:[1]}),c(d,{title:"Werte pro Phase",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",bs,[o[2]||(o[2]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Strom [A]",-1)),t("div",fs,[t("div",vs,[t("div",ys,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[0]),1),t("div",Ts,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[1]),1),t("div",ws,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[2]),1)])])])]),_:1})]),_:1},8,["component-id","state","state-message"])}const Ws=w(ls,[["render",xs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/InverterCard.vue"]]);C.add(I);const ks={name:"BatterySumCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/bat/get/+"]}},computed:{baseTopic:{get(){return"openWB/bat"}}}},Cs={class:"row"},Bs={class:"col text-right text-monospace pl-0"},Ns={class:"col text-right text-monospace pl-0"},qs={class:"row"},$s={class:"col text-right text-monospace"},Ss={class:"col text-right text-monospace"},As={class:"row"},Ps={class:"col text-right text-monospace"},Is={class:"col text-right text-monospace"};function Os(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"warning",state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","car-battery"]}),o[0]||(o[0]=g(" Alle Speicher ",-1))]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",1,1,.001))+" kW / "+a(s.$store.state.mqtt[e.baseTopic+"/get/soc"])+" % ",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Leistung"),t("div",{class:"col-6 text-right"},"Ladestand")],-1)),t("div",Cs,[t("div",Bs,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",Ns,a(s.$store.state.mqtt[e.baseTopic+"/get/soc"])+" %",1)])]),_:1,__:[1]}),c(d,{title:"Zählerstände",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[4]||(o[4]=t("div",{class:"row"},[t("div",{class:"col"}),t("div",{class:"col text-right"},"Geladen"),t("div",{class:"col text-right"},"Entladen")],-1)),t("div",qs,[o[2]||(o[2]=t("div",{class:"col text-right"},"Heute",-1)),t("div",$s,a(s.formatNumberTopic(e.baseTopic+"/get/daily_imported",3,3,.001))+" kWh ",1),t("div",Ss,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1)]),t("div",As,[o[3]||(o[3]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Ps,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001))+" kWh ",1),t("div",Is,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1,__:[4]})]),_:1},8,["state","state-message"])}const Ls=w(ks,[["render",Os],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/BatterySumCard.vue"]]);C.add(I);const js={name:"BatteryCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{battery:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/bat/${this.battery.id}/get/+`]}},computed:{baseTopic:{get(){return"openWB/bat/"+this.battery.id}}}},Ds={class:"row"},Es={class:"col text-right text-monospace pl-0"},zs={class:"col text-right text-monospace pl-0"},Vs={class:"row"},Ms={class:"col text-right text-monospace"},Gs={class:"col text-right text-monospace"},Zs={class:"row"},Hs={class:"col text-right text-monospace"},Rs={class:"col text-right text-monospace"},Fs={class:"row"},Ks={class:"col"},Qs={class:"row"},Us={class:"col text-right text-monospace pl-0"},Js={class:"col text-right text-monospace pl-0"},Xs={class:"col text-right text-monospace pl-0"};function Ys(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"warning","component-id":l.battery.id,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","car-battery"]}),g(" "+a(l.battery.name),1)]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",1,1,.001))+" kW / "+a(s.$store.state.mqtt[e.baseTopic+"/get/soc"])+" % ",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Leistung"),t("div",{class:"col-6 text-right"},"Ladestand")],-1)),t("div",Ds,[t("div",Es,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",zs,a(s.$store.state.mqtt[e.baseTopic+"/get/soc"])+" %",1)])]),_:1,__:[0]}),c(d,{title:"Zählerstände",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[3]||(o[3]=t("div",{class:"row"},[t("div",{class:"col"}),t("div",{class:"col text-right"},"Geladen"),t("div",{class:"col text-right"},"Entladen")],-1)),t("div",Vs,[o[1]||(o[1]=t("div",{class:"col text-right"},"Heute",-1)),t("div",Ms,a(s.formatNumberTopic(e.baseTopic+"/get/daily_imported",3,3,.001))+" kWh ",1),t("div",Gs,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1)]),t("div",Zs,[o[2]||(o[2]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Hs,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001))+" kWh ",1),t("div",Rs,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1,__:[3]}),c(d,{title:"Werte pro Phase",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",Fs,[o[4]||(o[4]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Strom [A]",-1)),t("div",Ks,[t("div",Qs,[t("div",Us,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[0]),1),t("div",Js,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[1]),1),t("div",Xs,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[2]),1)])])])]),_:1})]),_:1},8,["component-id","state","state-message"])}const to=w(js,[["render",Ys],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/BatteryCard.vue"]]);C.add(X,Y,tt,et,st);const eo={name:"IoDeviceCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{ioDevice:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/io/states/${this.ioDevice.id}/get/+`,"openWB/io/action/+/config","openWB/io/action/+/timestamp"],state:{true:{icon:["fas","square"],title:"Geschlossen",actionTitle:"Aktiv"},false:{icon:["far","square"],title:"Offen",actionTitle:"Inaktiv"}}}},computed:{baseTopic(){return`openWB/io/states/${this.ioDevice.id}`},hasDigitalInputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/digital_input`]||{}).length>0},hasDigitalOutputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/digital_output`]||{}).length>0},hasAnalogInputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/analog_input`]||{}).length>0},hasAnalogOutputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/analog_output`]||{}).length>0},digitalInputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/digital_input`]},digitalOutputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/digital_output`]},analogInputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/analog_input`]},analogOutputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/analog_output`]},ioActionConfigs(){return Object.fromEntries(Object.entries(this.getWildcardTopics("openWB/io/action/+/config")).filter(([,s])=>s.configuration.io_device===this.ioDevice.id))},ioActionState(){return s=>{const o=this.$store.state.mqtt[`openWB/io/action/${s}/timestamp`];return o&&new Date(o*1e3).toLocaleString()}}},methods:{getIcon(s){return this.state[s].icon},getTitle(s){return this.state[s].title},getActionTitle(s){return this.state[s].actionTitle}}},so={class:"col-auto"},oo={class:"col text-right"},ao={class:"row"},ro={class:"row"},io={class:"row"},no={class:"row"};function co(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-alert"),p=n("openwb-base-card"),q=n("status-card");return i(),m(q,{subtype:"secondary",state:s.$store.state.mqtt[`${e.baseTopic}/get/fault_state`],"state-message":s.$store.state.mqtt[`${e.baseTopic}/get/fault_str`],"component-id":l.ioDevice.id},{"header-left":r(()=>[c(u,{icon:["fas","tower-broadcast"]}),g(" "+a(l.ioDevice.name),1)]),default:r(()=>[c(p,{title:"Zugehörige Aktionen",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[Object.keys(e.ioActionConfigs).length===0?(i(),m(d,{key:0,subtype:"info",class:"mb-2"},{default:r(()=>o[0]||(o[0]=[g(" Es wurden noch keine Aktionen erstellt, welche dieses IO-Gerät als Signalquelle verwenden. ",-1)])),_:1,__:[0]})):(i(!0),h(W,{key:1},x(e.ioActionConfigs,(b,f)=>(i(),h("div",{key:f,class:"row"},[t("div",so,[c(u,{title:e.getActionTitle(![void 0,null].includes(e.ioActionState(b.id))),icon:e.getIcon(![void 0,null].includes(e.ioActionState(b.id))),class:"fa-fw"},null,8,["title","icon"]),g(" "+a(b.name),1)]),t("div",oo,a(e.ioActionState(b.id)),1)]))),128))]),_:1}),e.hasDigitalInputs?(i(),m(p,{key:0,title:"Digitale Eingänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",ao,[(i(!0),h(W,null,x(e.digitalInputStates,(b,f)=>(i(),h("div",{key:f,class:"col io-state"},[g(a(f)+": ",1),c(u,{title:e.getTitle(b),icon:e.getIcon(b),class:"fa-fw"},null,8,["title","icon"])]))),128))])]),_:1})):T("",!0),e.hasDigitalOutputs?(i(),m(p,{key:1,title:"Digitale Ausgänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",ro,[(i(!0),h(W,null,x(e.digitalOutputStates,(b,f)=>(i(),h("div",{key:f,class:"col io-state"},[g(a(f)+": ",1),c(u,{title:e.getActionTitle(b),icon:e.getIcon(b),class:"fa-fw"},null,8,["title","icon"])]))),128))])]),_:1})):T("",!0),e.hasAnalogInputs?(i(),m(p,{key:2,title:"Analoge Eingänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",io,[(i(!0),h(W,null,x(e.analogInputStates,(b,f)=>(i(),h("div",{key:f,class:"col io-state"},a(f)+": "+a(b),1))),128))])]),_:1})):T("",!0),e.hasAnalogOutputs?(i(),m(p,{key:3,title:"Analoge Ausgänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",no,[(i(!0),h(W,null,x(e.analogOutputStates,(b,f)=>(i(),h("div",{key:f,class:"col io-state"},a(f)+": "+a(b),1))),128))])]),_:1})):T("",!0)]),_:1},8,["state","state-message","component-id"])}const lo=w(eo,[["render",co],["__scopeId","data-v-356761d0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/IoDeviceCard.vue"]]);C.add(ot);const po={name:"VehicleCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{vehicleKey:{type:String,required:!0},vehicleName:{type:String,default:""}},data(){return{mqttTopicsToSubscribe:["openWB/vehicle/+/get/+"]}},computed:{vehicleIndex:{get(){return parseInt(this.vehicleKey.match(/(?:\/)(\d+)(?=\/)/)[1])}},soc:{get(){return this.formatNumberTopic(this.baseTopic+"/get/soc")}},socTimestamp:{get(){return this.$store.state.mqtt[this.baseTopic+"/get/soc_timestamp"]!==void 0?new Date(this.$store.state.mqtt[this.baseTopic+"/get/soc_timestamp"]*1e3).toLocaleString():"-"}},socRange:{get(){return this.$store.state.mqtt[this.baseTopic+"/get/range"]!==void 0?Math.round(this.$store.state.mqtt[this.baseTopic+"/get/range"]):0}},baseTopic:{get(){return"openWB/vehicle/"+this.vehicleIndex}}}},uo={class:"row"},mo={class:"col text-right text-monospace"},go={class:"col text-right text-monospace"},ho={class:"col text-right text-monospace"};function _o(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"info","component-id":e.vehicleIndex,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},O({"header-left":r(()=>[c(u,{icon:["fas","car"]}),g(" "+a(l.vehicleName),1)]),default:r(()=>[c(d,{title:"Fahrzeugdaten",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col pr-0 text-right"},"Ladestand"),t("div",{class:"col pr-0 text-right"},"Reichweite"),t("div",{class:"col pr-0 text-right"},"Letzter Zeitstempel")],-1)),t("div",uo,[t("div",mo,a(e.soc)+" %",1),t("div",go,a(e.socRange)+" km",1),t("div",ho,a(e.socTimestamp),1)])]),_:1,__:[0]})]),_:2},[e.soc!="-"?{name:"header-right",fn:r(()=>[g(a(e.soc)+" % ",1)]),key:"0"}:void 0]),1032,["component-id","state","state-message"])}const bo=w(po,[["render",_o],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/VehicleCard.vue"]]);C.add(at);it.register(nt,ct,lt,dt,pt,ut,mt,gt,ht);const fo={name:"ElectricityTariffCard",components:{StatusCard:N,FontAwesomeIcon:B,ChartjsLine:_t},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/optional/et/provider","openWB/optional/et/get/fault_state","openWB/optional/et/get/fault_str","openWB/optional/et/get/prices"],chartDatasets:{datasets:[{label:"Stromtarif",unit:"ct/kWh",type:"line",stepped:!0,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:void 0,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:"price"}}]},chartOptions:{plugins:{title:{display:!1},tooltip:{enabled:!0},legend:{display:!1}},elements:{point:{radius:2}},responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{x:{type:"time",time:{unit:"hour",text:"Zeit",maxTicksLimit:24},display:!0,title:{display:!0,text:"Uhrzeit"},ticks:{font:{size:12},maxTicksLimit:0},grid:{}},y:{position:"left",type:"linear",display:"auto",title:{font:{size:12},display:!0,text:"Preis [ct/kWh]"},grid:{},ticks:{font:{size:12},stepSize:.01,maxTicksLimit:11}}}}}},computed:{electricityTariffConfigured(){const s=this.$store.state.mqtt["openWB/optional/et/provider"];return s!==void 0?s.type!==null:!1},chartDataRead(){return this.chartDataObject.datasets[0].data!=null},chartDataObject(){if(this.$store.state.mqtt["openWB/optional/et/get/prices"]){var s=this.$store.state.mqtt["openWB/optional/et/get/prices"],o=[];for(const[y,e]of Object.entries(s))o.push({timestamp:y*1e3,price:e*1e5});const _=o.slice(-1)[0];o.push({timestamp:_.timestamp+(60*60-1)*1e3,price:_.price})}const l=this.chartDatasets;return l.datasets[0].data=o,l},currentPrice(){return this.chartDataObject.datasets[0].data===void 0||this.chartDataObject.datasets[0].data.length===0?this.formatNumber(0,2):this.formatNumber(this.chartDataObject.datasets[0].data[0].price||0,2)},baseTopic:{get(){return"openWB/optional/et"}}}},vo={class:"openwb-chart"};function yo(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("chartjs-line"),p=n("openwb-base-card"),q=n("status-card");return e.electricityTariffConfigured?(i(),m(q,{key:0,subtype:"secondary",state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","ranking-star"]}),o[0]||(o[0]=g(" Variabler Stromtarif ",-1))]),"header-right":r(()=>[g(a(e.currentPrice)+" ct/kWh",1)]),default:r(()=>[c(p,{title:"Anbieter: "+s.$store.state.mqtt[e.baseTopic+"/provider"].name,subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",vo,[e.chartDataRead?(i(),m(d,{key:0,ref:"myChart",data:e.chartDataObject,options:y.chartOptions},null,8,["data","options"])):T("",!0)])]),_:1},8,["title"])]),_:1},8,["state","state-message"])):T("",!0)}const To=w(fo,[["render",yo],["__scopeId","data-v-f4769d2f"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ElectricityTariffCard.vue"]]);const wo={name:"OpenwbStatusView",components:{ChargePointSumCard:Lt,ChargePointCard:ve,CounterCard:Xe,InverterSumCard:cs,InverterCard:Ws,BatterySumCard:Ls,BatteryCard:to,IoDeviceCard:lo,VehicleCard:bo,ElectricityTariffCard:To},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/device/+/component/+/config","openWB/system/io/+/config","openWB/vehicle/+/name","openWB/chargepoint/+/config"]}},computed:{installedChargePoints:{get(){let s=this.getWildcardTopics("openWB/chargepoint/+/config"),o={};for(const[l,_]of Object.entries(s))(_.type==="internal_openwb"||this.$store.state.mqtt["openWB/general/extern"]===!1)&&(o[l]=_);return o}},numChargePointsInstalled:{get(){return Object.keys(this.installedChargePoints).length}},counterConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"counter")}},ioDeviceConfigs:{get(){return this.getWildcardTopics("openWB/system/io/+/config")}},numInvertersInstalled:{get(){return Object.keys(this.inverterConfigs).length}},inverterConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"inverter")}},numBatteriesInstalled:{get(){return Object.keys(this.batteryConfigs).length}},batteryConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"bat")}},vehicleNames:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.getWildcardTopics("openWB/vehicle/+/name")}}},methods:{filterComponentsByType(s,o){return Object.keys(s).filter(l=>s[l].type.includes(o)).reduce((l,_)=>({...l,[_]:s[_]}),{})}}},xo={class:"status"};function Wo(s,o,l,_,y,e){const u=n("charge-point-sum-card"),d=n("charge-point-card"),p=n("counter-card"),q=n("inverter-sum-card"),b=n("inverter-card"),f=n("battery-sum-card"),L=n("battery-card"),j=n("vehicle-card"),D=n("io-device-card"),E=n("electricity-tariff-card");return i(),h("div",xo,[e.numChargePointsInstalled>1&&s.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m(u,{key:0})):T("",!0),(i(!0),h(W,null,x(e.installedChargePoints,(v,$)=>(i(),m(d,{key:$,"installed-charge-point":v,"installed-charge-point-key":$},null,8,["installed-charge-point","installed-charge-point-key"]))),128)),(i(!0),h(W,null,x(e.counterConfigs,v=>(i(),m(p,{key:v.id,counter:v},null,8,["counter"]))),128)),e.numInvertersInstalled>1&&s.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m(q,{key:1})):T("",!0),(i(!0),h(W,null,x(e.inverterConfigs,v=>(i(),m(b,{key:v.id,inverter:v},null,8,["inverter"]))),128)),e.numBatteriesInstalled>1&&s.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m(f,{key:2})):T("",!0),(i(!0),h(W,null,x(e.batteryConfigs,v=>(i(),m(L,{key:v.id,battery:v},null,8,["battery"]))),128)),(i(!0),h(W,null,x(e.vehicleNames,(v,$)=>(i(),m(j,{key:$,"vehicle-key":$,"vehicle-name":v},null,8,["vehicle-key","vehicle-name"]))),128)),(i(!0),h(W,null,x(e.ioDeviceConfigs,v=>(i(),m(D,{key:v.id,"io-device":v},null,8,["io-device"]))),128)),s.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m(E,{key:3})):T("",!0)])}const Io=w(wo,[["render",Wo],["__scopeId","data-v-051028a3"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Status.vue"]]);export{Io as default}; diff --git a/web/settings/assets/Support-25ac4d94.js b/web/settings/assets/Support-25ac4d94.js new file mode 100644 index 0000000000..d7019ad7da --- /dev/null +++ b/web/settings/assets/Support-25ac4d94.js @@ -0,0 +1,3 @@ +import{l as S,g as D,F as V}from"./vendor-fortawesome-a02b6813.js";import{C as W}from"./index-8dd8e083.js";import{_ as A,u,l as f,m as c,A as r,x as k,E as s,G as o,D as z,z as w,B as n,q as C}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";S.add(D);const F={name:"OpenwbSupportView",components:{FontAwesomeIcon:V},mixins:[W],emits:["sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/dataprotection_acknowledged","openWB/system/serial_number","openWB/system/device/+/config","openWB/system/device/+/component/+/config","openWB/vehicle/+/name","openWB/vehicle/+/info"],email:void 0,components:void 0,vehicles:void 0,message:void 0,enableSendDebugButton:!0}},computed:{debugData(){return{email:this.email,serialNumber:this.$store.state.mqtt["openWB/system/serial_number"],installedComponents:this.installedComponents,vehicles:this.vehicleInfo,message:this.message}},installedComponents(){var b,p;if(this.components!==void 0)return this.components;let i="";const e=this.getWildcardTopics("openWB/system/device/+/component/+/config");for(const t of Object.values(e)){const a=t.id,d=((b=t.info)==null?void 0:b.manufacturer)||"N/A",m=((p=t.info)==null?void 0:p.model)||"N/A";i+=`(${a}) Hersteller: ${d}, Modell: ${m} +`}return i.trim()},vehicleInfo(){if(this.vehicles!==void 0)return this.vehicles;let i="";const e=this.getWildcardTopics("openWB/vehicle/+/info");for(const[b,p]of Object.entries(e)){const t=parseInt(b.split("/")[2]);if(t!==0){const a=p.manufacturer||"N/A",d=p.model||"N/A";i+=`(${t}) Hersteller: ${a}, Modell: ${d} +`}}return i.trim()}},methods:{sendDebugMessage(){if(document.forms.supportForm.reportValidity())this.$emit("sendCommand",{command:"sendDebug",data:this.debugData}),this.enableSendDebugButton=!1;else{console.warn("form invalid");return}}}},x={class:"support"},q={name:"supportForm"},I={key:1},N={key:0},T={class:"row justify-content-center"};function M(i,e,b,p,t,a){const d=u("router-link"),m=u("openwb-base-alert"),v=u("FontAwesomeIcon"),h=u("openwb-base-text-input"),g=u("openwb-base-textarea"),y=u("openwb-base-click-button"),B=u("openwb-base-card"),_=u("font-awesome-icon");return f(),c("div",x,[r("form",q,[i.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(f(),k(m,{key:0,subtype:"danger"},{default:s(()=>[e[6]||(e[6]=n(" Du musst der ",-1)),o(d,{to:"/System/LegalSettings"},{default:s(()=>e[5]||(e[5]=[n(" Datenschutzerklärung ",-1)])),_:1,__:[5]}),e[7]||(e[7]=n(" zustimmen, um einen Systembericht senden zu können. ",-1))]),_:1,__:[6,7]})):(f(),c("div",I,[o(m,{subtype:"success"},{default:s(()=>[e[9]||(e[9]=n(" Du hast der ",-1)),o(d,{to:"/System/LegalSettings"},{default:s(()=>e[8]||(e[8]=[n(" Datenschutzerklärung ",-1)])),_:1,__:[8]}),e[10]||(e[10]=n(" zugestimmt und kannst Systemberichte senden. ",-1))]),_:1,__:[9,10]}),o(B,{title:"Systembericht"},z({default:s(()=>[i.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?(f(),c("div",N,[o(m,{subtype:"danger"},{default:s(()=>e[11]||(e[11]=[n(' Vergewissere Dich, dass mindestens die aktuelle "Release" Version installiert ist. ',-1)])),_:1,__:[11]}),o(m,{subtype:"info"},{default:s(()=>[r("ul",null,[r("li",null,[e[12]||(e[12]=n(" Lies bitte den Hilfetext, der durch Klick auf das ",-1)),o(v,{icon:["far","question-circle"]}),e[13]||(e[13]=n(" angezeigt wird. Nimm das Wiki zur Hilfe. ",-1))]),e[14]||(e[14]=r("li",null," Stelle beim Absenden des Berichtes die Fehlerkonditionen her. Lädt ein Fahrzeug nicht, sollte es angeschlossen und nicht voll geladen sein. Ist PV laden betroffen, sollte die Sonne auch scheinen. Der Systembericht muss dann versendet werden, wenn der Fehler aktuell vorliegt. ",-1)),e[15]||(e[15]=r("li",null," Stelle sicher, dass der richtige Lademodus gewählt ist und im Falle von nicht ladenden Fahrzeugen, dass der Ladepunkt auch entsperrt wurde. ",-1)),e[16]||(e[16]=r("li",null," Das Auslesen der Systemkonfiguration erfolgt direkt nach den Klick auf Absenden und kann einige Zeit in Anspruch nehmen. Du erhältst ca. 15 bis 30 Minuten nach Versand des Systemberichtes von uns automatisch eine E-Mail mit der Ticketnummer unter der die Anfrage bei uns registriert wurde. Wir melden uns bei Dir. Bitte kontrolliere daher immer auch den Spam Ordner auf eingehende Nachrichten. Erhältst Du trotzdem keine Ticketnummer, ist das Versenden des Systemberichtes vermutlich fehlgeschlagen. ",-1))])]),_:1}),o(h,{modelValue:t.email,"onUpdate:modelValue":e[0]||(e[0]=l=>t.email=l),title:"E-Mail",required:"",subtype:"email"},{help:s(()=>e[17]||(e[17]=[n(" Deine E-Mail-Adresse, an die der Support Dir antwortet. ",-1)])),_:1},8,["modelValue"]),o(h,{title:"openWB Seriennummer",required:"","model-value":i.$store.state.mqtt["openWB/system/serial_number"],"onUpdate:modelValue":e[1]||(e[1]=l=>i.updateState("openWB/system/serial_number",l))},{help:s(()=>e[18]||(e[18]=[n(" Die Seriennummer der openWB findest Du außen am, bei älteren Installationen innen im Gehäuse. Du kannst uns aber auch eine Bestellnummer oder Rechnungsnummer übermitteln. Das Gehäuse muss nicht extra geöffnet werden!",-1),r("br",null,null,-1),n(" Bei einer gekauften openWB wird die Seriennummer automatisch ermittelt. ",-1)])),_:1},8,["model-value"]),o(g,{title:"Verwendete Komponenten",required:"",minlength:"3",maxlength:"500","model-value":a.installedComponents,"onUpdate:modelValue":e[2]||(e[2]=l=>t.components=l)},{help:s(()=>[e[20]||(e[20]=n(" Gib hier möglichst detailliert an, welche Anlagenkomponenten (EVU, PV, Speicher) angebunden sind.",-1)),e[21]||(e[21]=r("br",null,null,-1)),o(d,{to:"/HardwareInstallation"},{default:s(()=>e[19]||(e[19]=[n(" Die Angaben können auch direkt in der Konfiguration der Komponenten dauerhaft gespeichert werden. ",-1)])),_:1,__:[19]})]),_:1},8,["model-value"]),o(g,{title:"Fahrzeuge",required:"",minlength:"3",maxlength:"500","model-value":a.vehicleInfo,"onUpdate:modelValue":e[3]||(e[3]=l=>t.vehicles=l)},{help:s(()=>[e[23]||(e[23]=n(" Gib hier an, welche Fahrzeuge geladen (Hersteller, Modell, Baujahr).",-1)),e[24]||(e[24]=r("br",null,null,-1)),o(d,{to:"/VehicleConfiguration"},{default:s(()=>e[22]||(e[22]=[n(" Die Angaben können auch direkt in der Konfiguration der Fahrzeuge dauerhaft gespeichert werden. ",-1)])),_:1,__:[22]})]),_:1},8,["model-value"]),o(g,{modelValue:t.message,"onUpdate:modelValue":e[4]||(e[4]=l=>t.message=l),title:"Problembeschreibung",required:"",minlength:"20",maxlength:"500"},null,8,["modelValue"])])):w("",!0)]),_:2},[i.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:s(()=>[r("div",T,[o(y,{class:C(["col-4",t.enableSendDebugButton?"btn-success":"btn-outline-success"]),disabled:!t.enableSendDebugButton,onButtonClicked:a.sendDebugMessage},{default:s(()=>e[25]||(e[25]=[n(" Absenden ",-1)])),_:1,__:[25]},8,["class","disabled","onButtonClicked"])])]),key:"0"}:void 0]),1024),t.enableSendDebugButton?w("",!0):(f(),k(m,{key:0,subtype:"success"},{default:s(()=>[e[26]||(e[26]=n(" Die Daten für den Fehlerbericht werden im Hintergrund zusammengestellt. Du kannst diese Seite jetzt verlassen. ",-1)),o(_,{icon:["fas","check"]})]),_:1,__:[26]}))]))])])}const $=A(F,[["render",M],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Support.vue"]]);export{$ as default}; diff --git a/web/settings/assets/Support-31be3475.js b/web/settings/assets/Support-31be3475.js deleted file mode 100644 index 2c752396e0..0000000000 --- a/web/settings/assets/Support-31be3475.js +++ /dev/null @@ -1,3 +0,0 @@ -import{l as D,g as V,F as W}from"./vendor-fortawesome-2b3791bb.js";import{C as A}from"./index-0992d19b.js";import{_ as z,u,l as f,m as c,A as r,x as k,E as s,G as o,D as C,z as w,B as n,q as F}from"./vendor-36bf053b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";D.add(V);const _={name:"OpenwbSupportView",components:{FontAwesomeIcon:W},mixins:[A],emits:["sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/dataprotection_acknowledged","openWB/system/serial_number","openWB/system/device/+/config","openWB/system/device/+/component/+/config","openWB/vehicle/+/name","openWB/vehicle/+/info"],email:void 0,components:void 0,vehicles:void 0,message:void 0,enableSendDebugButton:!0}},computed:{debugData(){return{email:this.email,serialNumber:this.$store.state.mqtt["openWB/system/serial_number"],installedComponents:this.installedComponents,vehicles:this.vehicleInfo,message:this.message}},installedComponents(){var b,p;if(this.components!==void 0)return this.components;let i="";const e=this.getWildcardTopics("openWB/system/device/+/component/+/config");for(const t of Object.values(e)){const a=t.id,d=((b=t.info)==null?void 0:b.manufacturer)||"N/A",m=((p=t.info)==null?void 0:p.model)||"N/A";i+=`(${a}) Hersteller: ${d}, Modell: ${m} -`}return i.trim()},vehicleInfo(){if(this.vehicles!==void 0)return this.vehicles;let i="";const e=this.getWildcardTopics("openWB/vehicle/+/info");for(const[b,p]of Object.entries(e)){const t=parseInt(b.split("/")[2]);if(t!==0){const a=p.manufacturer||"N/A",d=p.model||"N/A";i+=`(${t}) Hersteller: ${a}, Modell: ${d} -`}}return i.trim()}},methods:{sendDebugMessage(){if(document.forms.supportForm.reportValidity())this.$emit("sendCommand",{command:"sendDebug",data:this.debugData}),this.enableSendDebugButton=!1;else{console.warn("form invalid");return}}}},x={class:"support"},q={name:"supportForm"},I={key:1},N={key:0},T={class:"row justify-content-center"};function M(i,e,b,p,t,a){const d=u("router-link"),m=u("openwb-base-alert"),v=u("FontAwesomeIcon"),h=u("openwb-base-text-input"),g=u("openwb-base-textarea"),y=u("openwb-base-click-button"),B=u("openwb-base-card"),S=u("font-awesome-icon");return f(),c("div",x,[r("form",q,[i.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(f(),k(m,{key:0,subtype:"danger"},{default:s(()=>[e[6]||(e[6]=n(" Du musst der ",-1)),o(d,{to:"/System/LegalSettings"},{default:s(()=>[...e[5]||(e[5]=[n(" Datenschutzerklärung ",-1)])]),_:1}),e[7]||(e[7]=n(" zustimmen, um einen Systembericht senden zu können. ",-1))]),_:1})):(f(),c("div",I,[o(m,{subtype:"success"},{default:s(()=>[e[9]||(e[9]=n(" Du hast der ",-1)),o(d,{to:"/System/LegalSettings"},{default:s(()=>[...e[8]||(e[8]=[n(" Datenschutzerklärung ",-1)])]),_:1}),e[10]||(e[10]=n(" zugestimmt und kannst Systemberichte senden. ",-1))]),_:1}),o(B,{title:"Systembericht"},C({default:s(()=>[i.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?(f(),c("div",N,[o(m,{subtype:"danger"},{default:s(()=>[...e[11]||(e[11]=[n(' Vergewissere Dich, dass mindestens die aktuelle "Release" Version installiert ist. ',-1)])]),_:1}),o(m,{subtype:"info"},{default:s(()=>[r("ul",null,[r("li",null,[e[12]||(e[12]=n(" Lies bitte den Hilfetext, der durch Klick auf das ",-1)),o(v,{icon:["far","question-circle"]}),e[13]||(e[13]=n(" angezeigt wird. Nimm das Wiki zur Hilfe. ",-1))]),e[14]||(e[14]=r("li",null," Stelle beim Absenden des Berichtes die Fehlerkonditionen her. Lädt ein Fahrzeug nicht, sollte es angeschlossen und nicht voll geladen sein. Ist PV laden betroffen, sollte die Sonne auch scheinen. Der Systembericht muss dann versendet werden, wenn der Fehler aktuell vorliegt. ",-1)),e[15]||(e[15]=r("li",null," Stelle sicher, dass der richtige Lademodus gewählt ist und im Falle von nicht ladenden Fahrzeugen, dass der Ladepunkt auch entsperrt wurde. ",-1)),e[16]||(e[16]=r("li",null," Das Auslesen der Systemkonfiguration erfolgt direkt nach den Klick auf Absenden und kann einige Zeit in Anspruch nehmen. Du erhältst ca. 15 bis 30 Minuten nach Versand des Systemberichtes von uns automatisch eine E-Mail mit der Ticketnummer unter der die Anfrage bei uns registriert wurde. Wir melden uns bei Dir. Bitte kontrolliere daher immer auch den Spam Ordner auf eingehende Nachrichten. Erhältst Du trotzdem keine Ticketnummer, ist das Versenden des Systemberichtes vermutlich fehlgeschlagen. ",-1))])]),_:1}),o(h,{modelValue:t.email,"onUpdate:modelValue":e[0]||(e[0]=l=>t.email=l),title:"E-Mail",required:"",subtype:"email"},{help:s(()=>[...e[17]||(e[17]=[n(" Deine E-Mail-Adresse, an die der Support Dir antwortet. ",-1)])]),_:1},8,["modelValue"]),o(h,{title:"openWB Seriennummer",required:"","model-value":i.$store.state.mqtt["openWB/system/serial_number"],"onUpdate:modelValue":e[1]||(e[1]=l=>i.updateState("openWB/system/serial_number",l))},{help:s(()=>[...e[18]||(e[18]=[n(" Die Seriennummer der openWB findest Du außen am, bei älteren Installationen innen im Gehäuse. Du kannst uns aber auch eine Bestellnummer oder Rechnungsnummer übermitteln. Das Gehäuse muss nicht extra geöffnet werden!",-1),r("br",null,null,-1),n(" Bei einer gekauften openWB wird die Seriennummer automatisch ermittelt. ",-1)])]),_:1},8,["model-value"]),o(g,{title:"Verwendete Komponenten",required:"",minlength:"3",maxlength:"500","model-value":a.installedComponents,"onUpdate:modelValue":e[2]||(e[2]=l=>t.components=l)},{help:s(()=>[e[20]||(e[20]=n(" Gib hier möglichst detailliert an, welche Anlagenkomponenten (EVU, PV, Speicher) angebunden sind.",-1)),e[21]||(e[21]=r("br",null,null,-1)),o(d,{to:"/HardwareInstallation"},{default:s(()=>[...e[19]||(e[19]=[n(" Die Angaben können auch direkt in der Konfiguration der Komponenten dauerhaft gespeichert werden. ",-1)])]),_:1})]),_:1},8,["model-value"]),o(g,{title:"Fahrzeuge",required:"",minlength:"3",maxlength:"500","model-value":a.vehicleInfo,"onUpdate:modelValue":e[3]||(e[3]=l=>t.vehicles=l)},{help:s(()=>[e[23]||(e[23]=n(" Gib hier an, welche Fahrzeuge geladen (Hersteller, Modell, Baujahr).",-1)),e[24]||(e[24]=r("br",null,null,-1)),o(d,{to:"/VehicleConfiguration"},{default:s(()=>[...e[22]||(e[22]=[n(" Die Angaben können auch direkt in der Konfiguration der Fahrzeuge dauerhaft gespeichert werden. ",-1)])]),_:1})]),_:1},8,["model-value"]),o(g,{modelValue:t.message,"onUpdate:modelValue":e[4]||(e[4]=l=>t.message=l),title:"Problembeschreibung",required:"",minlength:"20",maxlength:"500"},null,8,["modelValue"])])):w("",!0)]),_:2},[i.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:s(()=>[r("div",T,[o(y,{class:F(["col-4",t.enableSendDebugButton?"btn-success":"btn-outline-success"]),disabled:!t.enableSendDebugButton,onButtonClicked:a.sendDebugMessage},{default:s(()=>[...e[25]||(e[25]=[n(" Absenden ",-1)])]),_:1},8,["class","disabled","onButtonClicked"])])]),key:"0"}:void 0]),1024),t.enableSendDebugButton?w("",!0):(f(),k(m,{key:0,subtype:"success"},{default:s(()=>[e[26]||(e[26]=n(" Die Daten für den Fehlerbericht werden im Hintergrund zusammengestellt. Du kannst diese Seite jetzt verlassen. ",-1)),o(S,{icon:["fas","check"]})]),_:1}))]))])])}const $=z(_,[["render",M],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Support.vue"]]);export{$ as default}; diff --git a/web/settings/assets/System-5edeb34f.js b/web/settings/assets/System-5edeb34f.js deleted file mode 100644 index bc7cc949a8..0000000000 --- a/web/settings/assets/System-5edeb34f.js +++ /dev/null @@ -1 +0,0 @@ -import{l as z,ar as E,u as U,af as x,a3 as L,as as F,F as j}from"./vendor-fortawesome-2b3791bb.js";import{C as D}from"./index-0992d19b.js";import{_ as R,u as g,l as p,m as y,x as B,E as i,z as h,G as r,A as a,q as W,N as V,M as A,F as k,B as l}from"./vendor-36bf053b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";z.add(E,U,x,L,F);const T={name:"OpenwbSystemView",components:{FontAwesomeIcon:j},mixins:[D],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/system/optionBackup","openWB/system/secondary_auto_update","openWB/system/current_commit","openWB/system/current_branch_commit","openWB/system/current_missing_commits","openWB/system/available_branches","openWB/system/current_branch","openWB/system/version","openWB/system/serial_number","openWB/system/ip_address","openWB/system/mac_address","openWB/chargepoint/+/get/version","openWB/chargepoint/+/get/current_branch","openWB/chargepoint/+/config","openWB/general/extern"],warningAcknowledged:!1,selectedTag:"*HEAD*"}},computed:{externalChargepoints:{get(){let t=this.getWildcardTopics("openWB/chargepoint/+/config"),e={};for(const[u,c]of Object.entries(t))c.type==="external_openwb"&&(e[u]=c);return e}},updateAvailable(){return this.$store.state.mqtt["openWB/system/current_branch_commit"]&&this.$store.state.mqtt["openWB/system/current_branch_commit"]!=this.$store.state.mqtt["openWB/system/current_commit"]},releaseChangeValid(){return this.$store.state.mqtt["openWB/system/current_branch"]in this.$store.state.mqtt["openWB/system/available_branches"]&&"tags"in this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]]&&this.selectedTag in this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]].tags},branchGroups(){const t="Release",e="Beta",u="master",c=[t,e],b=(d,f)=>d.value==f.value?0:d.value==t?-1:f.value==t?1:d.value==e?-1:f.value==e?1:d.value==u?-1:f.value==u||d.value>f.value?1:d.value{const m=d=>{const f=d.split("-"),v=f[0].split(".");let w=[];return f.length>1?w=f[1].split("."):w=["release","0"],{semver:v,suffix:w}},o=m(c.value),n=m(b.value);if(o.semver[0]=="*HEAD*")return-1;if(n.semver[0]=="*HEAD*")return 1;if(o.semver[0]>n.semver[0])return-1;if(o.semver[0]n.semver[1])return-1;if(o.semver[1]n.semver[2])return-1;if(o.semver[2]n.suffix[1])return-1;if(o.suffix[1]n.suffix[1])return-1;if(o.suffix[1]n.suffix[1])return-1;if(o.suffix[1]n.suffix[1])return-1;if(o.suffix[1]t[u].type.includes(e)).reduce((u,c)=>({...u,[c]:t[c]}),{})}}},I={class:"system"},P={key:1},N={name:"versionInfoForm"},O={class:"missing-commits"},Z={class:"row justify-content-center"},G={class:"col-md-4 d-flex py-1 justify-content-center"},H={class:"col-md-4 d-flex py-1 justify-content-center"},J={key:3},M={key:0},K={class:"table table-striped"},Q={key:0,name:"powerForm"},X={class:"row justify-content-center"},Y={class:"col-md-4 d-flex py-1 justify-content-center"},ee={class:"col-md-4 d-flex py-1 justify-content-center"},te={key:1,name:"releaseChangeForm"},se={class:"row justify-content-center"},ne={class:"col-md-4 d-flex py-1 justify-content-center"};function re(t,e,u,c,b,m){const o=g("openwb-base-button-group-input"),n=g("openwb-base-alert"),d=g("openwb-base-text-input"),f=g("openwb-base-card"),v=g("font-awesome-icon"),w=g("openwb-base-click-button"),q=g("openwb-base-heading"),S=g("openwb-base-submit-buttons"),C=g("router-link"),_=g("openwb-base-select-input");return p(),y("div",I,[u.installAssistantActive?h("",!0):(p(),B(n,{key:0,subtype:"danger"},{default:i(()=>[e[18]||(e[18]=a("h2",null,"Achtung!",-1)),e[19]||(e[19]=a("p",null," Vor allen Aktionen auf dieser Seite ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)),r(o,{modelValue:b.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=s=>b.warningAcknowledged=s),title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"])]),_:1})),b.warningAcknowledged||u.installAssistantActive?(p(),y("div",P,[r(f,{title:"System Information",subtype:"info",collapsible:!0,collapsed:!0},{default:i(()=>[r(d,{modelValue:t.$store.state.mqtt["openWB/system/serial_number"],"onUpdate:modelValue":e[1]||(e[1]=s=>t.$store.state.mqtt["openWB/system/serial_number"]=s),title:"Seriennummer",readonly:""},null,8,["modelValue"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/ip_address"],"onUpdate:modelValue":e[2]||(e[2]=s=>t.$store.state.mqtt["openWB/system/ip_address"]=s),title:"IP-Adresse",readonly:""},null,8,["modelValue"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/mac_address"],"onUpdate:modelValue":e[3]||(e[3]=s=>t.$store.state.mqtt["openWB/system/mac_address"]=s),title:"MAC-Adresse",readonly:""},null,8,["modelValue"])]),_:1}),r(f,{title:"Versions-Informationen / Aktualisierung",subtype:"success",collapsible:!0,collapsed:!u.installAssistantActive},{default:i(()=>[a("form",N,[r(d,{modelValue:t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[4]||(e[4]=s=>t.$store.state.mqtt["openWB/system/current_branch"]=s),title:"Entwicklungszweig",readonly:""},null,8,["modelValue"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/version"],"onUpdate:modelValue":e[5]||(e[5]=s=>t.$store.state.mqtt["openWB/system/version"]=s),title:"Bezeichnung",readonly:""},null,8,["modelValue"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/current_commit"],"onUpdate:modelValue":e[6]||(e[6]=s=>t.$store.state.mqtt["openWB/system/current_commit"]=s),title:"installierte Version",readonly:"",class:W(m.updateAvailable?"text-danger":"text-success")},null,8,["modelValue","class"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/current_branch_commit"],"onUpdate:modelValue":e[7]||(e[7]=s=>t.$store.state.mqtt["openWB/system/current_branch_commit"]=s),title:"aktuellste Version",readonly:""},null,8,["modelValue"]),m.updateAvailable?(p(),B(f,{key:0,title:"Änderungen",subtype:"info",collapsible:!0,collapsed:!0},{default:i(()=>[a("ul",O,[(p(!0),y(V,null,A(t.$store.state.mqtt["openWB/system/current_missing_commits"],(s,$)=>(p(),y("li",{key:$},k(s),1))),128))])]),_:1})):h("",!0),u.installAssistantActive?h("",!0):(p(),B(n,{key:1,subtype:"danger"},{default:i(()=>[...e[20]||(e[20]=[l(" Nach einem Update wird die Ladestation direkt neu gestartet! Es werden alle eventuell vorhandenen lokalen Änderungen am Programmcode mit dem Update verworfen! ",-1)])]),_:1})),t.$store.state.mqtt["openWB/system/current_branch"]!="Release"&&!u.installAssistantActive?(p(),B(n,{key:2,subtype:"danger"},{default:i(()=>[...e[21]||(e[21]=[l(' Du bist nicht auf dem für den normalen Gebrauch empfohlenen Entwicklungszweig "Release". Wir empfehlen, auf diesen Zweig zu wechseln, sobald dort eine neue Version verfügbar ist.',-1),a("br",null,null,-1),l(" Bevor ein Update angestoßen wird, sollte immer eine Sicherung erstellt werden! Es kann zwar wieder auf eine ältere Version gewechselt werden, jedoch ist nicht sichergestellt, dass es dabei keine Probleme gibt. Gerade wenn das Datenformat in der neuen Version angepasst wurde, wird eine ältere damit Fehler produzieren. ",-1)])]),_:1})):h("",!0),a("div",Z,[a("div",G,[r(w,{class:"btn-info",onButtonClicked:e[8]||(e[8]=s=>m.sendSystemCommand("systemFetchVersions"))},{default:i(()=>[e[22]||(e[22]=l(" Informationen aktualisieren ",-1)),r(v,{icon:["fas","download"]})]),_:1})]),a("div",H,[r(w,{class:W(m.updateAvailable?"btn-success clickable":"btn-outline-success"),disabled:!m.updateAvailable,onButtonClicked:e[9]||(e[9]=s=>m.systemUpdate())},{default:i(()=>[e[23]||(e[23]=l(" Update ",-1)),r(v,{icon:["fas","arrow-alt-circle-up"]})]),_:1},8,["class","disabled"])])]),t.$store.state.mqtt["openWB/general/extern"]!=!0&&!u.installAssistantActive?(p(),y("div",J,[e[28]||(e[28]=a("hr",null,null,-1)),r(q,null,{default:i(()=>[...e[24]||(e[24]=[l("Automatisches Update von Secondary openWBs",-1)])]),_:1}),r(n,{subtype:"info"},{default:i(()=>[...e[25]||(e[25]=[l(' Die automatische Updatefunktion für Secondary openWBs ist nur verfügbar, wenn sich die Primary openWB auf dem Entwicklungszweig "Release" befindet. Das Update wird nur auf Secondary openWBs durchgeführt, welche sich ebenfalls auf dem Entwicklungszweig "Release" befinden. Ist die dort installierte Releaseversion zu alt, muss ein einmaliges Update auf die aktuelle Version manuell auf der betroffenen openWB durchgeführt werden. ',-1)])]),_:1}),t.$store.state.mqtt["openWB/system/current_branch"]=="Release"?(p(),y("div",M,[r(o,{title:"Secondary openWBs automatisch mit der Primary updaten",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/system/secondary_auto_update"],"onUpdate:modelValue":e[10]||(e[10]=s=>t.updateState("openWB/system/secondary_auto_update",s))},{help:i(()=>[...e[26]||(e[26]=[l(' Diese Option ist nur auf dem Entwicklungszweig "Release" verfügbar. Ist diese Option aktiviert, dann werden Secondary openWBs, welche sich ebenfalls auf dem Entwicklungszweig "Release" befinden gleichzeitig mit der Primary openWB aktualisiert. ',-1)])]),_:1},8,["model-value"]),a("table",K,[e[27]||(e[27]=a("thead",null,[a("tr",null,[a("th",null,"Secondary"),a("th",null,"Software-Status"),a("th",null,"IP-Adresse")])],-1)),a("tbody",null,[(p(!0),y(V,null,A(m.externalChargepoints,s=>(p(),y("tr",{key:s.id},[a("td",null,k(s.name),1),a("td",null,k(t.$store.state.mqtt["openWB/chargepoint/"+s.id+"/get/current_branch"]===void 0?"Version zu alt oder openWB ist nicht erreichbar. Bitte manuell updaten bzw. prüfen.":t.$store.state.mqtt["openWB/chargepoint/"+s.id+"/get/current_branch"]!="Release"?"Secondary ist nicht auf dem Release-Zweig. Bitte manuell updaten.":t.$store.state.mqtt["openWB/chargepoint/"+s.id+"/get/current_branch"]+" "+t.$store.state.mqtt["openWB/chargepoint/"+s.id+"/get/version"]),1),a("td",null,k(s.configuration.ip_address),1)]))),128))])]),r(S,{"form-name":"versionInfoForm","hide-defaults":!0,onSave:e[11]||(e[11]=s=>t.$emit("save")),onReset:e[12]||(e[12]=s=>t.$emit("reset"))})])):h("",!0)])):h("",!0)])]),_:1},8,["collapsed"]),u.installAssistantActive?h("",!0):(p(),y("form",Q,[r(f,{title:"Betrieb",collapsible:!0,collapsed:!0},{footer:i(()=>[a("div",X,[a("div",Y,[r(w,{class:"btn-warning",onButtonClicked:e[13]||(e[13]=s=>m.sendSystemCommand("systemReboot"))},{default:i(()=>[e[35]||(e[35]=l(" Neustart ",-1)),r(v,{icon:["fas","undo"]})]),_:1})]),a("div",ee,[r(w,{class:"btn-danger",onButtonClicked:e[14]||(e[14]=s=>m.sendSystemCommand("systemShutdown"))},{default:i(()=>[e[36]||(e[36]=l(" Ausschalten ",-1)),r(v,{icon:["fas","power-off"]})]),_:1})])])]),default:i(()=>[r(n,{subtype:"danger"},{default:i(()=>[...e[29]||(e[29]=[l(" Wenn die Ladestation ausgeschaltet wird, muss sie komplett spannungsfrei geschaltet werden. Erst beim erneuten Zuschalten der Spannung fährt das System wieder hoch. ",-1)])]),_:1}),r(n,{subtype:"info"},{default:i(()=>[e[31]||(e[31]=l(" Ein Neustart löscht wichtige Protokolle, die bei der Fehlersuche helfen können. ",-1)),e[32]||(e[32]=a("br",null,null,-1)),e[33]||(e[33]=l("Tipp: Erstelle stattdessen zuerst einen ",-1)),r(C,{to:"/System/Support"},{default:i(()=>[...e[30]||(e[30]=[l(" Systembericht ",-1)])]),_:1}),e[34]||(e[34]=l(" – das hilft oft mehr und bewahrt alle relevanten Logs. ",-1))]),_:1})]),_:1})])),u.installAssistantActive?h("",!0):(p(),y("form",te,[r(f,{title:"Entwicklungszweig",subtype:"danger",collapsible:!0,collapsed:!0},{footer:i(()=>[a("div",se,[a("div",ne,[r(w,{class:W(m.releaseChangeValid?"btn-danger clickable":"btn-outline-danger"),disabled:!m.releaseChangeValid,onButtonClicked:e[17]||(e[17]=s=>m.switchBranch())},{default:i(()=>[r(v,{icon:["fas","skull-crossbones"]}),e[39]||(e[39]=l(" Branch und Tag wechseln ",-1)),r(v,{icon:["fas","skull-crossbones"]})]),_:1},8,["class","disabled"])])])]),default:i(()=>[r(n,{subtype:"danger"},{default:i(()=>[...e[37]||(e[37]=[l(" Nach einem Wechsel wird die Ladestation direkt neu gestartet! Es werden alle lokalen Änderungen mit dem Wechsel verworfen! ",-1)])]),_:1}),r(n,{subtype:"warning"},{default:i(()=>[...e[38]||(e[38]=[l(" Bevor auf einen neuen Entwicklungszweig gewechselt wird sollte immer eine Sicherung erstellt werden! Es kann zwar wieder auf eine ältere Version gewechselt werden, jedoch ist nicht sichergestellt, dass es dabei keine Probleme gibt. Gerade wenn das Datenformat in der neuen Version angepasst wurde, wird eine ältere damit Fehler produzieren.",-1),a("br",null,null,-1),l(' Für den normalen Betrieb wird der Zweig "Release" empfohlen. Der Softwarestand wurde ausgiebig getestet, sodass ein Fehlverhalten relativ unwahrscheinlich ist.',-1),a("br",null,null,-1),l(' Der "Beta" Zweig beinhaltet Vorabversionen, bei denen die Entwicklung soweit abgeschlossen ist. Die enthaltenen Anpassungen wurden rudimentär getestet, können aber durchaus noch Fehler enthalten.',-1),a("br",null,null,-1),l(' Die aktuelle Softwareentwicklung findet im Zweig "master" statt. Die enthaltenen Anpassungen sind teilweise noch nicht getestet und enthalten potentiell Fehler.',-1),a("br",null,null,-1),l(' Einträge, die mit "feature" beginnen, sind experimentelle Entwicklungszweige, die nicht für den allgemeinen Gebrauch gedacht sind. ',-1)])]),_:1}),r(_,{title:"Entwicklungszweig",groups:m.branchGroups,"model-value":t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[15]||(e[15]=s=>t.updateState("openWB/system/current_branch",s))},null,8,["groups","model-value"]),r(_,{modelValue:b.selectedTag,"onUpdate:modelValue":e[16]||(e[16]=s=>b.selectedTag=s),title:"Tag",options:m.branchTagOptions},null,8,["modelValue","options"])]),_:1})]))])):h("",!0)])}const fe=R(T,[["render",re],["__scopeId","data-v-059847f6"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/System.vue"]]);export{fe as default}; diff --git a/web/settings/assets/System-9f60a387.js b/web/settings/assets/System-9f60a387.js new file mode 100644 index 0000000000..38845d1c91 --- /dev/null +++ b/web/settings/assets/System-9f60a387.js @@ -0,0 +1 @@ +import{l as z,ar as E,u as U,af as x,a3 as L,as as F,F as j}from"./vendor-fortawesome-a02b6813.js";import{C as D}from"./index-8dd8e083.js";import{_ as R,u as g,l as p,m as y,x as _,E as i,z as h,G as r,A as a,q as k,N as V,M as A,F as B,B as l}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";z.add(E,U,x,L,F);const T={name:"OpenwbSystemView",components:{FontAwesomeIcon:j},mixins:[D],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/system/optionBackup","openWB/system/secondary_auto_update","openWB/system/current_commit","openWB/system/current_branch_commit","openWB/system/current_missing_commits","openWB/system/available_branches","openWB/system/current_branch","openWB/system/version","openWB/system/serial_number","openWB/system/ip_address","openWB/system/mac_address","openWB/chargepoint/+/get/version","openWB/chargepoint/+/get/current_branch","openWB/chargepoint/+/config","openWB/general/extern"],warningAcknowledged:!1,selectedTag:"*HEAD*"}},computed:{externalChargepoints:{get(){let t=this.getWildcardTopics("openWB/chargepoint/+/config"),e={};for(const[u,c]of Object.entries(t))c.type==="external_openwb"&&(e[u]=c);return e}},updateAvailable(){return this.$store.state.mqtt["openWB/system/current_branch_commit"]&&this.$store.state.mqtt["openWB/system/current_branch_commit"]!=this.$store.state.mqtt["openWB/system/current_commit"]},releaseChangeValid(){return this.$store.state.mqtt["openWB/system/current_branch"]in this.$store.state.mqtt["openWB/system/available_branches"]&&"tags"in this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]]&&this.selectedTag in this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]].tags},branchGroups(){const t="Release",e="Beta",u="master",c=[t,e],b=(d,f)=>d.value==f.value?0:d.value==t?-1:f.value==t?1:d.value==e?-1:f.value==e?1:d.value==u?-1:f.value==u||d.value>f.value?1:d.value{const m=d=>{const f=d.split("-"),v=f[0].split(".");let w=[];return f.length>1?w=f[1].split("."):w=["release","0"],{semver:v,suffix:w}},o=m(c.value),n=m(b.value);if(o.semver[0]=="*HEAD*")return-1;if(n.semver[0]=="*HEAD*")return 1;if(o.semver[0]>n.semver[0])return-1;if(o.semver[0]n.semver[1])return-1;if(o.semver[1]n.semver[2])return-1;if(o.semver[2]n.suffix[1])return-1;if(o.suffix[1]n.suffix[1])return-1;if(o.suffix[1]n.suffix[1])return-1;if(o.suffix[1]n.suffix[1])return-1;if(o.suffix[1]t[u].type.includes(e)).reduce((u,c)=>({...u,[c]:t[c]}),{})}}},I={class:"system"},P={key:1},N={name:"versionInfoForm"},O={class:"missing-commits"},Z={class:"row justify-content-center"},G={class:"col-md-4 d-flex py-1 justify-content-center"},H={class:"col-md-4 d-flex py-1 justify-content-center"},J={key:3},M={key:0},K={class:"table table-striped"},Q={key:0,name:"powerForm"},X={class:"row justify-content-center"},Y={class:"col-md-4 d-flex py-1 justify-content-center"},ee={class:"col-md-4 d-flex py-1 justify-content-center"},te={key:1,name:"releaseChangeForm"},se={class:"row justify-content-center"},ne={class:"col-md-4 d-flex py-1 justify-content-center"};function re(t,e,u,c,b,m){const o=g("openwb-base-button-group-input"),n=g("openwb-base-alert"),d=g("openwb-base-text-input"),f=g("openwb-base-card"),v=g("font-awesome-icon"),w=g("openwb-base-click-button"),q=g("openwb-base-heading"),S=g("openwb-base-submit-buttons"),C=g("router-link"),W=g("openwb-base-select-input");return p(),y("div",I,[u.installAssistantActive?h("",!0):(p(),_(n,{key:0,subtype:"danger"},{default:i(()=>[e[18]||(e[18]=a("h2",null,"Achtung!",-1)),e[19]||(e[19]=a("p",null," Vor allen Aktionen auf dieser Seite ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)),r(o,{modelValue:b.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=s=>b.warningAcknowledged=s),title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"])]),_:1,__:[18,19]})),b.warningAcknowledged||u.installAssistantActive?(p(),y("div",P,[r(f,{title:"System Information",subtype:"info",collapsible:!0,collapsed:!0},{default:i(()=>[r(d,{modelValue:t.$store.state.mqtt["openWB/system/serial_number"],"onUpdate:modelValue":e[1]||(e[1]=s=>t.$store.state.mqtt["openWB/system/serial_number"]=s),title:"Seriennummer",readonly:""},null,8,["modelValue"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/ip_address"],"onUpdate:modelValue":e[2]||(e[2]=s=>t.$store.state.mqtt["openWB/system/ip_address"]=s),title:"IP-Adresse",readonly:""},null,8,["modelValue"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/mac_address"],"onUpdate:modelValue":e[3]||(e[3]=s=>t.$store.state.mqtt["openWB/system/mac_address"]=s),title:"MAC-Adresse",readonly:""},null,8,["modelValue"])]),_:1}),r(f,{title:"Versions-Informationen / Aktualisierung",subtype:"success",collapsible:!0,collapsed:!u.installAssistantActive},{default:i(()=>[a("form",N,[r(d,{modelValue:t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[4]||(e[4]=s=>t.$store.state.mqtt["openWB/system/current_branch"]=s),title:"Entwicklungszweig",readonly:""},null,8,["modelValue"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/version"],"onUpdate:modelValue":e[5]||(e[5]=s=>t.$store.state.mqtt["openWB/system/version"]=s),title:"Bezeichnung",readonly:""},null,8,["modelValue"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/current_commit"],"onUpdate:modelValue":e[6]||(e[6]=s=>t.$store.state.mqtt["openWB/system/current_commit"]=s),title:"installierte Version",readonly:"",class:k(m.updateAvailable?"text-danger":"text-success")},null,8,["modelValue","class"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/current_branch_commit"],"onUpdate:modelValue":e[7]||(e[7]=s=>t.$store.state.mqtt["openWB/system/current_branch_commit"]=s),title:"aktuellste Version",readonly:""},null,8,["modelValue"]),m.updateAvailable?(p(),_(f,{key:0,title:"Änderungen",subtype:"info",collapsible:!0,collapsed:!0},{default:i(()=>[a("ul",O,[(p(!0),y(V,null,A(t.$store.state.mqtt["openWB/system/current_missing_commits"],(s,$)=>(p(),y("li",{key:$},B(s),1))),128))])]),_:1})):h("",!0),u.installAssistantActive?h("",!0):(p(),_(n,{key:1,subtype:"danger"},{default:i(()=>e[20]||(e[20]=[l(" Nach einem Update wird die Ladestation direkt neu gestartet! Es werden alle eventuell vorhandenen lokalen Änderungen am Programmcode mit dem Update verworfen! ",-1)])),_:1,__:[20]})),t.$store.state.mqtt["openWB/system/current_branch"]!="Release"&&!u.installAssistantActive?(p(),_(n,{key:2,subtype:"danger"},{default:i(()=>e[21]||(e[21]=[l(' Du bist nicht auf dem für den normalen Gebrauch empfohlenen Entwicklungszweig "Release". Wir empfehlen, auf diesen Zweig zu wechseln, sobald dort eine neue Version verfügbar ist.',-1),a("br",null,null,-1),l(" Bevor ein Update angestoßen wird, sollte immer eine Sicherung erstellt werden! Es kann zwar wieder auf eine ältere Version gewechselt werden, jedoch ist nicht sichergestellt, dass es dabei keine Probleme gibt. Gerade wenn das Datenformat in der neuen Version angepasst wurde, wird eine ältere damit Fehler produzieren. ",-1)])),_:1,__:[21]})):h("",!0),a("div",Z,[a("div",G,[r(w,{class:"btn-info",onButtonClicked:e[8]||(e[8]=s=>m.sendSystemCommand("systemFetchVersions"))},{default:i(()=>[e[22]||(e[22]=l(" Informationen aktualisieren ",-1)),r(v,{icon:["fas","download"]})]),_:1,__:[22]})]),a("div",H,[r(w,{class:k(m.updateAvailable?"btn-success clickable":"btn-outline-success"),disabled:!m.updateAvailable,onButtonClicked:e[9]||(e[9]=s=>m.systemUpdate())},{default:i(()=>[e[23]||(e[23]=l(" Update ",-1)),r(v,{icon:["fas","arrow-alt-circle-up"]})]),_:1,__:[23]},8,["class","disabled"])])]),t.$store.state.mqtt["openWB/general/extern"]!=!0&&!u.installAssistantActive?(p(),y("div",J,[e[28]||(e[28]=a("hr",null,null,-1)),r(q,null,{default:i(()=>e[24]||(e[24]=[l("Automatisches Update von Secondary openWBs",-1)])),_:1,__:[24]}),r(n,{subtype:"info"},{default:i(()=>e[25]||(e[25]=[l(' Die automatische Updatefunktion für Secondary openWBs ist nur verfügbar, wenn sich die Primary openWB auf dem Entwicklungszweig "Release" befindet. Das Update wird nur auf Secondary openWBs durchgeführt, welche sich ebenfalls auf dem Entwicklungszweig "Release" befinden. Ist die dort installierte Releaseversion zu alt, muss ein einmaliges Update auf die aktuelle Version manuell auf der betroffenen openWB durchgeführt werden. ',-1)])),_:1,__:[25]}),t.$store.state.mqtt["openWB/system/current_branch"]=="Release"?(p(),y("div",M,[r(o,{title:"Secondary openWBs automatisch mit der Primary updaten",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/system/secondary_auto_update"],"onUpdate:modelValue":e[10]||(e[10]=s=>t.updateState("openWB/system/secondary_auto_update",s))},{help:i(()=>e[26]||(e[26]=[l(' Diese Option ist nur auf dem Entwicklungszweig "Release" verfügbar. Ist diese Option aktiviert, dann werden Secondary openWBs, welche sich ebenfalls auf dem Entwicklungszweig "Release" befinden gleichzeitig mit der Primary openWB aktualisiert. ',-1)])),_:1},8,["model-value"]),a("table",K,[e[27]||(e[27]=a("thead",null,[a("tr",null,[a("th",null,"Secondary"),a("th",null,"Software-Status"),a("th",null,"IP-Adresse")])],-1)),a("tbody",null,[(p(!0),y(V,null,A(m.externalChargepoints,s=>(p(),y("tr",{key:s.id},[a("td",null,B(s.name),1),a("td",null,B(t.$store.state.mqtt["openWB/chargepoint/"+s.id+"/get/current_branch"]===void 0?"Version zu alt oder openWB ist nicht erreichbar. Bitte manuell updaten bzw. prüfen.":t.$store.state.mqtt["openWB/chargepoint/"+s.id+"/get/current_branch"]!="Release"?"Secondary ist nicht auf dem Release-Zweig. Bitte manuell updaten.":t.$store.state.mqtt["openWB/chargepoint/"+s.id+"/get/current_branch"]+" "+t.$store.state.mqtt["openWB/chargepoint/"+s.id+"/get/version"]),1),a("td",null,B(s.configuration.ip_address),1)]))),128))])]),r(S,{"form-name":"versionInfoForm","hide-defaults":!0,onSave:e[11]||(e[11]=s=>t.$emit("save")),onReset:e[12]||(e[12]=s=>t.$emit("reset"))})])):h("",!0)])):h("",!0)])]),_:1},8,["collapsed"]),u.installAssistantActive?h("",!0):(p(),y("form",Q,[r(f,{title:"Betrieb",collapsible:!0,collapsed:!0},{footer:i(()=>[a("div",X,[a("div",Y,[r(w,{class:"btn-warning",onButtonClicked:e[13]||(e[13]=s=>m.sendSystemCommand("systemReboot"))},{default:i(()=>[e[35]||(e[35]=l(" Neustart ",-1)),r(v,{icon:["fas","undo"]})]),_:1,__:[35]})]),a("div",ee,[r(w,{class:"btn-danger",onButtonClicked:e[14]||(e[14]=s=>m.sendSystemCommand("systemShutdown"))},{default:i(()=>[e[36]||(e[36]=l(" Ausschalten ",-1)),r(v,{icon:["fas","power-off"]})]),_:1,__:[36]})])])]),default:i(()=>[r(n,{subtype:"danger"},{default:i(()=>e[29]||(e[29]=[l(" Wenn die Ladestation ausgeschaltet wird, muss sie komplett spannungsfrei geschaltet werden. Erst beim erneuten Zuschalten der Spannung fährt das System wieder hoch. ",-1)])),_:1,__:[29]}),r(n,{subtype:"info"},{default:i(()=>[e[31]||(e[31]=l(" Ein Neustart löscht wichtige Protokolle, die bei der Fehlersuche helfen können. ",-1)),e[32]||(e[32]=a("br",null,null,-1)),e[33]||(e[33]=l("Tipp: Erstelle stattdessen zuerst einen ",-1)),r(C,{to:"/System/Support"},{default:i(()=>e[30]||(e[30]=[l(" Systembericht ",-1)])),_:1,__:[30]}),e[34]||(e[34]=l(" – das hilft oft mehr und bewahrt alle relevanten Logs. ",-1))]),_:1,__:[31,32,33,34]})]),_:1})])),u.installAssistantActive?h("",!0):(p(),y("form",te,[r(f,{title:"Entwicklungszweig",subtype:"danger",collapsible:!0,collapsed:!0},{footer:i(()=>[a("div",se,[a("div",ne,[r(w,{class:k(m.releaseChangeValid?"btn-danger clickable":"btn-outline-danger"),disabled:!m.releaseChangeValid,onButtonClicked:e[17]||(e[17]=s=>m.switchBranch())},{default:i(()=>[r(v,{icon:["fas","skull-crossbones"]}),e[39]||(e[39]=l(" Branch und Tag wechseln ",-1)),r(v,{icon:["fas","skull-crossbones"]})]),_:1,__:[39]},8,["class","disabled"])])])]),default:i(()=>[r(n,{subtype:"danger"},{default:i(()=>e[37]||(e[37]=[l(" Nach einem Wechsel wird die Ladestation direkt neu gestartet! Es werden alle lokalen Änderungen mit dem Wechsel verworfen! ",-1)])),_:1,__:[37]}),r(n,{subtype:"warning"},{default:i(()=>e[38]||(e[38]=[l(" Bevor auf einen neuen Entwicklungszweig gewechselt wird sollte immer eine Sicherung erstellt werden! Es kann zwar wieder auf eine ältere Version gewechselt werden, jedoch ist nicht sichergestellt, dass es dabei keine Probleme gibt. Gerade wenn das Datenformat in der neuen Version angepasst wurde, wird eine ältere damit Fehler produzieren.",-1),a("br",null,null,-1),l(' Für den normalen Betrieb wird der Zweig "Release" empfohlen. Der Softwarestand wurde ausgiebig getestet, sodass ein Fehlverhalten relativ unwahrscheinlich ist.',-1),a("br",null,null,-1),l(' Der "Beta" Zweig beinhaltet Vorabversionen, bei denen die Entwicklung soweit abgeschlossen ist. Die enthaltenen Anpassungen wurden rudimentär getestet, können aber durchaus noch Fehler enthalten.',-1),a("br",null,null,-1),l(' Die aktuelle Softwareentwicklung findet im Zweig "master" statt. Die enthaltenen Anpassungen sind teilweise noch nicht getestet und enthalten potentiell Fehler.',-1),a("br",null,null,-1),l(' Einträge, die mit "feature" beginnen, sind experimentelle Entwicklungszweige, die nicht für den allgemeinen Gebrauch gedacht sind. ',-1)])),_:1,__:[38]}),r(W,{title:"Entwicklungszweig",groups:m.branchGroups,"model-value":t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[15]||(e[15]=s=>t.updateState("openWB/system/current_branch",s))},null,8,["groups","model-value"]),r(W,{modelValue:b.selectedTag,"onUpdate:modelValue":e[16]||(e[16]=s=>b.selectedTag=s),title:"Tag",options:m.branchTagOptions},null,8,["modelValue","options"])]),_:1})]))])):h("",!0)])}const fe=R(T,[["render",re],["__scopeId","data-v-059847f6"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/System.vue"]]);export{fe as default}; diff --git a/web/settings/assets/TestingStore-28ad7b75.js b/web/settings/assets/TestingStore-28ad7b75.js deleted file mode 100644 index feb967f2fe..0000000000 --- a/web/settings/assets/TestingStore-28ad7b75.js +++ /dev/null @@ -1 +0,0 @@ -import{C as B}from"./index-0992d19b.js";import{S as O}from"./OpenwbSortableList-0d1f7c1c.js";import{_ as T,u,l as D,m as Z,A as s,G as o,E as n,B as a,F as S}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";const N={name:"OpenwbTestingStoreView",components:{SortableList:O},mixins:[B],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:[]}}},G={class:"testingStore"},L={name:"testingStoreForm"};function j(t,e,A,F,J,W){const b=u("OpenwbBaseHeading"),E=u("OpenwbBaseSettingElement"),$=u("openwb-base-button-input"),v=u("openwb-base-button-group-input"),i=u("openwb-base-card"),f=u("openwb-base-color-picker"),p=u("openwb-base-text-input"),r=u("openwb-base-number-input"),x=u("openwb-base-textarea"),g=u("openwb-base-range-input"),m=u("openwb-base-select-input"),w=u("openwb-base-heading"),V=u("openwb-base-checkbox-input"),y=u("openwb-base-array-input"),k=u("openwb-base-copy-to-clipboard"),d=u("openwb-base-alert"),U=u("sortable-list"),z=u("openwb-base-submit-buttons");return D(),Z("div",G,[s("form",L,[o(i,{title:"Elemente mit BaseSettingElement"},{default:n(()=>[o(b,null,{default:n(()=>[...e[31]||(e[31]=[a(" Basiselement ",-1)])]),_:1}),o(E,null,{title:n(()=>[...e[32]||(e[32]=[s("span",{style:{"font-style":"italic"}},[a(" Styled "),s("span",{style:{"font-weight":"bold"}},"Title"),a(" Slot ")],-1)])]),help:n(()=>[...e[33]||(e[33]=[a(" Basis-Element für alle weiteren Elemente. Das ist ein ",-1),s("a",{href:"test"},"Link",-1),a(". ",-1)])]),_:1}),o(b,null,{default:n(()=>[...e[34]||(e[34]=[a(" Abgeleitete Elemente ",-1)])]),_:1}),o($,{title:"Button Input","button-text":"Klick mich",subtype:"info"},{help:n(()=>[...e[35]||(e[35]=[a(" Einfacher Click-Button für Aktionen. ",-1)])]),_:1}),o(v,{title:"Button Group Input",buttons:[{buttonValue:1,text:"Eins"},{buttonValue:2,text:"Zwei"}],"model-value":t.$store.state.examples.buttonGroup1,"onUpdate:modelValue":e[0]||(e[0]=l=>t.updateState("buttonGroup1",l))},{help:n(()=>[...e[36]||(e[36]=[a(" Button-Group Element zur Auswahl weniger Optionen. Bei vielen Optionen besser ein Dropdown verwenden. ",-1),s("a",{href:"test"},"Link",-1),a(". ",-1)])]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Einfache Eingabefelder"},{default:n(()=>[o(p,{title:"1. Text","model-value":t.$store.state.examples.text1,"onUpdate:modelValue":e[2]||(e[2]=l=>t.updateState("text1",l))},{help:n(()=>[...e[37]||(e[37]=[a(" Einfacher Text",-1),s("br",null,null,-1),a(' Diese Komponente hat einen Slot "append" für zusätzliche Elemente, die rechts vom Eingabefeld angezeigt werden sollen. Das ist hier z.B. ein Farbauswahl-Element. Die Farbe kann zurückgesetzt werden, weil eine Standardfarbe gesetzt ist. Das ist hier z.B. rot (#ff0000). ',-1)])]),append:n(()=>[o(f,{class:"p-1","model-value":t.$store.state.examples.color1,"default-color":"#ff0000","onUpdate:modelValue":e[1]||(e[1]=l=>t.updateState("color1",l))},null,8,["model-value"])]),_:1},8,["model-value"]),o(p,{title:"2. Text (E-Mail)",subtype:"email","model-value":t.$store.state.examples.text2,"onUpdate:modelValue":e[3]||(e[3]=l=>t.updateState("text2",l))},{help:n(()=>[...e[38]||(e[38]=[a(" Eingabefeld für E-Mailadressen ",-1)])]),_:1},8,["model-value"]),o(p,{title:"3. Text (Host)",subtype:"host","model-value":t.$store.state.examples.text3,"onUpdate:modelValue":e[4]||(e[4]=l=>t.updateState("text3",l))},{help:n(()=>[...e[39]||(e[39]=[a(" Eingabefeld für Hosts (IP oder Namen) ",-1)])]),_:1},8,["model-value"]),o(p,{title:"4. Text (URL)",subtype:"url","model-value":t.$store.state.examples.text4,"onUpdate:modelValue":e[5]||(e[5]=l=>t.updateState("text4",l))},{help:n(()=>[...e[40]||(e[40]=[a(" Eingabefeld für URLs ",-1)])]),_:1},8,["model-value"]),o(p,{title:"5. Text (User)",subtype:"user","model-value":t.$store.state.examples.text5,"onUpdate:modelValue":e[6]||(e[6]=l=>t.updateState("text5",l))},{help:n(()=>[...e[41]||(e[41]=[a(" Eingabefeld für Benutzernamen ",-1)])]),_:1},8,["model-value"]),o(p,{title:"6. Text (Time)",subtype:"time","model-value":t.$store.state.examples.text6,"onUpdate:modelValue":e[7]||(e[7]=l=>t.updateState("text6",l))},{help:n(()=>[...e[42]||(e[42]=[a(" Eingabefeld für Zeiten ",-1)])]),_:1},8,["model-value"]),o(p,{title:"7. Text (Date)",subtype:"date","model-value":t.$store.state.examples.text7,"onUpdate:modelValue":e[8]||(e[8]=l=>t.updateState("text7",l))},{help:n(()=>[...e[43]||(e[43]=[a(" Eingabefeld für ein Datum ",-1)])]),_:1},8,["model-value"]),e[49]||(e[49]=s("hr",null,null,-1)),o(r,{title:"1. Zahl",min:5,max:9,step:2,unit:"kW","model-value":t.$store.state.examples.number1,"onUpdate:modelValue":e[10]||(e[10]=l=>t.updateState("number1",l))},{help:n(()=>[...e[44]||(e[44]=[a(" Zahl mit Einheit.",-1),s("br",null,null,-1),a(' Diese Komponente hat einen Slot "append" für zusätzliche Elemente, die rechts vom Eingabefeld angezeigt werden sollen. Das ist hier z.B. ein Farbauswahl-Element. Ohne Standardfarbe kann die Farbe nicht zurückgesetzt werden. ',-1)])]),append:n(()=>[o(f,{class:"p-1","model-value":t.$store.state.examples.color2,"onUpdate:modelValue":e[9]||(e[9]=l=>t.updateState("color2",l))},null,8,["model-value"])]),_:1},8,["model-value"]),o(r,{title:"2. Zahl",min:10,max:32,step:2,"model-value":t.$store.state.examples.number2,"onUpdate:modelValue":e[11]||(e[11]=l=>t.updateState("number2",l))},{help:n(()=>[...e[45]||(e[45]=[a(" Eingabefeld für Zahlen ohne Einheit ",-1)])]),_:1},8,["model-value"]),o(r,{title:"3. Zahl",min:-30,max:30,step:.01,precision:2,unit:"ct/kWh","model-value":t.$store.state.examples.number3*1e5,"onUpdate:modelValue":e[12]||(e[12]=l=>t.updateState("number3",parseFloat((l/1e5).toFixed(7))))},{help:n(()=>[...e[46]||(e[46]=[a(" Eingabefeld für Zahlen mit Einheit und Nachkommastellen",-1),s("br",null,null,-1),a(' Zusätzlich zum optionalen Parameter "step" sollte immer auch "precision" gesetzt sein, um unvermeidbare Darstellungsfehler zu vermeiden.',-1),s("br",null,null,-1),a(" Wenn der dargestellte Wert eine andere Genauigkeit/Einheit als der Wert im Backend hat (z.B. €/Wh <-> ct/kWh), dann ist bei der Umrechnung darauf zu achten, dass es nicht erneut zu Ungenauigkeiten bei Dezimalzahlen kommt. ",-1)])]),_:1},8,["model-value"]),o(p,{title:"1. Passwort",subtype:"password","model-value":t.$store.state.examples.password1,"onUpdate:modelValue":e[13]||(e[13]=l=>t.updateState("password1",l))},{help:n(()=>[...e[47]||(e[47]=[a(" Das Passwort kann per Klick auf das Auge angezeigt werden. ",-1)])]),_:1},8,["model-value"]),e[50]||(e[50]=s("hr",null,null,-1)),o(x,{title:"1. Textarea",maxlength:"50","model-value":t.$store.state.examples.textarea1,"onUpdate:modelValue":e[14]||(e[14]=l=>t.updateState("textarea1",l))},{help:n(()=>[...e[48]||(e[48]=[a(" Textarea mit maximaler Länge von 50 Zeichen. ",-1)])]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Spezielle Elemente"},{default:n(()=>[o(g,{title:"1. Range",min:6,max:32,step:1,unit:"A","model-value":t.$store.state.examples.range1,"onUpdate:modelValue":e[15]||(e[15]=l=>t.updateState("range1",l))},{help:n(()=>[...e[51]||(e[51]=[a(" Range ohne spezielle Labels ",-1)])]),_:1},8,["model-value"]),o(g,{title:"2. Range",min:0,max:11,step:1,unit:"A",labels:[{label:"Aus",value:0},{label:6,value:6},{label:7,value:7},{label:8,value:8},{label:9,value:9},{label:10,value:10},{label:11,value:11},{label:12,value:12},{label:13,value:13},{label:14,value:14},{label:15,value:15},{label:16,value:16}],"model-value":t.$store.state.examples.range2,"onUpdate:modelValue":e[16]||(e[16]=l=>t.updateState("range2",l))},{help:n(()=>[...e[52]||(e[52]=[a(" Range mit speziellen Labels ",-1)])]),_:1},8,["model-value"]),e[58]||(e[58]=s("hr",null,null,-1)),o(m,{title:"1. Select","not-selected":"Bitte auswählen",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}],"model-value":t.$store.state.examples.select1,"onUpdate:modelValue":e[17]||(e[17]=l=>t.updateState("select1",l))},{help:n(()=>[...e[53]||(e[53]=[a(" Select mit einfachen Optionen ",-1)])]),_:1},8,["model-value"]),o(m,{title:"2. Select",groups:[{label:"Gruppe 1 (Number)",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}]},{label:"Gruppe 2 (String)",options:[{value:"three",text:"Drei"},{value:"four",text:"Vier"}]}],"not-selected":"Bitte auswählen","add-button":!0,"model-value":t.$store.state.examples.select2,"onUpdate:modelValue":e[18]||(e[18]=l=>t.updateState("select2",l)),"onInput:add":e[19]||(e[19]=l=>t.alert("add button pressed"))},{help:n(()=>[...e[54]||(e[54]=[a(" Select mit Gruppen und Add-Button. ",-1)])]),_:1},8,["model-value"]),e[59]||(e[59]=s("hr",null,null,-1)),o(v,{title:"1. Button-Group",buttons:[{buttonValue:1,text:"Eins"},{buttonValue:2,text:"Zwei"}],"model-value":t.$store.state.examples.buttonGroup1,"onUpdate:modelValue":e[20]||(e[20]=l=>t.updateState("buttonGroup1",l))},{help:n(()=>[...e[55]||(e[55]=[a(" Hilfetext ",-1)])]),_:1},8,["model-value"]),o(w,null,{default:n(()=>[e[56]||(e[56]=a(" Select Element ohne Label: ",-1)),o(m,{class:"mb-1","not-selected":"Bitte auswählen",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}],"model-value":t.$store.state.examples.select1,"onUpdate:modelValue":e[21]||(e[21]=l=>t.updateState("select1",l))},null,8,["model-value"])]),_:1}),e[60]||(e[60]=s("hr",null,null,-1)),o(V,{title:"1. Checkbox","model-value":t.$store.state.examples.checkbox1,"onUpdate:modelValue":e[22]||(e[22]=l=>t.updateState("checkbox1",l))},{help:n(()=>[...e[57]||(e[57]=[a(" Hilfetext ",-1)])]),_:1},8,["model-value"])]),_:1}),o(i,{title:"JSON Gruppe"},{default:n(()=>[o(p,{title:"JSON 1",subtype:"json","model-value":t.$store.state.examples.json1,"onUpdate:modelValue":e[23]||(e[23]=l=>t.updateState("json1",l))},{help:n(()=>[...e[61]||(e[61]=[a(" JSON Objekt ",-1)])]),_:1},8,["model-value"]),o(p,{title:"JSON 1 Text","model-value":t.$store.state.examples.json1.text,"onUpdate:modelValue":e[24]||(e[24]=l=>t.updateState("json1",l,"text"))},{help:n(()=>[...e[62]||(e[62]=[a(" Text im JSON Objekt ",-1)])]),_:1},8,["model-value"]),o(r,{title:"JSON 1 Zahl","model-value":t.$store.state.examples.json1.number,"onUpdate:modelValue":e[25]||(e[25]=l=>t.updateState("json1",l,"number"))},{help:n(()=>[...e[63]||(e[63]=[a(" Zahl im JSON Objekt ",-1)])]),_:1},8,["model-value"]),o(y,{title:"Tag Array","model-value":t.$store.state.examples.tags,"onUpdate:modelValue":e[26]||(e[26]=l=>t.updateState("tags",l))},{help:n(()=>[s("pre",null,S(JSON.stringify(t.$store.state.examples.tags,void 0,2)),1)]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Meldungen"},{header:n(()=>[...e[64]||(e[64]=[s("span",{style:{"text-decoration":"underline","font-style":"italic"}},[a(" Styled "),s("span",{style:{"font-weight":"initial"}},"Header"),a(" Slot ")],-1)])]),default:n(()=>[o(w,null,{help:n(()=>[...e[65]||(e[65]=[a(" Es sind auch Hilfetexte im #help Slot möglich. ",-1),s("a",{href:"test"},"Link",-1)])]),default:n(()=>[e[66]||(e[66]=a(" Das ist eine Überschrift ",-1))]),_:1}),o(d,null,{default:n(()=>[e[68]||(e[68]=a(" Meldung ohne speziellen Subtype. ",-1)),o(k,null,{default:n(()=>[...e[67]||(e[67]=[a("Kopiere mich!",-1)])]),_:1})]),_:1}),o(d,{subtype:"info"},{default:n(()=>[...e[69]||(e[69]=[a(" Infomeldung ",-1)])]),_:1}),o(d,{subtype:"warning"},{default:n(()=>[...e[70]||(e[70]=[a(" Warnmeldung ",-1)])]),_:1}),o(d,{subtype:"danger"},{default:n(()=>[...e[71]||(e[71]=[a(" Fehlermeldung ",-1)])]),_:1})]),_:1}),o(i,{title:"Listen"},{default:n(()=>[o(U,{modelValue:t.$store.state.examples.hierarchy1,"onUpdate:modelValue":e[27]||(e[27]=l=>t.$store.state.examples.hierarchy1=l),title:"Liste 1",labels:t.$store.state.examples.hierarchy1Labels},{help:n(()=>[s("pre",null,S(JSON.stringify(t.$store.state.examples.hierarchy1,void 0,2)),1)]),_:1},8,["modelValue","labels"])]),_:1}),o(z,{"form-name":"testingStoreForm",onSave:e[28]||(e[28]=l=>t.$emit("save")),onReset:e[29]||(e[29]=l=>t.$emit("reset")),onDefaults:e[30]||(e[30]=l=>t.$emit("defaults"))})])])}const Q=T(N,[["render",j],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/TestingStore.vue"]]);export{Q as default}; diff --git a/web/settings/assets/TestingStore-3a739645.js b/web/settings/assets/TestingStore-3a739645.js new file mode 100644 index 0000000000..0eb95f8f85 --- /dev/null +++ b/web/settings/assets/TestingStore-3a739645.js @@ -0,0 +1 @@ +import{C as B}from"./index-8dd8e083.js";import{S as O}from"./OpenwbSortableList-c7b5b151.js";import{_ as T,u,l as D,m as Z,A as s,G as o,E as n,B as a,F as S}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const N={name:"OpenwbTestingStoreView",components:{SortableList:O},mixins:[B],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:[]}}},G={class:"testingStore"},L={name:"testingStoreForm"};function j(t,e,A,F,J,W){const b=u("OpenwbBaseHeading"),E=u("OpenwbBaseSettingElement"),$=u("openwb-base-button-input"),v=u("openwb-base-button-group-input"),i=u("openwb-base-card"),f=u("openwb-base-color-picker"),p=u("openwb-base-text-input"),r=u("openwb-base-number-input"),x=u("openwb-base-textarea"),g=u("openwb-base-range-input"),m=u("openwb-base-select-input"),w=u("openwb-base-heading"),V=u("openwb-base-checkbox-input"),y=u("openwb-base-array-input"),k=u("openwb-base-copy-to-clipboard"),d=u("openwb-base-alert"),U=u("sortable-list"),z=u("openwb-base-submit-buttons");return D(),Z("div",G,[s("form",L,[o(i,{title:"Elemente mit BaseSettingElement"},{default:n(()=>[o(b,null,{default:n(()=>e[31]||(e[31]=[a(" Basiselement ",-1)])),_:1,__:[31]}),o(E,null,{title:n(()=>e[32]||(e[32]=[s("span",{style:{"font-style":"italic"}},[a(" Styled "),s("span",{style:{"font-weight":"bold"}},"Title"),a(" Slot ")],-1)])),help:n(()=>e[33]||(e[33]=[a(" Basis-Element für alle weiteren Elemente. Das ist ein ",-1),s("a",{href:"test"},"Link",-1),a(". ",-1)])),_:1}),o(b,null,{default:n(()=>e[34]||(e[34]=[a(" Abgeleitete Elemente ",-1)])),_:1,__:[34]}),o($,{title:"Button Input","button-text":"Klick mich",subtype:"info"},{help:n(()=>e[35]||(e[35]=[a(" Einfacher Click-Button für Aktionen. ",-1)])),_:1}),o(v,{title:"Button Group Input",buttons:[{buttonValue:1,text:"Eins"},{buttonValue:2,text:"Zwei"}],"model-value":t.$store.state.examples.buttonGroup1,"onUpdate:modelValue":e[0]||(e[0]=l=>t.updateState("buttonGroup1",l))},{help:n(()=>e[36]||(e[36]=[a(" Button-Group Element zur Auswahl weniger Optionen. Bei vielen Optionen besser ein Dropdown verwenden. ",-1),s("a",{href:"test"},"Link",-1),a(". ",-1)])),_:1},8,["model-value"])]),_:1}),o(i,{title:"Einfache Eingabefelder"},{default:n(()=>[o(p,{title:"1. Text","model-value":t.$store.state.examples.text1,"onUpdate:modelValue":e[2]||(e[2]=l=>t.updateState("text1",l))},{help:n(()=>e[37]||(e[37]=[a(" Einfacher Text",-1),s("br",null,null,-1),a(' Diese Komponente hat einen Slot "append" für zusätzliche Elemente, die rechts vom Eingabefeld angezeigt werden sollen. Das ist hier z.B. ein Farbauswahl-Element. Die Farbe kann zurückgesetzt werden, weil eine Standardfarbe gesetzt ist. Das ist hier z.B. rot (#ff0000). ',-1)])),append:n(()=>[o(f,{class:"p-1","model-value":t.$store.state.examples.color1,"default-color":"#ff0000","onUpdate:modelValue":e[1]||(e[1]=l=>t.updateState("color1",l))},null,8,["model-value"])]),_:1},8,["model-value"]),o(p,{title:"2. Text (E-Mail)",subtype:"email","model-value":t.$store.state.examples.text2,"onUpdate:modelValue":e[3]||(e[3]=l=>t.updateState("text2",l))},{help:n(()=>e[38]||(e[38]=[a(" Eingabefeld für E-Mailadressen ",-1)])),_:1},8,["model-value"]),o(p,{title:"3. Text (Host)",subtype:"host","model-value":t.$store.state.examples.text3,"onUpdate:modelValue":e[4]||(e[4]=l=>t.updateState("text3",l))},{help:n(()=>e[39]||(e[39]=[a(" Eingabefeld für Hosts (IP oder Namen) ",-1)])),_:1},8,["model-value"]),o(p,{title:"4. Text (URL)",subtype:"url","model-value":t.$store.state.examples.text4,"onUpdate:modelValue":e[5]||(e[5]=l=>t.updateState("text4",l))},{help:n(()=>e[40]||(e[40]=[a(" Eingabefeld für URLs ",-1)])),_:1},8,["model-value"]),o(p,{title:"5. Text (User)",subtype:"user","model-value":t.$store.state.examples.text5,"onUpdate:modelValue":e[6]||(e[6]=l=>t.updateState("text5",l))},{help:n(()=>e[41]||(e[41]=[a(" Eingabefeld für Benutzernamen ",-1)])),_:1},8,["model-value"]),o(p,{title:"6. Text (Time)",subtype:"time","model-value":t.$store.state.examples.text6,"onUpdate:modelValue":e[7]||(e[7]=l=>t.updateState("text6",l))},{help:n(()=>e[42]||(e[42]=[a(" Eingabefeld für Zeiten ",-1)])),_:1},8,["model-value"]),o(p,{title:"7. Text (Date)",subtype:"date","model-value":t.$store.state.examples.text7,"onUpdate:modelValue":e[8]||(e[8]=l=>t.updateState("text7",l))},{help:n(()=>e[43]||(e[43]=[a(" Eingabefeld für ein Datum ",-1)])),_:1},8,["model-value"]),e[49]||(e[49]=s("hr",null,null,-1)),o(r,{title:"1. Zahl",min:5,max:9,step:2,unit:"kW","model-value":t.$store.state.examples.number1,"onUpdate:modelValue":e[10]||(e[10]=l=>t.updateState("number1",l))},{help:n(()=>e[44]||(e[44]=[a(" Zahl mit Einheit.",-1),s("br",null,null,-1),a(' Diese Komponente hat einen Slot "append" für zusätzliche Elemente, die rechts vom Eingabefeld angezeigt werden sollen. Das ist hier z.B. ein Farbauswahl-Element. Ohne Standardfarbe kann die Farbe nicht zurückgesetzt werden. ',-1)])),append:n(()=>[o(f,{class:"p-1","model-value":t.$store.state.examples.color2,"onUpdate:modelValue":e[9]||(e[9]=l=>t.updateState("color2",l))},null,8,["model-value"])]),_:1},8,["model-value"]),o(r,{title:"2. Zahl",min:10,max:32,step:2,"model-value":t.$store.state.examples.number2,"onUpdate:modelValue":e[11]||(e[11]=l=>t.updateState("number2",l))},{help:n(()=>e[45]||(e[45]=[a(" Eingabefeld für Zahlen ohne Einheit ",-1)])),_:1},8,["model-value"]),o(r,{title:"3. Zahl",min:-30,max:30,step:.01,precision:2,unit:"ct/kWh","model-value":t.$store.state.examples.number3*1e5,"onUpdate:modelValue":e[12]||(e[12]=l=>t.updateState("number3",parseFloat((l/1e5).toFixed(7))))},{help:n(()=>e[46]||(e[46]=[a(" Eingabefeld für Zahlen mit Einheit und Nachkommastellen",-1),s("br",null,null,-1),a(' Zusätzlich zum optionalen Parameter "step" sollte immer auch "precision" gesetzt sein, um unvermeidbare Darstellungsfehler zu vermeiden.',-1),s("br",null,null,-1),a(" Wenn der dargestellte Wert eine andere Genauigkeit/Einheit als der Wert im Backend hat (z.B. €/Wh <-> ct/kWh), dann ist bei der Umrechnung darauf zu achten, dass es nicht erneut zu Ungenauigkeiten bei Dezimalzahlen kommt. ",-1)])),_:1},8,["model-value"]),o(p,{title:"1. Passwort",subtype:"password","model-value":t.$store.state.examples.password1,"onUpdate:modelValue":e[13]||(e[13]=l=>t.updateState("password1",l))},{help:n(()=>e[47]||(e[47]=[a(" Das Passwort kann per Klick auf das Auge angezeigt werden. ",-1)])),_:1},8,["model-value"]),e[50]||(e[50]=s("hr",null,null,-1)),o(x,{title:"1. Textarea",maxlength:"50","model-value":t.$store.state.examples.textarea1,"onUpdate:modelValue":e[14]||(e[14]=l=>t.updateState("textarea1",l))},{help:n(()=>e[48]||(e[48]=[a(" Textarea mit maximaler Länge von 50 Zeichen. ",-1)])),_:1},8,["model-value"])]),_:1,__:[49,50]}),o(i,{title:"Spezielle Elemente"},{default:n(()=>[o(g,{title:"1. Range",min:6,max:32,step:1,unit:"A","model-value":t.$store.state.examples.range1,"onUpdate:modelValue":e[15]||(e[15]=l=>t.updateState("range1",l))},{help:n(()=>e[51]||(e[51]=[a(" Range ohne spezielle Labels ",-1)])),_:1},8,["model-value"]),o(g,{title:"2. Range",min:0,max:11,step:1,unit:"A",labels:[{label:"Aus",value:0},{label:6,value:6},{label:7,value:7},{label:8,value:8},{label:9,value:9},{label:10,value:10},{label:11,value:11},{label:12,value:12},{label:13,value:13},{label:14,value:14},{label:15,value:15},{label:16,value:16}],"model-value":t.$store.state.examples.range2,"onUpdate:modelValue":e[16]||(e[16]=l=>t.updateState("range2",l))},{help:n(()=>e[52]||(e[52]=[a(" Range mit speziellen Labels ",-1)])),_:1},8,["model-value"]),e[58]||(e[58]=s("hr",null,null,-1)),o(m,{title:"1. Select","not-selected":"Bitte auswählen",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}],"model-value":t.$store.state.examples.select1,"onUpdate:modelValue":e[17]||(e[17]=l=>t.updateState("select1",l))},{help:n(()=>e[53]||(e[53]=[a(" Select mit einfachen Optionen ",-1)])),_:1},8,["model-value"]),o(m,{title:"2. Select",groups:[{label:"Gruppe 1 (Number)",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}]},{label:"Gruppe 2 (String)",options:[{value:"three",text:"Drei"},{value:"four",text:"Vier"}]}],"not-selected":"Bitte auswählen","add-button":!0,"model-value":t.$store.state.examples.select2,"onUpdate:modelValue":e[18]||(e[18]=l=>t.updateState("select2",l)),"onInput:add":e[19]||(e[19]=l=>t.alert("add button pressed"))},{help:n(()=>e[54]||(e[54]=[a(" Select mit Gruppen und Add-Button. ",-1)])),_:1},8,["model-value"]),e[59]||(e[59]=s("hr",null,null,-1)),o(v,{title:"1. Button-Group",buttons:[{buttonValue:1,text:"Eins"},{buttonValue:2,text:"Zwei"}],"model-value":t.$store.state.examples.buttonGroup1,"onUpdate:modelValue":e[20]||(e[20]=l=>t.updateState("buttonGroup1",l))},{help:n(()=>e[55]||(e[55]=[a(" Hilfetext ",-1)])),_:1},8,["model-value"]),o(w,null,{default:n(()=>[e[56]||(e[56]=a(" Select Element ohne Label: ",-1)),o(m,{class:"mb-1","not-selected":"Bitte auswählen",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}],"model-value":t.$store.state.examples.select1,"onUpdate:modelValue":e[21]||(e[21]=l=>t.updateState("select1",l))},null,8,["model-value"])]),_:1,__:[56]}),e[60]||(e[60]=s("hr",null,null,-1)),o(V,{title:"1. Checkbox","model-value":t.$store.state.examples.checkbox1,"onUpdate:modelValue":e[22]||(e[22]=l=>t.updateState("checkbox1",l))},{help:n(()=>e[57]||(e[57]=[a(" Hilfetext ",-1)])),_:1},8,["model-value"])]),_:1,__:[58,59,60]}),o(i,{title:"JSON Gruppe"},{default:n(()=>[o(p,{title:"JSON 1",subtype:"json","model-value":t.$store.state.examples.json1,"onUpdate:modelValue":e[23]||(e[23]=l=>t.updateState("json1",l))},{help:n(()=>e[61]||(e[61]=[a(" JSON Objekt ",-1)])),_:1},8,["model-value"]),o(p,{title:"JSON 1 Text","model-value":t.$store.state.examples.json1.text,"onUpdate:modelValue":e[24]||(e[24]=l=>t.updateState("json1",l,"text"))},{help:n(()=>e[62]||(e[62]=[a(" Text im JSON Objekt ",-1)])),_:1},8,["model-value"]),o(r,{title:"JSON 1 Zahl","model-value":t.$store.state.examples.json1.number,"onUpdate:modelValue":e[25]||(e[25]=l=>t.updateState("json1",l,"number"))},{help:n(()=>e[63]||(e[63]=[a(" Zahl im JSON Objekt ",-1)])),_:1},8,["model-value"]),o(y,{title:"Tag Array","model-value":t.$store.state.examples.tags,"onUpdate:modelValue":e[26]||(e[26]=l=>t.updateState("tags",l))},{help:n(()=>[s("pre",null,S(JSON.stringify(t.$store.state.examples.tags,void 0,2)),1)]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Meldungen"},{header:n(()=>e[64]||(e[64]=[s("span",{style:{"text-decoration":"underline","font-style":"italic"}},[a(" Styled "),s("span",{style:{"font-weight":"initial"}},"Header"),a(" Slot ")],-1)])),default:n(()=>[o(w,null,{help:n(()=>e[65]||(e[65]=[a(" Es sind auch Hilfetexte im #help Slot möglich. ",-1),s("a",{href:"test"},"Link",-1)])),default:n(()=>[e[66]||(e[66]=a(" Das ist eine Überschrift ",-1))]),_:1,__:[66]}),o(d,null,{default:n(()=>[e[68]||(e[68]=a(" Meldung ohne speziellen Subtype. ",-1)),o(k,null,{default:n(()=>e[67]||(e[67]=[a("Kopiere mich!",-1)])),_:1,__:[67]})]),_:1,__:[68]}),o(d,{subtype:"info"},{default:n(()=>e[69]||(e[69]=[a(" Infomeldung ",-1)])),_:1,__:[69]}),o(d,{subtype:"warning"},{default:n(()=>e[70]||(e[70]=[a(" Warnmeldung ",-1)])),_:1,__:[70]}),o(d,{subtype:"danger"},{default:n(()=>e[71]||(e[71]=[a(" Fehlermeldung ",-1)])),_:1,__:[71]})]),_:1}),o(i,{title:"Listen"},{default:n(()=>[o(U,{modelValue:t.$store.state.examples.hierarchy1,"onUpdate:modelValue":e[27]||(e[27]=l=>t.$store.state.examples.hierarchy1=l),title:"Liste 1",labels:t.$store.state.examples.hierarchy1Labels},{help:n(()=>[s("pre",null,S(JSON.stringify(t.$store.state.examples.hierarchy1,void 0,2)),1)]),_:1},8,["modelValue","labels"])]),_:1}),o(z,{"form-name":"testingStoreForm",onSave:e[28]||(e[28]=l=>t.$emit("save")),onReset:e[29]||(e[29]=l=>t.$emit("reset")),onDefaults:e[30]||(e[30]=l=>t.$emit("defaults"))})])])}const Q=T(N,[["render",j],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/TestingStore.vue"]]);export{Q as default}; diff --git a/web/settings/assets/VehicleConfig-233066dd.js b/web/settings/assets/VehicleConfig-233066dd.js deleted file mode 100644 index dcf4f33944..0000000000 --- a/web/settings/assets/VehicleConfig-233066dd.js +++ /dev/null @@ -1 +0,0 @@ -import{l as x,a6 as ae,a7 as ie,F as O,_ as R,S as I,E as H,G as j,an as J,am as G,ap as ue,aq as re,ah as $,al as Q,ab as X,d as de,a0 as oe,ao as se,R as me,M as ge}from"./vendor-fortawesome-2b3791bb.js";import{_ as k,C as Y}from"./index-0992d19b.js";import{_ as pe}from"./dynamic-import-helper-be004503.js";import{_ as q,u as b,l as o,m as p,x as c,E as a,B as i,F as w,G as l,A as g,a2 as he,a3 as ce,N as W,q as ee,y as B,z as m,M as D,D as Z}from"./vendor-36bf053b.js";const be={props:{vehicleId:{required:!0,type:Number},vehicle:{required:!0,type:Object}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},fe=q(be,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/VehicleConfigMixin.vue"]]),ve={name:"VehicleConfigFallback",mixins:[fe]},_e={class:"vehicle-fallback"},Ve={key:1};function ke(n,e,f,U,y,t){const E=b("openwb-base-alert"),h=b("openwb-base-textarea");return o(),p("div",_e,[Object.keys(n.vehicle.configuration).length==0?(o(),c(E,{key:0,subtype:"info"},{default:a(()=>[i(' Der Fahrzeug-Typ "'+w(n.vehicle.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(o(),p("div",Ve,[l(E,{subtype:"warning"},{default:a(()=>[i(' Es wurde keine Konfigurationsseite für den Fahrzeug-Typ "'+w(n.vehicle.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),l(h,{title:"Konfiguration",subtype:"json","model-value":n.vehicle.configuration,"onUpdate:modelValue":e[0]||(e[0]=z=>n.updateConfiguration(z,"configuration"))},{help:a(()=>[...e[1]||(e[1]=[i(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),l(E,{subtype:"info"},{default:a(()=>[g("pre",null,w(JSON.stringify(n.vehicle.configuration,void 0,2)),1)]),_:1})]))])}const we=q(ve,[["render",ke],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleConfigFallback.vue"]]);x.add(ae,ie);const ze={name:"OpenwbVehicleProxy",components:{FontAwesomeIcon:O},props:{vehicleId:{type:Number,required:!0},vehicle:{type:Object,required:!0}},emits:["update:configuration"],methods:{getVehicleComponent(){return console.debug(`loading vehicle: ${this.vehicle.type}`),he({loader:()=>pe(Object.assign({"./aiways/vehicle.vue":()=>k(()=>import("./vehicle-904e1b9a.js"),["assets/vehicle-904e1b9a.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./bmwbc/vehicle.vue":()=>k(()=>import("./vehicle-dddd8c6f.js"),["assets/vehicle-dddd8c6f.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./cupra/vehicle.vue":()=>k(()=>import("./vehicle-bd25f961.js"),["assets/vehicle-bd25f961.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./evcc/vehicle.vue":()=>k(()=>import("./vehicle-edb9af18.js"),["assets/vehicle-edb9af18.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./evnotify/vehicle.vue":()=>k(()=>import("./vehicle-eec1770e.js"),["assets/vehicle-eec1770e.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./http/vehicle.vue":()=>k(()=>import("./vehicle-432a8e97.js"),["assets/vehicle-432a8e97.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./json/vehicle.vue":()=>k(()=>import("./vehicle-edca70a6.js"),["assets/vehicle-edca70a6.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kia/vehicle.vue":()=>k(()=>import("./vehicle-c7df15c6.js"),["assets/vehicle-c7df15c6.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./leaf/vehicle.vue":()=>k(()=>import("./vehicle-f4c3c45b.js"),["assets/vehicle-f4c3c45b.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./manual/vehicle.vue":()=>k(()=>import("./vehicle-0bf59308.js"),["assets/vehicle-0bf59308.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mercedeseq/vehicle.vue":()=>k(()=>import("./vehicle-a118bbc8.js"),["assets/vehicle-a118bbc8.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mqtt/vehicle.vue":()=>k(()=>import("./vehicle-33bf94c2.js"),["assets/vehicle-33bf94c2.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./ovms/vehicle.vue":()=>k(()=>import("./vehicle-66cc49e0.js"),["assets/vehicle-66cc49e0.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./psa/vehicle.vue":()=>k(()=>import("./vehicle-bf282483.js"),["assets/vehicle-bf282483.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./psacc/vehicle.vue":()=>k(()=>import("./vehicle-5d3ec9e7.js"),["assets/vehicle-5d3ec9e7.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./renault/vehicle.vue":()=>k(()=>import("./vehicle-16e46ceb.js"),["assets/vehicle-16e46ceb.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./skoda/vehicle.vue":()=>k(()=>import("./vehicle-c70b570d.js"),["assets/vehicle-c70b570d.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smarthello/vehicle.vue":()=>k(()=>import("./vehicle-1b6d0189.js"),["assets/vehicle-1b6d0189.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/vehicle.vue":()=>k(()=>import("./vehicle-f35ebd53.js"),["assets/vehicle-f35ebd53.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-axios-090d6ce2.js","assets/index-0992d19b.js","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tronity/vehicle.vue":()=>k(()=>import("./vehicle-8ef77206.js"),["assets/vehicle-8ef77206.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./vwid/vehicle.vue":()=>k(()=>import("./vehicle-8cf65d4b.js"),["assets/vehicle-8cf65d4b.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/index-0992d19b.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.vehicle.type}/vehicle.vue`),errorComponent:we})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function Ce(n,e,f,U,y,t){const E=b("font-awesome-icon"),h=b("openwb-base-alert"),z=b("openwb-base-heading");return o(),p(W,null,[f.vehicle.official?(o(),c(h,{key:0,subtype:"info"},{default:a(()=>[l(E,{icon:["fas","certificate"]}),i(' Das ausgewählte Fahrzeug-Modul "'+w(f.vehicle.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(o(),c(h,{key:1,subtype:"info"},{default:a(()=>[l(E,{icon:["fas","people-group"]}),i(' Das ausgewählte Fahrzeug-Modul "'+w(f.vehicle.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),l(z,null,{default:a(()=>[i(' Einstellungen für SoC-Modul "'+w(f.vehicle.name)+'" ',1)]),_:1}),(o(),c(ce(t.getVehicleComponent()),{"vehicle-id":f.vehicleId,vehicle:f.vehicle,"onUpdate:configuration":e[0]||(e[0]=V=>t.updateConfiguration(V))},null,40,["vehicle-id","vehicle"]))],64)}const Se=q(ze,[["render",Ce],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleProxy.vue"]]);x.add(R,I,H,j,J,G,ue,re,$,Q,X);const ye={name:"VehicleScheduledChargingPlan",components:{FontAwesomeIcon:O},mixins:[Y],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0},dcChargingEnabled:{type:Boolean,default:!1}},emits:["update:modelValue","sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/optional/et/provider"],showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addChargeTemplateSchedulePlan",data:{template:this.templateId,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplateSchedulePlan",data:{template:this.templateId,plan:this.modelValue.id}})}}},Ee={key:0},Ae={key:1},Ue={key:2},Le={key:3},Pe={key:4},We={key:5},Fe={key:1},Be={key:4},Me={key:7};function Te(n,e,f,U,y,t){const E=b("openwb-base-modal-dialog"),h=b("font-awesome-icon"),z=b("openwb-base-avatar"),V=b("openwb-base-text-input"),C=b("openwb-base-button-group-input"),F=b("openwb-base-range-input"),S=b("openwb-base-number-input"),M=b("openwb-base-alert"),v=b("openwb-base-card");return o(),p(W,null,[l(E,{show:y.showRemoveModal,title:"Zielladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:a(()=>[i(' Wollen Sie den Zielladen Zeitplan "'+w(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l(v,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:a(s=>[s.collapsed==!0?(o(),p("span",{key:0,class:ee(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=B(_=>t.plan.active=!t.plan.active,["stop"]))},[t.plan.limit.selected=="soc"?(o(),p("span",Ee,[l(h,{icon:["fas","car-battery"]}),i(" "+w(t.plan.limit.soc_scheduled)+"% ",1),l(h,{icon:["fas",t.plan.bidi_charging_enabled?"right-left":"right-long"]},null,8,["icon"]),i(" "+w(t.plan.limit.soc_limit)+"% ",1)])):m("",!0),t.plan.limit.selected=="amount"?(o(),p("span",Ae,[l(h,{icon:["fas","bolt"]}),i(" "+w(t.plan.limit.amount/1e3)+"kWh ",1)])):m("",!0),l(h,{icon:["fas","clock"]}),i(" "+w(t.plan.time)+" ",1),t.plan.frequency.selected=="once"?(o(),p("span",Ue,[l(h,{icon:["fas","calendar-day"]}),i(" "+w(n.formatDate(t.plan.frequency.once)),1)])):m("",!0),t.plan.frequency.selected=="daily"?(o(),p("span",Le,[l(h,{icon:["fas","calendar-week"]})])):m("",!0),t.plan.frequency.selected=="weekly"?(o(),p("span",Pe,[l(h,{icon:["fas","calendar-alt"]})])):m("",!0),t.plan.et_active?(o(),p("span",We,[l(h,{icon:["fas","coins"]})])):m("",!0)],2)):m("",!0),s.collapsed==!1?(o(),p("span",Fe,[l(z,{class:"bg-success clickable ml-1",title:"Zielladen-Plan duplizieren",onClick:e[1]||(e[1]=B(_=>t.copyPlan(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1}),l(z,{class:"bg-danger clickable ml-1",title:"Zielladen-Plan löschen",onClick:e[2]||(e[2]=B(_=>t.removePlanModal(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1})])):m("",!0)]),default:a(()=>[l(V,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=s=>t.plan.name=s),title:"Bezeichnung"},null,8,["modelValue"]),l(C,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=s=>t.plan.active=s),title:"Zeitpunkt aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),l(V,{modelValue:t.plan.time,"onUpdate:modelValue":e[5]||(e[5]=s=>t.plan.time=s),title:"Ziel-Uhrzeit",subtype:"time"},{help:a(()=>[...e[19]||(e[19]=[i(" Hier ist die gewünschte Uhrzeit einzustellen, zu welcher das Fahrzeug den gewünschten SoC bzw. die zu ladende Energiemenge BEREITS ERREICHT haben soll. ",-1)])]),_:1},8,["modelValue"]),l(C,{modelValue:t.plan.limit.selected,"onUpdate:modelValue":e[6]||(e[6]=s=>t.plan.limit.selected=s),title:"Ziel",buttons:[{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}]},{help:a(()=>[...e[20]||(e[20]=[i(" Bestimmt die Art der Grenze für den Ladevorgang. ",-1)])]),_:1},8,["modelValue"]),t.plan.limit.selected=="soc"?(o(),c(F,{key:0,modelValue:t.plan.limit.soc_scheduled,"onUpdate:modelValue":e[7]||(e[7]=s=>t.plan.limit.soc_scheduled=s),title:"Fahrzeug-SoC zum Zielzeitpunkt",min:5,max:100,step:5,unit:"%"},{help:a(()=>[...e[21]||(e[21]=[i(" SoC, der zum angegebenen Zeitpunkt erreicht werden soll (Ziel-SoC). ",-1)])]),_:1},8,["modelValue"])):m("",!0),t.plan.limit.selected=="soc"?(o(),c(F,{key:1,modelValue:t.plan.limit.soc_limit,"onUpdate:modelValue":e[8]||(e[8]=s=>t.plan.limit.soc_limit=s),title:"Fahrzeug-SoC mit Überschuss",min:5,max:100,step:5,unit:"%"},{help:a(()=>[...e[22]||(e[22]=[i(" Nach Erreichen des Ziel-SoCs wird mit Überschuss weiter geladen, bis das SoC-Limit erreicht wird. Sobald das SoC-Limit erreicht wurde, findet keine Ladung mehr mit Überschuss statt! ",-1)])]),_:1},8,["modelValue"])):m("",!0),t.plan.limit.selected=="amount"?(o(),c(S,{key:2,title:"Ziel-Energie",unit:"kWh",min:1,step:.5,"model-value":t.plan.limit.amount/1e3,"onUpdate:modelValue":e[9]||(e[9]=s=>t.plan.limit.amount=s*1e3)},{help:a(()=>[...e[23]||(e[23]=[i(" Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zielladen schon ausgewählt ist, neu gezählt. ",-1)])]),_:1},8,["model-value"])):m("",!0),e[31]||(e[31]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[10]||(e[10]=s=>t.plan.frequency.selected=s),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(o(),c(V,{key:3,modelValue:t.plan.frequency.once,"onUpdate:modelValue":e[11]||(e[11]=s=>t.plan.frequency.once=s),title:"Datum",subtype:"date"},null,8,["modelValue"])):m("",!0),t.plan.frequency.selected=="weekly"?(o(),p("div",Be,[(o(!0),p(W,null,D(n.weekdays,(s,_)=>(o(),c(C,{key:_,modelValue:t.plan.frequency.weekly[_],"onUpdate:modelValue":N=>t.plan.frequency.weekly[_]=N,title:s,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):m("",!0),e[32]||(e[32]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.et_active,"onUpdate:modelValue":e[12]||(e[12]=s=>t.plan.et_active=s),title:"Strompreisbasiert Laden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),t.plan.et_active==!0&&(!n.$store.state.mqtt["openWB/optional/et/provider"]||!n.$store.state.mqtt["openWB/optional/et/provider"].type)?(o(),c(M,{key:5,subtype:"danger"},{default:a(()=>[...e[24]||(e[24]=[i(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. ",-1)])]),_:1})):m("",!0),l(C,{modelValue:t.plan.phases_to_use,"onUpdate:modelValue":e[13]||(e[13]=s=>t.plan.phases_to_use=s),title:"Anzahl Phasen Zielladen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}]},{help:a(()=>[...e[25]||(e[25]=[i(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zielladen" mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um das Ziel zu erreichen. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])]),_:1},8,["modelValue"]),l(C,{modelValue:t.plan.phases_to_use_pv,"onUpdate:modelValue":e[14]||(e[14]=s=>t.plan.phases_to_use_pv=s),title:"Anzahl Phasen bei PV-Überschuss",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}]},{help:a(()=>[...e[26]||(e[26]=[i(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zielladen" bei Laden mit PV-Überschuss mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um das Ziel zu erreichen. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])]),_:1},8,["modelValue"]),l(F,{modelValue:t.plan.current,"onUpdate:modelValue":e[15]||(e[15]=s=>t.plan.current=s),title:`Ladestrom${f.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A"},{help:a(()=>[...e[27]||(e[27]=[i(" Mit dieser Stromstärke wird der Zeitpunkt berechnet, wann die Ladung mit Netzbezug gestartet werden muss. Wird der Ziel-SoC nicht zum angegebenen Termin erreicht, weil z.B. das Auto erst später angesteckt wurde, wird auch mit einer höheren Stromstärke geladen. Um etwas Puffer zu haben, empfiehlt es sich, etwas weniger als die Maximalstromstärke des Fahrzeugs zu wählen. ",-1)])]),_:1},8,["modelValue","title"]),f.dcChargingEnabled===!0?(o(),c(S,{key:6,title:"Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(t.plan.dc_current),"onUpdate:modelValue":e[16]||(e[16]=s=>t.plan.dc_current=n.dc_power2ac_current(s))},null,8,["model-value"])):m("",!0),t.plan.limit.selected=="soc"?(o(),p("div",Me,[e[30]||(e[30]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.bidi_charging_enabled,"onUpdate:modelValue":e[17]||(e[17]=s=>t.plan.bidi_charging_enabled=s),title:"Bidirektionales Überschussladen bei kompatiblem Ladepunkt&Fahrzeug",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},{help:a(()=>[...e[28]||(e[28]=[i(" Wenn Ladepunkt und Fahrzeug bidirektionales Laden unterstützen, wird bis zum Fahrzug-SoC zum Zielzeitpunkt wie gewohnt mit Zielladen geladen. Ist der eingestellte SoC erreicht, wird eine Nullpunktausregelung gemacht, dh das Auto wird so ge- und entladen, dass möglichst weder Bezug noch Einspeisung entsteht. Der SoC wird dabei immer zwischen Fahrzeug-SoC zum Zielzeitpunkt und Fahrzeug-SoC mit Überschuss gehalten. ",-1),g("br",null,null,-1),i(" Unterstützen das Fahrzeug und/oder der Ladepunkt kein bidirektionales Laden, hat diese Einstellung keine Auswirkung. ",-1)])]),_:1},8,["modelValue"]),t.plan.bidi_charging_enabled===!0?(o(),c(M,{key:0,subtype:"info"},{default:a(()=>[...e[29]||(e[29]=[i(" Die Norm IEC 61851-1 und ISO 15118 benötigen als Parameter eine Stromstärke und die Phasenzahl. Die Norm ISO 15118-20, die das bidirektionale Laden definiert, benötigt als Parameter eine Ladeleistung. Die Phasenzahl legt das Fahrzeug fest. Wenn Fahrzeug und Ladepunkt bidirektionales Laden nach ISO 15118-20 unterstützen, wird die eingestellte Ladeleistung verwendet. Unterstützen das Fahrzeug und/oder der Ladepunkt die Norm nicht, wird der Ladestrom und die vorgegebene Phasenzahl angewendet. ",-1)])]),_:1})):m("",!0),t.plan.bidi_charging_enabled===!0?(o(),c(S,{key:1,title:"Ladeleistung",min:1,max:22,step:.5,unit:"kW","model-value":t.plan.bidi_power/1e3,"onUpdate:modelValue":e[18]||(e[18]=s=>n.updateState(n.templateKey,s*1e3,"plan.bidi_power"))},null,8,["model-value"])):m("",!0)])):m("",!0)]),_:1},8,["title"])],64)}const De=q(ye,[["render",Te],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ChargeTemplateScheduledChargingPlan.vue"]]);x.add(R,I,H,j,J,G,Q,X);const qe={name:"ChargeTemplateTimeChargingPlan",components:{FontAwesomeIcon:O},mixins:[Y],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0},dcChargingEnabled:{type:Boolean,default:!1}},emits:["update:modelValue","sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/optional/dc_charging"],showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addChargeTemplateTimeChargingPlan",data:{template:this.templateId,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplateTimeChargingPlan",data:{template:this.templateId,plan:this.modelValue.id}})}}},Ze={key:0},xe={key:1},Oe={key:2},Ne={key:3},Re={key:4},Ie={key:1},He={key:3};function je(n,e,f,U,y,t){const E=b("openwb-base-modal-dialog"),h=b("font-awesome-icon"),z=b("openwb-base-avatar"),V=b("openwb-base-text-input"),C=b("openwb-base-button-group-input"),F=b("openwb-base-range-input"),S=b("openwb-base-number-input"),M=b("openwb-base-card");return o(),p(W,null,[l(E,{show:y.showRemoveModal,title:"Zeitladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:a(()=>[i(' Wollen Sie den Zeitladen Zeitplan "'+w(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l(M,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:a(v=>[v.collapsed==!0?(o(),p("span",{key:0,class:ee(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=B(s=>t.plan.active=!t.plan.active,["stop"]))},[t.plan.limit.selected=="soc"?(o(),p("span",Ze,[l(h,{icon:["fas","car-battery"]}),i(" "+w(t.plan.limit.soc)+"% ",1)])):m("",!0),t.plan.limit.selected=="amount"?(o(),p("span",xe,[l(h,{icon:["fas","bolt"]}),i(" "+w(t.plan.limit.amount/1e3)+"kWh ",1)])):m("",!0),l(h,{icon:["fas","clock"]}),i(" "+w(t.plan.time[0])+" - "+w(t.plan.time[1])+" ",1),t.plan.frequency.selected=="once"?(o(),p("span",Oe,[l(h,{icon:["fas","calendar-day"]}),i(" "+w(n.formatDate(t.plan.frequency.once[0])==n.formatDate(t.plan.frequency.once[1])?n.formatDate(t.plan.frequency.once[0]):n.formatDate(t.plan.frequency.once[0])+" - "+n.formatDate(t.plan.frequency.once[1])),1)])):m("",!0),t.plan.frequency.selected=="daily"?(o(),p("span",Ne,[l(h,{icon:["fas","calendar-week"]})])):m("",!0),t.plan.frequency.selected=="weekly"?(o(),p("span",Re,[l(h,{icon:["fas","calendar-alt"]})])):m("",!0)],2)):m("",!0),v.collapsed==!1?(o(),p("span",Ie,[l(z,{class:"bg-success clickable",title:"Zeitladen-Plan duplizieren",onClick:e[1]||(e[1]=B(s=>t.copyPlan(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1}),l(z,{class:"bg-danger clickable ml-1",title:"Zeitladen-Plan löschen",onClick:e[2]||(e[2]=B(s=>t.removePlanModal(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1})])):m("",!0)]),default:a(()=>[l(V,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=v=>t.plan.name=v),title:"Bezeichnung"},null,8,["modelValue"]),l(C,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=v=>t.plan.active=v),title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),l(F,{modelValue:t.plan.current,"onUpdate:modelValue":e[5]||(e[5]=v=>t.plan.current=v),title:`Ladestrom${f.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A"},null,8,["modelValue","title"]),f.dcChargingEnabled===!0?(o(),c(S,{key:0,title:"Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(t.plan.dc_current),"onUpdate:modelValue":e[6]||(e[6]=v=>t.plan.dc_current=n.dc_power2ac_current(v))},null,8,["model-value"])):m("",!0),l(C,{modelValue:t.plan.limit.selected,"onUpdate:modelValue":e[7]||(e[7]=v=>t.plan.limit.selected=v),title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}]},{help:a(()=>[...e[16]||(e[16]=[i(" Bestimmt die Art der Grenze für den Ladevorgang. ",-1)])]),_:1},8,["modelValue"]),l(F,{modelValue:t.plan.limit.soc,"onUpdate:modelValue":e[8]||(e[8]=v=>t.plan.limit.soc=v),title:"Ziel-SoC für das Fahrzeug",min:5,max:100,step:5,unit:"%"},{help:a(()=>[...e[17]||(e[17]=[i(" Ladestand des Akku (State of Charge, SoC), bis zu welchem maximal geladen werden soll. ",-1)])]),_:1},8,["modelValue"]),l(S,{title:"Ziel-Energie",unit:"kWh",min:1,step:.5,"model-value":t.plan.limit.amount/1e3,"onUpdate:modelValue":e[9]||(e[9]=v=>t.plan.limit.amount=v*1e3)},{help:a(()=>[...e[18]||(e[18]=[i(" Maximal zu ladende Energie innerhalb des Zeitfensters. Eignet sich immer dann wenn kein SoC zur Verfügung steht. Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zeitladen schon aktiv ist, neu gezählt. ",-1)])]),_:1},8,["model-value"]),e[20]||(e[20]=g("hr",null,null,-1)),l(V,{modelValue:t.plan.time[0],"onUpdate:modelValue":e[10]||(e[10]=v=>t.plan.time[0]=v),title:"Zeitpunkt des Ladebeginns",subtype:"time"},null,8,["modelValue"]),l(V,{modelValue:t.plan.time[1],"onUpdate:modelValue":e[11]||(e[11]=v=>t.plan.time[1]=v),title:"Zeitpunkt des Ladeendes",subtype:"time"},null,8,["modelValue"]),l(C,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[12]||(e[12]=v=>t.plan.frequency.selected=v),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(o(),c(V,{key:1,modelValue:t.plan.frequency.once[0],"onUpdate:modelValue":e[13]||(e[13]=v=>t.plan.frequency.once[0]=v),title:"Gültig ab",subtype:"date"},null,8,["modelValue"])):m("",!0),t.plan.frequency.selected=="once"?(o(),c(V,{key:2,modelValue:t.plan.frequency.once[1],"onUpdate:modelValue":e[14]||(e[14]=v=>t.plan.frequency.once[1]=v),title:"Gültig bis",subtype:"date",min:t.plan.frequency.once[0]},null,8,["modelValue","min"])):m("",!0),t.plan.frequency.selected=="weekly"?(o(),p("div",He,[(o(!0),p(W,null,D(n.weekdays,(v,s)=>(o(),c(C,{key:s,modelValue:t.plan.frequency.weekly[s],"onUpdate:modelValue":_=>t.plan.frequency.weekly[s]=_,title:v,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):m("",!0),e[21]||(e[21]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.phases_to_use,"onUpdate:modelValue":e[15]||(e[15]=v=>t.plan.phases_to_use=v),title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}]},{help:a(()=>[...e[19]||(e[19]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])]),_:1},8,["modelValue"])]),_:1},8,["title"])],64)}const Je=q(qe,[["render",je],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ChargeTemplateTimeChargingPlan.vue"]]);x.add(de,X,j,G,J,H,R,I,oe,se,me,$,Q);const Ge={name:"OpenwbVehicleConfigView",components:{FontAwesomeIcon:O,FontAwesomeLayers:ge,OpenwbVehicleProxy:Se,ChargeTemplateScheduledChargingPlan:De,ChargeTemplateTimeChargingPlan:Je},mixins:[Y],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/optional/dc_charging","openWB/optional/et/provider","openWB/optional/rfid/active","openWB/vehicle/template/ev_template/+","openWB/vehicle/template/charge_template/+","openWB/vehicle/template/charge_template/+/chargemode/scheduled_charging/plans/+","openWB/vehicle/template/charge_template/+/time_charging/plans/+","openWB/vehicle/+/name","openWB/vehicle/+/info","openWB/vehicle/+/charge_template","openWB/vehicle/+/ev_template","openWB/vehicle/+/tag_id","openWB/system/configurable/soc_modules","openWB/vehicle/+/soc_module/general_config","openWB/vehicle/+/soc_module/config"],showVehicleModal:!1,modalVehicleIndex:void 0,showEvTemplateModal:!1,modalEvTemplateIndex:void 0,showChargeTemplateModal:!1,modalChargeTemplateIndex:void 0}},computed:{dcChargingEnabled:{get(){return this.$store.state.mqtt["openWB/optional/dc_charging"]}},vehicleIndexes:{get(){return this.getWildcardIndexList("openWB/vehicle/+/name")}},evTemplates:{get(){return this.getWildcardTopics("openWB/vehicle/template/ev_template/+")}},evTemplateList:{get(){let n=[];return Object.keys(this.evTemplates).forEach(e=>{let f=parseInt(e.match(/([0-9]+)$/g)[0]),U=this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+f].name;n.push({value:f,text:U})}),n}},chargeTemplates:{get(){return this.getWildcardTopics("openWB/vehicle/template/charge_template/+")}},chargeTemplateList:{get(){let n=[];return Object.keys(this.chargeTemplates).forEach(e=>{let f=parseInt(e.match(/([0-9]+)$/g)[0]),U=this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+f].name;n.push({value:f,text:U})}),n}},socModuleList:{get(){return this.$store.state.mqtt["openWB/system/configurable/soc_modules"]}}},methods:{updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)},addVehicle(n){n.stopPropagation(),this.$emit("sendCommand",{command:"addVehicle",data:{}})},removeVehicleModal(n,e){n.stopPropagation(),this.modalVehicleIndex=e,this.showVehicleModal=!0},removeVehicle(n,e){this.showVehicleModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeVehicle",data:{id:e}})},getVehicleName(n){return this.$store.state.mqtt["openWB/vehicle/"+n+"/name"]?this.$store.state.mqtt["openWB/vehicle/"+n+"/name"]:"Fahrzeug "+n},getSocDefaultConfiguration(n){const e=this.socModuleList.find(f=>f.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for soc type!",n),{})},updateSelectedSocModule(n,e){this.updateState("openWB/vehicle/"+n+"/soc_module/config",e,"type"),this.updateState("openWB/vehicle/"+n+"/soc_module/config",this.getSocDefaultConfiguration(e))},addEvTemplate(n,e){n.stopPropagation();let f={};e&&e.match(/([^/]+)$/)&&(f.copy=parseInt(e.match(/([^/]+)$/)[0])),this.$emit("sendCommand",{command:"addEvTemplate",data:f})},removeEvTemplateModal(n,e){n.stopPropagation(),this.modalEvTemplateIndex=parseInt(e.match(/([^/]+)$/)[0]),this.showEvTemplateModal=!0},removeEvTemplate(n,e){this.showEvTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeEvTemplate",data:{id:e}})},getEvTemplateName(n){return this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+n]?this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+n].name:"Fahrzeug-Profil "+n},addChargeTemplate(n,e){n.stopPropagation();let f={};e&&e.match(/([^/]+)$/)&&(f.copy=parseInt(e.match(/([^/]+)$/)[0])),this.$emit("sendCommand",{command:"addChargeTemplate",data:f})},removeChargeTemplateModal(n,e){this.modalChargeTemplateIndex=e,this.showChargeTemplateModal=!0},removeChargeTemplate(n,e){this.showChargeTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplate",data:{id:e}})},getChargeTemplateName(n){return this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+n]?this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+n].name:"Lade-Profil "+n},addChargeTemplateSchedulePlan(n){this.$emit("sendCommand",{command:"addChargeTemplateSchedulePlan",data:{template:n}})},addChargeTemplateTimeChargingPlan(n){this.$emit("sendCommand",{command:"addChargeTemplateTimeChargingPlan",data:{template:n}})},openActiveChargeModeCard(n,e){this.$nextTick(()=>{["instant_charging","pv_charging","eco_charging","scheduled_charging"].forEach(U=>{const y=`card-${n}-${U}`,t=this.$refs[y],E=Array.isArray(t)?t[0]:t;E&&(E.isCollapsed=U!==e)})})}}},Qe={class:"vehicleConfig"},Xe={name:"vehicleConfigForm"},Ye={key:0},Ke={key:1},$e={key:2},en={key:0},nn={key:0},tn={key:1},ln={key:1},an={key:3},un={key:0},rn={key:1},dn={key:0},on={key:1},sn={key:0},mn={key:0},gn={key:3},pn={key:0},hn={key:1},cn={key:0},bn={key:1};function fn(n,e,f,U,y,t){const E=b("openwb-base-modal-dialog"),h=b("font-awesome-icon"),z=b("openwb-base-avatar"),V=b("openwb-base-alert"),C=b("openwb-base-text-input"),F=b("openwb-base-select-input"),S=b("openwb-base-heading"),M=b("router-link"),v=b("openwb-base-array-input"),s=b("openwb-base-button-group-input"),_=b("openwb-base-number-input"),N=b("openwb-vehicle-proxy"),L=b("openwb-base-card"),K=b("font-awesome-layers"),P=b("openwb-base-range-input"),ne=b("charge-template-scheduled-charging-plan"),te=b("charge-template-time-charging-plan"),le=b("openwb-base-submit-buttons");return o(),p(W,null,[l(E,{show:y.showVehicleModal,title:"Fahrzeug löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=r=>t.removeVehicle(r,y.modalVehicleIndex))},{default:a(()=>[i(' Wollen Sie das Fahrzeug "'+w(t.getVehicleName(y.modalVehicleIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),l(E,{show:y.showEvTemplateModal,title:"Fahrzeug-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=r=>t.removeEvTemplate(r,y.modalEvTemplateIndex))},{default:a(()=>[i(' Wollen Sie das Fahrzeug-Profil "'+w(t.getEvTemplateName(y.modalEvTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),l(E,{show:y.showChargeTemplateModal,title:"Lade-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[2]||(e[2]=r=>t.removeChargeTemplate(r,y.modalChargeTemplateIndex))},{default:a(()=>[i(' Wollen Sie das Lade-Profil "'+w(t.getChargeTemplateName(y.modalChargeTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),g("div",Qe,[g("form",Xe,[l(L,{subtype:"info",collapsible:!0,collapsed:n.$route.params.section!="vehicle"},{header:a(()=>[l(h,{icon:["fas","car"]}),e[8]||(e[8]=i(" Fahrzeuge ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(o(),c(z,{key:0,class:"bg-success clickable",title:"Neues Fahrzeug hinzufügen",onClick:t.addVehicle},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(o(),p("div",Ye,[l(V,{subtype:"info"},{default:a(()=>[...e[9]||(e[9]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(o(),p("div",Ke,[(o(!0),p(W,null,D(t.vehicleIndexes,r=>(o(),c(L,{key:r,title:t.getVehicleName(r),collapsible:!0,collapsed:!(n.$route.params.section=="vehicle"&&parseInt(n.$route.params.section_index)==r),subtype:"info"},Z({default:a(()=>[l(C,{title:"Bezeichnung","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/name"],disabled:r===0,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/name",d)},Z({_:2},[r===0?{name:"help",fn:a(()=>[e[10]||(e[10]=i(" Das Standard-Fahrzeug kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),r!==0?(o(),c(C,{key:0,title:"Fahrzeughersteller ","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/info"].manufacturer,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/info",d,"manufacturer")},{help:a(()=>[...e[11]||(e[11]=[i(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):m("",!0),r!==0?(o(),c(C,{key:1,title:"Fahrzeugmodell","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/info"].model,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/info",d,"model")},{help:a(()=>[...e[12]||(e[12]=[i(" Optional: zusätzliche Information für den Systembericht.",-1),g("br",null,null,-1),i(" Nach Möglichkeit auch Angabe des Baujahres, da es durchaus beim Verhalten des Fahrzeugs Unterschiede geben kann. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):m("",!0),l(V,{subtype:"info"},{default:a(()=>[...e[13]||(e[13]=[i(" Ein anderes Fahrzeug-Profil wird erst NACH dem Abstecken übernommen, da es sonst durch die Änderung bestimmter Einstellungen im laufenden Ladevorgang zu Widersprüchen kommen kann. ",-1)])]),_:1}),l(F,{title:"Fahrzeug-Profil",options:t.evTemplateList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/ev_template"],"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/ev_template",d)},null,8,["options","model-value","onUpdate:modelValue"]),l(F,{title:"Lade-Profil",options:t.chargeTemplateList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/charge_template"],"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/charge_template",d)},null,8,["options","model-value","onUpdate:modelValue"]),e[32]||(e[32]=g("hr",null,null,-1)),f.installAssistantActive?m("",!0):(o(),p("div",$e,[l(S,null,{default:a(()=>[...e[14]||(e[14]=[i(" Fahrzeugzuordnung per ID-Tags ",-1)])]),_:1}),n.$store.state.mqtt["openWB/vehicle/"+r+"/tag_id"].length>0?(o(),p("div",en,[l(V,{subtype:"info"},{default:a(()=>[e[16]||(e[16]=i(" Einstellungen zur Fahrzeugzuordnung finden sich unter ",-1)),l(M,{to:"/IdentificationConfig"},{default:a(()=>[...e[15]||(e[15]=[i(" Einstellungen - Identifikation ",-1)])]),_:1}),e[17]||(e[17]=i(". ",-1)),n.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(o(),p("div",nn," Aktuell ist die Option in den Einstellungen deaktiviert. ")):(o(),p("div",tn," Die Option ist aktiv. Das Fahrzeug lässt sich per ID-Tag automatisch einem Ladepunkt zuordnen. ")),e[18]||(e[18]=i(" Dem Fahrzeug sind folgende ID-Tags zugeordnet: ",-1))]),_:1}),l(v,{title:"Zugeordnete ID-Tags","no-elements-message":"Keine keine ID-Tags zugeordnet.","no-input":!0,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/tag_id"]},null,8,["model-value"])])):(o(),p("div",ln,[l(V,{subtype:"info"},{default:a(()=>[e[20]||(e[20]=i(" Einstellungen zur Fahrzeugzuordnung finden sich unter ",-1)),l(M,{to:"/IdentificationConfig"},{default:a(()=>[...e[19]||(e[19]=[i(" Einstellungen - Identifikation ",-1)])]),_:1}),e[21]||(e[21]=i(".",-1)),e[22]||(e[22]=g("br",null,null,-1)),e[23]||(e[23]=i(" Dem Fahrzeug sind aktuell keine ID-Tags zum Entsperren zugeordnet. ",-1))]),_:1})])),e[24]||(e[24]=g("hr",null,null,-1))])),l(F,{class:"mb-2",title:"SoC-Modul des Fahrzeugs",options:t.socModuleList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/config"].type,"onUpdate:modelValue":d=>t.updateSelectedSocModule(r,d)},{help:a(()=>[...e[25]||(e[25]=[i(" Mit einem SoC-Modul kann der Ladestand des Fahrzeugs ermittelt und geregelt werden. Z.B. lassen sich unabhängig vom Fahrzeug bestimmte SoC-Werte einstellen, um den Fahrzeugakku zu schonen. Aktuell werden die SoC-Werte mittels der App-Zugangsdaten aus dem Herstellerserver des Fahrzeuges ausgelesen. Zukünftig soll auch eine direkte SoC-Auslesung aus dem Fahrzeug möglich werden (openWB Pro).",-1),g("br",null,null,-1),i(" Die SoC-Abfrage erfolgt automatisch beim Anstecken des Fahrzeuges und zusätzlich über einstellbare Abfrageintervalle während des Ladens und Nichtladens. Die Abfrage kann auch manuell durch Klick auf den Reload-Pfeil auf der Hauptseite ausgelöst werden.",-1),g("br",null,null,-1),i(" Wenn eine Abfrage fehlschlägt, wird noch drei weitere Male im Abstand von 5 Minuten versucht, den SoC abzufragen. Wenn dies nicht erfolgreich ist, wird der SoC auf 0% gesetzt um zu vermeiden, dass ein Auto beim SoC-basierten Laden nicht geladen wird. Die Abfrage erfolgt dann wieder in den oben genannten Intervallen.",-1),g("br",null,null,-1),i(" Da aktuell die SoC-Abfragen über Onlineserver der Fahrzeughersteller laufen, ist infolge möglicher Umstellungen/Wartungen keine 100%-ig sichere SoC-Abfrage garantiert. Auch kann es zu SoC-Abweichungen infolge von zeitlicher Verzögerungen kommen. Hilfestellung erfolgt primär im openWB-Forum. ",-1)])]),_:1},8,["options","model-value","onUpdate:modelValue"]),n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/config"].type?(o(),p("div",an,[l(s,{title:"SoC direkt aus Fahrzeug auslesen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"].use_soc_from_cp,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",d,"use_soc_from_cp")},{help:a(()=>[...e[26]||(e[26]=[i(" Wenn Ladepunkt und Fahrzeug das direkte Auslesen des SoCs über das Ladekabel unterstützen, wird der SoC nach dem Anstecken aus dem Fahrzeug ausgelesen und während der Ladung berechnet. Das direkte Auslesen des SoC aus dem Fahrzeug ist aktuell nur mit einer openWB Pro möglich. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(S,null,{help:a(()=>[...e[27]||(e[27]=[i(" Einige Hersteller begrenzen die möglichen Abfragen. Sobald ein gewisses Limit in einem Zeitraum überschritten wird, werden weitere Anfragen blockiert. Die Zeitintervalle sollten daher nicht zu klein gewählt werden. ",-1)])]),default:a(()=>[e[28]||(e[28]=i(" Aktualisierung der Fahrzeugdaten ",-1))]),_:1}),l(_,{title:"Während der Ladung",unit:"Min.",min:1,max:30,required:"","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"].request_interval_charging/60,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",d*60,"request_interval_charging")},{help:a(()=>[...e[29]||(e[29]=[i(" Der Ladestand des Fahrzeugs (SoC) wird bei einem laufenden Ladevorgang in dem hier eingestellten Intervall in Minuten abgefragt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Ohne laufende Ladung",unit:"Min.",min:5,required:"","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"].request_interval_not_charging/60,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",d*60,"request_interval_not_charging")},{help:a(()=>[...e[30]||(e[30]=[i(" Der Ladestand des Fahrzeugs (SoC) wird in dem hier eingestellten Intervall in Minuten abgefragt, falls kein Ladevorgang aktiv ist. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Nur aktualisieren wenn angesteckt",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"].request_only_plugged,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",d,"request_only_plugged")},{help:a(()=>[...e[31]||(e[31]=[i(' Wird hier "Ja" ausgewählt, dann wird der Ladestand des Fahrzeugs nur abgefragt, wenn das Ladekabel angesteckt ist. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(N,{"vehicle-id":r,vehicle:n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/config"],"onUpdate:configuration":d=>t.updateConfiguration("openWB/vehicle/"+r+"/soc_module/config",d)},null,8,["vehicle-id","vehicle","onUpdate:configuration"])])):m("",!0)]),_:2},[r!==0?{name:"actions",fn:a(d=>[d.collapsed?m("",!0):(o(),c(z,{key:0,class:"bg-danger clickable",title:"Fahrzeug löschen",onClick:u=>t.removeVehicleModal(u,r)},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),key:"0"}:void 0]),1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),e[93]||(e[93]=g("hr",{class:"border-secondary"},null,-1)),l(S,null,{default:a(()=>[...e[33]||(e[33]=[i("Profile",-1)])]),_:1}),l(L,{collapsible:!0,collapsed:!0},{header:a(()=>[l(K,{class:"fa-lg"},{default:a(()=>[l(h,{icon:["far","file"]}),l(h,{icon:["fas","car"],transform:"shrink-8"})]),_:1}),e[34]||(e[34]=i(" Fahrzeug-Profile ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(o(),c(z,{key:0,class:"bg-success clickable",title:"Neues Fahrzeug-Profil hinzufügen",onClick:t.addEvTemplate},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(o(),p("div",un,[l(V,{subtype:"info"},{default:a(()=>[...e[35]||(e[35]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(o(),p("div",rn,[l(V,{subtype:"info"},{default:a(()=>[...e[36]||(e[36]=[i(" Ein anderes Fahrzeug-Profil wird erst ",-1),g("span",{class:"text-uppercase font-weight-bold"}," nach dem Abstecken ",-1),i(" übernommen, da es sonst durch die Änderung bestimmter Einstellungen im laufenden Ladevorgang zu Widersprüchen kommen kann. ",-1)])]),_:1}),(o(!0),p(W,null,D(t.evTemplates,(r,d)=>(o(),c(L,{key:d,title:r.name?r.name:d,collapsible:!0,collapsed:!0},Z({default:a(()=>[l(C,{title:"Bezeichnung","model-value":r.name,disabled:d.endsWith("/0"),"onUpdate:modelValue":u=>n.updateState(d,u,"name")},Z({_:2},[d.endsWith("/0")?{name:"help",fn:a(()=>[e[37]||(e[37]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),l(S,null,{default:a(()=>[...e[38]||(e[38]=[i(" Angaben zur Batterie ",-1)])]),_:1}),l(_,{title:"Kapazität der Batterie",unit:"kWh",min:1,step:1,required:"","model-value":r.battery_capacity/1e3,"onUpdate:modelValue":u=>n.updateState(d,u*1e3,"battery_capacity")},{help:a(()=>[...e[39]||(e[39]=[i(" Angabe der Netto-Kapazität der Fahrzeugbatterie. Dient zur Berechnung des manuellen SoC und der geladenen Reichweite. Die Netto-Kapazität unterscheidet sich meist von den Angaben der Fahrzeughersteller. So besitzt ein Tesla Model S 90 z. B. nur ca. 83kWh und nicht die durch die Typenbezeichnung suggerierten 90kWh. Andere Hersteller begrenzen die nutzbare Kapazität absichtlich, um eine höhere Lebensdauer der Akkus zu erreichen. Gängig sind eine Drosselung auf 90% der angegebenen Brutto-Kapazität. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),f.installAssistantActive?m("",!0):(o(),p("div",dn,[l(_,{title:"Wirkungsgrad der Ladeelektronik",unit:"%",min:1,max:100,required:"","model-value":r.efficiency,"onUpdate:modelValue":u=>n.updateState(d,u,"efficiency")},{help:a(()=>[...e[40]||(e[40]=[i(" Durch Verluste in der Ladeelektronik (z. B. Umwandlung Wechselspannung in Gleichspannung) gelangt nicht die komplette Energie, welche durch den Zähler in der Wallbox gemessen wird, in den Akku des Fahrzeugs. Der anzugebende Wert liegt bei gängigen Fahrzeugen im Bereich 90-95%. Eine Ausnahme stellt der Zoe dar, dessen Chameleon-Lader je nach Modellversion und freigegebener Leistung der Wallbox teilweise nur auf ca. 50% kommt.",-1),g("br",null,null,-1),i(" Liegen die Angaben der Wallbox und des Fahrzeugs nach der Ladung mehrere Prozent auseinander, dann kann mit dieser Einstellung eine Feinabstimmung erfolgen: ",-1),g("br",null,null,-1),i(" SoC an der Wallbox zu hoch: Wirkungsgrad um ein paar Prozent reduzieren",-1),g("br",null,null,-1),i(" SoC an der Wallbox zu gering: Wirkungsgrad um ein paar Prozent erhöhen",-1),g("br",null,null,-1)])]),_:1},8,["model-value","onUpdate:modelValue"])])),l(_,{title:"Durchschnittsverbrauch",unit:"kWh / 100km",min:1,step:.1,required:"","model-value":r.average_consump/1e3,"onUpdate:modelValue":u=>n.updateState(d,u*1e3,"average_consump")},null,8,["model-value","onUpdate:modelValue"]),l(s,{title:"Bidirektionales Laden",buttons:[{buttonValue:!1,text:"Nicht unterstützt",class:"btn-outline-danger"},{buttonValue:!0,text:"AC nach ISO15118-20",class:"btn-outline-success"}],"model-value":r.bidi,"onUpdate:modelValue":u=>n.updateState(d,u,"bidi")},{help:a(()=>[...e[41]||(e[41]=[i(' Für bidirektionales Laden wird eine openWB Pro benötigt. Die openWB Pro muss auf den Modus "Bidi" gestellt werden.',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(o(),p("div",on,[l(S,null,{default:a(()=>[...e[42]||(e[42]=[i(" Angaben zur Ladeleistung (DC) ",-1)])]),_:1}),l(_,{title:"Mindestleistung",min:0,unit:"kW","model-value":n.ac_current2dc_power(r.dc_min_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"dc_min_current")},null,8,["model-value","onUpdate:modelValue"]),l(_,{title:"Maximalleistung",unit:"kW","model-value":n.ac_current2dc_power(r.dc_max_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"dc_max_current")},null,8,["model-value","onUpdate:modelValue"])])):m("",!0),l(S,null,{default:a(()=>[e[43]||(e[43]=i(" Angaben zum Ladestrom ",-1)),t.dcChargingEnabled===!0?(o(),p("span",sn," (AC) ")):m("",!0)]),_:1}),l(P,{title:"Mindeststrom",min:6,max:16,step:1,unit:"A","model-value":r.min_current,"onUpdate:modelValue":u=>n.updateState(d,u,"min_current")},null,8,["model-value","onUpdate:modelValue"]),l(P,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":r.max_current_single_phase,"onUpdate:modelValue":u=>n.updateState(d,u,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),l(P,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":r.max_current_multi_phases,"onUpdate:modelValue":u=>n.updateState(d,u,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"]),l(_,{title:"Erlaubte Stromabweichung",step:.1,min:0,max:5,unit:"A","model-value":r.nominal_difference,"onUpdate:modelValue":u=>n.updateState(d,u,"nominal_difference")},{help:a(()=>[...e[44]||(e[44]=[i(" In manchen Lademodi, z.B. bei der automatischen Phasenumschaltung, wird geprüft, ob das Fahrzeug mit der vorgegebenen Stromstärke lädt. Manche Fahrzeuge laden nicht exakt mit der vorgegebenen Stromstärke. Die erlaubte Abweichung kann hier eingestellt werden. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(S,null,{default:a(()=>[e[45]||(e[45]=i(" Angaben zur Handhabung von Phasen ",-1)),t.dcChargingEnabled===!0?(o(),p("span",mn," (AC) ")):m("",!0)]),_:1}),l(s,{title:"Unterstützte Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":r.max_phases,"onUpdate:modelValue":u=>n.updateState(d,u,"max_phases")},{help:a(()=>[...e[46]||(e[46]=[i(" Anzahl der Phasen, die der Fahrzeuglader (s.g. OBC - OnboardCharger) verwendet. Plugin-Hybride nutzen meist nur eine Phase, reine E-Autos meist 3, manche nur 2 Phasen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"CP-Unterbrechung",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.control_pilot_interruption,"onUpdate:modelValue":u=>n.updateState(d,u,"control_pilot_interruption")},{help:a(()=>[...e[47]||(e[47]=[i(' Erläuterung siehe "Konfiguration - Ladepunkte" -> Hardware-Optionen ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),r.control_pilot_interruption?(o(),c(_,{key:2,title:"Dauer der CP-Unterbrechung",min:4,step:1,unit:"s","model-value":r.control_pilot_interruption_duration,"onUpdate:modelValue":u=>n.updateState(d,u,"control_pilot_interruption_duration")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Phasenumschaltung blockieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.prevent_phase_switch,"onUpdate:modelValue":u=>n.updateState(d,u,"prevent_phase_switch")},{help:a(()=>[...e[48]||(e[48]=[i(' Erläuterung zu 1p3p siehe "Ladeeinstellungen" ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Ladung aktiv halten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.prevent_charge_stop,"onUpdate:modelValue":u=>n.updateState(d,u,"prevent_charge_stop")},{help:a(()=>[...e[49]||(e[49]=[i(" Der Ladevorgang wird in den Lademodi PV- und Zielladen nach Ladebeginn nicht unterbrochen, selbst wenn nicht mehr genug Überschuss vorhanden ist. Diese Einstellung sollte bei Fahrzeugen aktiviert werden, die nach einer Ladungsunterbrechung keine Ladung mehr starten. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Pause bei Phasenumschaltung",unit:"s",min:2,step:1,required:"","model-value":r.phase_switch_pause,"onUpdate:modelValue":u=>n.updateState(d,u,"phase_switch_pause")},null,8,["model-value","onUpdate:modelValue"]),f.installAssistantActive?m("",!0):(o(),p("div",gn,[l(_,{title:"Mindestzeit zwischen Umschaltungen",unit:"s",min:2,step:1,required:"","model-value":r.keep_charge_active_duration,"onUpdate:modelValue":u=>n.updateState(d,u,"keep_charge_active_duration")},{help:a(()=>[...e[50]||(e[50]=[i(" Manche Fahrzeuge benötigen nach der Umschaltung einige Zeit, bis sie mit der vorgegebenen Phasenzahl laden. In dieser Zeit wird keine neue Phasenumschaltung angestoßen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]))]),_:2},[n.$store.state.mqtt["openWB/general/extern"]===!1?{name:"actions",fn:a(u=>[u.collapsed?m("",!0):(o(),c(z,{key:0,class:"bg-success clickable",title:"Fahrzeug-Profil duplizieren",onClick:A=>t.addEvTemplate(A,d)},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1},8,["onClick"])),!u.collapsed&&!d.endsWith("/0")?(o(),c(z,{key:1,class:"bg-danger clickable ml-1",title:"Fahrzeug-Profil löschen",onClick:A=>t.removeEvTemplateModal(A,d)},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1},8,["onClick"])):m("",!0)]),key:"0"}:void 0]),1032,["title"]))),128))]))]),_:1}),l(L,{collapsible:!0,collapsed:n.$route.params.section!="charge_template"},{header:a(()=>[l(K,{class:"fa-lg"},{default:a(()=>[l(h,{icon:["far","file"]}),l(h,{icon:["fas","plug"],transform:"shrink-8"})]),_:1}),e[51]||(e[51]=i(" Lade-Profile ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(o(),c(z,{key:0,class:"bg-success clickable",title:"Neues Lade-Profil hinzufügen",onClick:t.addChargeTemplate},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(o(),p("div",pn,[l(V,{subtype:"info"},{default:a(()=>[...e[52]||(e[52]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(o(),p("div",hn,[(o(!0),p(W,null,D(t.chargeTemplates,(r,d)=>(o(),c(L,{key:d,title:r.name?r.name:d,collapsible:!0,collapsed:!(n.$route.params.section=="charge_template"&&parseInt(n.$route.params.section_index)==r.id)},{actions:a(u=>[u.collapsed?m("",!0):(o(),c(z,{key:0,class:"bg-success clickable",title:"Lade-Profil duplizieren",onClick:A=>t.addChargeTemplate(A,d)},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1},8,["onClick"])),!u.collapsed&&!d.endsWith("/0")?(o(),c(z,{key:1,class:"bg-danger clickable ml-1",title:"Lade-Profil löschen",onClick:B(A=>t.removeChargeTemplateModal(A,r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[l(C,{title:"Bezeichnung","model-value":r.name,disabled:d.endsWith("/0"),"onUpdate:modelValue":u=>n.updateState(d,u,"name")},Z({_:2},[d.endsWith("/0")?{name:"help",fn:a(()=>[e[53]||(e[53]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),l(S,null,{default:a(()=>[...e[54]||(e[54]=[i(" Allgemeine Optionen ",-1)])]),_:1}),l(s,{title:"Aktiver Lademodus",buttons:[{buttonValue:"instant_charging",text:"Sofort",class:"btn-outline-danger"},{buttonValue:"pv_charging",text:"PV",class:"btn-outline-success"},{buttonValue:"scheduled_charging",text:"Ziel",class:"btn-outline-primary"},{buttonValue:"eco_charging",text:"Eco",class:"btn-outline-secondary"},{buttonValue:"stop",text:"Stop",class:"btn-outline-dark"}],"model-value":r.chargemode.selected,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.selected"),onButtonClick:u=>t.openActiveChargeModeCard(d,u)},{help:a(()=>[...e[55]||(e[55]=[i(" Diese Einstellung entspricht dem gewählten Lademodus auf der Hauptseite und ist aktiv, wenn ein zugehöriges Fahrzeug angesteckt ist.",-1),g("br",null,null,-1),i(" Die zur Verfügung stehende Leistung wird intern anhand folgender Prioritätenliste auf die Fahrzeuge bzw. Ladepunkte verteilt:",-1),g("br",null,null,-1),g("ol",null,[g("li",null,"Ziel (Sofortladen) mit Priorität"),g("li",null,"Ziel (Sofortladen)"),g("li",null,"Zeit mit Priorität"),g("li",null,"Zeit"),g("li",null,"Sofort mit Priorität"),g("li",null,"Sofort"),g("li",null,"Eco (Min-Anteil) mit Priorität"),g("li",null,"Eco (Min-Anteil)"),g("li",null,"PV (Min-Anteil) mit Priorität"),g("li",null,"PV (Min-Anteil)"),g("li",null,"Ziel (PV) mit Priorität"),g("li",null,"Ziel (PV)"),g("li",null,"Eco (PV-Anteil) mit Priorität"),g("li",null,"Eco (PV-Anteil)"),g("li",null,"PV (PV-Anteil) mit Priorität"),g("li",null,"PV (PV-Anteil)"),g("li",null,"Bidi-Entladen ohne Priorität"),g("li",null,"Bidi-Entladen mit Priorität")],-1)])]),_:1},8,["model-value","onUpdate:modelValue","onButtonClick"]),f.installAssistantActive?m("",!0):(o(),p("div",cn,[l(s,{title:"Priorität",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.prio,"onUpdate:modelValue":u=>n.updateState(d,u,"prio")},{help:a(()=>[...e[56]||(e[56]=[i(" Die Ladefreigabe mit dem jeweils eingestellten Mindeststrom erfolgt für alle Fahrzeuge, soweit die verfügbare Leistung ausreicht. Fahrzeuge mit Priorität werden bevorzugt mit mehr Leistung geladen, falls verfügbar. Erst wenn alle priorisierten Fahrzeuge die maximale Ladeleistung bekommen und noch zusätzlicher Überschuss vorhanden ist, wird auch für Fahrzeuge ohne Priorität mehr Leistung freigegeben. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Standard nach Abstecken",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.load_default,"onUpdate:modelValue":u=>n.updateState(d,u,"load_default")},{help:a(()=>[...e[57]||(e[57]=[i(" Falls diese Option aktiviert ist, wird der betroffene Ladepunkt nach dem Abstecken auf das Standard Fahrzeug zurückgesetzt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),e[59]||(e[59]=g("hr",null,null,-1)),l(S,null,{default:a(()=>[...e[58]||(e[58]=[i("Einstellungen der Lademodi",-1)])]),_:1})])),l(L,{ref_for:!0,ref:`card-${d}-instant_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[60]||(e[60]=[i(" Sofort ",-1)])]),default:a(()=>[l(P,{title:`Soll-Ladestrom${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":r.chargemode.instant_charging.current,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.instant_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(o(),c(_,{key:0,title:"Soll-Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.instant_charging.dc_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"chargemode.instant_charging.dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":r.chargemode.instant_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.instant_charging.phases_to_use")},{help:a(()=>[...e[61]||(e[61]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (s.g. 1p3p). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":r.chargemode.instant_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.instant_charging.limit.selected")},{help:a(()=>[...e[62]||(e[62]=[i(" Sofortladen kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(P,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":r.chargemode.instant_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.instant_charging.limit.soc")},{help:a(()=>[...e[63]||(e[63]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":r.chargemode.instant_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(d,u*1e3,"chargemode.instant_charging.limit.amount")},{help:a(()=>[...e[64]||(e[64]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1536),l(L,{ref_for:!0,ref:`card-${d}-pv_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[65]||(e[65]=[i(" PV ",-1)])]),default:a(()=>[l(P,{title:`Minimaler Dauerstrom${t.dcChargingEnabled?" (AC)":""}`,min:0,max:11,step:1,unit:"A",labels:[{label:"Aus",value:0},{label:6,value:6},{label:7,value:7},{label:8,value:8},{label:9,value:9},{label:10,value:10},{label:11,value:11},{label:12,value:12},{label:13,value:13},{label:14,value:14},{label:15,value:15},{label:16,value:16}],"model-value":r.chargemode.pv_charging.min_current,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.pv_charging.min_current")},{help:a(()=>[...e[66]||(e[66]=[i(' Hier kann eine Stromstärke eingestellt werden, mit dem unabhängig vom vorhandenen Überschuss durchgeladen wird. Hierdurch wird z.B. an Tagen mit häufigem Sonne/Wolken-Wechsel oder mit nur wenig PV-Ertrag ein Laden ohne Unterbrechung ermöglicht. Folglich kann auch Netzbezug für das Fahrzeugladen entstehen, weshalb der niedrigste Stromwert empfohlen wird. Diese Einstellung entspricht weitestgehend dem Lademodus "Min+PV" der Version 1.x. ',-1)])]),_:1},8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(o(),c(_,{key:0,title:"Minimale Dauerleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.pv_charging.dc_min_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"chargemode.pv_charging.dc_min_current")},{help:a(()=>[...e[67]||(e[67]=[i(" Hier kann eine Leistung eingestellt werden, mit dem unabhängig vom vorhandenen Überschuss durchgeladen wird. Hierdurch wird z.B. an Tagen mit häufigem Sonne/Wolken-Wechsel oder mit nur wenig PV-Ertrag ein Laden ohne Unterbrechung ermöglicht. Folglich kann auch Netzbezug für das Fahrzeugladen entstehen, weshalb der niedrigste Leistungswert empfohlen wird. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":r.chargemode.pv_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.pv_charging.phases_to_use")},{help:a(()=>[...e[68]||(e[68]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um den verfügbaren Überschuss in die Fahrzeuge zu laden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":r.chargemode.pv_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.pv_charging.limit.selected")},{help:a(()=>[...e[69]||(e[69]=[i(" PV kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(P,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":r.chargemode.pv_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.pv_charging.limit.soc")},{help:a(()=>[...e[70]||(e[70]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":r.chargemode.pv_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(d,u*1e3,"chargemode.pv_charging.limit.amount")},{help:a(()=>[...e[71]||(e[71]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(P,{title:"Mindest-SoC für das Fahrzeug",min:0,max:19,step:1,unit:"%",labels:[{label:"Aus",value:0},{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:20,value:20},{label:25,value:25},{label:30,value:30},{label:35,value:35},{label:40,value:40},{label:45,value:45},{label:50,value:50},{label:55,value:55},{label:60,value:60},{label:65,value:65},{label:70,value:70},{label:75,value:75},{label:80,value:80},{label:85,value:85},{label:90,value:90},{label:95,value:95}],"model-value":r.chargemode.pv_charging.min_soc,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.pv_charging.min_soc")},{help:a(()=>[...e[72]||(e[72]=[i(' Liegt der Fahrzeug-Ladestand (SoC) unter dem hier eingestellten Wert, dann wird bis zum Erreichen dieses Wertes mit dem eingestellten "Mindest-SoC-Strom" geladen. Dies dient der Sicherstellung eines "Mindest-SoC" - z.B. für eine immer abzudeckende Fahrzeugreichweite - auch wenn kein oder zu wenig Überschuss verfügbar ist (=> Laden mit anteilig Netzstrom). Nach dem Erreichen des "Mindest-SoC" wird bei verfügbarem Überschuss geladen.',-1),g("br",null,null,-1),i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(P,{title:`Mindest-SoC-Strom${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":r.chargemode.pv_charging.min_soc_current,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.pv_charging.min_soc_current")},{help:a(()=>[...e[73]||(e[73]=[i(' Wird der oben eingestellte "Mindest-SoC" des Fahrzeuges unterschritten, dann wird unabhängig vom Überschuss ein Ladevorgang mit dem hier festgelegten "Mindest-SoC-Strom" initiiert (ggf. mit anteilig Netzbezug). ',-1)])]),_:1},8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(o(),c(_,{key:1,title:"Mindest-SoC-Leistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.pv_charging.dc_min_soc_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"chargemode.pv_charging.dc_min_soc_current")},{help:a(()=>[...e[74]||(e[74]=[i(' Wird der oben eingestellte "Mindest-SoC" des Fahrzeuges unterschritten, dann wird unabhängig vom Überschuss ein Ladevorgang mit der hier festgelegten "Mindest-SoC-Leistung" initiiert (ggf. mit anteilig Netzbezug). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen Mindest-SoC",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":r.chargemode.pv_charging.phases_to_use_min_soc,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.pv_charging.phases_to_use_min_soc")},{help:a(()=>[...e[75]||(e[75]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Einspeisegrenze beachten",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.chargemode.pv_charging.feed_in_limit,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.pv_charging.feed_in_limit")},{help:a(()=>[...e[76]||(e[76]=[i(' Erläuterung siehe "Ladeeinstellungen" -> "PV-Laden" -> "Regelparameter" -> "Regelpunkt Einspeisegrenze" ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1536),l(L,{ref_for:!0,ref:`card-${d}-scheduled_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[77]||(e[77]=[i(" Ziel ",-1)])]),default:a(()=>[l(S,null,{actions:a(()=>[l(z,{class:"bg-success clickable",title:"Neuen Zielladen-Plan hinzufügen",onClick:B(u=>t.addChargeTemplateSchedulePlan(r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),help:a(()=>[...e[78]||(e[78]=[i(' Im Lademodus "Zielladen" wird der Ladestrom so angepasst, dass das Fahrzeug zum angegebenen Zeitpunkt den eingestellten SoC bzw. die einzuladende Energiemenge erreicht. Anhand des vorgegebenen Ladestroms wird der Zeitpunkt berechnet, an dem die Ladung spätestens starten muss.',-1),g("br",null,null,-1),i(' Ist der berechnete Zeitpunkt des Ladestarts noch nicht erreicht, wird mit Überschuss geladen. Auch nach Erreichen des Ziel-SoCs wird mit Überschuss geladen, solange bis das "SoC-Limit für das Fahrzeug" erreicht wird.',-1),g("br",null,null,-1),i(" Es wird nach den Vorgaben des Zeitplans geladen, dessen Zieltermin am nächsten liegt. Ist der Zielzeitpunkt vorbei, wird solange geladen bis, das Ziel erreicht oder das Auto abgesteckt wird. Wenn der Ziel-Termin des nächsten Plans innerhalb der nächsten 12 Stunden liegt, wird auf den nächsten Plan umgeschaltet. ",-1)])]),default:a(()=>[e[79]||(e[79]=i(" Zielladepläne ",-1))]),_:2},1024),r.chargemode.scheduled_charging.plans.length==0?(o(),c(V,{key:0,subtype:"info"},{default:a(()=>[...e[80]||(e[80]=[i(" Es wurden noch keine Pläne für das Zielladen angelegt. ",-1)])]),_:1})):m("",!0),(o(!0),p(W,null,D(r.chargemode.scheduled_charging.plans,(u,A)=>(o(),c(ne,{key:A,"model-value":u,"template-id":r.id,"dc-charging-enabled":t.dcChargingEnabled,"onUpdate:modelValue":T=>n.updateState(d,T,`chargemode.scheduled_charging.plans.${A}`),onSendCommand:e[3]||(e[3]=T=>n.$emit("sendCommand",T))},null,8,["model-value","template-id","dc-charging-enabled","onUpdate:modelValue"]))),128))]),_:2},1536),l(L,{ref_for:!0,ref:`card-${d}-eco_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[81]||(e[81]=[i(" Eco ",-1)])]),default:a(()=>[l(S,null,{help:a(()=>[...e[82]||(e[82]=[i(" Im Eco-Modus wird eine Preisgrenze vorgegeben. Wenn der Strompreis unter dieser Grenze liegt, wird mit dem eingestellten Ladestrom geladen und -falls vorhanden- zusätzlich mit dem Überschuss. Wenn die Preisgrenze überschritten wird, wird nur mit Überschuss geladen, wenn dieser vorhanden ist. ",-1)])]),default:a(()=>[e[83]||(e[83]=i("Arbeitsweise von Eco ",-1))]),_:1}),l(P,{title:`Minimaler Dauerstrom unter der Preisgrenze${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":r.chargemode.eco_charging.current,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.eco_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(o(),c(_,{key:0,title:"Minimale Dauerleistung unter der Preisgrenze (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.eco_charging.dc_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"chargemode.eco_charging.dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":r.chargemode.eco_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.eco_charging.phases_to_use")},{help:a(()=>[...e[84]||(e[84]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um den verfügbaren Überschuss in die Fahrzeuge zu laden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":r.chargemode.eco_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.eco_charging.limit.selected")},{help:a(()=>[...e[85]||(e[85]=[i(" Eco kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(P,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":r.chargemode.eco_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.eco_charging.limit.soc")},{help:a(()=>[...e[86]||(e[86]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":r.chargemode.eco_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(d,u*1e3,"chargemode.eco_charging.limit.amount")},{help:a(()=>[...e[87]||(e[87]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),!n.$store.state.mqtt["openWB/optional/et/provider"]||!n.$store.state.mqtt["openWB/optional/et/provider"].type?(o(),c(V,{key:1,subtype:"warning"},{default:a(()=>[...e[88]||(e[88]=[i(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. Ohne Strompreis-Anbieter wird im Modus Eco nur geladen, wenn Überschuss vorhanden ist. ",-1)])]),_:1})):m("",!0),l(_,{title:"Preisgrenze für strompreisbasiertes Laden",min:"-80",max:"80",step:"0.01",precision:2,unit:"ct/kWh","model-value":r.chargemode.eco_charging.max_price*1e5,"onUpdate:modelValue":u=>n.updateState(d,parseFloat((u/1e5).toFixed(7)),"chargemode.eco_charging.max_price")},null,8,["model-value","onUpdate:modelValue"])]),_:2},1536),f.installAssistantActive?m("",!0):(o(),p("div",bn,[e[92]||(e[92]=g("hr",null,null,-1)),l(s,{title:"Zeitladen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.time_charging.active,"onUpdate:modelValue":u=>n.updateState(d,u,"time_charging.active")},{help:a(()=>[...e[89]||(e[89]=[g("p",null,' Der Lademodus Zeit kann parallel zu einem der anderen Lademodi aktiviert werden. Die Auswahl des Lademodus, der in der Regelung genutzt wird, erfolgt anhand der Übersicht in der Hilfe bei "Aktiver Lademodus". Wenn kein Zeitplan aktiv ist oder das Limit des Zeitplans erreicht wurde, wird der Lademodus verwendet, der bei "Aktiver Lademodus" ausgewählt ist. ',-1),g("p",null," Mit einem Zeitplan kann ein klar abgegrenzter Zeitbereich zum Fahrzeugladen definiert werden. Dies wird häufig genutzt, um einem Fahrzeug kurz vor der Abfahrt Strom anzubieten, damit dessen Vorklimatisierung nicht aus dem Fahrzeugakku, sondern aus der openWB bezogen wird (Enteisung, Vorwärmung, Abkühlung). Nicht von der Vorklimatisierung benötigter Strom erhöht dabei den Fahrzeug-SoC. Um das Stromnetz am Morgen nicht unnötig zu strapazieren, sollte eine moderate Stromvorgabe und ein beschränkter Zeitbereich vorgegeben werden (z.B. max. 10A; 30min - in Übereinstimmung mit den Fahrzeug-App-Vorklimatisierungsvorgaben). ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(L,{ref_for:!0,ref:`card-${d}-scheduled_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[90]||(e[90]=[i(" Zeitladen-Pläne ",-1)])]),actions:a(()=>[l(z,{class:"bg-success clickable",title:"Neuen Zeitladen-Plan hinzufügen",onClick:B(u=>t.addChargeTemplateTimeChargingPlan(r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:a(()=>[(r.time_charging.plans??[]).length==0?(o(),c(V,{key:0,subtype:"info"},{default:a(()=>[...e[91]||(e[91]=[i(" Es wurden noch keine Pläne für das Zeitladen angelegt. ",-1)])]),_:1})):m("",!0),(o(!0),p(W,null,D(r.time_charging.plans??[],(u,A)=>(o(),c(te,{key:A,"model-value":u,"template-id":r.id,"dc-charging-enabled":t.dcChargingEnabled,"onUpdate:modelValue":T=>n.updateState(d,T,`time_charging.plans.${A}`),onSendCommand:e[4]||(e[4]=T=>n.$emit("sendCommand",T))},null,8,["model-value","template-id","dc-charging-enabled","onUpdate:modelValue"]))),128))]),_:2},1536)]))]),_:2},1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),l(le,{"form-name":"vehicleConfigForm",onSave:e[5]||(e[5]=r=>n.$emit("save")),onReset:e[6]||(e[6]=r=>n.$emit("reset")),onDefaults:e[7]||(e[7]=r=>n.$emit("defaults"))})])])],64)}const vn=q(Ge,[["render",fn],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/VehicleConfig.vue"]]),zn=Object.freeze(Object.defineProperty({__proto__:null,default:vn},Symbol.toStringTag,{value:"Module"}));export{fe as V,vn as a,zn as b}; diff --git a/web/settings/assets/VehicleConfig-c6e5b45b.js b/web/settings/assets/VehicleConfig-c6e5b45b.js new file mode 100644 index 0000000000..c1cb7e5b02 --- /dev/null +++ b/web/settings/assets/VehicleConfig-c6e5b45b.js @@ -0,0 +1 @@ +import{l as x,a6 as ae,a7 as ie,F as O,_ as R,S as I,E as H,G as j,an as J,am as G,ap as ue,aq as re,ah as $,al as Q,ab as X,d as de,a0 as oe,ao as se,R as me,M as ge}from"./vendor-fortawesome-a02b6813.js";import{_ as k,C as Y}from"./index-8dd8e083.js";import{_ as pe}from"./dynamic-import-helper-be004503.js";import{_ as q,u as b,l as o,m as p,x as c,E as a,B as i,F as w,G as l,A as g,a2 as he,a3 as ce,N as W,q as ee,y as B,z as m,M as D,D as Z}from"./vendor-25d394b4.js";const be={props:{vehicleId:{required:!0,type:Number},vehicle:{required:!0,type:Object}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},fe=q(be,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/VehicleConfigMixin.vue"]]),ve={name:"VehicleConfigFallback",mixins:[fe]},_e={class:"vehicle-fallback"},Ve={key:1};function ke(n,e,f,U,y,t){const E=b("openwb-base-alert"),h=b("openwb-base-textarea");return o(),p("div",_e,[Object.keys(n.vehicle.configuration).length==0?(o(),c(E,{key:0,subtype:"info"},{default:a(()=>[i(' Der Fahrzeug-Typ "'+w(n.vehicle.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(o(),p("div",Ve,[l(E,{subtype:"warning"},{default:a(()=>[i(' Es wurde keine Konfigurationsseite für den Fahrzeug-Typ "'+w(n.vehicle.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),l(h,{title:"Konfiguration",subtype:"json","model-value":n.vehicle.configuration,"onUpdate:modelValue":e[0]||(e[0]=z=>n.updateConfiguration(z,"configuration"))},{help:a(()=>e[1]||(e[1]=[i(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),l(E,{subtype:"info"},{default:a(()=>[g("pre",null,w(JSON.stringify(n.vehicle.configuration,void 0,2)),1)]),_:1})]))])}const we=q(ve,[["render",ke],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleConfigFallback.vue"]]);x.add(ae,ie);const ze={name:"OpenwbVehicleProxy",components:{FontAwesomeIcon:O},props:{vehicleId:{type:Number,required:!0},vehicle:{type:Object,required:!0}},emits:["update:configuration"],methods:{getVehicleComponent(){return console.debug(`loading vehicle: ${this.vehicle.type}`),he({loader:()=>pe(Object.assign({"./aiways/vehicle.vue":()=>k(()=>import("./vehicle-8289a840.js"),["assets/vehicle-8289a840.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./bmwbc/vehicle.vue":()=>k(()=>import("./vehicle-da3e8433.js"),["assets/vehicle-da3e8433.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./cupra/vehicle.vue":()=>k(()=>import("./vehicle-98b9fcdb.js"),["assets/vehicle-98b9fcdb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./evcc/vehicle.vue":()=>k(()=>import("./vehicle-673ea579.js"),["assets/vehicle-673ea579.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./evnotify/vehicle.vue":()=>k(()=>import("./vehicle-16754a95.js"),["assets/vehicle-16754a95.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./http/vehicle.vue":()=>k(()=>import("./vehicle-e0cbc84a.js"),["assets/vehicle-e0cbc84a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./json/vehicle.vue":()=>k(()=>import("./vehicle-4a5ca121.js"),["assets/vehicle-4a5ca121.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kia/vehicle.vue":()=>k(()=>import("./vehicle-fbca4a35.js"),["assets/vehicle-fbca4a35.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./leaf/vehicle.vue":()=>k(()=>import("./vehicle-3896a2ec.js"),["assets/vehicle-3896a2ec.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./manual/vehicle.vue":()=>k(()=>import("./vehicle-70e7db8e.js"),["assets/vehicle-70e7db8e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mercedeseq/vehicle.vue":()=>k(()=>import("./vehicle-3cb9cb75.js"),["assets/vehicle-3cb9cb75.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mqtt/vehicle.vue":()=>k(()=>import("./vehicle-fe38074f.js"),["assets/vehicle-fe38074f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./ovms/vehicle.vue":()=>k(()=>import("./vehicle-f2b05f39.js"),["assets/vehicle-f2b05f39.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./psa/vehicle.vue":()=>k(()=>import("./vehicle-b82069af.js"),["assets/vehicle-b82069af.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./psacc/vehicle.vue":()=>k(()=>import("./vehicle-9efbb8ea.js"),["assets/vehicle-9efbb8ea.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./renault/vehicle.vue":()=>k(()=>import("./vehicle-38543ffd.js"),["assets/vehicle-38543ffd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./skoda/vehicle.vue":()=>k(()=>import("./vehicle-9505d809.js"),["assets/vehicle-9505d809.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smarthello/vehicle.vue":()=>k(()=>import("./vehicle-65e3046c.js"),["assets/vehicle-65e3046c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/vehicle.vue":()=>k(()=>import("./vehicle-e45de3aa.js"),["assets/vehicle-e45de3aa.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-axios-ac33d60c.js","assets/index-8dd8e083.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tronity/vehicle.vue":()=>k(()=>import("./vehicle-04c99766.js"),["assets/vehicle-04c99766.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./vwid/vehicle.vue":()=>k(()=>import("./vehicle-8c0aaa75.js"),["assets/vehicle-8c0aaa75.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.vehicle.type}/vehicle.vue`),errorComponent:we})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function Ce(n,e,f,U,y,t){const E=b("font-awesome-icon"),h=b("openwb-base-alert"),z=b("openwb-base-heading");return o(),p(W,null,[f.vehicle.official?(o(),c(h,{key:0,subtype:"info"},{default:a(()=>[l(E,{icon:["fas","certificate"]}),i(' Das ausgewählte Fahrzeug-Modul "'+w(f.vehicle.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(o(),c(h,{key:1,subtype:"info"},{default:a(()=>[l(E,{icon:["fas","people-group"]}),i(' Das ausgewählte Fahrzeug-Modul "'+w(f.vehicle.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),l(z,null,{default:a(()=>[i(' Einstellungen für SoC-Modul "'+w(f.vehicle.name)+'" ',1)]),_:1}),(o(),c(ce(t.getVehicleComponent()),{"vehicle-id":f.vehicleId,vehicle:f.vehicle,"onUpdate:configuration":e[0]||(e[0]=V=>t.updateConfiguration(V))},null,40,["vehicle-id","vehicle"]))],64)}const Se=q(ze,[["render",Ce],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleProxy.vue"]]);x.add(R,I,H,j,J,G,ue,re,$,Q,X);const ye={name:"VehicleScheduledChargingPlan",components:{FontAwesomeIcon:O},mixins:[Y],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0},dcChargingEnabled:{type:Boolean,default:!1}},emits:["update:modelValue","sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/optional/et/provider"],showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addChargeTemplateSchedulePlan",data:{template:this.templateId,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplateSchedulePlan",data:{template:this.templateId,plan:this.modelValue.id}})}}},Ee={key:0},Ae={key:1},Ue={key:2},Le={key:3},Pe={key:4},We={key:5},Fe={key:1},Be={key:4},Me={key:7};function Te(n,e,f,U,y,t){const E=b("openwb-base-modal-dialog"),h=b("font-awesome-icon"),z=b("openwb-base-avatar"),V=b("openwb-base-text-input"),C=b("openwb-base-button-group-input"),F=b("openwb-base-range-input"),S=b("openwb-base-number-input"),M=b("openwb-base-alert"),v=b("openwb-base-card");return o(),p(W,null,[l(E,{show:y.showRemoveModal,title:"Zielladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:a(()=>[i(' Wollen Sie den Zielladen Zeitplan "'+w(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l(v,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:a(s=>[s.collapsed==!0?(o(),p("span",{key:0,class:ee(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=B(_=>t.plan.active=!t.plan.active,["stop"]))},[t.plan.limit.selected=="soc"?(o(),p("span",Ee,[l(h,{icon:["fas","car-battery"]}),i(" "+w(t.plan.limit.soc_scheduled)+"% ",1),l(h,{icon:["fas",t.plan.bidi_charging_enabled?"right-left":"right-long"]},null,8,["icon"]),i(" "+w(t.plan.limit.soc_limit)+"% ",1)])):m("",!0),t.plan.limit.selected=="amount"?(o(),p("span",Ae,[l(h,{icon:["fas","bolt"]}),i(" "+w(t.plan.limit.amount/1e3)+"kWh ",1)])):m("",!0),l(h,{icon:["fas","clock"]}),i(" "+w(t.plan.time)+" ",1),t.plan.frequency.selected=="once"?(o(),p("span",Ue,[l(h,{icon:["fas","calendar-day"]}),i(" "+w(n.formatDate(t.plan.frequency.once)),1)])):m("",!0),t.plan.frequency.selected=="daily"?(o(),p("span",Le,[l(h,{icon:["fas","calendar-week"]})])):m("",!0),t.plan.frequency.selected=="weekly"?(o(),p("span",Pe,[l(h,{icon:["fas","calendar-alt"]})])):m("",!0),t.plan.et_active?(o(),p("span",We,[l(h,{icon:["fas","coins"]})])):m("",!0)],2)):m("",!0),s.collapsed==!1?(o(),p("span",Fe,[l(z,{class:"bg-success clickable ml-1",title:"Zielladen-Plan duplizieren",onClick:e[1]||(e[1]=B(_=>t.copyPlan(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1}),l(z,{class:"bg-danger clickable ml-1",title:"Zielladen-Plan löschen",onClick:e[2]||(e[2]=B(_=>t.removePlanModal(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1})])):m("",!0)]),default:a(()=>[l(V,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=s=>t.plan.name=s),title:"Bezeichnung"},null,8,["modelValue"]),l(C,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=s=>t.plan.active=s),title:"Zeitpunkt aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),l(V,{modelValue:t.plan.time,"onUpdate:modelValue":e[5]||(e[5]=s=>t.plan.time=s),title:"Ziel-Uhrzeit",subtype:"time"},{help:a(()=>e[19]||(e[19]=[i(" Hier ist die gewünschte Uhrzeit einzustellen, zu welcher das Fahrzeug den gewünschten SoC bzw. die zu ladende Energiemenge BEREITS ERREICHT haben soll. ",-1)])),_:1},8,["modelValue"]),l(C,{modelValue:t.plan.limit.selected,"onUpdate:modelValue":e[6]||(e[6]=s=>t.plan.limit.selected=s),title:"Ziel",buttons:[{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}]},{help:a(()=>e[20]||(e[20]=[i(" Bestimmt die Art der Grenze für den Ladevorgang. ",-1)])),_:1},8,["modelValue"]),t.plan.limit.selected=="soc"?(o(),c(F,{key:0,modelValue:t.plan.limit.soc_scheduled,"onUpdate:modelValue":e[7]||(e[7]=s=>t.plan.limit.soc_scheduled=s),title:"Fahrzeug-SoC zum Zielzeitpunkt",min:5,max:100,step:5,unit:"%"},{help:a(()=>e[21]||(e[21]=[i(" SoC, der zum angegebenen Zeitpunkt erreicht werden soll (Ziel-SoC). ",-1)])),_:1},8,["modelValue"])):m("",!0),t.plan.limit.selected=="soc"?(o(),c(F,{key:1,modelValue:t.plan.limit.soc_limit,"onUpdate:modelValue":e[8]||(e[8]=s=>t.plan.limit.soc_limit=s),title:"Fahrzeug-SoC mit Überschuss",min:5,max:100,step:5,unit:"%"},{help:a(()=>e[22]||(e[22]=[i(" Nach Erreichen des Ziel-SoCs wird mit Überschuss weiter geladen, bis das SoC-Limit erreicht wird. Sobald das SoC-Limit erreicht wurde, findet keine Ladung mehr mit Überschuss statt! ",-1)])),_:1},8,["modelValue"])):m("",!0),t.plan.limit.selected=="amount"?(o(),c(S,{key:2,title:"Ziel-Energie",unit:"kWh",min:1,step:.5,"model-value":t.plan.limit.amount/1e3,"onUpdate:modelValue":e[9]||(e[9]=s=>t.plan.limit.amount=s*1e3)},{help:a(()=>e[23]||(e[23]=[i(" Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zielladen schon ausgewählt ist, neu gezählt. ",-1)])),_:1},8,["model-value"])):m("",!0),e[31]||(e[31]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[10]||(e[10]=s=>t.plan.frequency.selected=s),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(o(),c(V,{key:3,modelValue:t.plan.frequency.once,"onUpdate:modelValue":e[11]||(e[11]=s=>t.plan.frequency.once=s),title:"Datum",subtype:"date"},null,8,["modelValue"])):m("",!0),t.plan.frequency.selected=="weekly"?(o(),p("div",Be,[(o(!0),p(W,null,D(n.weekdays,(s,_)=>(o(),c(C,{key:_,modelValue:t.plan.frequency.weekly[_],"onUpdate:modelValue":N=>t.plan.frequency.weekly[_]=N,title:s,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):m("",!0),e[32]||(e[32]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.et_active,"onUpdate:modelValue":e[12]||(e[12]=s=>t.plan.et_active=s),title:"Strompreisbasiert Laden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),t.plan.et_active==!0&&(!n.$store.state.mqtt["openWB/optional/et/provider"]||!n.$store.state.mqtt["openWB/optional/et/provider"].type)?(o(),c(M,{key:5,subtype:"danger"},{default:a(()=>e[24]||(e[24]=[i(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. ",-1)])),_:1,__:[24]})):m("",!0),l(C,{modelValue:t.plan.phases_to_use,"onUpdate:modelValue":e[13]||(e[13]=s=>t.plan.phases_to_use=s),title:"Anzahl Phasen Zielladen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}]},{help:a(()=>e[25]||(e[25]=[i(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zielladen" mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um das Ziel zu erreichen. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])),_:1},8,["modelValue"]),l(C,{modelValue:t.plan.phases_to_use_pv,"onUpdate:modelValue":e[14]||(e[14]=s=>t.plan.phases_to_use_pv=s),title:"Anzahl Phasen bei PV-Überschuss",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}]},{help:a(()=>e[26]||(e[26]=[i(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zielladen" bei Laden mit PV-Überschuss mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um das Ziel zu erreichen. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])),_:1},8,["modelValue"]),l(F,{modelValue:t.plan.current,"onUpdate:modelValue":e[15]||(e[15]=s=>t.plan.current=s),title:`Ladestrom${f.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A"},{help:a(()=>e[27]||(e[27]=[i(" Mit dieser Stromstärke wird der Zeitpunkt berechnet, wann die Ladung mit Netzbezug gestartet werden muss. Wird der Ziel-SoC nicht zum angegebenen Termin erreicht, weil z.B. das Auto erst später angesteckt wurde, wird auch mit einer höheren Stromstärke geladen. Um etwas Puffer zu haben, empfiehlt es sich, etwas weniger als die Maximalstromstärke des Fahrzeugs zu wählen. ",-1)])),_:1},8,["modelValue","title"]),f.dcChargingEnabled===!0?(o(),c(S,{key:6,title:"Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(t.plan.dc_current),"onUpdate:modelValue":e[16]||(e[16]=s=>t.plan.dc_current=n.dc_power2ac_current(s))},null,8,["model-value"])):m("",!0),t.plan.limit.selected=="soc"?(o(),p("div",Me,[e[30]||(e[30]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.bidi_charging_enabled,"onUpdate:modelValue":e[17]||(e[17]=s=>t.plan.bidi_charging_enabled=s),title:"Bidirektionales Überschussladen bei kompatiblem Ladepunkt&Fahrzeug",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},{help:a(()=>e[28]||(e[28]=[i(" Wenn Ladepunkt und Fahrzeug bidirektionales Laden unterstützen, wird bis zum Fahrzug-SoC zum Zielzeitpunkt wie gewohnt mit Zielladen geladen. Ist der eingestellte SoC erreicht, wird eine Nullpunktausregelung gemacht, dh das Auto wird so ge- und entladen, dass möglichst weder Bezug noch Einspeisung entsteht. Der SoC wird dabei immer zwischen Fahrzeug-SoC zum Zielzeitpunkt und Fahrzeug-SoC mit Überschuss gehalten. ",-1),g("br",null,null,-1),i(" Unterstützen das Fahrzeug und/oder der Ladepunkt kein bidirektionales Laden, hat diese Einstellung keine Auswirkung. ",-1)])),_:1},8,["modelValue"]),t.plan.bidi_charging_enabled===!0?(o(),c(M,{key:0,subtype:"info"},{default:a(()=>e[29]||(e[29]=[i(" Die Norm IEC 61851-1 und ISO 15118 benötigen als Parameter eine Stromstärke und die Phasenzahl. Die Norm ISO 15118-20, die das bidirektionale Laden definiert, benötigt als Parameter eine Ladeleistung. Die Phasenzahl legt das Fahrzeug fest. Wenn Fahrzeug und Ladepunkt bidirektionales Laden nach ISO 15118-20 unterstützen, wird die eingestellte Ladeleistung verwendet. Unterstützen das Fahrzeug und/oder der Ladepunkt die Norm nicht, wird der Ladestrom und die vorgegebene Phasenzahl angewendet. ",-1)])),_:1,__:[29]})):m("",!0),t.plan.bidi_charging_enabled===!0?(o(),c(S,{key:1,title:"Ladeleistung",min:1,max:22,step:.5,unit:"kW","model-value":t.plan.bidi_power/1e3,"onUpdate:modelValue":e[18]||(e[18]=s=>n.updateState(n.templateKey,s*1e3,"plan.bidi_power"))},null,8,["model-value"])):m("",!0)])):m("",!0)]),_:1,__:[31,32]},8,["title"])],64)}const De=q(ye,[["render",Te],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ChargeTemplateScheduledChargingPlan.vue"]]);x.add(R,I,H,j,J,G,Q,X);const qe={name:"ChargeTemplateTimeChargingPlan",components:{FontAwesomeIcon:O},mixins:[Y],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0},dcChargingEnabled:{type:Boolean,default:!1}},emits:["update:modelValue","sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/optional/dc_charging"],showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addChargeTemplateTimeChargingPlan",data:{template:this.templateId,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplateTimeChargingPlan",data:{template:this.templateId,plan:this.modelValue.id}})}}},Ze={key:0},xe={key:1},Oe={key:2},Ne={key:3},Re={key:4},Ie={key:1},He={key:3};function je(n,e,f,U,y,t){const E=b("openwb-base-modal-dialog"),h=b("font-awesome-icon"),z=b("openwb-base-avatar"),V=b("openwb-base-text-input"),C=b("openwb-base-button-group-input"),F=b("openwb-base-range-input"),S=b("openwb-base-number-input"),M=b("openwb-base-card");return o(),p(W,null,[l(E,{show:y.showRemoveModal,title:"Zeitladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:a(()=>[i(' Wollen Sie den Zeitladen Zeitplan "'+w(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l(M,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:a(v=>[v.collapsed==!0?(o(),p("span",{key:0,class:ee(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=B(s=>t.plan.active=!t.plan.active,["stop"]))},[t.plan.limit.selected=="soc"?(o(),p("span",Ze,[l(h,{icon:["fas","car-battery"]}),i(" "+w(t.plan.limit.soc)+"% ",1)])):m("",!0),t.plan.limit.selected=="amount"?(o(),p("span",xe,[l(h,{icon:["fas","bolt"]}),i(" "+w(t.plan.limit.amount/1e3)+"kWh ",1)])):m("",!0),l(h,{icon:["fas","clock"]}),i(" "+w(t.plan.time[0])+" - "+w(t.plan.time[1])+" ",1),t.plan.frequency.selected=="once"?(o(),p("span",Oe,[l(h,{icon:["fas","calendar-day"]}),i(" "+w(n.formatDate(t.plan.frequency.once[0])==n.formatDate(t.plan.frequency.once[1])?n.formatDate(t.plan.frequency.once[0]):n.formatDate(t.plan.frequency.once[0])+" - "+n.formatDate(t.plan.frequency.once[1])),1)])):m("",!0),t.plan.frequency.selected=="daily"?(o(),p("span",Ne,[l(h,{icon:["fas","calendar-week"]})])):m("",!0),t.plan.frequency.selected=="weekly"?(o(),p("span",Re,[l(h,{icon:["fas","calendar-alt"]})])):m("",!0)],2)):m("",!0),v.collapsed==!1?(o(),p("span",Ie,[l(z,{class:"bg-success clickable",title:"Zeitladen-Plan duplizieren",onClick:e[1]||(e[1]=B(s=>t.copyPlan(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1}),l(z,{class:"bg-danger clickable ml-1",title:"Zeitladen-Plan löschen",onClick:e[2]||(e[2]=B(s=>t.removePlanModal(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1})])):m("",!0)]),default:a(()=>[l(V,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=v=>t.plan.name=v),title:"Bezeichnung"},null,8,["modelValue"]),l(C,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=v=>t.plan.active=v),title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),l(F,{modelValue:t.plan.current,"onUpdate:modelValue":e[5]||(e[5]=v=>t.plan.current=v),title:`Ladestrom${f.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A"},null,8,["modelValue","title"]),f.dcChargingEnabled===!0?(o(),c(S,{key:0,title:"Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(t.plan.dc_current),"onUpdate:modelValue":e[6]||(e[6]=v=>t.plan.dc_current=n.dc_power2ac_current(v))},null,8,["model-value"])):m("",!0),l(C,{modelValue:t.plan.limit.selected,"onUpdate:modelValue":e[7]||(e[7]=v=>t.plan.limit.selected=v),title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}]},{help:a(()=>e[16]||(e[16]=[i(" Bestimmt die Art der Grenze für den Ladevorgang. ",-1)])),_:1},8,["modelValue"]),l(F,{modelValue:t.plan.limit.soc,"onUpdate:modelValue":e[8]||(e[8]=v=>t.plan.limit.soc=v),title:"Ziel-SoC für das Fahrzeug",min:5,max:100,step:5,unit:"%"},{help:a(()=>e[17]||(e[17]=[i(" Ladestand des Akku (State of Charge, SoC), bis zu welchem maximal geladen werden soll. ",-1)])),_:1},8,["modelValue"]),l(S,{title:"Ziel-Energie",unit:"kWh",min:1,step:.5,"model-value":t.plan.limit.amount/1e3,"onUpdate:modelValue":e[9]||(e[9]=v=>t.plan.limit.amount=v*1e3)},{help:a(()=>e[18]||(e[18]=[i(" Maximal zu ladende Energie innerhalb des Zeitfensters. Eignet sich immer dann wenn kein SoC zur Verfügung steht. Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zeitladen schon aktiv ist, neu gezählt. ",-1)])),_:1},8,["model-value"]),e[20]||(e[20]=g("hr",null,null,-1)),l(V,{modelValue:t.plan.time[0],"onUpdate:modelValue":e[10]||(e[10]=v=>t.plan.time[0]=v),title:"Zeitpunkt des Ladebeginns",subtype:"time"},null,8,["modelValue"]),l(V,{modelValue:t.plan.time[1],"onUpdate:modelValue":e[11]||(e[11]=v=>t.plan.time[1]=v),title:"Zeitpunkt des Ladeendes",subtype:"time"},null,8,["modelValue"]),l(C,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[12]||(e[12]=v=>t.plan.frequency.selected=v),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(o(),c(V,{key:1,modelValue:t.plan.frequency.once[0],"onUpdate:modelValue":e[13]||(e[13]=v=>t.plan.frequency.once[0]=v),title:"Gültig ab",subtype:"date"},null,8,["modelValue"])):m("",!0),t.plan.frequency.selected=="once"?(o(),c(V,{key:2,modelValue:t.plan.frequency.once[1],"onUpdate:modelValue":e[14]||(e[14]=v=>t.plan.frequency.once[1]=v),title:"Gültig bis",subtype:"date",min:t.plan.frequency.once[0]},null,8,["modelValue","min"])):m("",!0),t.plan.frequency.selected=="weekly"?(o(),p("div",He,[(o(!0),p(W,null,D(n.weekdays,(v,s)=>(o(),c(C,{key:s,modelValue:t.plan.frequency.weekly[s],"onUpdate:modelValue":_=>t.plan.frequency.weekly[s]=_,title:v,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):m("",!0),e[21]||(e[21]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.phases_to_use,"onUpdate:modelValue":e[15]||(e[15]=v=>t.plan.phases_to_use=v),title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}]},{help:a(()=>e[19]||(e[19]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])),_:1},8,["modelValue"])]),_:1,__:[20,21]},8,["title"])],64)}const Je=q(qe,[["render",je],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ChargeTemplateTimeChargingPlan.vue"]]);x.add(de,X,j,G,J,H,R,I,oe,se,me,$,Q);const Ge={name:"OpenwbVehicleConfigView",components:{FontAwesomeIcon:O,FontAwesomeLayers:ge,OpenwbVehicleProxy:Se,ChargeTemplateScheduledChargingPlan:De,ChargeTemplateTimeChargingPlan:Je},mixins:[Y],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/optional/dc_charging","openWB/optional/et/provider","openWB/optional/rfid/active","openWB/vehicle/template/ev_template/+","openWB/vehicle/template/charge_template/+","openWB/vehicle/template/charge_template/+/chargemode/scheduled_charging/plans/+","openWB/vehicle/template/charge_template/+/time_charging/plans/+","openWB/vehicle/+/name","openWB/vehicle/+/info","openWB/vehicle/+/charge_template","openWB/vehicle/+/ev_template","openWB/vehicle/+/tag_id","openWB/system/configurable/soc_modules","openWB/vehicle/+/soc_module/general_config","openWB/vehicle/+/soc_module/config"],showVehicleModal:!1,modalVehicleIndex:void 0,showEvTemplateModal:!1,modalEvTemplateIndex:void 0,showChargeTemplateModal:!1,modalChargeTemplateIndex:void 0}},computed:{dcChargingEnabled:{get(){return this.$store.state.mqtt["openWB/optional/dc_charging"]}},vehicleIndexes:{get(){return this.getWildcardIndexList("openWB/vehicle/+/name")}},evTemplates:{get(){return this.getWildcardTopics("openWB/vehicle/template/ev_template/+")}},evTemplateList:{get(){let n=[];return Object.keys(this.evTemplates).forEach(e=>{let f=parseInt(e.match(/([0-9]+)$/g)[0]),U=this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+f].name;n.push({value:f,text:U})}),n}},chargeTemplates:{get(){return this.getWildcardTopics("openWB/vehicle/template/charge_template/+")}},chargeTemplateList:{get(){let n=[];return Object.keys(this.chargeTemplates).forEach(e=>{let f=parseInt(e.match(/([0-9]+)$/g)[0]),U=this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+f].name;n.push({value:f,text:U})}),n}},socModuleList:{get(){return this.$store.state.mqtt["openWB/system/configurable/soc_modules"]}}},methods:{updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)},addVehicle(n){n.stopPropagation(),this.$emit("sendCommand",{command:"addVehicle",data:{}})},removeVehicleModal(n,e){n.stopPropagation(),this.modalVehicleIndex=e,this.showVehicleModal=!0},removeVehicle(n,e){this.showVehicleModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeVehicle",data:{id:e}})},getVehicleName(n){return this.$store.state.mqtt["openWB/vehicle/"+n+"/name"]?this.$store.state.mqtt["openWB/vehicle/"+n+"/name"]:"Fahrzeug "+n},getSocDefaultConfiguration(n){const e=this.socModuleList.find(f=>f.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for soc type!",n),{})},updateSelectedSocModule(n,e){this.updateState("openWB/vehicle/"+n+"/soc_module/config",e,"type"),this.updateState("openWB/vehicle/"+n+"/soc_module/config",this.getSocDefaultConfiguration(e))},addEvTemplate(n,e){n.stopPropagation();let f={};e&&e.match(/([^/]+)$/)&&(f.copy=parseInt(e.match(/([^/]+)$/)[0])),this.$emit("sendCommand",{command:"addEvTemplate",data:f})},removeEvTemplateModal(n,e){n.stopPropagation(),this.modalEvTemplateIndex=parseInt(e.match(/([^/]+)$/)[0]),this.showEvTemplateModal=!0},removeEvTemplate(n,e){this.showEvTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeEvTemplate",data:{id:e}})},getEvTemplateName(n){return this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+n]?this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+n].name:"Fahrzeug-Profil "+n},addChargeTemplate(n,e){n.stopPropagation();let f={};e&&e.match(/([^/]+)$/)&&(f.copy=parseInt(e.match(/([^/]+)$/)[0])),this.$emit("sendCommand",{command:"addChargeTemplate",data:f})},removeChargeTemplateModal(n,e){this.modalChargeTemplateIndex=e,this.showChargeTemplateModal=!0},removeChargeTemplate(n,e){this.showChargeTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplate",data:{id:e}})},getChargeTemplateName(n){return this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+n]?this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+n].name:"Lade-Profil "+n},addChargeTemplateSchedulePlan(n){this.$emit("sendCommand",{command:"addChargeTemplateSchedulePlan",data:{template:n}})},addChargeTemplateTimeChargingPlan(n){this.$emit("sendCommand",{command:"addChargeTemplateTimeChargingPlan",data:{template:n}})},openActiveChargeModeCard(n,e){this.$nextTick(()=>{["instant_charging","pv_charging","eco_charging","scheduled_charging"].forEach(U=>{const y=`card-${n}-${U}`,t=this.$refs[y],E=Array.isArray(t)?t[0]:t;E&&(E.isCollapsed=U!==e)})})}}},Qe={class:"vehicleConfig"},Xe={name:"vehicleConfigForm"},Ye={key:0},Ke={key:1},$e={key:2},en={key:0},nn={key:0},tn={key:1},ln={key:1},an={key:3},un={key:0},rn={key:1},dn={key:0},on={key:1},sn={key:0},mn={key:0},gn={key:3},pn={key:0},hn={key:1},cn={key:0},bn={key:1};function fn(n,e,f,U,y,t){const E=b("openwb-base-modal-dialog"),h=b("font-awesome-icon"),z=b("openwb-base-avatar"),V=b("openwb-base-alert"),C=b("openwb-base-text-input"),F=b("openwb-base-select-input"),S=b("openwb-base-heading"),M=b("router-link"),v=b("openwb-base-array-input"),s=b("openwb-base-button-group-input"),_=b("openwb-base-number-input"),N=b("openwb-vehicle-proxy"),L=b("openwb-base-card"),K=b("font-awesome-layers"),P=b("openwb-base-range-input"),ne=b("charge-template-scheduled-charging-plan"),te=b("charge-template-time-charging-plan"),le=b("openwb-base-submit-buttons");return o(),p(W,null,[l(E,{show:y.showVehicleModal,title:"Fahrzeug löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=r=>t.removeVehicle(r,y.modalVehicleIndex))},{default:a(()=>[i(' Wollen Sie das Fahrzeug "'+w(t.getVehicleName(y.modalVehicleIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),l(E,{show:y.showEvTemplateModal,title:"Fahrzeug-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=r=>t.removeEvTemplate(r,y.modalEvTemplateIndex))},{default:a(()=>[i(' Wollen Sie das Fahrzeug-Profil "'+w(t.getEvTemplateName(y.modalEvTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),l(E,{show:y.showChargeTemplateModal,title:"Lade-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[2]||(e[2]=r=>t.removeChargeTemplate(r,y.modalChargeTemplateIndex))},{default:a(()=>[i(' Wollen Sie das Lade-Profil "'+w(t.getChargeTemplateName(y.modalChargeTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),g("div",Qe,[g("form",Xe,[l(L,{subtype:"info",collapsible:!0,collapsed:n.$route.params.section!="vehicle"},{header:a(()=>[l(h,{icon:["fas","car"]}),e[8]||(e[8]=i(" Fahrzeuge ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(o(),c(z,{key:0,class:"bg-success clickable",title:"Neues Fahrzeug hinzufügen",onClick:t.addVehicle},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(o(),p("div",Ye,[l(V,{subtype:"info"},{default:a(()=>e[9]||(e[9]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[9]})])):(o(),p("div",Ke,[(o(!0),p(W,null,D(t.vehicleIndexes,r=>(o(),c(L,{key:r,title:t.getVehicleName(r),collapsible:!0,collapsed:!(n.$route.params.section=="vehicle"&&parseInt(n.$route.params.section_index)==r),subtype:"info"},Z({default:a(()=>[l(C,{title:"Bezeichnung","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/name"],disabled:r===0,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/name",d)},Z({_:2},[r===0?{name:"help",fn:a(()=>[e[10]||(e[10]=i(" Das Standard-Fahrzeug kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),r!==0?(o(),c(C,{key:0,title:"Fahrzeughersteller ","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/info"].manufacturer,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/info",d,"manufacturer")},{help:a(()=>[...e[11]||(e[11]=[i(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),r!==0?(o(),c(C,{key:1,title:"Fahrzeugmodell","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/info"].model,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/info",d,"model")},{help:a(()=>[...e[12]||(e[12]=[i(" Optional: zusätzliche Information für den Systembericht.",-1),g("br",null,null,-1),i(" Nach Möglichkeit auch Angabe des Baujahres, da es durchaus beim Verhalten des Fahrzeugs Unterschiede geben kann. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),l(V,{subtype:"info"},{default:a(()=>[...e[13]||(e[13]=[i(" Ein anderes Fahrzeug-Profil wird erst NACH dem Abstecken übernommen, da es sonst durch die Änderung bestimmter Einstellungen im laufenden Ladevorgang zu Widersprüchen kommen kann. ",-1)])]),_:1,__:[13]}),l(F,{title:"Fahrzeug-Profil",options:t.evTemplateList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/ev_template"],"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/ev_template",d)},null,8,["options","model-value","onUpdate:modelValue"]),l(F,{title:"Lade-Profil",options:t.chargeTemplateList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/charge_template"],"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/charge_template",d)},null,8,["options","model-value","onUpdate:modelValue"]),e[32]||(e[32]=g("hr",null,null,-1)),f.installAssistantActive?m("",!0):(o(),p("div",$e,[l(S,null,{default:a(()=>[...e[14]||(e[14]=[i(" Fahrzeugzuordnung per ID-Tags ",-1)])]),_:1,__:[14]}),n.$store.state.mqtt["openWB/vehicle/"+r+"/tag_id"].length>0?(o(),p("div",en,[l(V,{subtype:"info"},{default:a(()=>[e[16]||(e[16]=i(" Einstellungen zur Fahrzeugzuordnung finden sich unter ",-1)),l(M,{to:"/IdentificationConfig"},{default:a(()=>[...e[15]||(e[15]=[i(" Einstellungen - Identifikation ",-1)])]),_:1,__:[15]}),e[17]||(e[17]=i(". ",-1)),n.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(o(),p("div",nn," Aktuell ist die Option in den Einstellungen deaktiviert. ")):(o(),p("div",tn," Die Option ist aktiv. Das Fahrzeug lässt sich per ID-Tag automatisch einem Ladepunkt zuordnen. ")),e[18]||(e[18]=i(" Dem Fahrzeug sind folgende ID-Tags zugeordnet: ",-1))]),_:1,__:[16,17,18]}),l(v,{title:"Zugeordnete ID-Tags","no-elements-message":"Keine keine ID-Tags zugeordnet.","no-input":!0,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/tag_id"]},null,8,["model-value"])])):(o(),p("div",ln,[l(V,{subtype:"info"},{default:a(()=>[e[20]||(e[20]=i(" Einstellungen zur Fahrzeugzuordnung finden sich unter ",-1)),l(M,{to:"/IdentificationConfig"},{default:a(()=>[...e[19]||(e[19]=[i(" Einstellungen - Identifikation ",-1)])]),_:1,__:[19]}),e[21]||(e[21]=i(".",-1)),e[22]||(e[22]=g("br",null,null,-1)),e[23]||(e[23]=i(" Dem Fahrzeug sind aktuell keine ID-Tags zum Entsperren zugeordnet. ",-1))]),_:1,__:[20,21,22,23]})])),e[24]||(e[24]=g("hr",null,null,-1))])),l(F,{class:"mb-2",title:"SoC-Modul des Fahrzeugs",options:t.socModuleList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/config"].type,"onUpdate:modelValue":d=>t.updateSelectedSocModule(r,d)},{help:a(()=>[...e[25]||(e[25]=[i(" Mit einem SoC-Modul kann der Ladestand des Fahrzeugs ermittelt und geregelt werden. Z.B. lassen sich unabhängig vom Fahrzeug bestimmte SoC-Werte einstellen, um den Fahrzeugakku zu schonen. Aktuell werden die SoC-Werte mittels der App-Zugangsdaten aus dem Herstellerserver des Fahrzeuges ausgelesen. Zukünftig soll auch eine direkte SoC-Auslesung aus dem Fahrzeug möglich werden (openWB Pro).",-1),g("br",null,null,-1),i(" Die SoC-Abfrage erfolgt automatisch beim Anstecken des Fahrzeuges und zusätzlich über einstellbare Abfrageintervalle während des Ladens und Nichtladens. Die Abfrage kann auch manuell durch Klick auf den Reload-Pfeil auf der Hauptseite ausgelöst werden.",-1),g("br",null,null,-1),i(" Wenn eine Abfrage fehlschlägt, wird noch drei weitere Male im Abstand von 5 Minuten versucht, den SoC abzufragen. Wenn dies nicht erfolgreich ist, wird der SoC auf 0% gesetzt um zu vermeiden, dass ein Auto beim SoC-basierten Laden nicht geladen wird. Die Abfrage erfolgt dann wieder in den oben genannten Intervallen.",-1),g("br",null,null,-1),i(" Da aktuell die SoC-Abfragen über Onlineserver der Fahrzeughersteller laufen, ist infolge möglicher Umstellungen/Wartungen keine 100%-ig sichere SoC-Abfrage garantiert. Auch kann es zu SoC-Abweichungen infolge von zeitlicher Verzögerungen kommen. Hilfestellung erfolgt primär im openWB-Forum. ",-1)])]),_:2},1032,["options","model-value","onUpdate:modelValue"]),n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/config"].type?(o(),p("div",an,[l(s,{title:"SoC direkt aus Fahrzeug auslesen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"].use_soc_from_cp,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",d,"use_soc_from_cp")},{help:a(()=>[...e[26]||(e[26]=[i(" Wenn Ladepunkt und Fahrzeug das direkte Auslesen des SoCs über das Ladekabel unterstützen, wird der SoC nach dem Anstecken aus dem Fahrzeug ausgelesen und während der Ladung berechnet. Das direkte Auslesen des SoC aus dem Fahrzeug ist aktuell nur mit einer openWB Pro möglich. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(S,null,{help:a(()=>[...e[27]||(e[27]=[i(" Einige Hersteller begrenzen die möglichen Abfragen. Sobald ein gewisses Limit in einem Zeitraum überschritten wird, werden weitere Anfragen blockiert. Die Zeitintervalle sollten daher nicht zu klein gewählt werden. ",-1)])]),default:a(()=>[e[28]||(e[28]=i(" Aktualisierung der Fahrzeugdaten ",-1))]),_:1,__:[28]}),l(_,{title:"Während der Ladung",unit:"Min.",min:1,max:30,required:"","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"].request_interval_charging/60,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",d*60,"request_interval_charging")},{help:a(()=>[...e[29]||(e[29]=[i(" Der Ladestand des Fahrzeugs (SoC) wird bei einem laufenden Ladevorgang in dem hier eingestellten Intervall in Minuten abgefragt. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(_,{title:"Ohne laufende Ladung",unit:"Min.",min:5,required:"","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"].request_interval_not_charging/60,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",d*60,"request_interval_not_charging")},{help:a(()=>[...e[30]||(e[30]=[i(" Der Ladestand des Fahrzeugs (SoC) wird in dem hier eingestellten Intervall in Minuten abgefragt, falls kein Ladevorgang aktiv ist. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Nur aktualisieren wenn angesteckt",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"].request_only_plugged,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",d,"request_only_plugged")},{help:a(()=>[...e[31]||(e[31]=[i(' Wird hier "Ja" ausgewählt, dann wird der Ladestand des Fahrzeugs nur abgefragt, wenn das Ladekabel angesteckt ist. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(N,{"vehicle-id":r,vehicle:n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/config"],"onUpdate:configuration":d=>t.updateConfiguration("openWB/vehicle/"+r+"/soc_module/config",d)},null,8,["vehicle-id","vehicle","onUpdate:configuration"])])):m("",!0)]),_:2},[r!==0?{name:"actions",fn:a(d=>[d.collapsed?m("",!0):(o(),c(z,{key:0,class:"bg-danger clickable",title:"Fahrzeug löschen",onClick:u=>t.removeVehicleModal(u,r)},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),key:"0"}:void 0]),1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),e[93]||(e[93]=g("hr",{class:"border-secondary"},null,-1)),l(S,null,{default:a(()=>e[33]||(e[33]=[i("Profile",-1)])),_:1,__:[33]}),l(L,{collapsible:!0,collapsed:!0},{header:a(()=>[l(K,{class:"fa-lg"},{default:a(()=>[l(h,{icon:["far","file"]}),l(h,{icon:["fas","car"],transform:"shrink-8"})]),_:1}),e[34]||(e[34]=i(" Fahrzeug-Profile ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(o(),c(z,{key:0,class:"bg-success clickable",title:"Neues Fahrzeug-Profil hinzufügen",onClick:t.addEvTemplate},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(o(),p("div",un,[l(V,{subtype:"info"},{default:a(()=>e[35]||(e[35]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[35]})])):(o(),p("div",rn,[l(V,{subtype:"info"},{default:a(()=>e[36]||(e[36]=[i(" Ein anderes Fahrzeug-Profil wird erst ",-1),g("span",{class:"text-uppercase font-weight-bold"}," nach dem Abstecken ",-1),i(" übernommen, da es sonst durch die Änderung bestimmter Einstellungen im laufenden Ladevorgang zu Widersprüchen kommen kann. ",-1)])),_:1,__:[36]}),(o(!0),p(W,null,D(t.evTemplates,(r,d)=>(o(),c(L,{key:d,title:r.name?r.name:d,collapsible:!0,collapsed:!0},Z({default:a(()=>[l(C,{title:"Bezeichnung","model-value":r.name,disabled:d.endsWith("/0"),"onUpdate:modelValue":u=>n.updateState(d,u,"name")},Z({_:2},[d.endsWith("/0")?{name:"help",fn:a(()=>[e[37]||(e[37]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),l(S,null,{default:a(()=>[...e[38]||(e[38]=[i(" Angaben zur Batterie ",-1)])]),_:1,__:[38]}),l(_,{title:"Kapazität der Batterie",unit:"kWh",min:1,step:1,required:"","model-value":r.battery_capacity/1e3,"onUpdate:modelValue":u=>n.updateState(d,u*1e3,"battery_capacity")},{help:a(()=>[...e[39]||(e[39]=[i(" Angabe der Netto-Kapazität der Fahrzeugbatterie. Dient zur Berechnung des manuellen SoC und der geladenen Reichweite. Die Netto-Kapazität unterscheidet sich meist von den Angaben der Fahrzeughersteller. So besitzt ein Tesla Model S 90 z. B. nur ca. 83kWh und nicht die durch die Typenbezeichnung suggerierten 90kWh. Andere Hersteller begrenzen die nutzbare Kapazität absichtlich, um eine höhere Lebensdauer der Akkus zu erreichen. Gängig sind eine Drosselung auf 90% der angegebenen Brutto-Kapazität. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),f.installAssistantActive?m("",!0):(o(),p("div",dn,[l(_,{title:"Wirkungsgrad der Ladeelektronik",unit:"%",min:1,max:100,required:"","model-value":r.efficiency,"onUpdate:modelValue":u=>n.updateState(d,u,"efficiency")},{help:a(()=>[...e[40]||(e[40]=[i(" Durch Verluste in der Ladeelektronik (z. B. Umwandlung Wechselspannung in Gleichspannung) gelangt nicht die komplette Energie, welche durch den Zähler in der Wallbox gemessen wird, in den Akku des Fahrzeugs. Der anzugebende Wert liegt bei gängigen Fahrzeugen im Bereich 90-95%. Eine Ausnahme stellt der Zoe dar, dessen Chameleon-Lader je nach Modellversion und freigegebener Leistung der Wallbox teilweise nur auf ca. 50% kommt.",-1),g("br",null,null,-1),i(" Liegen die Angaben der Wallbox und des Fahrzeugs nach der Ladung mehrere Prozent auseinander, dann kann mit dieser Einstellung eine Feinabstimmung erfolgen: ",-1),g("br",null,null,-1),i(" SoC an der Wallbox zu hoch: Wirkungsgrad um ein paar Prozent reduzieren",-1),g("br",null,null,-1),i(" SoC an der Wallbox zu gering: Wirkungsgrad um ein paar Prozent erhöhen",-1),g("br",null,null,-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])])),l(_,{title:"Durchschnittsverbrauch",unit:"kWh / 100km",min:1,step:.1,required:"","model-value":r.average_consump/1e3,"onUpdate:modelValue":u=>n.updateState(d,u*1e3,"average_consump")},null,8,["model-value","onUpdate:modelValue"]),l(s,{title:"Bidirektionales Laden",buttons:[{buttonValue:!1,text:"Nicht unterstützt",class:"btn-outline-danger"},{buttonValue:!0,text:"AC nach ISO15118-20",class:"btn-outline-success"}],"model-value":r.bidi,"onUpdate:modelValue":u=>n.updateState(d,u,"bidi")},{help:a(()=>[...e[41]||(e[41]=[i(' Für bidirektionales Laden wird eine openWB Pro benötigt. Die openWB Pro muss auf den Modus "Bidi" gestellt werden.',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(o(),p("div",on,[l(S,null,{default:a(()=>[...e[42]||(e[42]=[i(" Angaben zur Ladeleistung (DC) ",-1)])]),_:1,__:[42]}),l(_,{title:"Mindestleistung",min:0,unit:"kW","model-value":n.ac_current2dc_power(r.dc_min_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"dc_min_current")},null,8,["model-value","onUpdate:modelValue"]),l(_,{title:"Maximalleistung",unit:"kW","model-value":n.ac_current2dc_power(r.dc_max_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"dc_max_current")},null,8,["model-value","onUpdate:modelValue"])])):m("",!0),l(S,null,{default:a(()=>[e[43]||(e[43]=i(" Angaben zum Ladestrom ",-1)),t.dcChargingEnabled===!0?(o(),p("span",sn," (AC) ")):m("",!0)]),_:1,__:[43]}),l(P,{title:"Mindeststrom",min:6,max:16,step:1,unit:"A","model-value":r.min_current,"onUpdate:modelValue":u=>n.updateState(d,u,"min_current")},null,8,["model-value","onUpdate:modelValue"]),l(P,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":r.max_current_single_phase,"onUpdate:modelValue":u=>n.updateState(d,u,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),l(P,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":r.max_current_multi_phases,"onUpdate:modelValue":u=>n.updateState(d,u,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"]),l(_,{title:"Erlaubte Stromabweichung",step:.1,min:0,max:5,unit:"A","model-value":r.nominal_difference,"onUpdate:modelValue":u=>n.updateState(d,u,"nominal_difference")},{help:a(()=>[...e[44]||(e[44]=[i(" In manchen Lademodi, z.B. bei der automatischen Phasenumschaltung, wird geprüft, ob das Fahrzeug mit der vorgegebenen Stromstärke lädt. Manche Fahrzeuge laden nicht exakt mit der vorgegebenen Stromstärke. Die erlaubte Abweichung kann hier eingestellt werden. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(S,null,{default:a(()=>[e[45]||(e[45]=i(" Angaben zur Handhabung von Phasen ",-1)),t.dcChargingEnabled===!0?(o(),p("span",mn," (AC) ")):m("",!0)]),_:1,__:[45]}),l(s,{title:"Unterstützte Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":r.max_phases,"onUpdate:modelValue":u=>n.updateState(d,u,"max_phases")},{help:a(()=>[...e[46]||(e[46]=[i(" Anzahl der Phasen, die der Fahrzeuglader (s.g. OBC - OnboardCharger) verwendet. Plugin-Hybride nutzen meist nur eine Phase, reine E-Autos meist 3, manche nur 2 Phasen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"CP-Unterbrechung",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.control_pilot_interruption,"onUpdate:modelValue":u=>n.updateState(d,u,"control_pilot_interruption")},{help:a(()=>[...e[47]||(e[47]=[i(' Erläuterung siehe "Konfiguration - Ladepunkte" -> Hardware-Optionen ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),r.control_pilot_interruption?(o(),c(_,{key:2,title:"Dauer der CP-Unterbrechung",min:4,step:1,unit:"s","model-value":r.control_pilot_interruption_duration,"onUpdate:modelValue":u=>n.updateState(d,u,"control_pilot_interruption_duration")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Phasenumschaltung blockieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.prevent_phase_switch,"onUpdate:modelValue":u=>n.updateState(d,u,"prevent_phase_switch")},{help:a(()=>[...e[48]||(e[48]=[i(' Erläuterung zu 1p3p siehe "Ladeeinstellungen" ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Ladung aktiv halten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.prevent_charge_stop,"onUpdate:modelValue":u=>n.updateState(d,u,"prevent_charge_stop")},{help:a(()=>[...e[49]||(e[49]=[i(" Der Ladevorgang wird in den Lademodi PV- und Zielladen nach Ladebeginn nicht unterbrochen, selbst wenn nicht mehr genug Überschuss vorhanden ist. Diese Einstellung sollte bei Fahrzeugen aktiviert werden, die nach einer Ladungsunterbrechung keine Ladung mehr starten. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(_,{title:"Pause bei Phasenumschaltung",unit:"s",min:2,step:1,required:"","model-value":r.phase_switch_pause,"onUpdate:modelValue":u=>n.updateState(d,u,"phase_switch_pause")},null,8,["model-value","onUpdate:modelValue"]),f.installAssistantActive?m("",!0):(o(),p("div",gn,[l(_,{title:"Mindestzeit zwischen Umschaltungen",unit:"s",min:2,step:1,required:"","model-value":r.keep_charge_active_duration,"onUpdate:modelValue":u=>n.updateState(d,u,"keep_charge_active_duration")},{help:a(()=>[...e[50]||(e[50]=[i(" Manche Fahrzeuge benötigen nach der Umschaltung einige Zeit, bis sie mit der vorgegebenen Phasenzahl laden. In dieser Zeit wird keine neue Phasenumschaltung angestoßen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]))]),_:2},[n.$store.state.mqtt["openWB/general/extern"]===!1?{name:"actions",fn:a(u=>[u.collapsed?m("",!0):(o(),c(z,{key:0,class:"bg-success clickable",title:"Fahrzeug-Profil duplizieren",onClick:A=>t.addEvTemplate(A,d)},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:2},1032,["onClick"])),!u.collapsed&&!d.endsWith("/0")?(o(),c(z,{key:1,class:"bg-danger clickable ml-1",title:"Fahrzeug-Profil löschen",onClick:A=>t.removeEvTemplateModal(A,d)},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"])):m("",!0)]),key:"0"}:void 0]),1032,["title"]))),128))]))]),_:1}),l(L,{collapsible:!0,collapsed:n.$route.params.section!="charge_template"},{header:a(()=>[l(K,{class:"fa-lg"},{default:a(()=>[l(h,{icon:["far","file"]}),l(h,{icon:["fas","plug"],transform:"shrink-8"})]),_:1}),e[51]||(e[51]=i(" Lade-Profile ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(o(),c(z,{key:0,class:"bg-success clickable",title:"Neues Lade-Profil hinzufügen",onClick:t.addChargeTemplate},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(o(),p("div",pn,[l(V,{subtype:"info"},{default:a(()=>e[52]||(e[52]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[52]})])):(o(),p("div",hn,[(o(!0),p(W,null,D(t.chargeTemplates,(r,d)=>(o(),c(L,{key:d,title:r.name?r.name:d,collapsible:!0,collapsed:!(n.$route.params.section=="charge_template"&&parseInt(n.$route.params.section_index)==r.id)},{actions:a(u=>[u.collapsed?m("",!0):(o(),c(z,{key:0,class:"bg-success clickable",title:"Lade-Profil duplizieren",onClick:A=>t.addChargeTemplate(A,d)},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:2},1032,["onClick"])),!u.collapsed&&!d.endsWith("/0")?(o(),c(z,{key:1,class:"bg-danger clickable ml-1",title:"Lade-Profil löschen",onClick:B(A=>t.removeChargeTemplateModal(A,r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"])):m("",!0)]),default:a(()=>[l(C,{title:"Bezeichnung","model-value":r.name,disabled:d.endsWith("/0"),"onUpdate:modelValue":u=>n.updateState(d,u,"name")},Z({_:2},[d.endsWith("/0")?{name:"help",fn:a(()=>[e[53]||(e[53]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),l(S,null,{default:a(()=>[...e[54]||(e[54]=[i(" Allgemeine Optionen ",-1)])]),_:1,__:[54]}),l(s,{title:"Aktiver Lademodus",buttons:[{buttonValue:"instant_charging",text:"Sofort",class:"btn-outline-danger"},{buttonValue:"pv_charging",text:"PV",class:"btn-outline-success"},{buttonValue:"scheduled_charging",text:"Ziel",class:"btn-outline-primary"},{buttonValue:"eco_charging",text:"Eco",class:"btn-outline-secondary"},{buttonValue:"stop",text:"Stop",class:"btn-outline-dark"}],"model-value":r.chargemode.selected,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.selected"),onButtonClick:u=>t.openActiveChargeModeCard(d,u)},{help:a(()=>[...e[55]||(e[55]=[i(" Diese Einstellung entspricht dem gewählten Lademodus auf der Hauptseite und ist aktiv, wenn ein zugehöriges Fahrzeug angesteckt ist.",-1),g("br",null,null,-1),i(" Die zur Verfügung stehende Leistung wird intern anhand folgender Prioritätenliste auf die Fahrzeuge bzw. Ladepunkte verteilt:",-1),g("br",null,null,-1),g("ol",null,[g("li",null,"Ziel (Sofortladen) mit Priorität"),g("li",null,"Ziel (Sofortladen)"),g("li",null,"Zeit mit Priorität"),g("li",null,"Zeit"),g("li",null,"Sofort mit Priorität"),g("li",null,"Sofort"),g("li",null,"Eco (Min-Anteil) mit Priorität"),g("li",null,"Eco (Min-Anteil)"),g("li",null,"PV (Min-Anteil) mit Priorität"),g("li",null,"PV (Min-Anteil)"),g("li",null,"Ziel (PV) mit Priorität"),g("li",null,"Ziel (PV)"),g("li",null,"Eco (PV-Anteil) mit Priorität"),g("li",null,"Eco (PV-Anteil)"),g("li",null,"PV (PV-Anteil) mit Priorität"),g("li",null,"PV (PV-Anteil)"),g("li",null,"Bidi-Entladen ohne Priorität"),g("li",null,"Bidi-Entladen mit Priorität")],-1)])]),_:2},1032,["model-value","onUpdate:modelValue","onButtonClick"]),f.installAssistantActive?m("",!0):(o(),p("div",cn,[l(s,{title:"Priorität",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.prio,"onUpdate:modelValue":u=>n.updateState(d,u,"prio")},{help:a(()=>[...e[56]||(e[56]=[i(" Die Ladefreigabe mit dem jeweils eingestellten Mindeststrom erfolgt für alle Fahrzeuge, soweit die verfügbare Leistung ausreicht. Fahrzeuge mit Priorität werden bevorzugt mit mehr Leistung geladen, falls verfügbar. Erst wenn alle priorisierten Fahrzeuge die maximale Ladeleistung bekommen und noch zusätzlicher Überschuss vorhanden ist, wird auch für Fahrzeuge ohne Priorität mehr Leistung freigegeben. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Standard nach Abstecken",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.load_default,"onUpdate:modelValue":u=>n.updateState(d,u,"load_default")},{help:a(()=>[...e[57]||(e[57]=[i(" Falls diese Option aktiviert ist, wird der betroffene Ladepunkt nach dem Abstecken auf das Standard Fahrzeug zurückgesetzt. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),e[59]||(e[59]=g("hr",null,null,-1)),l(S,null,{default:a(()=>[...e[58]||(e[58]=[i("Einstellungen der Lademodi",-1)])]),_:1,__:[58]})])),l(L,{ref_for:!0,ref:`card-${d}-instant_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[60]||(e[60]=[i(" Sofort ",-1)])]),default:a(()=>[l(P,{title:`Soll-Ladestrom${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":r.chargemode.instant_charging.current,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.instant_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(o(),c(_,{key:0,title:"Soll-Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.instant_charging.dc_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"chargemode.instant_charging.dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":r.chargemode.instant_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.instant_charging.phases_to_use")},{help:a(()=>[...e[61]||(e[61]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (s.g. 1p3p). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":r.chargemode.instant_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.instant_charging.limit.selected")},{help:a(()=>[...e[62]||(e[62]=[i(" Sofortladen kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(P,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":r.chargemode.instant_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.instant_charging.limit.soc")},{help:a(()=>[...e[63]||(e[63]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":r.chargemode.instant_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(d,u*1e3,"chargemode.instant_charging.limit.amount")},{help:a(()=>[...e[64]||(e[64]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1536),l(L,{ref_for:!0,ref:`card-${d}-pv_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[65]||(e[65]=[i(" PV ",-1)])]),default:a(()=>[l(P,{title:`Minimaler Dauerstrom${t.dcChargingEnabled?" (AC)":""}`,min:0,max:11,step:1,unit:"A",labels:[{label:"Aus",value:0},{label:6,value:6},{label:7,value:7},{label:8,value:8},{label:9,value:9},{label:10,value:10},{label:11,value:11},{label:12,value:12},{label:13,value:13},{label:14,value:14},{label:15,value:15},{label:16,value:16}],"model-value":r.chargemode.pv_charging.min_current,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.pv_charging.min_current")},{help:a(()=>[...e[66]||(e[66]=[i(' Hier kann eine Stromstärke eingestellt werden, mit dem unabhängig vom vorhandenen Überschuss durchgeladen wird. Hierdurch wird z.B. an Tagen mit häufigem Sonne/Wolken-Wechsel oder mit nur wenig PV-Ertrag ein Laden ohne Unterbrechung ermöglicht. Folglich kann auch Netzbezug für das Fahrzeugladen entstehen, weshalb der niedrigste Stromwert empfohlen wird. Diese Einstellung entspricht weitestgehend dem Lademodus "Min+PV" der Version 1.x. ',-1)])]),_:2},1032,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(o(),c(_,{key:0,title:"Minimale Dauerleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.pv_charging.dc_min_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"chargemode.pv_charging.dc_min_current")},{help:a(()=>[...e[67]||(e[67]=[i(" Hier kann eine Leistung eingestellt werden, mit dem unabhängig vom vorhandenen Überschuss durchgeladen wird. Hierdurch wird z.B. an Tagen mit häufigem Sonne/Wolken-Wechsel oder mit nur wenig PV-Ertrag ein Laden ohne Unterbrechung ermöglicht. Folglich kann auch Netzbezug für das Fahrzeugladen entstehen, weshalb der niedrigste Leistungswert empfohlen wird. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":r.chargemode.pv_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.pv_charging.phases_to_use")},{help:a(()=>[...e[68]||(e[68]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um den verfügbaren Überschuss in die Fahrzeuge zu laden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":r.chargemode.pv_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.pv_charging.limit.selected")},{help:a(()=>[...e[69]||(e[69]=[i(" PV kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(P,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":r.chargemode.pv_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.pv_charging.limit.soc")},{help:a(()=>[...e[70]||(e[70]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":r.chargemode.pv_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(d,u*1e3,"chargemode.pv_charging.limit.amount")},{help:a(()=>[...e[71]||(e[71]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(P,{title:"Mindest-SoC für das Fahrzeug",min:0,max:19,step:1,unit:"%",labels:[{label:"Aus",value:0},{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:20,value:20},{label:25,value:25},{label:30,value:30},{label:35,value:35},{label:40,value:40},{label:45,value:45},{label:50,value:50},{label:55,value:55},{label:60,value:60},{label:65,value:65},{label:70,value:70},{label:75,value:75},{label:80,value:80},{label:85,value:85},{label:90,value:90},{label:95,value:95}],"model-value":r.chargemode.pv_charging.min_soc,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.pv_charging.min_soc")},{help:a(()=>[...e[72]||(e[72]=[i(' Liegt der Fahrzeug-Ladestand (SoC) unter dem hier eingestellten Wert, dann wird bis zum Erreichen dieses Wertes mit dem eingestellten "Mindest-SoC-Strom" geladen. Dies dient der Sicherstellung eines "Mindest-SoC" - z.B. für eine immer abzudeckende Fahrzeugreichweite - auch wenn kein oder zu wenig Überschuss verfügbar ist (=> Laden mit anteilig Netzstrom). Nach dem Erreichen des "Mindest-SoC" wird bei verfügbarem Überschuss geladen.',-1),g("br",null,null,-1),i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(P,{title:`Mindest-SoC-Strom${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":r.chargemode.pv_charging.min_soc_current,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.pv_charging.min_soc_current")},{help:a(()=>[...e[73]||(e[73]=[i(' Wird der oben eingestellte "Mindest-SoC" des Fahrzeuges unterschritten, dann wird unabhängig vom Überschuss ein Ladevorgang mit dem hier festgelegten "Mindest-SoC-Strom" initiiert (ggf. mit anteilig Netzbezug). ',-1)])]),_:2},1032,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(o(),c(_,{key:1,title:"Mindest-SoC-Leistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.pv_charging.dc_min_soc_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"chargemode.pv_charging.dc_min_soc_current")},{help:a(()=>[...e[74]||(e[74]=[i(' Wird der oben eingestellte "Mindest-SoC" des Fahrzeuges unterschritten, dann wird unabhängig vom Überschuss ein Ladevorgang mit der hier festgelegten "Mindest-SoC-Leistung" initiiert (ggf. mit anteilig Netzbezug). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen Mindest-SoC",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":r.chargemode.pv_charging.phases_to_use_min_soc,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.pv_charging.phases_to_use_min_soc")},{help:a(()=>[...e[75]||(e[75]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Einspeisegrenze beachten",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.chargemode.pv_charging.feed_in_limit,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.pv_charging.feed_in_limit")},{help:a(()=>[...e[76]||(e[76]=[i(' Erläuterung siehe "Ladeeinstellungen" -> "PV-Laden" -> "Regelparameter" -> "Regelpunkt Einspeisegrenze" ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1536),l(L,{ref_for:!0,ref:`card-${d}-scheduled_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[77]||(e[77]=[i(" Ziel ",-1)])]),default:a(()=>[l(S,null,{actions:a(()=>[l(z,{class:"bg-success clickable",title:"Neuen Zielladen-Plan hinzufügen",onClick:B(u=>t.addChargeTemplateSchedulePlan(r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:2},1032,["onClick"])]),help:a(()=>[...e[78]||(e[78]=[i(' Im Lademodus "Zielladen" wird der Ladestrom so angepasst, dass das Fahrzeug zum angegebenen Zeitpunkt den eingestellten SoC bzw. die einzuladende Energiemenge erreicht. Anhand des vorgegebenen Ladestroms wird der Zeitpunkt berechnet, an dem die Ladung spätestens starten muss.',-1),g("br",null,null,-1),i(' Ist der berechnete Zeitpunkt des Ladestarts noch nicht erreicht, wird mit Überschuss geladen. Auch nach Erreichen des Ziel-SoCs wird mit Überschuss geladen, solange bis das "SoC-Limit für das Fahrzeug" erreicht wird.',-1),g("br",null,null,-1),i(" Es wird nach den Vorgaben des Zeitplans geladen, dessen Zieltermin am nächsten liegt. Ist der Zielzeitpunkt vorbei, wird solange geladen bis, das Ziel erreicht oder das Auto abgesteckt wird. Wenn der Ziel-Termin des nächsten Plans innerhalb der nächsten 12 Stunden liegt, wird auf den nächsten Plan umgeschaltet. ",-1)])]),default:a(()=>[e[79]||(e[79]=i(" Zielladepläne ",-1))]),_:2,__:[79]},1024),r.chargemode.scheduled_charging.plans.length==0?(o(),c(V,{key:0,subtype:"info"},{default:a(()=>[...e[80]||(e[80]=[i(" Es wurden noch keine Pläne für das Zielladen angelegt. ",-1)])]),_:1,__:[80]})):m("",!0),(o(!0),p(W,null,D(r.chargemode.scheduled_charging.plans,(u,A)=>(o(),c(ne,{key:A,"model-value":u,"template-id":r.id,"dc-charging-enabled":t.dcChargingEnabled,"onUpdate:modelValue":T=>n.updateState(d,T,`chargemode.scheduled_charging.plans.${A}`),onSendCommand:e[3]||(e[3]=T=>n.$emit("sendCommand",T))},null,8,["model-value","template-id","dc-charging-enabled","onUpdate:modelValue"]))),128))]),_:2},1536),l(L,{ref_for:!0,ref:`card-${d}-eco_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[81]||(e[81]=[i(" Eco ",-1)])]),default:a(()=>[l(S,null,{help:a(()=>[...e[82]||(e[82]=[i(" Im Eco-Modus wird eine Preisgrenze vorgegeben. Wenn der Strompreis unter dieser Grenze liegt, wird mit dem eingestellten Ladestrom geladen und -falls vorhanden- zusätzlich mit dem Überschuss. Wenn die Preisgrenze überschritten wird, wird nur mit Überschuss geladen, wenn dieser vorhanden ist. ",-1)])]),default:a(()=>[e[83]||(e[83]=i("Arbeitsweise von Eco ",-1))]),_:1,__:[83]}),l(P,{title:`Minimaler Dauerstrom unter der Preisgrenze${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":r.chargemode.eco_charging.current,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.eco_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(o(),c(_,{key:0,title:"Minimale Dauerleistung unter der Preisgrenze (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.eco_charging.dc_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"chargemode.eco_charging.dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":r.chargemode.eco_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.eco_charging.phases_to_use")},{help:a(()=>[...e[84]||(e[84]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um den verfügbaren Überschuss in die Fahrzeuge zu laden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":r.chargemode.eco_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.eco_charging.limit.selected")},{help:a(()=>[...e[85]||(e[85]=[i(" Eco kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(P,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":r.chargemode.eco_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.eco_charging.limit.soc")},{help:a(()=>[...e[86]||(e[86]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":r.chargemode.eco_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(d,u*1e3,"chargemode.eco_charging.limit.amount")},{help:a(()=>[...e[87]||(e[87]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),!n.$store.state.mqtt["openWB/optional/et/provider"]||!n.$store.state.mqtt["openWB/optional/et/provider"].type?(o(),c(V,{key:1,subtype:"warning"},{default:a(()=>[...e[88]||(e[88]=[i(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. Ohne Strompreis-Anbieter wird im Modus Eco nur geladen, wenn Überschuss vorhanden ist. ",-1)])]),_:1,__:[88]})):m("",!0),l(_,{title:"Preisgrenze für strompreisbasiertes Laden",min:"-80",max:"80",step:"0.01",precision:2,unit:"ct/kWh","model-value":r.chargemode.eco_charging.max_price*1e5,"onUpdate:modelValue":u=>n.updateState(d,parseFloat((u/1e5).toFixed(7)),"chargemode.eco_charging.max_price")},null,8,["model-value","onUpdate:modelValue"])]),_:2},1536),f.installAssistantActive?m("",!0):(o(),p("div",bn,[e[92]||(e[92]=g("hr",null,null,-1)),l(s,{title:"Zeitladen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.time_charging.active,"onUpdate:modelValue":u=>n.updateState(d,u,"time_charging.active")},{help:a(()=>[...e[89]||(e[89]=[g("p",null,' Der Lademodus Zeit kann parallel zu einem der anderen Lademodi aktiviert werden. Die Auswahl des Lademodus, der in der Regelung genutzt wird, erfolgt anhand der Übersicht in der Hilfe bei "Aktiver Lademodus". Wenn kein Zeitplan aktiv ist oder das Limit des Zeitplans erreicht wurde, wird der Lademodus verwendet, der bei "Aktiver Lademodus" ausgewählt ist. ',-1),g("p",null," Mit einem Zeitplan kann ein klar abgegrenzter Zeitbereich zum Fahrzeugladen definiert werden. Dies wird häufig genutzt, um einem Fahrzeug kurz vor der Abfahrt Strom anzubieten, damit dessen Vorklimatisierung nicht aus dem Fahrzeugakku, sondern aus der openWB bezogen wird (Enteisung, Vorwärmung, Abkühlung). Nicht von der Vorklimatisierung benötigter Strom erhöht dabei den Fahrzeug-SoC. Um das Stromnetz am Morgen nicht unnötig zu strapazieren, sollte eine moderate Stromvorgabe und ein beschränkter Zeitbereich vorgegeben werden (z.B. max. 10A; 30min - in Übereinstimmung mit den Fahrzeug-App-Vorklimatisierungsvorgaben). ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(L,{ref_for:!0,ref:`card-${d}-scheduled_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[90]||(e[90]=[i(" Zeitladen-Pläne ",-1)])]),actions:a(()=>[l(z,{class:"bg-success clickable",title:"Neuen Zeitladen-Plan hinzufügen",onClick:B(u=>t.addChargeTemplateTimeChargingPlan(r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:2},1032,["onClick"])]),default:a(()=>[(r.time_charging.plans??[]).length==0?(o(),c(V,{key:0,subtype:"info"},{default:a(()=>[...e[91]||(e[91]=[i(" Es wurden noch keine Pläne für das Zeitladen angelegt. ",-1)])]),_:1,__:[91]})):m("",!0),(o(!0),p(W,null,D(r.time_charging.plans??[],(u,A)=>(o(),c(te,{key:A,"model-value":u,"template-id":r.id,"dc-charging-enabled":t.dcChargingEnabled,"onUpdate:modelValue":T=>n.updateState(d,T,`time_charging.plans.${A}`),onSendCommand:e[4]||(e[4]=T=>n.$emit("sendCommand",T))},null,8,["model-value","template-id","dc-charging-enabled","onUpdate:modelValue"]))),128))]),_:2},1536)]))]),_:2},1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),l(le,{"form-name":"vehicleConfigForm",onSave:e[5]||(e[5]=r=>n.$emit("save")),onReset:e[6]||(e[6]=r=>n.$emit("reset")),onDefaults:e[7]||(e[7]=r=>n.$emit("defaults"))})])])],64)}const vn=q(Ge,[["render",fn],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/VehicleConfig.vue"]]),zn=Object.freeze(Object.defineProperty({__proto__:null,default:vn},Symbol.toStringTag,{value:"Module"}));export{fe as V,vn as a,zn as b}; diff --git a/web/settings/assets/backup_cloud-0a9a4a8d.js b/web/settings/assets/backup_cloud-0a9a4a8d.js new file mode 100644 index 0000000000..ca5ec488cb --- /dev/null +++ b/web/settings/assets/backup_cloud-0a9a4a8d.js @@ -0,0 +1 @@ +import{B as c}from"./DataManagement-52054445.js";import{_ as m,u as a,l as b,m as f,G as t,E as r,B as n,A as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"BackupCloudOneDrive",mixins:[c]},v={class:"backup-cloud-one-drive"};function k(o,e,h,w,B,_){const d=a("openwb-base-alert"),u=a("openwb-base-text-input"),p=a("openwb-base-heading"),l=a("openwb-base-button-input");return b(),f("div",v,[t(d,{subtype:"info"},{default:r(()=>e[3]||(e[3]=[n(" Zum Abruf der Zugangsberechtigung bitte die Konfiguration speichern, dann die Schritte 1-4 durchführen und danach die Konfiguration erneut speichern. ",-1),i("br",null,null,-1),n(" Auth Code und URL werden nur einmal benötigt werden nach erfolgreicher Autorisierung wieder gelöscht. ",-1)])),_:1,__:[3]}),t(u,{title:"Backupverzeichnis in OneDrive",subtype:"text",required:"",pattern:"^/(.*/)*","model-value":o.backupCloud.configuration.backuppath,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.backuppath"))},{help:r(()=>e[4]||(e[4]=[n(" In diesem Verzeichnis werden die Backupdateien erstellt. Bitte den Pfad mit / beenden. ",-1),i("br",null,null,-1),n(" Beispiel: /openWB/Backup/ ",-1)])),_:1},8,["model-value"]),t(u,{title:"Anmeldedaten auf openWB gespeichert",readonly:"","model-value":o.backupCloud.configuration.persistent_tokencache?"Ja":"Nein"},null,8,["model-value"]),t(p,null,{default:r(()=>e[5]||(e[5]=[n(" Zugang zu OneDrive für diese openWB autorisieren ",-1)])),_:1,__:[5]}),t(l,{title:"1. Anmeldeanforderung erstellen","button-text":"Autorisierungs-Code anfordern",subtype:"success",onButtonClicked:e[1]||(e[1]=s=>o.sendSystemCommand("requestMSALAuthCode",{}))},{help:r(()=>e[6]||(e[6]=[n(" Es werden Zugangstokens für OneDrive angefordert. Diese werden nur lokal auf dieser openWB gespeichert. Genutzt wird Device Flow mit public application.",-1),i("br",null,null,-1),n(" Weitere Infos:",-1),i("br",null,null,-1),i("a",{href:"https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code",target:"_blank",rel:"noopener noreferrer"},"https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code",-1),i("a",{href:"https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-client-applications",target:"_blank",rel:"noopener noreferrer"},"https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-client-applications",-1)])),_:1}),t(u,{title:"2. Diesen Code kopieren",subtype:"text",readonly:"","model-value":o.backupCloud.configuration.authcode},null,8,["model-value"]),t(u,{title:"3. Anmelde-URL aufrufen",subtype:"url",readonly:"","model-value":o.backupCloud.configuration.authurl},{help:r(()=>e[7]||(e[7]=[n(" Diese URL im Browser öffnen und den Code eingeben. Dies erzeugt die notwendigen Zugangsberechtigung für diese openWB. ",-1)])),_:1},8,["model-value"]),t(l,{title:"4. Token abrufen und speichern","button-text":"Autorisierungs-Token abrufen",subtype:"success",onButtonClicked:e[2]||(e[2]=s=>o.sendSystemCommand("retrieveMSALTokens",{}))},{help:r(()=>e[8]||(e[8]=[n(" Zugangstoken wird abgerufen und gespeichert, damit das Backup durchgeführt werden kann. Zugangstoken werden nur lokal auf dieser openWB gespeichert. ",-1)])),_:1})])}const L=m(g,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/onedrive/backup_cloud.vue"]]);export{L as default}; diff --git a/web/settings/assets/backup_cloud-1f3db513.js b/web/settings/assets/backup_cloud-1f3db513.js deleted file mode 100644 index 11949a19f9..0000000000 --- a/web/settings/assets/backup_cloud-1f3db513.js +++ /dev/null @@ -1 +0,0 @@ -import{B as a}from"./DataManagement-81c5a852.js";import{_ as s,u as r,l,m as i,G as n,E as d,B as p}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const m={name:"BackupCloudNextCloud",mixins:[a]},c={class:"backup-cloud-next-cloud"};function f(o,e,b,k,C,g){const u=r("openwb-base-text-input");return l(),i("div",c,[n(u,{title:"Cloud-URL",subtype:"url",required:"","model-value":o.backupCloud.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},{help:d(()=>[...e[3]||(e[3]=[p(" Die Cloud-URL wird in der Form 'https://nextcloud-url' und Benutzername im Eingabefeld oder mit Zugangstoken erwartet. Die URL kann je nach NextCloud Installation so 'https://nextcloud-url/s/user_token' oder so 'https://nextcloud-url/index.php/s/user_token' aussehen. ",-1)])]),_:1},8,["model-value"]),n(u,{title:"Benutzername",subtype:"user","model-value":o.backupCloud.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(u,{title:"Passwort",subtype:"password","model-value":o.backupCloud.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const y=s(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/nextcloud/backup_cloud.vue"]]);export{y as default}; diff --git a/web/settings/assets/backup_cloud-5420b416.js b/web/settings/assets/backup_cloud-5420b416.js new file mode 100644 index 0000000000..5e4dd7f193 --- /dev/null +++ b/web/settings/assets/backup_cloud-5420b416.js @@ -0,0 +1 @@ +import{B as a}from"./DataManagement-52054445.js";import{_ as s,u as r,l,m as i,G as n,E as d,B as p}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"BackupCloudNextCloud",mixins:[a]},c={class:"backup-cloud-next-cloud"};function f(o,e,b,k,C,g){const u=r("openwb-base-text-input");return l(),i("div",c,[n(u,{title:"Cloud-URL",subtype:"url",required:"","model-value":o.backupCloud.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},{help:d(()=>e[3]||(e[3]=[p(" Die Cloud-URL wird in der Form 'https://nextcloud-url' und Benutzername im Eingabefeld oder mit Zugangstoken erwartet. Die URL kann je nach NextCloud Installation so 'https://nextcloud-url/s/user_token' oder so 'https://nextcloud-url/index.php/s/user_token' aussehen. ",-1)])),_:1},8,["model-value"]),n(u,{title:"Benutzername",subtype:"user","model-value":o.backupCloud.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(u,{title:"Passwort",subtype:"password","model-value":o.backupCloud.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const y=s(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/nextcloud/backup_cloud.vue"]]);export{y as default}; diff --git a/web/settings/assets/backup_cloud-66a4543e.js b/web/settings/assets/backup_cloud-66a4543e.js new file mode 100644 index 0000000000..8238c20794 --- /dev/null +++ b/web/settings/assets/backup_cloud-66a4543e.js @@ -0,0 +1 @@ +import{B as r}from"./DataManagement-52054445.js";import{_ as p,u,l as i,m as l,G as d,E as c,B as o,A as n}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"BackupCloudNfs",mixins:[r]},f={class:"backup-cloud-nfs"};function _(t,e,b,k,v,B){const a=u("openwb-base-text-input");return i(),l("div",f,[d(a,{title:"Pfad zum NFS Share",pattern:"^([^/: ]+):(\\/[^/: ]+)+$",required:"","model-value":t.backupCloud.configuration.nfs_share,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.nfs_share"))},{help:c(()=>e[1]||(e[1]=[o(" 1. IP basierter Pfad: 1.2.3.4:/pfad/zum/nfs-share",-1),n("br",null,null,-1),o(" 2. Host (FQDN) basierter Pfad: backupserver.domain.net:/pfad/zum/nfs-share",-1),n("br",null,null,-1),o(" Bitte entgegen der Syntax das Protokoll nicht davor schreiben. Falsch wäre, “nfs://” davor zu setzen. ",-1)])),_:1},8,["model-value"])])}const V=p(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/nfs/backup_cloud.vue"]]);export{V as default}; diff --git a/web/settings/assets/backup_cloud-71423bc2.js b/web/settings/assets/backup_cloud-71423bc2.js deleted file mode 100644 index b3e317a0d6..0000000000 --- a/web/settings/assets/backup_cloud-71423bc2.js +++ /dev/null @@ -1 +0,0 @@ -import{B as r}from"./DataManagement-81c5a852.js";import{_ as p,u,l as i,m as l,G as d,E as c,B as o,A as n}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const m={name:"BackupCloudNfs",mixins:[r]},f={class:"backup-cloud-nfs"};function _(t,e,b,k,v,B){const a=u("openwb-base-text-input");return i(),l("div",f,[d(a,{title:"Pfad zum NFS Share",pattern:"^([^/: ]+):(\\/[^/: ]+)+$",required:"","model-value":t.backupCloud.configuration.nfs_share,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.nfs_share"))},{help:c(()=>[...e[1]||(e[1]=[o(" 1. IP basierter Pfad: 1.2.3.4:/pfad/zum/nfs-share",-1),n("br",null,null,-1),o(" 2. Host (FQDN) basierter Pfad: backupserver.domain.net:/pfad/zum/nfs-share",-1),n("br",null,null,-1),o(" Bitte entgegen der Syntax das Protokoll nicht davor schreiben. Falsch wäre, “nfs://” davor zu setzen. ",-1)])]),_:1},8,["model-value"])])}const V=p(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/nfs/backup_cloud.vue"]]);export{V as default}; diff --git a/web/settings/assets/backup_cloud-9c3ef2b9.js b/web/settings/assets/backup_cloud-9c3ef2b9.js deleted file mode 100644 index 94bfb9c96d..0000000000 --- a/web/settings/assets/backup_cloud-9c3ef2b9.js +++ /dev/null @@ -1 +0,0 @@ -import{B as c}from"./DataManagement-81c5a852.js";import{_ as m,u as a,l as b,m as f,G as t,E as r,B as n,A as i}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const g={name:"BackupCloudOneDrive",mixins:[c]},v={class:"backup-cloud-one-drive"};function k(o,e,h,w,B,C){const d=a("openwb-base-alert"),u=a("openwb-base-text-input"),p=a("openwb-base-heading"),l=a("openwb-base-button-input");return b(),f("div",v,[t(d,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[n(" Zum Abruf der Zugangsberechtigung bitte die Konfiguration speichern, dann die Schritte 1-4 durchführen und danach die Konfiguration erneut speichern. ",-1),i("br",null,null,-1),n(" Auth Code und URL werden nur einmal benötigt werden nach erfolgreicher Autorisierung wieder gelöscht. ",-1)])]),_:1}),t(u,{title:"Backupverzeichnis in OneDrive",subtype:"text",required:"",pattern:"^/(.*/)*","model-value":o.backupCloud.configuration.backuppath,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.backuppath"))},{help:r(()=>[...e[4]||(e[4]=[n(" In diesem Verzeichnis werden die Backupdateien erstellt. Bitte den Pfad mit / beenden. ",-1),i("br",null,null,-1),n(" Beispiel: /openWB/Backup/ ",-1)])]),_:1},8,["model-value"]),t(u,{title:"Anmeldedaten auf openWB gespeichert",readonly:"","model-value":o.backupCloud.configuration.persistent_tokencache?"Ja":"Nein"},null,8,["model-value"]),t(p,null,{default:r(()=>[...e[5]||(e[5]=[n(" Zugang zu OneDrive für diese openWB autorisieren ",-1)])]),_:1}),t(l,{title:"1. Anmeldeanforderung erstellen","button-text":"Autorisierungs-Code anfordern",subtype:"success",onButtonClicked:e[1]||(e[1]=s=>o.sendSystemCommand("requestMSALAuthCode",{}))},{help:r(()=>[...e[6]||(e[6]=[n(" Es werden Zugangstokens für OneDrive angefordert. Diese werden nur lokal auf dieser openWB gespeichert. Genutzt wird Device Flow mit public application.",-1),i("br",null,null,-1),n(" Weitere Infos:",-1),i("br",null,null,-1),i("a",{href:"https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code",target:"_blank",rel:"noopener noreferrer"},"https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code",-1),i("a",{href:"https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-client-applications",target:"_blank",rel:"noopener noreferrer"},"https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-client-applications",-1)])]),_:1}),t(u,{title:"2. Diesen Code kopieren",subtype:"text",readonly:"","model-value":o.backupCloud.configuration.authcode},null,8,["model-value"]),t(u,{title:"3. Anmelde-URL aufrufen",subtype:"url",readonly:"","model-value":o.backupCloud.configuration.authurl},{help:r(()=>[...e[7]||(e[7]=[n(" Diese URL im Browser öffnen und den Code eingeben. Dies erzeugt die notwendigen Zugangsberechtigung für diese openWB. ",-1)])]),_:1},8,["model-value"]),t(l,{title:"4. Token abrufen und speichern","button-text":"Autorisierungs-Token abrufen",subtype:"success",onButtonClicked:e[2]||(e[2]=s=>o.sendSystemCommand("retrieveMSALTokens",{}))},{help:r(()=>[...e[8]||(e[8]=[n(" Zugangstoken wird abgerufen und gespeichert, damit das Backup durchgeführt werden kann. Zugangstoken werden nur lokal auf dieser openWB gespeichert. ",-1)])]),_:1})])}const L=m(g,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/onedrive/backup_cloud.vue"]]);export{L as default}; diff --git a/web/settings/assets/backup_cloud-d6cfecbd.js b/web/settings/assets/backup_cloud-d6cfecbd.js deleted file mode 100644 index 418d0598b3..0000000000 --- a/web/settings/assets/backup_cloud-d6cfecbd.js +++ /dev/null @@ -1 +0,0 @@ -import{B as r}from"./DataManagement-81c5a852.js";import{_ as i,u as s,l as p,m as d,G as t,E as m,B as a,A as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const b={name:"BackupCloudSamba",mixins:[r]},f={class:"backup-cloud-samba"};function g(o,e,v,C,c,k){const u=s("openwb-base-text-input");return p(),d("div",f,[t(u,{title:"Server",subtype:"host",required:"","model-value":o.backupCloud.configuration.smb_server,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.smb_server"))},null,8,["model-value"]),t(u,{title:"Freigabe",required:"","model-value":o.backupCloud.configuration.smb_share,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.smb_share"))},null,8,["model-value"]),t(u,{title:"Unterordner (optional)","model-value":o.backupCloud.configuration.smb_path,pattern:'(^\\/$)|(^([^\\\\:"\\|*?<>]+\\/)+$)',required:"","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.smb_path"))},{help:m(()=>[...e[5]||(e[5]=[a(" Jeder Unterordner muss mit / enden.",-1),l("br",null,null,-1),a(' Die Zeichen \\:"|*?<> sind verboten!',-1),l("br",null,null,-1),a(" Beispiel 1: openwb/ ",-1),l("br",null,null,-1),a(" Beispiel 2: openwb/lp2/ ",-1)])]),_:1},8,["model-value"]),t(u,{title:"Benutzer",subtype:"user","model-value":o.backupCloud.configuration.smb_user,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.smb_user"))},null,8,["model-value"]),t(u,{title:"Kennwort",subtype:"password","model-value":o.backupCloud.configuration.smb_password,"onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.smb_password"))},null,8,["model-value"])])}const E=i(b,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/samba/backup_cloud.vue"]]);export{E as default}; diff --git a/web/settings/assets/backup_cloud-e3708975.js b/web/settings/assets/backup_cloud-e3708975.js new file mode 100644 index 0000000000..ae9b434941 --- /dev/null +++ b/web/settings/assets/backup_cloud-e3708975.js @@ -0,0 +1 @@ +import{B as r}from"./DataManagement-52054445.js";import{_ as i,u as s,l as p,m as d,G as t,E as m,B as a,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"BackupCloudSamba",mixins:[r]},f={class:"backup-cloud-samba"};function g(o,e,v,C,c,k){const u=s("openwb-base-text-input");return p(),d("div",f,[t(u,{title:"Server",subtype:"host",required:"","model-value":o.backupCloud.configuration.smb_server,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.smb_server"))},null,8,["model-value"]),t(u,{title:"Freigabe",required:"","model-value":o.backupCloud.configuration.smb_share,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.smb_share"))},null,8,["model-value"]),t(u,{title:"Unterordner (optional)","model-value":o.backupCloud.configuration.smb_path,pattern:'(^\\/$)|(^([^\\\\:"\\|*?<>]+\\/)+$)',required:"","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.smb_path"))},{help:m(()=>e[5]||(e[5]=[a(" Jeder Unterordner muss mit / enden.",-1),l("br",null,null,-1),a(' Die Zeichen \\:"|*?<> sind verboten!',-1),l("br",null,null,-1),a(" Beispiel 1: openwb/ ",-1),l("br",null,null,-1),a(" Beispiel 2: openwb/lp2/ ",-1)])),_:1},8,["model-value"]),t(u,{title:"Benutzer",subtype:"user","model-value":o.backupCloud.configuration.smb_user,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.smb_user"))},null,8,["model-value"]),t(u,{title:"Kennwort",subtype:"password","model-value":o.backupCloud.configuration.smb_password,"onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.smb_password"))},null,8,["model-value"])])}const E=i(b,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/samba/backup_cloud.vue"]]);export{E as default}; diff --git a/web/settings/assets/bat-01a2f194.js b/web/settings/assets/bat-01a2f194.js new file mode 100644 index 0000000000..9dc7e29f05 --- /dev/null +++ b/web/settings/assets/bat-01a2f194.js @@ -0,0 +1 @@ +import{C as a}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as t,l as m,m as u,G as n,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceStuderBat",mixins:[a]},c={class:"device-studer-bat"};function b(o,e,f,v,g,w){const i=t("openwb-base-heading"),s=t("openwb-base-number-input");return m(),u("div",c,[n(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Studer Batteriespeicher ",-1)])),_:1,__:[1]}),n(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const M=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/bat.vue"]]);export{M as default}; diff --git a/web/settings/assets/bat-02c96333.js b/web/settings/assets/bat-02c96333.js new file mode 100644 index 0000000000..1fa06c6915 --- /dev/null +++ b/web/settings/assets/bat-02c96333.js @@ -0,0 +1 @@ +import{C as s}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as t,l as p,m as u,G as n,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceHuaweiSmartLoggerBat",mixins:[s]},c={class:"device-huawei-smart-logger-bat"};function b(o,e,g,f,w,v){const i=t("openwb-base-heading"),a=t("openwb-base-number-input");return p(),u("div",c,[n(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Batteriespeicher ",-1)])),_:1,__:[1]}),n(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const H=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/bat.vue"]]);export{H as default}; diff --git a/web/settings/assets/bat-038c6dbc.js b/web/settings/assets/bat-038c6dbc.js deleted file mode 100644 index 23175fab7f..0000000000 --- a/web/settings/assets/bat-038c6dbc.js +++ /dev/null @@ -1 +0,0 @@ -import{C as a}from"./HardwareInstallation-35a2a562.js";import{_ as p,u as n,l as m,m as u,G as t,E as d,B as c}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceVictronBat",mixins:[a]},_={class:"device-victron-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[c(" Einstellungen für Victron Batteriespeicher ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const M=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/bat.vue"]]);export{M as default}; diff --git a/web/settings/assets/bat-079d4f24.js b/web/settings/assets/bat-079d4f24.js deleted file mode 100644 index f2e677708e..0000000000 --- a/web/settings/assets/bat-079d4f24.js +++ /dev/null @@ -1 +0,0 @@ -import{C as m}from"./HardwareInstallation-35a2a562.js";import{_ as d,u as a,l as p,m as u,G as t,E as r,B as s}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSolaredgeBat",mixins:[m]},b={class:"device-solaredge-bat"};function f(o,e,_,c,v,x){const l=a("openwb-base-heading"),i=a("openwb-base-number-input");return p(),u("div",b,[t(l,null,{default:r(()=>[...e[2]||(e[2]=[s(" Einstellungen für SolarEdge Batteriespeicher ",-1)])]),_:1}),t(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),t(i,{title:"SolarEdge-Batterie-Index","model-value":o.component.configuration.battery_index,min:"1",max:"2","onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.battery_index"))},{help:r(()=>[...e[3]||(e[3]=[s(" Wenn eine zweite Batterie am Wechselrichter angeschlossen ist, hier den Index 2 eintagen. Im Normalfall immer 1 eintragen. ",-1)])]),_:1},8,["model-value"])])}const N=d(g,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/bat.vue"]]);export{N as default}; diff --git a/web/settings/assets/bat-13872887.js b/web/settings/assets/bat-13872887.js deleted file mode 100644 index 7408a8d120..0000000000 --- a/web/settings/assets/bat-13872887.js +++ /dev/null @@ -1 +0,0 @@ -import{C as m}from"./HardwareInstallation-35a2a562.js";import{_ as d,u as n,l as u,m as l,G as t,E as i,B as s}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSigenergyBat",mixins:[m]},b={class:"device-sigenergy-bat"};function _(o,e,c,f,v,w){const r=n("openwb-base-heading"),a=n("openwb-base-number-input");return u(),l("div",b,[t(r,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für Sigenergy Batteriespeicher ",-1)])]),_:1}),t(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[s(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])]),_:1},8,["model-value"])])}const V=d(g,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/bat.vue"]]);export{V as default}; diff --git a/web/settings/assets/bat-18693c33.js b/web/settings/assets/bat-18693c33.js new file mode 100644 index 0000000000..dd96c9b0e9 --- /dev/null +++ b/web/settings/assets/bat-18693c33.js @@ -0,0 +1 @@ +import{C as a}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as n,l as m,m as u,G as t,E as d,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceVictronBat",mixins:[a]},_={class:"device-victron-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>e[1]||(e[1]=[c(" Einstellungen für Victron Batteriespeicher ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const M=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/bat.vue"]]);export{M as default}; diff --git a/web/settings/assets/bat-1ad29484.js b/web/settings/assets/bat-1ad29484.js new file mode 100644 index 0000000000..77cfc3a8eb --- /dev/null +++ b/web/settings/assets/bat-1ad29484.js @@ -0,0 +1 @@ +import{C as b}from"./HardwareInstallation-be759b0c.js";import{_ as g,u,l as f,m as B,G as l,E as i,B as t,A as n,F as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const k={name:"DeviceMqttBat",mixins:[b]},w={class:"device-mqtt-bat"};function v(o,e,W,z,x,E){const p=u("openwb-base-heading"),s=u("openwb-base-copy-to-clipboard"),d=u("openwb-base-alert"),a=u("openwb-base-button-group-input");return f(),B("div",w,[l(p,null,{default:i(()=>e[1]||(e[1]=[t(" Einstellungen für MQTT Batteriespeicher ",-1)])),_:1,__:[1]}),l(d,{subtype:"info"},{default:i(()=>[e[27]||(e[27]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),n("ul",null,[n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/power ",1)]),_:1}),e[2]||(e[2]=n("br",null,null,-1)),e[3]||(e[3]=t(" Speicherleistung in Watt, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, positiv Ladung, negativ Entladung",-1)),e[4]||(e[4]=n("br",null,null,-1)),e[5]||(e[5]=t(" Beispiel: ",-1)),e[6]||(e[6]=n("span",{class:"text-info"},"-123",-1))]),n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/soc ",1)]),_:1}),e[7]||(e[7]=n("br",null,null,-1)),e[8]||(e[8]=t(" Ladestand des Speichers, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, gültige Werte 0 bis 100",-1)),e[9]||(e[9]=n("br",null,null,-1)),e[10]||(e[10]=t(" Beispiel: ",-1)),e[11]||(e[11]=n("span",{class:"text-info"},"95",-1))])]),e[28]||(e[28]=t(" Falls keine Werte für die Zählerstände übermittelt werden, berechnet openWB die Zählerstände anhand der Leistung. ",-1)),n("ul",null,[n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/imported ",1)]),_:1}),e[12]||(e[12]=n("br",null,null,-1)),e[13]||(e[13]=t(" Geladene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[14]||(e[14]=n("br",null,null,-1)),e[15]||(e[15]=t(" Beispiel: ",-1)),e[16]||(e[16]=n("span",{class:"text-info"},"123.45",-1))]),n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/exported ",1)]),_:1}),e[17]||(e[17]=n("br",null,null,-1)),e[18]||(e[18]=t(" Entladene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[19]||(e[19]=n("br",null,null,-1)),e[20]||(e[20]=t(" Beispiel: ",-1)),e[21]||(e[21]=n("span",{class:"text-info"},"123.45",-1))])]),e[29]||(e[29]=t(" Ströme je Phase sind optional, jedoch für phasenbasiertes Lastmanagement in Verbindung mit einem virtuellen Zähler unbedingt erforderlich. Ansonsten erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung an diesem Zähler: ",-1)),n("ul",null,[n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/currents ",1)]),_:1}),e[22]||(e[22]=n("br",null,null,-1)),e[23]||(e[23]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),e[24]||(e[24]=n("br",null,null,-1)),e[25]||(e[25]=t(" Beispiel: ",-1)),e[26]||(e[26]=n("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])])]),_:1,__:[27,28,29]}),l(p,null,{default:i(()=>e[30]||(e[30]=[t(" Optionale Einstellungen ",-1)])),_:1,__:[30]}),l(d,{subtype:"info"},{default:i(()=>[e[36]||(e[36]=t(' Wenn der Speicher die aktive Steuerung durch openWB unterstützt, kann die Option "Speicherleistung steuerbar" auf "Ja" gesetzt werden. Der Modus, um die Speicher-Entladung ins Fahrzeug zu steuern, kann in den übergreifenden Ladeeinstellungen gesetzt werden. Über folgendes Topic wird dem Speicher die Entladeleistung mitgeteilt. ',-1)),n("ul",null,[n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/set/power_limit ",1)]),_:1}),e[31]||(e[31]=n("br",null,null,-1)),e[32]||(e[32]=t(" Entladeleistung in Watt (Float), die im Speicher gesetzt werden muss.",-1)),e[33]||(e[33]=n("br",null,null,-1)),e[34]||(e[34]=t(" Beispiel: ",-1)),e[35]||(e[35]=n("span",{class:"text-info"},"123.0",-1))])])]),_:1,__:[36]}),l(a,{title:"Speicherleistung steuerbar",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":o.component.configuration.power_limit_controllable,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.power_limit_controllable"))},null,8,["model-value"])])}const C=g(k,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/bat.vue"]]);export{C as default}; diff --git a/web/settings/assets/bat-1c0d64c4.js b/web/settings/assets/bat-1c0d64c4.js deleted file mode 100644 index 79d6f0cc62..0000000000 --- a/web/settings/assets/bat-1c0d64c4.js +++ /dev/null @@ -1 +0,0 @@ -import{C as l}from"./HardwareInstallation-35a2a562.js";import{_ as r,u as t,l as u,m,G as i,E as d,B as b}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOpenwbFlexBat",mixins:[l]},f={class:"device-openwb-flex-bat"};function _(o,e,v,w,g,x){const a=t("openwb-base-heading"),p=t("openwb-base-select-input"),s=t("openwb-base-number-input");return u(),m("div",f,[i(a,null,{default:d(()=>[...e[2]||(e[2]=[b(" Einstellungen für openWB-Flex Batteriespeicher ",-1)])]),_:1}),i(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"]),i(s,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.id"))},null,8,["model-value"])])}const k=r(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/bat.vue"]]);export{k as default}; diff --git a/web/settings/assets/bat-1e5462e4.js b/web/settings/assets/bat-1e5462e4.js new file mode 100644 index 0000000000..53bb47e09d --- /dev/null +++ b/web/settings/assets/bat-1e5462e4.js @@ -0,0 +1 @@ +import{C as a}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceFroniusBat",mixins:[a]},c={class:"device-fronius-bat"};function f(o,e,b,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",c,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Fronius Batteriespeicher ",-1)])),_:1,__:[1]}),t(r,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":o.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.meter_id"))},null,8,["model-value"])])}const F=p(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/bat.vue"]]);export{F as default}; diff --git a/web/settings/assets/bat-24ebfa6e.js b/web/settings/assets/bat-24ebfa6e.js new file mode 100644 index 0000000000..5da2afb0a0 --- /dev/null +++ b/web/settings/assets/bat-24ebfa6e.js @@ -0,0 +1 @@ +import{C as l}from"./HardwareInstallation-be759b0c.js";import{_ as r,u as t,l as u,m,G as i,E as d,B as b}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOpenwbFlexBat",mixins:[l]},_={class:"device-openwb-flex-bat"};function f(o,e,v,w,g,x){const a=t("openwb-base-heading"),p=t("openwb-base-select-input"),s=t("openwb-base-number-input");return u(),m("div",_,[i(a,null,{default:d(()=>e[2]||(e[2]=[b(" Einstellungen für openWB-Flex Batteriespeicher ",-1)])),_:1,__:[2]}),i(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"]),i(s,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.id"))},null,8,["model-value"])])}const k=r(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/bat.vue"]]);export{k as default}; diff --git a/web/settings/assets/bat-2e0391d4.js b/web/settings/assets/bat-2e0391d4.js new file mode 100644 index 0000000000..9e9ba43de9 --- /dev/null +++ b/web/settings/assets/bat-2e0391d4.js @@ -0,0 +1 @@ +import{C as r}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as o,l as m,m as u,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSunnyIslandBat",mixins:[r]},c={class:"device-sunnyisland-bat"};function b(n,e,f,v,g,w){const s=o("openwb-base-heading"),i=o("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Sunny Island Batteriespeicher ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const k=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_island/bat.vue"]]);export{k as default}; diff --git a/web/settings/assets/bat-313da7a3.js b/web/settings/assets/bat-313da7a3.js new file mode 100644 index 0000000000..d07be7ec85 --- /dev/null +++ b/web/settings/assets/bat-313da7a3.js @@ -0,0 +1 @@ +import{C as r}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as n,l as m,m as d,G as t,E as u,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceDeyeBat",mixins:[r]},c={class:"device-deye-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),d("div",c,[t(i,null,{default:u(()=>e[1]||(e[1]=[l(" Einstellungen für Deye Batteriespeicher ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const k=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/bat.vue"]]);export{k as default}; diff --git a/web/settings/assets/bat-351d44cb.js b/web/settings/assets/bat-351d44cb.js deleted file mode 100644 index 09f6014ef3..0000000000 --- a/web/settings/assets/bat-351d44cb.js +++ /dev/null @@ -1 +0,0 @@ -import{C as a}from"./HardwareInstallation-35a2a562.js";import{_ as d,u as p,l as t,m as u,x as i,E as o,B as r}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSonnenbatterieBat",mixins:[a]},m={class:"device-sonnenbatterie-bat"};function f(s,e,v,b,l,g){const n=p("openwb-base-alert");return t(),u("div",m,[s.device.configuration.variant===3?(t(),i(n,{key:0,subtype:"info"},{default:o(()=>[...e[0]||(e[0]=[r(" Die Batterie lässt sich aktiv durch openWB steuern, da die JSON-API v2 verwendet wird. Dazu muss zwingend ein gültiges API-Token eingetragen sein. ",-1)])]),_:1})):(t(),i(n,{key:1,subtype:"info"},{default:o(()=>[...e[1]||(e[1]=[r(" Die Batterie kann nicht aktiv durch openWB gesteuert werden, da die konfigurierte Datenverbindung dies nicht unterstützt. Es wird für die aktive Steuerung zwingend die 'JSON-API v2' benötigt. ",-1)])]),_:1}))])}const z=d(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/bat.vue"]]);export{z as default}; diff --git a/web/settings/assets/bat-381c4030.js b/web/settings/assets/bat-381c4030.js new file mode 100644 index 0000000000..f6e0eb95c8 --- /dev/null +++ b/web/settings/assets/bat-381c4030.js @@ -0,0 +1 @@ +import{C as r}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as n,l as m,m as l,G as t,E as u,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolisBat",mixins:[r]},c={class:"device-solis-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",c,[t(i,null,{default:u(()=>e[1]||(e[1]=[d(" Einstellungen für Solis Batteriespeicher ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const M=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/bat.vue"]]);export{M as default}; diff --git a/web/settings/assets/bat-4c47ac06.js b/web/settings/assets/bat-4c47ac06.js deleted file mode 100644 index 45501543fa..0000000000 --- a/web/settings/assets/bat-4c47ac06.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-35a2a562.js";import{_ as r,u as o,l,m,G as n,E as u,B as c}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbBatkitBat",mixins:[p]},_={class:"device-openwb-batkit-bat"};function b(t,e,f,v,w,B){const i=o("openwb-base-heading"),s=o("openwb-base-select-input");return l(),m("div",_,[n(i,null,{default:u(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Batteriespeicher ",-1)])]),_:1}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=a=>t.updateConfiguration(a,"configuration.version"))},null,8,["model-value"])])}const $=r(d,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_bat_kit/bat.vue"]]);export{$ as default}; diff --git a/web/settings/assets/bat-5276ac71.js b/web/settings/assets/bat-5276ac71.js new file mode 100644 index 0000000000..bf382de37a --- /dev/null +++ b/web/settings/assets/bat-5276ac71.js @@ -0,0 +1 @@ +import{C as r}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as t,l as p,m as l,G as n,E as u,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolarmaxBat",mixins:[r]},_={class:"device-solarmax-bat"};function b(o,e,f,x,v,g){const a=t("openwb-base-alert"),s=t("openwb-base-number-input");return p(),l("div",_,[n(a,{subtype:"info"},{default:u(()=>e[1]||(e[1]=[d(" Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Batteriespeicher sind Teil eines Hybridsystems. Daher muss auch eine Komponente Wechselrichter angelegt werden. ",-1)])),_:1,__:[1]}),n(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const $=m(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/bat.vue"]]);export{$ as default}; diff --git a/web/settings/assets/bat-5c9d3bae.js b/web/settings/assets/bat-5c9d3bae.js new file mode 100644 index 0000000000..bacfeea6df --- /dev/null +++ b/web/settings/assets/bat-5c9d3bae.js @@ -0,0 +1 @@ +import{C as r}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as n,l as m,m as u,G as t,E as d,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceSunnyBoyBat",mixins:[r]},b={class:"device-sunnyboy-bat"};function c(o,e,f,v,g,y){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",b,[t(i,null,{default:d(()=>e[1]||(e[1]=[_(" Einstellungen für SMA Sunny Boy/Tripower Batteriespeicher ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const h=p(l,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/bat.vue"]]);export{h as default}; diff --git a/web/settings/assets/bat-6a84ad0b.js b/web/settings/assets/bat-6a84ad0b.js deleted file mode 100644 index 71ba04df00..0000000000 --- a/web/settings/assets/bat-6a84ad0b.js +++ /dev/null @@ -1 +0,0 @@ -import{C as r}from"./HardwareInstallation-35a2a562.js";import{_ as p,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceFoxEssBat",mixins:[r]},c={class:"device-fox_ess-bat"};function b(o,e,f,x,v,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für FoxEss Batteriespeicher ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const F=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/bat.vue"]]);export{F as default}; diff --git a/web/settings/assets/bat-6bbc2804.js b/web/settings/assets/bat-6bbc2804.js deleted file mode 100644 index a612ca7d78..0000000000 --- a/web/settings/assets/bat-6bbc2804.js +++ /dev/null @@ -1 +0,0 @@ -import{C as r}from"./HardwareInstallation-35a2a562.js";import{_ as p,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSunnyBoyBat",mixins:[r]},b={class:"device-sunnyboy-bat"};function c(o,e,f,v,g,y){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",b,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für SMA Sunny Boy/Tripower Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const h=p(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/bat.vue"]]);export{h as default}; diff --git a/web/settings/assets/bat-6ce1b18c.js b/web/settings/assets/bat-6ce1b18c.js deleted file mode 100644 index 093dc6141c..0000000000 --- a/web/settings/assets/bat-6ce1b18c.js +++ /dev/null @@ -1 +0,0 @@ -import{C as r}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as t,l as p,m as l,G as n,E as u,B as d}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolarmaxBat",mixins:[r]},b={class:"device-solarmax-bat"};function _(o,e,f,x,v,g){const a=t("openwb-base-alert"),s=t("openwb-base-number-input");return p(),l("div",b,[n(a,{subtype:"info"},{default:u(()=>[...e[1]||(e[1]=[d(" Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Batteriespeicher sind Teil eines Hybridsystems. Daher muss auch eine Komponente Wechselrichter angelegt werden. ",-1)])]),_:1}),n(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const $=m(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/bat.vue"]]);export{$ as default}; diff --git a/web/settings/assets/bat-74a30937.js b/web/settings/assets/bat-74a30937.js new file mode 100644 index 0000000000..47d7a8ec78 --- /dev/null +++ b/web/settings/assets/bat-74a30937.js @@ -0,0 +1 @@ +import{C as m}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as n,l,m as _,G as t,E as i,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceGoodWeBat",mixins:[m]},c={class:"device-goodwe-bat"};function b(o,e,f,g,w,x){const r=n("openwb-base-heading"),s=n("openwb-base-number-input");return l(),_("div",c,[t(r,null,{default:i(()=>e[1]||(e[1]=[a(" Einstellungen für GoodWe Batteriespeicher ",-1)])),_:1,__:[1]}),t(s,{title:"GoodWe-Batterie-Index","model-value":o.component.configuration.battery_index,min:"1",max:"2","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.battery_index"))},{help:i(()=>e[2]||(e[2]=[a(" Wenn eine zweite Batterie am Wechselrichter angeschlossen ist, hier den Index 2 eintagen. Im Normalfall immer 1 eintragen. ",-1)])),_:1},8,["model-value"])])}const N=d(u,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/good_we/bat.vue"]]);export{N as default}; diff --git a/web/settings/assets/bat-7fd552d4.js b/web/settings/assets/bat-7fd552d4.js deleted file mode 100644 index 42ad8d8ab9..0000000000 --- a/web/settings/assets/bat-7fd552d4.js +++ /dev/null @@ -1 +0,0 @@ -import{C as a}from"./HardwareInstallation-35a2a562.js";import{_ as r,u as o,l,m as u,G as n,E as m,B as c}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbEvukitBat",mixins:[a]},_={class:"device-openwb-evukit-bat"};function v(t,e,b,f,w,g){const i=o("openwb-base-heading"),s=o("openwb-base-select-input");return l(),u("div",_,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Batteriespeicher ",-1)])]),_:1}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.version"))},null,8,["model-value"])])}const $=r(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/bat.vue"]]);export{$ as default}; diff --git a/web/settings/assets/bat-847c06c8.js b/web/settings/assets/bat-847c06c8.js deleted file mode 100644 index b7d6dc1277..0000000000 --- a/web/settings/assets/bat-847c06c8.js +++ /dev/null @@ -1 +0,0 @@ -import{C as u}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as d,l as p,m as g,G as l,E as i,B as n,A as a}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const h={name:"DeviceHttpBat",mixins:[u]},b={class:"device-http-bat"};function f(t,e,w,v,k,S){const s=d("openwb-base-heading"),o=d("openwb-base-text-input");return p(),g("div",b,[l(s,null,{default:i(()=>[...e[7]||(e[7]=[n(" Einstellungen für Http Batteriespeicher ",-1)])]),_:1}),l(o,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.power_path"))},{help:i(()=>[...e[8]||(e[8]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Ladestand",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.soc_path,"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateConfiguration(r,"configuration.soc_path"))},{help:i(()=>[...e[9]||(e[9]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen Ladestand (SoC) in Prozent darstellt. ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 1",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l1_path,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateConfiguration(r,"configuration.current_l1_path"))},{help:i(()=>[...e[10]||(e[10]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 1. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 2",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l2_path,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateConfiguration(r,"configuration.current_l2_path"))},{help:i(()=>[...e[11]||(e[11]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 2. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 3",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l3_path,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateConfiguration(r,"configuration.current_l3_path"))},{help:i(()=>[...e[12]||(e[12]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 3. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Zählerstand laden",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.imported_path,"onUpdate:modelValue":e[5]||(e[5]=r=>t.updateConfiguration(r,"configuration.imported_path"))},{help:i(()=>[...e[13]||(e[13]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt. ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Zählerstand entladen",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[6]||(e[6]=r=>t.updateConfiguration(r,"configuration.exported_path"))},{help:i(()=>[...e[14]||(e[14]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"])])}const _=m(h,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/bat.vue"]]);export{_ as default}; diff --git a/web/settings/assets/bat-9e0becca.js b/web/settings/assets/bat-9e0becca.js deleted file mode 100644 index f475f333bd..0000000000 --- a/web/settings/assets/bat-9e0becca.js +++ /dev/null @@ -1 +0,0 @@ -import{C as m}from"./HardwareInstallation-35a2a562.js";import{_ as d,u as n,l,m as u,G as t,E as i,B as a}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceGoodWeBat",mixins:[m]},c={class:"device-goodwe-bat"};function b(o,e,f,g,w,x){const r=n("openwb-base-heading"),s=n("openwb-base-number-input");return l(),u("div",c,[t(r,null,{default:i(()=>[...e[1]||(e[1]=[a(" Einstellungen für GoodWe Batteriespeicher ",-1)])]),_:1}),t(s,{title:"GoodWe-Batterie-Index","model-value":o.component.configuration.battery_index,min:"1",max:"2","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.battery_index"))},{help:i(()=>[...e[2]||(e[2]=[a(" Wenn eine zweite Batterie am Wechselrichter angeschlossen ist, hier den Index 2 eintagen. Im Normalfall immer 1 eintragen. ",-1)])]),_:1},8,["model-value"])])}const N=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/good_we/bat.vue"]]);export{N as default}; diff --git a/web/settings/assets/bat-9f789e09.js b/web/settings/assets/bat-9f789e09.js new file mode 100644 index 0000000000..5bffd3eb4c --- /dev/null +++ b/web/settings/assets/bat-9f789e09.js @@ -0,0 +1 @@ +import{C as a}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as p,l as t,m as u,x as i,E as o,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSonnenbatterieBat",mixins:[a]},m={class:"device-sonnenbatterie-bat"};function _(s,e,f,v,b,l){const n=p("openwb-base-alert");return t(),u("div",m,[s.device.configuration.variant===3?(t(),i(n,{key:0,subtype:"info"},{default:o(()=>e[0]||(e[0]=[r(" Die Batterie lässt sich aktiv durch openWB steuern, da die JSON-API v2 verwendet wird. Dazu muss zwingend ein gültiges API-Token eingetragen sein. ",-1)])),_:1,__:[0]})):(t(),i(n,{key:1,subtype:"info"},{default:o(()=>e[1]||(e[1]=[r(" Die Batterie kann nicht aktiv durch openWB gesteuert werden, da die konfigurierte Datenverbindung dies nicht unterstützt. Es wird für die aktive Steuerung zwingend die 'JSON-API v2' benötigt. ",-1)])),_:1,__:[1]}))])}const z=d(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/bat.vue"]]);export{z as default}; diff --git a/web/settings/assets/bat-a55e5a44.js b/web/settings/assets/bat-a55e5a44.js deleted file mode 100644 index f29b82f667..0000000000 --- a/web/settings/assets/bat-a55e5a44.js +++ /dev/null @@ -1 +0,0 @@ -import{C as m}from"./HardwareInstallation-35a2a562.js";import{_ as l,u as t,l as d,m as c,G as i,E as a,B as s}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceMTecBat",mixins:[m]},_={class:"device-mtec-bat"};function f(o,e,v,g,w,B){const p=t("openwb-base-heading"),r=t("openwb-base-select-input"),u=t("openwb-base-number-input");return d(),c("div",_,[i(p,null,{default:a(()=>[...e[2]||(e[2]=[s(" Einstellungen für M-Tec Batteriespeicher ",-1)])]),_:1}),i(r,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:2,text:"Gen 2"},{value:3,text:"Gen 3"}],"model-value":o.component.configuration.generation,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.generation"))},null,8,["model-value"]),i(u,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},{help:a(()=>[...e[3]||(e[3]=[s(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])]),_:1},8,["model-value"])])}const k=l(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/bat.vue"]]);export{k as default}; diff --git a/web/settings/assets/bat-be5c48ce.js b/web/settings/assets/bat-be5c48ce.js new file mode 100644 index 0000000000..42e3b471ac --- /dev/null +++ b/web/settings/assets/bat-be5c48ce.js @@ -0,0 +1 @@ +import{C as u}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as d,l as p,m as g,G as l,E as i,B as n,A as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const h={name:"DeviceHttpBat",mixins:[u]},b={class:"device-http-bat"};function f(t,e,w,v,k,S){const s=d("openwb-base-heading"),o=d("openwb-base-text-input");return p(),g("div",b,[l(s,null,{default:i(()=>e[7]||(e[7]=[n(" Einstellungen für Http Batteriespeicher ",-1)])),_:1,__:[7]}),l(o,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.power_path"))},{help:i(()=>e[8]||(e[8]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Ladestand",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.soc_path,"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateConfiguration(r,"configuration.soc_path"))},{help:i(()=>e[9]||(e[9]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen Ladestand (SoC) in Prozent darstellt. ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 1",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l1_path,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateConfiguration(r,"configuration.current_l1_path"))},{help:i(()=>e[10]||(e[10]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 1. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 2",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l2_path,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateConfiguration(r,"configuration.current_l2_path"))},{help:i(()=>e[11]||(e[11]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 2. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 3",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l3_path,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateConfiguration(r,"configuration.current_l3_path"))},{help:i(()=>e[12]||(e[12]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 3. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Zählerstand laden",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.imported_path,"onUpdate:modelValue":e[5]||(e[5]=r=>t.updateConfiguration(r,"configuration.imported_path"))},{help:i(()=>e[13]||(e[13]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt. ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Zählerstand entladen",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[6]||(e[6]=r=>t.updateConfiguration(r,"configuration.exported_path"))},{help:i(()=>e[14]||(e[14]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"])])}const C=m(h,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/bat.vue"]]);export{C as default}; diff --git a/web/settings/assets/bat-c0ad8e73.js b/web/settings/assets/bat-c0ad8e73.js deleted file mode 100644 index 75e8ac8f11..0000000000 --- a/web/settings/assets/bat-c0ad8e73.js +++ /dev/null @@ -1 +0,0 @@ -import{C as d}from"./HardwareInstallation-35a2a562.js";import{_ as s,u as a,l as p,m,G as o,E as l,B as i,A as f}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceJsonBat",mixins:[d]},b={class:"device-json-bat"};function v(t,e,w,j,q,C){const u=a("openwb-base-heading"),r=a("openwb-base-text-input");return p(),m("div",b,[o(u,null,{default:l(()=>[...e[7]||(e[7]=[i(" Einstellungen für JSON Batteriespeicher ",-1)])]),_:1}),o(r,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":t.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.jq_power"))},{help:l(()=>[...e[8]||(e[8]=[i(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),f("br",null,null,-1),i(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt (positiv Ladung, negativ Entladung) darstellt. ",-1)])]),_:1},8,["model-value"]),o(r,{title:"Abfrage für Ladestand",subtype:"text",required:"","model-value":t.component.configuration.jq_soc,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.jq_soc"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":t.component.configuration.jq_current_l1,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.jq_current_l1"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":t.component.configuration.jq_current_l2,"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateConfiguration(n,"configuration.jq_current_l2"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":t.component.configuration.jq_current_l3,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateConfiguration(n,"configuration.jq_current_l3"))},null,8,["model-value"]),o(r,{title:"Abfrage für Zählerstand Ladung",subtype:"text","model-value":t.component.configuration.jq_imported,"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.jq_imported"))},{help:l(()=>[...e[9]||(e[9]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"]),o(r,{title:"Abfrage für Zählerstand Entladung",subtype:"text","model-value":t.component.configuration.jq_exported,"onUpdate:modelValue":e[6]||(e[6]=n=>t.updateConfiguration(n,"configuration.jq_exported"))},{help:l(()=>[...e[10]||(e[10]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"])])}const E=s(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/bat.vue"]]);export{E as default}; diff --git a/web/settings/assets/bat-c6548e6d.js b/web/settings/assets/bat-c6548e6d.js deleted file mode 100644 index 8acfb10997..0000000000 --- a/web/settings/assets/bat-c6548e6d.js +++ /dev/null @@ -1 +0,0 @@ -import{C as r}from"./HardwareInstallation-35a2a562.js";import{_ as p,u as n,l as m,m as d,G as t,E as u,B as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceDeyeBat",mixins:[r]},_={class:"device-deye-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),d("div",_,[t(i,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für Deye Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const k=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/bat.vue"]]);export{k as default}; diff --git a/web/settings/assets/bat-caa2d54a.js b/web/settings/assets/bat-caa2d54a.js new file mode 100644 index 0000000000..61380e7cbd --- /dev/null +++ b/web/settings/assets/bat-caa2d54a.js @@ -0,0 +1 @@ +import{C as r}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as o,l as m,m as u,G as t,E as l,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceFemsBat",mixins:[r]},_={class:"device-fems-bat"};function f(n,e,b,v,g,C){const i=o("openwb-base-heading"),s=o("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:l(()=>e[1]||(e[1]=[c(" Einstellungen für openEMS, Fenecon FEMS, CENTURIO 10, Kaco Hy-Control Batteriespeicher ",-1)])),_:1,__:[1]}),t(s,{title:"Anzahl der verbauten Speicher",required:"",min:1,max:2,"model-value":n.component.configuration.num,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.num"))},null,8,["model-value"])])}const S=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/fems/bat.vue"]]);export{S as default}; diff --git a/web/settings/assets/bat-cd102e51.js b/web/settings/assets/bat-cd102e51.js deleted file mode 100644 index fa2f79cde3..0000000000 --- a/web/settings/assets/bat-cd102e51.js +++ /dev/null @@ -1 +0,0 @@ -import{C as a}from"./HardwareInstallation-35a2a562.js";import{_ as p,u as t,l as m,m as u,G as n,E as d,B as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceStuderBat",mixins:[a]},_={class:"device-studer-bat"};function b(o,e,f,v,g,w){const i=t("openwb-base-heading"),s=t("openwb-base-number-input");return m(),u("div",_,[n(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Studer Batteriespeicher ",-1)])]),_:1}),n(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const M=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/bat.vue"]]);export{M as default}; diff --git a/web/settings/assets/bat-d2acbf13.js b/web/settings/assets/bat-d2acbf13.js deleted file mode 100644 index 83865863be..0000000000 --- a/web/settings/assets/bat-d2acbf13.js +++ /dev/null @@ -1 +0,0 @@ -import{C as b}from"./HardwareInstallation-35a2a562.js";import{_ as g,u,l as f,m as B,G as l,E as i,B as t,A as n,F as r}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const k={name:"DeviceMqttBat",mixins:[b]},w={class:"device-mqtt-bat"};function v(o,e,W,z,x,E){const p=u("openwb-base-heading"),s=u("openwb-base-copy-to-clipboard"),d=u("openwb-base-alert"),a=u("openwb-base-button-group-input");return f(),B("div",w,[l(p,null,{default:i(()=>[...e[1]||(e[1]=[t(" Einstellungen für MQTT Batteriespeicher ",-1)])]),_:1}),l(d,{subtype:"info"},{default:i(()=>[e[27]||(e[27]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),n("ul",null,[n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/power ",1)]),_:1}),e[2]||(e[2]=n("br",null,null,-1)),e[3]||(e[3]=t(" Speicherleistung in Watt, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, positiv Ladung, negativ Entladung",-1)),e[4]||(e[4]=n("br",null,null,-1)),e[5]||(e[5]=t(" Beispiel: ",-1)),e[6]||(e[6]=n("span",{class:"text-info"},"-123",-1))]),n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/soc ",1)]),_:1}),e[7]||(e[7]=n("br",null,null,-1)),e[8]||(e[8]=t(" Ladestand des Speichers, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, gültige Werte 0 bis 100",-1)),e[9]||(e[9]=n("br",null,null,-1)),e[10]||(e[10]=t(" Beispiel: ",-1)),e[11]||(e[11]=n("span",{class:"text-info"},"95",-1))])]),e[28]||(e[28]=t(" Falls keine Werte für die Zählerstände übermittelt werden, berechnet openWB die Zählerstände anhand der Leistung. ",-1)),n("ul",null,[n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/imported ",1)]),_:1}),e[12]||(e[12]=n("br",null,null,-1)),e[13]||(e[13]=t(" Geladene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[14]||(e[14]=n("br",null,null,-1)),e[15]||(e[15]=t(" Beispiel: ",-1)),e[16]||(e[16]=n("span",{class:"text-info"},"123.45",-1))]),n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/exported ",1)]),_:1}),e[17]||(e[17]=n("br",null,null,-1)),e[18]||(e[18]=t(" Entladene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[19]||(e[19]=n("br",null,null,-1)),e[20]||(e[20]=t(" Beispiel: ",-1)),e[21]||(e[21]=n("span",{class:"text-info"},"123.45",-1))])]),e[29]||(e[29]=t(" Ströme je Phase sind optional, jedoch für phasenbasiertes Lastmanagement in Verbindung mit einem virtuellen Zähler unbedingt erforderlich. Ansonsten erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung an diesem Zähler: ",-1)),n("ul",null,[n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/currents ",1)]),_:1}),e[22]||(e[22]=n("br",null,null,-1)),e[23]||(e[23]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),e[24]||(e[24]=n("br",null,null,-1)),e[25]||(e[25]=t(" Beispiel: ",-1)),e[26]||(e[26]=n("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])])]),_:1}),l(p,null,{default:i(()=>[...e[30]||(e[30]=[t(" Optionale Einstellungen ",-1)])]),_:1}),l(d,{subtype:"info"},{default:i(()=>[e[36]||(e[36]=t(' Wenn der Speicher die aktive Steuerung durch openWB unterstützt, kann die Option "Speicherleistung steuerbar" auf "Ja" gesetzt werden. Der Modus, um die Speicher-Entladung ins Fahrzeug zu steuern, kann in den übergreifenden Ladeeinstellungen gesetzt werden. Über folgendes Topic wird dem Speicher die Entladeleistung mitgeteilt. ',-1)),n("ul",null,[n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/set/power_limit ",1)]),_:1}),e[31]||(e[31]=n("br",null,null,-1)),e[32]||(e[32]=t(" Entladeleistung in Watt (Float), die im Speicher gesetzt werden muss.",-1)),e[33]||(e[33]=n("br",null,null,-1)),e[34]||(e[34]=t(" Beispiel: ",-1)),e[35]||(e[35]=n("span",{class:"text-info"},"123.0",-1))])])]),_:1}),l(a,{title:"Speicherleistung steuerbar",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":o.component.configuration.power_limit_controllable,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.power_limit_controllable"))},null,8,["model-value"])])}const C=g(k,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/bat.vue"]]);export{C as default}; diff --git a/web/settings/assets/bat-d365c2cb.js b/web/settings/assets/bat-d365c2cb.js new file mode 100644 index 0000000000..83ba35bb6f --- /dev/null +++ b/web/settings/assets/bat-d365c2cb.js @@ -0,0 +1 @@ +import{C as m}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as a,l as p,m as u,G as t,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSolaredgeBat",mixins:[m]},b={class:"device-solaredge-bat"};function f(o,e,_,c,v,x){const l=a("openwb-base-heading"),i=a("openwb-base-number-input");return p(),u("div",b,[t(l,null,{default:r(()=>e[2]||(e[2]=[s(" Einstellungen für SolarEdge Batteriespeicher ",-1)])),_:1,__:[2]}),t(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),t(i,{title:"SolarEdge-Batterie-Index","model-value":o.component.configuration.battery_index,min:"1",max:"2","onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.battery_index"))},{help:r(()=>e[3]||(e[3]=[s(" Wenn eine zweite Batterie am Wechselrichter angeschlossen ist, hier den Index 2 eintagen. Im Normalfall immer 1 eintragen. ",-1)])),_:1},8,["model-value"])])}const N=d(g,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/bat.vue"]]);export{N as default}; diff --git a/web/settings/assets/bat-d6b81877.js b/web/settings/assets/bat-d6b81877.js deleted file mode 100644 index 3e5ce16681..0000000000 --- a/web/settings/assets/bat-d6b81877.js +++ /dev/null @@ -1 +0,0 @@ -import{C as s}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as t,l as p,m as u,G as n,E as d,B as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceHuaweiSmartLoggerBat",mixins:[s]},c={class:"device-huawei-smart-logger-bat"};function b(o,e,g,f,w,v){const i=t("openwb-base-heading"),a=t("openwb-base-number-input");return p(),u("div",c,[n(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Batteriespeicher ",-1)])]),_:1}),n(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const H=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/bat.vue"]]);export{H as default}; diff --git a/web/settings/assets/bat-dd5956f5.js b/web/settings/assets/bat-dd5956f5.js deleted file mode 100644 index f387ad420e..0000000000 --- a/web/settings/assets/bat-dd5956f5.js +++ /dev/null @@ -1 +0,0 @@ -import{C as r}from"./HardwareInstallation-35a2a562.js";import{_ as p,u as n,l as m,m as l,G as t,E as u,B as d}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolisBat",mixins:[r]},_={class:"device-solis-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",_,[t(i,null,{default:u(()=>[...e[1]||(e[1]=[d(" Einstellungen für Solis Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const M=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/bat.vue"]]);export{M as default}; diff --git a/web/settings/assets/bat-e176c2ff.js b/web/settings/assets/bat-e176c2ff.js new file mode 100644 index 0000000000..fdc1419798 --- /dev/null +++ b/web/settings/assets/bat-e176c2ff.js @@ -0,0 +1 @@ +import{C as m}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as n,l as u,m as l,G as t,E as i,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSigenergyBat",mixins:[m]},_={class:"device-sigenergy-bat"};function b(o,e,c,f,v,w){const r=n("openwb-base-heading"),a=n("openwb-base-number-input");return u(),l("div",_,[t(r,null,{default:i(()=>e[1]||(e[1]=[s(" Einstellungen für Sigenergy Batteriespeicher ",-1)])),_:1,__:[1]}),t(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>e[2]||(e[2]=[s(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])),_:1},8,["model-value"])])}const V=d(g,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/bat.vue"]]);export{V as default}; diff --git a/web/settings/assets/bat-e326742a.js b/web/settings/assets/bat-e326742a.js new file mode 100644 index 0000000000..5e990c6fdb --- /dev/null +++ b/web/settings/assets/bat-e326742a.js @@ -0,0 +1 @@ +import{C as a}from"./HardwareInstallation-be759b0c.js";import{_ as r,u as o,l,m as u,G as n,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbEvukitBat",mixins:[a]},_={class:"device-openwb-evukit-bat"};function v(t,e,b,f,w,g){const i=o("openwb-base-heading"),s=o("openwb-base-select-input");return l(),u("div",_,[n(i,null,{default:m(()=>e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Batteriespeicher ",-1)])),_:1,__:[1]}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.version"))},null,8,["model-value"])])}const $=r(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/bat.vue"]]);export{$ as default}; diff --git a/web/settings/assets/bat-e3a454fb.js b/web/settings/assets/bat-e3a454fb.js deleted file mode 100644 index b3b0d4777e..0000000000 --- a/web/settings/assets/bat-e3a454fb.js +++ /dev/null @@ -1 +0,0 @@ -import{C as r}from"./HardwareInstallation-35a2a562.js";import{_ as p,u as o,l as m,m as u,G as t,E as l,B as c}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceFemsBat",mixins:[r]},f={class:"device-fems-bat"};function _(n,e,b,v,g,C){const i=o("openwb-base-heading"),s=o("openwb-base-number-input");return m(),u("div",f,[t(i,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für openEMS, Fenecon FEMS, CENTURIO 10, Kaco Hy-Control Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Anzahl der verbauten Speicher",required:"",min:1,max:2,"model-value":n.component.configuration.num,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.num"))},null,8,["model-value"])])}const S=p(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/fems/bat.vue"]]);export{S as default}; diff --git a/web/settings/assets/bat-e4f98942.js b/web/settings/assets/bat-e4f98942.js new file mode 100644 index 0000000000..0c310c49d5 --- /dev/null +++ b/web/settings/assets/bat-e4f98942.js @@ -0,0 +1 @@ +import{C as m}from"./HardwareInstallation-be759b0c.js";import{_ as l,u as t,l as d,m as c,G as i,E as a,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceMTecBat",mixins:[m]},_={class:"device-mtec-bat"};function f(o,e,v,g,w,B){const p=t("openwb-base-heading"),r=t("openwb-base-select-input"),u=t("openwb-base-number-input");return d(),c("div",_,[i(p,null,{default:a(()=>e[2]||(e[2]=[s(" Einstellungen für M-Tec Batteriespeicher ",-1)])),_:1,__:[2]}),i(r,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:2,text:"Gen 2"},{value:3,text:"Gen 3"}],"model-value":o.component.configuration.generation,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.generation"))},null,8,["model-value"]),i(u,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},{help:a(()=>e[3]||(e[3]=[s(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])),_:1},8,["model-value"])])}const k=l(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/bat.vue"]]);export{k as default}; diff --git a/web/settings/assets/bat-e8342943.js b/web/settings/assets/bat-e8342943.js deleted file mode 100644 index 04902ac205..0000000000 --- a/web/settings/assets/bat-e8342943.js +++ /dev/null @@ -1 +0,0 @@ -import{C as r}from"./HardwareInstallation-35a2a562.js";import{_ as p,u as o,l as m,m as u,G as t,E as d,B as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSunnyIslandBat",mixins:[r]},c={class:"device-sunnyisland-bat"};function b(n,e,f,v,g,w){const s=o("openwb-base-heading"),i=o("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Sunny Island Batteriespeicher ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const k=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_island/bat.vue"]]);export{k as default}; diff --git a/web/settings/assets/bat-e9ec040d.js b/web/settings/assets/bat-e9ec040d.js new file mode 100644 index 0000000000..69f94bd337 --- /dev/null +++ b/web/settings/assets/bat-e9ec040d.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as r,u as o,l,m,G as n,E as u,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbBatkitBat",mixins:[p]},_={class:"device-openwb-batkit-bat"};function b(t,e,f,v,w,B){const i=o("openwb-base-heading"),s=o("openwb-base-select-input");return l(),m("div",_,[n(i,null,{default:u(()=>e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Batteriespeicher ",-1)])),_:1,__:[1]}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=a=>t.updateConfiguration(a,"configuration.version"))},null,8,["model-value"])])}const $=r(d,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_bat_kit/bat.vue"]]);export{$ as default}; diff --git a/web/settings/assets/bat-efda0fab.js b/web/settings/assets/bat-efda0fab.js new file mode 100644 index 0000000000..77d5e9847a --- /dev/null +++ b/web/settings/assets/bat-efda0fab.js @@ -0,0 +1 @@ +import{C as d}from"./HardwareInstallation-be759b0c.js";import{_ as s,u as a,l as p,m,G as o,E as l,B as i,A as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceJsonBat",mixins:[d]},b={class:"device-json-bat"};function v(t,e,w,j,q,C){const u=a("openwb-base-heading"),r=a("openwb-base-text-input");return p(),m("div",b,[o(u,null,{default:l(()=>e[7]||(e[7]=[i(" Einstellungen für JSON Batteriespeicher ",-1)])),_:1,__:[7]}),o(r,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":t.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.jq_power"))},{help:l(()=>e[8]||(e[8]=[i(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),f("br",null,null,-1),i(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt (positiv Ladung, negativ Entladung) darstellt. ",-1)])),_:1},8,["model-value"]),o(r,{title:"Abfrage für Ladestand",subtype:"text",required:"","model-value":t.component.configuration.jq_soc,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.jq_soc"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":t.component.configuration.jq_current_l1,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.jq_current_l1"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":t.component.configuration.jq_current_l2,"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateConfiguration(n,"configuration.jq_current_l2"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":t.component.configuration.jq_current_l3,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateConfiguration(n,"configuration.jq_current_l3"))},null,8,["model-value"]),o(r,{title:"Abfrage für Zählerstand Ladung",subtype:"text","model-value":t.component.configuration.jq_imported,"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.jq_imported"))},{help:l(()=>e[9]||(e[9]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])),_:1},8,["model-value"]),o(r,{title:"Abfrage für Zählerstand Entladung",subtype:"text","model-value":t.component.configuration.jq_exported,"onUpdate:modelValue":e[6]||(e[6]=n=>t.updateConfiguration(n,"configuration.jq_exported"))},{help:l(()=>e[10]||(e[10]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])),_:1},8,["model-value"])])}const E=s(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/bat.vue"]]);export{E as default}; diff --git a/web/settings/assets/bat-f72ba579.js b/web/settings/assets/bat-f72ba579.js new file mode 100644 index 0000000000..86e4e000ec --- /dev/null +++ b/web/settings/assets/bat-f72ba579.js @@ -0,0 +1 @@ +import{C as r}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as n,l as m,m as u,G as t,E as d,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceFoxEssBat",mixins:[r]},c={class:"device-fox_ess-bat"};function b(o,e,f,x,v,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>e[1]||(e[1]=[_(" Einstellungen für FoxEss Batteriespeicher ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const F=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/bat.vue"]]);export{F as default}; diff --git a/web/settings/assets/bat-fdb9e37e.js b/web/settings/assets/bat-fdb9e37e.js deleted file mode 100644 index e193846f2d..0000000000 --- a/web/settings/assets/bat-fdb9e37e.js +++ /dev/null @@ -1 +0,0 @@ -import{C as a}from"./HardwareInstallation-35a2a562.js";import{_ as p,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceFroniusBat",mixins:[a]},_={class:"device-fronius-bat"};function f(o,e,b,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Fronius Batteriespeicher ",-1)])]),_:1}),t(r,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":o.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.meter_id"))},null,8,["model-value"])])}const F=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/bat.vue"]]);export{F as default}; diff --git a/web/settings/assets/bat_smart_energy-5d1a08e4.js b/web/settings/assets/bat_smart_energy-5d1a08e4.js deleted file mode 100644 index 53a3c1d707..0000000000 --- a/web/settings/assets/bat_smart_energy-5d1a08e4.js +++ /dev/null @@ -1 +0,0 @@ -import{C as a}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as o,l as p,m as u,G as t,E as d,B as _}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceSunnyBoyBatSmartEnergy",mixins:[a]},b={class:"device-sunnyboy-bat-smart-energy"};function c(n,e,f,g,y,v){const s=o("openwb-base-heading"),r=o("openwb-base-number-input");return p(),u("div",b,[t(s,null,{default:d(()=>[...e[1]||(e[1]=[_(" Einstellungen für SMA Sunny Boy Smart Energy Batteriespeicher ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const h=m(l,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/bat_smart_energy.vue"]]);export{h as default}; diff --git a/web/settings/assets/bat_smart_energy-af221efd.js b/web/settings/assets/bat_smart_energy-af221efd.js new file mode 100644 index 0000000000..b10cbb872a --- /dev/null +++ b/web/settings/assets/bat_smart_energy-af221efd.js @@ -0,0 +1 @@ +import{C as a}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as o,l as p,m as u,G as t,E as _,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceSunnyBoyBatSmartEnergy",mixins:[a]},b={class:"device-sunnyboy-bat-smart-energy"};function c(n,e,f,g,y,v){const s=o("openwb-base-heading"),r=o("openwb-base-number-input");return p(),u("div",b,[t(s,null,{default:_(()=>e[1]||(e[1]=[d(" Einstellungen für SMA Sunny Boy Smart Energy Batteriespeicher ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const h=m(l,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/bat_smart_energy.vue"]]);export{h as default}; diff --git a/web/settings/assets/chargePoint-04f787ef.js b/web/settings/assets/chargePoint-04f787ef.js new file mode 100644 index 0000000000..3d57960eee --- /dev/null +++ b/web/settings/assets/chargePoint-04f787ef.js @@ -0,0 +1 @@ +import{C as s}from"./ChargePointInstallation-7e22d920.js";import{_ as p,u as n,l as u,m,G as i,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"ChargePointSmartwb",mixins:[s]},b={class:"charge-point-smartwb"};function c(t,e,f,_,w,v){const r=n("openwb-base-text-input"),a=n("openwb-base-number-input");return u(),m("div",b,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Wartezeit",required:"",min:2,max:10,unit:"s","model-value":t.chargePoint.configuration.timeout,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.timeout"))},{help:d(()=>e[2]||(e[2]=[l(" Zeitangabe in Sekunden, für die auf eine Antwort des Ladepunktes gewartet wird. Wird diese Zeit überschritten, so wird von einer Kommunikationsstörung ausgegangen. ",-1)])),_:1},8,["model-value"])])}const q=p(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/smartwb/chargePoint.vue"]]);export{q as default}; diff --git a/web/settings/assets/chargePoint-2a30a0c1.js b/web/settings/assets/chargePoint-2a30a0c1.js deleted file mode 100644 index 1de3ef5a7d..0000000000 --- a/web/settings/assets/chargePoint-2a30a0c1.js +++ /dev/null @@ -1 +0,0 @@ -import{C as s}from"./ChargePointInstallation-81239155.js";import{_ as p,u as n,l as u,m,G as i,E as d,B as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const g={name:"ChargePointSmartwb",mixins:[s]},b={class:"charge-point-smartwb"};function c(t,e,f,_,w,v){const r=n("openwb-base-text-input"),a=n("openwb-base-number-input");return u(),m("div",b,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Wartezeit",required:"",min:2,max:10,unit:"s","model-value":t.chargePoint.configuration.timeout,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.timeout"))},{help:d(()=>[...e[2]||(e[2]=[l(" Zeitangabe in Sekunden, für die auf eine Antwort des Ladepunktes gewartet wird. Wird diese Zeit überschritten, so wird von einer Kommunikationsstörung ausgegangen. ",-1)])]),_:1},8,["model-value"])])}const q=p(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/smartwb/chargePoint.vue"]]);export{q as default}; diff --git a/web/settings/assets/chargePoint-e515f3fa.js b/web/settings/assets/chargePoint-5ae09ebd.js similarity index 59% rename from web/settings/assets/chargePoint-e515f3fa.js rename to web/settings/assets/chargePoint-5ae09ebd.js index 0661564ec3..da5e3befd2 100644 --- a/web/settings/assets/chargePoint-e515f3fa.js +++ b/web/settings/assets/chargePoint-5ae09ebd.js @@ -1 +1 @@ -import{C as r}from"./ChargePointInstallation-81239155.js";import{_ as i,u as p,l as s,m as a,G as m}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"ChargePointOpenwbPro",mixins:[r]},d={class:"charge-point-openwb-pro"};function u(o,e,_,l,f,g){const t=p("openwb-base-text-input");return s(),a("div",d,[m(t,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])])}const k=i(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_pro/chargePoint.vue"]]);export{k as default}; +import{C as r}from"./ChargePointInstallation-7e22d920.js";import{_ as i,u as p,l as s,m as a,G as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"ChargePointOpenwbPro",mixins:[r]},d={class:"charge-point-openwb-pro"};function u(o,e,_,l,f,g){const t=p("openwb-base-text-input");return s(),a("div",d,[m(t,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])])}const k=i(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_pro/chargePoint.vue"]]);export{k as default}; diff --git a/web/settings/assets/chargePoint-5d28cfe6.js b/web/settings/assets/chargePoint-5d28cfe6.js new file mode 100644 index 0000000000..270c8e8d06 --- /dev/null +++ b/web/settings/assets/chargePoint-5d28cfe6.js @@ -0,0 +1 @@ +import{C as p}from"./ChargePointInstallation-7e22d920.js";import{_ as s,u as t,l as u,m,G as i,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"ChargePointExternalOpenwb",mixins:[p]},c={class:"charge-point-external-openwb"};function g(n,e,b,f,h,w){const r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),m("div",c,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":n.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o-1,"configuration.duo_num"))},{help:d(()=>e[2]||(e[2]=[l(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ',-1)])),_:1},8,["model-value"])])}const E=s(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/external_openwb/chargePoint.vue"]]);export{E as default}; diff --git a/web/settings/assets/chargePoint-5f7a56d3.js b/web/settings/assets/chargePoint-5f7a56d3.js deleted file mode 100644 index 97e7f51cff..0000000000 --- a/web/settings/assets/chargePoint-5f7a56d3.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./ChargePointInstallation-81239155.js";import{_ as s,u as t,l as u,m,G as i,E as d,B as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"ChargePointExternalOpenwb",mixins:[p]},c={class:"charge-point-external-openwb"};function g(n,e,b,f,h,w){const r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),m("div",c,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":n.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o-1,"configuration.duo_num"))},{help:d(()=>[...e[2]||(e[2]=[l(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ',-1)])]),_:1},8,["model-value"])])}const E=s(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/external_openwb/chargePoint.vue"]]);export{E as default}; diff --git a/web/settings/assets/chargePoint-73256b81.js b/web/settings/assets/chargePoint-73256b81.js deleted file mode 100644 index 390ff40d57..0000000000 --- a/web/settings/assets/chargePoint-73256b81.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./ChargePointInstallation-81239155.js";import{_ as s,u as t,l as u,m,G as i,E as d,B as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"ChargePointSatellite",mixins:[p]},c={class:"charge-point-openwb-satellite"};function g(n,e,f,b,h,w){const r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),m("div",c,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":n.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o-1,"configuration.duo_num"))},{help:d(()=>[...e[2]||(e[2]=[l(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ',-1)])]),_:1},8,["model-value"])])}const N=s(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_series2_satellit/chargePoint.vue"]]);export{N as default}; diff --git a/web/settings/assets/chargePoint-8808c043.js b/web/settings/assets/chargePoint-8808c043.js new file mode 100644 index 0000000000..888ce89ec3 --- /dev/null +++ b/web/settings/assets/chargePoint-8808c043.js @@ -0,0 +1 @@ +import{C as p}from"./ChargePointInstallation-7e22d920.js";import{_ as s,u as t,l as u,m,G as i,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"ChargePointSatellite",mixins:[p]},c={class:"charge-point-openwb-satellite"};function g(n,e,f,b,h,w){const r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),m("div",c,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":n.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o-1,"configuration.duo_num"))},{help:d(()=>e[2]||(e[2]=[l(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ',-1)])),_:1},8,["model-value"])])}const N=s(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_series2_satellit/chargePoint.vue"]]);export{N as default}; diff --git a/web/settings/assets/chargePoint-275481b9.js b/web/settings/assets/chargePoint-b9360c52.js similarity index 63% rename from web/settings/assets/chargePoint-275481b9.js rename to web/settings/assets/chargePoint-b9360c52.js index d2ff917d52..69ed09e4ed 100644 --- a/web/settings/assets/chargePoint-275481b9.js +++ b/web/settings/assets/chargePoint-b9360c52.js @@ -1 +1 @@ -import{C as u}from"./ChargePointInstallation-81239155.js";import{_ as p,u as t,l as i,m as d,G as m,x as l,E as c,B as g,z as _}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const f={name:"ChargePointInternalOpenwb",mixins:[u],methods:{updateMode(e){["series","socket","pro_plus"].includes(e)&&this.updateConfiguration(0,"configuration.duo_num"),this.updateConfiguration(e,"configuration.mode")}}},b={class:"charge-point-internal-openwb"};function h(e,o,B,v,w,a){const r=t("openwb-base-select-input"),s=t("openwb-base-number-input");return i(),d("div",b,[m(r,{title:"Bauart","not-selected":"Bitte auswählen",required:"",options:[{value:"series",text:"openWB series1/2 in den Varianten custom, standard & standard+"},{value:"duo",text:"openWB series1/2 Duo"},{value:"socket",text:"openWB series1/2 Buchse"},{value:"pro_plus",text:"openWB Pro+"}],"model-value":e.chargePoint.configuration.mode,"onUpdate:modelValue":o[0]||(o[0]=n=>a.updateMode(n))},null,8,["model-value"]),e.chargePoint.configuration.mode=="duo"?(i(),l(s,{key:0,title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":e.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n-1,"configuration.duo_num"))},{help:c(()=>[...o[2]||(o[2]=[g(' Bei einer openWB Duo können mit "1" oder "2" die beiden enthaltenen Ladepunkte angesprochen werden. ',-1)])]),_:1},8,["model-value"])):_("",!0)])}const q=p(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/internal_openwb/chargePoint.vue"]]);export{q as default}; +import{C as u}from"./ChargePointInstallation-7e22d920.js";import{_ as p,u as t,l as i,m as d,G as m,x as l,E as c,B as g,z as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"ChargePointInternalOpenwb",mixins:[u],methods:{updateMode(e){["series","socket","pro_plus"].includes(e)&&this.updateConfiguration(0,"configuration.duo_num"),this.updateConfiguration(e,"configuration.mode")}}},b={class:"charge-point-internal-openwb"};function h(e,o,B,v,w,a){const r=t("openwb-base-select-input"),s=t("openwb-base-number-input");return i(),d("div",b,[m(r,{title:"Bauart","not-selected":"Bitte auswählen",required:"",options:[{value:"series",text:"openWB series1/2 in den Varianten custom, standard & standard+"},{value:"duo",text:"openWB series1/2 Duo"},{value:"socket",text:"openWB series1/2 Buchse"},{value:"pro_plus",text:"openWB Pro+"}],"model-value":e.chargePoint.configuration.mode,"onUpdate:modelValue":o[0]||(o[0]=n=>a.updateMode(n))},null,8,["model-value"]),e.chargePoint.configuration.mode=="duo"?(i(),l(s,{key:0,title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":e.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n-1,"configuration.duo_num"))},{help:c(()=>o[2]||(o[2]=[g(' Bei einer openWB Duo können mit "1" oder "2" die beiden enthaltenen Ladepunkte angesprochen werden. ',-1)])),_:1},8,["model-value"])):_("",!0)])}const q=p(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/internal_openwb/chargePoint.vue"]]);export{q as default}; diff --git a/web/settings/assets/chargePoint-c7a2ef8c.js b/web/settings/assets/chargePoint-c7a2ef8c.js new file mode 100644 index 0000000000..b93411cd3f --- /dev/null +++ b/web/settings/assets/chargePoint-c7a2ef8c.js @@ -0,0 +1 @@ +import{C as d}from"./ChargePointInstallation-7e22d920.js";import{_ as g,u as p,l as a,m,G as l,E as i,B as e,A as t,F as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"ChargePointMqtt",mixins:[d]},f={class:"charge-point-mqtt"};function k(o,n,B,w,v,W){const u=p("openwb-base-alert"),s=p("openwb-base-copy-to-clipboard");return a(),m("div",f,[l(u,{subtype:"danger"},{default:i(()=>n[0]||(n[0]=[e(" Dieser Ladepunkt-Typ darf nur in Kombination mit dem Simulator zur Fehleranalyse genutzt werden. Eine andere Verwendung ist laut den Nutzungsbedingungen untersagt. ",-1)])),_:1,__:[0]}),l(u,{subtype:"info"},{default:i(()=>[n[72]||(n[72]=e(" Das MQTT Modul stellt keine aktive Verbindung her, sondern erwartet, dass die Daten von speziellen Topics im Broker gelesen bzw. geschrieben werden. Alle Daten werden als gültiges JSON gesendet und auch so erwartet! Zahlen mit Nachkommastellen (Float) verwenden einen Punkt als Dezimaltrenner (internationales Format).",-1)),n[73]||(n[73]=t("br",null,null,-1)),n[74]||(n[74]=e(" Ab Version 2.1.8 wurden die Topics überarbeitet. Die bisherigen Topics openWB/set/chargepoint/id/get/... und openWB/chargepoint/set/... bleiben aus Gründen der Abwärtskompatibilität weiterhin nutzbar. Wir empfehlen, auf die neuen Topics umzusteigen. Dies ermöglicht die Beseitigung von Einschränkungen, wie z. B. die fehlende Verrechnung bei Hybrid-Systemen oder die Berechnung fehlender Werte, wie der Phasen-Leistung aus Spannung und Stromstärken. ",-1)),t("ol",null,[t("li",null,[n[11]||(n[11]=e(" von openWB gesendete Topics ",-1)),t("ul",null,[t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/mqtt/chargepoint/"+r(o.chargePoint.id)+"/set/current ",1)]),_:1}),n[1]||(n[1]=t("br",null,null,-1)),n[2]||(n[2]=e(" Sollwert des Ladestroms, mit Nachkommastellen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[3]||(n[3]=t("br",null,null,-1)),n[4]||(n[4]=e(" Beispiel: ",-1)),n[5]||(n[5]=t("span",{class:"text-info"},"12.34",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/mqtt/chargepoint/"+r(o.chargePoint.id)+"/set/phases_to_use ",1)]),_:1}),n[6]||(n[6]=t("br",null,null,-1)),n[7]||(n[7]=e(" Sollwert für die Anzahl Phasen als Ganzzahl (Integer). Mögliche Werte: 1 oder 3",-1)),n[8]||(n[8]=t("br",null,null,-1)),n[9]||(n[9]=e(" Beispiel: ",-1)),n[10]||(n[10]=t("span",{class:"text-info"},"1",-1))])])]),t("li",null,[n[37]||(n[37]=e(" von openWB zwingend erwartete Topics ",-1)),t("ul",null,[t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/currents ",1)]),_:1}),n[12]||(n[12]=t("br",null,null,-1)),n[13]||(n[13]=e(" Aktuelle Phasenströme des Ladepunktes, Array mit drei Zahlen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[14]||(n[14]=t("br",null,null,-1)),n[15]||(n[15]=e(" Beispiel: ",-1)),n[16]||(n[16]=t("span",{class:"text-info"},"[6.78,6.89,6.94]",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/power ",1)]),_:1}),n[17]||(n[17]=t("br",null,null,-1)),n[18]||(n[18]=e(" Leistung in Watt, mit Nachkommastellen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[19]||(n[19]=t("br",null,null,-1)),n[20]||(n[20]=e(" Beispiel: ",-1)),n[21]||(n[21]=t("span",{class:"text-info"},"123.45",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/plug_state ",1)]),_:1}),n[22]||(n[22]=t("br",null,null,-1)),n[23]||(n[23]=e(" Zeigt an, ob aktuell ein Fahrzeug angesteckt ist, Wahrheitswert (Bool).",-1)),n[24]||(n[24]=t("br",null,null,-1)),n[25]||(n[25]=e(" Beispiel: ",-1)),n[26]||(n[26]=t("span",{class:"text-info"},"true",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/charge_state ",1)]),_:1}),n[27]||(n[27]=t("br",null,null,-1)),n[28]||(n[28]=e(" Zeigt an, ob ein Ladevorgang aktiv ist, Wahrheitswert (Bool).",-1)),n[29]||(n[29]=t("br",null,null,-1)),n[30]||(n[30]=e(" Beispiel: ",-1)),n[31]||(n[31]=t("span",{class:"text-info"},"true",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/phases_in_use ",1)]),_:1}),n[32]||(n[32]=t("br",null,null,-1)),n[33]||(n[33]=e(" Anzahl der Phasen, mit denen geladen wird, Ganzzahl (Integer). Mögliche Werte: 0 bis 3",-1)),n[34]||(n[34]=t("br",null,null,-1)),n[35]||(n[35]=e(" Beispiel: ",-1)),n[36]||(n[36]=t("span",{class:"text-info"},"3",-1))])])]),t("li",null,[n[71]||(n[71]=e(" optionale Topics ",-1)),t("ul",null,[t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/imported ",1)]),_:1}),n[38]||(n[38]=t("br",null,null,-1)),n[39]||(n[39]=e(" Geladene Energie in Wh, mit Nachkommastellen (Float), nur positiv",-1)),n[40]||(n[40]=t("br",null,null,-1)),n[41]||(n[41]=e(" Wird dieses Topic nicht vom Ladepunkt gesendet, so wird intern ein Zählerstand anhand der Leistung simuliert.",-1)),n[42]||(n[42]=t("br",null,null,-1)),n[43]||(n[43]=e(" Beispiel: ",-1)),n[44]||(n[44]=t("span",{class:"text-info"},"123.45",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/exported ",1)]),_:1}),n[45]||(n[45]=t("br",null,null,-1)),n[46]||(n[46]=e(" Entladene Energie in Wh, mit Nachkommastellen (Float), nur positiv",-1)),n[47]||(n[47]=t("br",null,null,-1)),n[48]||(n[48]=e(" Wird dieses Topic nicht vom Ladepunkt gesendet, so wird intern ein Zählerstand anhand der Leistung simuliert.",-1)),n[49]||(n[49]=t("br",null,null,-1)),n[50]||(n[50]=e(" Beispiel: ",-1)),n[51]||(n[51]=t("span",{class:"text-info"},"123.45",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/voltages ",1)]),_:1}),n[52]||(n[52]=t("br",null,null,-1)),n[53]||(n[53]=e(" Aktuelle Phasenspannungen des Ladepunktes, Array mit drei Zahlen (Float), nur positiv.",-1)),n[54]||(n[54]=t("br",null,null,-1)),n[55]||(n[55]=e(" Die Spannungen werden nicht verarbeitet, sondern lediglich im Status angezeigt.",-1)),n[56]||(n[56]=t("br",null,null,-1)),n[57]||(n[57]=e(" Beispiel: ",-1)),n[58]||(n[58]=t("span",{class:"text-info"},"[230.12,231.08,232.54]",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/power_factors ",1)]),_:1}),n[59]||(n[59]=t("br",null,null,-1)),n[60]||(n[60]=e(" Aktuelle Leistungsfaktoren des Ladepunktes, Array mit drei Zahlen (Float), Wertebereich von -1 bis 1.",-1)),n[61]||(n[61]=t("br",null,null,-1)),n[62]||(n[62]=e(" Die Leistungsfaktoren werden nicht verarbeitet, sondern lediglich im Status angezeigt.",-1)),n[63]||(n[63]=t("br",null,null,-1)),n[64]||(n[64]=e(" Beispiel: ",-1)),n[65]||(n[65]=t("span",{class:"text-info"},"[-0.87,0.96,1.0]",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/rfid_tag ",1)]),_:1}),n[66]||(n[66]=t("br",null,null,-1)),n[67]||(n[67]=e(" Eine Zeichenfolge, die einen eingelesenen Tag für openWB repräsentiert.",-1)),n[68]||(n[68]=t("br",null,null,-1)),n[69]||(n[69]=e(" Beispiel: ",-1)),n[70]||(n[70]=t("span",{class:"text-info"},'"123654"',-1))])])])])]),_:1,__:[72,73,74]})])}const S=g(b,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/mqtt/chargePoint.vue"]]);export{S as default}; diff --git a/web/settings/assets/chargePoint-c8dd557f.js b/web/settings/assets/chargePoint-c8dd557f.js deleted file mode 100644 index b02ab23a70..0000000000 --- a/web/settings/assets/chargePoint-c8dd557f.js +++ /dev/null @@ -1 +0,0 @@ -import{C as d}from"./ChargePointInstallation-81239155.js";import{_ as g,u as p,l as a,m,G as l,E as i,B as e,A as t,F as r}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const b={name:"ChargePointMqtt",mixins:[d]},f={class:"charge-point-mqtt"};function k(o,n,B,w,v,W){const u=p("openwb-base-alert"),s=p("openwb-base-copy-to-clipboard");return a(),m("div",f,[l(u,{subtype:"danger"},{default:i(()=>[...n[0]||(n[0]=[e(" Dieser Ladepunkt-Typ darf nur in Kombination mit dem Simulator zur Fehleranalyse genutzt werden. Eine andere Verwendung ist laut den Nutzungsbedingungen untersagt. ",-1)])]),_:1}),l(u,{subtype:"info"},{default:i(()=>[n[72]||(n[72]=e(" Das MQTT Modul stellt keine aktive Verbindung her, sondern erwartet, dass die Daten von speziellen Topics im Broker gelesen bzw. geschrieben werden. Alle Daten werden als gültiges JSON gesendet und auch so erwartet! Zahlen mit Nachkommastellen (Float) verwenden einen Punkt als Dezimaltrenner (internationales Format).",-1)),n[73]||(n[73]=t("br",null,null,-1)),n[74]||(n[74]=e(" Ab Version 2.1.8 wurden die Topics überarbeitet. Die bisherigen Topics openWB/set/chargepoint/id/get/... und openWB/chargepoint/set/... bleiben aus Gründen der Abwärtskompatibilität weiterhin nutzbar. Wir empfehlen, auf die neuen Topics umzusteigen. Dies ermöglicht die Beseitigung von Einschränkungen, wie z. B. die fehlende Verrechnung bei Hybrid-Systemen oder die Berechnung fehlender Werte, wie der Phasen-Leistung aus Spannung und Stromstärken. ",-1)),t("ol",null,[t("li",null,[n[11]||(n[11]=e(" von openWB gesendete Topics ",-1)),t("ul",null,[t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/mqtt/chargepoint/"+r(o.chargePoint.id)+"/set/current ",1)]),_:1}),n[1]||(n[1]=t("br",null,null,-1)),n[2]||(n[2]=e(" Sollwert des Ladestroms, mit Nachkommastellen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[3]||(n[3]=t("br",null,null,-1)),n[4]||(n[4]=e(" Beispiel: ",-1)),n[5]||(n[5]=t("span",{class:"text-info"},"12.34",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/mqtt/chargepoint/"+r(o.chargePoint.id)+"/set/phases_to_use ",1)]),_:1}),n[6]||(n[6]=t("br",null,null,-1)),n[7]||(n[7]=e(" Sollwert für die Anzahl Phasen als Ganzzahl (Integer). Mögliche Werte: 1 oder 3",-1)),n[8]||(n[8]=t("br",null,null,-1)),n[9]||(n[9]=e(" Beispiel: ",-1)),n[10]||(n[10]=t("span",{class:"text-info"},"1",-1))])])]),t("li",null,[n[37]||(n[37]=e(" von openWB zwingend erwartete Topics ",-1)),t("ul",null,[t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/currents ",1)]),_:1}),n[12]||(n[12]=t("br",null,null,-1)),n[13]||(n[13]=e(" Aktuelle Phasenströme des Ladepunktes, Array mit drei Zahlen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[14]||(n[14]=t("br",null,null,-1)),n[15]||(n[15]=e(" Beispiel: ",-1)),n[16]||(n[16]=t("span",{class:"text-info"},"[6.78,6.89,6.94]",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/power ",1)]),_:1}),n[17]||(n[17]=t("br",null,null,-1)),n[18]||(n[18]=e(" Leistung in Watt, mit Nachkommastellen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[19]||(n[19]=t("br",null,null,-1)),n[20]||(n[20]=e(" Beispiel: ",-1)),n[21]||(n[21]=t("span",{class:"text-info"},"123.45",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/plug_state ",1)]),_:1}),n[22]||(n[22]=t("br",null,null,-1)),n[23]||(n[23]=e(" Zeigt an, ob aktuell ein Fahrzeug angesteckt ist, Wahrheitswert (Bool).",-1)),n[24]||(n[24]=t("br",null,null,-1)),n[25]||(n[25]=e(" Beispiel: ",-1)),n[26]||(n[26]=t("span",{class:"text-info"},"true",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/charge_state ",1)]),_:1}),n[27]||(n[27]=t("br",null,null,-1)),n[28]||(n[28]=e(" Zeigt an, ob ein Ladevorgang aktiv ist, Wahrheitswert (Bool).",-1)),n[29]||(n[29]=t("br",null,null,-1)),n[30]||(n[30]=e(" Beispiel: ",-1)),n[31]||(n[31]=t("span",{class:"text-info"},"true",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/phases_in_use ",1)]),_:1}),n[32]||(n[32]=t("br",null,null,-1)),n[33]||(n[33]=e(" Anzahl der Phasen, mit denen geladen wird, Ganzzahl (Integer). Mögliche Werte: 0 bis 3",-1)),n[34]||(n[34]=t("br",null,null,-1)),n[35]||(n[35]=e(" Beispiel: ",-1)),n[36]||(n[36]=t("span",{class:"text-info"},"3",-1))])])]),t("li",null,[n[71]||(n[71]=e(" optionale Topics ",-1)),t("ul",null,[t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/imported ",1)]),_:1}),n[38]||(n[38]=t("br",null,null,-1)),n[39]||(n[39]=e(" Geladene Energie in Wh, mit Nachkommastellen (Float), nur positiv",-1)),n[40]||(n[40]=t("br",null,null,-1)),n[41]||(n[41]=e(" Wird dieses Topic nicht vom Ladepunkt gesendet, so wird intern ein Zählerstand anhand der Leistung simuliert.",-1)),n[42]||(n[42]=t("br",null,null,-1)),n[43]||(n[43]=e(" Beispiel: ",-1)),n[44]||(n[44]=t("span",{class:"text-info"},"123.45",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/exported ",1)]),_:1}),n[45]||(n[45]=t("br",null,null,-1)),n[46]||(n[46]=e(" Entladene Energie in Wh, mit Nachkommastellen (Float), nur positiv",-1)),n[47]||(n[47]=t("br",null,null,-1)),n[48]||(n[48]=e(" Wird dieses Topic nicht vom Ladepunkt gesendet, so wird intern ein Zählerstand anhand der Leistung simuliert.",-1)),n[49]||(n[49]=t("br",null,null,-1)),n[50]||(n[50]=e(" Beispiel: ",-1)),n[51]||(n[51]=t("span",{class:"text-info"},"123.45",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/voltages ",1)]),_:1}),n[52]||(n[52]=t("br",null,null,-1)),n[53]||(n[53]=e(" Aktuelle Phasenspannungen des Ladepunktes, Array mit drei Zahlen (Float), nur positiv.",-1)),n[54]||(n[54]=t("br",null,null,-1)),n[55]||(n[55]=e(" Die Spannungen werden nicht verarbeitet, sondern lediglich im Status angezeigt.",-1)),n[56]||(n[56]=t("br",null,null,-1)),n[57]||(n[57]=e(" Beispiel: ",-1)),n[58]||(n[58]=t("span",{class:"text-info"},"[230.12,231.08,232.54]",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/power_factors ",1)]),_:1}),n[59]||(n[59]=t("br",null,null,-1)),n[60]||(n[60]=e(" Aktuelle Leistungsfaktoren des Ladepunktes, Array mit drei Zahlen (Float), Wertebereich von -1 bis 1.",-1)),n[61]||(n[61]=t("br",null,null,-1)),n[62]||(n[62]=e(" Die Leistungsfaktoren werden nicht verarbeitet, sondern lediglich im Status angezeigt.",-1)),n[63]||(n[63]=t("br",null,null,-1)),n[64]||(n[64]=e(" Beispiel: ",-1)),n[65]||(n[65]=t("span",{class:"text-info"},"[-0.87,0.96,1.0]",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/rfid_tag ",1)]),_:1}),n[66]||(n[66]=t("br",null,null,-1)),n[67]||(n[67]=e(" Eine Zeichenfolge, die einen eingelesenen Tag für openWB repräsentiert.",-1)),n[68]||(n[68]=t("br",null,null,-1)),n[69]||(n[69]=e(" Beispiel: ",-1)),n[70]||(n[70]=t("span",{class:"text-info"},'"123654"',-1))])])])])]),_:1})])}const S=g(b,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/mqtt/chargePoint.vue"]]);export{S as default}; diff --git a/web/settings/assets/chargePoint-ee9642cb.js b/web/settings/assets/chargePoint-d206a228.js similarity index 59% rename from web/settings/assets/chargePoint-ee9642cb.js rename to web/settings/assets/chargePoint-d206a228.js index 8703198dab..447ecb3244 100644 --- a/web/settings/assets/chargePoint-ee9642cb.js +++ b/web/settings/assets/chargePoint-d206a228.js @@ -1 +1 @@ -import{C as r}from"./ChargePointInstallation-81239155.js";import{_ as i,u as a,l as p,m as s,G as d}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"ChargePointOpenwbDcAdapter",mixins:[r]},m={class:"charge-point-openwb-dc-adapter"};function u(e,o,_,l,f,g){const t=a("openwb-base-text-input");return p(),s("div",m,[d(t,{title:"IP oder Hostname",subtype:"host",required:"","model-value":e.chargePoint.configuration.ip_address,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])])}const k=i(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_dc_adapter/chargePoint.vue"]]);export{k as default}; +import{C as r}from"./ChargePointInstallation-7e22d920.js";import{_ as i,u as a,l as p,m as s,G as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"ChargePointOpenwbDcAdapter",mixins:[r]},m={class:"charge-point-openwb-dc-adapter"};function u(e,o,_,l,f,g){const t=a("openwb-base-text-input");return p(),s("div",m,[d(t,{title:"IP oder Hostname",subtype:"host",required:"","model-value":e.chargePoint.configuration.ip_address,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])])}const k=i(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_dc_adapter/chargePoint.vue"]]);export{k as default}; diff --git a/web/settings/assets/commands-425a88ce.js b/web/settings/assets/commands-6baac453.js similarity index 59% rename from web/settings/assets/commands-425a88ce.js rename to web/settings/assets/commands-6baac453.js index f4f555c147..8fde82d11d 100644 --- a/web/settings/assets/commands-425a88ce.js +++ b/web/settings/assets/commands-6baac453.js @@ -1 +1 @@ -import{a as g}from"./ChargePointInstallation-81239155.js";import{_ as h,u,l as a,m as c,G as d,E as r,B as i,x as _,F as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const f={name:"ChargePointCommandsInternalOpenwb",mixins:[g],computed:{mode(){switch(this.chargePoint.configuration.mode){case"series":return"openWB series1/2 custom, standard & standard+";case"duo":return"openWB series1/2 Duo";case"socket":return"openWB series1/2 Buchse";case"pro_plus":return"openWB Pro+";default:return this.chargePoint.configuration.mode}}},methods:{async triggerUpdate(){let n=new FormData;n.append("command","update_pro_plus");const t="Die Aktualisierung der openWB Pro+ wird gestartet...";this.$root.postClientMessage(t,"info"),console.debug(location),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/charge_points/internal_openwb/commands.php",n,{timeout:5e3}).then(()=>{const e="Die Aktualisierung der openWB Pro+ wurde erfolgreich gestartet.";this.$root.postClientMessage(e,"success")}).catch(e=>{var s="Aktualisierung fehlgeschlagen!
";e.response?(console.error(e.response.status,e.response.data),s+=e.response.status+": "+e.response.data):e.request?(console.error(e.request),s+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",e.message),s+="Es ist ein unbekannter Fehler aufgetreten."),this.$root.postClientMessage(s,"danger")})},openSettings(){window.open("http://"+location.hostname+":8080","_blank")}}},b={class:"charge-point-commands-internal-openwb"},k={key:0};function B(n,t,e,s,w,o){const p=u("openwb-base-button-input"),m=u("openwb-base-alert");return a(),c("div",b,[n.chargePoint.configuration.mode=="pro_plus"?(a(),c("div",k,[d(p,{title:"Ladepunkt aktualisieren","button-text":"Update anfordern",subtype:"success",onButtonClicked:o.triggerUpdate},{help:r(()=>[...t[0]||(t[0]=[i(" Hier können Sie die Aktualisierung der openWB Pro anstoßen. Bitte stellen Sie sicher, dass kein Fahrzeug angesteckt ist. ",-1)])]),_:1},8,["onButtonClicked"]),d(p,{title:"Einstellungen öffnen","button-text":"Zu den Einstellungen",subtype:"success",onButtonClicked:o.openSettings},{help:r(()=>[...t[1]||(t[1]=[i(" Mit diesem Befehl können Sie die Einstellungen der openWB Pro in einem neuen Browser-Tab oder -Fenster öffnen. ",-1)])]),_:1},8,["onButtonClicked"])])):(a(),_(m,{key:1,subtype:"secondary"},{default:r(()=>[i(' Der Ladepunkt-Typ "'+l(n.chargePoint.type)+'" bietet für die Bauart "'+l(o.mode)+'" keine Befehle an. ',1)]),_:1}))])}const S=h(f,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/internal_openwb/commands.vue"]]);export{S as default}; +import{a as g}from"./ChargePointInstallation-7e22d920.js";import{_ as h,u,l as a,m as c,G as d,E as r,B as i,x as _,F as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"ChargePointCommandsInternalOpenwb",mixins:[g],computed:{mode(){switch(this.chargePoint.configuration.mode){case"series":return"openWB series1/2 custom, standard & standard+";case"duo":return"openWB series1/2 Duo";case"socket":return"openWB series1/2 Buchse";case"pro_plus":return"openWB Pro+";default:return this.chargePoint.configuration.mode}}},methods:{async triggerUpdate(){let n=new FormData;n.append("command","update_pro_plus");const t="Die Aktualisierung der openWB Pro+ wird gestartet...";this.$root.postClientMessage(t,"info"),console.debug(location),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/charge_points/internal_openwb/commands.php",n,{timeout:5e3}).then(()=>{const e="Die Aktualisierung der openWB Pro+ wurde erfolgreich gestartet.";this.$root.postClientMessage(e,"success")}).catch(e=>{var s="Aktualisierung fehlgeschlagen!
";e.response?(console.error(e.response.status,e.response.data),s+=e.response.status+": "+e.response.data):e.request?(console.error(e.request),s+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",e.message),s+="Es ist ein unbekannter Fehler aufgetreten."),this.$root.postClientMessage(s,"danger")})},openSettings(){window.open("http://"+location.hostname+":8080","_blank")}}},b={class:"charge-point-commands-internal-openwb"},k={key:0};function B(n,t,e,s,w,o){const p=u("openwb-base-button-input"),m=u("openwb-base-alert");return a(),c("div",b,[n.chargePoint.configuration.mode=="pro_plus"?(a(),c("div",k,[d(p,{title:"Ladepunkt aktualisieren","button-text":"Update anfordern",subtype:"success",onButtonClicked:o.triggerUpdate},{help:r(()=>t[0]||(t[0]=[i(" Hier können Sie die Aktualisierung der openWB Pro anstoßen. Bitte stellen Sie sicher, dass kein Fahrzeug angesteckt ist. ",-1)])),_:1},8,["onButtonClicked"]),d(p,{title:"Einstellungen öffnen","button-text":"Zu den Einstellungen",subtype:"success",onButtonClicked:o.openSettings},{help:r(()=>t[1]||(t[1]=[i(" Mit diesem Befehl können Sie die Einstellungen der openWB Pro in einem neuen Browser-Tab oder -Fenster öffnen. ",-1)])),_:1},8,["onButtonClicked"])])):(a(),_(m,{key:1,subtype:"secondary"},{default:r(()=>[i(' Der Ladepunkt-Typ "'+l(n.chargePoint.type)+'" bietet für die Bauart "'+l(o.mode)+'" keine Befehle an. ',1)]),_:1}))])}const S=h(f,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/internal_openwb/commands.vue"]]);export{S as default}; diff --git a/web/settings/assets/commands-270f1fee.js b/web/settings/assets/commands-c6ddc747.js similarity index 54% rename from web/settings/assets/commands-270f1fee.js rename to web/settings/assets/commands-c6ddc747.js index d30f680d21..65ec38b7d6 100644 --- a/web/settings/assets/commands-270f1fee.js +++ b/web/settings/assets/commands-c6ddc747.js @@ -1 +1 @@ -import{a as d}from"./ChargePointInstallation-81239155.js";import{_ as u,u as c,l,m as g,G as a,E as r,B as p}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const m={name:"ChargePointCommandsOpenwbPro",mixins:[d],methods:{async triggerUpdate(){let t=new FormData;t.append("command","update"),t.append("data",'{"ip_address":"'+this.chargePoint.configuration.ip_address+'"}');const n="Die Aktualisierung der openWB Pro wird gestartet...";this.$root.postClientMessage(n,"info"),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/charge_points/openwb_pro/commands.php",t,{timeout:5e3}).then(()=>{const e="Die Aktualisierung der openWB Pro wurde erfolgreich gestartet.";this.$root.postClientMessage(e,"success")}).catch(e=>{var s="Aktualisierung fehlgeschlagen!
";e.response?(console.error(e.response.status,e.response.data),s+=e.response.status+": "+e.response.data):e.request?(console.error(e.request),s+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",e.message),s+="Es ist ein unbekannter Fehler aufgetreten."),this.$root.postClientMessage(s,"danger")})},openSettings(){window.open("http://"+this.chargePoint.configuration.ip_address,"_blank")}}},h={class:"charge-point-commands-openwb-pro"};function f(t,n,e,s,b,o){const i=c("openwb-base-button-input");return l(),g("div",h,[a(i,{title:"Ladepunkt aktualisieren","button-text":"Update anfordern",subtype:"success",disabled:t.chargePoint.configuration.ip_address==null,onButtonClicked:o.triggerUpdate},{help:r(()=>[...n[0]||(n[0]=[p(" Mit diesem Befehl können Sie die Aktualisierung der openWB Pro anstoßen. Bitte beachten Sie, dass kein Fahrzeug angesteckt ist. ",-1)])]),_:1},8,["disabled","onButtonClicked"]),a(i,{title:"Einstellungen öffnen","button-text":"Zu den Einstellungen",subtype:"success",disabled:t.chargePoint.configuration.ip_address==null,onButtonClicked:o.openSettings},{help:r(()=>[...n[1]||(n[1]=[p(" Mit diesem Befehl können Sie die Einstellungen der openWB Pro in einem neuen Browser-Tab oder -Fenster öffnen. ",-1)])]),_:1},8,["disabled","onButtonClicked"])])}const v=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_pro/commands.vue"]]);export{v as default}; +import{a as d}from"./ChargePointInstallation-7e22d920.js";import{_ as u,u as c,l,m as g,G as a,E as r,B as p}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"ChargePointCommandsOpenwbPro",mixins:[d],methods:{async triggerUpdate(){let t=new FormData;t.append("command","update"),t.append("data",'{"ip_address":"'+this.chargePoint.configuration.ip_address+'"}');const n="Die Aktualisierung der openWB Pro wird gestartet...";this.$root.postClientMessage(n,"info"),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/charge_points/openwb_pro/commands.php",t,{timeout:5e3}).then(()=>{const e="Die Aktualisierung der openWB Pro wurde erfolgreich gestartet.";this.$root.postClientMessage(e,"success")}).catch(e=>{var s="Aktualisierung fehlgeschlagen!
";e.response?(console.error(e.response.status,e.response.data),s+=e.response.status+": "+e.response.data):e.request?(console.error(e.request),s+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",e.message),s+="Es ist ein unbekannter Fehler aufgetreten."),this.$root.postClientMessage(s,"danger")})},openSettings(){window.open("http://"+this.chargePoint.configuration.ip_address,"_blank")}}},h={class:"charge-point-commands-openwb-pro"};function f(t,n,e,s,b,o){const i=c("openwb-base-button-input");return l(),g("div",h,[a(i,{title:"Ladepunkt aktualisieren","button-text":"Update anfordern",subtype:"success",disabled:t.chargePoint.configuration.ip_address==null,onButtonClicked:o.triggerUpdate},{help:r(()=>n[0]||(n[0]=[p(" Mit diesem Befehl können Sie die Aktualisierung der openWB Pro anstoßen. Bitte beachten Sie, dass kein Fahrzeug angesteckt ist. ",-1)])),_:1},8,["disabled","onButtonClicked"]),a(i,{title:"Einstellungen öffnen","button-text":"Zu den Einstellungen",subtype:"success",disabled:t.chargePoint.configuration.ip_address==null,onButtonClicked:o.openSettings},{help:r(()=>n[1]||(n[1]=[p(" Mit diesem Befehl können Sie die Einstellungen der openWB Pro in einem neuen Browser-Tab oder -Fenster öffnen. ",-1)])),_:1},8,["disabled","onButtonClicked"])])}const v=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_pro/commands.vue"]]);export{v as default}; diff --git a/web/settings/assets/consumption_counter-1c9b3251.js b/web/settings/assets/consumption_counter-1c9b3251.js new file mode 100644 index 0000000000..0704e98ee2 --- /dev/null +++ b/web/settings/assets/consumption_counter-1c9b3251.js @@ -0,0 +1 @@ +import{C as d}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as o,l as b,m as c,G as t,E as s,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceOpenwbFlexConsumptionCounter",mixins:[d]},f={class:"device-openwb-flex-consumption-counter"};function g(n,e,w,v,B,x){const l=o("openwb-base-heading"),u=o("openwb-base-alert"),p=o("openwb-base-select-input"),a=o("openwb-base-number-input");return b(),c("div",f,[t(l,null,{default:s(()=>e[2]||(e[2]=[r(" Einstellungen für openWB-Flex Verbrauchszähler ",-1)])),_:1,__:[2]}),t(u,{subtype:"info"},{default:s(()=>e[3]||(e[3]=[r(" Bei saldierenden Zählern (B23) werden die Zählerstände für Einspeisung und Bezug aus dem Zähler ausgelesen. Bei Zählern, die nicht saldierend arbeiten (SDM120, SDM630, SDM72D-M), wird der Zählerstand für den Bezug aus dem Zähler ausgelesen. Eine Messung der Einspeisung ist nicht möglich. ",-1)])),_:1,__:[3]}),t(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:"sdm120",text:"SDM120"},{value:"sdm630",text:"SDM630/SDM72D-M"},{value:"b23",text:"B23"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.version"))},null,8,["model-value"]),t(a,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":n.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.id"))},null,8,["model-value"])])}const z=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/consumption_counter.vue"]]);export{z as default}; diff --git a/web/settings/assets/consumption_counter-7647f4a4.js b/web/settings/assets/consumption_counter-7647f4a4.js deleted file mode 100644 index a24c725cac..0000000000 --- a/web/settings/assets/consumption_counter-7647f4a4.js +++ /dev/null @@ -1 +0,0 @@ -import{C as d}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as o,l as b,m as c,G as t,E as s,B as r}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceOpenwbFlexConsumptionCounter",mixins:[d]},f={class:"device-openwb-flex-consumption-counter"};function g(n,e,w,v,B,x){const l=o("openwb-base-heading"),u=o("openwb-base-alert"),p=o("openwb-base-select-input"),a=o("openwb-base-number-input");return b(),c("div",f,[t(l,null,{default:s(()=>[...e[2]||(e[2]=[r(" Einstellungen für openWB-Flex Verbrauchszähler ",-1)])]),_:1}),t(u,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[r(" Bei saldierenden Zählern (B23) werden die Zählerstände für Einspeisung und Bezug aus dem Zähler ausgelesen. Bei Zählern, die nicht saldierend arbeiten (SDM120, SDM630, SDM72D-M), wird der Zählerstand für den Bezug aus dem Zähler ausgelesen. Eine Messung der Einspeisung ist nicht möglich. ",-1)])]),_:1}),t(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:"sdm120",text:"SDM120"},{value:"sdm630",text:"SDM630/SDM72D-M"},{value:"b23",text:"B23"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.version"))},null,8,["model-value"]),t(a,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":n.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.id"))},null,8,["model-value"])])}const z=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/consumption_counter.vue"]]);export{z as default}; diff --git a/web/settings/assets/counter-005ba391.js b/web/settings/assets/counter-005ba391.js deleted file mode 100644 index 633620d97c..0000000000 --- a/web/settings/assets/counter-005ba391.js +++ /dev/null @@ -1 +0,0 @@ -import{C as d}from"./HardwareInstallation-35a2a562.js";import{_ as a,u,l as f,m as g,G as l,E as o,B as t,A as e,F as r}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceMqttCounter",mixins:[d]},B={class:"device-mqtt-counter"};function k(i,n,z,x,W,v){const p=u("openwb-base-heading"),s=u("openwb-base-copy-to-clipboard"),m=u("openwb-base-alert");return f(),g("div",B,[l(p,null,{default:o(()=>[...n[0]||(n[0]=[t(" Einstellungen für MQTT Zähler ",-1)])]),_:1}),l(m,{subtype:"info"},{default:o(()=>[n[41]||(n[41]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/power ",1)]),_:1}),n[1]||(n[1]=e("br",null,null,-1)),n[2]||(n[2]=t(" Bezugsleistung in Watt, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, positiv Bezug, negativ Einspeisung",-1)),n[3]||(n[3]=e("br",null,null,-1)),n[4]||(n[4]=t(" Beispiel: ",-1)),n[5]||(n[5]=e("span",{class:"text-info"},"-123.45",-1))])]),n[42]||(n[42]=t(" Falls keine Werte für die Zählerstände übermittelt werden, berechnet openWB die Zählerstände anhand der Leistung. ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/imported ",1)]),_:1}),n[6]||(n[6]=e("br",null,null,-1)),n[7]||(n[7]=t(" Bezogene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),n[8]||(n[8]=e("br",null,null,-1)),n[9]||(n[9]=t(" Beispiel: ",-1)),n[10]||(n[10]=e("span",{class:"text-info"},"123.45",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/exported ",1)]),_:1}),n[11]||(n[11]=e("br",null,null,-1)),n[12]||(n[12]=t(" Eingespeiste Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),n[13]||(n[13]=e("br",null,null,-1)),n[14]||(n[14]=t(" Beispiel: ",-1)),n[15]||(n[15]=e("span",{class:"text-info"},"123.45",-1))])]),n[43]||(n[43]=t(" Ströme je Phase sind für phasenbasiertes Lastmanagement unbedingt erforderlich, sonst erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung am EVU-Punkt: ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/currents ",1)]),_:1}),n[16]||(n[16]=e("br",null,null,-1)),n[17]||(n[17]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),n[18]||(n[18]=e("br",null,null,-1)),n[19]||(n[19]=t(" Beispiel: ",-1)),n[20]||(n[20]=e("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])]),n[44]||(n[44]=t(" Die Netzfrequenz, Spannungen, Leistungen und Leistungsfaktoren jeder Phase werden ausschließlich zu Anzeigezwecken verwendet: ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/frequency ",1)]),_:1}),n[21]||(n[21]=e("br",null,null,-1)),n[22]||(n[22]=t(" Netzfrequenz in Hz, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen",-1)),n[23]||(n[23]=e("br",null,null,-1)),n[24]||(n[24]=t(" Beispiel: ",-1)),n[25]||(n[25]=e("span",{class:"text-info"},"50.12",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/voltages ",1)]),_:1}),n[26]||(n[26]=e("br",null,null,-1)),n[27]||(n[27]=t(" Array mit den Spannungen je Phase in Volt, mit Nachkommastellen (Float)",-1)),n[28]||(n[28]=e("br",null,null,-1)),n[29]||(n[29]=t(" Beispiel: ",-1)),n[30]||(n[30]=e("span",{class:"text-info"},"[222.2,223.3,222.3]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/powers ",1)]),_:1}),n[31]||(n[31]=e("br",null,null,-1)),n[32]||(n[32]=t(" Array mit den Leistungen je Phase in Watt, mit Nachkommastellen (Float)",-1)),n[33]||(n[33]=e("br",null,null,-1)),n[34]||(n[34]=t(" Beispiel: ",-1)),n[35]||(n[35]=e("span",{class:"text-info"},"[12.3,23.4,-12.3]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/power_factors ",1)]),_:1}),n[36]||(n[36]=e("br",null,null,-1)),n[37]||(n[37]=t(" Array mit den Leistungsfaktoren je Phase, mit Nachkommastellen (Float), Wertebereich -1 bis 1",-1)),n[38]||(n[38]=e("br",null,null,-1)),n[39]||(n[39]=t(" Beispiel: ",-1)),n[40]||(n[40]=e("span",{class:"text-info"},"[0.95,0.96,-0.95]",-1))])])]),_:1})])}const A=a(b,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/counter.vue"]]);export{A as default}; diff --git a/web/settings/assets/counter-01d8e9a4.js b/web/settings/assets/counter-01d8e9a4.js new file mode 100644 index 0000000000..c8696db17b --- /dev/null +++ b/web/settings/assets/counter-01d8e9a4.js @@ -0,0 +1 @@ +import{C as r}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as t,l,m as u,G as n,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbEvukitCounter",mixins:[r]},_={class:"device-openwb-evukit-counter"};function v(o,e,f,b,w,x){const i=t("openwb-base-heading"),s=t("openwb-base-select-input");return l(),u("div",_,[n(i,null,{default:m(()=>e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Zähler ",-1)])),_:1,__:[1]}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:3,text:"B23"},{value:1,text:"Lovato"},{value:0,text:"MPM3PM"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.version"))},null,8,["model-value"])])}const $=a(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/counter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/counter-12125a94.js b/web/settings/assets/counter-12125a94.js deleted file mode 100644 index 31658344e9..0000000000 --- a/web/settings/assets/counter-12125a94.js +++ /dev/null @@ -1 +0,0 @@ -import{C as r}from"./HardwareInstallation-35a2a562.js";import{_ as n,u as s,l as i,m as a,G as c,E as p,B as o,A as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceKostalPlenticoreCounter",mixins:[r]},u={class:"device-kostal-plenticore-counter"};function _(d,e,f,b,h,v){const t=s("openwb-base-alert");return i(),a("div",u,[c(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[o(" Wenn der Zähler im Hausverbrauchs-Zweig installiert ist, muss die Hierarchie wie im ",-1),l("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"},"Wiki für Hausverbrauchs-Zähler",-1),o(" beschrieben, angeordnet werden. ",-1)])]),_:1})])}const $=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/counter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/counter-1346ff10.js b/web/settings/assets/counter-1346ff10.js new file mode 100644 index 0000000000..070935af13 --- /dev/null +++ b/web/settings/assets/counter-1346ff10.js @@ -0,0 +1 @@ +import{C as d}from"./HardwareInstallation-be759b0c.js";import{_ as a,u,l as f,m as g,G as l,E as o,B as t,A as e,F as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceMqttCounter",mixins:[d]},B={class:"device-mqtt-counter"};function k(i,n,z,x,W,v){const p=u("openwb-base-heading"),s=u("openwb-base-copy-to-clipboard"),m=u("openwb-base-alert");return f(),g("div",B,[l(p,null,{default:o(()=>n[0]||(n[0]=[t(" Einstellungen für MQTT Zähler ",-1)])),_:1,__:[0]}),l(m,{subtype:"info"},{default:o(()=>[n[41]||(n[41]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/power ",1)]),_:1}),n[1]||(n[1]=e("br",null,null,-1)),n[2]||(n[2]=t(" Bezugsleistung in Watt, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, positiv Bezug, negativ Einspeisung",-1)),n[3]||(n[3]=e("br",null,null,-1)),n[4]||(n[4]=t(" Beispiel: ",-1)),n[5]||(n[5]=e("span",{class:"text-info"},"-123.45",-1))])]),n[42]||(n[42]=t(" Falls keine Werte für die Zählerstände übermittelt werden, berechnet openWB die Zählerstände anhand der Leistung. ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/imported ",1)]),_:1}),n[6]||(n[6]=e("br",null,null,-1)),n[7]||(n[7]=t(" Bezogene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),n[8]||(n[8]=e("br",null,null,-1)),n[9]||(n[9]=t(" Beispiel: ",-1)),n[10]||(n[10]=e("span",{class:"text-info"},"123.45",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/exported ",1)]),_:1}),n[11]||(n[11]=e("br",null,null,-1)),n[12]||(n[12]=t(" Eingespeiste Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),n[13]||(n[13]=e("br",null,null,-1)),n[14]||(n[14]=t(" Beispiel: ",-1)),n[15]||(n[15]=e("span",{class:"text-info"},"123.45",-1))])]),n[43]||(n[43]=t(" Ströme je Phase sind für phasenbasiertes Lastmanagement unbedingt erforderlich, sonst erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung am EVU-Punkt: ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/currents ",1)]),_:1}),n[16]||(n[16]=e("br",null,null,-1)),n[17]||(n[17]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),n[18]||(n[18]=e("br",null,null,-1)),n[19]||(n[19]=t(" Beispiel: ",-1)),n[20]||(n[20]=e("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])]),n[44]||(n[44]=t(" Die Netzfrequenz, Spannungen, Leistungen und Leistungsfaktoren jeder Phase werden ausschließlich zu Anzeigezwecken verwendet: ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/frequency ",1)]),_:1}),n[21]||(n[21]=e("br",null,null,-1)),n[22]||(n[22]=t(" Netzfrequenz in Hz, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen",-1)),n[23]||(n[23]=e("br",null,null,-1)),n[24]||(n[24]=t(" Beispiel: ",-1)),n[25]||(n[25]=e("span",{class:"text-info"},"50.12",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/voltages ",1)]),_:1}),n[26]||(n[26]=e("br",null,null,-1)),n[27]||(n[27]=t(" Array mit den Spannungen je Phase in Volt, mit Nachkommastellen (Float)",-1)),n[28]||(n[28]=e("br",null,null,-1)),n[29]||(n[29]=t(" Beispiel: ",-1)),n[30]||(n[30]=e("span",{class:"text-info"},"[222.2,223.3,222.3]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/powers ",1)]),_:1}),n[31]||(n[31]=e("br",null,null,-1)),n[32]||(n[32]=t(" Array mit den Leistungen je Phase in Watt, mit Nachkommastellen (Float)",-1)),n[33]||(n[33]=e("br",null,null,-1)),n[34]||(n[34]=t(" Beispiel: ",-1)),n[35]||(n[35]=e("span",{class:"text-info"},"[12.3,23.4,-12.3]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/power_factors ",1)]),_:1}),n[36]||(n[36]=e("br",null,null,-1)),n[37]||(n[37]=t(" Array mit den Leistungsfaktoren je Phase, mit Nachkommastellen (Float), Wertebereich -1 bis 1",-1)),n[38]||(n[38]=e("br",null,null,-1)),n[39]||(n[39]=t(" Beispiel: ",-1)),n[40]||(n[40]=e("span",{class:"text-info"},"[0.95,0.96,-0.95]",-1))])])]),_:1,__:[41,42,43,44]})])}const A=a(b,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/counter.vue"]]);export{A as default}; diff --git a/web/settings/assets/counter-165ce997.js b/web/settings/assets/counter-165ce997.js new file mode 100644 index 0000000000..0767d56bf2 --- /dev/null +++ b/web/settings/assets/counter-165ce997.js @@ -0,0 +1 @@ +import{C as d}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as n,l as u,m as c,G as r,E as i,B as o,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceDiscovergyCounter",mixins:[d]},f={class:"device-discovergy-counter"};function g(t,e,v,b,w,x){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return u(),c("div",f,[r(s,null,{default:i(()=>e[1]||(e[1]=[o(" Einstellungen für Discovergy Zähler ",-1)])),_:1,__:[1]}),r(a,{title:"Meter-ID",required:"","model-value":t.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.meter_id"))},{help:i(()=>e[2]||(e[2]=[o(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),l("a",{href:"https://api.discovergy.com/public/v1/meters",target:"_blank",rel:"noopener noreferrer"}," https://api.discovergy.com/public/v1/meters ",-1),o(" aufrufen und dort Benutzername und Passwort eingeben. Hier wird nun u.a. die ID des Zählers angezeigt. ",-1)])),_:1},8,["model-value"])])}const E=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-189db4df.js b/web/settings/assets/counter-189db4df.js new file mode 100644 index 0000000000..f63bc0636e --- /dev/null +++ b/web/settings/assets/counter-189db4df.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as t,l as _,m as c,G as o,E as s,B as l,A as n,F as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceShellyCounter",mixins:[p]},f={class:"device-shelly-counter"},h={class:"small"};function b(r,e,g,y,v,w){const i=t("openwb-base-heading"),a=t("openwb-base-alert");return _(),c("div",f,[o(i,null,{default:s(()=>[e[0]||(e[0]=l(" Einstellungen für Shelly Zähler ",-1)),n("span",h,"(Modul: "+u(r.$options.name)+")",1)]),_:1,__:[0]}),o(a,{subtype:"info"},{default:s(()=>e[1]||(e[1]=[n("span",{class:"text-danger"}," Als EVU-Zähler werden nur dreiphasige Shelly unterstützt (z.B. Shelly 3EM, Shelly Pro 3EM)",-1),n("br",null,null,-1),l(" Diese Komponente benötigt keine Einstellungen. ",-1)])),_:1,__:[1]})])}const D=m(d,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/shelly/shelly/counter.vue"]]);export{D as default}; diff --git a/web/settings/assets/counter-18ecc868.js b/web/settings/assets/counter-18ecc868.js deleted file mode 100644 index f120442ce5..0000000000 --- a/web/settings/assets/counter-18ecc868.js +++ /dev/null @@ -1 +0,0 @@ -import{C as u}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as s,l as p,m as g,G as i,E as a,B as n,A as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const h={name:"DeviceHttpCounter",mixins:[u]},b={class:"device-http-counter"};function f(t,e,w,v,k,S){const d=s("openwb-base-heading"),o=s("openwb-base-text-input");return p(),g("div",b,[i(d,null,{default:a(()=>[...e[6]||(e[6]=[n(" Einstellungen für Http Zähler ",-1)])]),_:1}),i(o,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.power_path"))},{help:a(()=>[...e[7]||(e[7]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Zählerstand Bezug",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.imported_path,"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateConfiguration(r,"configuration.imported_path"))},{help:a(()=>[...e[8]||(e[8]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Zählerstand Einspeisung",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateConfiguration(r,"configuration.exported_path"))},{help:a(()=>[...e[9]||(e[9]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 1",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l1_path,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateConfiguration(r,"configuration.current_l1_path"))},{help:a(()=>[...e[10]||(e[10]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 1. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 2",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l2_path,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateConfiguration(r,"configuration.current_l2_path"))},{help:a(()=>[...e[11]||(e[11]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 2. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 3",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l3_path,"onUpdate:modelValue":e[5]||(e[5]=r=>t.updateConfiguration(r,"configuration.current_l3_path"))},{help:a(()=>[...e[12]||(e[12]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 3. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"])])}const F=m(h,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/counter.vue"]]);export{F as default}; diff --git a/web/settings/assets/counter-1f565ee4.js b/web/settings/assets/counter-1f565ee4.js new file mode 100644 index 0000000000..837a83d21e --- /dev/null +++ b/web/settings/assets/counter-1f565ee4.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as l,u as t,l as m,m as d,G as o,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceVirtualCounter",mixins:[p]},_={class:"device-virtual-counter"};function f(n,e,b,g,v,h){const s=t("openwb-base-heading"),a=t("openwb-base-number-input");return m(),d("div",_,[o(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für virtuelle Zähler ",-1)])),_:1,__:[1]}),o(a,{title:"Zusätzlicher Verbrauch",min:0,step:.05,unit:"kW",required:"","model-value":n.component.configuration.external_consumption/1e3,"onUpdate:modelValue":e[0]||(e[0]=u=>n.updateConfiguration(u*1e3,"configuration.external_consumption"))},{help:i(()=>e[2]||(e[2]=[r(" Die hier angegebene Leistung wird pauschal zu dem Leistungen der hinter dem Zähler liegenden Komponenten addiert. Damit lässt sich z. B. eine Reserve für nicht erfasste Verbraucher einstellen. ",-1)])),_:1},8,["model-value"])])}const E=l(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/virtual/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-21bc2bc2.js b/web/settings/assets/counter-21bc2bc2.js new file mode 100644 index 0000000000..8e90d0f49a --- /dev/null +++ b/web/settings/assets/counter-21bc2bc2.js @@ -0,0 +1 @@ +import{C as s}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as n,l as m,m as u,G as t,E as l,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceAvmCounter",mixins:[s]},_={class:"device-avm-counter"};function f(o,e,v,b,x,g){const i=n("openwb-base-heading"),r=n("openwb-base-text-input");return m(),u("div",_,[t(i,null,{default:l(()=>e[1]||(e[1]=[c(" Einstellungen für AVM Fritz!Box Zähler ",-1)])),_:1,__:[1]}),t(r,{title:"Gerätename in der Fritz!Box",required:"","model-value":o.component.configuration.name,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.name"))},null,8,["model-value"])])}const A=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/avm/avm/counter.vue"]]);export{A as default}; diff --git a/web/settings/assets/counter-21ec5341.js b/web/settings/assets/counter-21ec5341.js deleted file mode 100644 index 05736b7e35..0000000000 --- a/web/settings/assets/counter-21ec5341.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-35a2a562.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceFoxEssCounter",mixins:[p]},c={class:"device-fox_ess-counter"};function f(o,e,b,x,v,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für FoxEss Zähler ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const F=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/counter.vue"]]);export{F as default}; diff --git a/web/settings/assets/counter-22e7f700.js b/web/settings/assets/counter-22e7f700.js deleted file mode 100644 index 4e155682db..0000000000 --- a/web/settings/assets/counter-22e7f700.js +++ /dev/null @@ -1 +0,0 @@ -import{C as a}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as t,l as p,m as u,G as n,E as l,B as d}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmartMeCounter",mixins:[a]},_={class:"device-smart-me-counter"};function f(o,e,b,v,g,x){const r=t("openwb-base-heading"),i=t("openwb-base-text-input");return p(),u("div",_,[n(r,null,{default:l(()=>[...e[1]||(e[1]=[d(" Einstellungen für smart-me Zähler ",-1)])]),_:1}),n(i,{title:"Geräte-ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const G=m(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/counter.vue"]]);export{G as default}; diff --git a/web/settings/assets/counter-2438b11a.js b/web/settings/assets/counter-2438b11a.js new file mode 100644 index 0000000000..6dd5e9f119 --- /dev/null +++ b/web/settings/assets/counter-2438b11a.js @@ -0,0 +1 @@ +import{C as t}from"./HardwareInstallation-be759b0c.js";import{_ as n,u as r,l as s,m as a,G as i,E as p,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceCarloGavazziCounter",mixins:[t]},_={class:"device-carlo-gavazzi-counter"};function l(u,e,d,v,f,z){const o=r("openwb-base-alert");return s(),a("div",_,[i(o,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[c(" ModbusTCP muss aktiviert sein. ",-1)])),_:1,__:[0]})])}const G=n(m,[["render",l],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/carlo_gavazzi/carlo_gavazzi/counter.vue"]]);export{G as default}; diff --git a/web/settings/assets/counter-2aac942b.js b/web/settings/assets/counter-2aac942b.js new file mode 100644 index 0000000000..1698abb7f5 --- /dev/null +++ b/web/settings/assets/counter-2aac942b.js @@ -0,0 +1 @@ +import{C as o}from"./HardwareInstallation-be759b0c.js";import{_ as s,u as n,l as r,m as i,G as a,E as p,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceKostalSemCounter",mixins:[o]},l={class:"device-kostal-sem-counter"};function _(d,e,u,f,b,h){const t=n("openwb-base-alert");return r(),i("div",l,[a(t,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[c(" Diese Komponente ist nur richtig, wenn der Zähler NICHT direkt am Wechselrichter (Kostal Plenticore) angeschlossen ist und daher separat abgefragt werden muss. ",-1)])),_:1,__:[0]})])}const N=s(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_sem/counter.vue"]]);export{N as default}; diff --git a/web/settings/assets/counter-2d3ea68b.js b/web/settings/assets/counter-2d3ea68b.js deleted file mode 100644 index 265d10ec31..0000000000 --- a/web/settings/assets/counter-2d3ea68b.js +++ /dev/null @@ -1 +0,0 @@ -import{C as d}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as n,l as u,m as c,G as r,E as i,B as o,A as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceDiscovergyCounter",mixins:[d]},g={class:"device-discovergy-counter"};function _(t,e,v,b,w,x){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return u(),c("div",g,[r(s,null,{default:i(()=>[...e[1]||(e[1]=[o(" Einstellungen für Discovergy Zähler ",-1)])]),_:1}),r(a,{title:"Meter-ID",required:"","model-value":t.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.meter_id"))},{help:i(()=>[...e[2]||(e[2]=[o(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),l("a",{href:"https://api.discovergy.com/public/v1/meters",target:"_blank",rel:"noopener noreferrer"}," https://api.discovergy.com/public/v1/meters ",-1),o(" aufrufen und dort Benutzername und Passwort eingeben. Hier wird nun u.a. die ID des Zählers angezeigt. ",-1)])]),_:1},8,["model-value"])])}const E=m(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-2dd2fa82.js b/web/settings/assets/counter-2dd2fa82.js deleted file mode 100644 index 7d44813bc0..0000000000 --- a/web/settings/assets/counter-2dd2fa82.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-35a2a562.js";import{_ as u,u as t,l,m as d,G as r,E as i,B as n,A as c}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSmahmCounter",mixins:[p]},f={class:"device-smahm-counter"};function b(o,e,g,v,M,h){const s=t("openwb-base-heading"),a=t("openwb-base-number-input");return l(),d("div",f,[r(s,null,{default:i(()=>[...e[1]||(e[1]=[n(" Einstellungen für SMA-HM/EM Zähler ",-1)])]),_:1}),r(a,{title:"Seriennummer","model-value":o.component.configuration.serials,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.serials"))},{help:i(()=>[...e[2]||(e[2]=[n(" Eine Seriennummer ist nur erforderlich, wenn mehrere SMA HomeManager in Betrieb sind.",-1),c("br",null,null,-1),n(" Funktioniert auch mit Energy Meter anstatt Home Manager. ",-1)])]),_:1},8,["model-value"])])}const A=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_shm/counter.vue"]]);export{A as default}; diff --git a/web/settings/assets/counter-303bf50e.js b/web/settings/assets/counter-303bf50e.js deleted file mode 100644 index 3b968e924a..0000000000 --- a/web/settings/assets/counter-303bf50e.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-35a2a562.js";import{_ as a,u as t,l as m,m as l,G as i,E as d,B as c}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceVictronCounter",mixins:[p]},_={class:"device-victron-counter"};function f(o,e,g,v,C,V){const r=t("openwb-base-heading"),u=t("openwb-base-number-input"),s=t("openwb-base-button-group-input");return m(),l("div",_,[i(r,null,{default:d(()=>[...e[2]||(e[2]=[c(" Einstellungen für Victron Zähler ",-1)])]),_:1}),i(u,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(s,{title:"Messgerät",buttons:[{buttonValue:!1,text:"AC-In Victron GX"},{buttonValue:!0,text:"Energy Meter"}],"model-value":o.component.configuration.energy_meter,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.energy_meter"))},null,8,["model-value"])])}const G=a(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/counter.vue"]]);export{G as default}; diff --git a/web/settings/assets/counter-318086b9.js b/web/settings/assets/counter-318086b9.js deleted file mode 100644 index a9e32c33d5..0000000000 --- a/web/settings/assets/counter-318086b9.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-35a2a562.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOrnoCounter",mixins:[p]},_={class:"device-orno-counter"};function b(e,o,f,v,g,C){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",_,[t(r,null,{default:d(()=>[...o[1]||(o[1]=[l(" Einstellungen für Orno WE-514 Zähler ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":e.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[0]||(o[0]=s=>e.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const M=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/orno/orno/counter.vue"]]);export{M as default}; diff --git a/web/settings/assets/counter-32894ee7.js b/web/settings/assets/counter-32894ee7.js new file mode 100644 index 0000000000..8788662956 --- /dev/null +++ b/web/settings/assets/counter-32894ee7.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOrnoCounter",mixins:[p]},_={class:"device-orno-counter"};function b(e,o,f,v,g,C){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",_,[t(r,null,{default:d(()=>o[1]||(o[1]=[l(" Einstellungen für Orno WE-514 Zähler ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":e.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[0]||(o[0]=s=>e.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const M=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/orno/orno/counter.vue"]]);export{M as default}; diff --git a/web/settings/assets/counter-332c42a7.js b/web/settings/assets/counter-332c42a7.js new file mode 100644 index 0000000000..1015ec4739 --- /dev/null +++ b/web/settings/assets/counter-332c42a7.js @@ -0,0 +1 @@ +import{C as o}from"./HardwareInstallation-be759b0c.js";import{_ as n,u as i,l as s,m as a,G as r,E as p,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceJanitzaBat",mixins:[o]},_={class:"device-janitza-counter"};function u(d,e,f,l,v,b){const t=i("openwb-base-alert");return s(),a("div",_,[r(t,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[c(' ModbusTCP muss im Janitza auf Port 502 aktiv und die ID auf "1" eingestellt sein. ',-1)])),_:1,__:[0]})])}const D=n(m,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/janitza/janitza/counter.vue"]]);export{D as default}; diff --git a/web/settings/assets/counter-37d67776.js b/web/settings/assets/counter-37d67776.js new file mode 100644 index 0000000000..bb023193b6 --- /dev/null +++ b/web/settings/assets/counter-37d67776.js @@ -0,0 +1 @@ +import{C as m}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as o,l as d,m as l,G as t,E as i,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceEnphaseCounter",mixins:[m]},_={class:"device-enphase-counter"};function f(n,e,b,v,g,E){const p=o("openwb-base-heading"),r=o("openwb-base-number-input");return d(),l("div",_,[t(p,null,{default:i(()=>e[1]||(e[1]=[s(" Einstellungen für Enphase Envoy / IQ Gateway Zähler ",-1)])),_:1,__:[1]}),t(r,{title:"EID",required:"","model-value":n.component.configuration.eid,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.eid"))},{help:i(()=>e[2]||(e[2]=[s(' EID für "net-consumption" ',-1)])),_:1},8,["model-value"])])}const k=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/counter.vue"]]);export{k as default}; diff --git a/web/settings/assets/counter-3c133de8.js b/web/settings/assets/counter-3c133de8.js new file mode 100644 index 0000000000..65d6782434 --- /dev/null +++ b/web/settings/assets/counter-3c133de8.js @@ -0,0 +1 @@ +import{C as a}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as n,l as d,m as c,G as t,E as i,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceMTecCounter",mixins:[a]},_={class:"device-mtec-counter"};function b(o,e,f,v,g,C){const r=n("openwb-base-heading"),m=n("openwb-base-number-input");return d(),c("div",_,[t(r,null,{default:i(()=>e[1]||(e[1]=[s(" Einstellungen für M-Tec Zähler ",-1)])),_:1,__:[1]}),t(m,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>e[2]||(e[2]=[s(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])),_:1},8,["model-value"])])}const k=u(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/counter.vue"]]);export{k as default}; diff --git a/web/settings/assets/counter-3e1bf7f1.js b/web/settings/assets/counter-3e1bf7f1.js new file mode 100644 index 0000000000..2beeeb1c19 --- /dev/null +++ b/web/settings/assets/counter-3e1bf7f1.js @@ -0,0 +1 @@ +import{C as t}from"./HardwareInstallation-be759b0c.js";import{_ as o,u as s,l as i,m as r,G as a,E as p,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSonnenbatterieCounter",mixins:[t]},_={class:"device-sonnenbatterie-counter"};function d(l,e,u,f,b,v){const n=s("openwb-base-alert");return i(),r("div",_,[a(n,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[m(" Mit diesem Modul ist kein phasenbasiertes Lastmanagement möglich, da keine Ströme der einzelnen Phasen gemessen werden. ",-1)])),_:1,__:[0]})])}const E=o(c,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-42cbd56b.js b/web/settings/assets/counter-42cbd56b.js deleted file mode 100644 index a5442991b0..0000000000 --- a/web/settings/assets/counter-42cbd56b.js +++ /dev/null @@ -1 +0,0 @@ -import{C as u}from"./HardwareInstallation-35a2a562.js";import{_ as l,u as t,l as m,m as c,G as r,E as i,B as n,A as s}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const f={name:"DevicePowerfoxCounter",mixins:[u]},b={class:"device-powerfox-counter"};function g(o,e,w,_,x,h){const a=t("openwb-base-heading"),p=t("openwb-base-text-input");return m(),c("div",b,[r(a,null,{default:i(()=>[...e[1]||(e[1]=[n(" Einstellungen für Powerfox Zähler ",-1)])]),_:1}),r(p,{title:"ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=d=>o.updateConfiguration(d,"configuration.id"))},{help:i(()=>[...e[2]||(e[2]=[n(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),s("a",{href:"https://backend.powerfox.energy/api/2.0/my/all/devices",target:"_blank",rel:"noopener noreferrer"}," https://backend.powerfox.energy/api/2.0/my/all/devices ",-1),n(" aufrufen und dort Benutzername und Passwort eingeben. Die DeviceID ist exakt so einzutragen, wie in der Antwort des Servers. Das bedeutet insbesondere auch, die Groß-/Kleinschreibung ist zu beachten! In dem Feld ist nur die Zeichenfolge direkt hinter ",-1),s("span",{class:"font-weight-bold text-monospace",style:{display:"contents"}},' "DeviceID" ',-1),n(" ohne den Doppelpunkt und Anführungszeichen einzutragen. ",-1)])]),_:1},8,["model-value"])])}const V=l(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/counter.vue"]]);export{V as default}; diff --git a/web/settings/assets/counter-46dc9236.js b/web/settings/assets/counter-46dc9236.js deleted file mode 100644 index 817fdf5bae..0000000000 --- a/web/settings/assets/counter-46dc9236.js +++ /dev/null @@ -1 +0,0 @@ -import{C as s}from"./HardwareInstallation-35a2a562.js";import{_ as p,u as n,l as m,m as u,G as t,E as l,B as c}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceAvmCounter",mixins:[s]},_={class:"device-avm-counter"};function f(o,e,v,b,x,g){const i=n("openwb-base-heading"),r=n("openwb-base-text-input");return m(),u("div",_,[t(i,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für AVM Fritz!Box Zähler ",-1)])]),_:1}),t(r,{title:"Gerätename in der Fritz!Box",required:"","model-value":o.component.configuration.name,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.name"))},null,8,["model-value"])])}const A=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/avm/avm/counter.vue"]]);export{A as default}; diff --git a/web/settings/assets/counter-487594bd.js b/web/settings/assets/counter-487594bd.js deleted file mode 100644 index 5e141c1414..0000000000 --- a/web/settings/assets/counter-487594bd.js +++ /dev/null @@ -1 +0,0 @@ -import{C as m}from"./HardwareInstallation-35a2a562.js";import{_ as u,u as n,l as d,m as l,G as t,E as i,B as r}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSigenergyCounter",mixins:[m]},_={class:"device-sigenergy-counter"};function c(o,e,b,f,v,C){const s=n("openwb-base-heading"),p=n("openwb-base-number-input");return d(),l("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für Sigenergy Zähler ",-1)])]),_:1}),t(p,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[r(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])]),_:1},8,["model-value"])])}const V=u(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/counter.vue"]]);export{V as default}; diff --git a/web/settings/assets/counter-4b7a987f.js b/web/settings/assets/counter-4b7a987f.js deleted file mode 100644 index 331f8630a4..0000000000 --- a/web/settings/assets/counter-4b7a987f.js +++ /dev/null @@ -1 +0,0 @@ -import{C as s}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as n,l as u,m as p,G as t,E as d,B as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceHuaweiSmartLoggerCounter",mixins:[s]},_={class:"device-huawei-smart-logger-counter"};function g(o,e,b,f,w,v){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return u(),p("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Zähler ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const H=m(c,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/counter.vue"]]);export{H as default}; diff --git a/web/settings/assets/counter-4baa81b9.js b/web/settings/assets/counter-4baa81b9.js deleted file mode 100644 index 0b6e13b024..0000000000 --- a/web/settings/assets/counter-4baa81b9.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-35a2a562.js";import{_ as a,u as n,l as m,m as u,G as t,E as l,B as d}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolisCounter",mixins:[p]},_={class:"device-solis-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:l(()=>[...e[1]||(e[1]=[d(" Einstellungen für Solis Zähler ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const M=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/counter.vue"]]);export{M as default}; diff --git a/web/settings/assets/counter-4d76f760.js b/web/settings/assets/counter-4d76f760.js deleted file mode 100644 index f30defb102..0000000000 --- a/web/settings/assets/counter-4d76f760.js +++ /dev/null @@ -1 +0,0 @@ -import{C as d}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as o,l as b,m as c,G as t,E as r,B as s}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceOpenwbFlexCounter",mixins:[d]},_={class:"device-openwb-flex-counter"};function v(n,e,w,g,M,x){const l=o("openwb-base-heading"),a=o("openwb-base-alert"),p=o("openwb-base-select-input"),u=o("openwb-base-number-input");return b(),c("div",_,[t(l,null,{default:r(()=>[...e[2]||(e[2]=[s(" Einstellungen für openWB-Flex Zähler ",-1)])]),_:1}),t(a,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[s(" Bei saldierenden Zählern (MPM3PM, B23) werden die Zählerstände für Einspeisung und Bezug aus dem Zähler ausgelesen. Bei Zählern, die nicht saldierend arbeiten (Lovato, SDM630, SDM72D-M), werden die Zählerstände von der openWB berechnet. ",-1)])]),_:1}),t(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:3,text:"B23"},{value:1,text:"Lovato"},{value:0,text:"MPM3PM"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.version"))},null,8,["model-value"]),t(u,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":n.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.id"))},null,8,["model-value"])])}const $=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/counter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/counter-537c4dfd.js b/web/settings/assets/counter-537c4dfd.js deleted file mode 100644 index 5118bd9f44..0000000000 --- a/web/settings/assets/counter-537c4dfd.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-35a2a562.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceDeyeCounter",mixins:[p]},_={class:"device-deye-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Deye Zähler ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const k=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/counter.vue"]]);export{k as default}; diff --git a/web/settings/assets/counter-57c49ae6.js b/web/settings/assets/counter-57c49ae6.js new file mode 100644 index 0000000000..85699f4d8e --- /dev/null +++ b/web/settings/assets/counter-57c49ae6.js @@ -0,0 +1 @@ +import{C as r}from"./HardwareInstallation-be759b0c.js";import{_ as s,u as n,l as i,m as a,G as p,E as c,B as o,A as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceKostalPikoCounter",mixins:[r]},u={class:"device-kostal-piko-counter"};function _(d,e,f,b,h,k){const t=n("openwb-base-alert");return i(),a("div",u,[p(t,{subtype:"info"},{default:c(()=>e[0]||(e[0]=[o(" Wenn der Zähler im Hausverbrauchs-Zweig installiert ist, muss die Hierarchie wie im ",-1),m("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"},"Wiki für Hausverbrauchs-Zähler",-1),o(" beschrieben, angeordnet werden. ",-1)])),_:1,__:[0]})])}const $=s(l,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/counter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/counter-5aade8ee.js b/web/settings/assets/counter-5aade8ee.js deleted file mode 100644 index 4e328a2b0a..0000000000 --- a/web/settings/assets/counter-5aade8ee.js +++ /dev/null @@ -1 +0,0 @@ -import{C as r}from"./HardwareInstallation-35a2a562.js";import{_ as s,u as n,l as i,m as a,G as p,E as c,B as o,A as m}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceKostalPikoCounter",mixins:[r]},u={class:"device-kostal-piko-counter"};function _(d,e,f,b,h,k){const t=n("openwb-base-alert");return i(),a("div",u,[p(t,{subtype:"info"},{default:c(()=>[...e[0]||(e[0]=[o(" Wenn der Zähler im Hausverbrauchs-Zweig installiert ist, muss die Hierarchie wie im ",-1),m("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"},"Wiki für Hausverbrauchs-Zähler",-1),o(" beschrieben, angeordnet werden. ",-1)])]),_:1})])}const $=s(l,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/counter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/counter-65d7531d.js b/web/settings/assets/counter-65d7531d.js deleted file mode 100644 index dc37e19ffe..0000000000 --- a/web/settings/assets/counter-65d7531d.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-35a2a562.js";import{_ as u,u as n,l as a,m,G as t,E as d,B as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSunnyBoyCounter",mixins:[p]},_={class:"device-sunnyboy-counter"};function b(o,e,f,v,g,y){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return a(),m("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für SMA Sunny Boy/Tripower Zähler ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const h=u(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/counter.vue"]]);export{h as default}; diff --git a/web/settings/assets/counter-681c80fe.js b/web/settings/assets/counter-681c80fe.js deleted file mode 100644 index 908066c835..0000000000 --- a/web/settings/assets/counter-681c80fe.js +++ /dev/null @@ -1 +0,0 @@ -import{C as o}from"./HardwareInstallation-35a2a562.js";import{_ as n,u as i,l as s,m as a,G as r,E as p,B as c}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceJanitzaBat",mixins:[o]},u={class:"device-janitza-counter"};function _(d,e,f,l,v,b){const t=i("openwb-base-alert");return s(),a("div",u,[r(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[c(' ModbusTCP muss im Janitza auf Port 502 aktiv und die ID auf "1" eingestellt sein. ',-1)])]),_:1})])}const D=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/janitza/janitza/counter.vue"]]);export{D as default}; diff --git a/web/settings/assets/counter-6e1d95d5.js b/web/settings/assets/counter-6e1d95d5.js new file mode 100644 index 0000000000..c8c8d5d232 --- /dev/null +++ b/web/settings/assets/counter-6e1d95d5.js @@ -0,0 +1 @@ +import{C as m}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as n,l as d,m as l,G as t,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSigenergyCounter",mixins:[m]},_={class:"device-sigenergy-counter"};function c(o,e,b,f,v,C){const s=n("openwb-base-heading"),p=n("openwb-base-number-input");return d(),l("div",_,[t(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für Sigenergy Zähler ",-1)])),_:1,__:[1]}),t(p,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},{help:i(()=>e[2]||(e[2]=[r(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])),_:1},8,["model-value"])])}const V=u(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/counter.vue"]]);export{V as default}; diff --git a/web/settings/assets/counter-6e58a73c.js b/web/settings/assets/counter-6e58a73c.js deleted file mode 100644 index 13990e44b1..0000000000 --- a/web/settings/assets/counter-6e58a73c.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-35a2a562.js";import{_ as u,u as t,l as a,m as l,G as n,E as m,B as d}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DevicePowerdogCounter",mixins:[p]},_={class:"device-powerdog-counter"};function b(e,o,f,g,v,w){const i=t("openwb-base-heading"),r=t("openwb-base-button-group-input");return a(),l("div",_,[n(i,null,{default:m(()=>[...o[1]||(o[1]=[d(" Einstellungen für Powerdog Zähler ",-1)])]),_:1}),n(r,{title:"Einbau-Position",buttons:[{buttonValue:!1,text:"Hausverbrauch"},{buttonValue:!0,text:"EVU-Punkt"}],"model-value":e.component.configuration.position_evu,"onUpdate:modelValue":o[0]||(o[0]=s=>e.updateConfiguration(s,"configuration.position_evu"))},null,8,["model-value"])])}const N=u(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/powerdog/counter.vue"]]);export{N as default}; diff --git a/web/settings/assets/counter-70b03053.js b/web/settings/assets/counter-70b03053.js new file mode 100644 index 0000000000..8434e5d215 --- /dev/null +++ b/web/settings/assets/counter-70b03053.js @@ -0,0 +1 @@ +import{C as r}from"./HardwareInstallation-be759b0c.js";import{_ as n,u as s,l as i,m as a,G as c,E as p,B as o,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceKostalPlenticoreCounter",mixins:[r]},u={class:"device-kostal-plenticore-counter"};function _(d,e,f,b,h,v){const t=s("openwb-base-alert");return i(),a("div",u,[c(t,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[o(" Wenn der Zähler im Hausverbrauchs-Zweig installiert ist, muss die Hierarchie wie im ",-1),l("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"},"Wiki für Hausverbrauchs-Zähler",-1),o(" beschrieben, angeordnet werden. ",-1)])),_:1,__:[0]})])}const $=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/counter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/counter-70de76b4.js b/web/settings/assets/counter-70de76b4.js new file mode 100644 index 0000000000..868a284965 --- /dev/null +++ b/web/settings/assets/counter-70de76b4.js @@ -0,0 +1 @@ +import{C as s}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as n,l as u,m as p,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceHuaweiSmartLoggerCounter",mixins:[s]},c={class:"device-huawei-smart-logger-counter"};function g(o,e,b,f,w,v){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return u(),p("div",c,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Zähler ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const H=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/counter.vue"]]);export{H as default}; diff --git a/web/settings/assets/counter-76544a83.js b/web/settings/assets/counter-76544a83.js new file mode 100644 index 0000000000..61bf2389cf --- /dev/null +++ b/web/settings/assets/counter-76544a83.js @@ -0,0 +1 @@ +import{C as u}from"./HardwareInstallation-be759b0c.js";import{_ as l,u as t,l as m,m as c,G as r,E as i,B as n,A as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DevicePowerfoxCounter",mixins:[u]},_={class:"device-powerfox-counter"};function b(o,e,g,w,x,h){const a=t("openwb-base-heading"),p=t("openwb-base-text-input");return m(),c("div",_,[r(a,null,{default:i(()=>e[1]||(e[1]=[n(" Einstellungen für Powerfox Zähler ",-1)])),_:1,__:[1]}),r(p,{title:"ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=d=>o.updateConfiguration(d,"configuration.id"))},{help:i(()=>e[2]||(e[2]=[n(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),s("a",{href:"https://backend.powerfox.energy/api/2.0/my/all/devices",target:"_blank",rel:"noopener noreferrer"}," https://backend.powerfox.energy/api/2.0/my/all/devices ",-1),n(" aufrufen und dort Benutzername und Passwort eingeben. Die DeviceID ist exakt so einzutragen, wie in der Antwort des Servers. Das bedeutet insbesondere auch, die Groß-/Kleinschreibung ist zu beachten! In dem Feld ist nur die Zeichenfolge direkt hinter ",-1),s("span",{class:"font-weight-bold text-monospace",style:{display:"contents"}},' "DeviceID" ',-1),n(" ohne den Doppelpunkt und Anführungszeichen einzutragen. ",-1)])),_:1},8,["model-value"])])}const V=l(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/counter.vue"]]);export{V as default}; diff --git a/web/settings/assets/counter-81dd5705.js b/web/settings/assets/counter-81dd5705.js new file mode 100644 index 0000000000..243afaf849 --- /dev/null +++ b/web/settings/assets/counter-81dd5705.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as n,l as m,m as u,G as t,E as l,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolisCounter",mixins:[p]},_={class:"device-solis-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:l(()=>e[1]||(e[1]=[d(" Einstellungen für Solis Zähler ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const M=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/counter.vue"]]);export{M as default}; diff --git a/web/settings/assets/counter-863bf61e.js b/web/settings/assets/counter-863bf61e.js deleted file mode 100644 index 054f724b0f..0000000000 --- a/web/settings/assets/counter-863bf61e.js +++ /dev/null @@ -1 +0,0 @@ -import{C as r}from"./HardwareInstallation-35a2a562.js";import{_ as a,u as t,l,m as u,G as n,E as m,B as c}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbEvukitCounter",mixins:[r]},v={class:"device-openwb-evukit-counter"};function _(o,e,f,b,w,x){const i=t("openwb-base-heading"),s=t("openwb-base-select-input");return l(),u("div",v,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Zähler ",-1)])]),_:1}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:3,text:"B23"},{value:1,text:"Lovato"},{value:0,text:"MPM3PM"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.version"))},null,8,["model-value"])])}const $=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/counter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/counter-8725308d.js b/web/settings/assets/counter-8725308d.js new file mode 100644 index 0000000000..6ceda9c896 --- /dev/null +++ b/web/settings/assets/counter-8725308d.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as t,l,m as d,G as r,E as i,B as n,A as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSmahmCounter",mixins:[p]},f={class:"device-smahm-counter"};function b(o,e,g,v,M,h){const s=t("openwb-base-heading"),a=t("openwb-base-number-input");return l(),d("div",f,[r(s,null,{default:i(()=>e[1]||(e[1]=[n(" Einstellungen für SMA-HM/EM Zähler ",-1)])),_:1,__:[1]}),r(a,{title:"Seriennummer","model-value":o.component.configuration.serials,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.serials"))},{help:i(()=>e[2]||(e[2]=[n(" Eine Seriennummer ist nur erforderlich, wenn mehrere SMA HomeManager in Betrieb sind.",-1),c("br",null,null,-1),n(" Funktioniert auch mit Energy Meter anstatt Home Manager. ",-1)])),_:1},8,["model-value"])])}const A=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_shm/counter.vue"]]);export{A as default}; diff --git a/web/settings/assets/counter-88df4b61.js b/web/settings/assets/counter-88df4b61.js deleted file mode 100644 index 161dd51935..0000000000 --- a/web/settings/assets/counter-88df4b61.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-35a2a562.js";import{_ as l,u as t,l as m,m as d,G as o,E as i,B as r}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceVirtualCounter",mixins:[p]},_={class:"device-virtual-counter"};function f(n,e,b,g,v,h){const s=t("openwb-base-heading"),a=t("openwb-base-number-input");return m(),d("div",_,[o(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für virtuelle Zähler ",-1)])]),_:1}),o(a,{title:"Zusätzlicher Verbrauch",min:0,step:.05,unit:"kW",required:"","model-value":n.component.configuration.external_consumption/1e3,"onUpdate:modelValue":e[0]||(e[0]=u=>n.updateConfiguration(u*1e3,"configuration.external_consumption"))},{help:i(()=>[...e[2]||(e[2]=[r(" Die hier angegebene Leistung wird pauschal zu dem Leistungen der hinter dem Zähler liegenden Komponenten addiert. Damit lässt sich z. B. eine Reserve für nicht erfasste Verbraucher einstellen. ",-1)])]),_:1},8,["model-value"])])}const E=l(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/virtual/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-8950294b.js b/web/settings/assets/counter-8950294b.js new file mode 100644 index 0000000000..5e25c2c141 --- /dev/null +++ b/web/settings/assets/counter-8950294b.js @@ -0,0 +1 @@ +import{C as d}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as o,l as b,m as _,G as t,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOpenwbFlexCounter",mixins:[d]},f={class:"device-openwb-flex-counter"};function v(n,e,w,g,M,x){const l=o("openwb-base-heading"),a=o("openwb-base-alert"),p=o("openwb-base-select-input"),u=o("openwb-base-number-input");return b(),_("div",f,[t(l,null,{default:r(()=>e[2]||(e[2]=[s(" Einstellungen für openWB-Flex Zähler ",-1)])),_:1,__:[2]}),t(a,{subtype:"info"},{default:r(()=>e[3]||(e[3]=[s(" Bei saldierenden Zählern (MPM3PM, B23) werden die Zählerstände für Einspeisung und Bezug aus dem Zähler ausgelesen. Bei Zählern, die nicht saldierend arbeiten (Lovato, SDM630, SDM72D-M), werden die Zählerstände von der openWB berechnet. ",-1)])),_:1,__:[3]}),t(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:3,text:"B23"},{value:1,text:"Lovato"},{value:0,text:"MPM3PM"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.version"))},null,8,["model-value"]),t(u,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":n.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.id"))},null,8,["model-value"])])}const $=m(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/counter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/counter-8b0a5a6c.js b/web/settings/assets/counter-8b0a5a6c.js deleted file mode 100644 index aac938ad04..0000000000 --- a/web/settings/assets/counter-8b0a5a6c.js +++ /dev/null @@ -1 +0,0 @@ -import{C as t}from"./HardwareInstallation-35a2a562.js";import{_ as o,u as s,l as i,m as r,G as a,E as p,B as m}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSonnenbatterieCounter",mixins:[t]},d={class:"device-sonnenbatterie-counter"};function _(l,e,u,f,b,v){const n=s("openwb-base-alert");return i(),r("div",d,[a(n,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[m(" Mit diesem Modul ist kein phasenbasiertes Lastmanagement möglich, da keine Ströme der einzelnen Phasen gemessen werden. ",-1)])]),_:1})])}const E=o(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-9a54a193.js b/web/settings/assets/counter-9a54a193.js deleted file mode 100644 index 3861975d7b..0000000000 --- a/web/settings/assets/counter-9a54a193.js +++ /dev/null @@ -1 +0,0 @@ -import{C as o}from"./HardwareInstallation-35a2a562.js";import{_ as n,u as r,l as s,m as i,G as a,E as p,B as m}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceThermiaCounter",mixins:[o]},_={class:"device-thermia-counter"};function u(d,e,f,l,v,b){const t=r("openwb-base-alert");return s(),i("div",_,[a(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[m(" ModbusTCP muss aktiviert sein. ",-1)])]),_:1})])}const E=n(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/thermia/thermia/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-9b4e6f3b.js b/web/settings/assets/counter-9b4e6f3b.js deleted file mode 100644 index 21ffa039fa..0000000000 --- a/web/settings/assets/counter-9b4e6f3b.js +++ /dev/null @@ -1 +0,0 @@ -import{C as m}from"./HardwareInstallation-35a2a562.js";import{_ as u,u as o,l as d,m as l,G as t,E as i,B as s}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceEnphaseCounter",mixins:[m]},_={class:"device-enphase-counter"};function f(n,e,b,v,g,E){const p=o("openwb-base-heading"),r=o("openwb-base-number-input");return d(),l("div",_,[t(p,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für Enphase Envoy / IQ Gateway Zähler ",-1)])]),_:1}),t(r,{title:"EID",required:"","model-value":n.component.configuration.eid,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.eid"))},{help:i(()=>[...e[2]||(e[2]=[s(' EID für "net-consumption" ',-1)])]),_:1},8,["model-value"])])}const k=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/counter.vue"]]);export{k as default}; diff --git a/web/settings/assets/counter-9d15865c.js b/web/settings/assets/counter-9d15865c.js deleted file mode 100644 index 7f05c813f1..0000000000 --- a/web/settings/assets/counter-9d15865c.js +++ /dev/null @@ -1 +0,0 @@ -import{C as s}from"./HardwareInstallation-35a2a562.js";import{_ as p,u,l as f,m,G as t,E as r,B as a,A as g}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceJsonCounter",mixins:[s]},v={class:"device-json-counter"};function w(o,e,j,q,P,C){const i=u("openwb-base-heading"),l=u("openwb-base-text-input"),d=u("openwb-base-alert");return f(),m("div",v,[t(i,null,{default:r(()=>[...e[15]||(e[15]=[a(" Einstellungen für JSON Zähler ",-1)])]),_:1}),t(l,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":o.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.jq_power"))},{help:r(()=>[...e[16]||(e[16]=[a(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),g("br",null,null,-1),a(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])]),_:1},8,["model-value"]),t(l,{title:"Abfrage für Zählerstand Bezug",subtype:"text","model-value":o.component.configuration.jq_imported,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.jq_imported"))},{help:r(()=>[...e[17]||(e[17]=[a(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"]),t(l,{title:"Abfrage für Zählerstand Einspeisung",subtype:"text","model-value":o.component.configuration.jq_exported,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.jq_exported"))},{help:r(()=>[...e[18]||(e[18]=[a(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"]),t(d,{subtype:"info"},{default:r(()=>[...e[19]||(e[19]=[a(" Werden sowohl Leistung als auch Strom auf den Einzelphasen leer gelassen, erfolgt das Lastmanagement am EVU-Punkt nur anhand der Gesamtleistung am EVU-Punkt. Wird der Zähler als Zwischenzähler verwendet, wird in diesem Fall kein Lastmanagement durchgeführt. ",-1)])]),_:1}),t(l,{title:"Abfrage für Leistung auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_power_l1,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.jq_power_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistung auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_power_l2,"onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.jq_power_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistung auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_power_l3,"onUpdate:modelValue":e[5]||(e[5]=n=>o.updateConfiguration(n,"configuration.jq_power_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_power_factor_l1,"onUpdate:modelValue":e[6]||(e[6]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_power_factor_l2,"onUpdate:modelValue":e[7]||(e[7]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_power_factor_l3,"onUpdate:modelValue":e[8]||(e[8]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_current_l1,"onUpdate:modelValue":e[9]||(e[9]=n=>o.updateConfiguration(n,"configuration.jq_current_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_current_l2,"onUpdate:modelValue":e[10]||(e[10]=n=>o.updateConfiguration(n,"configuration.jq_current_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_current_l3,"onUpdate:modelValue":e[11]||(e[11]=n=>o.updateConfiguration(n,"configuration.jq_current_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_voltage_l1,"onUpdate:modelValue":e[12]||(e[12]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_voltage_l2,"onUpdate:modelValue":e[13]||(e[13]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_voltage_l3,"onUpdate:modelValue":e[14]||(e[14]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l3"))},null,8,["model-value"])])}const E=p(b,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-a51921e1.js b/web/settings/assets/counter-a51921e1.js deleted file mode 100644 index 7442389cc6..0000000000 --- a/web/settings/assets/counter-a51921e1.js +++ /dev/null @@ -1 +0,0 @@ -import{C as m}from"./HardwareInstallation-35a2a562.js";import{_ as d,u as r,l as p,m as f,G as n,E as s,B as a}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSolaredgeCounter",mixins:[m]},b={class:"device-solaredge-counter"};function c(o,e,_,v,w,C){const l=r("openwb-base-heading"),u=r("openwb-base-alert"),i=r("openwb-base-number-input");return p(),f("div",b,[n(l,null,{default:s(()=>[...e[2]||(e[2]=[a(" Einstellungen für SolarEdge Zähler ",-1)])]),_:1}),n(u,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[a(" Hierfür muss ein EVU-Zähler am SolarEdge Wechselrichter per Modbus angebunden sein. Der Zähler muss an erster Position im Wechselrichter konfiguriert sein. ",-1)])]),_:1}),n(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),n(i,{title:"SolarEdge-Meter-ID","model-value":o.component.configuration.meter_id,min:"1",max:"255",required:"","onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.meter_id"))},null,8,["model-value"])])}const M=d(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/counter.vue"]]);export{M as default}; diff --git a/web/settings/assets/counter-aa5bda67.js b/web/settings/assets/counter-aa5bda67.js new file mode 100644 index 0000000000..2220b9d4ca --- /dev/null +++ b/web/settings/assets/counter-aa5bda67.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as t,l as m,m as l,G as i,E as d,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceVictronCounter",mixins:[p]},b={class:"device-victron-counter"};function f(o,e,g,v,C,V){const r=t("openwb-base-heading"),u=t("openwb-base-number-input"),s=t("openwb-base-button-group-input");return m(),l("div",b,[i(r,null,{default:d(()=>e[2]||(e[2]=[c(" Einstellungen für Victron Zähler ",-1)])),_:1,__:[2]}),i(u,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(s,{title:"Messgerät",buttons:[{buttonValue:!1,text:"AC-In Victron GX"},{buttonValue:!0,text:"Energy Meter"}],"model-value":o.component.configuration.energy_meter,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.energy_meter"))},null,8,["model-value"])])}const G=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/counter.vue"]]);export{G as default}; diff --git a/web/settings/assets/counter-ac45f9c2.js b/web/settings/assets/counter-ac45f9c2.js new file mode 100644 index 0000000000..8d244af38e --- /dev/null +++ b/web/settings/assets/counter-ac45f9c2.js @@ -0,0 +1 @@ +import{C as s}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as r,l as m,m as g,G as t,E as l,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceVZLoggerCounter",mixins:[s]},_={class:"device-vzlogger-counter"};function c(n,e,b,v,w,Z){const a=r("openwb-base-heading"),p=r("openwb-base-alert"),i=r("openwb-base-number-input");return m(),g("div",_,[t(a,null,{default:l(()=>e[3]||(e[3]=[u(" Einstellungen für VZLogger Zähler ",-1)])),_:1,__:[3]}),t(p,{subtype:"info"},{default:l(()=>e[4]||(e[4]=[u(' Bitte auf der Shell ausführen: "curl -s IPdesVZLogger:Port | jq .|cat -n" Zählen, in welcher Zeile der gesuchte Wert steht. Bei der ersten Zeile mit 1 anfangen zu zählen. ',-1)])),_:1,__:[4]}),t(i,{title:"Zeile der Leistung",required:"",min:0,"model-value":n.component.configuration.line_power,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.line_power"))},null,8,["model-value"]),t(i,{title:"Zeile der Einspeisung",min:0,"model-value":n.component.configuration.line_exported,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.line_exported"))},null,8,["model-value"]),t(i,{title:"Zeile des Bezugs",min:0,"model-value":n.component.configuration.line_imported,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.line_imported"))},null,8,["model-value"])])}const U=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/counter.vue"]]);export{U as default}; diff --git a/web/settings/assets/counter-ad8342b8.js b/web/settings/assets/counter-ad8342b8.js deleted file mode 100644 index df66e4c9b8..0000000000 --- a/web/settings/assets/counter-ad8342b8.js +++ /dev/null @@ -1 +0,0 @@ -import{C as n}from"./HardwareInstallation-35a2a562.js";import{_ as o,u as s,l as r,m as a,G as i,E as m,B as p}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceTeslaCounter",mixins:[n]},l={class:"device-tesla-counter"};function _(d,e,u,f,v,x){const t=s("openwb-base-alert");return r(),a("div",l,[i(t,{subtype:"info"},{default:m(()=>[...e[0]||(e[0]=[p(" Je nach Firmware-Version ist nur ein Lastmanagement anhand der Gesamtleistung möglich, da nicht alle Firmware-Versionen Phasenströme liefern. ",-1)])]),_:1})])}const E=o(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/tesla/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-c21587d3.js b/web/settings/assets/counter-c21587d3.js new file mode 100644 index 0000000000..6570742705 --- /dev/null +++ b/web/settings/assets/counter-c21587d3.js @@ -0,0 +1 @@ +import{C as o}from"./HardwareInstallation-be759b0c.js";import{_ as n,u as r,l as s,m as i,G as a,E as p,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceThermiaCounter",mixins:[o]},_={class:"device-thermia-counter"};function u(d,e,f,l,v,b){const t=r("openwb-base-alert");return s(),i("div",_,[a(t,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[m(" ModbusTCP muss aktiviert sein. ",-1)])),_:1,__:[0]})])}const E=n(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/thermia/thermia/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-c7ccca56.js b/web/settings/assets/counter-c7ccca56.js new file mode 100644 index 0000000000..b674746759 --- /dev/null +++ b/web/settings/assets/counter-c7ccca56.js @@ -0,0 +1 @@ +import{C as n}from"./HardwareInstallation-be759b0c.js";import{_ as s,u as a,l as i,m as l,G as m,E as p,A as e,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolarLogCounter",mixins:[n]},u={class:"device-solar_log-counter"};function _(d,o,g,h,f,b){const t=a("openwb-base-alert");return i(),l("div",u,[m(t,{subtype:"info"},{default:p(()=>o[0]||(o[0]=[e("span",{class:"text-danger"},[r(" Solar-Log Zähler geben keine Ströme aus, sodass nur ein Lastmanagement anhand der Gesamtleistung, aber nicht phasenbasiert möglich ist."),e("br")],-1),r(" Solar-Log Zähler sind Hausverbrauchs-Zähler. Um die Werte am EVU-Punkt zu ermitteln, muss ein virtueller Zähler konfiguriert werden. Eine Beispiel-Konfiguration mit Solar-Log Zähler findest Du im ",-1),e("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Z%C3%A4hler",target:"_blank",rel:"noopener noreferrer"}," Wiki für Hausverbrauchs-Zähler ",-1),r(". ",-1)])),_:1,__:[0]})])}const E=s(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/solar_log/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-d72adf8c.js b/web/settings/assets/counter-d72adf8c.js new file mode 100644 index 0000000000..1396a272ae --- /dev/null +++ b/web/settings/assets/counter-d72adf8c.js @@ -0,0 +1 @@ +import{C as u}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as s,l as p,m as g,G as i,E as a,B as n,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const h={name:"DeviceHttpCounter",mixins:[u]},b={class:"device-http-counter"};function f(t,e,w,v,k,S){const d=s("openwb-base-heading"),o=s("openwb-base-text-input");return p(),g("div",b,[i(d,null,{default:a(()=>e[6]||(e[6]=[n(" Einstellungen für Http Zähler ",-1)])),_:1,__:[6]}),i(o,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.power_path"))},{help:a(()=>e[7]||(e[7]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])),_:1},8,["model-value"]),i(o,{title:"Pfad für Zählerstand Bezug",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.imported_path,"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateConfiguration(r,"configuration.imported_path"))},{help:a(()=>e[8]||(e[8]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])),_:1},8,["model-value"]),i(o,{title:"Pfad für Zählerstand Einspeisung",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateConfiguration(r,"configuration.exported_path"))},{help:a(()=>e[9]||(e[9]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 1",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l1_path,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateConfiguration(r,"configuration.current_l1_path"))},{help:a(()=>e[10]||(e[10]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 1. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 2",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l2_path,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateConfiguration(r,"configuration.current_l2_path"))},{help:a(()=>e[11]||(e[11]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 2. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 3",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l3_path,"onUpdate:modelValue":e[5]||(e[5]=r=>t.updateConfiguration(r,"configuration.current_l3_path"))},{help:a(()=>e[12]||(e[12]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 3. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"])])}const F=m(h,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/counter.vue"]]);export{F as default}; diff --git a/web/settings/assets/counter-d73a3f9b.js b/web/settings/assets/counter-d73a3f9b.js new file mode 100644 index 0000000000..26ebfb6dd9 --- /dev/null +++ b/web/settings/assets/counter-d73a3f9b.js @@ -0,0 +1 @@ +import{C as a}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as t,l as p,m as u,G as n,E as l,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmartMeCounter",mixins:[a]},_={class:"device-smart-me-counter"};function f(o,e,b,v,g,x){const r=t("openwb-base-heading"),i=t("openwb-base-text-input");return p(),u("div",_,[n(r,null,{default:l(()=>e[1]||(e[1]=[d(" Einstellungen für smart-me Zähler ",-1)])),_:1,__:[1]}),n(i,{title:"Geräte-ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const G=m(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/counter.vue"]]);export{G as default}; diff --git a/web/settings/assets/counter-e13be6e6.js b/web/settings/assets/counter-e13be6e6.js deleted file mode 100644 index 6fa804063a..0000000000 --- a/web/settings/assets/counter-e13be6e6.js +++ /dev/null @@ -1 +0,0 @@ -import{C as n}from"./HardwareInstallation-35a2a562.js";import{_ as s,u as a,l as i,m as l,G as m,E as p,A as e,B as r}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolarLogCounter",mixins:[n]},u={class:"device-solar_log-counter"};function d(_,o,g,h,f,b){const t=a("openwb-base-alert");return i(),l("div",u,[m(t,{subtype:"info"},{default:p(()=>[...o[0]||(o[0]=[e("span",{class:"text-danger"},[r(" Solar-Log Zähler geben keine Ströme aus, sodass nur ein Lastmanagement anhand der Gesamtleistung, aber nicht phasenbasiert möglich ist."),e("br")],-1),r(" Solar-Log Zähler sind Hausverbrauchs-Zähler. Um die Werte am EVU-Punkt zu ermitteln, muss ein virtueller Zähler konfiguriert werden. Eine Beispiel-Konfiguration mit Solar-Log Zähler findest Du im ",-1),e("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Z%C3%A4hler",target:"_blank",rel:"noopener noreferrer"}," Wiki für Hausverbrauchs-Zähler ",-1),r(". ",-1)])]),_:1})])}const E=s(c,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/solar_log/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-e48f1cfa.js b/web/settings/assets/counter-e48f1cfa.js new file mode 100644 index 0000000000..6cd1837b83 --- /dev/null +++ b/web/settings/assets/counter-e48f1cfa.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceNibeCounter",mixins:[p]},_={class:"device-nibe-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Nibe Zähler ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/nibe/nibe/counter.vue"]]);export{D as default}; diff --git a/web/settings/assets/counter-e561a38d.js b/web/settings/assets/counter-e561a38d.js deleted file mode 100644 index a7b770465e..0000000000 --- a/web/settings/assets/counter-e561a38d.js +++ /dev/null @@ -1 +0,0 @@ -import{C as s}from"./HardwareInstallation-35a2a562.js";import{_ as d,u as r,l as m,m as g,G as t,E as l,B as u}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceVZLoggerCounter",mixins:[s]},_={class:"device-vzlogger-counter"};function c(n,e,b,v,w,Z){const a=r("openwb-base-heading"),p=r("openwb-base-alert"),i=r("openwb-base-number-input");return m(),g("div",_,[t(a,null,{default:l(()=>[...e[3]||(e[3]=[u(" Einstellungen für VZLogger Zähler ",-1)])]),_:1}),t(p,{subtype:"info"},{default:l(()=>[...e[4]||(e[4]=[u(' Bitte auf der Shell ausführen: "curl -s IPdesVZLogger:Port | jq .|cat -n" Zählen, in welcher Zeile der gesuchte Wert steht. Bei der ersten Zeile mit 1 anfangen zu zählen. ',-1)])]),_:1}),t(i,{title:"Zeile der Leistung",required:"",min:0,"model-value":n.component.configuration.line_power,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.line_power"))},null,8,["model-value"]),t(i,{title:"Zeile der Einspeisung",min:0,"model-value":n.component.configuration.line_exported,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.line_exported"))},null,8,["model-value"]),t(i,{title:"Zeile des Bezugs",min:0,"model-value":n.component.configuration.line_imported,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.line_imported"))},null,8,["model-value"])])}const U=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/counter.vue"]]);export{U as default}; diff --git a/web/settings/assets/counter-e616e2c9.js b/web/settings/assets/counter-e616e2c9.js deleted file mode 100644 index f038919f62..0000000000 --- a/web/settings/assets/counter-e616e2c9.js +++ /dev/null @@ -1 +0,0 @@ -import{C as o}from"./HardwareInstallation-35a2a562.js";import{_ as s,u as n,l as r,m as i,G as a,E as p,B as c}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceKostalSemCounter",mixins:[o]},l={class:"device-kostal-sem-counter"};function d(_,e,u,f,b,h){const t=n("openwb-base-alert");return r(),i("div",l,[a(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[c(" Diese Komponente ist nur richtig, wenn der Zähler NICHT direkt am Wechselrichter (Kostal Plenticore) angeschlossen ist und daher separat abgefragt werden muss. ",-1)])]),_:1})])}const N=s(m,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_sem/counter.vue"]]);export{N as default}; diff --git a/web/settings/assets/counter-e67347b5.js b/web/settings/assets/counter-e67347b5.js deleted file mode 100644 index aad4259ba0..0000000000 --- a/web/settings/assets/counter-e67347b5.js +++ /dev/null @@ -1 +0,0 @@ -import{C as a}from"./HardwareInstallation-35a2a562.js";import{_ as u,u as n,l as d,m as c,G as t,E as i,B as s}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceMTecCounter",mixins:[a]},_={class:"device-mtec-counter"};function b(o,e,f,v,g,C){const r=n("openwb-base-heading"),m=n("openwb-base-number-input");return d(),c("div",_,[t(r,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für M-Tec Zähler ",-1)])]),_:1}),t(m,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[s(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])]),_:1},8,["model-value"])])}const k=u(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/counter.vue"]]);export{k as default}; diff --git a/web/settings/assets/counter-e973c67a.js b/web/settings/assets/counter-e973c67a.js deleted file mode 100644 index 9bf6a0a952..0000000000 --- a/web/settings/assets/counter-e973c67a.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as t,l as c,m as u,G as o,E as s,B as l,A as n,F as d}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceShellyCounter",mixins:[p]},f={class:"device-shelly-counter"},h={class:"small"};function b(r,e,g,y,v,w){const i=t("openwb-base-heading"),a=t("openwb-base-alert");return c(),u("div",f,[o(i,null,{default:s(()=>[e[0]||(e[0]=l(" Einstellungen für Shelly Zähler ",-1)),n("span",h,"(Modul: "+d(r.$options.name)+")",1)]),_:1}),o(a,{subtype:"info"},{default:s(()=>[...e[1]||(e[1]=[n("span",{class:"text-danger"}," Als EVU-Zähler werden nur dreiphasige Shelly unterstützt (z.B. Shelly 3EM, Shelly Pro 3EM)",-1),n("br",null,null,-1),l(" Diese Komponente benötigt keine Einstellungen. ",-1)])]),_:1})])}const D=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/shelly/shelly/counter.vue"]]);export{D as default}; diff --git a/web/settings/assets/counter-ea8191e1.js b/web/settings/assets/counter-ea8191e1.js deleted file mode 100644 index 5d22bf7712..0000000000 --- a/web/settings/assets/counter-ea8191e1.js +++ /dev/null @@ -1 +0,0 @@ -import{C as t}from"./HardwareInstallation-35a2a562.js";import{_ as n,u as r,l as s,m as a,G as i,E as p,B as c}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceCarloGavazziCounter",mixins:[t]},_={class:"device-carlo-gavazzi-counter"};function l(u,e,d,v,f,z){const o=r("openwb-base-alert");return s(),a("div",_,[i(o,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[c(" ModbusTCP muss aktiviert sein. ",-1)])]),_:1})])}const G=n(m,[["render",l],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/carlo_gavazzi/carlo_gavazzi/counter.vue"]]);export{G as default}; diff --git a/web/settings/assets/counter-eadf5e57.js b/web/settings/assets/counter-eadf5e57.js new file mode 100644 index 0000000000..63e87ba791 --- /dev/null +++ b/web/settings/assets/counter-eadf5e57.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceFoxEssCounter",mixins:[p]},c={class:"device-fox_ess-counter"};function f(o,e,b,x,v,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>e[1]||(e[1]=[_(" Einstellungen für FoxEss Zähler ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const F=a(l,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/counter.vue"]]);export{F as default}; diff --git a/web/settings/assets/counter-ecd56561.js b/web/settings/assets/counter-ecd56561.js deleted file mode 100644 index 00bca3cdcb..0000000000 --- a/web/settings/assets/counter-ecd56561.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-35a2a562.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceNibeCounter",mixins:[p]},b={class:"device-nibe-counter"};function _(o,e,f,v,g,C){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",b,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Nibe Zähler ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=a(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/nibe/nibe/counter.vue"]]);export{D as default}; diff --git a/web/settings/assets/counter-f02f171d.js b/web/settings/assets/counter-f02f171d.js new file mode 100644 index 0000000000..d06d7a975d --- /dev/null +++ b/web/settings/assets/counter-f02f171d.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as t,l as a,m as l,G as n,E as m,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DevicePowerdogCounter",mixins:[p]},_={class:"device-powerdog-counter"};function b(e,o,f,g,v,w){const i=t("openwb-base-heading"),r=t("openwb-base-button-group-input");return a(),l("div",_,[n(i,null,{default:m(()=>o[1]||(o[1]=[d(" Einstellungen für Powerdog Zähler ",-1)])),_:1,__:[1]}),n(r,{title:"Einbau-Position",buttons:[{buttonValue:!1,text:"Hausverbrauch"},{buttonValue:!0,text:"EVU-Punkt"}],"model-value":e.component.configuration.position_evu,"onUpdate:modelValue":o[0]||(o[0]=s=>e.updateConfiguration(s,"configuration.position_evu"))},null,8,["model-value"])])}const N=u(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/powerdog/counter.vue"]]);export{N as default}; diff --git a/web/settings/assets/counter-f2628932.js b/web/settings/assets/counter-f2628932.js new file mode 100644 index 0000000000..b8c44eb67d --- /dev/null +++ b/web/settings/assets/counter-f2628932.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as n,l as a,m,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSunnyBoyCounter",mixins:[p]},c={class:"device-sunnyboy-counter"};function b(o,e,f,v,g,y){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return a(),m("div",c,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für SMA Sunny Boy/Tripower Zähler ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const h=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/counter.vue"]]);export{h as default}; diff --git a/web/settings/assets/counter-f54ee4df.js b/web/settings/assets/counter-f54ee4df.js new file mode 100644 index 0000000000..57d3278e05 --- /dev/null +++ b/web/settings/assets/counter-f54ee4df.js @@ -0,0 +1 @@ +import{C as m}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as r,l as p,m as _,G as n,E as s,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolaredgeCounter",mixins:[m]},g={class:"device-solaredge-counter"};function b(o,e,c,v,w,C){const l=r("openwb-base-heading"),u=r("openwb-base-alert"),i=r("openwb-base-number-input");return p(),_("div",g,[n(l,null,{default:s(()=>e[2]||(e[2]=[a(" Einstellungen für SolarEdge Zähler ",-1)])),_:1,__:[2]}),n(u,{subtype:"info"},{default:s(()=>e[3]||(e[3]=[a(" Hierfür muss ein EVU-Zähler am SolarEdge Wechselrichter per Modbus angebunden sein. Der Zähler muss an erster Position im Wechselrichter konfiguriert sein. ",-1)])),_:1,__:[3]}),n(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),n(i,{title:"SolarEdge-Meter-ID","model-value":o.component.configuration.meter_id,min:"1",max:"255",required:"","onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.meter_id"))},null,8,["model-value"])])}const M=d(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/counter.vue"]]);export{M as default}; diff --git a/web/settings/assets/counter-f8e5fc32.js b/web/settings/assets/counter-f8e5fc32.js new file mode 100644 index 0000000000..98d4d021e2 --- /dev/null +++ b/web/settings/assets/counter-f8e5fc32.js @@ -0,0 +1 @@ +import{C as s}from"./HardwareInstallation-be759b0c.js";import{_ as p,u,l as f,m,G as t,E as r,B as a,A as g}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceJsonCounter",mixins:[s]},v={class:"device-json-counter"};function w(o,e,j,q,_,P){const i=u("openwb-base-heading"),l=u("openwb-base-text-input"),d=u("openwb-base-alert");return f(),m("div",v,[t(i,null,{default:r(()=>e[15]||(e[15]=[a(" Einstellungen für JSON Zähler ",-1)])),_:1,__:[15]}),t(l,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":o.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.jq_power"))},{help:r(()=>e[16]||(e[16]=[a(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),g("br",null,null,-1),a(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])),_:1},8,["model-value"]),t(l,{title:"Abfrage für Zählerstand Bezug",subtype:"text","model-value":o.component.configuration.jq_imported,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.jq_imported"))},{help:r(()=>e[17]||(e[17]=[a(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])),_:1},8,["model-value"]),t(l,{title:"Abfrage für Zählerstand Einspeisung",subtype:"text","model-value":o.component.configuration.jq_exported,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.jq_exported"))},{help:r(()=>e[18]||(e[18]=[a(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])),_:1},8,["model-value"]),t(d,{subtype:"info"},{default:r(()=>e[19]||(e[19]=[a(" Werden sowohl Leistung als auch Strom auf den Einzelphasen leer gelassen, erfolgt das Lastmanagement am EVU-Punkt nur anhand der Gesamtleistung am EVU-Punkt. Wird der Zähler als Zwischenzähler verwendet, wird in diesem Fall kein Lastmanagement durchgeführt. ",-1)])),_:1,__:[19]}),t(l,{title:"Abfrage für Leistung auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_power_l1,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.jq_power_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistung auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_power_l2,"onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.jq_power_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistung auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_power_l3,"onUpdate:modelValue":e[5]||(e[5]=n=>o.updateConfiguration(n,"configuration.jq_power_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_power_factor_l1,"onUpdate:modelValue":e[6]||(e[6]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_power_factor_l2,"onUpdate:modelValue":e[7]||(e[7]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_power_factor_l3,"onUpdate:modelValue":e[8]||(e[8]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_current_l1,"onUpdate:modelValue":e[9]||(e[9]=n=>o.updateConfiguration(n,"configuration.jq_current_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_current_l2,"onUpdate:modelValue":e[10]||(e[10]=n=>o.updateConfiguration(n,"configuration.jq_current_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_current_l3,"onUpdate:modelValue":e[11]||(e[11]=n=>o.updateConfiguration(n,"configuration.jq_current_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_voltage_l1,"onUpdate:modelValue":e[12]||(e[12]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_voltage_l2,"onUpdate:modelValue":e[13]||(e[13]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_voltage_l3,"onUpdate:modelValue":e[14]||(e[14]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l3"))},null,8,["model-value"])])}const E=p(b,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-fdd1cfe4.js b/web/settings/assets/counter-fdd1cfe4.js new file mode 100644 index 0000000000..ca0640adef --- /dev/null +++ b/web/settings/assets/counter-fdd1cfe4.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceDeyeCounter",mixins:[p]},_={class:"device-deye-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Deye Zähler ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const k=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/counter.vue"]]);export{k as default}; diff --git a/web/settings/assets/counter-fdeb4506.js b/web/settings/assets/counter-fdeb4506.js new file mode 100644 index 0000000000..2138858349 --- /dev/null +++ b/web/settings/assets/counter-fdeb4506.js @@ -0,0 +1 @@ +import{C as n}from"./HardwareInstallation-be759b0c.js";import{_ as o,u as s,l as r,m as a,G as i,E as m,B as p}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceTeslaCounter",mixins:[n]},l={class:"device-tesla-counter"};function _(d,e,u,f,v,x){const t=s("openwb-base-alert");return r(),a("div",l,[i(t,{subtype:"info"},{default:m(()=>e[0]||(e[0]=[p(" Je nach Firmware-Version ist nur ein Lastmanagement anhand der Gesamtleistung möglich, da nicht alle Firmware-Versionen Phasenströme liefern. ",-1)])),_:1,__:[0]})])}const E=o(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/tesla/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter_consumption-06ae199e.js b/web/settings/assets/counter_consumption-06ae199e.js new file mode 100644 index 0000000000..8c3d0fe236 --- /dev/null +++ b/web/settings/assets/counter_consumption-06ae199e.js @@ -0,0 +1 @@ +import{C as s}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as p,l as u,m as d,G as t,E as o,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceSonnenbatterieCounterConsumption",mixins:[s]},m={class:"device-sonnenbatterie-counter-consumption"};function c(i,e,_,f,b,v){const n=p("openwb-base-alert");return u(),d("div",m,[t(n,{subtype:"info"},{default:o(()=>e[0]||(e[0]=[r(" Diese Komponente liest die Daten des Verbrauchszählers der Sonnenbatterie aus, nicht die EVU-Daten! Es ist ggf. ein virtueller Zähler als EVU-Zähler zu konfigurieren, falls kein anderer Zähler vorhanden ist und ausgelesen werden kann. ",-1)])),_:1,__:[0]}),t(n,{subtype:i.device.configuration.variant!==3?"danger":"info"},{default:o(()=>e[1]||(e[1]=[r(" Diese Komponente kann nur in Verbindung mit der JSON-API v2 verwendet werden, da die anderen Schnittstellen die Daten nicht zur Verfügung stellen. ",-1)])),_:1,__:[1]},8,["subtype"])])}const B=a(l,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/counter_consumption.vue"]]);export{B as default}; diff --git a/web/settings/assets/counter_consumption-85e2b8b0.js b/web/settings/assets/counter_consumption-85e2b8b0.js deleted file mode 100644 index 56124b5eb9..0000000000 --- a/web/settings/assets/counter_consumption-85e2b8b0.js +++ /dev/null @@ -1 +0,0 @@ -import{C as s}from"./HardwareInstallation-35a2a562.js";import{_ as a,u as p,l as u,m as d,G as t,E as o,B as r}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceSonnenbatterieCounterConsumption",mixins:[s]},m={class:"device-sonnenbatterie-counter-consumption"};function c(i,e,f,_,b,v){const n=p("openwb-base-alert");return u(),d("div",m,[t(n,{subtype:"info"},{default:o(()=>[...e[0]||(e[0]=[r(" Diese Komponente liest die Daten des Verbrauchszählers der Sonnenbatterie aus, nicht die EVU-Daten! Es ist ggf. ein virtueller Zähler als EVU-Zähler zu konfigurieren, falls kein anderer Zähler vorhanden ist und ausgelesen werden kann. ",-1)])]),_:1}),t(n,{subtype:i.device.configuration.variant!==3?"danger":"info"},{default:o(()=>[...e[1]||(e[1]=[r(" Diese Komponente kann nur in Verbindung mit der JSON-API v2 verwendet werden, da die anderen Schnittstellen die Daten nicht zur Verfügung stellen. ",-1)])]),_:1},8,["subtype"])])}const B=a(l,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/counter_consumption.vue"]]);export{B as default}; diff --git a/web/settings/assets/counter_sm-c406a4ca.js b/web/settings/assets/counter_sm-c406a4ca.js deleted file mode 100644 index 37547cd8aa..0000000000 --- a/web/settings/assets/counter_sm-c406a4ca.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-35a2a562.js";import{_ as f,u as i,l as g,m as c,G as o,E as a,B as t,A as l,F as b}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceFroniusCounterSM",mixins:[p],computed:{meterRealtimeUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetMeterRealtimeData.cgi?Scope=System`}}}},v={class:"device-fronius-counter-sm"},w=["href"];function D(n,e,M,S,h,s){const m=i("openwb-base-heading"),d=i("openwb-base-select-input"),u=i("openwb-base-number-input");return g(),c("div",v,[o(m,null,{default:a(()=>[...e[2]||(e[2]=[t(" Einstellungen für Fronius SmartMeter ",-1)])]),_:1}),o(d,{title:"Kompatibilitätsmodus","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Aus"},{value:1,text:"Variante 1"},{value:2,text:"Variante 2"}],"model-value":n.component.configuration.variant,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.variant"))},{help:a(()=>[...e[3]||(e[3]=[t(" Gegebenenfalls auch für alte Modelle nach einem Softwareupdate erforderlich. Fronius hat derzeit keine Konsistente Schnittstelle. Speziell beim Gen24 kann Variante 1 oder 2 erforderlich sein. Nach speichern sollten nach etwa 10-20 Sekunden Daten angezeigt werden. Ist dies nicht der Fall die andere Variante ausprobieren. ",-1)])]),_:1},8,["model-value"]),o(u,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":n.component.configuration.meter_id,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateConfiguration(r,"configuration.meter_id"))},{help:a(()=>[e[4]||(e[4]=t(" Die Meter ID des SmartMeters. Diese ist normalerweise 1. Bei mehreren SmartMetern im System kann es notwendig sein, die Meter ID zu ändern. Zur Ermittlung kann der folgende Link verwendet werden. Die Meter ID kann den zurückgegebenen JSON Daten entnommen werden. ",-1)),l("a",{href:s.meterRealtimeUrl,target:"_blank",rel:"noopener noreferrer"},b(s.meterRealtimeUrl),9,w),e[5]||(e[5]=l("br",null,null,-1)),e[6]||(e[6]=t(' Im Abschnitt "Body" -> "Data" werden die installierten SmartMeter mit aktuellen Messwerten angezeigt. Die Meter ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Messwerten. ',-1))]),_:1},8,["model-value"])])}const U=f(_,[["render",D],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/counter_sm.vue"]]);export{U as default}; diff --git a/web/settings/assets/counter_sm-e0173218.js b/web/settings/assets/counter_sm-e0173218.js new file mode 100644 index 0000000000..7f66c990c0 --- /dev/null +++ b/web/settings/assets/counter_sm-e0173218.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as f,u as i,l as g,m as c,G as o,E as a,B as t,A as l,F as b}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceFroniusCounterSM",mixins:[p],computed:{meterRealtimeUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetMeterRealtimeData.cgi?Scope=System`}}}},v={class:"device-fronius-counter-sm"},w=["href"];function D(n,e,M,S,h,s){const m=i("openwb-base-heading"),d=i("openwb-base-select-input"),u=i("openwb-base-number-input");return g(),c("div",v,[o(m,null,{default:a(()=>e[2]||(e[2]=[t(" Einstellungen für Fronius SmartMeter ",-1)])),_:1,__:[2]}),o(d,{title:"Kompatibilitätsmodus","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Aus"},{value:1,text:"Variante 1"},{value:2,text:"Variante 2"}],"model-value":n.component.configuration.variant,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.variant"))},{help:a(()=>e[3]||(e[3]=[t(" Gegebenenfalls auch für alte Modelle nach einem Softwareupdate erforderlich. Fronius hat derzeit keine Konsistente Schnittstelle. Speziell beim Gen24 kann Variante 1 oder 2 erforderlich sein. Nach speichern sollten nach etwa 10-20 Sekunden Daten angezeigt werden. Ist dies nicht der Fall die andere Variante ausprobieren. ",-1)])),_:1},8,["model-value"]),o(u,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":n.component.configuration.meter_id,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateConfiguration(r,"configuration.meter_id"))},{help:a(()=>[e[4]||(e[4]=t(" Die Meter ID des SmartMeters. Diese ist normalerweise 1. Bei mehreren SmartMetern im System kann es notwendig sein, die Meter ID zu ändern. Zur Ermittlung kann der folgende Link verwendet werden. Die Meter ID kann den zurückgegebenen JSON Daten entnommen werden. ",-1)),l("a",{href:s.meterRealtimeUrl,target:"_blank",rel:"noopener noreferrer"},b(s.meterRealtimeUrl),9,w),e[5]||(e[5]=l("br",null,null,-1)),e[6]||(e[6]=t(' Im Abschnitt "Body" -> "Data" werden die installierten SmartMeter mit aktuellen Messwerten angezeigt. Die Meter ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Messwerten. ',-1))]),_:1},8,["model-value"])])}const U=f(_,[["render",D],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/counter_sm.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-0146d660.js b/web/settings/assets/device-0146d660.js deleted file mode 100644 index d5c8accf93..0000000000 --- a/web/settings/assets/device-0146d660.js +++ /dev/null @@ -1 +0,0 @@ -import{D as p}from"./HardwareInstallation-35a2a562.js";import{_ as a,u as t,l as d,m as c,G as n,E as m,B as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceRCT",mixins:[p]},_={class:"device-rct"};function f(o,e,v,b,g,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),c("div",_,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[l(" Einstellungen für RCT ",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const k=a(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/rct/rct/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-022cb7a5.js b/web/settings/assets/device-022cb7a5.js new file mode 100644 index 0000000000..56be867c55 --- /dev/null +++ b/web/settings/assets/device-022cb7a5.js @@ -0,0 +1 @@ +import{D as r}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as i,l as u,m as p,G as t,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceQCells",mixins:[r]},_={class:"device-qcells"};function b(o,e,v,g,w,C){const l=i("openwb-base-heading"),a=i("openwb-base-text-input"),s=i("openwb-base-number-input");return u(),p("div",_,[t(l,null,{default:m(()=>e[3]||(e[3]=[c(" Einstellungen für QCells ESS ",-1)])),_:1,__:[3]}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=d(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/qcells/qcells/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-026ba885.js b/web/settings/assets/device-026ba885.js new file mode 100644 index 0000000000..6cd0104863 --- /dev/null +++ b/web/settings/assets/device-026ba885.js @@ -0,0 +1 @@ +import{D as d}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as i,l as p,m as l,G as t,E as m,B as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSofar",mixins:[d]},b={class:"device-sofar"};function v(o,e,c,g,w,C){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",b,[t(r,null,{default:m(()=>e[3]||(e[3]=[f("Einstellungen für Sofar",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=u(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sofar/sofar/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-04198354.js b/web/settings/assets/device-04198354.js new file mode 100644 index 0000000000..c06f615e23 --- /dev/null +++ b/web/settings/assets/device-04198354.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as t,l as m,m as d,G as n,E as l,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmartfox",mixins:[a]},_={class:"device-smartfox"};function f(o,e,v,x,b,g){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return m(),d("div",_,[n(i,null,{default:l(()=>e[1]||(e[1]=[u(" Einstellungen für Smartfox ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const N=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smartfox/smartfox/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-05904d00.js b/web/settings/assets/device-05904d00.js new file mode 100644 index 0000000000..5b419543f9 --- /dev/null +++ b/web/settings/assets/device-05904d00.js @@ -0,0 +1 @@ +import{D as r}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as t,l as d,m as l,G as n,E as c,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceKostalSteca",mixins:[r]},_={class:"device-kostal-steca"};function f(o,e,v,b,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),l("div",_,[n(s,null,{default:c(()=>e[1]||(e[1]=[m(" Einstellungen für Kostal Piko MP oder Steca Grid Coolcept ",-1)])),_:1,__:[1]}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const h=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_steca/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-06ba50b0.js b/web/settings/assets/device-06ba50b0.js deleted file mode 100644 index e5f4406cd9..0000000000 --- a/web/settings/assets/device-06ba50b0.js +++ /dev/null @@ -1 +0,0 @@ -import{D as u}from"./HardwareInstallation-35a2a562.js";import{_ as l,u as n,l as m,m as b,G as t,E as s,B as c,A as _}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceDeye",mixins:[u]},v={class:"device-deye"};function g(o,e,w,y,x,C){const r=n("openwb-base-heading"),a=n("openwb-base-alert"),p=n("openwb-base-text-input"),d=n("openwb-base-number-input");return m(),b("div",v,[t(r,null,{default:s(()=>[...e[2]||(e[2]=[c("Einstellungen für Deye",-1)])]),_:1}),t(a,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[_("span",{class:"text-danger"}," Deye Wechselrichter verfügen über keine Modbus-TCP Schnittstelle. Für die Auslesung wird ein RS485/LAN-Adapter benötigt. ",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const q=l(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-07a65d9a.js b/web/settings/assets/device-07a65d9a.js new file mode 100644 index 0000000000..a8aa3617fe --- /dev/null +++ b/web/settings/assets/device-07a65d9a.js @@ -0,0 +1 @@ +import{D as r}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as i,l as d,m as u,G as t,E as l,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSunways",mixins:[r]},f={class:"device-sunways"};function _(o,e,v,w,b,g){const a=i("openwb-base-heading"),s=i("openwb-base-text-input");return d(),u("div",f,[t(a,null,{default:l(()=>e[2]||(e[2]=[m(" Einstellungen für Sunways ",-1)])),_:1,__:[2]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const q=p(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sunways/sunways/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-0bd3c0be.js b/web/settings/assets/device-0bd3c0be.js new file mode 100644 index 0000000000..b18e11ebf0 --- /dev/null +++ b/web/settings/assets/device-0bd3c0be.js @@ -0,0 +1 @@ +import{D as d}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as i,l,m as u,G as n,E as a,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceFems",mixins:[d]},c={class:"device-fems"};function v(o,e,_,b,g,w){const p=i("openwb-base-heading"),s=i("openwb-base-text-input");return l(),u("div",c,[n(p,null,{default:a(()=>e[2]||(e[2]=[r(" Einstellungen für openEMS, Fenecon FEMS, CENTURIO 10, Kaco Hy-Control ",-1)])),_:1,__:[2]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},{help:a(()=>e[3]||(e[3]=[r(" Bei Nutzung von Fenecon FEMS ist das Passwort im Normalfall user, bei Kaco mit Hy-Control ist das Passwort meist admin. ",-1)])),_:1},8,["model-value"])])}const V=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/fems/device.vue"]]);export{V as default}; diff --git a/web/settings/assets/device-0ff1683d.js b/web/settings/assets/device-0ff1683d.js new file mode 100644 index 0000000000..1c780c5235 --- /dev/null +++ b/web/settings/assets/device-0ff1683d.js @@ -0,0 +1 @@ +import{D as p}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as n,l as m,m as d,G as i,E as l,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceHuaweiSmartLogger",mixins:[p]},g={class:"device-huawei-smart-logger"};function f(o,e,b,v,w,x){const r=n("openwb-base-heading"),a=n("openwb-base-text-input"),s=n("openwb-base-number-input");return m(),d("div",g,[i(r,null,{default:l(()=>e[2]||(e[2]=[_(" Einstellungen für Huawei SmartLogger ",-1)])),_:1,__:[2]}),i(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const q=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-1079b467.js b/web/settings/assets/device-1079b467.js deleted file mode 100644 index 9b8bcfb2b5..0000000000 --- a/web/settings/assets/device-1079b467.js +++ /dev/null @@ -1 +0,0 @@ -import{D as u}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as i,l as c,m as b,G as t,E as r,B as a}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceKostalPlenticore",mixins:[u]},_={class:"device-kostal-plenticore"};function v(o,e,g,w,C,E){const l=i("openwb-base-heading"),p=i("openwb-base-alert"),d=i("openwb-base-text-input"),s=i("openwb-base-number-input");return c(),b("div",_,[t(l,null,{default:r(()=>[...e[3]||(e[3]=[a(" Einstellungen für Kostal Plenticore ",-1)])]),_:1}),t(p,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[a(" Wenn am Kostal Plenticore-Wechselrichter ein EM300 oder Kostal Smart Energy Meter (KSEM) angeschlossen ist, muss eine Zähler-und eine Wechselrichter-Komponente angelegt werden. ",-1)])]),_:1}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const $=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-115ca373.js b/web/settings/assets/device-115ca373.js new file mode 100644 index 0000000000..b981abe945 --- /dev/null +++ b/web/settings/assets/device-115ca373.js @@ -0,0 +1 @@ +import{D as m}from"./HardwareInstallation-be759b0c.js";import{_ as l,u as i,l as _,m as b,G as t,E as r,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSiemens",mixins:[m]},v={class:"device-siemens"};function c(o,e,g,w,C,x){const p=i("openwb-base-heading"),d=i("openwb-base-alert"),u=i("openwb-base-text-input"),s=i("openwb-base-number-input");return _(),b("div",v,[t(p,null,{default:r(()=>e[3]||(e[3]=[a(" Einstellungen für Siemens ",-1)])),_:1,__:[3]}),t(d,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[a(" Im Siemens-Speicher muss die Schnittstelle openWB gewählt werden. ",-1)])),_:1,__:[4]}),t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const k=l(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/siemens/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-14c83532.js b/web/settings/assets/device-14c83532.js new file mode 100644 index 0000000000..5dd108d788 --- /dev/null +++ b/web/settings/assets/device-14c83532.js @@ -0,0 +1 @@ +import{D as p}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as o,l as d,m as l,G as t,E as m,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceBenning",mixins:[p]},_={class:"device-benning"};function f(n,e,b,g,v,x){const i=o("openwb-base-heading"),s=o("openwb-base-text-input");return d(),l("div",_,[t(i,null,{default:m(()=>e[1]||(e[1]=[u("Einstellungen für Benning",-1)])),_:1,__:[1]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.url"))},null,8,["model-value"])])}const N=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/benning/benning/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-160ed507.js b/web/settings/assets/device-160ed507.js new file mode 100644 index 0000000000..d4a805f006 --- /dev/null +++ b/web/settings/assets/device-160ed507.js @@ -0,0 +1 @@ +import{D as u}from"./HardwareInstallation-be759b0c.js";import{_ as l,u as n,l as m,m as _,G as t,E as s,B as b,A as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceDeye",mixins:[u]},v={class:"device-deye"};function g(o,e,w,y,x,C){const r=n("openwb-base-heading"),a=n("openwb-base-alert"),p=n("openwb-base-text-input"),d=n("openwb-base-number-input");return m(),_("div",v,[t(r,null,{default:s(()=>e[2]||(e[2]=[b("Einstellungen für Deye",-1)])),_:1,__:[2]}),t(a,{subtype:"info"},{default:s(()=>e[3]||(e[3]=[c("span",{class:"text-danger"}," Deye Wechselrichter verfügen über keine Modbus-TCP Schnittstelle. Für die Auslesung wird ein RS485/LAN-Adapter benötigt. ",-1)])),_:1,__:[3]}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const q=l(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-18f8c834.js b/web/settings/assets/device-18f8c834.js new file mode 100644 index 0000000000..bc3e6c3be0 --- /dev/null +++ b/web/settings/assets/device-18f8c834.js @@ -0,0 +1 @@ +import{D as u}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as r,l as d,m,G as i,E as s,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceKostalPikoOld",mixins:[u]},v={class:"device-kostal-piko-old"};function c(o,e,g,b,w,k){const a=r("openwb-base-heading"),n=r("openwb-base-text-input");return d(),m("div",v,[i(a,null,{default:s(()=>e[3]||(e[3]=[l(" Einstellungen für Kostal Piko (alte Generation) ",-1)])),_:1,__:[3]}),i(n,{title:"URL",subtype:"url",required:"","model-value":o.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.url"))},{help:s(()=>e[4]||(e[4]=[l(' Es wird eine komplette URL inklusive Protokoll erwartet. Normalerweise ist der Wechselrichter über "http://IP" zu erreichen. ',-1)])),_:1},8,["model-value"]),i(n,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),i(n,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const x=p(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko_old/device.vue"]]);export{x as default}; diff --git a/web/settings/assets/device-1aafef64.js b/web/settings/assets/device-1aafef64.js deleted file mode 100644 index 487dd18283..0000000000 --- a/web/settings/assets/device-1aafef64.js +++ /dev/null @@ -1 +0,0 @@ -import{D as p}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as i,l as b,m as f,G as t,E as r,B as s}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const v={name:"DeviceAlgodue",mixins:[p]},_={class:"device-algodue"};function g(o,e,c,w,C,D){const a=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),u=i("openwb-base-number-input");return b(),f("div",_,[t(a,null,{default:r(()=>[...e[3]||(e[3]=[s(" Einstellungen für Algodue",-1)])]),_:1}),t(d,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[s(" ModbusTCP muss aktiviert sein. Der Zähler ist auf Modbus-ID 1 und Port 502 vorkonfiguriert. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=m(v,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/algodue/algodue/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-1d483fa9.js b/web/settings/assets/device-1d483fa9.js deleted file mode 100644 index 08b233f762..0000000000 --- a/web/settings/assets/device-1d483fa9.js +++ /dev/null @@ -1 +0,0 @@ -import{D as m}from"./HardwareInstallation-35a2a562.js";import{_ as v,u as t,l as b,m as f,G as i,E as r,B as s}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceGoodWe",mixins:[m]},w={class:"device-goodwe"};function _(o,e,W,c,D,V){const l=t("openwb-base-heading"),a=t("openwb-base-alert"),p=t("openwb-base-text-input"),d=t("openwb-base-number-input"),u=t("openwb-base-select-input");return b(),f("div",w,[i(l,null,{default:r(()=>[...e[5]||(e[5]=[s("Einstellungen für GoodWe",-1)])]),_:1}),i(a,{subtype:"info"},{default:r(()=>[...e[6]||(e[6]=[s(" GoodWe-Wechselrichter verfügen über 3 Dongle: Den WiFi-Dongle, das Wifi-Lan-Kit und das Wifi-Lan-Kit 2.0. Die Einbindung über dieses Modul ist nur mit den Wifi-Lan-Kits möglich. Welches Kit benötigt wird ist vom Wechselrichter abhängig und kann bei GoodWe erfragt werden. ",-1)])]),_:1}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(d,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(u,{title:"API-Version","not-selected":"Bitte auswählen",options:[{value:"v_1_7",text:"v1.7"},{value:"v_1_1",text:"v1.0/ v1.1"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.version"))},{help:r(()=>[...e[7]||(e[7]=[s(" Die Wahl der API-Version beeinflusst die Auslesung der Speicherleistung und der Import/ Export Werte des Zählers. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"Firmware","not-selected":"Bitte auswählen",options:[{value:8,text:"ARM < 9.0"},{value:9,text:"ARM ab 9.0"}],"model-value":o.device.configuration.firmware,required:"","onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.firmware"))},{help:r(()=>[...e[8]||(e[8]=[s(" Die Auswahl der Firmware-Version beeinflusst die Auslesung der Wirkleistung und der Phasenströme des Zählers. ",-1)])]),_:1},8,["model-value"])])}const M=v(g,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/good_we/device.vue"]]);export{M as default}; diff --git a/web/settings/assets/device-212d2c90.js b/web/settings/assets/device-212d2c90.js deleted file mode 100644 index 8e1943805d..0000000000 --- a/web/settings/assets/device-212d2c90.js +++ /dev/null @@ -1 +0,0 @@ -import{D as r}from"./HardwareInstallation-35a2a562.js";import{_ as a,u as t,l as d,m as u,G as n,E as l,B as m}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOpenDTU",mixins:[r]},_={class:"device-opendtu"};function f(o,e,v,b,g,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),u("div",_,[n(i,null,{default:l(()=>[...e[1]||(e[1]=[m("Einstellungen für OpenDTU",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.url"))},null,8,["model-value"])])}const h=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/opendtu/opendtu/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-21e55a5c.js b/web/settings/assets/device-21e55a5c.js deleted file mode 100644 index 54cb7a862d..0000000000 --- a/web/settings/assets/device-21e55a5c.js +++ /dev/null @@ -1 +0,0 @@ -import{D as p}from"./HardwareInstallation-35a2a562.js";import{_ as r,u as t,l as d,m,G as n,E as l,B as u}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmaWebbox",mixins:[p]},_={class:"device-sma-webbox"};function b(o,e,f,v,x,g){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),m("div",_,[n(i,null,{default:l(()=>[...e[1]||(e[1]=[u(" Einstellungen für SMA Webbox ",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const k=r(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_webbox/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-2251901f.js b/web/settings/assets/device-2251901f.js new file mode 100644 index 0000000000..e5692e3f56 --- /dev/null +++ b/web/settings/assets/device-2251901f.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceVictron",mixins:[a]},v={class:"device-victron"};function f(o,e,b,g,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",v,[i(r,null,{default:l(()=>e[2]||(e[2]=[c(" Einstellungen für Victron ",-1)])),_:1,__:[2]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const P=d(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-24f54dcc.js b/web/settings/assets/device-24f54dcc.js new file mode 100644 index 0000000000..e67c973cb8 --- /dev/null +++ b/web/settings/assets/device-24f54dcc.js @@ -0,0 +1 @@ +import{D as r}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as t,l as d,m as l,G as s,E as u,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceYouless",mixins:[r]},_={class:"device-youless"};function f(o,e,v,b,g,x){const n=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),l("div",_,[s(n,null,{default:u(()=>e[1]||(e[1]=[m(" Einstellungen für Youless ",-1)])),_:1,__:[1]}),s(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.ip_address"))},null,8,["model-value"])])}const k=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/youless/youless/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-25c93738.js b/web/settings/assets/device-25c93738.js deleted file mode 100644 index e11fdfc597..0000000000 --- a/web/settings/assets/device-25c93738.js +++ /dev/null @@ -1 +0,0 @@ -import{D as r}from"./HardwareInstallation-35a2a562.js";import{_ as p,u as t,l as d,m as l,G as n,E as c,B as m}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceKostalSteca",mixins:[r]},_={class:"device-kostal-steca"};function f(o,e,v,b,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),l("div",_,[n(s,null,{default:c(()=>[...e[1]||(e[1]=[m(" Einstellungen für Kostal Piko MP oder Steca Grid Coolcept ",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const h=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_steca/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-2671fef8.js b/web/settings/assets/device-2671fef8.js new file mode 100644 index 0000000000..caf3423065 --- /dev/null +++ b/web/settings/assets/device-2671fef8.js @@ -0,0 +1 @@ +import{D as p}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as i,l as b,m as _,G as t,E as s,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceElgris",mixins:[p]},g={class:"device-elgris"};function v(o,e,c,w,C,D){const u=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),_("div",g,[t(u,null,{default:s(()=>e[3]||(e[3]=[a(" Einstellungen für Elgris",-1)])),_:1,__:[3]}),t(d,{subtype:"info"},{default:s(()=>e[4]||(e[4]=[a(" Der Zähler ist auf Modbus-ID 1 und Port 502 vorkonfiguriert. ",-1)])),_:1,__:[4]}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const P=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/elgris/elgris/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-2c55f22c.js b/web/settings/assets/device-2c55f22c.js new file mode 100644 index 0000000000..b2fc1c2c0c --- /dev/null +++ b/web/settings/assets/device-2c55f22c.js @@ -0,0 +1 @@ +import{D as m}from"./HardwareInstallation-be759b0c.js";import{_ as v,u as t,l as b,m as f,G as i,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceGoodWe",mixins:[m]},_={class:"device-goodwe"};function w(o,e,W,c,D,V){const l=t("openwb-base-heading"),a=t("openwb-base-alert"),p=t("openwb-base-text-input"),d=t("openwb-base-number-input"),u=t("openwb-base-select-input");return b(),f("div",_,[i(l,null,{default:r(()=>e[5]||(e[5]=[s("Einstellungen für GoodWe",-1)])),_:1,__:[5]}),i(a,{subtype:"info"},{default:r(()=>e[6]||(e[6]=[s(" GoodWe-Wechselrichter verfügen über 3 Dongle: Den WiFi-Dongle, das Wifi-Lan-Kit und das Wifi-Lan-Kit 2.0. Die Einbindung über dieses Modul ist nur mit den Wifi-Lan-Kits möglich. Welches Kit benötigt wird ist vom Wechselrichter abhängig und kann bei GoodWe erfragt werden. ",-1)])),_:1,__:[6]}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(d,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(u,{title:"API-Version","not-selected":"Bitte auswählen",options:[{value:"v_1_7",text:"v1.7"},{value:"v_1_1",text:"v1.0/ v1.1"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.version"))},{help:r(()=>e[7]||(e[7]=[s(" Die Wahl der API-Version beeinflusst die Auslesung der Speicherleistung und der Import/ Export Werte des Zählers. ",-1)])),_:1},8,["model-value"]),i(u,{title:"Firmware","not-selected":"Bitte auswählen",options:[{value:8,text:"ARM < 9.0"},{value:9,text:"ARM ab 9.0"}],"model-value":o.device.configuration.firmware,required:"","onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.firmware"))},{help:r(()=>e[8]||(e[8]=[s(" Die Auswahl der Firmware-Version beeinflusst die Auslesung der Wirkleistung und der Phasenströme des Zählers. ",-1)])),_:1},8,["model-value"])])}const M=v(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/good_we/device.vue"]]);export{M as default}; diff --git a/web/settings/assets/device-2d3d73a0.js b/web/settings/assets/device-2d3d73a0.js deleted file mode 100644 index 12ae8ab953..0000000000 --- a/web/settings/assets/device-2d3d73a0.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-35a2a562.js";import{_ as d,u as s,l as u,m as p,G as t,E as l,B as m}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceBYD",mixins:[a]},v={class:"device-byd"};function b(o,e,c,g,_,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return u(),p("div",v,[t(r,null,{default:l(()=>[...e[3]||(e[3]=[m(" Einstellungen für BYD ",-1)])]),_:1}),t(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.user"))},null,8,["model-value"]),t(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const U=d(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/byd/byd/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-2eabedb3.js b/web/settings/assets/device-2eabedb3.js deleted file mode 100644 index 97a2e144d5..0000000000 --- a/web/settings/assets/device-2eabedb3.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-35a2a562.js";import{_ as p,u as t,l as m,m as d,G as n,E as l,B as u}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmartfox",mixins:[a]},f={class:"device-smartfox"};function _(o,e,v,x,b,g){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return m(),d("div",f,[n(i,null,{default:l(()=>[...e[1]||(e[1]=[u(" Einstellungen für Smartfox ",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const N=p(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smartfox/smartfox/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-2f6474c4.js b/web/settings/assets/device-2f6474c4.js new file mode 100644 index 0000000000..c619836359 --- /dev/null +++ b/web/settings/assets/device-2f6474c4.js @@ -0,0 +1 @@ +import{D as p}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as t,l,m as d,G as i,E as u,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolarmax",mixins:[p]},f={class:"device-solarmax"};function b(o,e,v,g,x,w){const a=t("openwb-base-heading"),r=t("openwb-base-text-input"),s=t("openwb-base-number-input");return l(),d("div",f,[i(a,null,{default:u(()=>e[2]||(e[2]=[_(" Einstellungen für Solarmax ",-1)])),_:1,__:[2]}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const P=m(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-30bde472.js b/web/settings/assets/device-30bde472.js new file mode 100644 index 0000000000..66df93bf20 --- /dev/null +++ b/web/settings/assets/device-30bde472.js @@ -0,0 +1 @@ +import{D as u}from"./HardwareInstallation-be759b0c.js";import{_ as l,u as i,l as p,m as d,G as t,E as m,B as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolarView",mixins:[u]},_={class:"device-solar-view"};function c(o,e,b,g,w,V){const a=i("openwb-base-heading"),s=i("openwb-base-text-input"),r=i("openwb-base-number-input");return p(),d("div",_,[t(a,null,{default:m(()=>e[3]||(e[3]=[v(" Einstellungen für SolarView ",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Timeout",required:"","model-value":o.device.configuration.timeout,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.timeout"))},null,8,["model-value"])])}const N=l(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/solar_view/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-3169972d.js b/web/settings/assets/device-3169972d.js deleted file mode 100644 index 5fcca2c3e6..0000000000 --- a/web/settings/assets/device-3169972d.js +++ /dev/null @@ -1 +0,0 @@ -import{D as d}from"./HardwareInstallation-35a2a562.js";import{_ as u,u as t,l as p,m,G as i,E as l,B as f}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceThermia",mixins:[d]},v={class:"device-thermia"};function _(o,e,c,g,w,C){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return p(),m("div",v,[i(r,null,{default:l(()=>[...e[3]||(e[3]=[f(" Einstellungen für Thermia ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/thermia/thermia/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-32911862.js b/web/settings/assets/device-32911862.js deleted file mode 100644 index 79dff3be80..0000000000 --- a/web/settings/assets/device-32911862.js +++ /dev/null @@ -1 +0,0 @@ -import{D as d}from"./HardwareInstallation-35a2a562.js";import{_ as u,u as i,l,m as p,G as t,E as m,B as f}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceKostalSEM",mixins:[d]},v={class:"device-kostal-sem"};function _(o,e,c,g,w,C){const s=i("openwb-base-heading"),r=i("openwb-base-text-input"),a=i("openwb-base-number-input");return l(),p("div",v,[t(s,null,{default:m(()=>[...e[3]||(e[3]=[f(" Einstellungen für Kostal Smart Energy Meter oder TQ EM 410 ",-1)])]),_:1}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_sem/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-32f19508.js b/web/settings/assets/device-32f19508.js deleted file mode 100644 index 833869aaaf..0000000000 --- a/web/settings/assets/device-32f19508.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-35a2a562.js";import{_ as d,u as t,l,m as u,G as i,E as m,B as _}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceOpenwbFlex",mixins:[a]},c={class:"device-openwb-flex"};function f(o,e,v,w,g,x){const p=t("openwb-base-heading"),s=t("openwb-base-text-input"),r=t("openwb-base-number-input");return l(),u("div",c,[i(p,null,{default:m(()=>[...e[2]||(e[2]=[_(" Einstellungen für openWB-Flex ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-33ce1c99.js b/web/settings/assets/device-33ce1c99.js deleted file mode 100644 index 13f713f8c3..0000000000 --- a/web/settings/assets/device-33ce1c99.js +++ /dev/null @@ -1 +0,0 @@ -import{D as p}from"./HardwareInstallation-35a2a562.js";import{_ as d,u as t,l as u,m as l,G as i,E as m,B as _}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSunnyIsland",mixins:[p]},f={class:"device-sunnyisland"};function b(n,e,v,g,w,x){const s=t("openwb-base-heading"),a=t("openwb-base-text-input"),r=t("openwb-base-number-input");return u(),l("div",f,[i(s,null,{default:m(()=>[...e[2]||(e[2]=[_(" Einstellungen für Sunny Island ",-1)])]),_:1}),i(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"])])}const q=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_island/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-34c2c399.js b/web/settings/assets/device-34c2c399.js deleted file mode 100644 index 3cc2a6669a..0000000000 --- a/web/settings/assets/device-34c2c399.js +++ /dev/null @@ -1 +0,0 @@ -import{D as u}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as n,l,m as c,G as i,E as a,B as r}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceKaco",mixins:[u]},f={class:"device-kaco"};function b(o,e,v,g,w,x){const s=n("openwb-base-heading"),p=n("openwb-base-text-input"),d=n("openwb-base-number-input");return l(),c("div",f,[i(s,null,{default:a(()=>[...e[2]||(e[2]=[r(" Einstellungen für Kaco ",-1)])]),_:1}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},{help:a(()=>[...e[3]||(e[3]=[r(" Der Standardport für Kaco ist 502. ",-1)])]),_:1},8,["model-value"])])}const N=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_tx/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-34d3ea3d.js b/web/settings/assets/device-34d3ea3d.js deleted file mode 100644 index 46171d9731..0000000000 --- a/web/settings/assets/device-34d3ea3d.js +++ /dev/null @@ -1 +0,0 @@ -import{D as r}from"./HardwareInstallation-35a2a562.js";import{_ as l,u as n,l as u,m as d,G as a,E as m,B as c}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceTasmota",mixins:[r]},v={class:"device-tasmota"};function f(t,e,b,g,w,x){const i=n("openwb-base-heading"),s=n("openwb-base-text-input"),p=n("openwb-base-select-input");return u(),d("div",v,[a(i,null,{default:m(()=>[...e[2]||(e[2]=[c("Einstellungen für Tasmota",-1)])]),_:1}),a(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),a(p,{title:"Phase","not-selected":"Bitte auswählen",options:[{value:1,text:"1"},{value:2,text:"2"},{value:3,text:"3"}],"model-value":t.device.configuration.phase,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.phase"))},null,8,["model-value"])])}const q=l(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tasmota/tasmota/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-35f7717e.js b/web/settings/assets/device-35f7717e.js new file mode 100644 index 0000000000..14813c29ce --- /dev/null +++ b/web/settings/assets/device-35f7717e.js @@ -0,0 +1 @@ +import{D as d}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as i,l as p,m as l,G as t,E as m,B as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceJanitza",mixins:[d]},b={class:"device-janitza"};function v(o,e,c,g,w,C){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",b,[t(r,null,{default:m(()=>e[3]||(e[3]=[f(" Einstellungen für Janitza ",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/janitza/janitza/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-37a05407.js b/web/settings/assets/device-37a05407.js new file mode 100644 index 0000000000..2979152abd --- /dev/null +++ b/web/settings/assets/device-37a05407.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as n,l as m,m as u,G as i,E as l,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceMTec",mixins:[a]},f={class:"device-mtec"};function b(o,e,v,g,w,x){const s=n("openwb-base-heading"),r=n("openwb-base-text-input"),p=n("openwb-base-number-input");return m(),u("div",f,[i(s,null,{default:l(()=>e[2]||(e[2]=[c("Einstellungen für M-Tec",-1)])),_:1,__:[2]}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const q=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-38f54860.js b/web/settings/assets/device-38f54860.js deleted file mode 100644 index 3fdd94e9d2..0000000000 --- a/web/settings/assets/device-38f54860.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-35a2a562.js";import{_ as p,u as r,l as u,m as d,G as n,E as l,B as m}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const f={name:"DevicePowerfox",mixins:[a]},c={class:"device-powerfox"};function v(o,e,w,_,b,g){const s=r("openwb-base-heading"),i=r("openwb-base-text-input");return u(),d("div",c,[n(s,null,{default:l(()=>[...e[2]||(e[2]=[m(" Einstellungen für Powerfox ",-1)])]),_:1}),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const q=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-3a871c58.js b/web/settings/assets/device-3a871c58.js deleted file mode 100644 index 125c7851f4..0000000000 --- a/web/settings/assets/device-3a871c58.js +++ /dev/null @@ -1 +0,0 @@ -import{D as m}from"./HardwareInstallation-35a2a562.js";import{_ as p,u as t,l,m as b,G as i,E as u,B as d}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceHuaweiEmma",mixins:[m]},v={class:"device-huawei-emma"};function _(o,e,g,w,c,C){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return l(),b("div",v,[i(r,null,{default:u(()=>[...e[3]||(e[3]=[d(" Einstellungen für Huawei EMMA ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"0",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},{help:u(()=>[...e[4]||(e[4]=[d(" Huawei Emma nutzt entgegen der Modbus-Spezifikation standardmäßig die Modbus ID 0. ",-1)])]),_:1},8,["model-value"])])}const q=p(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_emma/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-3a96f207.js b/web/settings/assets/device-3a96f207.js new file mode 100644 index 0000000000..a43c608d6d --- /dev/null +++ b/web/settings/assets/device-3a96f207.js @@ -0,0 +1 @@ +import{D as r}from"./HardwareInstallation-be759b0c.js";import{_ as l,u as n,l as u,m as d,G as a,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceTasmota",mixins:[r]},v={class:"device-tasmota"};function f(t,e,b,g,w,x){const i=n("openwb-base-heading"),s=n("openwb-base-text-input"),p=n("openwb-base-select-input");return u(),d("div",v,[a(i,null,{default:m(()=>e[2]||(e[2]=[c("Einstellungen für Tasmota",-1)])),_:1,__:[2]}),a(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),a(p,{title:"Phase","not-selected":"Bitte auswählen",options:[{value:1,text:"1"},{value:2,text:"2"},{value:3,text:"3"}],"model-value":t.device.configuration.phase,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.phase"))},null,8,["model-value"])])}const q=l(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tasmota/tasmota/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-3c6d5af6.js b/web/settings/assets/device-3c6d5af6.js new file mode 100644 index 0000000000..68c476a229 --- /dev/null +++ b/web/settings/assets/device-3c6d5af6.js @@ -0,0 +1 @@ +import{D as m}from"./HardwareInstallation-be759b0c.js";import{_ as l,u as i,l as _,m as b,G as t,E as r,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSiemensSentron",mixins:[m]},v={class:"device-siemens-sentron"};function c(n,e,g,w,C,x){const u=i("openwb-base-heading"),p=i("openwb-base-alert"),d=i("openwb-base-text-input"),s=i("openwb-base-number-input");return _(),b("div",v,[t(u,null,{default:r(()=>e[3]||(e[3]=[a(" Einstellungen für Siemens Sentron ",-1)])),_:1,__:[3]}),t(p,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[a(' Derzeit werden nur Messgeräte vom Typ "7KM PAC2200" mit Ethernet-Schnittstelle unterstützt. ',-1)])),_:1,__:[4]}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},null,8,["model-value"])])}const P=l(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/siemens_sentron/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-3d201076.js b/web/settings/assets/device-3d201076.js deleted file mode 100644 index a589347733..0000000000 --- a/web/settings/assets/device-3d201076.js +++ /dev/null @@ -1 +0,0 @@ -import{D as d}from"./HardwareInstallation-35a2a562.js";import{_ as u,u as t,l as c,m,G as o,E as s,B as i}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceKostalPiko",mixins:[d]},f={class:"device-kostal-piko"};function b(n,e,v,g,k,h){const a=t("openwb-base-heading"),r=t("openwb-base-alert"),p=t("openwb-base-text-input");return c(),m("div",f,[o(a,null,{default:s(()=>[...e[1]||(e[1]=[i(" Einstellungen für Kostal Piko ",-1)])]),_:1}),o(r,{subtype:"info"},{default:s(()=>[...e[2]||(e[2]=[i(" Der Wechselrichter liefert Werte nur, solange er auch PV-Leistung liefert. Nachts geht er in den Standby. Die Hausanschlussüberwachung ist nur aktiv, wenn der Wechselrichter auch aktiv ist. ",-1)])]),_:1}),o(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=l=>n.updateConfiguration(l,"configuration.ip_address"))},null,8,["model-value"])])}const y=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/device.vue"]]);export{y as default}; diff --git a/web/settings/assets/device-4359519d.js b/web/settings/assets/device-4359519d.js new file mode 100644 index 0000000000..86498810ba --- /dev/null +++ b/web/settings/assets/device-4359519d.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as t,l,m as u,G as i,E as m,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceOpenwbFlex",mixins:[a]},c={class:"device-openwb-flex"};function f(o,e,v,w,g,x){const p=t("openwb-base-heading"),s=t("openwb-base-text-input"),r=t("openwb-base-number-input");return l(),u("div",c,[i(p,null,{default:m(()=>e[2]||(e[2]=[_(" Einstellungen für openWB-Flex ",-1)])),_:1,__:[2]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-444877fe.js b/web/settings/assets/device-444877fe.js new file mode 100644 index 0000000000..0736758830 --- /dev/null +++ b/web/settings/assets/device-444877fe.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSigenergy",mixins:[a]},c={class:"device-sigenergy"};function f(o,e,b,v,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",c,[i(r,null,{default:l(()=>e[2]||(e[2]=[_("Einstellungen für Sigenergy",-1)])),_:1,__:[2]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(g,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-45750f00.js b/web/settings/assets/device-45750f00.js new file mode 100644 index 0000000000..50a7823830 --- /dev/null +++ b/web/settings/assets/device-45750f00.js @@ -0,0 +1 @@ +import{D as p}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as i,l as v,m as b,G as n,E as s,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceGrowatt",mixins:[p]},g={class:"device-growatt"};function _(o,e,c,w,V,C){const a=i("openwb-base-heading"),d=i("openwb-base-text-input"),r=i("openwb-base-number-input"),l=i("openwb-base-select-input");return v(),b("div",g,[n(a,null,{default:s(()=>e[4]||(e[4]=[u("Einstellungen für Growatt",-1)])),_:1,__:[4]}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"]),n(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),n(l,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"MAX",text:"MAX Series"},{value:"TL-X",text:"TL-X Inverter"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=t=>o.updateConfiguration(t,"configuration.version"))},{help:s(()=>e[5]||(e[5]=[u(" Die Wahl der API-Version beeinflusst die Auslesung der Speicherleistung und der Import/ Export Werte des Zählers. ",-1)])),_:1},8,["model-value"])])}const X=m(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/growatt/growatt/device.vue"]]);export{X as default}; diff --git a/web/settings/assets/device-46ed909c.js b/web/settings/assets/device-46ed909c.js new file mode 100644 index 0000000000..a8f425ba7d --- /dev/null +++ b/web/settings/assets/device-46ed909c.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as s,l as m,m as u,G as n,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmartMe",mixins:[a]},f={class:"device-smart-me"};function _(o,e,v,b,g,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return m(),u("div",f,[n(r,null,{default:d(()=>e[2]||(e[2]=[l(" Einstellungen für smart-me ",-1)])),_:1,__:[2]}),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const y=p(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/device.vue"]]);export{y as default}; diff --git a/web/settings/assets/device-47b44930.js b/web/settings/assets/device-47b44930.js deleted file mode 100644 index 98770cee37..0000000000 --- a/web/settings/assets/device-47b44930.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-35a2a562.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as _}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceFoxEss",mixins:[a]},f={class:"device-fox_ess"};function b(o,e,v,g,x,w){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",f,[i(s,null,{default:l(()=>[...e[2]||(e[2]=[_("Einstellungen für FoxEss",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-47cdfed3.js b/web/settings/assets/device-47cdfed3.js deleted file mode 100644 index 908d9e0f3a..0000000000 --- a/web/settings/assets/device-47cdfed3.js +++ /dev/null @@ -1 +0,0 @@ -import{D as p}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as i,l as v,m as b,G as n,E as s,B as u}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceGrowatt",mixins:[p]},g={class:"device-growatt"};function _(o,e,c,w,V,C){const a=i("openwb-base-heading"),d=i("openwb-base-text-input"),r=i("openwb-base-number-input"),l=i("openwb-base-select-input");return v(),b("div",g,[n(a,null,{default:s(()=>[...e[4]||(e[4]=[u("Einstellungen für Growatt",-1)])]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"]),n(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),n(l,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"MAX",text:"MAX Series"},{value:"TL-X",text:"TL-X Inverter"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=t=>o.updateConfiguration(t,"configuration.version"))},{help:s(()=>[...e[5]||(e[5]=[u(" Die Wahl der API-Version beeinflusst die Auslesung der Speicherleistung und der Import/ Export Werte des Zählers. ",-1)])]),_:1},8,["model-value"])])}const X=m(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/growatt/growatt/device.vue"]]);export{X as default}; diff --git a/web/settings/assets/device-4b1ba85f.js b/web/settings/assets/device-4b1ba85f.js new file mode 100644 index 0000000000..2f6ee28d3b --- /dev/null +++ b/web/settings/assets/device-4b1ba85f.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as t,l,m as p,G as i,E as s,B as n,A as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceMqtt",mixins:[a]},c={class:"device-mqtt"};function b(g,e,_,f,h,v){const r=t("openwb-base-heading"),o=t("openwb-base-alert");return l(),p("div",c,[i(r,null,{default:s(()=>e[0]||(e[0]=[n("Einstellungen für MQTT",-1)])),_:1,__:[0]}),i(o,{subtype:"info"},{default:s(()=>e[1]||(e[1]=[n(" Das MQTT Modul stellt keine aktive Verbindung her, sondern erwartet, dass die Daten an die angegebenen Topics im Broker gesendet werden. Alle Daten sind als gültiges JSON zu senden! Zahlen mit Nachkommastellen (Float) müssen einen Punkt als Dezimaltrenner verwenden (internationales Format). ",-1),m("br",null,null,-1),n(" Ab Version 2.1.8 wurden die Topics überarbeitet. Die bisherigen Topics openWB/set/bat/id/get/..., openWB/set/counter/id/get/... und openWB/set/pv/id/get/... bleiben aus Gründen der Abwärtskompatibilität weiterhin nutzbar. Wir empfehlen, auf die neuen Topics umzusteigen. Dies ermöglicht die Beseitigung von Einschränkungen, wie z. B. die fehlende Verrechnung bei Hybrid-Systemen oder die Berechnung fehlender Werte, wie der Phasen-Leistung aus Spannung und Stromstärken. ",-1)])),_:1,__:[1]})])}const M=d(u,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/device.vue"]]);export{M as default}; diff --git a/web/settings/assets/device-4b49e69a.js b/web/settings/assets/device-4b49e69a.js new file mode 100644 index 0000000000..8acac1a9c7 --- /dev/null +++ b/web/settings/assets/device-4b49e69a.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOrno",mixins:[a]},f={class:"device-orno"};function b(o,e,v,g,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",f,[i(r,null,{default:l(()=>e[2]||(e[2]=[_("Einstellungen für Orno WE-514",-1)])),_:1,__:[2]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const O=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/orno/orno/device.vue"]]);export{O as default}; diff --git a/web/settings/assets/device-4bbfca01.js b/web/settings/assets/device-4bbfca01.js new file mode 100644 index 0000000000..30d98b956c --- /dev/null +++ b/web/settings/assets/device-4bbfca01.js @@ -0,0 +1 @@ +import{D as u}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as n,l as _,m as c,G as o,E as l,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceShelly",mixins:[u]},v={class:"device-shelly"};function b(t,e,g,h,w,y){const r=n("openwb-base-heading"),a=n("openwb-base-alert"),p=n("openwb-base-text-input"),d=n("openwb-base-select-input");return _(),c("div",v,[o(r,null,{default:l(()=>e[2]||(e[2]=[s(" Einstellungen für Shelly ",-1)])),_:1,__:[2]}),o(a,{subtype:"info"},{default:l(()=>e[3]||(e[3]=[s(" Unterstützt werden theoretisch alle ein- und dreiphasigen Shelly der Generation 1-3. Getestete Modelle sind Shelly 1pm, 1pm plus, Pro Pro 3EM, Plug S. ",-1)])),_:1,__:[3]}),o(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),o(d,{title:"Vorzeichen invertieren","not-selected":"Bitte auswählen",options:[{value:-1,text:"ja"},{value:1,text:"nein"}],"model-value":t.device.configuration.factor,required:"","onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.factor"))},{help:l(()=>e[4]||(e[4]=[s(" Einige Shelly Modelle liefern die Leistung mit umgedrehtem Vorzeichen. Falls dies der Fall sein sollte, das Vorzeichen invertieren. ",-1)])),_:1},8,["model-value"])])}const $=m(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/shelly/shelly/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-4bcd2be1.js b/web/settings/assets/device-4bcd2be1.js deleted file mode 100644 index 32fca50013..0000000000 --- a/web/settings/assets/device-4bcd2be1.js +++ /dev/null @@ -1 +0,0 @@ -import{D as p}from"./HardwareInstallation-35a2a562.js";import{_ as d,u as i,l as u,m as l,G as t,E as m,B as f}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceSaxpower",mixins:[p]},v={class:"device-saxpower"};function _(o,e,c,g,w,x){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return u(),l("div",v,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[f(" Einstellungen für Saxpower ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=d(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/saxpower/saxpower/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-4c47ea65.js b/web/settings/assets/device-4c47ea65.js new file mode 100644 index 0000000000..f89480392e --- /dev/null +++ b/web/settings/assets/device-4c47ea65.js @@ -0,0 +1 @@ +import{D as p}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as i,l as g,m as b,G as t,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolax",mixins:[p]},v={class:"device-solax"};function _(n,e,c,w,x,G){const l=i("openwb-base-heading"),d=i("openwb-base-text-input"),a=i("openwb-base-number-input"),u=i("openwb-base-select-input");return g(),b("div",v,[t(l,null,{default:r(()=>e[4]||(e[4]=[s(" Einstellungen für Solax ",-1)])),_:1,__:[4]}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",min:1,max:65535,placeholder:502,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},{help:r(()=>e[5]||(e[5]=[s(" Standardmäßig ist der Port 502. Dieser sollte nur geändert werden, wenn der Solax Wechselrichter auf einen anderen Port konfiguriert wurde. ",-1)])),_:1},8,["model-value"]),t(a,{title:"Modbus-ID",required:"",min:0,max:255,"model-value":n.device.configuration.modbus_id,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},{help:r(()=>e[6]||(e[6]=[s(" Laut der Schnittstellenbeschreibung ist die ID bei Solax ab Werk auf 1 gesetzt. Entgegen der Beschreibung ist meist für Gen4 eine ID größer als 2 eingestellt. Bei Gen3 sogar (gegen jeglicher Modbus Standards) eine 0. ",-1)])),_:1},8,["model-value"]),t(u,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:"g2",text:"Gen 2"},{value:"g3",text:"Gen 3 & Gen4"},{value:"g4",text:"Gen 4 Boost & Gen 4 Mini"}],"model-value":n.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.version"))},null,8,["model-value"])])}const P=m(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solax/solax/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-4d4342ed.js b/web/settings/assets/device-4d4342ed.js deleted file mode 100644 index eb6e5185f6..0000000000 --- a/web/settings/assets/device-4d4342ed.js +++ /dev/null @@ -1 +0,0 @@ -import{D as p}from"./HardwareInstallation-35a2a562.js";import{_ as d,u as i,l,m,G as t,E as v,B as b}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceUPower",mixins:[p]},c={class:"device-upower"};function _(o,e,g,w,C,U){const r=i("openwb-base-heading"),a=i("openwb-base-text-input"),u=i("openwb-base-number-input"),s=i("openwb-base-select-input");return l(),m("div",c,[t(r,null,{default:v(()=>[...e[4]||(e[4]=[b("Einstellungen für UPower",-1)])]),_:1}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),t(s,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:"1",text:"Gen 1"},{value:"2",text:"Gen 2"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const k=d(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/upower/upower/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-4e9a92f2.js b/web/settings/assets/device-4e9a92f2.js deleted file mode 100644 index c08d325b9e..0000000000 --- a/web/settings/assets/device-4e9a92f2.js +++ /dev/null @@ -1 +0,0 @@ -import{D as d}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as i,l,m as u,G as n,E as a,B as r}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceFems",mixins:[d]},c={class:"device-fems"};function v(o,e,_,b,g,w){const p=i("openwb-base-heading"),s=i("openwb-base-text-input");return l(),u("div",c,[n(p,null,{default:a(()=>[...e[2]||(e[2]=[r(" Einstellungen für openEMS, Fenecon FEMS, CENTURIO 10, Kaco Hy-Control ",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},{help:a(()=>[...e[3]||(e[3]=[r(" Bei Nutzung von Fenecon FEMS ist das Passwort im Normalfall user, bei Kaco mit Hy-Control ist das Passwort meist admin. ",-1)])]),_:1},8,["model-value"])])}const V=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/fems/device.vue"]]);export{V as default}; diff --git a/web/settings/assets/device-52049b98.js b/web/settings/assets/device-52049b98.js new file mode 100644 index 0000000000..f728e6ff63 --- /dev/null +++ b/web/settings/assets/device-52049b98.js @@ -0,0 +1 @@ +import{D as g}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as s,l as p,m as k,G as l,E as u,B as t,A as n,F as a,x as A,z as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const w={name:"DeviceSonnenbatterie",mixins:[g],computed:{linkRestApi1(){return"http://"+this.device.configuration.ip_address+":7979/rest/devices/battery"},linkRestApi2(){return"http://"+this.device.configuration.ip_address+":7979/rest/devices/battery/M05"},linkJsonApi1(){return"http://"+this.device.configuration.ip_address+"/api/v1/status"},linkJsonApi2(){return"http://"+this.device.configuration.ip_address+"/api/v2/status"}}},B={class:"device-sonnenbatterie"},I=["href"],S=["href"],P=["href"],J=["href"];function z(i,e,R,C,D,r){const v=s("openwb-base-heading"),f=s("openwb-base-alert"),d=s("openwb-base-text-input"),b=s("openwb-base-select-input");return p(),k("div",B,[l(v,null,{default:u(()=>e[3]||(e[3]=[t(" Einstellungen für SonnenBatterie ",-1)])),_:1,__:[3]}),l(f,{subtype:"info"},{default:u(()=>e[4]||(e[4]=[t(' Die Leistung steht nur in den Varianten "Rest-API 2" und "JSON-API" zur Verfügung.',-1),n("br",null,null,-1),t(" Die aktive Steuerung des Speichers durch openWB ist nur mit der JSON-API v2 möglich. ",-1)])),_:1,__:[4]}),l(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),l(b,{title:"Datenverbindung",required:"","not-selected":"Bitte auswählen",options:[{value:0,text:"Rest-API 1 (z.B. ECO 4)"},{value:2,text:"Rest-API 2 (z.B. ECO 6)"},{value:1,text:"JSON-API v1(z.B. ECO 8 oder 10)"},{value:3,text:"JSON-API v2(z.B. ECO 8 oder 10)"}],"model-value":i.device.configuration.variant,"onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o,"configuration.variant"))},{help:u(()=>[e[5]||(e[5]=t(" Je nach SonnenBatterie muss die richtige Datenverbindung ausgewählt werden. Folgende URLs werden zum Abruf der Daten genutzt und können auch manuell über einen Browser abgefragt werden, um die richtige Einstellung zu finden:",-1)),e[6]||(e[6]=n("br",null,null,-1)),e[7]||(e[7]=t(" Rest-API 1: ",-1)),n("a",{href:r.linkRestApi1,target:"_blank",rel:"noopener noreferrer"},a(r.linkRestApi1),9,I),e[8]||(e[8]=n("br",null,null,-1)),e[9]||(e[9]=t(" Rest-API 2: ",-1)),n("a",{href:r.linkRestApi2,target:"_blank",rel:"noopener noreferrer"},a(r.linkRestApi2),9,S),e[10]||(e[10]=n("br",null,null,-1)),e[11]||(e[11]=t(" JSON-API v1: ",-1)),n("a",{href:r.linkJsonApi1,target:"_blank",rel:"noopener noreferrer"},a(r.linkJsonApi1),9,P),e[12]||(e[12]=n("br",null,null,-1)),e[13]||(e[13]=t(" JSON-API v2: ",-1)),n("a",{href:r.linkJsonApi2,target:"_blank",rel:"noopener noreferrer"},a(r.linkJsonApi2),9,J),e[14]||(e[14]=n("br",null,null,-1))]),_:1},8,["model-value"]),i.device.configuration.variant===3?(p(),A(d,{key:0,title:"API-Token",subtype:"password",required:"","model-value":i.device.configuration.api_v2_token,"onUpdate:modelValue":e[2]||(e[2]=o=>i.updateConfiguration(o,"configuration.api_v2_token"))},{help:u(()=>e[15]||(e[15]=[t(' API-Token für JSON-API v2. Dieses Token wird benötigt, um detaillierte Daten auszulesen und den Speicher aktiv zu steuern (optional). Es kann in der Weboberfläche der SonnenBatterie unter "Software-Integration" erstellt werden.',-1),n("br",null,null,-1),t(' Für die aktive Steuerung durch openWB ist ebenfalls die "Write API" zu aktivieren! ',-1)])),_:1},8,["model-value"])):_("",!0)])}const T=m(w,[["render",z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/device.vue"]]);export{T as default}; diff --git a/web/settings/assets/device-54b2f204.js b/web/settings/assets/device-54b2f204.js new file mode 100644 index 0000000000..fdf8a2d124 --- /dev/null +++ b/web/settings/assets/device-54b2f204.js @@ -0,0 +1 @@ +import{D as p}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as i,l as u,m as l,G as t,E as m,B as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSaxpower",mixins:[p]},b={class:"device-saxpower"};function v(o,e,c,g,w,x){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return u(),l("div",b,[t(r,null,{default:m(()=>e[3]||(e[3]=[f(" Einstellungen für Saxpower ",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=d(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/saxpower/saxpower/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-57c43c99.js b/web/settings/assets/device-57c43c99.js new file mode 100644 index 0000000000..9954ec58b1 --- /dev/null +++ b/web/settings/assets/device-57c43c99.js @@ -0,0 +1 @@ +import{D as p}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as i,l as b,m as _,G as t,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceAlgodue",mixins:[p]},v={class:"device-algodue"};function g(o,e,c,w,C,D){const a=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),u=i("openwb-base-number-input");return b(),_("div",v,[t(a,null,{default:r(()=>e[3]||(e[3]=[s(" Einstellungen für Algodue",-1)])),_:1,__:[3]}),t(d,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[s(" ModbusTCP muss aktiviert sein. Der Zähler ist auf Modbus-ID 1 und Port 502 vorkonfiguriert. ",-1)])),_:1,__:[4]}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/algodue/algodue/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-585500cc.js b/web/settings/assets/device-585500cc.js new file mode 100644 index 0000000000..c8a1433b40 --- /dev/null +++ b/web/settings/assets/device-585500cc.js @@ -0,0 +1 @@ +import{D as u}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as o,l as b,m as _,G as t,E as s,B as r,A as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolarEdge",mixins:[u]},g={class:"device-solaredge"};function v(n,e,w,B,h,S){const a=o("openwb-base-heading"),d=o("openwb-base-alert"),p=o("openwb-base-text-input"),l=o("openwb-base-number-input");return b(),_("div",g,[t(a,null,{default:s(()=>e[2]||(e[2]=[r(" Einstellungen für SolarEdge ",-1)])),_:1,__:[2]}),t(d,{subtype:"info"},{default:s(()=>e[3]||(e[3]=[r(" ModbusTCP muss im Wechselrichter aktiviert werden und der Wechselrichter per LAN angebunden sein.",-1),c("br",null,null,-1),r(" SolarEdge lässt nur eine ModbusTCP-Verbindung zu. Wenn Sie mit einem weiteren SmartHome-System, wie z.B. ioBroker oder openHAB, den SolarEdge-Wechselrichter abfragen, kann dies die Abfrage durch die openWB stören oder verhindern. ",-1)])),_:1,__:[3]}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(l,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.port"))},{help:s(()=>e[4]||(e[4]=[r(" Je nach Produktionsdatum und Softwareversion ist 502 oder 1502 ab Werk eingestellt. Bitte im Wechselrichter überprüfen. ",-1)])),_:1},8,["model-value"])])}const $=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-5c141e99.js b/web/settings/assets/device-5c141e99.js new file mode 100644 index 0000000000..903d3b0307 --- /dev/null +++ b/web/settings/assets/device-5c141e99.js @@ -0,0 +1 @@ +import{D as d}from"./HardwareInstallation-be759b0c.js";import{_ as l,u as o,l as u,m,G as i,E as r,B as t,A as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceHttp",mixins:[d]},f={class:"device-http"};function v(n,e,b,g,w,x){const s=o("openwb-base-heading"),p=o("openwb-base-text-input");return u(),m("div",f,[i(s,null,{default:r(()=>e[1]||(e[1]=[t(" Einstellungen für Http ",-1)])),_:1,__:[1]}),i(p,{title:"Server-URL",subtype:"url",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.url"))},{help:r(()=>e[2]||(e[2]=[t(" Hier sind die Verbindungsangaben für den Http-Server einzutragen. Der Pfad für die einzelnen Daten wird in der Komponente hinterlegt.",-1),c("br",null,null,-1),t(" Beispiel: http://mein.server:8080 ",-1)])),_:1},8,["model-value"])])}const k=l(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-5f5a7792.js b/web/settings/assets/device-5f5a7792.js deleted file mode 100644 index 5aaf7c1e18..0000000000 --- a/web/settings/assets/device-5f5a7792.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-35a2a562.js";import{_ as d,u as t,l,m as p,G as i,E as s,B as n,A as m}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceMqtt",mixins:[a]},c={class:"device-mqtt"};function b(g,e,_,f,h,v){const r=t("openwb-base-heading"),o=t("openwb-base-alert");return l(),p("div",c,[i(r,null,{default:s(()=>[...e[0]||(e[0]=[n("Einstellungen für MQTT",-1)])]),_:1}),i(o,{subtype:"info"},{default:s(()=>[...e[1]||(e[1]=[n(" Das MQTT Modul stellt keine aktive Verbindung her, sondern erwartet, dass die Daten an die angegebenen Topics im Broker gesendet werden. Alle Daten sind als gültiges JSON zu senden! Zahlen mit Nachkommastellen (Float) müssen einen Punkt als Dezimaltrenner verwenden (internationales Format). ",-1),m("br",null,null,-1),n(" Ab Version 2.1.8 wurden die Topics überarbeitet. Die bisherigen Topics openWB/set/bat/id/get/..., openWB/set/counter/id/get/... und openWB/set/pv/id/get/... bleiben aus Gründen der Abwärtskompatibilität weiterhin nutzbar. Wir empfehlen, auf die neuen Topics umzusteigen. Dies ermöglicht die Beseitigung von Einschränkungen, wie z. B. die fehlende Verrechnung bei Hybrid-Systemen oder die Berechnung fehlender Werte, wie der Phasen-Leistung aus Spannung und Stromstärken. ",-1)])]),_:1})])}const M=d(u,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/device.vue"]]);export{M as default}; diff --git a/web/settings/assets/device-5fb1a238.js b/web/settings/assets/device-5fb1a238.js deleted file mode 100644 index af88d710b4..0000000000 --- a/web/settings/assets/device-5fb1a238.js +++ /dev/null @@ -1 +0,0 @@ -import{D as m}from"./HardwareInstallation-35a2a562.js";import{_ as b,u as i,l as g,m as v,G as t,E as r,B as u}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSungrow",mixins:[m]},w={class:"device-sungrow"};function _(n,e,c,S,D,N){const s=i("openwb-base-heading"),d=i("openwb-base-alert"),a=i("openwb-base-text-input"),l=i("openwb-base-number-input"),p=i("openwb-base-select-input");return g(),v("div",w,[t(s,null,{default:r(()=>[...e[4]||(e[4]=[u(" Einstellungen für Sungrow ",-1)])]),_:1}),t(d,{subtype:"info"},{default:r(()=>[...e[5]||(e[5]=[u(" Bitte zur Fehlervermeidung die Firmware des Sungrow Wechselrichters und WiNet-S Dongles aktuell halten. ",-1)])]),_:1}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(l,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"]),t(l,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},null,8,["model-value"]),t(p,{title:"Version",options:[{value:0,text:"SH (Hybrid)"},{value:3,text:"SH (Hybrid) über WiNet-S Dongle"},{value:1,text:"SG (kein Hybrid)"},{value:2,text:"SG (kein Hybrid) über WiNet-S Dongle"}],"model-value":n.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.version"))},{help:r(()=>[...e[6]||(e[6]=[u(" Die Variante SH sollte möglichst über den internen LAN-Port genutzt werden (befindet sich am Wechselrichter hinter dem WiNet-S Dongle), da nur hier alle Werte vollständig ausgelesen werden können. Den WiNet-S Dongle zusätzlich ins Heimnetz (per LAN oder WLAN) einbinden, um iSolarCloud nutzen zu können. ",-1)])]),_:1},8,["model-value"])])}const h=b(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-6017ed76.js b/web/settings/assets/device-6017ed76.js new file mode 100644 index 0000000000..3393e0b26f --- /dev/null +++ b/web/settings/assets/device-6017ed76.js @@ -0,0 +1 @@ +import{D as l}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as n,l as p,m as c,G as t,E as r,B as o,A as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceFronius",mixins:[l]},b={class:"device-fronius"};function g(i,e,v,h,w,S){const s=n("openwb-base-heading"),a=n("openwb-base-alert"),d=n("openwb-base-text-input");return p(),c("div",b,[t(s,null,{default:r(()=>e[1]||(e[1]=[o(" Einstellungen für Fronius ",-1)])),_:1,__:[1]}),t(a,{subtype:"info"},{default:r(()=>e[2]||(e[2]=[o(" Die Fronius API muss aktiviert sein.",-1),_("br",null,null,-1),o(" Sind nur Symos in Nutzung, welche über Fronius Solar Net / DATCOM miteinander verbunden sind, muss nur ein Gerät mit einer Komponente Wechselrichter angelegt werden. Sind aber z.B. Symo und Symo Hybrid im Einsatz, muss für jeden Wechselrichter ein Gerät mit einer Komponente Wechselrichter angelegt werden. Die Zähler-Komponente für das Smart-Meter wird in dem Gerät angelegt, dass den Wechselrichter enthält, an den das SmartMeter angeschlossen ist. ",-1)])),_:1,__:[2]}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=u=>i.updateConfiguration(u,"configuration.ip_address"))},null,8,["model-value"])])}const G=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/device.vue"]]);export{G as default}; diff --git a/web/settings/assets/device-6081837f.js b/web/settings/assets/device-6081837f.js new file mode 100644 index 0000000000..018514a8e3 --- /dev/null +++ b/web/settings/assets/device-6081837f.js @@ -0,0 +1 @@ +import{D as l}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as n,l as _,m as b,G as t,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSunnyBoy",mixins:[l]},f={class:"device-sunnyboy"};function v(o,e,w,g,y,x){const a=n("openwb-base-heading"),p=n("openwb-base-alert"),d=n("openwb-base-text-input"),u=n("openwb-base-number-input");return _(),b("div",f,[t(a,null,{default:r(()=>e[2]||(e[2]=[s(" Einstellungen für SMA Sunny Boy/Tripower ",-1)])),_:1,__:[2]}),t(p,{subtype:"info"},{default:r(()=>e[3]||(e[3]=[s(' ModbusTCP muss entweder direkt am Wechselrichter, per Sunny Portal oder über das Tool "Sunny Explorer" aktiviert werden. Dies ist standardmäßig deaktiviert. ',-1)])),_:1,__:[3]}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const $=m(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-61c7a6a1.js b/web/settings/assets/device-61c7a6a1.js deleted file mode 100644 index a210126651..0000000000 --- a/web/settings/assets/device-61c7a6a1.js +++ /dev/null @@ -1 +0,0 @@ -import{D as p}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as t,l,m as d,G as i,E as u,B as c}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolarmax",mixins:[p]},f={class:"device-solarmax"};function b(o,e,v,g,x,w){const a=t("openwb-base-heading"),r=t("openwb-base-text-input"),s=t("openwb-base-number-input");return l(),d("div",f,[i(a,null,{default:u(()=>[...e[2]||(e[2]=[c(" Einstellungen für Solarmax ",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const P=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-6342b415.js b/web/settings/assets/device-6342b415.js deleted file mode 100644 index ea67ffea72..0000000000 --- a/web/settings/assets/device-6342b415.js +++ /dev/null @@ -1 +0,0 @@ -import{D as l}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as t,l as d,m as u,G as i,E as s,B as o,A as c}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceJson",mixins:[l]},f={class:"device-json"};function b(n,e,v,g,w,x){const r=t("openwb-base-heading"),a=t("openwb-base-text-input");return d(),u("div",f,[i(r,null,{default:s(()=>[...e[1]||(e[1]=[o(" Einstellungen für JSON ",-1)])]),_:1}),i(a,{title:"URL",subtype:"url",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=p=>n.updateConfiguration(p,"configuration.url"))},{help:s(()=>[...e[2]||(e[2]=[o(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen, optional einem Port und einem Pfad. Die Antwort muss ein json-Objekt sein.",-1),c("br",null,null,-1),o(" Beispiel: http://192.168.1.1:8080/json?data=1 ",-1)])]),_:1},8,["model-value"])])}const $=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-66495188.js b/web/settings/assets/device-66495188.js deleted file mode 100644 index 26b0512d62..0000000000 --- a/web/settings/assets/device-66495188.js +++ /dev/null @@ -1 +0,0 @@ -import{D as l}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as n,l as p,m as c,G as t,E as r,B as o,A as _}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceFronius",mixins:[l]},b={class:"device-fronius"};function g(i,e,v,h,w,S){const s=n("openwb-base-heading"),a=n("openwb-base-alert"),d=n("openwb-base-text-input");return p(),c("div",b,[t(s,null,{default:r(()=>[...e[1]||(e[1]=[o(" Einstellungen für Fronius ",-1)])]),_:1}),t(a,{subtype:"info"},{default:r(()=>[...e[2]||(e[2]=[o(" Die Fronius API muss aktiviert sein.",-1),_("br",null,null,-1),o(" Sind nur Symos in Nutzung, welche über Fronius Solar Net / DATCOM miteinander verbunden sind, muss nur ein Gerät mit einer Komponente Wechselrichter angelegt werden. Sind aber z.B. Symo und Symo Hybrid im Einsatz, muss für jeden Wechselrichter ein Gerät mit einer Komponente Wechselrichter angelegt werden. Die Zähler-Komponente für das Smart-Meter wird in dem Gerät angelegt, dass den Wechselrichter enthält, an den das SmartMeter angeschlossen ist. ",-1)])]),_:1}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=u=>i.updateConfiguration(u,"configuration.ip_address"))},null,8,["model-value"])])}const G=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/device.vue"]]);export{G as default}; diff --git a/web/settings/assets/device-679bd060.js b/web/settings/assets/device-679bd060.js deleted file mode 100644 index 8a0fabd338..0000000000 --- a/web/settings/assets/device-679bd060.js +++ /dev/null @@ -1 +0,0 @@ -import{D as r}from"./HardwareInstallation-35a2a562.js";import{_ as d,u as i,l as u,m as p,G as t,E as m,B as c}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceQCells",mixins:[r]},b={class:"device-qcells"};function v(o,e,_,g,w,C){const l=i("openwb-base-heading"),a=i("openwb-base-text-input"),s=i("openwb-base-number-input");return u(),p("div",b,[t(l,null,{default:m(()=>[...e[3]||(e[3]=[c(" Einstellungen für QCells ESS ",-1)])]),_:1}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=d(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/qcells/qcells/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-6844ebef.js b/web/settings/assets/device-6844ebef.js deleted file mode 100644 index c224ac9789..0000000000 --- a/web/settings/assets/device-6844ebef.js +++ /dev/null @@ -1 +0,0 @@ -import{D as d}from"./HardwareInstallation-35a2a562.js";import{_ as u,u as t,l,m as p,G as i,E as m,B as v}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceCarloGavazzi",mixins:[d]},f={class:"device-carlo-gavazzi"};function _(o,e,b,g,z,w){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return l(),p("div",f,[i(r,null,{default:m(()=>[...e[3]||(e[3]=[v(" Einstellungen für Carlo Gavazzi ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/carlo_gavazzi/carlo_gavazzi/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-6b0c1cb1.js b/web/settings/assets/device-6b0c1cb1.js deleted file mode 100644 index 6c7b9bc9b0..0000000000 --- a/web/settings/assets/device-6b0c1cb1.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-35a2a562.js";import{_ as d,u as n,l as u,m,G as i,E as l,B as c}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceStuder",mixins:[a]},f={class:"device-studer"};function b(o,e,v,g,w,x){const r=n("openwb-base-heading"),s=n("openwb-base-text-input"),p=n("openwb-base-number-input");return u(),m("div",f,[i(r,null,{default:l(()=>[...e[2]||(e[2]=[c(" Einstellungen für Studer ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const P=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-6ea8eb37.js b/web/settings/assets/device-6ea8eb37.js new file mode 100644 index 0000000000..dce2cd4b48 --- /dev/null +++ b/web/settings/assets/device-6ea8eb37.js @@ -0,0 +1 @@ +import{D as p}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as i,l,m,G as t,E as v,B as b}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceUPower",mixins:[p]},_={class:"device-upower"};function c(o,e,g,w,C,U){const r=i("openwb-base-heading"),a=i("openwb-base-text-input"),u=i("openwb-base-number-input"),s=i("openwb-base-select-input");return l(),m("div",_,[t(r,null,{default:v(()=>e[4]||(e[4]=[b("Einstellungen für UPower",-1)])),_:1,__:[4]}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),t(s,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:"1",text:"Gen 1"},{value:"2",text:"Gen 2"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const k=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/upower/upower/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-73d2df08.js b/web/settings/assets/device-73d2df08.js deleted file mode 100644 index aeda898fb9..0000000000 --- a/web/settings/assets/device-73d2df08.js +++ /dev/null @@ -1 +0,0 @@ -import{D as r}from"./HardwareInstallation-35a2a562.js";import{_ as p,u as i,l as d,m as u,G as t,E as l,B as m}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSunways",mixins:[r]},f={class:"device-sunways"};function v(o,e,w,_,b,g){const a=i("openwb-base-heading"),s=i("openwb-base-text-input");return d(),u("div",f,[t(a,null,{default:l(()=>[...e[2]||(e[2]=[m(" Einstellungen für Sunways ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const q=p(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sunways/sunways/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-7571a6e9.js b/web/settings/assets/device-7571a6e9.js deleted file mode 100644 index f70c8b6dc3..0000000000 --- a/web/settings/assets/device-7571a6e9.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-35a2a562.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as b}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceNibe",mixins:[a]},_={class:"device-nibe"};function f(o,e,v,g,w,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",_,[i(s,null,{default:l(()=>[...e[2]||(e[2]=[b("Einstellungen für Nibe",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const P=d(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/nibe/nibe/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-77ab491f.js b/web/settings/assets/device-77ab491f.js new file mode 100644 index 0000000000..c1713e786c --- /dev/null +++ b/web/settings/assets/device-77ab491f.js @@ -0,0 +1 @@ +import{D as u}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as n,l,m as c,G as i,E as a,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceKaco",mixins:[u]},f={class:"device-kaco"};function b(o,e,v,g,w,x){const s=n("openwb-base-heading"),p=n("openwb-base-text-input"),d=n("openwb-base-number-input");return l(),c("div",f,[i(s,null,{default:a(()=>e[2]||(e[2]=[r(" Einstellungen für Kaco ",-1)])),_:1,__:[2]}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},{help:a(()=>e[3]||(e[3]=[r(" Der Standardport für Kaco ist 502. ",-1)])),_:1},8,["model-value"])])}const N=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_tx/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-7a7db35b.js b/web/settings/assets/device-7a7db35b.js new file mode 100644 index 0000000000..0540084057 --- /dev/null +++ b/web/settings/assets/device-7a7db35b.js @@ -0,0 +1 @@ +import{D as d}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as t,l,m as u,G as n,E as i,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceVZLogger",mixins:[d]},_={class:"device-vzlogger"};function c(o,e,v,f,b,w){const r=t("openwb-base-heading"),p=t("openwb-base-text-input");return l(),u("div",_,[n(r,null,{default:i(()=>e[1]||(e[1]=[s(" Einstellungen für VZLogger ",-1)])),_:1,__:[1]}),n(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},{help:i(()=>e[2]||(e[2]=[s(" Bei Angabe des Ports muss auch das Schema mit angegeben werden: http://ip:port ",-1)])),_:1},8,["model-value"])])}const k=m(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-7c75fb7c.js b/web/settings/assets/device-7c75fb7c.js new file mode 100644 index 0000000000..1c917a7101 --- /dev/null +++ b/web/settings/assets/device-7c75fb7c.js @@ -0,0 +1 @@ +import{D as l}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as t,l as d,m as u,G as i,E as s,B as o,A as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceJson",mixins:[l]},f={class:"device-json"};function b(n,e,v,g,w,x){const r=t("openwb-base-heading"),a=t("openwb-base-text-input");return d(),u("div",f,[i(r,null,{default:s(()=>e[1]||(e[1]=[o(" Einstellungen für JSON ",-1)])),_:1,__:[1]}),i(a,{title:"URL",subtype:"url",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=p=>n.updateConfiguration(p,"configuration.url"))},{help:s(()=>e[2]||(e[2]=[o(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen, optional einem Port und einem Pfad. Die Antwort muss ein json-Objekt sein.",-1),c("br",null,null,-1),o(" Beispiel: http://192.168.1.1:8080/json?data=1 ",-1)])),_:1},8,["model-value"])])}const $=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-7d03d320.js b/web/settings/assets/device-7d03d320.js new file mode 100644 index 0000000000..4d9a264b98 --- /dev/null +++ b/web/settings/assets/device-7d03d320.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as t,l as d,m as l,G as n,E as m,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceSolarWorld",mixins:[a]},c={class:"device-solar_world"};function f(o,e,v,b,w,g){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),l("div",c,[n(i,null,{default:m(()=>e[1]||(e[1]=[_(" Einstellungen für SolarWorld ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const k=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_world/solar_world/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-7def54a5.js b/web/settings/assets/device-7def54a5.js new file mode 100644 index 0000000000..be22032635 --- /dev/null +++ b/web/settings/assets/device-7def54a5.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as t,l,m as d,G as n,E as m,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceSolarLog",mixins:[a]},c={class:"device-solar_log"};function f(o,e,g,v,b,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return l(),d("div",c,[n(i,null,{default:m(()=>e[1]||(e[1]=[_(" Einstellungen für Solar-Log ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const L=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/solar_log/device.vue"]]);export{L as default}; diff --git a/web/settings/assets/device-7e0b9b28.js b/web/settings/assets/device-7e0b9b28.js deleted file mode 100644 index 25f1c85535..0000000000 --- a/web/settings/assets/device-7e0b9b28.js +++ /dev/null @@ -1 +0,0 @@ -import{D as u}from"./HardwareInstallation-35a2a562.js";import{_ as l,u as i,l as p,m as d,G as t,E as m,B as v}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolarView",mixins:[u]},_={class:"device-solar-view"};function c(o,e,b,g,w,V){const a=i("openwb-base-heading"),s=i("openwb-base-text-input"),r=i("openwb-base-number-input");return p(),d("div",_,[t(a,null,{default:m(()=>[...e[3]||(e[3]=[v(" Einstellungen für SolarView ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Timeout",required:"","model-value":o.device.configuration.timeout,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.timeout"))},null,8,["model-value"])])}const N=l(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/solar_view/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-803b339a.js b/web/settings/assets/device-803b339a.js new file mode 100644 index 0000000000..f7b2fd0ea1 --- /dev/null +++ b/web/settings/assets/device-803b339a.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceFoxEss",mixins:[a]},f={class:"device-fox_ess"};function b(o,e,v,g,x,w){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",f,[i(s,null,{default:l(()=>e[2]||(e[2]=[_("Einstellungen für FoxEss",-1)])),_:1,__:[2]}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-85d087eb.js b/web/settings/assets/device-85d087eb.js deleted file mode 100644 index f5cde68159..0000000000 --- a/web/settings/assets/device-85d087eb.js +++ /dev/null @@ -1 +0,0 @@ -import{D as d}from"./HardwareInstallation-35a2a562.js";import{_ as l,u as o,l as u,m,G as i,E as r,B as t,A as c}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceHttp",mixins:[d]},v={class:"device-http"};function _(n,e,b,g,w,x){const s=o("openwb-base-heading"),p=o("openwb-base-text-input");return u(),m("div",v,[i(s,null,{default:r(()=>[...e[1]||(e[1]=[t(" Einstellungen für Http ",-1)])]),_:1}),i(p,{title:"Server-URL",subtype:"url",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.url"))},{help:r(()=>[...e[2]||(e[2]=[t(" Hier sind die Verbindungsangaben für den Http-Server einzutragen. Der Pfad für die einzelnen Daten wird in der Komponente hinterlegt.",-1),c("br",null,null,-1),t(" Beispiel: http://mein.server:8080 ",-1)])]),_:1},8,["model-value"])])}const k=l(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-85f57776.js b/web/settings/assets/device-85f57776.js new file mode 100644 index 0000000000..b04d1996f8 --- /dev/null +++ b/web/settings/assets/device-85f57776.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as o,l as d,m,G as n,E as l,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceBatterX",mixins:[a]},_={class:"device-batterx"};function f(t,e,b,v,x,g){const i=o("openwb-base-heading"),s=o("openwb-base-text-input");return d(),m("div",_,[n(i,null,{default:l(()=>e[1]||(e[1]=[u(" Einstellungen für BatterX ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const N=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/batterx/batterx/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-86e0a461.js b/web/settings/assets/device-86e0a461.js new file mode 100644 index 0000000000..5332b6adab --- /dev/null +++ b/web/settings/assets/device-86e0a461.js @@ -0,0 +1 @@ +import{D as r}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as t,l as d,m as u,G as n,E as l,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOpenDTU",mixins:[r]},_={class:"device-opendtu"};function f(o,e,v,b,g,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),u("div",_,[n(i,null,{default:l(()=>e[1]||(e[1]=[m("Einstellungen für OpenDTU",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.url"))},null,8,["model-value"])])}const h=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/opendtu/opendtu/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-8739b2fb.js b/web/settings/assets/device-8739b2fb.js new file mode 100644 index 0000000000..fbce10b213 --- /dev/null +++ b/web/settings/assets/device-8739b2fb.js @@ -0,0 +1 @@ +import{D as p}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as t,l as m,m as d,G as n,E as l,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceMystrom",mixins:[p]},_={class:"device-mystrom"};function f(o,e,v,b,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return m(),d("div",_,[n(s,null,{default:l(()=>e[1]||(e[1]=[u("Einstellungen für mystrom",-1)])),_:1,__:[1]}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const k=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mystrom/mystrom/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-8ec43ff9.js b/web/settings/assets/device-8ec43ff9.js new file mode 100644 index 0000000000..2e76676cf1 --- /dev/null +++ b/web/settings/assets/device-8ec43ff9.js @@ -0,0 +1 @@ +import{D as p}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as t,l as d,m as c,G as n,E as m,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceRCT",mixins:[p]},_={class:"device-rct"};function f(o,e,v,b,g,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),c("div",_,[n(i,null,{default:m(()=>e[1]||(e[1]=[l(" Einstellungen für RCT ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const k=a(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/rct/rct/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-91624bc5.js b/web/settings/assets/device-91624bc5.js new file mode 100644 index 0000000000..017f078cf7 --- /dev/null +++ b/web/settings/assets/device-91624bc5.js @@ -0,0 +1 @@ +import{D as m}from"./HardwareInstallation-be759b0c.js";import{_ as b,u as i,l as g,m as v,G as t,E as r,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSungrow",mixins:[m]},_={class:"device-sungrow"};function w(n,e,c,S,D,N){const s=i("openwb-base-heading"),d=i("openwb-base-alert"),a=i("openwb-base-text-input"),l=i("openwb-base-number-input"),p=i("openwb-base-select-input");return g(),v("div",_,[t(s,null,{default:r(()=>e[4]||(e[4]=[u(" Einstellungen für Sungrow ",-1)])),_:1,__:[4]}),t(d,{subtype:"info"},{default:r(()=>e[5]||(e[5]=[u(" Bitte zur Fehlervermeidung die Firmware des Sungrow Wechselrichters und WiNet-S Dongles aktuell halten. ",-1)])),_:1,__:[5]}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(l,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"]),t(l,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},null,8,["model-value"]),t(p,{title:"Version",options:[{value:0,text:"SH (Hybrid)"},{value:3,text:"SH (Hybrid) über WiNet-S Dongle"},{value:1,text:"SG (kein Hybrid)"},{value:2,text:"SG (kein Hybrid) über WiNet-S Dongle"}],"model-value":n.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.version"))},{help:r(()=>e[6]||(e[6]=[u(" Die Variante SH sollte möglichst über den internen LAN-Port genutzt werden (befindet sich am Wechselrichter hinter dem WiNet-S Dongle), da nur hier alle Werte vollständig ausgelesen werden können. Den WiNet-S Dongle zusätzlich ins Heimnetz (per LAN oder WLAN) einbinden, um iSolarCloud nutzen zu können. ",-1)])),_:1},8,["model-value"])])}const h=b(f,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-91d8873a.js b/web/settings/assets/device-91d8873a.js new file mode 100644 index 0000000000..48b275cd3f --- /dev/null +++ b/web/settings/assets/device-91d8873a.js @@ -0,0 +1 @@ +import{D as p}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as t,l as u,m as l,G as i,E as m,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSunnyIsland",mixins:[p]},f={class:"device-sunnyisland"};function b(n,e,v,g,w,x){const s=t("openwb-base-heading"),a=t("openwb-base-text-input"),r=t("openwb-base-number-input");return u(),l("div",f,[i(s,null,{default:m(()=>e[2]||(e[2]=[_(" Einstellungen für Sunny Island ",-1)])),_:1,__:[2]}),i(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"])])}const q=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_island/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-92fd7ab5.js b/web/settings/assets/device-92fd7ab5.js deleted file mode 100644 index ae92a0cabb..0000000000 --- a/web/settings/assets/device-92fd7ab5.js +++ /dev/null @@ -1 +0,0 @@ -import{D as m}from"./HardwareInstallation-35a2a562.js";import{_ as v,u as t,l as i,m as f,G as a,E as c,B as b,x as u,z as r}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceAlphaess",mixins:[m]},_={class:"device-alphaess"};function w(e,o,V,C,B,E){const d=t("openwb-base-heading"),s=t("openwb-base-select-input"),p=t("openwb-base-text-input"),l=t("openwb-base-number-input");return i(),f("div",_,[a(d,null,{default:c(()=>[...o[5]||(o[5]=[b(" Einstellungen für Alpha ESS ",-1)])]),_:1}),a(s,{title:"Ausleseart","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Alpha ESS-Kit"},{value:1,text:"Hi 5/10"}],"model-value":e.device.configuration.source,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.source"))},null,8,["model-value"]),e.device.configuration.source==1?(i(),u(p,{key:0,title:"IP oder Hostname",subtype:"host",required:"","model-value":e.device.configuration.ip_address,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])):r("",!0),e.device.configuration.source==1?(i(),u(l,{key:1,title:"Port",required:"",min:1,max:65535,"model-value":e.device.configuration.port,"onUpdate:modelValue":o[2]||(o[2]=n=>e.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])):r("",!0),e.device.configuration.source==1?(i(),u(l,{key:2,title:"Modbus ID",required:"","model-value":e.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[3]||(o[3]=n=>e.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])):r("",!0),a(s,{title:"Firmware Version","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"EMS älter als 1.23V"},{value:1,text:"EMS 1.23V oder neuer"}],"model-value":e.device.configuration.version,"onUpdate:modelValue":o[4]||(o[4]=n=>e.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const x=v(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/alpha_ess/alpha_ess/device.vue"]]);export{x as default}; diff --git a/web/settings/assets/device-9308334a.js b/web/settings/assets/device-9308334a.js deleted file mode 100644 index ee0aa04025..0000000000 --- a/web/settings/assets/device-9308334a.js +++ /dev/null @@ -1 +0,0 @@ -import{D as m}from"./HardwareInstallation-35a2a562.js";import{_ as u,u as s,l as p,m as l,G as t,E as r,B as a}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceLG",mixins:[m]},f={class:"device-lg"};function c(n,e,v,b,_,w){const d=s("openwb-base-heading"),o=s("openwb-base-text-input");return p(),l("div",f,[t(d,null,{default:r(()=>[...e[2]||(e[2]=[a(" Einstellungen für LG ESS V1.0 ",-1)])]),_:1}),t(o,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(o,{title:"Passwort",subtype:"password",required:"","model-value":n.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.password"))},{help:r(()=>[...e[3]||(e[3]=[a(' Passwort, um sich in den LG ESS V1.0 einzuloggen. Das Passwort ist standardmäßig die Registrierungsnummer, die sich auf einem Aufkleber auf dem PCS (dem Hybridwechselrichter und Batteriemanagementsystem) befindet. Alternativ findet man die Registrierungsnummer in der App unter dem Menüpunkt "Systeminformationen". Mit der Registrierungsnummer kann man sich dann in der Rolle "installer" einloggen. ',-1)])]),_:1},8,["model-value"])])}const h=u(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/lg/lg/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-960c8f20.js b/web/settings/assets/device-960c8f20.js deleted file mode 100644 index 00658e5ebb..0000000000 --- a/web/settings/assets/device-960c8f20.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-35a2a562.js";import{_ as p,u as t,l as d,m as l,G as n,E as m,B as u}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolarWorld",mixins:[a]},c={class:"device-solar_world"};function f(o,e,v,b,w,g){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),l("div",c,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[u(" Einstellungen für SolarWorld ",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const k=p(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_world/solar_world/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-972a24e1.js b/web/settings/assets/device-972a24e1.js deleted file mode 100644 index 3baf871e30..0000000000 --- a/web/settings/assets/device-972a24e1.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-35a2a562.js";import{_ as d,u as n,l as m,m as u,G as i,E as l,B as c}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceMTec",mixins:[a]},f={class:"device-mtec"};function b(o,e,v,g,w,x){const s=n("openwb-base-heading"),r=n("openwb-base-text-input"),p=n("openwb-base-number-input");return m(),u("div",f,[i(s,null,{default:l(()=>[...e[2]||(e[2]=[c("Einstellungen für M-Tec",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const q=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-9962b0b8.js b/web/settings/assets/device-9962b0b8.js new file mode 100644 index 0000000000..aa27872209 --- /dev/null +++ b/web/settings/assets/device-9962b0b8.js @@ -0,0 +1 @@ +import{D as w}from"./HardwareInstallation-be759b0c.js";import{_ as c,u as t,l as s,m as f,G as r,E as a,B as o,x as d,z as l,A as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceHuawei",mixins:[w]},h={class:"device-huawei"};function k(n,e,D,H,C,B){const p=t("openwb-base-heading"),m=t("openwb-base-alert"),g=t("openwb-base-text-input"),u=t("openwb-base-number-input"),b=t("openwb-base-select-input");return s(),f("div",h,[r(p,null,{default:a(()=>e[4]||(e[4]=[o(" Einstellungen für Huawei ",-1)])),_:1,__:[4]}),r(m,{subtype:"info"},{default:a(()=>e[5]||(e[5]=[o(' Die Antwort der Huawei Wechselrichter benötigt sehr viel Zeit. Es wird empfohlen, dass Regelintervall der openWB auf "sehr langsam" zu stellen. Mit unserem Huawei-Kit können Huawei Wechselrichter auch in normaler Regelgeschwindigkeit abgefragt werden. ',-1)])),_:1,__:[5]}),n.device.configuration.type!="huawei_kit"?(s(),d(g,{key:0,title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"])):l("",!0),n.device.configuration.type!="huawei_kit"?(s(),d(u,{key:1,title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])):l("",!0),r(u,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=i=>n.updateConfiguration(i,"configuration.modbus_id"))},{help:a(()=>e[6]||(e[6]=[o(' Sind mehrere Huawei Wechselrichter als "Schwarm" verbunden, dann besitzt der Master vermutlich die ID "16". Über diese ID werden dann alle Daten in Summe zur Verfügung gestellt.',-1),v("br",null,null,-1),o(" Die IDs 1 bis 15 sind für einzelne Wechselrichter reserviert. ",-1)])),_:1},8,["model-value"]),r(b,{title:"Anbindung","not-selected":"Bitte auswählen",options:[{value:"s_dongle",text:"SDongle"},{value:"huawei_kit",text:"Huawei Kit"},{value:"modbus_rtu",text:"Modbus RTU (mit Modbus/TCP Adapter)"}],"model-value":n.device.configuration.type,required:"","onUpdate:modelValue":e[3]||(e[3]=i=>n.updateConfiguration(i,"configuration.type"))},{help:a(()=>e[7]||(e[7]=[o(' Die Anbindung über den Huawei SDongle erfordert die Regelgeschwindigkeit "sehr langsam". Alternativ kann Huawei auch mittels Modbus/TCP Adapter (z.B. Protoss oder Elfin) über den Modbus RTU Ausgang des Wechselrichters abgefragt werden. Hier gibt es keine Einschränkungen der Regelgeschwindigkeit. Eine gleichzeitige Nutzung von SDongle und Modbus RTU ist nicht möglich. ',-1)])),_:1},8,["model-value"])])}const S=c(_,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei/device.vue"]]);export{S as default}; diff --git a/web/settings/assets/device-9dcf188a.js b/web/settings/assets/device-9dcf188a.js new file mode 100644 index 0000000000..fc2c64e797 --- /dev/null +++ b/web/settings/assets/device-9dcf188a.js @@ -0,0 +1 @@ +import{D as d}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as i,l,m as p,G as t,E as m,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceKostalSEM",mixins:[d]},b={class:"device-kostal-sem"};function v(o,e,c,g,w,C){const s=i("openwb-base-heading"),r=i("openwb-base-text-input"),a=i("openwb-base-number-input");return l(),p("div",b,[t(s,null,{default:m(()=>e[3]||(e[3]=[_(" Einstellungen für Kostal Smart Energy Meter oder TQ EM 410 ",-1)])),_:1,__:[3]}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_sem/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-9f3b6855.js b/web/settings/assets/device-9f3b6855.js deleted file mode 100644 index c0af31f945..0000000000 --- a/web/settings/assets/device-9f3b6855.js +++ /dev/null @@ -1 +0,0 @@ -import{D as r}from"./HardwareInstallation-35a2a562.js";import{_ as u,u as s,l as d,m as p,G as n,E as l,B as m}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const v={name:"DeviceAvm",mixins:[r]},f={class:"device-avm"};function c(o,e,g,b,_,w){const a=s("openwb-base-heading"),i=s("openwb-base-text-input");return d(),p("div",f,[n(a,null,{default:l(()=>[...e[3]||(e[3]=[m("Einstellungen für AVM Fritz!Box",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const U=u(v,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/avm/avm/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-9fec4861.js b/web/settings/assets/device-9fec4861.js new file mode 100644 index 0000000000..213225e436 --- /dev/null +++ b/web/settings/assets/device-9fec4861.js @@ -0,0 +1 @@ +import{D as p}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as t,l as d,m,G as i,E as c,B as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceSolis",mixins:[p]},_={class:"device-solis"};function f(o,e,g,w,h,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input"),l=t("openwb-base-select-input");return d(),m("div",_,[i(s,null,{default:c(()=>e[3]||(e[3]=[v("Einstellungen für Solis",-1)])),_:1,__:[3]}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(l,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"inverter",text:"Wechselrichter ohne Speicheranbindung"},{value:"hybrid",text:"Hybridwechselrichter RHI/S Serie"}],"model-value":o.device.configuration.version,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const U=u(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-a0399988.js b/web/settings/assets/device-a0399988.js deleted file mode 100644 index e7d1a465e8..0000000000 --- a/web/settings/assets/device-a0399988.js +++ /dev/null @@ -1 +0,0 @@ -import{D as p}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as s,l as f,m as g,G as t,E as a,B as r,A as o}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const w={name:"DeviceTesla",mixins:[p]},b={class:"device-tesla"};function c(n,e,v,k,h,_){const d=s("openwb-base-heading"),u=s("openwb-base-alert"),l=s("openwb-base-text-input");return f(),g("div",b,[t(d,null,{default:a(()=>[...e[3]||(e[3]=[r(" Einstellungen für Tesla ",-1)])]),_:1}),t(u,{subtype:"danger"},{default:a(()=>[...e[4]||(e[4]=[o("span",{style:{"font-weight":"bold"}}," Tesla hat in der aktuellen Firmware-Version die lokale API der PowerWall abgeschaltet. ",-1),r("Daher ist es mit dieser Firmware nicht mehr möglich, die PowerWall direkt auszulesen. Wir prüfen aktuell den Zugriff über die Tesla-Server. Bis zur Umsetzung dieser Funktion ist es nicht möglich, die PowerWall lokal auszulesen.",-1),o("br",null,null,-1),o("span",{style:{"font-weight":"bold"}}," Wenn die lokale Abfrage bei Dir noch funktioniert, dann solltest Du die Firmware der PowerWall nicht aktualisieren! ",-1),o("br",null,null,-1),r(" Wir empfehlen, dass Du Tesla kontaktierst und Kritik an dieser Entscheidung mitteilst. Nur so können wir hoffen, dass Tesla die lokale API wieder aktiviert. Mit der Cloud-API kommt es zwangsläufig zu Verzögerungen (Latenzen), welche eine Regelung durch openWB erschweren. Weiterhin kommt es zu einem totalen Ausfall, wenn die Internetverbindung gestört ist. Aus diesen Gründen ist eine lokale API immer vorzuziehen. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(l,{title:"E-Mail",subtype:"email",required:"","model-value":n.device.configuration.email,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.email"))},null,8,["model-value"]),t(l,{title:"Passwort",subtype:"password",required:"","model-value":n.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=i=>n.updateConfiguration(i,"configuration.password"))},null,8,["model-value"])])}const y=m(w,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/tesla/device.vue"]]);export{y as default}; diff --git a/web/settings/assets/device-a0f15220.js b/web/settings/assets/device-a0f15220.js new file mode 100644 index 0000000000..b2ae5cf177 --- /dev/null +++ b/web/settings/assets/device-a0f15220.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as s,l as d,m as u,G as n,E as l,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceDiscovergy",mixins:[a]},v={class:"device-discovergy"};function f(o,e,g,_,b,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return d(),u("div",v,[n(r,null,{default:l(()=>e[2]||(e[2]=[m(" Einstellungen für Discovergy ",-1)])),_:1,__:[2]}),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const q=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-a0fa95d4.js b/web/settings/assets/device-a0fa95d4.js deleted file mode 100644 index b3a62973e3..0000000000 --- a/web/settings/assets/device-a0fa95d4.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-35a2a562.js";import{_ as p,u as s,l as m,m as u,G as n,E as d,B as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmartMe",mixins:[a]},f={class:"device-smart-me"};function v(o,e,_,b,g,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return m(),u("div",f,[n(r,null,{default:d(()=>[...e[2]||(e[2]=[l(" Einstellungen für smart-me ",-1)])]),_:1}),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const y=p(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/device.vue"]]);export{y as default}; diff --git a/web/settings/assets/device-a20ecbb0.js b/web/settings/assets/device-a20ecbb0.js deleted file mode 100644 index 1dcf974662..0000000000 --- a/web/settings/assets/device-a20ecbb0.js +++ /dev/null @@ -1 +0,0 @@ -import{D as p}from"./HardwareInstallation-35a2a562.js";import{_ as u,u as t,l as d,m,G as i,E as c,B as v}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceSolis",mixins:[p]},_={class:"device-solis"};function f(o,e,g,w,h,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input"),l=t("openwb-base-select-input");return d(),m("div",_,[i(s,null,{default:c(()=>[...e[3]||(e[3]=[v("Einstellungen für Solis",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(l,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"inverter",text:"Wechselrichter ohne Speicheranbindung"},{value:"hybrid",text:"Hybridwechselrichter RHI/S Serie"}],"model-value":o.device.configuration.version,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const U=u(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-a3e29987.js b/web/settings/assets/device-a3e29987.js deleted file mode 100644 index 45f338762c..0000000000 --- a/web/settings/assets/device-a3e29987.js +++ /dev/null @@ -1 +0,0 @@ -import{D as u}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as o,l as b,m as c,G as t,E as s,B as r,A as f}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSolarEdge",mixins:[u]},_={class:"device-solaredge"};function v(n,e,w,B,h,S){const a=o("openwb-base-heading"),d=o("openwb-base-alert"),p=o("openwb-base-text-input"),l=o("openwb-base-number-input");return b(),c("div",_,[t(a,null,{default:s(()=>[...e[2]||(e[2]=[r(" Einstellungen für SolarEdge ",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[r(" ModbusTCP muss im Wechselrichter aktiviert werden und der Wechselrichter per LAN angebunden sein.",-1),f("br",null,null,-1),r(" SolarEdge lässt nur eine ModbusTCP-Verbindung zu. Wenn Sie mit einem weiteren SmartHome-System, wie z.B. ioBroker oder openHAB, den SolarEdge-Wechselrichter abfragen, kann dies die Abfrage durch die openWB stören oder verhindern. ",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(l,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.port"))},{help:s(()=>[...e[4]||(e[4]=[r(" Je nach Produktionsdatum und Softwareversion ist 502 oder 1502 ab Werk eingestellt. Bitte im Wechselrichter überprüfen. ",-1)])]),_:1},8,["model-value"])])}const $=m(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-a502d549.js b/web/settings/assets/device-a502d549.js deleted file mode 100644 index 074220f94d..0000000000 --- a/web/settings/assets/device-a502d549.js +++ /dev/null @@ -1 +0,0 @@ -import{D as d}from"./HardwareInstallation-35a2a562.js";import{_ as u,u as i,l as p,m as l,G as t,E as m,B as v}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceVarta",mixins:[d]},b={class:"device-varta"};function _(o,e,c,g,w,V){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",b,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[v(" Einstellungen für Varta ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=u(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/varta/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-a8bcc901.js b/web/settings/assets/device-a8bcc901.js deleted file mode 100644 index 178f7192b6..0000000000 --- a/web/settings/assets/device-a8bcc901.js +++ /dev/null @@ -1 +0,0 @@ -import{D as s}from"./HardwareInstallation-35a2a562.js";import{_ as u,u as i,l as p,m as l,G as t,E as m,B as c}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceE3dc",mixins:[s]},b={class:"device-e3dc"};function v(o,e,_,g,w,C){const a=i("openwb-base-heading"),r=i("openwb-base-text-input"),d=i("openwb-base-number-input");return p(),l("div",b,[t(a,null,{default:m(()=>[...e[3]||(e[3]=[c(" Einstellungen für E3DC ",-1)])]),_:1}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.address"))},null,8,["model-value"]),t(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(d,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=u(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/e3dc/e3dc/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-aab545a0.js b/web/settings/assets/device-aab545a0.js new file mode 100644 index 0000000000..5dd644ad0b --- /dev/null +++ b/web/settings/assets/device-aab545a0.js @@ -0,0 +1 @@ +import{D as m}from"./HardwareInstallation-be759b0c.js";import{_ as v,u as t,l as i,m as f,G as a,E as c,B as b,x as u,z as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceAlphaess",mixins:[m]},_={class:"device-alphaess"};function w(e,o,V,C,B,E){const d=t("openwb-base-heading"),s=t("openwb-base-select-input"),p=t("openwb-base-text-input"),l=t("openwb-base-number-input");return i(),f("div",_,[a(d,null,{default:c(()=>o[5]||(o[5]=[b(" Einstellungen für Alpha ESS ",-1)])),_:1,__:[5]}),a(s,{title:"Ausleseart","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Alpha ESS-Kit"},{value:1,text:"Hi 5/10"}],"model-value":e.device.configuration.source,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.source"))},null,8,["model-value"]),e.device.configuration.source==1?(i(),u(p,{key:0,title:"IP oder Hostname",subtype:"host",required:"","model-value":e.device.configuration.ip_address,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])):r("",!0),e.device.configuration.source==1?(i(),u(l,{key:1,title:"Port",required:"",min:1,max:65535,"model-value":e.device.configuration.port,"onUpdate:modelValue":o[2]||(o[2]=n=>e.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])):r("",!0),e.device.configuration.source==1?(i(),u(l,{key:2,title:"Modbus ID",required:"","model-value":e.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[3]||(o[3]=n=>e.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])):r("",!0),a(s,{title:"Firmware Version","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"EMS älter als 1.23V"},{value:1,text:"EMS 1.23V oder neuer"}],"model-value":e.device.configuration.version,"onUpdate:modelValue":o[4]||(o[4]=n=>e.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const x=v(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/alpha_ess/alpha_ess/device.vue"]]);export{x as default}; diff --git a/web/settings/assets/device-ab579910.js b/web/settings/assets/device-ab579910.js new file mode 100644 index 0000000000..694ba4a57e --- /dev/null +++ b/web/settings/assets/device-ab579910.js @@ -0,0 +1 @@ +import{D as f}from"./HardwareInstallation-be759b0c.js";import{_ as g,u as d,l as t,m as b,G as l,E as a,B as i,x as s,z as u,A as p}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const w={name:"DeviceEnphase",mixins:[f]},y={class:"device-enphase"};function k(n,e,V,c,E,h){const m=d("openwb-base-heading"),r=d("openwb-base-text-input"),v=d("openwb-base-select-input");return t(),b("div",y,[l(m,null,{default:a(()=>e[6]||(e[6]=[i(" Einstellungen für Enphase Envoy / IQ Gateway ",-1)])),_:1,__:[6]}),l(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.hostname,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.hostname"))},{help:a(()=>e[7]||(e[7]=[i(' Bitte geben Sie die IP-Adresse oder den Hostnamen des Enphase Envoy oder IQ Gateway an. Die Info finden Sie in Ihrem Router. Ab Werk ist der Hostname "envoy" oder "envoy.local". ',-1)])),_:1},8,["model-value"]),l(v,{title:"Version",required:"",options:[{value:1,text:"Firmware < 7.0"},{value:2,text:"Firmware ab 7.0"}],"model-value":n.device.configuration.version,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.version"))},{help:a(()=>e[8]||(e[8]=[i(" Bitte wählen Sie die Version des Enphase Envoy oder IQ Gateway aus. Die Version 1 ist für Geräte mit einer Firmware-Version unter 7.0, die Version 2 für Geräte mit einer Firmware-Version ab 7.0. Ein angebundener Speicher wird nur bei Version 2 unterstützt. ",-1)])),_:1},8,["model-value"]),n.device.configuration.version>1?(t(),s(r,{key:0,title:"Benutzer",subtype:"user","model-value":n.device.configuration.user,required:"","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.user"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(t(),s(r,{key:1,title:"Kennwort",subtype:"password","model-value":n.device.configuration.password,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.password"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(t(),s(r,{key:2,title:"Envoy Seriennummer","model-value":n.device.configuration.serial,required:"","onUpdate:modelValue":e[4]||(e[4]=o=>n.updateConfiguration(o,"configuration.serial"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(t(),s(r,{key:3,title:"Token",subtype:"password","model-value":n.device.configuration.token,required:"","onUpdate:modelValue":e[5]||(e[5]=o=>n.updateConfiguration(o,"configuration.token"))},{help:a(()=>e[9]||(e[9]=[i(" Wenn Benutzer, Kennwort und Seriennummer des Envoys angegeben werden, wird das Token automatisch beim Speichern abgerufen. Ebenfalls wird ein abgelaufenes Token (derzeit nach einem Jahr) automatisch erneuert.",-1),p("br",null,null,-1),i(" Wenn Sie ein Token manuell erstellen möchten, können Sie dies auf der ",-1),p("a",{href:"https://developer.enphase.com/docs/quickstart.html",target:"_blank",rel:"noopener"}," Enphase-Webseite ",-1),i(" erledigen. ",-1)])),_:1},8,["model-value"])):u("",!0)])}const T=g(w,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/device.vue"]]);export{T as default}; diff --git a/web/settings/assets/device-abd46e94.js b/web/settings/assets/device-abd46e94.js new file mode 100644 index 0000000000..5e6915bf23 --- /dev/null +++ b/web/settings/assets/device-abd46e94.js @@ -0,0 +1 @@ +import{D as u}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as i,l as _,m as c,G as t,E as r,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceKostalPlenticore",mixins:[u]},f={class:"device-kostal-plenticore"};function v(o,e,g,w,C,E){const l=i("openwb-base-heading"),p=i("openwb-base-alert"),d=i("openwb-base-text-input"),s=i("openwb-base-number-input");return _(),c("div",f,[t(l,null,{default:r(()=>e[3]||(e[3]=[a(" Einstellungen für Kostal Plenticore ",-1)])),_:1,__:[3]}),t(p,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[a(" Wenn am Kostal Plenticore-Wechselrichter ein EM300 oder Kostal Smart Energy Meter (KSEM) angeschlossen ist, muss eine Zähler-und eine Wechselrichter-Komponente angelegt werden. ",-1)])),_:1,__:[4]}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const $=m(b,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-ad31bc6c.js b/web/settings/assets/device-ad31bc6c.js new file mode 100644 index 0000000000..7b00e76984 --- /dev/null +++ b/web/settings/assets/device-ad31bc6c.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceNibe",mixins:[a]},c={class:"device-nibe"};function f(o,e,v,g,w,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",c,[i(s,null,{default:l(()=>e[2]||(e[2]=[_("Einstellungen für Nibe",-1)])),_:1,__:[2]}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const P=d(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/nibe/nibe/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-ae294c78.js b/web/settings/assets/device-ae294c78.js deleted file mode 100644 index 9a83319f91..0000000000 --- a/web/settings/assets/device-ae294c78.js +++ /dev/null @@ -1 +0,0 @@ -import{D as s}from"./HardwareInstallation-35a2a562.js";import{_ as d,u as i,l as u,m,G as t,E as l,B as f}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceAmpere",mixins:[s]},v={class:"device-ampere"};function _(o,e,c,g,w,C){const a=i("openwb-base-heading"),p=i("openwb-base-text-input"),r=i("openwb-base-number-input");return u(),m("div",v,[t(a,null,{default:l(()=>[...e[3]||(e[3]=[f(" Einstellungen für Ampere Pro",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const k=d(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/ampere/ampere/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-ae4f5ccf.js b/web/settings/assets/device-ae4f5ccf.js new file mode 100644 index 0000000000..dcff633259 --- /dev/null +++ b/web/settings/assets/device-ae4f5ccf.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as s,l as u,m as p,G as t,E as l,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceBYD",mixins:[a]},v={class:"device-byd"};function b(o,e,c,g,_,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return u(),p("div",v,[t(r,null,{default:l(()=>e[3]||(e[3]=[m(" Einstellungen für BYD ",-1)])),_:1,__:[3]}),t(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.user"))},null,8,["model-value"]),t(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const U=d(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/byd/byd/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-af5d2d7d.js b/web/settings/assets/device-af5d2d7d.js deleted file mode 100644 index f9f001f5a7..0000000000 --- a/web/settings/assets/device-af5d2d7d.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-35a2a562.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as g}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSigenergy",mixins:[a]},_={class:"device-sigenergy"};function f(o,e,b,v,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",_,[i(r,null,{default:l(()=>[...e[2]||(e[2]=[g("Einstellungen für Sigenergy",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-b04921b7.js b/web/settings/assets/device-b04921b7.js deleted file mode 100644 index 60eaa9544e..0000000000 --- a/web/settings/assets/device-b04921b7.js +++ /dev/null @@ -1 +0,0 @@ -import{D as u}from"./HardwareInstallation-35a2a562.js";import{_ as p,u as r,l as d,m,G as i,E as s,B as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceKostalPikoOld",mixins:[u]},v={class:"device-kostal-piko-old"};function c(o,e,g,b,w,k){const a=r("openwb-base-heading"),n=r("openwb-base-text-input");return d(),m("div",v,[i(a,null,{default:s(()=>[...e[3]||(e[3]=[l(" Einstellungen für Kostal Piko (alte Generation) ",-1)])]),_:1}),i(n,{title:"URL",subtype:"url",required:"","model-value":o.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.url"))},{help:s(()=>[...e[4]||(e[4]=[l(' Es wird eine komplette URL inklusive Protokoll erwartet. Normalerweise ist der Wechselrichter über "http://IP" zu erreichen. ',-1)])]),_:1},8,["model-value"]),i(n,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),i(n,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const x=p(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko_old/device.vue"]]);export{x as default}; diff --git a/web/settings/assets/device-b06c2ec2.js b/web/settings/assets/device-b06c2ec2.js deleted file mode 100644 index 38a1b8fc88..0000000000 --- a/web/settings/assets/device-b06c2ec2.js +++ /dev/null @@ -1 +0,0 @@ -import{D as l}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as n,l as b,m as _,G as t,E as r,B as s}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSunnyBoy",mixins:[l]},f={class:"device-sunnyboy"};function v(o,e,w,g,y,x){const a=n("openwb-base-heading"),p=n("openwb-base-alert"),d=n("openwb-base-text-input"),u=n("openwb-base-number-input");return b(),_("div",f,[t(a,null,{default:r(()=>[...e[2]||(e[2]=[s(" Einstellungen für SMA Sunny Boy/Tripower ",-1)])]),_:1}),t(p,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[s(' ModbusTCP muss entweder direkt am Wechselrichter, per Sunny Portal oder über das Tool "Sunny Explorer" aktiviert werden. Dies ist standardmäßig deaktiviert. ',-1)])]),_:1}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const $=m(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-b2f0a632.js b/web/settings/assets/device-b2f0a632.js new file mode 100644 index 0000000000..a4b017df8c --- /dev/null +++ b/web/settings/assets/device-b2f0a632.js @@ -0,0 +1 @@ +import{D as p}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as n,l as m,m as _,G as a,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolarwatt",mixins:[p]},v={class:"device-solarwatt"};function c(t,e,w,b,g,x){const s=n("openwb-base-heading"),l=n("openwb-base-text-input"),d=n("openwb-base-select-input");return m(),_("div",v,[a(s,null,{default:i(()=>e[2]||(e[2]=[r(" Einstellungen für Solarwatt/My Reserve ",-1)])),_:1,__:[2]}),a(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),a(d,{title:"Abrufmethode","not-selected":"Bitte auswählen",options:[{value:0,text:"Gateway"},{value:1,text:"Energy Manager"}],"model-value":t.device.configuration.energy_manager,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.energy_manager"))},{help:i(()=>e[3]||(e[3]=[r(" Wenn beide Abrufmethoden verwendet werden sollen, muss für jede Methode ein Gerät erstellt werden. ",-1)])),_:1},8,["model-value"])])}const G=u(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_watt/solar_watt/device.vue"]]);export{G as default}; diff --git a/web/settings/assets/device-b2fa9413.js b/web/settings/assets/device-b2fa9413.js deleted file mode 100644 index 7717bbdb05..0000000000 --- a/web/settings/assets/device-b2fa9413.js +++ /dev/null @@ -1 +0,0 @@ -import{D as m}from"./HardwareInstallation-35a2a562.js";import{_ as l,u as i,l as b,m as f,G as t,E as r,B as a}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSiemensSentron",mixins:[m]},v={class:"device-siemens-sentron"};function c(n,e,g,w,C,x){const u=i("openwb-base-heading"),p=i("openwb-base-alert"),d=i("openwb-base-text-input"),s=i("openwb-base-number-input");return b(),f("div",v,[t(u,null,{default:r(()=>[...e[3]||(e[3]=[a(" Einstellungen für Siemens Sentron ",-1)])]),_:1}),t(p,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[a(' Derzeit werden nur Messgeräte vom Typ "7KM PAC2200" mit Ethernet-Schnittstelle unterstützt. ',-1)])]),_:1}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},null,8,["model-value"])])}const P=l(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/siemens_sentron/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-b3265f86.js b/web/settings/assets/device-b3265f86.js new file mode 100644 index 0000000000..ed8fde8cf3 --- /dev/null +++ b/web/settings/assets/device-b3265f86.js @@ -0,0 +1 @@ +import{D as p}from"./HardwareInstallation-be759b0c.js";import{_ as r,u as t,l as d,m,G as n,E as l,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSmaWebbox",mixins:[p]},c={class:"device-sma-webbox"};function b(o,e,f,v,x,g){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),m("div",c,[n(i,null,{default:l(()=>e[1]||(e[1]=[u(" Einstellungen für SMA Webbox ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const k=r(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_webbox/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-b3818b6c.js b/web/settings/assets/device-b3818b6c.js new file mode 100644 index 0000000000..faa68b4df3 --- /dev/null +++ b/web/settings/assets/device-b3818b6c.js @@ -0,0 +1 @@ +import{D as d}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as i,l as p,m as l,G as t,E as m,B as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceVarta",mixins:[d]},_={class:"device-varta"};function b(o,e,c,g,w,V){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",_,[t(r,null,{default:m(()=>e[3]||(e[3]=[v(" Einstellungen für Varta ",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=u(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/varta/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-b565b033.js b/web/settings/assets/device-b565b033.js deleted file mode 100644 index 8617297ea2..0000000000 --- a/web/settings/assets/device-b565b033.js +++ /dev/null @@ -1 +0,0 @@ -import{D as d}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as t,l,m as u,G as n,E as i,B as s}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceVZLogger",mixins:[d]},c={class:"device-vzlogger"};function _(o,e,v,f,b,w){const r=t("openwb-base-heading"),p=t("openwb-base-text-input");return l(),u("div",c,[n(r,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für VZLogger ",-1)])]),_:1}),n(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},{help:i(()=>[...e[2]||(e[2]=[s(" Bei Angabe des Ports muss auch das Schema mit angegeben werden: http://ip:port ",-1)])]),_:1},8,["model-value"])])}const k=m(g,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-b933a21c.js b/web/settings/assets/device-b933a21c.js new file mode 100644 index 0000000000..402a1a3e9e --- /dev/null +++ b/web/settings/assets/device-b933a21c.js @@ -0,0 +1 @@ +import{D as s}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as i,l as p,m as l,G as t,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceE3dc",mixins:[s]},b={class:"device-e3dc"};function v(o,e,_,g,w,C){const a=i("openwb-base-heading"),r=i("openwb-base-text-input"),d=i("openwb-base-number-input");return p(),l("div",b,[t(a,null,{default:m(()=>e[3]||(e[3]=[c(" Einstellungen für E3DC ",-1)])),_:1,__:[3]}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.address"))},null,8,["model-value"]),t(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(d,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=u(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/e3dc/e3dc/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-b94aa2cd.js b/web/settings/assets/device-b94aa2cd.js new file mode 100644 index 0000000000..14adbca3ef --- /dev/null +++ b/web/settings/assets/device-b94aa2cd.js @@ -0,0 +1 @@ +import{D as m}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as t,l,m as b,G as i,E as u,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceHuaweiEmma",mixins:[m]},_={class:"device-huawei-emma"};function v(o,e,g,w,c,C){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return l(),b("div",_,[i(r,null,{default:u(()=>e[3]||(e[3]=[d(" Einstellungen für Huawei EMMA ",-1)])),_:1,__:[3]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"0",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},{help:u(()=>e[4]||(e[4]=[d(" Huawei Emma nutzt entgegen der Modbus-Spezifikation standardmäßig die Modbus ID 0. ",-1)])),_:1},8,["model-value"])])}const q=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_emma/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-bb1ccbe7.js b/web/settings/assets/device-bb1ccbe7.js new file mode 100644 index 0000000000..b3c0ff7b17 --- /dev/null +++ b/web/settings/assets/device-bb1ccbe7.js @@ -0,0 +1 @@ +import{D as l}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as i,l as b,m as _,G as t,E as s,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DevicePowerdog",mixins:[l]},v={class:"device-powerdog"};function g(o,e,c,w,C,x){const a=i("openwb-base-heading"),p=i("openwb-base-alert"),u=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),_("div",v,[t(a,null,{default:s(()=>e[3]||(e[3]=[d(" Einstellungen für Powerdog ",-1)])),_:1,__:[3]}),t(p,{subtype:"info"},{default:s(()=>e[4]||(e[4]=[d(" ModbusTCP muss aktiviert sein. ",-1)])),_:1,__:[4]}),t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/powerdog/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-bb99b0ff.js b/web/settings/assets/device-bb99b0ff.js deleted file mode 100644 index 3298f4ba72..0000000000 --- a/web/settings/assets/device-bb99b0ff.js +++ /dev/null @@ -1 +0,0 @@ -import{D as p}from"./HardwareInstallation-35a2a562.js";import{_ as u,u as n,l as m,m as _,G as a,E as i,B as r}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolarwatt",mixins:[p]},v={class:"device-solarwatt"};function c(t,e,w,b,g,x){const s=n("openwb-base-heading"),l=n("openwb-base-text-input"),d=n("openwb-base-select-input");return m(),_("div",v,[a(s,null,{default:i(()=>[...e[2]||(e[2]=[r(" Einstellungen für Solarwatt/My Reserve ",-1)])]),_:1}),a(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),a(d,{title:"Abrufmethode","not-selected":"Bitte auswählen",options:[{value:0,text:"Gateway"},{value:1,text:"Energy Manager"}],"model-value":t.device.configuration.energy_manager,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.energy_manager"))},{help:i(()=>[...e[3]||(e[3]=[r(" Wenn beide Abrufmethoden verwendet werden sollen, muss für jede Methode ein Gerät erstellt werden. ",-1)])]),_:1},8,["model-value"])])}const G=u(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_watt/solar_watt/device.vue"]]);export{G as default}; diff --git a/web/settings/assets/device-bba31079.js b/web/settings/assets/device-bba31079.js new file mode 100644 index 0000000000..a9bde38396 --- /dev/null +++ b/web/settings/assets/device-bba31079.js @@ -0,0 +1 @@ +import{D as u}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as i,l as p,m as l,G as t,E as m,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceZCS",mixins:[u]},f={class:"device-azzurro_zcs"};function b(o,e,v,g,z,w){const a=i("openwb-base-heading"),s=i("openwb-base-text-input"),r=i("openwb-base-number-input");return p(),l("div",f,[t(a,null,{default:m(()=>e[3]||(e[3]=[_(" Einstellungen für Azzurro ZCS ",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const k=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/azzurro_zcs/azzurro_zcs/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-c71ae302.js b/web/settings/assets/device-c71ae302.js deleted file mode 100644 index 8d6dbfc005..0000000000 --- a/web/settings/assets/device-c71ae302.js +++ /dev/null @@ -1 +0,0 @@ -import{D as p}from"./HardwareInstallation-35a2a562.js";import{_ as a,u as o,l as d,m as l,G as t,E as m,B as u}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceBenning",mixins:[p]},_={class:"device-benning"};function f(n,e,b,g,v,x){const i=o("openwb-base-heading"),s=o("openwb-base-text-input");return d(),l("div",_,[t(i,null,{default:m(()=>[...e[1]||(e[1]=[u("Einstellungen für Benning",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.url"))},null,8,["model-value"])])}const N=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/benning/benning/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-c8921d75.js b/web/settings/assets/device-c8921d75.js new file mode 100644 index 0000000000..89a501e9b3 --- /dev/null +++ b/web/settings/assets/device-c8921d75.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as r,l as u,m as d,G as n,E as l,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DevicePowerfox",mixins:[a]},c={class:"device-powerfox"};function v(o,e,w,_,b,g){const s=r("openwb-base-heading"),i=r("openwb-base-text-input");return u(),d("div",c,[n(s,null,{default:l(()=>e[2]||(e[2]=[m(" Einstellungen für Powerfox ",-1)])),_:1,__:[2]}),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const q=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-c8cf58de.js b/web/settings/assets/device-c8cf58de.js deleted file mode 100644 index 7dec69221f..0000000000 --- a/web/settings/assets/device-c8cf58de.js +++ /dev/null @@ -1 +0,0 @@ -import{D as d}from"./HardwareInstallation-35a2a562.js";import{_ as u,u as i,l as p,m as l,G as t,E as m,B as f}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceJanitza",mixins:[d]},v={class:"device-janitza"};function _(o,e,c,g,w,C){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",v,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[f(" Einstellungen für Janitza ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/janitza/janitza/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-ca51cc16.js b/web/settings/assets/device-ca51cc16.js deleted file mode 100644 index ffbb6ae3ea..0000000000 --- a/web/settings/assets/device-ca51cc16.js +++ /dev/null @@ -1 +0,0 @@ -import{D as g}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as s,l as p,m as k,G as l,E as u,B as t,A as n,F as a,x as A,z as w}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSonnenbatterie",mixins:[g],computed:{linkRestApi1(){return"http://"+this.device.configuration.ip_address+":7979/rest/devices/battery"},linkRestApi2(){return"http://"+this.device.configuration.ip_address+":7979/rest/devices/battery/M05"},linkJsonApi1(){return"http://"+this.device.configuration.ip_address+"/api/v1/status"},linkJsonApi2(){return"http://"+this.device.configuration.ip_address+"/api/v2/status"}}},B={class:"device-sonnenbatterie"},I=["href"],S=["href"],P=["href"],J=["href"];function z(i,e,R,C,D,r){const v=s("openwb-base-heading"),f=s("openwb-base-alert"),d=s("openwb-base-text-input"),b=s("openwb-base-select-input");return p(),k("div",B,[l(v,null,{default:u(()=>[...e[3]||(e[3]=[t(" Einstellungen für SonnenBatterie ",-1)])]),_:1}),l(f,{subtype:"info"},{default:u(()=>[...e[4]||(e[4]=[t(' Die Leistung steht nur in den Varianten "Rest-API 2" und "JSON-API" zur Verfügung.',-1),n("br",null,null,-1),t(" Die aktive Steuerung des Speichers durch openWB ist nur mit der JSON-API v2 möglich. ",-1)])]),_:1}),l(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),l(b,{title:"Datenverbindung",required:"","not-selected":"Bitte auswählen",options:[{value:0,text:"Rest-API 1 (z.B. ECO 4)"},{value:2,text:"Rest-API 2 (z.B. ECO 6)"},{value:1,text:"JSON-API v1(z.B. ECO 8 oder 10)"},{value:3,text:"JSON-API v2(z.B. ECO 8 oder 10)"}],"model-value":i.device.configuration.variant,"onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o,"configuration.variant"))},{help:u(()=>[e[5]||(e[5]=t(" Je nach SonnenBatterie muss die richtige Datenverbindung ausgewählt werden. Folgende URLs werden zum Abruf der Daten genutzt und können auch manuell über einen Browser abgefragt werden, um die richtige Einstellung zu finden:",-1)),e[6]||(e[6]=n("br",null,null,-1)),e[7]||(e[7]=t(" Rest-API 1: ",-1)),n("a",{href:r.linkRestApi1,target:"_blank",rel:"noopener noreferrer"},a(r.linkRestApi1),9,I),e[8]||(e[8]=n("br",null,null,-1)),e[9]||(e[9]=t(" Rest-API 2: ",-1)),n("a",{href:r.linkRestApi2,target:"_blank",rel:"noopener noreferrer"},a(r.linkRestApi2),9,S),e[10]||(e[10]=n("br",null,null,-1)),e[11]||(e[11]=t(" JSON-API v1: ",-1)),n("a",{href:r.linkJsonApi1,target:"_blank",rel:"noopener noreferrer"},a(r.linkJsonApi1),9,P),e[12]||(e[12]=n("br",null,null,-1)),e[13]||(e[13]=t(" JSON-API v2: ",-1)),n("a",{href:r.linkJsonApi2,target:"_blank",rel:"noopener noreferrer"},a(r.linkJsonApi2),9,J),e[14]||(e[14]=n("br",null,null,-1))]),_:1},8,["model-value"]),i.device.configuration.variant===3?(p(),A(d,{key:0,title:"API-Token",subtype:"password",required:"","model-value":i.device.configuration.api_v2_token,"onUpdate:modelValue":e[2]||(e[2]=o=>i.updateConfiguration(o,"configuration.api_v2_token"))},{help:u(()=>[...e[15]||(e[15]=[t(' API-Token für JSON-API v2. Dieses Token wird benötigt, um detaillierte Daten auszulesen und den Speicher aktiv zu steuern (optional). Es kann in der Weboberfläche der SonnenBatterie unter "Software-Integration" erstellt werden.',-1),n("br",null,null,-1),t(' Für die aktive Steuerung durch openWB ist ebenfalls die "Write API" zu aktivieren! ',-1)])]),_:1},8,["model-value"])):w("",!0)])}const T=m(_,[["render",z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/device.vue"]]);export{T as default}; diff --git a/web/settings/assets/device-cbf306be.js b/web/settings/assets/device-cbf306be.js new file mode 100644 index 0000000000..dcc357e5f4 --- /dev/null +++ b/web/settings/assets/device-cbf306be.js @@ -0,0 +1 @@ +import{D as d}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as t,l as c,m as _,G as o,E as s,B as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceKostalPiko",mixins:[d]},f={class:"device-kostal-piko"};function b(n,e,v,g,k,h){const a=t("openwb-base-heading"),r=t("openwb-base-alert"),p=t("openwb-base-text-input");return c(),_("div",f,[o(a,null,{default:s(()=>e[1]||(e[1]=[i(" Einstellungen für Kostal Piko ",-1)])),_:1,__:[1]}),o(r,{subtype:"info"},{default:s(()=>e[2]||(e[2]=[i(" Der Wechselrichter liefert Werte nur, solange er auch PV-Leistung liefert. Nachts geht er in den Standby. Die Hausanschlussüberwachung ist nur aktiv, wenn der Wechselrichter auch aktiv ist. ",-1)])),_:1,__:[2]}),o(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=l=>n.updateConfiguration(l,"configuration.ip_address"))},null,8,["model-value"])])}const y=u(m,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/device.vue"]]);export{y as default}; diff --git a/web/settings/assets/device-cf37b016.js b/web/settings/assets/device-cf37b016.js deleted file mode 100644 index ac0da49dc7..0000000000 --- a/web/settings/assets/device-cf37b016.js +++ /dev/null @@ -1 +0,0 @@ -import{D as p}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as i,l as b,m as f,G as t,E as s,B as a}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceElgris",mixins:[p]},g={class:"device-elgris"};function v(o,e,c,w,C,D){const u=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),f("div",g,[t(u,null,{default:s(()=>[...e[3]||(e[3]=[a(" Einstellungen für Elgris",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[a(" Der Zähler ist auf Modbus-ID 1 und Port 502 vorkonfiguriert. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const P=m(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/elgris/elgris/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-d4ad788d.js b/web/settings/assets/device-d4ad788d.js deleted file mode 100644 index 7f61d32f2a..0000000000 --- a/web/settings/assets/device-d4ad788d.js +++ /dev/null @@ -1 +0,0 @@ -import{D as u}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as n,l as c,m as f,G as o,E as l,B as s}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceShelly",mixins:[u]},v={class:"device-shelly"};function b(t,e,g,h,w,y){const r=n("openwb-base-heading"),a=n("openwb-base-alert"),p=n("openwb-base-text-input"),d=n("openwb-base-select-input");return c(),f("div",v,[o(r,null,{default:l(()=>[...e[2]||(e[2]=[s(" Einstellungen für Shelly ",-1)])]),_:1}),o(a,{subtype:"info"},{default:l(()=>[...e[3]||(e[3]=[s(" Unterstützt werden theoretisch alle ein- und dreiphasigen Shelly der Generation 1-3. Getestete Modelle sind Shelly 1pm, 1pm plus, Pro Pro 3EM, Plug S. ",-1)])]),_:1}),o(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),o(d,{title:"Vorzeichen invertieren","not-selected":"Bitte auswählen",options:[{value:-1,text:"ja"},{value:1,text:"nein"}],"model-value":t.device.configuration.factor,required:"","onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.factor"))},{help:l(()=>[...e[4]||(e[4]=[s(" Einige Shelly Modelle liefern die Leistung mit umgedrehtem Vorzeichen. Falls dies der Fall sein sollte, das Vorzeichen invertieren. ",-1)])]),_:1},8,["model-value"])])}const $=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/shelly/shelly/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-d7f94b0d.js b/web/settings/assets/device-d7f94b0d.js new file mode 100644 index 0000000000..7d30ef2fc1 --- /dev/null +++ b/web/settings/assets/device-d7f94b0d.js @@ -0,0 +1 @@ +import{D as d}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as t,l,m as p,G as i,E as m,B as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceCarloGavazzi",mixins:[d]},c={class:"device-carlo-gavazzi"};function f(o,e,b,g,z,w){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return l(),p("div",c,[i(r,null,{default:m(()=>e[3]||(e[3]=[v(" Einstellungen für Carlo Gavazzi ",-1)])),_:1,__:[3]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/carlo_gavazzi/carlo_gavazzi/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-d8332f79.js b/web/settings/assets/device-d8332f79.js new file mode 100644 index 0000000000..5c56d442ec --- /dev/null +++ b/web/settings/assets/device-d8332f79.js @@ -0,0 +1 @@ +import{D as r}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as s,l as d,m as p,G as n,E as l,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"DeviceAvm",mixins:[r]},f={class:"device-avm"};function c(o,e,g,_,b,w){const a=s("openwb-base-heading"),i=s("openwb-base-text-input");return d(),p("div",f,[n(a,null,{default:l(()=>e[3]||(e[3]=[m("Einstellungen für AVM Fritz!Box",-1)])),_:1,__:[3]}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const U=u(v,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/avm/avm/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-d8a93eb3.js b/web/settings/assets/device-d8a93eb3.js deleted file mode 100644 index 8dc941bc32..0000000000 --- a/web/settings/assets/device-d8a93eb3.js +++ /dev/null @@ -1 +0,0 @@ -import{D as d}from"./HardwareInstallation-35a2a562.js";import{_ as u,u as i,l as p,m as l,G as t,E as m,B as f}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceSofar",mixins:[d]},v={class:"device-sofar"};function _(o,e,c,g,w,C){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",v,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[f("Einstellungen für Sofar",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=u(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sofar/sofar/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-daf6231d.js b/web/settings/assets/device-daf6231d.js new file mode 100644 index 0000000000..808100b3e1 --- /dev/null +++ b/web/settings/assets/device-daf6231d.js @@ -0,0 +1 @@ +import{D as d}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as t,l as p,m,G as i,E as l,B as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceThermia",mixins:[d]},b={class:"device-thermia"};function v(o,e,c,g,w,C){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return p(),m("div",b,[i(r,null,{default:l(()=>e[3]||(e[3]=[f(" Einstellungen für Thermia ",-1)])),_:1,__:[3]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/thermia/thermia/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-dcaf1061.js b/web/settings/assets/device-dcaf1061.js new file mode 100644 index 0000000000..8963f0bcbe --- /dev/null +++ b/web/settings/assets/device-dcaf1061.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as n,l as u,m,G as i,E as l,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceStuder",mixins:[a]},f={class:"device-studer"};function b(o,e,v,g,w,x){const r=n("openwb-base-heading"),s=n("openwb-base-text-input"),p=n("openwb-base-number-input");return u(),m("div",f,[i(r,null,{default:l(()=>e[2]||(e[2]=[_(" Einstellungen für Studer ",-1)])),_:1,__:[2]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const P=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-e172cd2d.js b/web/settings/assets/device-e172cd2d.js deleted file mode 100644 index 3b123e244e..0000000000 --- a/web/settings/assets/device-e172cd2d.js +++ /dev/null @@ -1 +0,0 @@ -import{D as p}from"./HardwareInstallation-35a2a562.js";import{_ as a,u as t,l as m,m as d,G as n,E as l,B as u}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceMystrom",mixins:[p]},_={class:"device-mystrom"};function f(o,e,v,b,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return m(),d("div",_,[n(s,null,{default:l(()=>[...e[1]||(e[1]=[u("Einstellungen für mystrom",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const k=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mystrom/mystrom/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-e30832ce.js b/web/settings/assets/device-e30832ce.js deleted file mode 100644 index 5fbae23378..0000000000 --- a/web/settings/assets/device-e30832ce.js +++ /dev/null @@ -1 +0,0 @@ -import{D as r}from"./HardwareInstallation-35a2a562.js";import{_ as a,u as t,l as d,m as l,G as s,E as u,B as m}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceYouless",mixins:[r]},_={class:"device-youless"};function f(o,e,v,b,g,x){const n=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),l("div",_,[s(n,null,{default:u(()=>[...e[1]||(e[1]=[m(" Einstellungen für Youless ",-1)])]),_:1}),s(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.ip_address"))},null,8,["model-value"])])}const k=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/youless/youless/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-e379eb65.js b/web/settings/assets/device-e379eb65.js new file mode 100644 index 0000000000..4b78f310e3 --- /dev/null +++ b/web/settings/assets/device-e379eb65.js @@ -0,0 +1 @@ +import{D as m}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as s,l as p,m as l,G as t,E as r,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceLG",mixins:[m]},f={class:"device-lg"};function c(n,e,v,_,b,w){const d=s("openwb-base-heading"),o=s("openwb-base-text-input");return p(),l("div",f,[t(d,null,{default:r(()=>e[2]||(e[2]=[a(" Einstellungen für LG ESS V1.0 ",-1)])),_:1,__:[2]}),t(o,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(o,{title:"Passwort",subtype:"password",required:"","model-value":n.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.password"))},{help:r(()=>e[3]||(e[3]=[a(' Passwort, um sich in den LG ESS V1.0 einzuloggen. Das Passwort ist standardmäßig die Registrierungsnummer, die sich auf einem Aufkleber auf dem PCS (dem Hybridwechselrichter und Batteriemanagementsystem) befindet. Alternativ findet man die Registrierungsnummer in der App unter dem Menüpunkt "Systeminformationen". Mit der Registrierungsnummer kann man sich dann in der Rolle "installer" einloggen. ',-1)])),_:1},8,["model-value"])])}const h=u(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/lg/lg/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-e4b96323.js b/web/settings/assets/device-e4b96323.js deleted file mode 100644 index dbdac89c25..0000000000 --- a/web/settings/assets/device-e4b96323.js +++ /dev/null @@ -1 +0,0 @@ -import{D as l}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as i,l as b,m as f,G as t,E as s,B as d}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"DevicePowerdog",mixins:[l]},v={class:"device-powerdog"};function g(o,e,c,w,C,x){const a=i("openwb-base-heading"),p=i("openwb-base-alert"),u=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),f("div",v,[t(a,null,{default:s(()=>[...e[3]||(e[3]=[d(" Einstellungen für Powerdog ",-1)])]),_:1}),t(p,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[d(" ModbusTCP muss aktiviert sein. ",-1)])]),_:1}),t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/powerdog/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-e7c95f73.js b/web/settings/assets/device-e7c95f73.js deleted file mode 100644 index 2381894b9d..0000000000 --- a/web/settings/assets/device-e7c95f73.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-35a2a562.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as c}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceOrno",mixins:[a]},f={class:"device-orno"};function b(o,e,v,g,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",f,[i(r,null,{default:l(()=>[...e[2]||(e[2]=[c("Einstellungen für Orno WE-514",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const O=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/orno/orno/device.vue"]]);export{O as default}; diff --git a/web/settings/assets/device-ea2ecac8.js b/web/settings/assets/device-ea2ecac8.js new file mode 100644 index 0000000000..d21218b1f4 --- /dev/null +++ b/web/settings/assets/device-ea2ecac8.js @@ -0,0 +1 @@ +import{D as p}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as s,l as f,m as g,G as t,E as a,B as r,A as o}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const w={name:"DeviceTesla",mixins:[p]},b={class:"device-tesla"};function c(n,e,v,k,_,h){const d=s("openwb-base-heading"),u=s("openwb-base-alert"),l=s("openwb-base-text-input");return f(),g("div",b,[t(d,null,{default:a(()=>e[3]||(e[3]=[r(" Einstellungen für Tesla ",-1)])),_:1,__:[3]}),t(u,{subtype:"danger"},{default:a(()=>e[4]||(e[4]=[o("span",{style:{"font-weight":"bold"}}," Tesla hat in der aktuellen Firmware-Version die lokale API der PowerWall abgeschaltet. ",-1),r("Daher ist es mit dieser Firmware nicht mehr möglich, die PowerWall direkt auszulesen. Wir prüfen aktuell den Zugriff über die Tesla-Server. Bis zur Umsetzung dieser Funktion ist es nicht möglich, die PowerWall lokal auszulesen.",-1),o("br",null,null,-1),o("span",{style:{"font-weight":"bold"}}," Wenn die lokale Abfrage bei Dir noch funktioniert, dann solltest Du die Firmware der PowerWall nicht aktualisieren! ",-1),o("br",null,null,-1),r(" Wir empfehlen, dass Du Tesla kontaktierst und Kritik an dieser Entscheidung mitteilst. Nur so können wir hoffen, dass Tesla die lokale API wieder aktiviert. Mit der Cloud-API kommt es zwangsläufig zu Verzögerungen (Latenzen), welche eine Regelung durch openWB erschweren. Weiterhin kommt es zu einem totalen Ausfall, wenn die Internetverbindung gestört ist. Aus diesen Gründen ist eine lokale API immer vorzuziehen. ",-1)])),_:1,__:[4]}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(l,{title:"E-Mail",subtype:"email",required:"","model-value":n.device.configuration.email,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.email"))},null,8,["model-value"]),t(l,{title:"Passwort",subtype:"password",required:"","model-value":n.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=i=>n.updateConfiguration(i,"configuration.password"))},null,8,["model-value"])])}const y=m(w,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/tesla/device.vue"]]);export{y as default}; diff --git a/web/settings/assets/device-ea6bfe36.js b/web/settings/assets/device-ea6bfe36.js deleted file mode 100644 index 2f5c5e60a4..0000000000 --- a/web/settings/assets/device-ea6bfe36.js +++ /dev/null @@ -1 +0,0 @@ -import{D as m}from"./HardwareInstallation-35a2a562.js";import{_ as l,u as i,l as b,m as f,G as t,E as r,B as a}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSiemens",mixins:[m]},v={class:"device-siemens"};function c(o,e,g,w,C,x){const p=i("openwb-base-heading"),d=i("openwb-base-alert"),u=i("openwb-base-text-input"),s=i("openwb-base-number-input");return b(),f("div",v,[t(p,null,{default:r(()=>[...e[3]||(e[3]=[a(" Einstellungen für Siemens ",-1)])]),_:1}),t(d,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[a(" Im Siemens-Speicher muss die Schnittstelle openWB gewählt werden. ",-1)])]),_:1}),t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const k=l(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/siemens/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-ebeb6744.js b/web/settings/assets/device-ebeb6744.js deleted file mode 100644 index 52a991e906..0000000000 --- a/web/settings/assets/device-ebeb6744.js +++ /dev/null @@ -1 +0,0 @@ -import{D as w}from"./HardwareInstallation-35a2a562.js";import{_ as c,u as t,l as s,m as f,G as r,E as a,B as o,x as d,z as l,A as v}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const h={name:"DeviceHuawei",mixins:[w]},_={class:"device-huawei"};function k(n,e,D,H,C,B){const p=t("openwb-base-heading"),m=t("openwb-base-alert"),g=t("openwb-base-text-input"),u=t("openwb-base-number-input"),b=t("openwb-base-select-input");return s(),f("div",_,[r(p,null,{default:a(()=>[...e[4]||(e[4]=[o(" Einstellungen für Huawei ",-1)])]),_:1}),r(m,{subtype:"info"},{default:a(()=>[...e[5]||(e[5]=[o(' Die Antwort der Huawei Wechselrichter benötigt sehr viel Zeit. Es wird empfohlen, dass Regelintervall der openWB auf "sehr langsam" zu stellen. Mit unserem Huawei-Kit können Huawei Wechselrichter auch in normaler Regelgeschwindigkeit abgefragt werden. ',-1)])]),_:1}),n.device.configuration.type!="huawei_kit"?(s(),d(g,{key:0,title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"])):l("",!0),n.device.configuration.type!="huawei_kit"?(s(),d(u,{key:1,title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])):l("",!0),r(u,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=i=>n.updateConfiguration(i,"configuration.modbus_id"))},{help:a(()=>[...e[6]||(e[6]=[o(' Sind mehrere Huawei Wechselrichter als "Schwarm" verbunden, dann besitzt der Master vermutlich die ID "16". Über diese ID werden dann alle Daten in Summe zur Verfügung gestellt.',-1),v("br",null,null,-1),o(" Die IDs 1 bis 15 sind für einzelne Wechselrichter reserviert. ",-1)])]),_:1},8,["model-value"]),r(b,{title:"Anbindung","not-selected":"Bitte auswählen",options:[{value:"s_dongle",text:"SDongle"},{value:"huawei_kit",text:"Huawei Kit"},{value:"modbus_rtu",text:"Modbus RTU (mit Modbus/TCP Adapter)"}],"model-value":n.device.configuration.type,required:"","onUpdate:modelValue":e[3]||(e[3]=i=>n.updateConfiguration(i,"configuration.type"))},{help:a(()=>[...e[7]||(e[7]=[o(' Die Anbindung über den Huawei SDongle erfordert die Regelgeschwindigkeit "sehr langsam". Alternativ kann Huawei auch mittels Modbus/TCP Adapter (z.B. Protoss oder Elfin) über den Modbus RTU Ausgang des Wechselrichters abgefragt werden. Hier gibt es keine Einschränkungen der Regelgeschwindigkeit. Eine gleichzeitige Nutzung von SDongle und Modbus RTU ist nicht möglich. ',-1)])]),_:1},8,["model-value"])])}const S=c(h,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei/device.vue"]]);export{S as default}; diff --git a/web/settings/assets/device-f05f6339.js b/web/settings/assets/device-f05f6339.js deleted file mode 100644 index 5223105600..0000000000 --- a/web/settings/assets/device-f05f6339.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-35a2a562.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as c}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceVictron",mixins:[a]},v={class:"device-victron"};function f(o,e,b,g,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",v,[i(r,null,{default:l(()=>[...e[2]||(e[2]=[c(" Einstellungen für Victron ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const P=d(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-f0df93ee.js b/web/settings/assets/device-f0df93ee.js deleted file mode 100644 index 9a928eaae2..0000000000 --- a/web/settings/assets/device-f0df93ee.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-35a2a562.js";import{_ as p,u as s,l as d,m as u,G as n,E as l,B as m}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceDiscovergy",mixins:[a]},v={class:"device-discovergy"};function f(o,e,g,_,b,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return d(),u("div",v,[n(r,null,{default:l(()=>[...e[2]||(e[2]=[m(" Einstellungen für Discovergy ",-1)])]),_:1}),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const q=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-f1807705.js b/web/settings/assets/device-f1807705.js deleted file mode 100644 index 717074ade0..0000000000 --- a/web/settings/assets/device-f1807705.js +++ /dev/null @@ -1 +0,0 @@ -import{D as u}from"./HardwareInstallation-35a2a562.js";import{_ as d,u as i,l as p,m as l,G as t,E as m,B as _}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceZCS",mixins:[u]},f={class:"device-azzurro_zcs"};function b(o,e,v,g,z,w){const a=i("openwb-base-heading"),s=i("openwb-base-text-input"),r=i("openwb-base-number-input");return p(),l("div",f,[t(a,null,{default:m(()=>[...e[3]||(e[3]=[_(" Einstellungen für Azzurro ZCS ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const k=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/azzurro_zcs/azzurro_zcs/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-f410c3e0.js b/web/settings/assets/device-f410c3e0.js deleted file mode 100644 index fc0f5f75c8..0000000000 --- a/web/settings/assets/device-f410c3e0.js +++ /dev/null @@ -1 +0,0 @@ -import{D as f}from"./HardwareInstallation-35a2a562.js";import{_ as g,u as d,l as t,m as b,G as l,E as a,B as i,x as s,z as u,A as p}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const w={name:"DeviceEnphase",mixins:[f]},y={class:"device-enphase"};function k(n,e,V,c,E,h){const m=d("openwb-base-heading"),r=d("openwb-base-text-input"),v=d("openwb-base-select-input");return t(),b("div",y,[l(m,null,{default:a(()=>[...e[6]||(e[6]=[i(" Einstellungen für Enphase Envoy / IQ Gateway ",-1)])]),_:1}),l(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.hostname,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.hostname"))},{help:a(()=>[...e[7]||(e[7]=[i(' Bitte geben Sie die IP-Adresse oder den Hostnamen des Enphase Envoy oder IQ Gateway an. Die Info finden Sie in Ihrem Router. Ab Werk ist der Hostname "envoy" oder "envoy.local". ',-1)])]),_:1},8,["model-value"]),l(v,{title:"Version",required:"",options:[{value:1,text:"Firmware < 7.0"},{value:2,text:"Firmware ab 7.0"}],"model-value":n.device.configuration.version,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.version"))},{help:a(()=>[...e[8]||(e[8]=[i(" Bitte wählen Sie die Version des Enphase Envoy oder IQ Gateway aus. Die Version 1 ist für Geräte mit einer Firmware-Version unter 7.0, die Version 2 für Geräte mit einer Firmware-Version ab 7.0. Ein angebundener Speicher wird nur bei Version 2 unterstützt. ",-1)])]),_:1},8,["model-value"]),n.device.configuration.version>1?(t(),s(r,{key:0,title:"Benutzer",subtype:"user","model-value":n.device.configuration.user,required:"","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.user"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(t(),s(r,{key:1,title:"Kennwort",subtype:"password","model-value":n.device.configuration.password,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.password"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(t(),s(r,{key:2,title:"Envoy Seriennummer","model-value":n.device.configuration.serial,required:"","onUpdate:modelValue":e[4]||(e[4]=o=>n.updateConfiguration(o,"configuration.serial"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(t(),s(r,{key:3,title:"Token",subtype:"password","model-value":n.device.configuration.token,required:"","onUpdate:modelValue":e[5]||(e[5]=o=>n.updateConfiguration(o,"configuration.token"))},{help:a(()=>[...e[9]||(e[9]=[i(" Wenn Benutzer, Kennwort und Seriennummer des Envoys angegeben werden, wird das Token automatisch beim Speichern abgerufen. Ebenfalls wird ein abgelaufenes Token (derzeit nach einem Jahr) automatisch erneuert.",-1),p("br",null,null,-1),i(" Wenn Sie ein Token manuell erstellen möchten, können Sie dies auf der ",-1),p("a",{href:"https://developer.enphase.com/docs/quickstart.html",target:"_blank",rel:"noopener"}," Enphase-Webseite ",-1),i(" erledigen. ",-1)])]),_:1},8,["model-value"])):u("",!0)])}const T=g(w,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/device.vue"]]);export{T as default}; diff --git a/web/settings/assets/device-faa6a2a5.js b/web/settings/assets/device-faa6a2a5.js deleted file mode 100644 index 6ced8a091a..0000000000 --- a/web/settings/assets/device-faa6a2a5.js +++ /dev/null @@ -1 +0,0 @@ -import{D as p}from"./HardwareInstallation-35a2a562.js";import{_ as u,u as n,l as m,m as d,G as i,E as l,B as _}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceHuaweiSmartLogger",mixins:[p]},g={class:"device-huawei-smart-logger"};function f(o,e,b,v,w,x){const r=n("openwb-base-heading"),a=n("openwb-base-text-input"),s=n("openwb-base-number-input");return m(),d("div",g,[i(r,null,{default:l(()=>[...e[2]||(e[2]=[_(" Einstellungen für Huawei SmartLogger ",-1)])]),_:1}),i(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const q=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-fae6d510.js b/web/settings/assets/device-fae6d510.js deleted file mode 100644 index abf457d60a..0000000000 --- a/web/settings/assets/device-fae6d510.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-35a2a562.js";import{_ as p,u as o,l as d,m,G as n,E as l,B as u}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceBatterX",mixins:[a]},_={class:"device-batterx"};function f(t,e,b,v,x,g){const i=o("openwb-base-heading"),s=o("openwb-base-text-input");return d(),m("div",_,[n(i,null,{default:l(()=>[...e[1]||(e[1]=[u(" Einstellungen für BatterX ",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const N=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/batterx/batterx/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-fb490d78.js b/web/settings/assets/device-fb490d78.js deleted file mode 100644 index 51d06cfe88..0000000000 --- a/web/settings/assets/device-fb490d78.js +++ /dev/null @@ -1 +0,0 @@ -import{D as p}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as i,l as g,m as b,G as t,E as r,B as s}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolax",mixins:[p]},v={class:"device-solax"};function c(n,e,_,w,x,G){const l=i("openwb-base-heading"),d=i("openwb-base-text-input"),a=i("openwb-base-number-input"),u=i("openwb-base-select-input");return g(),b("div",v,[t(l,null,{default:r(()=>[...e[4]||(e[4]=[s(" Einstellungen für Solax ",-1)])]),_:1}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",min:1,max:65535,placeholder:502,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},{help:r(()=>[...e[5]||(e[5]=[s(" Standardmäßig ist der Port 502. Dieser sollte nur geändert werden, wenn der Solax Wechselrichter auf einen anderen Port konfiguriert wurde. ",-1)])]),_:1},8,["model-value"]),t(a,{title:"Modbus-ID",required:"",min:0,max:255,"model-value":n.device.configuration.modbus_id,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},{help:r(()=>[...e[6]||(e[6]=[s(" Laut der Schnittstellenbeschreibung ist die ID bei Solax ab Werk auf 1 gesetzt. Entgegen der Beschreibung ist meist für Gen4 eine ID größer als 2 eingestellt. Bei Gen3 sogar (gegen jeglicher Modbus Standards) eine 0. ",-1)])]),_:1},8,["model-value"]),t(u,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:"g2",text:"Gen 2"},{value:"g3",text:"Gen 3 & Gen4"},{value:"g4",text:"Gen 4 Boost & Gen 4 Mini"}],"model-value":n.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.version"))},null,8,["model-value"])])}const P=m(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solax/solax/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-fba9cb18.js b/web/settings/assets/device-fba9cb18.js new file mode 100644 index 0000000000..ad7ad93167 --- /dev/null +++ b/web/settings/assets/device-fba9cb18.js @@ -0,0 +1 @@ +import{D as s}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as i,l as u,m,G as t,E as l,B as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceAmpere",mixins:[s]},b={class:"device-ampere"};function v(o,e,c,g,w,C){const a=i("openwb-base-heading"),p=i("openwb-base-text-input"),r=i("openwb-base-number-input");return u(),m("div",b,[t(a,null,{default:l(()=>e[3]||(e[3]=[f(" Einstellungen für Ampere Pro",-1)])),_:1,__:[3]}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const k=d(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/ampere/ampere/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-ff9290bd.js b/web/settings/assets/device-ff9290bd.js deleted file mode 100644 index 42ddfb439d..0000000000 --- a/web/settings/assets/device-ff9290bd.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-35a2a562.js";import{_ as p,u as t,l,m as d,G as n,E as m,B as u}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolarLog",mixins:[a]},c={class:"device-solar_log"};function f(o,e,g,v,b,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return l(),d("div",c,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solar-Log ",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const L=p(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/solar_log/device.vue"]]);export{L as default}; diff --git a/web/settings/assets/displayTheme-717a89a9.js b/web/settings/assets/displayTheme-717a89a9.js new file mode 100644 index 0000000000..78781234e8 --- /dev/null +++ b/web/settings/assets/displayTheme-717a89a9.js @@ -0,0 +1 @@ +import{D as v}from"./OptionalComponents-a2c47c92.js";import{_,u as s,l as r,m as c,G as a,E as o,B as u,x as b,z as p}from"./vendor-25d394b4.js";import"./index-8dd8e083.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const h=[{value:"dashboard",text:"Übersicht"},{value:"energy-flow",text:"Energiefluss"},{value:"charge-points",text:"Ladepunkte"},{value:"status",text:"Status"}],V={name:"DisplayThemeCards",mixins:[v],computed:{enabledViews(){return h.filter(t=>this.displayTheme.configuration[`enable_${t.value.replace("-","_")}_view`])}},methods:{toggleView(t){this.displayTheme.configuration.default_view===t&&this.updateConfiguration(void 0,"configuration.default_view"),this.updateConfiguration(!this.displayTheme.configuration[`enable_${t}_view`],`configuration.enable_${t}_view`)}}},w={class:"display-theme-cards"};function y(t,e,A,T,z,i){const d=s("openwb-base-heading"),l=s("openwb-base-button-group-input"),g=s("openwb-base-text-input"),m=s("openwb-base-select-input"),f=s("openwb-base-range-input");return r(),c("div",w,[a(d,null,{default:o(()=>e[15]||(e[15]=[u("Bediensperre",-1)])),_:1,__:[15]}),a(l,{title:"Bedienung sperren","model-value":t.displayTheme.configuration.lock_changes,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.lock_changes"))},{help:o(()=>e[16]||(e[16]=[u(' Die Bedienung wird automatisch nach der eingestellten Ausschaltzeit (siehe "Display Standby") wieder gesperrt. ',-1)])),_:1},8,["model-value"]),t.displayTheme.configuration.lock_changes?(r(),b(g,{key:0,title:"PIN zur Freigabe",subtype:"password",required:"",pattern:"[0-9]{4,10}","model-value":t.displayTheme.configuration.lock_changes_code,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.lock_changes_code"))},{help:o(()=>e[17]||(e[17]=[u(" Der PIN muss aus 4 bis 10 Zahlen bestehen. ",-1)])),_:1},8,["model-value"])):p("",!0),a(d,null,{default:o(()=>e[18]||(e[18]=[u("Ansichten",-1)])),_:1,__:[18]}),a(l,{title:"Übersicht anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[2]||(e[2]=n=>i.toggleView("dashboard"))},null,8,["model-value"]),a(l,{title:"Energiefluss anzeigen","model-value":t.displayTheme.configuration.enable_energy_flow_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[3]||(e[3]=n=>i.toggleView("energy_flow"))},null,8,["model-value"]),a(l,{title:"Ladepunkte anzeigen","model-value":t.displayTheme.configuration.enable_charge_points_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[4]||(e[4]=n=>i.toggleView("charge_points"))},null,8,["model-value"]),t.displayTheme.configuration.enable_charge_points_view==!0?(r(),b(l,{key:1,title:"Einfache Ansicht der Ladepunkte","model-value":t.displayTheme.configuration.simple_charge_point_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.simple_charge_point_view"))},null,8,["model-value"])):p("",!0),a(l,{title:"Status anzeigen","model-value":t.displayTheme.configuration.enable_status_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[6]||(e[6]=n=>i.toggleView("status"))},null,8,["model-value"]),a(m,{title:"Standardansicht","not-selected":"Bitte auswählen",required:"","model-value":t.displayTheme.configuration.default_view,options:i.enabledViews,"onUpdate:modelValue":e[7]||(e[7]=n=>t.updateConfiguration(n,"configuration.default_view"))},{help:o(()=>e[19]||(e[19]=[u(" Die Standardansicht wird beim Start sowie nach einiger Zeit ohne Bedienung angezeigt. ",-1)])),_:1},8,["model-value","options"]),a(f,{title:"Wechsel zur Standardansicht",min:0,max:6,step:1,"model-value":t.displayTheme.configuration.default_view_timeout,labels:[{value:0,label:"Aus"},{value:60,label:"1 Min"},{value:300,label:"5 Min"},{value:600,label:"10 Min"},{value:900,label:"15 Min"},{value:1800,label:"30 Min"},{value:3600,label:"60 Min"}],"onUpdate:modelValue":e[8]||(e[8]=n=>t.updateConfiguration(n,"configuration.default_view_timeout"))},{help:o(()=>e[20]||(e[20]=[u(" Nach dieser Zeit ohne Bedienung wird die Standardansicht angezeigt. ",-1)])),_:1},8,["model-value"]),a(d,null,{help:o(()=>e[21]||(e[21]=[u(' Hier kann festgelegt werden, welche Daten in den Ansichten "Übersicht" und "Energiefluss" angezeigt werden. ',-1)])),default:o(()=>[e[22]||(e[22]=u(" Datenauswahl ",-1))]),_:1,__:[22]}),a(l,{title:"EVU anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_grid,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[9]||(e[9]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_grid"))},null,8,["model-value"]),a(l,{title:"Hausverbrauch anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_home_consumption,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[10]||(e[10]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_home_consumption"))},null,8,["model-value"]),a(l,{title:"PV anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_inverter_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[11]||(e[11]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_inverter_sum"))},null,8,["model-value"]),a(l,{title:"Batteriespeicher anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_battery_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[12]||(e[12]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_battery_sum"))},null,8,["model-value"]),a(l,{title:"Ladepunkte anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_charge_point_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[13]||(e[13]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_charge_point_sum"))},null,8,["model-value"]),a(l,{title:"Fahrzeuge anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_vehicles,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[14]||(e[14]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_vehicles"))},null,8,["model-value"])])}const N=_(V,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/cards/displayTheme.vue"]]);export{N as default}; diff --git a/web/settings/assets/displayTheme-a0bde809.js b/web/settings/assets/displayTheme-a0bde809.js deleted file mode 100644 index d79b9e2f24..0000000000 --- a/web/settings/assets/displayTheme-a0bde809.js +++ /dev/null @@ -1 +0,0 @@ -import{D as v}from"./OptionalComponents-f8223e02.js";import{_,u as s,l as r,m as c,G as a,E as o,B as u,x as b,z as p}from"./vendor-36bf053b.js";import"./index-0992d19b.js";import"./vendor-fortawesome-2b3791bb.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const h=[{value:"dashboard",text:"Übersicht"},{value:"energy-flow",text:"Energiefluss"},{value:"charge-points",text:"Ladepunkte"},{value:"status",text:"Status"}],V={name:"DisplayThemeCards",mixins:[v],computed:{enabledViews(){return h.filter(t=>this.displayTheme.configuration[`enable_${t.value.replace("-","_")}_view`])}},methods:{toggleView(t){this.displayTheme.configuration.default_view===t&&this.updateConfiguration(void 0,"configuration.default_view"),this.updateConfiguration(!this.displayTheme.configuration[`enable_${t}_view`],`configuration.enable_${t}_view`)}}},w={class:"display-theme-cards"};function y(t,e,A,T,z,i){const d=s("openwb-base-heading"),l=s("openwb-base-button-group-input"),g=s("openwb-base-text-input"),m=s("openwb-base-select-input"),f=s("openwb-base-range-input");return r(),c("div",w,[a(d,null,{default:o(()=>[...e[15]||(e[15]=[u("Bediensperre",-1)])]),_:1}),a(l,{title:"Bedienung sperren","model-value":t.displayTheme.configuration.lock_changes,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.lock_changes"))},{help:o(()=>[...e[16]||(e[16]=[u(' Die Bedienung wird automatisch nach der eingestellten Ausschaltzeit (siehe "Display Standby") wieder gesperrt. ',-1)])]),_:1},8,["model-value"]),t.displayTheme.configuration.lock_changes?(r(),b(g,{key:0,title:"PIN zur Freigabe",subtype:"password",required:"",pattern:"[0-9]{4,10}","model-value":t.displayTheme.configuration.lock_changes_code,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.lock_changes_code"))},{help:o(()=>[...e[17]||(e[17]=[u(" Der PIN muss aus 4 bis 10 Zahlen bestehen. ",-1)])]),_:1},8,["model-value"])):p("",!0),a(d,null,{default:o(()=>[...e[18]||(e[18]=[u("Ansichten",-1)])]),_:1}),a(l,{title:"Übersicht anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[2]||(e[2]=n=>i.toggleView("dashboard"))},null,8,["model-value"]),a(l,{title:"Energiefluss anzeigen","model-value":t.displayTheme.configuration.enable_energy_flow_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[3]||(e[3]=n=>i.toggleView("energy_flow"))},null,8,["model-value"]),a(l,{title:"Ladepunkte anzeigen","model-value":t.displayTheme.configuration.enable_charge_points_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[4]||(e[4]=n=>i.toggleView("charge_points"))},null,8,["model-value"]),t.displayTheme.configuration.enable_charge_points_view==!0?(r(),b(l,{key:1,title:"Einfache Ansicht der Ladepunkte","model-value":t.displayTheme.configuration.simple_charge_point_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.simple_charge_point_view"))},null,8,["model-value"])):p("",!0),a(l,{title:"Status anzeigen","model-value":t.displayTheme.configuration.enable_status_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[6]||(e[6]=n=>i.toggleView("status"))},null,8,["model-value"]),a(m,{title:"Standardansicht","not-selected":"Bitte auswählen",required:"","model-value":t.displayTheme.configuration.default_view,options:i.enabledViews,"onUpdate:modelValue":e[7]||(e[7]=n=>t.updateConfiguration(n,"configuration.default_view"))},{help:o(()=>[...e[19]||(e[19]=[u(" Die Standardansicht wird beim Start sowie nach einiger Zeit ohne Bedienung angezeigt. ",-1)])]),_:1},8,["model-value","options"]),a(f,{title:"Wechsel zur Standardansicht",min:0,max:6,step:1,"model-value":t.displayTheme.configuration.default_view_timeout,labels:[{value:0,label:"Aus"},{value:60,label:"1 Min"},{value:300,label:"5 Min"},{value:600,label:"10 Min"},{value:900,label:"15 Min"},{value:1800,label:"30 Min"},{value:3600,label:"60 Min"}],"onUpdate:modelValue":e[8]||(e[8]=n=>t.updateConfiguration(n,"configuration.default_view_timeout"))},{help:o(()=>[...e[20]||(e[20]=[u(" Nach dieser Zeit ohne Bedienung wird die Standardansicht angezeigt. ",-1)])]),_:1},8,["model-value"]),a(d,null,{help:o(()=>[...e[21]||(e[21]=[u(' Hier kann festgelegt werden, welche Daten in den Ansichten "Übersicht" und "Energiefluss" angezeigt werden. ',-1)])]),default:o(()=>[e[22]||(e[22]=u(" Datenauswahl ",-1))]),_:1}),a(l,{title:"EVU anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_grid,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[9]||(e[9]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_grid"))},null,8,["model-value"]),a(l,{title:"Hausverbrauch anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_home_consumption,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[10]||(e[10]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_home_consumption"))},null,8,["model-value"]),a(l,{title:"PV anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_inverter_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[11]||(e[11]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_inverter_sum"))},null,8,["model-value"]),a(l,{title:"Batteriespeicher anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_battery_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[12]||(e[12]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_battery_sum"))},null,8,["model-value"]),a(l,{title:"Ladepunkte anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_charge_point_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[13]||(e[13]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_charge_point_sum"))},null,8,["model-value"]),a(l,{title:"Fahrzeuge anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_vehicles,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[14]||(e[14]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_vehicles"))},null,8,["model-value"])])}const N=_(V,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/cards/displayTheme.vue"]]);export{N as default}; diff --git a/web/settings/assets/displayTheme-a10769b7.js b/web/settings/assets/displayTheme-a10769b7.js deleted file mode 100644 index 7157fa9ca3..0000000000 --- a/web/settings/assets/displayTheme-a10769b7.js +++ /dev/null @@ -1 +0,0 @@ -import{D as d}from"./OptionalComponents-f8223e02.js";import{_ as m,u as n,l as i,m as c,G as p,E as s,B as a,x as b,z as g}from"./vendor-36bf053b.js";import"./index-0992d19b.js";import"./vendor-fortawesome-2b3791bb.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"DisplayThemeColors",mixins:[d]},f={class:"display-theme-colors"};function h(o,e,y,w,k,v){const r=n("openwb-base-heading"),l=n("openwb-base-button-group-input"),u=n("openwb-base-text-input");return i(),c("div",f,[p(r,null,{default:s(()=>[...e[2]||(e[2]=[a("Bediensperre",-1)])]),_:1}),p(l,{title:"Bedienung sperren","model-value":o.displayTheme.configuration.lock_changes,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.lock_changes"))},{help:s(()=>[...e[3]||(e[3]=[a(' Die Bedienung wird automatisch nach der eingestellten Ausschaltzeit (siehe "Display Standby") wieder gesperrt. ',-1)])]),_:1},8,["model-value"]),o.displayTheme.configuration.lock_changes?(i(),b(u,{key:0,title:"PIN zur Freigabe",subtype:"password",required:"",pattern:"[0-9]{4,10}","model-value":o.displayTheme.configuration.lock_changes_code,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.lock_changes_code"))},{help:s(()=>[...e[4]||(e[4]=[a(" Der PIN muss aus 4 bis 10 Zahlen bestehen. ",-1)])]),_:1},8,["model-value"])):g("",!0)])}const A=m(_,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/colors/displayTheme.vue"]]);export{A as default}; diff --git a/web/settings/assets/displayTheme-cf89ddcd.js b/web/settings/assets/displayTheme-cf89ddcd.js new file mode 100644 index 0000000000..024bd93c27 --- /dev/null +++ b/web/settings/assets/displayTheme-cf89ddcd.js @@ -0,0 +1 @@ +import{D as d}from"./OptionalComponents-a2c47c92.js";import{_ as m,u as n,l as i,m as c,G as p,E as s,B as a,x as _,z as b}from"./vendor-25d394b4.js";import"./index-8dd8e083.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DisplayThemeColors",mixins:[d]},f={class:"display-theme-colors"};function h(o,e,y,w,k,v){const r=n("openwb-base-heading"),l=n("openwb-base-button-group-input"),u=n("openwb-base-text-input");return i(),c("div",f,[p(r,null,{default:s(()=>e[2]||(e[2]=[a("Bediensperre",-1)])),_:1,__:[2]}),p(l,{title:"Bedienung sperren","model-value":o.displayTheme.configuration.lock_changes,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.lock_changes"))},{help:s(()=>e[3]||(e[3]=[a(' Die Bedienung wird automatisch nach der eingestellten Ausschaltzeit (siehe "Display Standby") wieder gesperrt. ',-1)])),_:1},8,["model-value"]),o.displayTheme.configuration.lock_changes?(i(),_(u,{key:0,title:"PIN zur Freigabe",subtype:"password",required:"",pattern:"[0-9]{4,10}","model-value":o.displayTheme.configuration.lock_changes_code,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.lock_changes_code"))},{help:s(()=>e[4]||(e[4]=[a(" Der PIN muss aus 4 bis 10 Zahlen bestehen. ",-1)])),_:1},8,["model-value"])):b("",!0)])}const A=m(g,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/colors/displayTheme.vue"]]);export{A as default}; diff --git a/web/settings/assets/electricity_tariff-1a8bf599.js b/web/settings/assets/electricity_tariff-1a8bf599.js deleted file mode 100644 index 1fae9da5ef..0000000000 --- a/web/settings/assets/electricity_tariff-1a8bf599.js +++ /dev/null @@ -1 +0,0 @@ -import{E as m}from"./GeneralChargeConfig-0f9eaa85.js";import{_ as g,u as s,l as h,m as _,G as n,E as y,B as l,A as T}from"./vendor-36bf053b.js";import"./index-0992d19b.js";import"./vendor-fortawesome-2b3791bb.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const k={name:"ElectricityTariffTibber",mixins:[m],data(){return{tibberAPI:"https://api.tibber.com/v1-beta/gql",tibberHomeList:[]}},methods:{async getTibberHomeList(){if(this.electricityTariff.configuration.token===null)return;const i='{ "query": "{viewer {homes{id address{address1 address2 address3 postalCode city country}}}}" }';try{const e=await this.axios.post(this.tibberAPI,i,{headers:{Authorization:"Bearer "+this.electricityTariff.configuration.token,"Content-Type":"application/json"}});this.tibberHomeList=e.data.data.viewer.homes.map(t=>{let r=t.address.address1;return t.address.address2&&(r=r+", "+t.address.address2),t.address.address3&&(r=r+", "+t.address.address3),r=r+`, ${t.address.postalCode} ${t.address.city}, ${t.address.country}`,{value:t.id,text:r}}),this.electricityTariff.configuration.home_id||this.updateConfiguration(this.tibberHomeList[0].value,"configuration.home_id"),this.$root.postClientMessage("Home IDs erfolgreich abgerufen.","success")}catch(e){console.error(e),this.$root.postClientMessage("Beim Abfragen der Tibber API ist ein Fehler aufgetreten!
"+e+"
","danger")}}}},v={class:"electricity-tariff-tibber"};function w(i,e,t,r,u,c){var d;const b=s("openwb-base-alert"),a=s("openwb-base-text-input"),p=s("openwb-base-button-input"),f=s("openwb-base-select-input");return h(),_("div",v,[n(b,{subtype:"info"},{default:y(()=>[...e[3]||(e[3]=[l(" Ihren persönlichen Tibber-Token erhalten Sie über die ",-1),T("a",{href:"https://developer.tibber.com/explorer",target:"_blank",rel:"noopener noreferrer"}," Tibber-Developer-Seite ",-1),l(" . Behandeln Sie Ihren Token wie ein Passwort, da sich darüber auch persönliche Daten aus Ihrem Tibber-Account abfragen lassen! Die Home-ID können Sie (wenn bekannt) in das Eingabefeld selbst eintragen oder nach Eingabe Ihres Token durch Klick auf den Button von der openWB ermitteln lassen. Unerlaubte Zeichen werden aus dem Token und der Home-ID automatisch gelöscht. ",-1)])]),_:1}),n(a,{ref:"tokenInput",title:"Token",required:"","model-value":i.electricityTariff.configuration.token,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"configuration.token"))},null,8,["model-value"]),n(p,{title:"Home-IDs abrufen","button-text":"Jetzt abrufen",subtype:"success",disabled:!((d=i.electricityTariff.configuration.token)!=null&&d.length),onButtonClicked:c.getTibberHomeList},null,8,["disabled","onButtonClicked"]),n(f,{title:"Verfügbare Home-IDs",options:u.tibberHomeList,"model-value":i.electricityTariff.configuration.home_id,"onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o,"configuration.home_id"))},null,8,["options","model-value"]),n(a,{title:"Home-ID",required:"","model-value":i.electricityTariff.configuration.home_id,"onUpdate:modelValue":e[2]||(e[2]=o=>i.updateConfiguration(o,"configuration.home_id"))},null,8,["model-value"])])}const $=g(k,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/tibber/electricity_tariff.vue"]]);export{$ as default}; diff --git a/web/settings/assets/electricity_tariff-1ac1c5ab.js b/web/settings/assets/electricity_tariff-1ac1c5ab.js new file mode 100644 index 0000000000..a3f4a02aa6 --- /dev/null +++ b/web/settings/assets/electricity_tariff-1ac1c5ab.js @@ -0,0 +1 @@ +import{E as s}from"./GeneralChargeConfig-d70b0d95.js";import{_ as l,u as r,l as c,m as p,G as n,E as u,B as f}from"./vendor-25d394b4.js";import"./index-8dd8e083.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"ElectricityTariffRabot",mixins:[s]},m={class:"electricity-tariff-rabot"};function _(t,e,b,g,y,v){const a=r("openwb-base-alert"),o=r("openwb-base-text-input");return c(),p("div",m,[n(a,{subtype:"info"},{default:u(()=>e[2]||(e[2]=[f(" Ihre persönlichen Zugangsdaten (Client-ID und Client-Secret) erhalten Sie direkt von Rabot. Behandeln Sie diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Ihrem Rabot-Account abfragen lassen! ",-1)])),_:1,__:[2]}),n(o,{title:"Client-ID",subtype:"user",required:"","model-value":t.electricityTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),n(o,{title:"Client-Secret",subtype:"password",required:"","model-value":t.electricityTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"])])}const S=l(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/rabot/electricity_tariff.vue"]]);export{S as default}; diff --git a/web/settings/assets/electricity_tariff-1c057408.js b/web/settings/assets/electricity_tariff-1c057408.js deleted file mode 100644 index 6d33f24a43..0000000000 --- a/web/settings/assets/electricity_tariff-1c057408.js +++ /dev/null @@ -1 +0,0 @@ -import{E as o}from"./GeneralChargeConfig-0f9eaa85.js";import{_ as a,u as n,l as s,m as c,G as l,E as p,B as f}from"./vendor-36bf053b.js";import"./index-0992d19b.js";import"./vendor-fortawesome-2b3791bb.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const d={name:"ElectricityTariffAwattar",mixins:[o]},u={class:"electricity-tariff-awattar"};function m(t,e,_,w,b,v){const i=n("openwb-base-select-input");return s(),c("div",u,[l(i,{title:"Land","not-selected":"Bitte auswählen",options:[{value:"de",text:"Deutschland"},{value:"at",text:"Österreich"}],"model-value":t.electricityTariff.configuration.country,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.country"))},{help:p(()=>[...e[1]||(e[1]=[f(" Es werden die abgefragten Börsenpreise verwendet, die aWATTar bereitstellt. aWATTar-Gebühren oder Steuern werden nicht berücksichtigt. ",-1)])]),_:1},8,["model-value"])])}const k=a(d,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/awattar/electricity_tariff.vue"]]);export{k as default}; diff --git a/web/settings/assets/electricity_tariff-28b48a8b.js b/web/settings/assets/electricity_tariff-28b48a8b.js deleted file mode 100644 index a93ba837af..0000000000 --- a/web/settings/assets/electricity_tariff-28b48a8b.js +++ /dev/null @@ -1 +0,0 @@ -import{E as s}from"./GeneralChargeConfig-0f9eaa85.js";import{_ as l,u as r,l as c,m as p,G as n,E as u,B as f}from"./vendor-36bf053b.js";import"./index-0992d19b.js";import"./vendor-fortawesome-2b3791bb.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const d={name:"ElectricityTariffRabot",mixins:[s]},m={class:"electricity-tariff-rabot"};function _(t,e,b,g,y,v){const a=r("openwb-base-alert"),o=r("openwb-base-text-input");return c(),p("div",m,[n(a,{subtype:"info"},{default:u(()=>[...e[2]||(e[2]=[f(" Ihre persönlichen Zugangsdaten (Client-ID und Client-Secret) erhalten Sie direkt von Rabot. Behandeln Sie diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Ihrem Rabot-Account abfragen lassen! ",-1)])]),_:1}),n(o,{title:"Client-ID",subtype:"user",required:"","model-value":t.electricityTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),n(o,{title:"Client-Secret",subtype:"password",required:"","model-value":t.electricityTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"])])}const S=l(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/rabot/electricity_tariff.vue"]]);export{S as default}; diff --git a/web/settings/assets/electricity_tariff-377f97e7.js b/web/settings/assets/electricity_tariff-377f97e7.js new file mode 100644 index 0000000000..2a11c0c381 --- /dev/null +++ b/web/settings/assets/electricity_tariff-377f97e7.js @@ -0,0 +1 @@ +import{E as p}from"./GeneralChargeConfig-d70b0d95.js";import{_ as u,u as a,l as d,m as f,G as r,E as l,B as n,A as m}from"./vendor-25d394b4.js";import"./index-8dd8e083.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"ElectricityTariffOstrom",mixins:[p]},g={class:"electricity-tariff-ostrom"};function b(t,e,_,h,v,w){const s=a("openwb-base-alert"),o=a("openwb-base-text-input");return d(),f("div",g,[r(s,{subtype:"info"},{default:l(()=>e[3]||(e[3]=[n(" Ihre persönlichen Zugangsdaten (Client-ID und Client-Secret) erhalten Sie über das ",-1),m("a",{href:"https://developer.ostrom-api.io/",target:"_blank",rel:"noopener noreferrer"}," Ostrom Developer Portal ",-1),n(" . Behandeln Sie diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Ihrem ostrom-Account abfragen lassen! ",-1)])),_:1,__:[3]}),r(o,{title:"Client-ID",subtype:"user",required:"","model-value":t.electricityTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),r(o,{title:"Client-Secret",subtype:"password",required:"","model-value":t.electricityTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"]),r(o,{title:"Postleitzahl","model-value":t.electricityTariff.configuration.zip,"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateConfiguration(i,"configuration.zip"))},{help:l(()=>e[4]||(e[4]=[n(" Die Postleitzahl wird zur Ermittlung der Abgaben und Umlagen benötigt. Ohne Angabe der Postleitzahl wird durch die ostrom API lediglich der Börsenstrompreis einschließlich Mehrwertsteuer geliefert. ",-1)])),_:1},8,["model-value"])])}const A=u(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/ostrom/electricity_tariff.vue"]]);export{A as default}; diff --git a/web/settings/assets/electricity_tariff-6043bf73.js b/web/settings/assets/electricity_tariff-6043bf73.js deleted file mode 100644 index b770bdd241..0000000000 --- a/web/settings/assets/electricity_tariff-6043bf73.js +++ /dev/null @@ -1 +0,0 @@ -import{E as c}from"./GeneralChargeConfig-0f9eaa85.js";import{_ as p,u as r,l as d,m as f,G as i,E as o,B as s,A as m}from"./vendor-36bf053b.js";import"./index-0992d19b.js";import"./vendor-fortawesome-2b3791bb.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const g={name:"ElectricityTariffEnergyCharts",mixins:[c]},h={class:"electricity-tariff-energy-charts"};function b(t,e,_,y,w,v){const a=r("openwb-base-alert"),l=r("openwb-base-select-input"),u=r("openwb-base-number-input");return d(),f("div",h,[i(a,{subtype:"info"},{default:o(()=>[...e[2]||(e[2]=[s(" Börsenstrompreise von Energy Charts (energy-charts.info)",-1),m("br",null,null,-1),s(" Die Rohdaten werden von Wissenschaftlern des Fraunhofer-Instituts für Solare Energiesysteme ISE aus zahlreichen Quellen stündlich oder täglich abgerufen und für die Darstellung aufbereitet. ",-1)])]),_:1}),i(l,{title:"Land","not-selected":"Bitte auswählen",options:[{value:"DE-LU",text:"Deutschland"},{value:"AT",text:"Österreich"},{value:"CH",text:"Schweiz"}],"model-value":t.electricityTariff.configuration.country,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.country"))},null,8,["model-value"]),i(u,{title:"Aufschlag zum Börsenstrompreis",min:0,step:.001,precision:3,required:"",unit:"ct/kWh","model-value":t.electricityTariff.configuration.surcharge,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(parseFloat(n.toFixed(3)),"configuration.surcharge"))},{help:o(()=>[...e[3]||(e[3]=[s(" Die Auswahl (Energy-Charts) kann für alle Stromanbieter ausgewählt werden, die die Börsenstrompreise in einem variablen/dynamischen Tarif an die Kunden weitergeben. Das Modul soll es ermöglichen, dass zu tagesaktuellen Strompreisen unter Berücksichtigung eines Aufschlags zu günstigen Zeiten automatisch geladen werden kann und somit die Preisschwankungen an der Börse optimal ausgenutzt werden. ",-1)])]),_:1},8,["model-value"])])}const S=p(g,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/energycharts/electricity_tariff.vue"]]);export{S as default}; diff --git a/web/settings/assets/electricity_tariff-6a090d74.js b/web/settings/assets/electricity_tariff-6a090d74.js new file mode 100644 index 0000000000..f5b7f4d634 --- /dev/null +++ b/web/settings/assets/electricity_tariff-6a090d74.js @@ -0,0 +1 @@ +import{E as I}from"./GeneralChargeConfig-d70b0d95.js";import{_ as S,l as o,m as c,A as u,p as k,u as s,x as w,D as N,E as a,B as f,F as V,G as r,y as C,z as B,N as x,M as $,I as q,S as z}from"./vendor-25d394b4.js";import{l as T,d as F,ab as O,F as U}from"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const H={name:"TimeRow"},W={class:"w-100"},A={class:"form-row align-items-center"},D={class:"col-10"},Q={class:"form-row"},Z={class:"col-6"},M={class:"col-6"},P={class:"col-2 text-right"};function K(t,e,p,v,g,n){return o(),c("div",W,[u("div",A,[u("div",D,[u("div",Q,[u("div",Z,[k(t.$slots,"start")]),u("div",M,[k(t.$slots,"end")])])]),u("div",P,[k(t.$slots,"action")])])])}const R=S(H,[["render",K],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/fixed_hours/TimeRow.vue"]]);T.add(F);T.add(O);const L={name:"TimeTable",components:{FontAwesomeIcon:U,TimeRow:R},inheritAttrs:!1,props:{title:{type:String,required:!0,default:"#TITLE#"},modelValue:{type:Array,default:()=>[]}},emits:["update:modelValue"],data(){return{endOptions:this.modelValue.map(()=>this.generateTimeOptions("01:00","24:00"))}},computed:{value:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}}},methods:{generateTimeOptions(t,e){const p=[],v=parseInt(t.split(":")[0],10),g=parseInt(e.split(":")[0],10);for(let n=v;n<=g;n++){const d=`${n.toString().padStart(2,"0")}:00`;p.push({value:d,text:d})}return p},addTime(){this.value.push(["",""])},removeTime(t){this.value.splice(t,1)},updateEndOptions(t){const e=this.value[t][0];if(e){const v=(parseInt(e.split(":")[0],10)+1).toString().padStart(2,"0")+":00";this.endOptions[t]=this.generateTimeOptions(v,"24:00")}else this.endOptions[t]=this.generateTimeOptions("01:00","24:00")}}},j={key:0,class:"w-100 alert alert-danger"},G=["onUpdate:modelValue","onChange"],J=["value"],X=["onUpdate:modelValue"],Y=["value"];function ee(t,e,p,v,g,n){const m=s("font-awesome-icon"),d=s("openwb-base-avatar"),h=s("time-row"),y=s("openwb-base-setting-element");return o(),w(y,null,N({title:a(()=>[k(t.$slots,"title",{},()=>[f(V(p.title),1)])]),default:a(()=>[r(h,null,{start:a(()=>e[0]||(e[0]=[f(" Beginn ",-1)])),end:a(()=>e[1]||(e[1]=[f(" Ende ",-1)])),action:a(()=>[r(d,{class:"bg-success clickable",title:"Zeitbereich hinzufügen",onClick:C(n.addTime,["stop"])},{default:a(()=>[r(m,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),_:1}),n.value.length===0?(o(),c("div",j," Keine Zeitbereiche definiert! ")):B("",!0),(o(!0),c(x,null,$(n.value,(_,b)=>(o(),w(h,{key:b},{start:a(()=>[q(u("select",{"onUpdate:modelValue":i=>_[0]=i,class:"form-control",required:"",onChange:i=>n.updateEndOptions(b)},[e[2]||(e[2]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(o(!0),c(x,null,$(n.generateTimeOptions("00:00","23:00"),i=>(o(),c("option",{key:i.value,value:i.value},V(i.text),9,J))),128))],40,G),[[z,_[0]]])]),end:a(()=>[q(u("select",{"onUpdate:modelValue":i=>_[1]=i,class:"form-control",required:""},[e[3]||(e[3]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(o(!0),c(x,null,$(g.endOptions[b],i=>(o(),c("option",{key:i.value,value:i.value},V(i.text),9,Y))),128))],8,X),[[z,_[1]]])]),action:a(()=>[n.value.length>1?(o(),w(d,{key:0,class:"bg-danger clickable",title:"Zeitbereich entfernen",onClick:C(i=>n.removeTime(b),["stop"])},{default:a(()=>[r(m,{icon:["fas","trash"]})]),_:2},1032,["onClick"])):B("",!0)]),_:2},1024))),128))]),_:2},[t.$slots.help?{name:"help",fn:a(()=>[k(t.$slots,"help")]),key:"0"}:void 0]),1024)}const te=S(L,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/fixed_hours/TimeTable.vue"]]);T.add(F);T.add(O);const ne={name:"FixedTariff",components:{FontAwesomeIcon:U,TimeTable:te},props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue","delete"],computed:{tariff:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}},dates:{get(){return this.tariff.active_times.dates.map(([t,e])=>`${t};${e}`)},set(t){this.tariff.active_times.dates=t.map(e=>e.split(";"))}}}};function ae(t,e,p,v,g,n){const m=s("font-awesome-icon"),d=s("openwb-base-avatar"),h=s("openwb-base-text-input"),y=s("openwb-base-number-input"),_=s("openwb-base-select-input"),b=s("time-table"),i=s("openwb-base-card");return o(),w(i,{subtype:"info",collapsible:!0},{header:a(()=>[f(V(n.tariff.name),1)]),actions:a(()=>[r(d,{class:"bg-danger clickable",onClick:e[0]||(e[0]=l=>t.$emit("delete"))},{default:a(()=>[r(m,{icon:["fas","trash"]})]),_:1})]),default:a(()=>[r(h,{modelValue:n.tariff.name,"onUpdate:modelValue":e[1]||(e[1]=l=>n.tariff.name=l),title:"Tarifname"},null,8,["modelValue"]),r(y,{title:"Preis",min:0,step:.1,precision:1,required:"",unit:"ct/kWh","model-value":n.tariff.price*100,"onUpdate:modelValue":e[2]||(e[2]=l=>n.tariff.price=parseFloat((l/100).toFixed(3)))},null,8,["model-value"]),r(_,{modelValue:n.dates,"onUpdate:modelValue":e[3]||(e[3]=l=>n.dates=l),title:"Quartale",required:"",multiple:"",options:[{value:"01-01;31-03",text:"1. Quartal"},{value:"01-04;30-06",text:"2. Quartal"},{value:"01-07;30-09",text:"3. Quartal"},{value:"01-10;31-12",text:"4. Quartal"}]},null,8,["modelValue"]),r(b,{modelValue:n.tariff.active_times.times,"onUpdate:modelValue":e[4]||(e[4]=l=>n.tariff.active_times.times=l),title:"Aktive Zeiten"},null,8,["modelValue"])]),_:1})}const ie=S(ne,[["render",ae],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/fixed_hours/FixedTariff.vue"]]);T.add(F);T.add(O);const se={name:"ElectricityTariffFixedHours",components:{FontAwesomeIcon:U,FixedTariff:ie},mixins:[I],computed:{value:{get(){return this.electricityTariff},set(t){console.log("set",t),this.updateConfiguration(t)}}},methods:{addTariff(){this.value.configuration.tariffs.push({name:"Neuer Tarif",price:0,active_times:{dates:[],times:[["",""]]}})},removeTariff(t){this.value.configuration.tariffs.splice(t,1)}}},oe={class:"electricity-tariff-fixed-hours"};function re(t,e,p,v,g,n){const m=s("openwb-base-alert"),d=s("openwb-base-number-input"),h=s("font-awesome-icon"),y=s("openwb-base-avatar"),_=s("openwb-base-heading"),b=s("fixed-tariff");return o(),c("div",oe,[r(m,{subtype:"info"},{default:a(()=>e[1]||(e[1]=[f(" Konfiguriert feste Tarifzeiten, z.b. HT, NT und Standardpreis. ",-1)])),_:1,__:[1]}),r(d,{title:"Standardpreis",min:0,step:.1,precision:1,required:"",unit:"ct/kWh","model-value":n.value.configuration.default_price*100,"onUpdate:modelValue":e[0]||(e[0]=i=>n.value.configuration.default_price=parseFloat((i/100).toFixed(3)))},{help:a(()=>e[2]||(e[2]=[f(" Standardpreis sofern kein anderer Tarif aktiv ist. ",-1)])),_:1},8,["model-value"]),e[5]||(e[5]=u("hr",null,null,-1)),r(_,null,{actions:a(()=>[r(y,{class:"bg-success clickable",onClick:C(n.addTariff,["stop"])},{default:a(()=>[r(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:a(()=>[e[3]||(e[3]=f(" Tarife ",-1))]),_:1,__:[3]}),n.value.configuration.tariffs.length===0?(o(),w(m,{key:0,subtype:"info"},{default:a(()=>e[4]||(e[4]=[f(" Es wurde noch kein Tarif konfiguriert. Klicken Sie auf das Plus-Symbol um einen neuen Tarif hinzuzufügen.",-1),u("br",null,null,-1),f(" Tarife ermöglichen es unterschiedliche Preise für unterschiedliche Zeiten zu definieren. ",-1)])),_:1,__:[4]})):B("",!0),(o(!0),c(x,null,$(n.value.configuration.tariffs,(i,l)=>(o(),w(b,{key:l,"model-value":i,"onUpdate:modelValue":E=>n.value.configuration.tariffs[l]=E,onDelete:E=>n.removeTariff(l)},null,8,["model-value","onUpdate:modelValue","onDelete"]))),128))])}const ve=S(se,[["render",re],["__scopeId","data-v-aa5a711c"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/fixed_hours/electricity_tariff.vue"]]);export{ve as default}; diff --git a/web/settings/assets/electricity_tariff-701d2b86.js b/web/settings/assets/electricity_tariff-701d2b86.js new file mode 100644 index 0000000000..65b59f8d8b --- /dev/null +++ b/web/settings/assets/electricity_tariff-701d2b86.js @@ -0,0 +1 @@ +import{E as m}from"./GeneralChargeConfig-d70b0d95.js";import{_ as g,u as s,l as h,m as _,G as n,E as y,B as l,A as T}from"./vendor-25d394b4.js";import"./index-8dd8e083.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const k={name:"ElectricityTariffTibber",mixins:[m],data(){return{tibberAPI:"https://api.tibber.com/v1-beta/gql",tibberHomeList:[]}},methods:{async getTibberHomeList(){if(this.electricityTariff.configuration.token===null)return;const i='{ "query": "{viewer {homes{id address{address1 address2 address3 postalCode city country}}}}" }';try{const e=await this.axios.post(this.tibberAPI,i,{headers:{Authorization:"Bearer "+this.electricityTariff.configuration.token,"Content-Type":"application/json"}});this.tibberHomeList=e.data.data.viewer.homes.map(t=>{let r=t.address.address1;return t.address.address2&&(r=r+", "+t.address.address2),t.address.address3&&(r=r+", "+t.address.address3),r=r+`, ${t.address.postalCode} ${t.address.city}, ${t.address.country}`,{value:t.id,text:r}}),this.electricityTariff.configuration.home_id||this.updateConfiguration(this.tibberHomeList[0].value,"configuration.home_id"),this.$root.postClientMessage("Home IDs erfolgreich abgerufen.","success")}catch(e){console.error(e),this.$root.postClientMessage("Beim Abfragen der Tibber API ist ein Fehler aufgetreten!
"+e+"
","danger")}}}},v={class:"electricity-tariff-tibber"};function w(i,e,t,r,u,c){var d;const b=s("openwb-base-alert"),a=s("openwb-base-text-input"),p=s("openwb-base-button-input"),f=s("openwb-base-select-input");return h(),_("div",v,[n(b,{subtype:"info"},{default:y(()=>e[3]||(e[3]=[l(" Ihren persönlichen Tibber-Token erhalten Sie über die ",-1),T("a",{href:"https://developer.tibber.com/explorer",target:"_blank",rel:"noopener noreferrer"}," Tibber-Developer-Seite ",-1),l(" . Behandeln Sie Ihren Token wie ein Passwort, da sich darüber auch persönliche Daten aus Ihrem Tibber-Account abfragen lassen! Die Home-ID können Sie (wenn bekannt) in das Eingabefeld selbst eintragen oder nach Eingabe Ihres Token durch Klick auf den Button von der openWB ermitteln lassen. Unerlaubte Zeichen werden aus dem Token und der Home-ID automatisch gelöscht. ",-1)])),_:1,__:[3]}),n(a,{ref:"tokenInput",title:"Token",required:"","model-value":i.electricityTariff.configuration.token,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"configuration.token"))},null,8,["model-value"]),n(p,{title:"Home-IDs abrufen","button-text":"Jetzt abrufen",subtype:"success",disabled:!((d=i.electricityTariff.configuration.token)!=null&&d.length),onButtonClicked:c.getTibberHomeList},null,8,["disabled","onButtonClicked"]),n(f,{title:"Verfügbare Home-IDs",options:u.tibberHomeList,"model-value":i.electricityTariff.configuration.home_id,"onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o,"configuration.home_id"))},null,8,["options","model-value"]),n(a,{title:"Home-ID",required:"","model-value":i.electricityTariff.configuration.home_id,"onUpdate:modelValue":e[2]||(e[2]=o=>i.updateConfiguration(o,"configuration.home_id"))},null,8,["model-value"])])}const $=g(k,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/tibber/electricity_tariff.vue"]]);export{$ as default}; diff --git a/web/settings/assets/electricity_tariff-7bb00a2f.js b/web/settings/assets/electricity_tariff-7bb00a2f.js new file mode 100644 index 0000000000..6809e44d09 --- /dev/null +++ b/web/settings/assets/electricity_tariff-7bb00a2f.js @@ -0,0 +1 @@ +import{E as l}from"./GeneralChargeConfig-d70b0d95.js";import{_ as s,u as r,l as c,m as p,G as o,E as u,B as f}from"./vendor-25d394b4.js";import"./index-8dd8e083.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"ElectricityTariffVoltego",mixins:[l]},m={class:"electricity-tariff-voltego"};function _(t,e,g,b,v,y){const a=r("openwb-base-alert"),n=r("openwb-base-text-input");return c(),p("div",m,[o(a,{subtype:"info"},{default:u(()=>e[2]||(e[2]=[f(" Ihre persönlichen Zugangsdaten (Client-ID und Client-Secret) erhalten Sie direkt von Voltego. Behandeln Sie diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Ihrem Voltego-Account abfragen lassen! ",-1)])),_:1,__:[2]}),o(n,{title:"Client-ID",subtype:"user",required:"","model-value":t.electricityTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),o(n,{title:"Client-Secret",subtype:"password",required:"","model-value":t.electricityTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"])])}const I=s(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/voltego/electricity_tariff.vue"]]);export{I as default}; diff --git a/web/settings/assets/electricity_tariff-88e75454.js b/web/settings/assets/electricity_tariff-88e75454.js deleted file mode 100644 index 23d35db717..0000000000 --- a/web/settings/assets/electricity_tariff-88e75454.js +++ /dev/null @@ -1 +0,0 @@ -import{E as l}from"./GeneralChargeConfig-0f9eaa85.js";import{_ as s,u as r,l as c,m as p,G as o,E as u,B as f}from"./vendor-36bf053b.js";import"./index-0992d19b.js";import"./vendor-fortawesome-2b3791bb.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const d={name:"ElectricityTariffVoltego",mixins:[l]},m={class:"electricity-tariff-voltego"};function _(t,e,g,b,v,y){const a=r("openwb-base-alert"),n=r("openwb-base-text-input");return c(),p("div",m,[o(a,{subtype:"info"},{default:u(()=>[...e[2]||(e[2]=[f(" Ihre persönlichen Zugangsdaten (Client-ID und Client-Secret) erhalten Sie direkt von Voltego. Behandeln Sie diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Ihrem Voltego-Account abfragen lassen! ",-1)])]),_:1}),o(n,{title:"Client-ID",subtype:"user",required:"","model-value":t.electricityTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),o(n,{title:"Client-Secret",subtype:"password",required:"","model-value":t.electricityTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"])])}const I=s(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/voltego/electricity_tariff.vue"]]);export{I as default}; diff --git a/web/settings/assets/electricity_tariff-8d854ff1.js b/web/settings/assets/electricity_tariff-8d854ff1.js new file mode 100644 index 0000000000..118adfd2b3 --- /dev/null +++ b/web/settings/assets/electricity_tariff-8d854ff1.js @@ -0,0 +1 @@ +import{E as o}from"./GeneralChargeConfig-d70b0d95.js";import{_ as a,u as n,l as s,m as c,G as l,E as p,B as f}from"./vendor-25d394b4.js";import"./index-8dd8e083.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"ElectricityTariffAwattar",mixins:[o]},u={class:"electricity-tariff-awattar"};function m(t,e,_,w,b,v){const i=n("openwb-base-select-input");return s(),c("div",u,[l(i,{title:"Land","not-selected":"Bitte auswählen",options:[{value:"de",text:"Deutschland"},{value:"at",text:"Österreich"}],"model-value":t.electricityTariff.configuration.country,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.country"))},{help:p(()=>e[1]||(e[1]=[f(" Es werden die abgefragten Börsenpreise verwendet, die aWATTar bereitstellt. aWATTar-Gebühren oder Steuern werden nicht berücksichtigt. ",-1)])),_:1},8,["model-value"])])}const k=a(d,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/awattar/electricity_tariff.vue"]]);export{k as default}; diff --git a/web/settings/assets/electricity_tariff-bb9b303f.js b/web/settings/assets/electricity_tariff-ae11ea5d.js similarity index 72% rename from web/settings/assets/electricity_tariff-bb9b303f.js rename to web/settings/assets/electricity_tariff-ae11ea5d.js index eddf32e3cc..c82bdda209 100644 --- a/web/settings/assets/electricity_tariff-bb9b303f.js +++ b/web/settings/assets/electricity_tariff-ae11ea5d.js @@ -1 +1 @@ -import{E as n}from"./GeneralChargeConfig-0f9eaa85.js";import{_ as a,u as l,l as u,m as s,G as r}from"./vendor-36bf053b.js";import"./index-0992d19b.js";import"./vendor-fortawesome-2b3791bb.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const p={name:"ElectricityTariffOctopusEnergy",mixins:[n]},f={class:"electricity-tariff-octopusenergy"};function m(e,t,c,d,g,y){const i=l("openwb-base-text-input");return u(),s("div",f,[r(i,{title:"Benutzername",subtype:"user",required:"","model-value":e.electricityTariff.configuration.email,"onUpdate:modelValue":t[0]||(t[0]=o=>e.updateConfiguration(o,"configuration.email"))},null,8,["model-value"]),r(i,{title:"Passwort",subtype:"password",required:"","model-value":e.electricityTariff.configuration.password,"onUpdate:modelValue":t[1]||(t[1]=o=>e.updateConfiguration(o,"configuration.password"))},null,8,["model-value"]),r(i,{title:"Vertragsnummer (beginnt mit A-)",required:"","model-value":e.electricityTariff.configuration.accountId,"onUpdate:modelValue":t[2]||(t[2]=o=>e.updateConfiguration(o,"configuration.accountId"))},null,8,["model-value"])])}const $=a(p,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/octopusenergy/electricity_tariff.vue"]]);export{$ as default}; +import{E as n}from"./GeneralChargeConfig-d70b0d95.js";import{_ as a,u as l,l as u,m as s,G as r}from"./vendor-25d394b4.js";import"./index-8dd8e083.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const p={name:"ElectricityTariffOctopusEnergy",mixins:[n]},f={class:"electricity-tariff-octopusenergy"};function m(e,t,c,d,g,y){const i=l("openwb-base-text-input");return u(),s("div",f,[r(i,{title:"Benutzername",subtype:"user",required:"","model-value":e.electricityTariff.configuration.email,"onUpdate:modelValue":t[0]||(t[0]=o=>e.updateConfiguration(o,"configuration.email"))},null,8,["model-value"]),r(i,{title:"Passwort",subtype:"password",required:"","model-value":e.electricityTariff.configuration.password,"onUpdate:modelValue":t[1]||(t[1]=o=>e.updateConfiguration(o,"configuration.password"))},null,8,["model-value"]),r(i,{title:"Vertragsnummer (beginnt mit A-)",required:"","model-value":e.electricityTariff.configuration.accountId,"onUpdate:modelValue":t[2]||(t[2]=o=>e.updateConfiguration(o,"configuration.accountId"))},null,8,["model-value"])])}const $=a(p,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/octopusenergy/electricity_tariff.vue"]]);export{$ as default}; diff --git a/web/settings/assets/electricity_tariff-b47c4656.js b/web/settings/assets/electricity_tariff-b47c4656.js deleted file mode 100644 index 0ce5160424..0000000000 --- a/web/settings/assets/electricity_tariff-b47c4656.js +++ /dev/null @@ -1 +0,0 @@ -import{E as I}from"./GeneralChargeConfig-0f9eaa85.js";import{_ as S,l as o,m as c,A as u,p as k,u as s,x as w,D as N,E as a,B as f,F as V,G as r,y as C,z as B,N as x,M as $,I as q,S as z}from"./vendor-36bf053b.js";import{l as T,d as F,ab as O,F as U}from"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const H={name:"TimeRow"},W={class:"w-100"},A={class:"form-row align-items-center"},D={class:"col-10"},Q={class:"form-row"},Z={class:"col-6"},M={class:"col-6"},P={class:"col-2 text-right"};function K(t,e,p,v,g,n){return o(),c("div",W,[u("div",A,[u("div",D,[u("div",Q,[u("div",Z,[k(t.$slots,"start")]),u("div",M,[k(t.$slots,"end")])])]),u("div",P,[k(t.$slots,"action")])])])}const R=S(H,[["render",K],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/fixed_hours/TimeRow.vue"]]);T.add(F);T.add(O);const L={name:"TimeTable",components:{FontAwesomeIcon:U,TimeRow:R},inheritAttrs:!1,props:{title:{type:String,required:!0,default:"#TITLE#"},modelValue:{type:Array,default:()=>[]}},emits:["update:modelValue"],data(){return{endOptions:this.modelValue.map(()=>this.generateTimeOptions("01:00","24:00"))}},computed:{value:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}}},methods:{generateTimeOptions(t,e){const p=[],v=parseInt(t.split(":")[0],10),g=parseInt(e.split(":")[0],10);for(let n=v;n<=g;n++){const d=`${n.toString().padStart(2,"0")}:00`;p.push({value:d,text:d})}return p},addTime(){this.value.push(["",""])},removeTime(t){this.value.splice(t,1)},updateEndOptions(t){const e=this.value[t][0];if(e){const v=(parseInt(e.split(":")[0],10)+1).toString().padStart(2,"0")+":00";this.endOptions[t]=this.generateTimeOptions(v,"24:00")}else this.endOptions[t]=this.generateTimeOptions("01:00","24:00")}}},j={key:0,class:"w-100 alert alert-danger"},G=["onUpdate:modelValue","onChange"],J=["value"],X=["onUpdate:modelValue"],Y=["value"];function ee(t,e,p,v,g,n){const m=s("font-awesome-icon"),d=s("openwb-base-avatar"),h=s("time-row"),y=s("openwb-base-setting-element");return o(),w(y,null,N({title:a(()=>[k(t.$slots,"title",{},()=>[f(V(p.title),1)])]),default:a(()=>[r(h,null,{start:a(()=>[...e[0]||(e[0]=[f(" Beginn ",-1)])]),end:a(()=>[...e[1]||(e[1]=[f(" Ende ",-1)])]),action:a(()=>[r(d,{class:"bg-success clickable",title:"Zeitbereich hinzufügen",onClick:C(n.addTime,["stop"])},{default:a(()=>[r(m,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),_:1}),n.value.length===0?(o(),c("div",j," Keine Zeitbereiche definiert! ")):B("",!0),(o(!0),c(x,null,$(n.value,(_,b)=>(o(),w(h,{key:b},{start:a(()=>[q(u("select",{"onUpdate:modelValue":i=>_[0]=i,class:"form-control",required:"",onChange:i=>n.updateEndOptions(b)},[e[2]||(e[2]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(o(!0),c(x,null,$(n.generateTimeOptions("00:00","23:00"),i=>(o(),c("option",{key:i.value,value:i.value},V(i.text),9,J))),128))],40,G),[[z,_[0]]])]),end:a(()=>[q(u("select",{"onUpdate:modelValue":i=>_[1]=i,class:"form-control",required:""},[e[3]||(e[3]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(o(!0),c(x,null,$(g.endOptions[b],i=>(o(),c("option",{key:i.value,value:i.value},V(i.text),9,Y))),128))],8,X),[[z,_[1]]])]),action:a(()=>[n.value.length>1?(o(),w(d,{key:0,class:"bg-danger clickable",title:"Zeitbereich entfernen",onClick:C(i=>n.removeTime(b),["stop"])},{default:a(()=>[r(m,{icon:["fas","trash"]})]),_:1},8,["onClick"])):B("",!0)]),_:2},1024))),128))]),_:2},[t.$slots.help?{name:"help",fn:a(()=>[k(t.$slots,"help")]),key:"0"}:void 0]),1024)}const te=S(L,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/fixed_hours/TimeTable.vue"]]);T.add(F);T.add(O);const ne={name:"FixedTariff",components:{FontAwesomeIcon:U,TimeTable:te},props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue","delete"],computed:{tariff:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}},dates:{get(){return this.tariff.active_times.dates.map(([t,e])=>`${t};${e}`)},set(t){this.tariff.active_times.dates=t.map(e=>e.split(";"))}}}};function ae(t,e,p,v,g,n){const m=s("font-awesome-icon"),d=s("openwb-base-avatar"),h=s("openwb-base-text-input"),y=s("openwb-base-number-input"),_=s("openwb-base-select-input"),b=s("time-table"),i=s("openwb-base-card");return o(),w(i,{subtype:"info",collapsible:!0},{header:a(()=>[f(V(n.tariff.name),1)]),actions:a(()=>[r(d,{class:"bg-danger clickable",onClick:e[0]||(e[0]=l=>t.$emit("delete"))},{default:a(()=>[r(m,{icon:["fas","trash"]})]),_:1})]),default:a(()=>[r(h,{modelValue:n.tariff.name,"onUpdate:modelValue":e[1]||(e[1]=l=>n.tariff.name=l),title:"Tarifname"},null,8,["modelValue"]),r(y,{title:"Preis",min:0,step:.1,precision:1,required:"",unit:"ct/kWh","model-value":n.tariff.price*100,"onUpdate:modelValue":e[2]||(e[2]=l=>n.tariff.price=parseFloat((l/100).toFixed(3)))},null,8,["model-value"]),r(_,{modelValue:n.dates,"onUpdate:modelValue":e[3]||(e[3]=l=>n.dates=l),title:"Quartale",required:"",multiple:"",options:[{value:"01-01;31-03",text:"1. Quartal"},{value:"01-04;30-06",text:"2. Quartal"},{value:"01-07;30-09",text:"3. Quartal"},{value:"01-10;31-12",text:"4. Quartal"}]},null,8,["modelValue"]),r(b,{modelValue:n.tariff.active_times.times,"onUpdate:modelValue":e[4]||(e[4]=l=>n.tariff.active_times.times=l),title:"Aktive Zeiten"},null,8,["modelValue"])]),_:1})}const ie=S(ne,[["render",ae],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/fixed_hours/FixedTariff.vue"]]);T.add(F);T.add(O);const se={name:"ElectricityTariffFixedHours",components:{FontAwesomeIcon:U,FixedTariff:ie},mixins:[I],computed:{value:{get(){return this.electricityTariff},set(t){console.log("set",t),this.updateConfiguration(t)}}},methods:{addTariff(){this.value.configuration.tariffs.push({name:"Neuer Tarif",price:0,active_times:{dates:[],times:[["",""]]}})},removeTariff(t){this.value.configuration.tariffs.splice(t,1)}}},oe={class:"electricity-tariff-fixed-hours"};function re(t,e,p,v,g,n){const m=s("openwb-base-alert"),d=s("openwb-base-number-input"),h=s("font-awesome-icon"),y=s("openwb-base-avatar"),_=s("openwb-base-heading"),b=s("fixed-tariff");return o(),c("div",oe,[r(m,{subtype:"info"},{default:a(()=>[...e[1]||(e[1]=[f(" Konfiguriert feste Tarifzeiten, z.b. HT, NT und Standardpreis. ",-1)])]),_:1}),r(d,{title:"Standardpreis",min:0,step:.1,precision:1,required:"",unit:"ct/kWh","model-value":n.value.configuration.default_price*100,"onUpdate:modelValue":e[0]||(e[0]=i=>n.value.configuration.default_price=parseFloat((i/100).toFixed(3)))},{help:a(()=>[...e[2]||(e[2]=[f(" Standardpreis sofern kein anderer Tarif aktiv ist. ",-1)])]),_:1},8,["model-value"]),e[5]||(e[5]=u("hr",null,null,-1)),r(_,null,{actions:a(()=>[r(y,{class:"bg-success clickable",onClick:C(n.addTariff,["stop"])},{default:a(()=>[r(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:a(()=>[e[3]||(e[3]=f(" Tarife ",-1))]),_:1}),n.value.configuration.tariffs.length===0?(o(),w(m,{key:0,subtype:"info"},{default:a(()=>[...e[4]||(e[4]=[f(" Es wurde noch kein Tarif konfiguriert. Klicken Sie auf das Plus-Symbol um einen neuen Tarif hinzuzufügen.",-1),u("br",null,null,-1),f(" Tarife ermöglichen es unterschiedliche Preise für unterschiedliche Zeiten zu definieren. ",-1)])]),_:1})):B("",!0),(o(!0),c(x,null,$(n.value.configuration.tariffs,(i,l)=>(o(),w(b,{key:l,"model-value":i,"onUpdate:modelValue":E=>n.value.configuration.tariffs[l]=E,onDelete:E=>n.removeTariff(l)},null,8,["model-value","onUpdate:modelValue","onDelete"]))),128))])}const ve=S(se,[["render",re],["__scopeId","data-v-aa5a711c"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/fixed_hours/electricity_tariff.vue"]]);export{ve as default}; diff --git a/web/settings/assets/electricity_tariff-cf2ab1f8.js b/web/settings/assets/electricity_tariff-cf2ab1f8.js new file mode 100644 index 0000000000..69b444ec29 --- /dev/null +++ b/web/settings/assets/electricity_tariff-cf2ab1f8.js @@ -0,0 +1 @@ +import{E as c}from"./GeneralChargeConfig-d70b0d95.js";import{_ as p,u as r,l as d,m as f,G as i,E as o,B as s,A as m}from"./vendor-25d394b4.js";import"./index-8dd8e083.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"ElectricityTariffEnergyCharts",mixins:[c]},h={class:"electricity-tariff-energy-charts"};function b(t,e,_,y,w,v){const a=r("openwb-base-alert"),l=r("openwb-base-select-input"),u=r("openwb-base-number-input");return d(),f("div",h,[i(a,{subtype:"info"},{default:o(()=>e[2]||(e[2]=[s(" Börsenstrompreise von Energy Charts (energy-charts.info)",-1),m("br",null,null,-1),s(" Die Rohdaten werden von Wissenschaftlern des Fraunhofer-Instituts für Solare Energiesysteme ISE aus zahlreichen Quellen stündlich oder täglich abgerufen und für die Darstellung aufbereitet. ",-1)])),_:1,__:[2]}),i(l,{title:"Land","not-selected":"Bitte auswählen",options:[{value:"DE-LU",text:"Deutschland"},{value:"AT",text:"Österreich"},{value:"CH",text:"Schweiz"}],"model-value":t.electricityTariff.configuration.country,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.country"))},null,8,["model-value"]),i(u,{title:"Aufschlag zum Börsenstrompreis",min:0,step:.001,precision:3,required:"",unit:"ct/kWh","model-value":t.electricityTariff.configuration.surcharge,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(parseFloat(n.toFixed(3)),"configuration.surcharge"))},{help:o(()=>e[3]||(e[3]=[s(" Die Auswahl (Energy-Charts) kann für alle Stromanbieter ausgewählt werden, die die Börsenstrompreise in einem variablen/dynamischen Tarif an die Kunden weitergeben. Das Modul soll es ermöglichen, dass zu tagesaktuellen Strompreisen unter Berücksichtigung eines Aufschlags zu günstigen Zeiten automatisch geladen werden kann und somit die Preisschwankungen an der Börse optimal ausgenutzt werden. ",-1)])),_:1},8,["model-value"])])}const S=p(g,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/energycharts/electricity_tariff.vue"]]);export{S as default}; diff --git a/web/settings/assets/electricity_tariff-d88859b8.js b/web/settings/assets/electricity_tariff-d88859b8.js deleted file mode 100644 index ffa84efc03..0000000000 --- a/web/settings/assets/electricity_tariff-d88859b8.js +++ /dev/null @@ -1 +0,0 @@ -import{E as p}from"./GeneralChargeConfig-0f9eaa85.js";import{_ as u,u as a,l as d,m as f,G as r,E as l,B as n,A as m}from"./vendor-36bf053b.js";import"./index-0992d19b.js";import"./vendor-fortawesome-2b3791bb.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"ElectricityTariffOstrom",mixins:[p]},g={class:"electricity-tariff-ostrom"};function b(t,e,_,h,v,w){const s=a("openwb-base-alert"),o=a("openwb-base-text-input");return d(),f("div",g,[r(s,{subtype:"info"},{default:l(()=>[...e[3]||(e[3]=[n(" Ihre persönlichen Zugangsdaten (Client-ID und Client-Secret) erhalten Sie über das ",-1),m("a",{href:"https://developer.ostrom-api.io/",target:"_blank",rel:"noopener noreferrer"}," Ostrom Developer Portal ",-1),n(" . Behandeln Sie diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Ihrem ostrom-Account abfragen lassen! ",-1)])]),_:1}),r(o,{title:"Client-ID",subtype:"user",required:"","model-value":t.electricityTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),r(o,{title:"Client-Secret",subtype:"password",required:"","model-value":t.electricityTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"]),r(o,{title:"Postleitzahl","model-value":t.electricityTariff.configuration.zip,"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateConfiguration(i,"configuration.zip"))},{help:l(()=>[...e[4]||(e[4]=[n(" Die Postleitzahl wird zur Ermittlung der Abgaben und Umlagen benötigt. Ohne Angabe der Postleitzahl wird durch die ostrom API lediglich der Börsenstrompreis einschließlich Mehrwertsteuer geliefert. ",-1)])]),_:1},8,["model-value"])])}const A=u(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/ostrom/electricity_tariff.vue"]]);export{A as default}; diff --git a/web/settings/assets/external_inverter-320c1f8c.js b/web/settings/assets/external_inverter-320c1f8c.js deleted file mode 100644 index fa955002b0..0000000000 --- a/web/settings/assets/external_inverter-320c1f8c.js +++ /dev/null @@ -1 +0,0 @@ -import{C as m}from"./HardwareInstallation-35a2a562.js";import{_ as p,u as i,l as g,m as f,G as o,E as r,B as s}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceSolaredgeExternalInverter",mixins:[m]},c={class:"device-solaredge-external-inverter"};function v(n,e,_,w,x,E){const l=i("openwb-base-heading"),u=i("openwb-base-alert"),a=i("openwb-base-number-input"),d=i("openwb-base-select-input");return g(),f("div",c,[o(l,null,{default:r(()=>[...e[3]||(e[3]=[s(" Einstellungen für SolarEdge externen Wechselrichter ",-1)])]),_:1}),o(u,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[s(' Diese Komponente nur konfigurieren, wenn ein weiteres Solaredge SmartMeter verbaut ist, welches z.B. die Leistung einer vorhandenen Bestands-PV-Anlage erfasst. Dieses zusätzliche SmartMeter muss dann als "Zähler 2" / "Position 2" im Wechselrichter-Konfigurationsmenü konfiguriert sein. ',-1)])]),_:1}),o(a,{title:"SolarEdge-Geräte-ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),o(a,{title:"SolarEdge-Meter-ID","model-value":n.component.configuration.meter_id,min:"1",max:"255",required:"","onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.meter_id"))},null,8,["model-value"]),o(d,{title:"Leistung invertieren","not-selected":"Bitte auswählen",options:[{value:1,text:"nein"},{value:-1,text:"ja"}],"model-value":n.component.configuration.factor,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.factor"))},{help:r(()=>[...e[5]||(e[5]=[s(" Einige externe SolarEdge Wechselrichter liefern die Leistung mit falschem Vorzeichen. In diesem Fall ist die Leistung zu invertieren. ",-1)])]),_:1},8,["model-value"])])}const L=p(b,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/external_inverter.vue"]]);export{L as default}; diff --git a/web/settings/assets/external_inverter-8e60306f.js b/web/settings/assets/external_inverter-8e60306f.js new file mode 100644 index 0000000000..4dd2b657a6 --- /dev/null +++ b/web/settings/assets/external_inverter-8e60306f.js @@ -0,0 +1 @@ +import{C as m}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as i,l as g,m as f,G as o,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolaredgeExternalInverter",mixins:[m]},b={class:"device-solaredge-external-inverter"};function c(n,e,v,w,x,E){const l=i("openwb-base-heading"),u=i("openwb-base-alert"),a=i("openwb-base-number-input"),d=i("openwb-base-select-input");return g(),f("div",b,[o(l,null,{default:r(()=>e[3]||(e[3]=[s(" Einstellungen für SolarEdge externen Wechselrichter ",-1)])),_:1,__:[3]}),o(u,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[s(' Diese Komponente nur konfigurieren, wenn ein weiteres Solaredge SmartMeter verbaut ist, welches z.B. die Leistung einer vorhandenen Bestands-PV-Anlage erfasst. Dieses zusätzliche SmartMeter muss dann als "Zähler 2" / "Position 2" im Wechselrichter-Konfigurationsmenü konfiguriert sein. ',-1)])),_:1,__:[4]}),o(a,{title:"SolarEdge-Geräte-ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),o(a,{title:"SolarEdge-Meter-ID","model-value":n.component.configuration.meter_id,min:"1",max:"255",required:"","onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.meter_id"))},null,8,["model-value"]),o(d,{title:"Leistung invertieren","not-selected":"Bitte auswählen",options:[{value:1,text:"nein"},{value:-1,text:"ja"}],"model-value":n.component.configuration.factor,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.factor"))},{help:r(()=>e[5]||(e[5]=[s(" Einige externe SolarEdge Wechselrichter liefern die Leistung mit falschem Vorzeichen. In diesem Fall ist die Leistung zu invertieren. ",-1)])),_:1},8,["model-value"])])}const L=p(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/external_inverter.vue"]]);export{L as default}; diff --git a/web/settings/assets/index-0992d19b.js b/web/settings/assets/index-0992d19b.js deleted file mode 100644 index d09c4a971e..0000000000 --- a/web/settings/assets/index-0992d19b.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as y,l as i,m as u,p as g,q as S,u as b,x as h,y as q,z as p,A as a,B as f,D as A,E as c,F as v,G as _,I as B,J as I,K as O,L as ee,M as x,N as T,O as te,P as ne,Q as se,R as oe,T as F,S as ae,U as N,V as ie,W as le,X as re,Y as de,Z as ue,$ as ce,a0 as pe}from"./vendor-36bf053b.js";import{l as $,f as H,a as U,F as C,b as me,c as fe,d as G,e as _e,g as j,h as ge,i as be,j as he,k as ve,m as ye,n as we,o as ke,p as Se,q as Oe,r as Be,s as $e,t as Ce,u as Ie,v as Te,w as J,x as Ve,y as Ae,z as Me,A as Pe,B as K,C as xe,D as qe,E as De,G as Ee,H as Le,I as je,J as We,K as Re,L as Ne,M as ze,N as Fe}from"./vendor-fortawesome-2b3791bb.js";import"./vendor-bootstrap-87ba0f33.js";import{p as He,a as Ue}from"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./vendor-jquery-ffd3fdac.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))d(l);new MutationObserver(l=>{for(const s of l)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&d(o)}).observe(document,{childList:!0,subtree:!0});function n(l){const s={};return l.integrity&&(s.integrity=l.integrity),l.referrerPolicy&&(s.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?s.credentials="include":l.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function d(l){if(l.ep)return;l.ep=!0;const s=n(l);fetch(l.href,s)}})();const Ge={name:"OpenwbAlert",props:{subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}}};function Je(e,t,n,d,l,s){return i(),u("div",{class:S(["card-text alert","alert-"+n.subtype])},[g(e.$slots,"default",{},void 0,!0)],2)}const Ke=y(Ge,[["render",Je],["__scopeId","data-v-055c15aa"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAlert.vue"]]),Ze=Object.freeze(Object.defineProperty({__proto__:null,default:Ke},Symbol.toStringTag,{value:"Module"}));$.add(H,U);const Qe={name:"OpenwbBaseSettingElement",components:{FontAwesomeIcon:C},data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},Ye={key:0,class:"col-md-4 col-form-label"},Xe={class:"form-row"},et={key:0,class:"form-text alert alert-info my-1 small flex-fill"};function tt(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("div",{class:S(["form-row",e.$slots.title?"mb-1":"mx-0"])},[e.$slots.title?(i(),u("label",Ye,[g(e.$slots,"title",{},void 0,!0),e.$slots.help?(i(),h(o,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:S(["clickable ml-1",l.showHelp?"text-info":""]),onClick:q(s.toggleHelp,["stop"])},null,8,["icon","class","onClick"])):p("",!0)])):p("",!0),a("div",{class:S(e.$slots.title?"col-md-8":"col px-0")},[a("div",{class:S({"form-row":e.$slots.title})},[g(e.$slots,"default",{},()=>[t[0]||(t[0]=f("*ELEMENT MISSING*",-1))],!0)],2),a("div",Xe,[l.showHelp?(i(),u("span",et,[g(e.$slots,"help",{},void 0,!0)])):p("",!0)])],2)],2)}const M=y(Qe,[["render",tt],["__scopeId","data-v-33864f66"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSettingElement.vue"]]),nt=Object.freeze(Object.defineProperty({__proto__:null,default:M},Symbol.toStringTag,{value:"Module"}));$.add(me,fe,G,_e);const st={name:"OpenwbArrayInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!0,default:"#TITLE#"},modelValue:{type:Array,default:()=>[]},noElementsMessage:{type:String,default:()=>"Keine Elemente zugeordnet."},noInput:{type:Boolean,default:()=>!1}},emits:["update:modelValue"],data(){return{newTag:"",showHelp:!1}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},newTagValid:{get(){var e;return this.newTag.length>0&&!this.value.includes(this.newTag)&&((e=this.$refs.tagInput)==null?void 0:e.checkValidity())}}},methods:{addTag(){if(this.newTagValid){const e=[...this.value,this.newTag].sort();this.value=e,this.newTag=""}this.$refs.tagInput.focus()},removeTag(e){let t=[...this.value];t.splice(e,1),this.value=t}}},ot={key:0,class:"w-100"},at={class:"input-group"},it={class:"input-group-prepend"},lt={class:"input-group-text"},rt={class:"input-group-append"},dt={class:"tagList mt-1 w-100"},ut={key:0,class:"noTag"};function ct(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[n.noInput?p("",!0):(i(),u("div",ot,[a("div",at,[a("div",it,[a("div",lt,[g(e.$slots,"input-prefix",{},()=>[_(o,{icon:["fas","tag"]})],!0)])]),B(a("input",O({ref:"tagInput","onUpdate:modelValue":t[0]||(t[0]=r=>l.newTag=r),type:"text",class:"form-control"},e.$attrs,{onKeyup:t[1]||(t[1]=ee((...r)=>s.addTag&&s.addTag(...r),["enter"]))}),null,16),[[I,l.newTag]]),a("div",rt,[a("div",{class:S(["input-group-text",s.newTagValid?"bg-success clickable":"not-clickable"]),onClick:t[2]||(t[2]=(...r)=>s.addTag&&s.addTag(...r))},[g(e.$slots,"input-add",{},()=>[_(o,{icon:["fas","plus"]})],!0)],2)])])])),a("div",dt,[s.value.length==0?(i(),u("span",ut,[_(o,{icon:["fas","info-circle"]}),f(" "+v(n.noElementsMessage),1)])):p("",!0),(i(!0),u(T,null,x(s.value,(r,w)=>(i(),u("span",{key:w,class:"tag"},[g(e.$slots,"element-prefix",{},()=>[_(o,{icon:["fas","tag"]})],!0),f(" "+v(r)+" ",1),n.noInput?p("",!0):(i(),h(o,{key:0,class:"clickable remove-element",icon:["fas","times-circle"],onClick:V=>s.removeTag(w)},null,8,["onClick"]))]))),128))])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const pt=y(st,[["render",ct],["__scopeId","data-v-9de93d37"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseArrayInput.vue"]]),mt=Object.freeze(Object.defineProperty({__proto__:null,default:pt},Symbol.toStringTag,{value:"Module"}));const ft={name:"OpenwbAvatar"},_t={class:"avatar"};function gt(e,t,n,d,l,s){return i(),u("div",_t,[g(e.$slots,"default",{},()=>[t[0]||(t[0]=f("?",-1))],!0)])}const bt=y(ft,[["render",gt],["__scopeId","data-v-06082a1a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAvatar.vue"]]),ht=Object.freeze(Object.defineProperty({__proto__:null,default:bt},Symbol.toStringTag,{value:"Module"}));$.add(j);const vt={name:"OpenwbButtonGroupInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Number,Boolean],default:void 0},buttons:{type:Array,required:!0}},emits:["update:modelValue","button-click"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},yt={class:"btn-group btn-block btn-group-toggle"},wt=["value","onClick"];function kt(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",yt,[(i(!0),u(T,null,x(n.buttons,r=>(i(),u("label",{key:r.value,class:S(["btn btn-same-size btn-centered",[s.value==r.buttonValue?"active":"",r.class?r.class:"btn-outline-info"]])},[a("span",null,[B(a("input",O({"onUpdate:modelValue":t[0]||(t[0]=w=>s.value=w),type:"radio",value:r.buttonValue},{ref_for:!0},e.$attrs,{onClick:w=>e.$emit("button-click",r.buttonValue)}),null,16,wt),[[te,s.value]]),g(e.$slots,"label-"+r.buttonValue,{},()=>[f(v(r.text),1)],!0),t[1]||(t[1]=a("span",null," ",-1)),_(o,{icon:["fas","check"],style:ne([s.value==r.buttonValue?"visibility: visible":"visibility: hidden"])},null,8,["style"])])],2))),128))])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const St=y(vt,[["render",kt],["__scopeId","data-v-31e583df"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonGroupInput.vue"]]),Ot=Object.freeze(Object.defineProperty({__proto__:null,default:St},Symbol.toStringTag,{value:"Module"}));const Bt={name:"OpenwbClickButton",props:{title:{type:String,required:!1,default:""},tooltip:{type:String,required:!1,default:""}},emits:["buttonClicked"],methods:{click(e){this.$emit("buttonClicked",e)}}},$t=["title"];function Ct(e,t,n,d,l,s){return i(),u("button",{type:"button",class:"btn btn-block",title:n.tooltip,onClick:t[0]||(t[0]=q((...o)=>s.click&&s.click(...o),["prevent"]))},[g(e.$slots,"default",{},()=>[f(v(n.title),1)],!0)],8,$t)}const Z=y(Bt,[["render",Ct],["__scopeId","data-v-2e9c095b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseClickButton.vue"]]),It=Object.freeze(Object.defineProperty({__proto__:null,default:Z},Symbol.toStringTag,{value:"Module"})),Tt={name:"OpenwbButtonInput",components:{OpenwbBaseSettingElement:M,OpenwbBaseClickButton:Z},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},buttonText:{type:String,required:!1,default:void 0},disabled:{type:Boolean,default:!1},subtype:{type:String,validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}},emits:["buttonClicked"],methods:{handleClick(e){this.$emit("buttonClicked",e)}}};function Vt(e,t,n,d,l,s){const o=b("openwb-base-click-button"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),default:c(()=>[_(o,O({class:(n.disabled?"btn-outline-":"btn-")+n.subtype,disabled:n.disabled},e.$attrs,{onButtonClicked:s.handleClick}),{default:c(()=>[f(v(n.buttonText),1)]),_:1},16,["class","disabled","onButtonClicked"])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"0"}:void 0]),1024)}const At=y(Tt,[["render",Vt],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonInput.vue"]]),Mt=Object.freeze(Object.defineProperty({__proto__:null,default:At},Symbol.toStringTag,{value:"Module"}));$.add(ge,be);const Pt={name:"OpenwbCard",components:{FontAwesomeIcon:C},inheritAttrs:!1,props:{title:{type:String,default:void 0},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark","pink","white"].indexOf(e)!==-1},default:"secondary"},bodyBg:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark","pink","white"].indexOf(e)!==-1},default:"light"},collapsible:{type:Boolean,default:!1},collapsed:{type:Boolean,default:!1}},emits:["collapsed","expanded"],data(){return{isCollapsed:this.collapsible&&this.collapsed}},methods:{toggleBody(){this.collapsible===!0&&(this.isCollapsed=!this.isCollapsed,this.$emit(this.isCollapsed?"collapsed":"expanded"))}}},xt={class:"form-group mb-0"},qt={class:"form-row vaRow mb-0 py-2"},Dt={class:"col"},Et={class:"card-actions ml-4"},Lt={key:0,class:"card-actions mr-2"},jt={key:2,class:"card-footer"};function Wt(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("div",{class:S(["card","border-"+n.subtype])},[n.title!==void 0||e.$slots.header?(i(),u("div",{key:0,class:S(["card-header py-1","bg-"+n.subtype]),onClick:t[0]||(t[0]=(...m)=>s.toggleBody&&s.toggleBody(...m))},[a("div",xt,[a("div",qt,[a("div",Dt,[g(e.$slots,"header",{collapsed:l.isCollapsed},()=>[f(v(n.title),1)],!0)])])]),a("div",Et,[e.$slots.actions?(i(),u("div",Lt,[g(e.$slots,"actions",{collapsed:l.isCollapsed},void 0,!0)])):p("",!0),n.collapsible?(i(),h(o,{key:1,icon:l.isCollapsed?["fas","chevron-right"]:["fas","chevron-down"]},null,8,["icon"])):p("",!0)])],2)):p("",!0),l.isCollapsed===!1?(i(),u("div",O({key:1,class:["card-body",[n.title==null&&!e.$slots.header?"border-radius-top-inherit":"",e.$slots.footer?"":"border-radius-bottom-inherit","bg-"+n.bodyBg]]},e.$attrs),[g(e.$slots,"default",{},void 0,!0)],16)):p("",!0),e.$slots.footer&&l.isCollapsed===!1?(i(),u("div",jt,[g(e.$slots,"footer",{},void 0,!0)])):p("",!0)],2)}const Rt=y(Pt,[["render",Wt],["__scopeId","data-v-9833c353"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCard.vue"]]),Nt=Object.freeze(Object.defineProperty({__proto__:null,default:Rt},Symbol.toStringTag,{value:"Module"})),zt={name:"OpenwbCheckboxInput",components:{OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Boolean}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},Ft={class:"col-md-8"};function Ht(e,t,n,d,l,s){const o=b("openwb-base-setting-element");return i(),h(o,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),default:c(()=>[a("div",Ft,[B(a("input",O({"onUpdate:modelValue":t[0]||(t[0]=m=>s.value=m),class:"form-control",type:"checkbox"},e.$attrs),null,16),[[se,s.value]])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"0"}:void 0]),1024)}const Ut=y(zt,[["render",Ht],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCheckboxInput.vue"]]),Gt=Object.freeze(Object.defineProperty({__proto__:null,default:Ut},Symbol.toStringTag,{value:"Module"}));$.add(he);const Jt={name:"OpenwbColorPicker",components:{FontAwesomeIcon:C},props:{defaultColor:{type:String,required:!1,default:void 0,validator:e=>/^#[0-9A-F]{6}$/i.test(e)},modelValue:{type:String,required:!1,default:"#000000",validator:e=>/^#[0-9A-F]{6}$/i.test(e)}},emits:["update:model-value"],methods:{changed(e){this.$emit("update:model-value",e)}}},Kt={class:"wrapper"},Zt=["value","title"];function Qt(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("div",Kt,[a("input",{type:"color",class:"custom-color-picker",value:n.modelValue,title:`Farbe: ${n.modelValue}`,onInput:t[0]||(t[0]=m=>s.changed(m.target.value))},null,40,Zt),n.defaultColor?(i(),h(o,{key:0,class:"ml-1 clickable",icon:["fas","rotate-left"],title:`Zurücksetzen auf Standardfarbe (${n.defaultColor})`,onClick:t[1]||(t[1]=m=>s.changed(n.defaultColor))},null,8,["title"])):p("",!0)])}const Yt=y(Jt,[["render",Qt],["__scopeId","data-v-1378b599"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseColorPicker.vue"]]),Xt=Object.freeze(Object.defineProperty({__proto__:null,default:Yt},Symbol.toStringTag,{value:"Module"}));const{text:en,copy:tn,copied:nn,isSupported:sn}=oe({copiedDuring:3e3,legacy:!0});$.add(ve,ye);const on={name:"OpenwbCopyToClipboard",components:{FontAwesomeIcon:C},props:{tooltip:{type:String,default:"Wert kopieren"}},data(){return{}},computed:{contentText(){return this.$refs.content?this.$refs.content.innerText.trim():""},isCopied(){return nn.value},copySupported(){return sn.value}},methods:{click(){this.copySupported&&tn(this.contentText).then(()=>{console.debug("Text copied to clipboard:",en.value)}).catch(e=>{console.error("Failed to copy text to clipboard:",e)})}}},an=["title"],ln={ref:"content"};function rn(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("span",{title:s.copySupported&&!s.isCopied?n.tooltip:"",class:S({"copy-me":s.copySupported&&!s.isCopied}),onClick:t[0]||(t[0]=q((...m)=>s.click&&s.click(...m),["stop"]))},[a("span",ln,[g(e.$slots,"default",{},void 0,!0)],512),s.copySupported?(i(),h(o,{key:0,icon:s.isCopied?["fas","clipboard-check"]:["fas","clipboard"]},null,8,["icon"])):p("",!0)],10,an)}const dn=y(on,[["render",rn],["__scopeId","data-v-81826ebe"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCopyToClipboard.vue"]]),un=Object.freeze(Object.defineProperty({__proto__:null,default:dn},Symbol.toStringTag,{value:"Module"}));$.add(H,U,j);const cn={name:"OpenwbHeading",components:{FontAwesomeIcon:C},inheritAttrs:!1,data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},pn={class:"heading-text"},mn={key:0,class:"actions"},fn={class:""},_n={key:0,class:"form-row alert alert-info small flex-fill"};function gn(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u(T,null,[a("div",O({class:"card-text card-text-heading"},e.$attrs),[a("div",pn,[g(e.$slots,"default",{},void 0,!0),e.$slots.help?(i(),h(o,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:S(["clickable",l.showHelp?"text-info":""]),onClick:q(s.toggleHelp,["stop"])},null,8,["icon","class","onClick"])):p("",!0)]),e.$slots.actions?(i(),u("span",mn,[g(e.$slots,"actions",{},void 0,!0)])):p("",!0)],16),a("div",fn,[l.showHelp?(i(),u("span",_n,[g(e.$slots,"help",{},void 0,!0)])):p("",!0)])],64)}const bn=y(cn,[["render",gn],["__scopeId","data-v-cbe4e96e"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseHeading.vue"]]),hn=Object.freeze(Object.defineProperty({__proto__:null,default:bn},Symbol.toStringTag,{value:"Module"}));$.add(we,ke,Se,Oe);const E={null:{value:null,icon:["fas","question"],iconClass:"text-secondary",title:"Nicht relevant",nextValue:!0},true:{value:!0,icon:["fas","square"],iconClass:"",title:"Geschlossen",nextValue:!1},false:{value:!1,icon:["far","square"],iconClass:"",title:"Offen",nextValue:null}},vn={name:"OpenwbIoPattern",components:{FontAwesomeIcon:C},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Array,required:!1,default:()=>[]}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}},methods:{getIcon(e){return E[e].icon},getIconClass(e){return E[e].iconClass},getTitle(e){return E[e].title},toggleInput(e,t){this.value[e]=E[t].nextValue}}};function yn(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),default:c(()=>[(i(!0),u(T,null,x(s.value,(r,w)=>(i(),u("span",{key:w},[_(o,{title:s.getTitle(r),icon:s.getIcon(r),class:S([s.getIconClass(r),"fa-fw clickable"]),size:"2x",transform:r=="undefined"?"shrink-6":null,mask:r=="undefined"?["fas","square"]:null,onClick:q(V=>s.toggleInput(w,r),["stop","prevent"]),onMousedown:t[0]||(t[0]=q(()=>{},["stop","prevent"])),onMouseup:t[1]||(t[1]=q(()=>{},["stop","prevent"]))},null,8,["title","icon","class","transform","mask","onClick"])]))),128))]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"0"}:void 0]),1024)}const wn=y(vn,[["render",yn],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseIoPattern.vue"]]),kn=Object.freeze(Object.defineProperty({__proto__:null,default:wn},Symbol.toStringTag,{value:"Module"})),Sn={name:"OpenwbModalDialog",props:{title:{type:String,required:!1,default:""},subtype:{type:String,validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"},buttons:{type:Array,default:void 0},footerAlignment:{type:String,validator:function(e){return["around","between","center","end","start"].indexOf(e)!==-1},default:"end"},preventClose:{type:Boolean,default:!1},show:{type:Boolean,default:!1}},emits:["modal-result"],computed:{myButtons(){var e=[];return this.buttons!==void 0&&(e=this.buttons),this.preventClose||e.push({text:"Schließen",event:"close"}),e}},methods:{handleClick(e){e.stopPropagation();let t=e.target.getAttribute("data-event");t===null&&(t="close"),(t!="close"||!this.preventClose)&&this.$emit("modal-result",t)}}},On={class:"modal-dialog modal-dialog-centered modal-dialog-scrollable",role:"document"},Bn={class:"modal-content"},$n={class:"modal-title"},Cn={class:"modal-body"},In=["data-event"];function Tn(e,t,n,d,l,s){return n.show?(i(),h(F,{key:0,to:"body"},[t[4]||(t[4]=a("div",{class:"modal-backdrop fade show"},null,-1)),a("div",{class:"modal fade d-block show",role:"dialog",onClick:t[2]||(t[2]=(...o)=>s.handleClick&&s.handleClick(...o))},[a("div",On,[a("div",Bn,[a("div",{class:S(["modal-header","bg-"+n.subtype])},[a("h4",$n,v(n.title),1),n.preventClose?p("",!0):(i(),u("button",{key:0,type:"button",class:"close",onClick:t[0]||(t[0]=(...o)=>s.handleClick&&s.handleClick(...o))}," × "))],2),a("div",Cn,[g(e.$slots,"default",{},()=>[t[3]||(t[3]=f("# Body #",-1))])]),s.myButtons.length>0?(i(),u("div",{key:0,class:S(["modal-footer d-flex","justify-content-"+n.footerAlignment])},[(i(!0),u(T,null,x(s.myButtons,o=>(i(),u("button",{key:o.text,type:"button",class:S(["btn",o.subtype?"btn-"+o.subtype:"btn-secondary"]),"data-dismiss":"modal","data-event":o.event?o.event:"close",onClick:t[1]||(t[1]=(...m)=>s.handleClick&&s.handleClick(...m))},v(o.text),11,In))),128))],2)):p("",!0)])])])])):p("",!0)}const Vn=y(Sn,[["render",Tn],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseModalDialog.vue"]]),An=Object.freeze(Object.defineProperty({__proto__:null,default:Vn},Symbol.toStringTag,{value:"Module"}));$.add(Be);const Mn={name:"OpenwbNumberInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Number,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},precision:{type:Number,default:void 0},emptyValue:{type:[Number,null],required:!1,default:null}},emits:["update:modelValue"],computed:{value:{get(){return this.precision!==void 0?parseFloat(Math.round(this.modelValue*Math.pow(10,this.precision))/Math.pow(10,this.precision)):this.modelValue},set(e){(isNaN(e)||typeof e!="number")&&(e=this.emptyValue),this.$emit("update:modelValue",e)}}}},Pn={class:"input-group"},xn={class:"input-group-prepend"},qn={class:"input-group-text"},Dn={key:0,class:"input-group-append"},En={class:"input-group-text"},Ln={key:1,class:"input-group-append"},jn={class:"input-group-text p-0"};function Wn(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",Pn,[a("div",xn,[a("div",qn,[_(o,{icon:["fas","calculator"]})])]),B(a("input",O({"onUpdate:modelValue":t[0]||(t[0]=r=>s.value=r),type:"number",class:"form-control"},e.$attrs),null,16),[[I,s.value,void 0,{number:!0}]]),n.unit?(i(),u("div",Dn,[a("div",En,v(n.unit),1)])):p("",!0),e.$slots.append?(i(),u("div",Ln,[a("div",jn,[g(e.$slots,"append",{},void 0,!0)])])):p("",!0)])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Rn=y(Mn,[["render",Wn],["__scopeId","data-v-c2fb7eef"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseNumberInput.vue"]]),Nn=Object.freeze(Object.defineProperty({__proto__:null,default:Rn},Symbol.toStringTag,{value:"Module"}));$.add($e,Ce);const zn={name:"OpenwbRangeInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Number,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},min:{type:Number,required:!0,default:0},max:{type:Number,required:!0,default:100},step:{type:Number,required:!1,default:1},labels:{type:Array,required:!1,default:void 0}},emits:["update:modelValue"],computed:{label(){var e;return this.labels&&this.sliderValue!=null?this.sliderValue[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",Fn,[a("div",Hn,[s.label?(i(),u("label",Un,v(s.label),1)):p("",!0),a("button",{class:"col-1 btn btn-block btn-info",type:"button",onClick:t[0]||(t[0]=(...r)=>s.decrement&&s.decrement(...r))},[_(o,{icon:["fas","step-backward"]})]),a("div",Gn,[B(a("input",O({"onUpdate:modelValue":t[1]||(t[1]=r=>s.sliderValue=r),type:"range",class:"form-control-range rangeInput",min:n.min,max:n.max,step:n.step},e.$attrs),null,16,Jn),[[I,s.sliderValue,void 0,{number:!0}]])]),a("button",{class:"col-1 btn btn-block btn-info",type:"button",onClick:t[2]||(t[2]=(...r)=>s.increment&&s.increment(...r))},[_(o,{icon:["fas","step-forward"]})])])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Zn=y(zn,[["render",Kn],["__scopeId","data-v-449fb0a5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseRangeInput.vue"]]),Qn=Object.freeze(Object.defineProperty({__proto__:null,default:Zn},Symbol.toStringTag,{value:"Module"}));$.add(G);const Yn={name:"OpenwbSelectInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:void 0},modelValue:{type:[String,Number,Array,null],required:!1,default:void 0},emptyValue:{type:[String,Number,Array],required:!1,default:void 0},groups:{type:Array,required:!1,default:void 0},options:{type:Array,required:!1,default:void 0},notSelected:{type:String,default:void 0},addButton:{type:Boolean,default:!1}},emits:["update:modelValue","input:add"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},addDisabled:{get(){return this.value===void 0}}},methods:{addClicked(){this.addDisabled||this.$emit("input:add")}}},Xn={class:"w-100"},es={class:"input-group"},ts={key:0,class:"input-group-prepend"},ns={class:"input-group-text"},ss=["value"],os=["value"],as=["label"],is=["value"],ls={key:1,class:"input-group-append"};function rs(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({default:c(()=>[a("div",Xn,[a("div",es,[e.$slots.prefix?(i(),u("div",ts,[a("div",ns,[g(e.$slots,"prefix")])])):p("",!0),B(a("select",O({"onUpdate:modelValue":t[0]||(t[0]=r=>s.value=r),class:"col form-control"},e.$attrs),[n.notSelected!==void 0?(i(),u("option",{key:0,value:n.emptyValue,disabled:""}," -- "+v(n.notSelected)+" -- ",9,ss)):p("",!0),(i(!0),u(T,null,x(n.options,r=>(i(),u("option",{key:r.value,value:r.value},v(r.text),9,os))),128)),(i(!0),u(T,null,x(n.groups,r=>(i(),u("optgroup",{key:r.label,label:r.label},[(i(!0),u(T,null,x(r.options,w=>(i(),u("option",{key:w.value,value:w.value},v(w.text),9,is))),128))],8,as))),128))],16),[[ae,s.value]]),n.addButton?(i(),u("div",ls,[a("div",{class:S(["input-group-text",s.addDisabled?"not-clickable":"bg-success clickable"]),onClick:t[1]||(t[1]=r=>s.addClicked())},[g(e.$slots,"inputAdd",{},()=>[_(o,{icon:["fas","plus"]})])],2)])):p("",!0)])])]),_:2},[e.$slots.title||n.title?{name:"title",fn:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),key:"0"}:void 0,e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"1"}:void 0]),1024)}const ds=y(Yn,[["render",rs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSelectInput.vue"]]),us=Object.freeze(Object.defineProperty({__proto__:null,default:ds},Symbol.toStringTag,{value:"Module"}));$.add(j,Ie,Te);const cs={name:"OpenwbSubmitButtons",components:{FontAwesomeIcon:C},props:{formName:{type:String,default:void 0},hideReset:{type:Boolean,default:!1},hideDefaults:{type:Boolean,default:!0}},emits:["reset","defaults","save"],data(){return{showModalReset:!1,showModalDefaults:!1}},computed:{showModalSave(){return this.$store.state.local.savingData}},methods:{showResetModal(){this.showModalReset=!0},handleModalReset(e){this.showModalReset=!1,e=="confirm"&&this.$emit("reset")},showDefaultsModal(){this.showModalDefaults=!0},handleModalDefaults(e){this.showModalDefaults=!1,e=="confirm"&&this.$emit("defaults")},saveSettings(){if(this.formName){if(!document.forms[this.formName].reportValidity()){console.debug("form invalid");return}}else console.debug("no form to validate");this.$emit("save")}}},ps={class:"row justify-content-center mb-1"},ms={class:"col-md-4 d-flex py-1 justify-content-center"},fs={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},_s={key:1,class:"col-md-4 d-flex py-1 justify-content-center"};function gs(e,t,n,d,l,s){const o=b("openwb-base-modal-dialog"),m=b("font-awesome-icon");return i(),u(T,null,[_(o,{show:s.showModalSave,title:"Speichern",subtype:"success","prevent-close":!0},{default:c(()=>[...t[3]||(t[3]=[f(" Einstellungen werden gespeichert... ",-1)])]),_:1},8,["show"]),_(o,{show:l.showModalReset,title:"Änderungen verwerfen",subtype:"warning",buttons:[{text:"Ok",event:"confirm",subtype:"warning"}],onModalResult:s.handleModalReset},{default:c(()=>[...t[4]||(t[4]=[f(" Wollen Sie die nicht gespeicherten Änderungen wirklich verwerfen? ",-1)])]),_:1},8,["show","onModalResult"]),_(o,{show:l.showModalDefaults,title:"Werkseinstellungen",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"danger"}],onModalResult:s.handleModalDefaults},{default:c(()=>[...t[5]||(t[5]=[f(" Wollen Sie wirklich alle Werte dieser Seite auf die Werkseinstellungen zurücksetzen? ",-1)])]),_:1},8,["show","onModalResult"]),a("div",ps,[a("div",ms,[a("button",{id:"saveSettingsBtn",type:"button",class:"btn btn-block btn-success",onClick:t[0]||(t[0]=(...r)=>s.saveSettings&&s.saveSettings(...r))},[t[6]||(t[6]=f(" Speichern ",-1)),_(m,{icon:["fas","check"]})])]),n.hideReset?p("",!0):(i(),u("div",fs,[a("button",{id:"modalResetBtn",type:"button",class:"btn btn-block btn-warning",onClick:t[1]||(t[1]=(...r)=>s.showResetModal&&s.showResetModal(...r))},[t[7]||(t[7]=f(" Änderungen verwerfen ",-1)),_(m,{icon:["fas","undo"]})])])),n.hideDefaults?p("",!0):(i(),u("div",_s,[a("button",{id:"modalDefaultsBtn",type:"button",class:"btn btn-block btn-danger",onClick:t[2]||(t[2]=(...r)=>s.showDefaultsModal&&s.showDefaultsModal(...r))},[t[8]||(t[8]=f(" Werkseinstellungen ",-1)),_(m,{icon:["fas","times"]})])]))])],64)}const bs=y(cs,[["render",gs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSubmitButtons.vue"]]),hs=Object.freeze(Object.defineProperty({__proto__:null,default:bs},Symbol.toStringTag,{value:"Module"}));$.add(J,Ve,Ae,Me,Pe,K,xe,qe,De,Ee,Le,je);const vs={name:"OpenwbTextInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Object],required:!1,default:void 0},subtype:{validator:function(e){return["text","email","host","url","user","json","password","time","date","month","year"].indexOf(e)!==-1},default:"text"},pattern:{type:String,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},emptyValue:{type:[String,Object,null],required:!1,default:null},showQuickButtons:{type:Boolean,default:!1}},emits:["update:modelValue"],data(){return{showPassword:!1,inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.warn("returning invalid String"),this.tempValue):JSON.stringify(this.tempValue):this.modelValue},set(e){if(this.subtype=="json")try{let t=JSON.parse(e);this.inputInvalid=!1,this.$refs.jsonInput.setCustomValidity(""),this.tempValue=t,this.$emit("update:modelValue",t)}catch(t){console.error("parsing JSON failed: "+e,t),this.inputInvalid=!0,this.$refs.jsonInput.setCustomValidity("Ungültiger JSON Ausdruck!"),this.tempValue=e}else e==""&&(e=this.emptyValue),this.$emit("update:modelValue",e)}},inputRef(){switch(this.subtype){case"json":return this.$refs.jsonInput;case"password":return this.$refs.passwordInput;case"host":return this.$refs.hostInput;case"email":case"url":return this.$refs.urlInput;case"time":return this.$refs.timeInput;case"date":return this.$refs.dateInput;case"month":return this.$refs.monthInput;case"year":return this.$refs.yearInput}return this.$refs.textInput},hostPattern(){return"(^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$)|(^(?=.*[a-zA-Z].*$)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])$)|(^((?=[^.]*[a-zA-Z][^.]*\\.)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]\\.))+((?=[^.]*[a-zA-Z].*$)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]))$)"}},methods:{togglePassword(){this.showPassword=!this.showPassword},modify(e){var t,n=new Date(this.modelValue);switch(this.subtype){case"date":n.setDate(n.getDate()+e),t=String(n.getFullYear())+"-"+String(n.getMonth()+1).padStart(2,"0")+"-"+String(n.getDate()).padStart(2,"0");break;case"month":n.setMonth(n.getMonth()+e),t=String(n.getFullYear())+"-"+String(n.getMonth()+1).padStart(2,"0");break;case"year":n.setYear(n.getFullYear()+e),t=String(n.getFullYear());break;default:console.warn(`cannot modify input of subtype '${this.subtype}'`);return}t>this.inputRef.max||t[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",ys,[a("div",ws,[a("div",ks,[a("div",Ss,[n.subtype=="text"?(i(),h(o,{key:0,icon:["fas","keyboard"]})):p("",!0),n.subtype=="email"?(i(),h(o,{key:1,icon:["fas","envelope"]})):p("",!0),n.subtype=="host"?(i(),h(o,{key:2,icon:["fas","network-wired"]})):p("",!0),n.subtype=="url"?(i(),h(o,{key:3,icon:["fas","globe"]})):p("",!0),n.subtype=="user"?(i(),h(o,{key:4,icon:["fas","user"]})):p("",!0),n.subtype=="json"?(i(),h(o,{key:5,icon:["fas","code"]})):p("",!0),n.subtype=="password"?(i(),h(o,{key:6,icon:l.showPassword?["fas","unlock"]:["fas","lock"]},null,8,["icon"])):p("",!0),n.subtype=="time"?(i(),h(o,{key:7,icon:["fas","clock"]})):p("",!0),n.subtype=="date"||n.subtype=="month"||n.subtype=="year"?(i(),h(o,{key:8,icon:["fas","calendar-day"]})):p("",!0)])]),["text","user"].includes(n.subtype)?B((i(),u("input",O({key:0,ref:"textInput","onUpdate:modelValue":t[0]||(t[0]=r=>s.value=r),type:"text",class:["form-control",{invalid:l.inputInvalid}]},e.$attrs,{pattern:n.pattern}),null,16,Os)),[[I,s.value]]):p("",!0),n.subtype=="json"?B((i(),u("input",O({key:1,ref:"jsonInput","onUpdate:modelValue":t[1]||(t[1]=r=>s.value=r),type:"text",class:"form-control"},e.$attrs,{pattern:n.pattern}),null,16,Bs)),[[I,s.value]]):p("",!0),n.subtype=="password"?B((i(),u("input",O({key:2,ref:"passwordInput","onUpdate:modelValue":t[2]||(t[2]=r=>s.value=r),type:l.showPassword?"text":"password",class:"form-control"},e.$attrs,{pattern:n.pattern}),null,16,$s)),[[N,s.value]]):p("",!0),n.subtype=="host"?B((i(),u("input",O({key:3,ref:"hostInput","onUpdate:modelValue":t[3]||(t[3]=r=>s.value=r),type:"text",class:"form-control"},e.$attrs,{pattern:s.hostPattern}),null,16,Cs)),[[I,s.value]]):p("",!0),["email","url"].includes(n.subtype)?B((i(),u("input",O({key:4,"onUpdate:modelValue":t[4]||(t[4]=r=>s.value=r),refs:"urlInput",type:n.subtype,class:"form-control"},e.$attrs),null,16,Is)),[[N,s.value]]):p("",!0),n.subtype=="time"?B((i(),u("input",O({key:5,ref:"timeInput","onUpdate:modelValue":t[5]||(t[5]=r=>s.value=r),type:"time",class:"form-control"},e.$attrs),null,16)),[[I,s.value]]):p("",!0),n.subtype=="date"?B((i(),u("input",O({key:6,ref:"dateInput","onUpdate:modelValue":t[6]||(t[6]=r=>s.value=r),type:"date",class:"form-control"},e.$attrs),null,16)),[[I,s.value]]):p("",!0),n.subtype=="month"?B((i(),u("input",O({key:7,ref:"monthInput","onUpdate:modelValue":t[7]||(t[7]=r=>s.value=r),type:"month",class:"form-control"},e.$attrs),null,16)),[[I,s.value]]):p("",!0),n.subtype=="year"?B((i(),u("input",O({key:8,ref:"yearInput","onUpdate:modelValue":t[8]||(t[8]=r=>s.value=r),type:"number",class:"form-control"},e.$attrs),null,16)),[[I,s.value]]):p("",!0),n.unit?(i(),u("div",Ts,[a("div",Vs,v(n.unit),1)])):p("",!0),n.subtype=="password"?(i(),u("div",{key:10,class:"input-group-append clickable",onClick:t[9]||(t[9]=(...r)=>s.togglePassword&&s.togglePassword(...r))},[a("div",As,[_(o,{icon:l.showPassword?["far","eye"]:["far","eye-slash"]},null,8,["icon"])])])):p("",!0),n.showQuickButtons&&(n.subtype=="date"||n.subtype=="month"||n.subtype=="year")?(i(),u("div",{key:11,class:"input-group-append clickable",onClick:t[10]||(t[10]=r=>s.modify(-1))},[...t[12]||(t[12]=[a("div",{class:"input-group-text"},"-",-1)])])):p("",!0),n.showQuickButtons&&(n.subtype=="date"||n.subtype=="month"||n.subtype=="year")?(i(),u("div",{key:12,class:"input-group-append clickable",onClick:t[11]||(t[11]=r=>s.modify(1))},[...t[13]||(t[13]=[a("div",{class:"input-group-text"},"+",-1)])])):p("",!0),e.$slots.append?(i(),u("div",Ms,[a("div",Ps,[g(e.$slots,"append",{},void 0,!0)])])):p("",!0)])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const qs=y(vs,[["render",xs],["__scopeId","data-v-6927d479"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextInput.vue"]]),Ds=Object.freeze(Object.defineProperty({__proto__:null,default:qs},Symbol.toStringTag,{value:"Module"}));$.add(J,K);const Es={name:"OpenwbTextareaInput",components:{OpenwbBaseSettingElement:M,FontAwesomeIcon:C},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Object],required:!1,default:void 0},subtype:{validator:function(e){return["text","json"].indexOf(e)!==-1},default:"text"}},emits:["update:modelValue"],data(){return{inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.debug("returning invalid JSON as String"),this.tempValue):JSON.stringify(this.tempValue,void 0,2):this.modelValue},set(e){if(this.subtype=="json")try{let t=JSON.parse(e);this.inputInvalid=!1,this.$refs.jsonInput.setCustomValidity(""),this.tempValue=t,this.$emit("update:modelValue",t)}catch(t){console.warn("parsing JSON failed: "+e,t),this.inputInvalid=!0,this.$refs.jsonInput.setCustomValidity("Ungültiger JSON Ausdruck!"),this.tempValue=e}else this.$emit("update:modelValue",e)}},length:{get(){return this.value!==void 0?this.value.length:0}}}},Ls={class:"w-100"},js={class:"input-group"},Ws={class:"input-group-prepend"},Rs={class:"input-group-text"},Ns={key:2,class:"input-group-append"},zs={class:"input-group-text"},Fs={class:"form-text text-muted text-right"};function Hs(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",Ls,[a("div",js,[a("div",Ws,[a("div",Rs,[n.subtype=="text"?(i(),h(o,{key:0,icon:["fas","keyboard"]})):p("",!0),n.subtype=="json"?(i(),h(o,{key:1,icon:["fas","code"]})):p("",!0)])]),n.subtype==="json"?B((i(),u("textarea",O({key:0,ref:"jsonInput","onUpdate:modelValue":t[0]||(t[0]=r=>s.value=r),class:"form-control"},e.$attrs),null,16)),[[I,s.value,void 0,{lazy:!0}]]):B((i(),u("textarea",O({key:1,"onUpdate:modelValue":t[1]||(t[1]=r=>s.value=r),class:"form-control"},e.$attrs),null,16)),[[I,s.value]]),e.$attrs.maxlength?(i(),u("div",Ns,[a("div",zs,[a("small",Fs,v(s.length)+" / "+v(e.$attrs.maxlength),1)])])):p("",!0)])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Us=y(Es,[["render",Hs],["__scopeId","data-v-3d93046b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextarea.vue"]]),Gs=Object.freeze(Object.defineProperty({__proto__:null,default:Us},Symbol.toStringTag,{value:"Module"}));const Js={name:"OpenwbToast",props:{topic:{type:String,required:!0},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"},source:{type:String,required:!0,validator:function(e){return["system","client","command"].indexOf(e)!==-1}},timestamp:{type:Number,required:!0}},emits:["dismiss","hide"],data(){return{handle:void 0,relativeTime:void 0,hidden:!1}},mounted(){this.handle=window.setInterval(this.updateRelativeTime,1e3)},unmounted(){window.clearInterval(this.handle)},methods:{dismiss(){this.$emit("dismiss",{topic:this.topic})},updateRelativeTime(){const e={year:31536e6,month:2628e6,day:864e5,hour:36e5,minute:6e4,second:1e3};var t=new Intl.RelativeTimeFormat("de",{numeric:"auto"});const d=new Date-this.timestamp*1e3;for(var l in e)if(Math.abs(d)>e[l]){this.relativeTime=t.format(Math.round(-d/e[l]),l);break}d>10*1e3&&!this.hidden&&(this.hidden=!0,this.$emit("hide",{topic:this.topic}))}}},Ks={key:0,class:"time-diff"},Zs={class:"toast-body"};function Qs(e,t,n,d,l,s){return i(),u("div",{class:S(["toast","border-"+n.subtype]),role:"alert"},[a("div",{class:S(["toast-header","bg-"+n.subtype])},[t[2]||(t[2]=a("strong",{class:"pr-2 mr-auto"},"openWB",-1)),n.timestamp?(i(),u("small",Ks,v(l.relativeTime),1)):p("",!0),a("button",{type:"button",class:"ml-2 mb-1 close","data-dismiss":"toast","aria-label":"Close",onClick:t[0]||(t[0]=(...o)=>s.dismiss&&s.dismiss(...o))},[...t[1]||(t[1]=[a("span",{"aria-hidden":"true"},"×",-1)])])],2),a("div",Zs,[g(e.$slots,"default",{},void 0,!0)])],2)}const Ys=y(Js,[["render",Qs],["__scopeId","data-v-c51b5764"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseToast.vue"]]),Xs=Object.freeze(Object.defineProperty({__proto__:null,default:Ys},Symbol.toStringTag,{value:"Module"}));$.add(We);const eo={name:"OpenwbNavBar",components:{FontAwesomeIcon:C},computed:{nodeEnv(){return"development"}},watch:{$route(){this.$refs.collapsibleNavbar.classList.remove("show"),this.$refs.navbarButton.classList.add("collapsed"),this.$refs.navbarButton.setAttribute("aria-expanded",!1)}}},to={class:"navbar navbar-expand-lg bg-dark navbar-dark fixed-top"},no={ref:"navbarButton",class:"navbar-toggler mr-5",type:"button","data-toggle":"collapse","data-target":"#collapsibleNavbar"},so={id:"collapsibleNavbar",ref:"collapsibleNavbar",class:"collapse navbar-collapse navbar-nav-scroll"},oo={class:"navbar-nav"},ao={class:"nav-item"},io={class:"nav-item dropdown nav-separator-after"},lo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},ro={class:"nav-item dropdown"},uo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},co={class:"nav-item dropdown"},po={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},mo={class:"nav-item dropdown"},fo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},_o={class:"nav-item dropdown"},go={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},bo={class:"nav-item nav-separator-before"},ho={class:"nav-link",href:"https://github.com/openWB/core/wiki",target:"_blank"};function vo(e,t,n,d,l,s){const o=b("router-link"),m=b("font-awesome-icon");return i(),u("nav",to,[t[30]||(t[30]=a("a",{class:"navbar-brand",href:"/openWB/web/"},[a("span",null,"openWB")],-1)),a("button",no,[...t[0]||(t[0]=[a("span",{class:"navbar-toggler-icon"},null,-1)])],512),a("div",so,[a("ul",oo,[a("li",ao,[_(o,{to:"/Status",class:"nav-link","active-class":"active disabled"},{default:c(()=>[...t[1]||(t[1]=[f(" Status ",-1)])]),_:1})]),a("li",io,[t[4]||(t[4]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Auswertungen ",-1)),a("div",lo,[_(o,{to:"/Logging/ChargeLog",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[2]||(t[2]=[f(" Ladeprotokoll ",-1)])]),_:1}),_(o,{to:"/Logging/Chart",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[3]||(t[3]=[f(" Diagramme ",-1)])]),_:1})])]),a("li",ro,[t[8]||(t[8]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Einstellungen ",-1)),a("div",uo,[_(o,{to:"/GeneralConfig",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[5]||(t[5]=[f(" Allgemein ",-1)])]),_:1}),_(o,{to:"/OptionalComponents",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[6]||(t[6]=[f(" Display ",-1)])]),_:1}),_(o,{to:"/IdentificationConfig",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[7]||(t[7]=[f(" Identifikation ",-1)])]),_:1})])]),a("li",co,[t[11]||(t[11]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Ladeeinstellungen ",-1)),a("div",po,[_(o,{to:"/GeneralChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[9]||(t[9]=[f(" Übergreifendes ",-1)])]),_:1}),_(o,{to:"/PVChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[10]||(t[10]=[f(" PV-Laden ",-1)])]),_:1})])]),a("li",mo,[t[19]||(t[19]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Konfiguration ",-1)),a("div",fo,[_(o,{to:"/HardwareInstallation",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[12]||(t[12]=[f(" Geräte und Komponenten ",-1)])]),_:1}),_(o,{to:"/LoadManagementConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[13]||(t[13]=[f(" Lastmanagement ",-1)])]),_:1}),_(o,{to:"/ChargePointInstallation",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[14]||(t[14]=[f(" Ladepunkte ",-1)])]),_:1}),_(o,{to:"/VehicleConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[15]||(t[15]=[f(" Fahrzeuge ",-1)])]),_:1}),_(o,{to:"/IoConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[16]||(t[16]=[f(" Ein-/Ausgänge ",-1)])]),_:1}),t[17]||(t[17]=a("div",{class:"dropdown-divider"},null,-1)),t[18]||(t[18]=a("a",{href:"modules/legacy_smart_home/smarthomeconfig.php",class:"dropdown-item",target:"_blank"}," SmartHome ",-1))])]),a("li",_o,[t[28]||(t[28]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," System ",-1)),a("div",go,[_(o,{to:"/System/InstallAssistant",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[20]||(t[20]=[f(" Einrichtungsassistent ",-1)])]),_:1}),_(o,{to:"/System/CloudConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[21]||(t[21]=[f(" openWB Cloud ",-1)])]),_:1}),_(o,{to:"/System/MqttBridgeConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[22]||(t[22]=[f(" MQTT-Brücken ",-1)])]),_:1}),_(o,{to:"/System/DebugConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[23]||(t[23]=[f(" Fehlersuche ",-1)])]),_:1}),_(o,{to:"/System/Support",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[24]||(t[24]=[f(" Support ",-1)])]),_:1}),_(o,{to:"/System/DataManagement",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[25]||(t[25]=[f(" Datenverwaltung ",-1)])]),_:1}),_(o,{to:"/System/SystemConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[26]||(t[26]=[f(" System ",-1)])]),_:1}),_(o,{to:"/System/LegalSettings",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[27]||(t[27]=[f(" Rechtliches ",-1)])]),_:1})])]),a("li",bo,[a("a",ho,[t[29]||(t[29]=f(" Wiki ",-1)),_(m,{icon:["fas","external-link-alt"]})])])])],512)])}const yo=y(eo,[["render",vo],["__scopeId","data-v-e7a6d0c0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageNavbar.vue"]]);const wo={name:"OpenwbPageFooter"},ko={id:"footer",class:"footer bg-dark text-light font-small"},So={class:"container text-center"};function Oo(e,t,n,d,l,s){return i(),u("footer",ko,[a("div",So,[a("small",null," Sie befinden sich hier: Einstellungen / "+v(e.$route.meta.heading),1)])])}const Bo=y(wo,[["render",Oo],["__scopeId","data-v-3c9a239a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageFooter.vue"]]),$o={name:"ComponentState",emits:["reset","defaults","save"],data(){return{mqttTopicsToSubscribe:[]}},computed:{weekdays(){return["Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag"]},chargeModes(){return["instant_charging","pv_charging","scheduled_charging","time_charging","eco_charging","stop"]},statusLevel(){return["success","warning","danger"]},stateIcon:{get(){switch(this.$store.state.mqtt[this.baseTopic+"/get/fault_state"]){case 0:return["fas","check-circle"];case 1:return["fas","exclamation-triangle"];case 2:return["fas","times-circle"];default:return["fas","check-circle"]}}}},mounted(){this.mqttTopicsToSubscribe.length>0&&this.$root.doSubscribe(this.mqttTopicsToSubscribe)},unmounted(){this.mqttTopicsToSubscribe.length>0&&this.$root.doUnsubscribe(this.mqttTopicsToSubscribe)},methods:{updateState(e,t,n=void 0){console.debug("updateState:",e,t,n),this.$store.commit({type:"updateTopic",topic:e,objectPath:n,payload:t})},ac_current2dc_power(e){return parseFloat((e*3*230/1e3).toFixed(0))},dc_power2ac_current(e){return parseFloat((e*1e3/230/3).toFixed(2))},getWildcardIndexList(e,t=!1){let n=e;t||(n="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$");let d=Object.keys(this.$store.state.mqtt).filter(l=>l.match(n));return d.forEach((l,s,o)=>{o[s]=parseInt(l.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,""))}),d},getWildcardTopics(e,t=!1){let n=e;return t||(n="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(this.$store.state.mqtt).filter(d=>d.match(n)).reduce((d,l)=>({...d,[l]:this.$store.state.mqtt[l]}),{})},formatDate(e,t={year:"numeric",month:"2-digit",day:"2-digit"}){return new Date(e).toLocaleDateString(void 0,t)},formatNumber(e,t=0,n=t,d=1){if(!(e==null||isNaN(e)))return e=e*d,e.toLocaleString(void 0,{minimumFractionDigits:t,maximumFractionDigits:n})},formatNumberTopic(e,t=0,n=t,d=1){return this.$store.state.mqtt[e]?this.formatNumber(this.$store.state.mqtt[e],t,n,d):"-"},formatPhaseArrayNumberTopic(e,t=0,n=t,d=1){return this.$store.state.mqtt[e]?this.$store.state.mqtt[e].map(l=>this.formatNumber(l,t,n,d)):["-","-","-"]},translateChargeMode(e){switch(e){case"instant_charging":return"Sofort";case"pv_charging":return"PV";case"scheduled_charging":return"Zielladen";case"time_charging":return"Zeitladen";case"eco_charging":return"Eco";case"standby":return"Standby";case"stop":return"Stop";default:return console.warn("unknown charge mode:",e),e}},getFaultStateSubtype(e){const t=this.$store.state.mqtt[e+"/get/fault_state"];if(t===void 0)return"warning";switch(t){case 0:return"success";case 1:return"warning";case 2:return"danger";default:return"dark"}}}},Q=y($o,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/mixins/ComponentState.vue"]]);$.add(Re,Ne);const Co={name:"OpenwbPageMessages",components:{FontAwesomeIcon:C,FontAwesomeLayers:ze,FontAwesomeLayersText:Fe},mixins:[Q],data(){return{mqttTopicsToSubscribe:["openWB/system/messages/+","openWB/command/"+this.$root.mqttClientId+"/messages/+"],showAllMessages:!1,hiddenMessages:[]}},computed:{alertLevel(){return this.messages.reduce((t,n)=>((t=="light"&&["info","success","warning","danger"].includes(n.type)||t=="info"&&["success","warning","danger"].includes(n.type)||t=="success"&&["warning","danger"].includes(n.type)||t=="warning"&&n.type=="danger")&&(t=n.type),t),"light")},messages(){const e=[];return this.systemMessages.forEach(t=>{e.push(t)}),this.clientMessages.forEach(t=>{e.push(t)}),e.sort(this.compareMessagesByTimestamp),e},recentMessages(){return this.showAllMessages?this.messages:this.messages.filter(e=>!this.hiddenMessages.includes(e.topic))},messageIndicatorClass(){return"text-"+this.alertLevel},systemMessages(){let e=this.getWildcardTopics("openWB/system/messages/+");var t=[];for(const[n,d]of Object.entries(e))t.push({topic:n,...d});return t},clientMessages(){let e=this.getWildcardTopics("openWB/command/"+this.$root.mqttClientId+"/messages/+");var t=[];for(const[n,d]of Object.entries(e))t.push({topic:n,...d});return t}},methods:{toggleAllMessages(){this.showAllMessages=!this.showAllMessages},compareMessagesByTimestamp(e,t){return t.timestamp-e.timestamp},clearTopic(e){this.$root.doPublish(e,void 0)},dismissMessage(e){this.clearTopic(e.topic);var t=this.hiddenMessages.indexOf(e.topic);t>-1&&this.hiddenMessages.splice(t,1)},dismissAllMessages(){this.messages.forEach(e=>{this.clearTopic(e.topic)}),this.hiddenMessages=[],this.toggleAllMessages()},hideMessage(e){this.hiddenMessages.includes(e.topic)||this.hiddenMessages.push(e.topic)}}},Io=["innerHTML"];function To(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("font-awesome-layers-text"),r=b("font-awesome-layers"),w=b("openwb-base-alert"),V=b("openwb-base-click-button"),D=b("openwb-base-toast");return i(),u(T,null,[(i(),h(F,{to:"body"},[a("div",{id:"message-indicator",class:S(["text-light mt-1 p-2 mr-1 clickable",l.showAllMessages?"active":""]),onClick:t[0]||(t[0]=(...P)=>s.toggleAllMessages&&s.toggleAllMessages(...P))},[_(r,{"full-width":"",style:{"font-size":"175%"}},{default:c(()=>[_(o,{icon:l.showAllMessages?["fas","bell"]:["far","bell"],class:S(s.messageIndicatorClass)},null,8,["icon","class"]),s.messages.length>0?(i(),h(m,{key:0,counter:"",value:s.messages.length,position:"top-right",class:"message-counter bg-light text-dark"},null,8,["value"])):p("",!0)]),_:1})],2)])),s.recentMessages.length>0||l.showAllMessages?(i(),u("div",{key:0,class:S(["openwb-toast-container",l.showAllMessages?"full-height":""])},[s.recentMessages.length==0?(i(),h(w,{key:0,subtype:"info"},{default:c(()=>[...t[1]||(t[1]=[f(" Keine Nachrichten vorhanden. ",-1)])]),_:1})):l.showAllMessages?(i(),h(V,{key:1,class:"btn-sm btn-secondary mb-1",onButtonClicked:s.dismissAllMessages},{default:c(()=>[...t[2]||(t[2]=[f(" Alle Nachrichten löschen ",-1)])]),_:1},8,["onButtonClicked"])):p("",!0),(i(!0),u(T,null,x(s.recentMessages,P=>(i(),h(D,{key:P.topic,topic:P.topic,source:P.source,subtype:P.type,timestamp:P.timestamp,onDismiss:s.dismissMessage,onHide:s.hideMessage},{default:c(()=>[a("span",{innerHTML:P.message},null,8,Io)]),_:2},1032,["topic","source","subtype","timestamp","onDismiss","onHide"]))),128))],2)):p("",!0)],64)}const Vo=y(Co,[["render",To],["__scopeId","data-v-2c25f0d0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageMessages.vue"]]),Ao={name:"OpenwbPageBlocker",mixins:[Q],data(){return{mqttTopicsToSubscribe:["openWB/system/boot_done","openWB/system/update_in_progress"]}},computed:{title(){return this.bootInProgress||this.updateInProgress?"openWB ist noch nicht bereit":this.reloadRequired?"Neues Laden der Seite erforderlich":"???"},myButtons(){return!(this.bootInProgress||this.updateInProgress)&&this.reloadRequired?[{text:"Jetzt neu laden",subtype:"success",event:"reload"}]:[]},bootInProgress(){return this.$store.state.mqtt["openWB/system/boot_done"]==null?!0:!this.$store.state.mqtt["openWB/system/boot_done"]},updateInProgress(){return this.$store.state.mqtt["openWB/system/update_in_progress"]==null?!1:this.$store.state.mqtt["openWB/system/update_in_progress"]},reloadRequired(){return this.$store.state.local.reloadRequired},showModalBlocker(){return this.bootInProgress||this.updateInProgress||this.reloadRequired}},methods:{handleModalResult(e){e=="reload"?location.reload():console.warn("unknown event",e)}}},Mo={class:"openwb-blocker"},Po={key:0},xo={key:1},qo={key:2},Do={key:3};function Eo(e,t,n,d,l,s){const o=b("openwb-base-modal-dialog");return i(),u("div",Mo,[_(o,{show:s.showModalBlocker,title:s.title,subtype:"dark","prevent-close":!0,buttons:s.myButtons,onModalResult:t[0]||(t[0]=m=>s.handleModalResult(m))},{default:c(()=>[s.bootInProgress?(i(),u("p",Po,"Der Systemstart ist noch nicht abgeschlossen.")):p("",!0),s.updateInProgress?(i(),u("p",xo,"Es wird eine Systemaktualisierung ausgeführt.")):p("",!0),!(s.bootInProgress||s.updateInProgress)&&s.reloadRequired?(i(),u("p",qo,"Bitte die Seite neu laden.")):(i(),u("p",Do,"Bitte warten..."))]),_:1},8,["show","title","buttons"])])}const Lo=y(Ao,[["render",Eo],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageBlocker.vue"]]);const jo={name:"OpenwbSettingsApp",components:{NavBar:yo,PageFooter:Bo,Messages:Vo,Blocker:Lo},data(){return{client:{connected:!1},connection:{protocol:location.protocol=="https:"?"wss":"ws",host:location.hostname,port:parseInt(location.port)||(location.protocol=="https:"?443:80),endpoint:"/ws",connectTimeout:4e3,reconnectPeriod:4e3}}},computed:{mqttClientId(){try{return this.client.options.clientId}catch(e){console.error("mqttClientId error",e);return}},topicList(){return Object.keys(this.$store.state.mqtt)}},created(){this.createConnection()},methods:{async saveValues(e=void 0){function t(d){return new Promise(l=>setTimeout(l,d))}this.$store.state.local.savingData=!0;let n={};e===void 0?(console.debug("no topics defined, so save everything we have in store"),n=this.$store.state.mqtt):Array.isArray(e)?e.forEach(d=>{n[d]=this.$store.state.mqtt[d]}):console.error("expected array, got ",typeof e);for(const[d,l]of Object.entries(n)){let s=d.replace("openWB/","openWB/set/");console.debug("saving data:",s,l),this.doPublish(s,l),await t(100)}this.$store.state.local.savingData=!1},resetValues(e=this.topicList){console.debug("resetting values..."),console.debug("topics: ",e),this.doUnsubscribe(e),this.doSubscribe(e)},setDefaultValues(){console.debug("setting default values... (ToDo)")},sendCommand(e){console.debug("sendCommand:",e),this.doPublish("openWB/set/command/"+this.client.options.clientId+"/todo",e,!1)},createConnection(){const{protocol:e,host:t,port:n,endpoint:d,...l}=this.connection,s=`${e}://${t}:${n}${d}`;console.debug("connecting to broker:",s);try{this.client=ie.connect(s,l)}catch(o){console.error("mqtt.connect error",o)}this.client.on("connect",()=>{console.debug("Connection succeeded! ClientId: ",this.client.options.clientId),this.doSubscribe(["openWB/system/usage_terms_acknowledged"]),this.doSubscribe(["openWB/system/installAssistantDone"])}),this.client.on("error",o=>{console.error("Connection failed",o)}),this.client.on("message",(o,m)=>{if(m.toString().length>0){let r;try{r=JSON.parse(m.toString())}catch(w){console.debug("Json parsing failed, fallback to string: ",o,w),r=m.toString()}this.$store.commit("updateTopic",{topic:o,payload:r})}else this.$store.commit("removeTopic",o)})},doSubscribe(e){e.forEach(t=>{this.$store.commit("addSubscription",t),this.$store.getters.subscriptionCount(t)==1?(t.includes("#")||t.includes("+")?console.debug("skipping init of wildcard topic:",t):this.$store.commit("addTopic",{topic:t,payload:void 0}),this.client.subscribe(t,{},n=>{if(n){console.error("Subscribe to topics error",n);return}})):console.debug("Already subscribed to topic: ",t)})},doUnsubscribe(e){e.forEach(t=>{this.$store.commit("removeSubscription",t),this.$store.getters.subscriptionCount(t)==0?(this.client.unsubscribe(t,n=>{n&&console.error("Unsubscribe error",n)}),t.includes("#")||t.includes("+")?(console.debug("expanding wildcard topic:",t),Object.keys(this.getWildcardTopics(t)).forEach(n=>{console.debug("removing wildcardTopic:",n),this.$store.commit("removeTopic",n)})):(console.debug("removing topic:",t),this.$store.commit("removeTopic",t))):console.debug("Still subscribed to topic: ",t)})},doPublish(e,t,n=!0,d=2){let l={qos:d,retain:n};this.client.publish(e,JSON.stringify(t),l,s=>{s&&console.error("Publish error",s)})},postClientMessage(e,t="secondary"){console.debug("postMessage:",e,t);const n=Date.now(),d="openWB/command/"+this.mqttClientId+"/messages/"+n;this.$store.commit({type:"addTopic",topic:d,payload:{message:e,type:t,source:"client",timestamp:Math.floor(n/1e3)}})},getWildcardTopics(e,t=!1){let n=e;return t||(n="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(this.$store.state.mqtt).filter(d=>d.match(n)).reduce((d,l)=>({...d,[l]:this.$store.state.mqtt[l]}),{})}}},Wo={role:"main",class:"container"},Ro={id:"content"};function No(e,t,n,d,l,s){const o=b("nav-bar"),m=b("router-view"),r=b("page-footer"),w=b("messages"),V=b("blocker");return i(),u(T,null,[a("header",null,[_(o)]),a("div",Wo,[a("div",Ro,[a("h1",null,v(e.$route.meta.heading),1),_(m,{onSave:s.saveValues,onReset:s.resetValues,onDefaults:s.setDefaultValues,onSendCommand:s.sendCommand},null,8,["onSave","onReset","onDefaults","onSendCommand"])])]),_(r),_(w),_(V)],64)}const zo=y(jo,[["render",No],["__file","/opt/openWB-dev/openwb-ui-settings/src/App.vue"]]),Fo="modulepreload",Ho=function(e){return"/openWB/web/settings/"+e},z={},k=function(t,n,d){if(!n||n.length===0)return t();const l=document.getElementsByTagName("link");return Promise.all(n.map(s=>{if(s=Ho(s),s in z)return;z[s]=!0;const o=s.endsWith(".css"),m=o?'[rel="stylesheet"]':"";if(!!d)for(let V=l.length-1;V>=0;V--){const D=l[V];if(D.href===s&&(!o||D.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${s}"]${m}`))return;const w=document.createElement("link");if(w.rel=o?"stylesheet":Fo,o||(w.as="script",w.crossOrigin=""),w.href=s,document.head.appendChild(w),o)return new Promise((V,D)=>{w.addEventListener("load",V),w.addEventListener("error",()=>D(new Error(`Unable to preload CSS for ${s}`)))})})).then(()=>t()).catch(s=>{const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=s,window.dispatchEvent(o),!o.defaultPrevented)throw s})};let Y={mqtt:{},mqttSubscriptions:{},local:{reloadRequired:!1,savingData:!1}};Y.examples={text1:"Text...",text2:"mail@domain.com",text3:"openwb.local",text4:"http://www.openwb.de",text5:"Benutzername",text6:"12:34",text7:"2021-10-31",color1:"#ff0000",color2:"#0000ff",number1:5,number2:10,number3:28e-5,password1:"GeHeiM!",textarea1:"Langer Text...",range1:6,range2:10,select1:1,select2:void 0,buttonGroup1:1,checkbox1:!0,json1:{text:"Text",number:123},hierarchy1:[{id:0,type:"counter",children:[{id:3,type:"inverter",children:[]},{id:4,type:"bat",children:[]},{id:1,type:"cp",children:[]},{id:2,type:"cp",children:[]}]}],hierarchy1Labels:{0:"EVU",1:"Ladepunkt 1",2:"Ladepunkt 2",3:"Wechselrichter",4:"Batteriespeicher"},tags:["1234","2345","3456"],ioConfig:{active:!1,pattern:[null,!1,!0],action:{value:"stop_all",options:null}}};const L=le({state:Y,mutations:{storeLocal(e,t){e.local[t.name]=t.value},addTopic(e,t){Object.keys(e.mqtt).includes(t.topic)?console.warn("topic already exists: ",t.topic):e.mqtt[t.topic]=t.payload},removeTopic(e,t){delete e.mqtt[t]},updateTopic(e,t){const n=(d,l,s)=>l.split(".").reduce((o,m,r)=>o[m]=l.split(".").length===++r?s:o[m]||{},d);t.topic in e.mqtt||!(t.topic in e.examples)?t.objectPath!=null?n(e.mqtt[t.topic],t.objectPath,t.payload):e.mqtt[t.topic]=t.payload:(console.debug("topic not found in state.mqtt: ",t.topic),t.topic in e.examples?t.objectPath!=null?n(e.examples[t.topic],t.objectPath,t.payload):e.examples[t.topic]=t.payload:console.warn("topic not found in state: ",t.topic," giving up"))},addSubscription(e,t){t in e.mqttSubscriptions?e.mqttSubscriptions[t]+=1:e.mqttSubscriptions[t]=1,console.debug("subscription count: ",t,e.mqttSubscriptions[t])},removeSubscription(e,t){t in e.mqttSubscriptions&&(e.mqttSubscriptions[t]-=1,e.mqttSubscriptions[t]<=0&&delete e.mqttSubscriptions[t])}},actions:{},modules:{},getters:{usageTermsAcknowledged(e){return new Promise(t=>{if(e.mqtt["openWB/system/usage_terms_acknowledged"]!==void 0)t(e.mqtt["openWB/system/usage_terms_acknowledged"]);else{var n,d;n=setTimeout(()=>{clearInterval(d),t(!1)},5e3),d=setInterval(()=>{e.mqtt["openWB/system/usage_terms_acknowledged"]!==void 0&&(clearTimeout(n),clearInterval(d),t(e.mqtt["openWB/system/usage_terms_acknowledged"]))},100)}})},installAssistantDone(e){return new Promise(t=>{if(e.mqtt["openWB/system/installAssistantDone"]!==void 0)t(e.mqtt["openWB/system/installAssistantDone"]);else{var n,d;n=setTimeout(()=>{clearInterval(d),t(!1)},5e3),d=setInterval(()=>{e.mqtt["openWB/system/installAssistantDone"]!==void 0&&(clearTimeout(n),clearInterval(d),t(e.mqtt["openWB/system/installAssistantDone"]))},100)}})},subscriptionCount:e=>t=>e.mqttSubscriptions[t]||0}}),X=[{path:"/",redirect:"/GeneralConfig"},{path:"/Status",name:"Status",meta:{heading:"Status"},component:()=>k(()=>import("./Status-526393e2.js"),["assets/Status-526393e2.js","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-chartjs-43b0fa2b.js","assets/vendor-luxon-cc86f6dc.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/Status-a4f24178.css"])},{path:"/Logging/ChargeLog",name:"ChargeLog",meta:{heading:"Auswertungen - Ladeprotokoll"},component:()=>k(()=>import("./ChargeLog-9b005407.js"),["assets/ChargeLog-9b005407.js","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/ChargeLog-1fb3fa68.css"])},{path:"/Logging/Chart/:chartRange?/:initialDate?",name:"DailyChart",meta:{heading:"Auswertungen - Diagramme"},component:()=>k(()=>import("./Chart-bf0ff6a8.js"),["assets/Chart-bf0ff6a8.js","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-chartjs-43b0fa2b.js","assets/vendor-luxon-cc86f6dc.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/Chart-e20451b4.css"])},{path:"/GeneralConfig",name:"GeneralConfig",meta:{heading:"Einstellungen - Allgemein"},component:()=>k(()=>import("./GeneralConfig-5de8d06f.js").then(e=>e.a),["assets/GeneralConfig-5de8d06f.js","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/IdentificationConfig",name:"IdentificationConfig",meta:{heading:"Einstellungen - Identifikation"},component:()=>k(()=>import("./IdentificationConfig-3d28d565.js"),["assets/IdentificationConfig-3d28d565.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js"])},{path:"/OptionalComponents",name:"OptionalComponents",meta:{heading:"Einstellungen - Display"},component:()=>k(()=>import("./OptionalComponents-f8223e02.js").then(e=>e.O),["assets/OptionalComponents-f8223e02.js","assets/dynamic-import-helper-be004503.js","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css"])},{path:"/GeneralChargeConfig",name:"GeneralChargeConfig",meta:{heading:"Ladeeinstellungen - Übergreifendes"},component:()=>k(()=>import("./GeneralChargeConfig-0f9eaa85.js").then(e=>e.G),["assets/GeneralChargeConfig-0f9eaa85.js","assets/dynamic-import-helper-be004503.js","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css"])},{path:"/PVChargeConfig",name:"PVChargeConfig",meta:{heading:"Ladeeinstellungen - PV-Laden"},component:()=>k(()=>import("./PVChargeConfig-9ed443e9.js"),["assets/PVChargeConfig-9ed443e9.js","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js"])},{path:"/HardwareInstallation",name:"HardwareInstallation",meta:{heading:"Konfiguration - Geräte und Komponenten"},component:()=>k(()=>import("./HardwareInstallation-35a2a562.js").then(e=>e.a),["assets/HardwareInstallation-35a2a562.js","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/LoadManagementConfiguration",name:"LoadManagementConfiguration",meta:{heading:"Konfiguration - Lastmanagement"},component:()=>k(()=>import("./LoadManagementConfig-161f6124.js"),["assets/LoadManagementConfig-161f6124.js","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/OpenwbSortableList-0d1f7c1c.js","assets/OpenwbSortableList-7ba533e4.css","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js"])},{path:"/ChargePointInstallation",name:"ChargePointInstallation",meta:{heading:"Konfiguration - Ladepunkte"},component:()=>k(()=>import("./ChargePointInstallation-81239155.js").then(e=>e.c),["assets/ChargePointInstallation-81239155.js","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js","assets/ChargePointInstallation-7b9399a8.css"])},{path:"/VehicleConfiguration/:section?/:section_index?/:section_part?/:action?",name:"VehicleConfiguration",meta:{heading:"Konfiguration - Fahrzeuge"},component:()=>k(()=>import("./VehicleConfig-233066dd.js").then(e=>e.b),["assets/VehicleConfig-233066dd.js","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/IoConfiguration",name:"IoConfiguration",meta:{heading:"Konfiguration - Ein- und Ausgänge"},component:()=>k(()=>import("./IoConfig-de1d5cc2.js").then(e=>e.b),["assets/IoConfig-de1d5cc2.js","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/System/CloudConfiguration",name:"CloudConfig",meta:{heading:"System - openWB Cloud"},component:()=>k(()=>import("./CloudConfig-fd8466da.js"),["assets/CloudConfig-fd8466da.js","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js"])},{path:"/System/MqttBridgeConfiguration",name:"MqttBridgeConfig",meta:{heading:"System - MQTT-Brücken"},component:()=>k(()=>import("./MqttBridgeConfig-187cba4b.js"),["assets/MqttBridgeConfig-187cba4b.js","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js"])},{path:"/System/DebugConfiguration",name:"Debugging",meta:{heading:"System - Fehlersuche"},component:()=>k(()=>import("./DebugConfig-9a9e00cc.js"),["assets/DebugConfig-9a9e00cc.js","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-axios-090d6ce2.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/DebugConfig-e21ab72c.css"])},{path:"/System/Support",name:"Support",meta:{heading:"System - Support"},component:()=>k(()=>import("./Support-31be3475.js"),["assets/Support-31be3475.js","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js"])},{path:"/System/LegalSettings",name:"LegalSettings",meta:{heading:"System - Rechtliches"},component:()=>k(()=>import("./LegalSettings-ca527aea.js"),["assets/LegalSettings-ca527aea.js","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js"])},{path:"/System/SystemConfiguration",name:"SystemConfig",meta:{heading:"System - System"},component:()=>k(()=>import("./System-5edeb34f.js"),["assets/System-5edeb34f.js","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js","assets/System-f301c290.css"])},{path:"/System/DataManagement",name:"DataManagement",meta:{heading:"System - Datenverwaltung"},component:()=>k(()=>import("./DataManagement-81c5a852.js").then(e=>e.a),["assets/DataManagement-81c5a852.js","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/System/InstallAssistant",name:"InstallAssistant",meta:{heading:"System - Einrichtungsassistent"},component:()=>k(()=>import("./InstallAssistant-bd77c405.js"),["assets/InstallAssistant-bd77c405.js","assets/dynamic-import-helper-be004503.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js"])}];X.push({path:"/TestingStore",name:"VUEX Store",meta:{heading:"Beispiele - VUEX Store"},component:()=>k(()=>import("./TestingStore-28ad7b75.js"),["assets/TestingStore-28ad7b75.js","assets/OpenwbSortableList-0d1f7c1c.js","assets/vendor-36bf053b.js","assets/vendor-sortablejs-32624a33.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-2b3791bb.js","assets/OpenwbSortableList-7ba533e4.css","assets/vendor-bootstrap-87ba0f33.js","assets/vendor-jquery-ffd3fdac.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-090d6ce2.js"])});const W=re({history:de(),routes:X});W.beforeEach(async e=>{if(await L.getters.usageTermsAcknowledged){if(!await L.getters.installAssistantDone&&e.name!=="InstallAssistant")return{name:"InstallAssistant"}}else if(e.name!=="LegalSettings")return{name:"LegalSettings"}});W.afterEach(e=>{e.meta.heading?document.title="openWB | "+e.meta.heading:document.title="openWB"});const R=ue(zo);R.use(L).use(W).use(He,Ue);const Uo=Object.assign({"./components/OpenwbBaseAlert.vue":Ze,"./components/OpenwbBaseArrayInput.vue":mt,"./components/OpenwbBaseAvatar.vue":ht,"./components/OpenwbBaseButtonGroupInput.vue":Ot,"./components/OpenwbBaseButtonInput.vue":Mt,"./components/OpenwbBaseCard.vue":Nt,"./components/OpenwbBaseCheckboxInput.vue":Gt,"./components/OpenwbBaseClickButton.vue":It,"./components/OpenwbBaseColorPicker.vue":Xt,"./components/OpenwbBaseCopyToClipboard.vue":un,"./components/OpenwbBaseHeading.vue":hn,"./components/OpenwbBaseIoPattern.vue":kn,"./components/OpenwbBaseModalDialog.vue":An,"./components/OpenwbBaseNumberInput.vue":Nn,"./components/OpenwbBaseRangeInput.vue":Qn,"./components/OpenwbBaseSelectInput.vue":us,"./components/OpenwbBaseSettingElement.vue":nt,"./components/OpenwbBaseSubmitButtons.vue":hs,"./components/OpenwbBaseTextInput.vue":Ds,"./components/OpenwbBaseTextarea.vue":Gs,"./components/OpenwbBaseToast.vue":Xs});Object.entries(Uo).forEach(([e,t])=>{const n=ce(pe(e.split("/").pop().replace(/\.\w+$/,"")));R.component(n,t.default)});R.mount("#app");export{Q as C,M as O,k as _}; diff --git a/web/settings/assets/index-8dd8e083.js b/web/settings/assets/index-8dd8e083.js new file mode 100644 index 0000000000..5d15541c45 --- /dev/null +++ b/web/settings/assets/index-8dd8e083.js @@ -0,0 +1 @@ +import{_ as y,l as i,m as u,p as g,q as S,u as b,x as h,y as q,z as p,A as a,B as f,D as A,E as c,F as v,G as _,I as B,J as I,K as O,L as ee,M as x,N as T,O as te,P as ne,Q as se,R as oe,T as F,S as ae,U as N,V as ie,W as le,X as re,Y as de,Z as ue,$ as ce,a0 as pe}from"./vendor-25d394b4.js";import{l as $,f as H,a as U,F as C,b as me,c as fe,d as G,e as _e,g as j,h as ge,i as be,j as he,k as ve,m as ye,n as we,o as ke,p as Se,q as Oe,r as Be,s as $e,t as Ce,u as Ie,v as Te,w as J,x as Ve,y as Ae,z as Me,A as Pe,B as K,C as xe,D as qe,E as De,G as Ee,H as Le,I as je,J as We,K as Re,L as Ne,M as ze,N as Fe}from"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import{p as He,a as Ue}from"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./vendor-jquery-3364d39b.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))d(l);new MutationObserver(l=>{for(const s of l)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&d(o)}).observe(document,{childList:!0,subtree:!0});function n(l){const s={};return l.integrity&&(s.integrity=l.integrity),l.referrerPolicy&&(s.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?s.credentials="include":l.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function d(l){if(l.ep)return;l.ep=!0;const s=n(l);fetch(l.href,s)}})();const Ge={name:"OpenwbAlert",props:{subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}}};function Je(e,t,n,d,l,s){return i(),u("div",{class:S(["card-text alert","alert-"+n.subtype])},[g(e.$slots,"default",{},void 0,!0)],2)}const Ke=y(Ge,[["render",Je],["__scopeId","data-v-055c15aa"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAlert.vue"]]),Ze=Object.freeze(Object.defineProperty({__proto__:null,default:Ke},Symbol.toStringTag,{value:"Module"}));$.add(H,U);const Qe={name:"OpenwbBaseSettingElement",components:{FontAwesomeIcon:C},data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},Ye={key:0,class:"col-md-4 col-form-label"},Xe={class:"form-row"},et={key:0,class:"form-text alert alert-info my-1 small flex-fill"};function tt(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("div",{class:S(["form-row",e.$slots.title?"mb-1":"mx-0"])},[e.$slots.title?(i(),u("label",Ye,[g(e.$slots,"title",{},void 0,!0),e.$slots.help?(i(),h(o,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:S(["clickable ml-1",l.showHelp?"text-info":""]),onClick:q(s.toggleHelp,["stop"])},null,8,["icon","class","onClick"])):p("",!0)])):p("",!0),a("div",{class:S(e.$slots.title?"col-md-8":"col px-0")},[a("div",{class:S({"form-row":e.$slots.title})},[g(e.$slots,"default",{},()=>[t[0]||(t[0]=f("*ELEMENT MISSING*",-1))],!0)],2),a("div",Xe,[l.showHelp?(i(),u("span",et,[g(e.$slots,"help",{},void 0,!0)])):p("",!0)])],2)],2)}const M=y(Qe,[["render",tt],["__scopeId","data-v-33864f66"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSettingElement.vue"]]),nt=Object.freeze(Object.defineProperty({__proto__:null,default:M},Symbol.toStringTag,{value:"Module"}));$.add(me,fe,G,_e);const st={name:"OpenwbArrayInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!0,default:"#TITLE#"},modelValue:{type:Array,default:()=>[]},noElementsMessage:{type:String,default:()=>"Keine Elemente zugeordnet."},noInput:{type:Boolean,default:()=>!1}},emits:["update:modelValue"],data(){return{newTag:"",showHelp:!1}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},newTagValid:{get(){var e;return this.newTag.length>0&&!this.value.includes(this.newTag)&&((e=this.$refs.tagInput)==null?void 0:e.checkValidity())}}},methods:{addTag(){if(this.newTagValid){const e=[...this.value,this.newTag].sort();this.value=e,this.newTag=""}this.$refs.tagInput.focus()},removeTag(e){let t=[...this.value];t.splice(e,1),this.value=t}}},ot={key:0,class:"w-100"},at={class:"input-group"},it={class:"input-group-prepend"},lt={class:"input-group-text"},rt={class:"input-group-append"},dt={class:"tagList mt-1 w-100"},ut={key:0,class:"noTag"};function ct(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[n.noInput?p("",!0):(i(),u("div",ot,[a("div",at,[a("div",it,[a("div",lt,[g(e.$slots,"input-prefix",{},()=>[_(o,{icon:["fas","tag"]})],!0)])]),B(a("input",O({ref:"tagInput","onUpdate:modelValue":t[0]||(t[0]=r=>l.newTag=r),type:"text",class:"form-control"},e.$attrs,{onKeyup:t[1]||(t[1]=ee((...r)=>s.addTag&&s.addTag(...r),["enter"]))}),null,16),[[I,l.newTag]]),a("div",rt,[a("div",{class:S(["input-group-text",s.newTagValid?"bg-success clickable":"not-clickable"]),onClick:t[2]||(t[2]=(...r)=>s.addTag&&s.addTag(...r))},[g(e.$slots,"input-add",{},()=>[_(o,{icon:["fas","plus"]})],!0)],2)])])])),a("div",dt,[s.value.length==0?(i(),u("span",ut,[_(o,{icon:["fas","info-circle"]}),f(" "+v(n.noElementsMessage),1)])):p("",!0),(i(!0),u(T,null,x(s.value,(r,w)=>(i(),u("span",{key:w,class:"tag"},[g(e.$slots,"element-prefix",{},()=>[_(o,{icon:["fas","tag"]})],!0),f(" "+v(r)+" ",1),n.noInput?p("",!0):(i(),h(o,{key:0,class:"clickable remove-element",icon:["fas","times-circle"],onClick:V=>s.removeTag(w)},null,8,["onClick"]))]))),128))])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const pt=y(st,[["render",ct],["__scopeId","data-v-9de93d37"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseArrayInput.vue"]]),mt=Object.freeze(Object.defineProperty({__proto__:null,default:pt},Symbol.toStringTag,{value:"Module"}));const ft={name:"OpenwbAvatar"},_t={class:"avatar"};function gt(e,t,n,d,l,s){return i(),u("div",_t,[g(e.$slots,"default",{},()=>[t[0]||(t[0]=f("?",-1))],!0)])}const bt=y(ft,[["render",gt],["__scopeId","data-v-06082a1a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAvatar.vue"]]),ht=Object.freeze(Object.defineProperty({__proto__:null,default:bt},Symbol.toStringTag,{value:"Module"}));$.add(j);const vt={name:"OpenwbButtonGroupInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Number,Boolean],default:void 0},buttons:{type:Array,required:!0}},emits:["update:modelValue","button-click"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},yt={class:"btn-group btn-block btn-group-toggle"},wt=["value","onClick"];function kt(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",yt,[(i(!0),u(T,null,x(n.buttons,r=>(i(),u("label",{key:r.value,class:S(["btn btn-same-size btn-centered",[s.value==r.buttonValue?"active":"",r.class?r.class:"btn-outline-info"]])},[a("span",null,[B(a("input",O({"onUpdate:modelValue":t[0]||(t[0]=w=>s.value=w),type:"radio",value:r.buttonValue},{ref_for:!0},e.$attrs,{onClick:w=>e.$emit("button-click",r.buttonValue)}),null,16,wt),[[te,s.value]]),g(e.$slots,"label-"+r.buttonValue,{},()=>[f(v(r.text),1)],!0),t[1]||(t[1]=a("span",null," ",-1)),_(o,{icon:["fas","check"],style:ne([s.value==r.buttonValue?"visibility: visible":"visibility: hidden"])},null,8,["style"])])],2))),128))])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const St=y(vt,[["render",kt],["__scopeId","data-v-31e583df"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonGroupInput.vue"]]),Ot=Object.freeze(Object.defineProperty({__proto__:null,default:St},Symbol.toStringTag,{value:"Module"}));const Bt={name:"OpenwbClickButton",props:{title:{type:String,required:!1,default:""},tooltip:{type:String,required:!1,default:""}},emits:["buttonClicked"],methods:{click(e){this.$emit("buttonClicked",e)}}},$t=["title"];function Ct(e,t,n,d,l,s){return i(),u("button",{type:"button",class:"btn btn-block",title:n.tooltip,onClick:t[0]||(t[0]=q((...o)=>s.click&&s.click(...o),["prevent"]))},[g(e.$slots,"default",{},()=>[f(v(n.title),1)],!0)],8,$t)}const Z=y(Bt,[["render",Ct],["__scopeId","data-v-2e9c095b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseClickButton.vue"]]),It=Object.freeze(Object.defineProperty({__proto__:null,default:Z},Symbol.toStringTag,{value:"Module"})),Tt={name:"OpenwbButtonInput",components:{OpenwbBaseSettingElement:M,OpenwbBaseClickButton:Z},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},buttonText:{type:String,required:!1,default:void 0},disabled:{type:Boolean,default:!1},subtype:{type:String,validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}},emits:["buttonClicked"],methods:{handleClick(e){this.$emit("buttonClicked",e)}}};function Vt(e,t,n,d,l,s){const o=b("openwb-base-click-button"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),default:c(()=>[_(o,O({class:(n.disabled?"btn-outline-":"btn-")+n.subtype,disabled:n.disabled},e.$attrs,{onButtonClicked:s.handleClick}),{default:c(()=>[f(v(n.buttonText),1)]),_:1},16,["class","disabled","onButtonClicked"])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"0"}:void 0]),1024)}const At=y(Tt,[["render",Vt],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonInput.vue"]]),Mt=Object.freeze(Object.defineProperty({__proto__:null,default:At},Symbol.toStringTag,{value:"Module"}));$.add(ge,be);const Pt={name:"OpenwbCard",components:{FontAwesomeIcon:C},inheritAttrs:!1,props:{title:{type:String,default:void 0},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark","pink","white"].indexOf(e)!==-1},default:"secondary"},bodyBg:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark","pink","white"].indexOf(e)!==-1},default:"light"},collapsible:{type:Boolean,default:!1},collapsed:{type:Boolean,default:!1}},emits:["collapsed","expanded"],data(){return{isCollapsed:this.collapsible&&this.collapsed}},methods:{toggleBody(){this.collapsible===!0&&(this.isCollapsed=!this.isCollapsed,this.$emit(this.isCollapsed?"collapsed":"expanded"))}}},xt={class:"form-group mb-0"},qt={class:"form-row vaRow mb-0 py-2"},Dt={class:"col"},Et={class:"card-actions ml-4"},Lt={key:0,class:"card-actions mr-2"},jt={key:2,class:"card-footer"};function Wt(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("div",{class:S(["card","border-"+n.subtype])},[n.title!==void 0||e.$slots.header?(i(),u("div",{key:0,class:S(["card-header py-1","bg-"+n.subtype]),onClick:t[0]||(t[0]=(...m)=>s.toggleBody&&s.toggleBody(...m))},[a("div",xt,[a("div",qt,[a("div",Dt,[g(e.$slots,"header",{collapsed:l.isCollapsed},()=>[f(v(n.title),1)],!0)])])]),a("div",Et,[e.$slots.actions?(i(),u("div",Lt,[g(e.$slots,"actions",{collapsed:l.isCollapsed},void 0,!0)])):p("",!0),n.collapsible?(i(),h(o,{key:1,icon:l.isCollapsed?["fas","chevron-right"]:["fas","chevron-down"]},null,8,["icon"])):p("",!0)])],2)):p("",!0),l.isCollapsed===!1?(i(),u("div",O({key:1,class:["card-body",[n.title==null&&!e.$slots.header?"border-radius-top-inherit":"",e.$slots.footer?"":"border-radius-bottom-inherit","bg-"+n.bodyBg]]},e.$attrs),[g(e.$slots,"default",{},void 0,!0)],16)):p("",!0),e.$slots.footer&&l.isCollapsed===!1?(i(),u("div",jt,[g(e.$slots,"footer",{},void 0,!0)])):p("",!0)],2)}const Rt=y(Pt,[["render",Wt],["__scopeId","data-v-9833c353"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCard.vue"]]),Nt=Object.freeze(Object.defineProperty({__proto__:null,default:Rt},Symbol.toStringTag,{value:"Module"})),zt={name:"OpenwbCheckboxInput",components:{OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Boolean}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},Ft={class:"col-md-8"};function Ht(e,t,n,d,l,s){const o=b("openwb-base-setting-element");return i(),h(o,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),default:c(()=>[a("div",Ft,[B(a("input",O({"onUpdate:modelValue":t[0]||(t[0]=m=>s.value=m),class:"form-control",type:"checkbox"},e.$attrs),null,16),[[se,s.value]])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"0"}:void 0]),1024)}const Ut=y(zt,[["render",Ht],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCheckboxInput.vue"]]),Gt=Object.freeze(Object.defineProperty({__proto__:null,default:Ut},Symbol.toStringTag,{value:"Module"}));$.add(he);const Jt={name:"OpenwbColorPicker",components:{FontAwesomeIcon:C},props:{defaultColor:{type:String,required:!1,default:void 0,validator:e=>/^#[0-9A-F]{6}$/i.test(e)},modelValue:{type:String,required:!1,default:"#000000",validator:e=>/^#[0-9A-F]{6}$/i.test(e)}},emits:["update:model-value"],methods:{changed(e){this.$emit("update:model-value",e)}}},Kt={class:"wrapper"},Zt=["value","title"];function Qt(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("div",Kt,[a("input",{type:"color",class:"custom-color-picker",value:n.modelValue,title:`Farbe: ${n.modelValue}`,onInput:t[0]||(t[0]=m=>s.changed(m.target.value))},null,40,Zt),n.defaultColor?(i(),h(o,{key:0,class:"ml-1 clickable",icon:["fas","rotate-left"],title:`Zurücksetzen auf Standardfarbe (${n.defaultColor})`,onClick:t[1]||(t[1]=m=>s.changed(n.defaultColor))},null,8,["title"])):p("",!0)])}const Yt=y(Jt,[["render",Qt],["__scopeId","data-v-1378b599"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseColorPicker.vue"]]),Xt=Object.freeze(Object.defineProperty({__proto__:null,default:Yt},Symbol.toStringTag,{value:"Module"}));const{text:en,copy:tn,copied:nn,isSupported:sn}=oe({copiedDuring:3e3,legacy:!0});$.add(ve,ye);const on={name:"OpenwbCopyToClipboard",components:{FontAwesomeIcon:C},props:{tooltip:{type:String,default:"Wert kopieren"}},data(){return{}},computed:{contentText(){return this.$refs.content?this.$refs.content.innerText.trim():""},isCopied(){return nn.value},copySupported(){return sn.value}},methods:{click(){this.copySupported&&tn(this.contentText).then(()=>{console.debug("Text copied to clipboard:",en.value)}).catch(e=>{console.error("Failed to copy text to clipboard:",e)})}}},an=["title"],ln={ref:"content"};function rn(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("span",{title:s.copySupported&&!s.isCopied?n.tooltip:"",class:S({"copy-me":s.copySupported&&!s.isCopied}),onClick:t[0]||(t[0]=q((...m)=>s.click&&s.click(...m),["stop"]))},[a("span",ln,[g(e.$slots,"default",{},void 0,!0)],512),s.copySupported?(i(),h(o,{key:0,icon:s.isCopied?["fas","clipboard-check"]:["fas","clipboard"]},null,8,["icon"])):p("",!0)],10,an)}const dn=y(on,[["render",rn],["__scopeId","data-v-81826ebe"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCopyToClipboard.vue"]]),un=Object.freeze(Object.defineProperty({__proto__:null,default:dn},Symbol.toStringTag,{value:"Module"}));$.add(H,U,j);const cn={name:"OpenwbHeading",components:{FontAwesomeIcon:C},inheritAttrs:!1,data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},pn={class:"heading-text"},mn={key:0,class:"actions"},fn={class:""},_n={key:0,class:"form-row alert alert-info small flex-fill"};function gn(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u(T,null,[a("div",O({class:"card-text card-text-heading"},e.$attrs),[a("div",pn,[g(e.$slots,"default",{},void 0,!0),e.$slots.help?(i(),h(o,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:S(["clickable",l.showHelp?"text-info":""]),onClick:q(s.toggleHelp,["stop"])},null,8,["icon","class","onClick"])):p("",!0)]),e.$slots.actions?(i(),u("span",mn,[g(e.$slots,"actions",{},void 0,!0)])):p("",!0)],16),a("div",fn,[l.showHelp?(i(),u("span",_n,[g(e.$slots,"help",{},void 0,!0)])):p("",!0)])],64)}const bn=y(cn,[["render",gn],["__scopeId","data-v-cbe4e96e"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseHeading.vue"]]),hn=Object.freeze(Object.defineProperty({__proto__:null,default:bn},Symbol.toStringTag,{value:"Module"}));$.add(we,ke,Se,Oe);const E={null:{value:null,icon:["fas","question"],iconClass:"text-secondary",title:"Nicht relevant",nextValue:!0},true:{value:!0,icon:["fas","square"],iconClass:"",title:"Geschlossen",nextValue:!1},false:{value:!1,icon:["far","square"],iconClass:"",title:"Offen",nextValue:null}},vn={name:"OpenwbIoPattern",components:{FontAwesomeIcon:C},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Array,required:!1,default:()=>[]}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}},methods:{getIcon(e){return E[e].icon},getIconClass(e){return E[e].iconClass},getTitle(e){return E[e].title},toggleInput(e,t){this.value[e]=E[t].nextValue}}};function yn(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),default:c(()=>[(i(!0),u(T,null,x(s.value,(r,w)=>(i(),u("span",{key:w},[_(o,{title:s.getTitle(r),icon:s.getIcon(r),class:S([s.getIconClass(r),"fa-fw clickable"]),size:"2x",transform:r=="undefined"?"shrink-6":null,mask:r=="undefined"?["fas","square"]:null,onClick:q(V=>s.toggleInput(w,r),["stop","prevent"]),onMousedown:t[0]||(t[0]=q(()=>{},["stop","prevent"])),onMouseup:t[1]||(t[1]=q(()=>{},["stop","prevent"]))},null,8,["title","icon","class","transform","mask","onClick"])]))),128))]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"0"}:void 0]),1024)}const wn=y(vn,[["render",yn],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseIoPattern.vue"]]),kn=Object.freeze(Object.defineProperty({__proto__:null,default:wn},Symbol.toStringTag,{value:"Module"})),Sn={name:"OpenwbModalDialog",props:{title:{type:String,required:!1,default:""},subtype:{type:String,validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"},buttons:{type:Array,default:void 0},footerAlignment:{type:String,validator:function(e){return["around","between","center","end","start"].indexOf(e)!==-1},default:"end"},preventClose:{type:Boolean,default:!1},show:{type:Boolean,default:!1}},emits:["modal-result"],computed:{myButtons(){var e=[];return this.buttons!==void 0&&(e=this.buttons),this.preventClose||e.push({text:"Schließen",event:"close"}),e}},methods:{handleClick(e){e.stopPropagation();let t=e.target.getAttribute("data-event");t===null&&(t="close"),(t!="close"||!this.preventClose)&&this.$emit("modal-result",t)}}},On={class:"modal-dialog modal-dialog-centered modal-dialog-scrollable",role:"document"},Bn={class:"modal-content"},$n={class:"modal-title"},Cn={class:"modal-body"},In=["data-event"];function Tn(e,t,n,d,l,s){return n.show?(i(),h(F,{key:0,to:"body"},[t[4]||(t[4]=a("div",{class:"modal-backdrop fade show"},null,-1)),a("div",{class:"modal fade d-block show",role:"dialog",onClick:t[2]||(t[2]=(...o)=>s.handleClick&&s.handleClick(...o))},[a("div",On,[a("div",Bn,[a("div",{class:S(["modal-header","bg-"+n.subtype])},[a("h4",$n,v(n.title),1),n.preventClose?p("",!0):(i(),u("button",{key:0,type:"button",class:"close",onClick:t[0]||(t[0]=(...o)=>s.handleClick&&s.handleClick(...o))}," × "))],2),a("div",Cn,[g(e.$slots,"default",{},()=>[t[3]||(t[3]=f("# Body #",-1))])]),s.myButtons.length>0?(i(),u("div",{key:0,class:S(["modal-footer d-flex","justify-content-"+n.footerAlignment])},[(i(!0),u(T,null,x(s.myButtons,o=>(i(),u("button",{key:o.text,type:"button",class:S(["btn",o.subtype?"btn-"+o.subtype:"btn-secondary"]),"data-dismiss":"modal","data-event":o.event?o.event:"close",onClick:t[1]||(t[1]=(...m)=>s.handleClick&&s.handleClick(...m))},v(o.text),11,In))),128))],2)):p("",!0)])])])])):p("",!0)}const Vn=y(Sn,[["render",Tn],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseModalDialog.vue"]]),An=Object.freeze(Object.defineProperty({__proto__:null,default:Vn},Symbol.toStringTag,{value:"Module"}));$.add(Be);const Mn={name:"OpenwbNumberInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Number,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},precision:{type:Number,default:void 0},emptyValue:{type:[Number,null],required:!1,default:null}},emits:["update:modelValue"],computed:{value:{get(){return this.precision!==void 0?parseFloat(Math.round(this.modelValue*Math.pow(10,this.precision))/Math.pow(10,this.precision)):this.modelValue},set(e){(isNaN(e)||typeof e!="number")&&(e=this.emptyValue),this.$emit("update:modelValue",e)}}}},Pn={class:"input-group"},xn={class:"input-group-prepend"},qn={class:"input-group-text"},Dn={key:0,class:"input-group-append"},En={class:"input-group-text"},Ln={key:1,class:"input-group-append"},jn={class:"input-group-text p-0"};function Wn(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",Pn,[a("div",xn,[a("div",qn,[_(o,{icon:["fas","calculator"]})])]),B(a("input",O({"onUpdate:modelValue":t[0]||(t[0]=r=>s.value=r),type:"number",class:"form-control"},e.$attrs),null,16),[[I,s.value,void 0,{number:!0}]]),n.unit?(i(),u("div",Dn,[a("div",En,v(n.unit),1)])):p("",!0),e.$slots.append?(i(),u("div",Ln,[a("div",jn,[g(e.$slots,"append",{},void 0,!0)])])):p("",!0)])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Rn=y(Mn,[["render",Wn],["__scopeId","data-v-c2fb7eef"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseNumberInput.vue"]]),Nn=Object.freeze(Object.defineProperty({__proto__:null,default:Rn},Symbol.toStringTag,{value:"Module"}));$.add($e,Ce);const zn={name:"OpenwbRangeInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Number,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},min:{type:Number,required:!0,default:0},max:{type:Number,required:!0,default:100},step:{type:Number,required:!1,default:1},labels:{type:Array,required:!1,default:void 0}},emits:["update:modelValue"],computed:{label(){var e;return this.labels&&this.sliderValue!=null?this.sliderValue[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",Fn,[a("div",Hn,[s.label?(i(),u("label",Un,v(s.label),1)):p("",!0),a("button",{class:"col-1 btn btn-block btn-info",type:"button",onClick:t[0]||(t[0]=(...r)=>s.decrement&&s.decrement(...r))},[_(o,{icon:["fas","step-backward"]})]),a("div",Gn,[B(a("input",O({"onUpdate:modelValue":t[1]||(t[1]=r=>s.sliderValue=r),type:"range",class:"form-control-range rangeInput",min:n.min,max:n.max,step:n.step},e.$attrs),null,16,Jn),[[I,s.sliderValue,void 0,{number:!0}]])]),a("button",{class:"col-1 btn btn-block btn-info",type:"button",onClick:t[2]||(t[2]=(...r)=>s.increment&&s.increment(...r))},[_(o,{icon:["fas","step-forward"]})])])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Zn=y(zn,[["render",Kn],["__scopeId","data-v-449fb0a5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseRangeInput.vue"]]),Qn=Object.freeze(Object.defineProperty({__proto__:null,default:Zn},Symbol.toStringTag,{value:"Module"}));$.add(G);const Yn={name:"OpenwbSelectInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:void 0},modelValue:{type:[String,Number,Array,null],required:!1,default:void 0},emptyValue:{type:[String,Number,Array],required:!1,default:void 0},groups:{type:Array,required:!1,default:void 0},options:{type:Array,required:!1,default:void 0},notSelected:{type:String,default:void 0},addButton:{type:Boolean,default:!1}},emits:["update:modelValue","input:add"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},addDisabled:{get(){return this.value===void 0}}},methods:{addClicked(){this.addDisabled||this.$emit("input:add")}}},Xn={class:"w-100"},es={class:"input-group"},ts={key:0,class:"input-group-prepend"},ns={class:"input-group-text"},ss=["value"],os=["value"],as=["label"],is=["value"],ls={key:1,class:"input-group-append"};function rs(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({default:c(()=>[a("div",Xn,[a("div",es,[e.$slots.prefix?(i(),u("div",ts,[a("div",ns,[g(e.$slots,"prefix")])])):p("",!0),B(a("select",O({"onUpdate:modelValue":t[0]||(t[0]=r=>s.value=r),class:"col form-control"},e.$attrs),[n.notSelected!==void 0?(i(),u("option",{key:0,value:n.emptyValue,disabled:""}," -- "+v(n.notSelected)+" -- ",9,ss)):p("",!0),(i(!0),u(T,null,x(n.options,r=>(i(),u("option",{key:r.value,value:r.value},v(r.text),9,os))),128)),(i(!0),u(T,null,x(n.groups,r=>(i(),u("optgroup",{key:r.label,label:r.label},[(i(!0),u(T,null,x(r.options,w=>(i(),u("option",{key:w.value,value:w.value},v(w.text),9,is))),128))],8,as))),128))],16),[[ae,s.value]]),n.addButton?(i(),u("div",ls,[a("div",{class:S(["input-group-text",s.addDisabled?"not-clickable":"bg-success clickable"]),onClick:t[1]||(t[1]=r=>s.addClicked())},[g(e.$slots,"inputAdd",{},()=>[_(o,{icon:["fas","plus"]})])],2)])):p("",!0)])])]),_:2},[e.$slots.title||n.title?{name:"title",fn:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),key:"0"}:void 0,e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"1"}:void 0]),1024)}const ds=y(Yn,[["render",rs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSelectInput.vue"]]),us=Object.freeze(Object.defineProperty({__proto__:null,default:ds},Symbol.toStringTag,{value:"Module"}));$.add(j,Ie,Te);const cs={name:"OpenwbSubmitButtons",components:{FontAwesomeIcon:C},props:{formName:{type:String,default:void 0},hideReset:{type:Boolean,default:!1},hideDefaults:{type:Boolean,default:!0}},emits:["reset","defaults","save"],data(){return{showModalReset:!1,showModalDefaults:!1}},computed:{showModalSave(){return this.$store.state.local.savingData}},methods:{showResetModal(){this.showModalReset=!0},handleModalReset(e){this.showModalReset=!1,e=="confirm"&&this.$emit("reset")},showDefaultsModal(){this.showModalDefaults=!0},handleModalDefaults(e){this.showModalDefaults=!1,e=="confirm"&&this.$emit("defaults")},saveSettings(){if(this.formName){if(!document.forms[this.formName].reportValidity()){console.debug("form invalid");return}}else console.debug("no form to validate");this.$emit("save")}}},ps={class:"row justify-content-center mb-1"},ms={class:"col-md-4 d-flex py-1 justify-content-center"},fs={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},_s={key:1,class:"col-md-4 d-flex py-1 justify-content-center"};function gs(e,t,n,d,l,s){const o=b("openwb-base-modal-dialog"),m=b("font-awesome-icon");return i(),u(T,null,[_(o,{show:s.showModalSave,title:"Speichern",subtype:"success","prevent-close":!0},{default:c(()=>t[3]||(t[3]=[f(" Einstellungen werden gespeichert... ",-1)])),_:1,__:[3]},8,["show"]),_(o,{show:l.showModalReset,title:"Änderungen verwerfen",subtype:"warning",buttons:[{text:"Ok",event:"confirm",subtype:"warning"}],onModalResult:s.handleModalReset},{default:c(()=>t[4]||(t[4]=[f(" Wollen Sie die nicht gespeicherten Änderungen wirklich verwerfen? ",-1)])),_:1,__:[4]},8,["show","onModalResult"]),_(o,{show:l.showModalDefaults,title:"Werkseinstellungen",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"danger"}],onModalResult:s.handleModalDefaults},{default:c(()=>t[5]||(t[5]=[f(" Wollen Sie wirklich alle Werte dieser Seite auf die Werkseinstellungen zurücksetzen? ",-1)])),_:1,__:[5]},8,["show","onModalResult"]),a("div",ps,[a("div",ms,[a("button",{id:"saveSettingsBtn",type:"button",class:"btn btn-block btn-success",onClick:t[0]||(t[0]=(...r)=>s.saveSettings&&s.saveSettings(...r))},[t[6]||(t[6]=f(" Speichern ",-1)),_(m,{icon:["fas","check"]})])]),n.hideReset?p("",!0):(i(),u("div",fs,[a("button",{id:"modalResetBtn",type:"button",class:"btn btn-block btn-warning",onClick:t[1]||(t[1]=(...r)=>s.showResetModal&&s.showResetModal(...r))},[t[7]||(t[7]=f(" Änderungen verwerfen ",-1)),_(m,{icon:["fas","undo"]})])])),n.hideDefaults?p("",!0):(i(),u("div",_s,[a("button",{id:"modalDefaultsBtn",type:"button",class:"btn btn-block btn-danger",onClick:t[2]||(t[2]=(...r)=>s.showDefaultsModal&&s.showDefaultsModal(...r))},[t[8]||(t[8]=f(" Werkseinstellungen ",-1)),_(m,{icon:["fas","times"]})])]))])],64)}const bs=y(cs,[["render",gs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSubmitButtons.vue"]]),hs=Object.freeze(Object.defineProperty({__proto__:null,default:bs},Symbol.toStringTag,{value:"Module"}));$.add(J,Ve,Ae,Me,Pe,K,xe,qe,De,Ee,Le,je);const vs={name:"OpenwbTextInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Object],required:!1,default:void 0},subtype:{validator:function(e){return["text","email","host","url","user","json","password","time","date","month","year"].indexOf(e)!==-1},default:"text"},pattern:{type:String,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},emptyValue:{type:[String,Object,null],required:!1,default:null},showQuickButtons:{type:Boolean,default:!1}},emits:["update:modelValue"],data(){return{showPassword:!1,inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.warn("returning invalid String"),this.tempValue):JSON.stringify(this.tempValue):this.modelValue},set(e){if(this.subtype=="json")try{let t=JSON.parse(e);this.inputInvalid=!1,this.$refs.jsonInput.setCustomValidity(""),this.tempValue=t,this.$emit("update:modelValue",t)}catch(t){console.error("parsing JSON failed: "+e,t),this.inputInvalid=!0,this.$refs.jsonInput.setCustomValidity("Ungültiger JSON Ausdruck!"),this.tempValue=e}else e==""&&(e=this.emptyValue),this.$emit("update:modelValue",e)}},inputRef(){switch(this.subtype){case"json":return this.$refs.jsonInput;case"password":return this.$refs.passwordInput;case"host":return this.$refs.hostInput;case"email":case"url":return this.$refs.urlInput;case"time":return this.$refs.timeInput;case"date":return this.$refs.dateInput;case"month":return this.$refs.monthInput;case"year":return this.$refs.yearInput}return this.$refs.textInput},hostPattern(){return"(^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$)|(^(?=.*[a-zA-Z].*$)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])$)|(^((?=[^.]*[a-zA-Z][^.]*\\.)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]\\.))+((?=[^.]*[a-zA-Z].*$)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]))$)"}},methods:{togglePassword(){this.showPassword=!this.showPassword},modify(e){var t,n=new Date(this.modelValue);switch(this.subtype){case"date":n.setDate(n.getDate()+e),t=String(n.getFullYear())+"-"+String(n.getMonth()+1).padStart(2,"0")+"-"+String(n.getDate()).padStart(2,"0");break;case"month":n.setMonth(n.getMonth()+e),t=String(n.getFullYear())+"-"+String(n.getMonth()+1).padStart(2,"0");break;case"year":n.setYear(n.getFullYear()+e),t=String(n.getFullYear());break;default:console.warn(`cannot modify input of subtype '${this.subtype}'`);return}t>this.inputRef.max||t[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",ys,[a("div",ws,[a("div",ks,[a("div",Ss,[n.subtype=="text"?(i(),h(o,{key:0,icon:["fas","keyboard"]})):p("",!0),n.subtype=="email"?(i(),h(o,{key:1,icon:["fas","envelope"]})):p("",!0),n.subtype=="host"?(i(),h(o,{key:2,icon:["fas","network-wired"]})):p("",!0),n.subtype=="url"?(i(),h(o,{key:3,icon:["fas","globe"]})):p("",!0),n.subtype=="user"?(i(),h(o,{key:4,icon:["fas","user"]})):p("",!0),n.subtype=="json"?(i(),h(o,{key:5,icon:["fas","code"]})):p("",!0),n.subtype=="password"?(i(),h(o,{key:6,icon:l.showPassword?["fas","unlock"]:["fas","lock"]},null,8,["icon"])):p("",!0),n.subtype=="time"?(i(),h(o,{key:7,icon:["fas","clock"]})):p("",!0),n.subtype=="date"||n.subtype=="month"||n.subtype=="year"?(i(),h(o,{key:8,icon:["fas","calendar-day"]})):p("",!0)])]),["text","user"].includes(n.subtype)?B((i(),u("input",O({key:0,ref:"textInput","onUpdate:modelValue":t[0]||(t[0]=r=>s.value=r),type:"text",class:["form-control",{invalid:l.inputInvalid}]},e.$attrs,{pattern:n.pattern}),null,16,Os)),[[I,s.value]]):p("",!0),n.subtype=="json"?B((i(),u("input",O({key:1,ref:"jsonInput","onUpdate:modelValue":t[1]||(t[1]=r=>s.value=r),type:"text",class:"form-control"},e.$attrs,{pattern:n.pattern}),null,16,Bs)),[[I,s.value]]):p("",!0),n.subtype=="password"?B((i(),u("input",O({key:2,ref:"passwordInput","onUpdate:modelValue":t[2]||(t[2]=r=>s.value=r),type:l.showPassword?"text":"password",class:"form-control"},e.$attrs,{pattern:n.pattern}),null,16,$s)),[[N,s.value]]):p("",!0),n.subtype=="host"?B((i(),u("input",O({key:3,ref:"hostInput","onUpdate:modelValue":t[3]||(t[3]=r=>s.value=r),type:"text",class:"form-control"},e.$attrs,{pattern:s.hostPattern}),null,16,Cs)),[[I,s.value]]):p("",!0),["email","url"].includes(n.subtype)?B((i(),u("input",O({key:4,"onUpdate:modelValue":t[4]||(t[4]=r=>s.value=r),refs:"urlInput",type:n.subtype,class:"form-control"},e.$attrs),null,16,Is)),[[N,s.value]]):p("",!0),n.subtype=="time"?B((i(),u("input",O({key:5,ref:"timeInput","onUpdate:modelValue":t[5]||(t[5]=r=>s.value=r),type:"time",class:"form-control"},e.$attrs),null,16)),[[I,s.value]]):p("",!0),n.subtype=="date"?B((i(),u("input",O({key:6,ref:"dateInput","onUpdate:modelValue":t[6]||(t[6]=r=>s.value=r),type:"date",class:"form-control"},e.$attrs),null,16)),[[I,s.value]]):p("",!0),n.subtype=="month"?B((i(),u("input",O({key:7,ref:"monthInput","onUpdate:modelValue":t[7]||(t[7]=r=>s.value=r),type:"month",class:"form-control"},e.$attrs),null,16)),[[I,s.value]]):p("",!0),n.subtype=="year"?B((i(),u("input",O({key:8,ref:"yearInput","onUpdate:modelValue":t[8]||(t[8]=r=>s.value=r),type:"number",class:"form-control"},e.$attrs),null,16)),[[I,s.value]]):p("",!0),n.unit?(i(),u("div",Ts,[a("div",Vs,v(n.unit),1)])):p("",!0),n.subtype=="password"?(i(),u("div",{key:10,class:"input-group-append clickable",onClick:t[9]||(t[9]=(...r)=>s.togglePassword&&s.togglePassword(...r))},[a("div",As,[_(o,{icon:l.showPassword?["far","eye"]:["far","eye-slash"]},null,8,["icon"])])])):p("",!0),n.showQuickButtons&&(n.subtype=="date"||n.subtype=="month"||n.subtype=="year")?(i(),u("div",{key:11,class:"input-group-append clickable",onClick:t[10]||(t[10]=r=>s.modify(-1))},t[12]||(t[12]=[a("div",{class:"input-group-text"},"-",-1)]))):p("",!0),n.showQuickButtons&&(n.subtype=="date"||n.subtype=="month"||n.subtype=="year")?(i(),u("div",{key:12,class:"input-group-append clickable",onClick:t[11]||(t[11]=r=>s.modify(1))},t[13]||(t[13]=[a("div",{class:"input-group-text"},"+",-1)]))):p("",!0),e.$slots.append?(i(),u("div",Ms,[a("div",Ps,[g(e.$slots,"append",{},void 0,!0)])])):p("",!0)])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const qs=y(vs,[["render",xs],["__scopeId","data-v-6927d479"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextInput.vue"]]),Ds=Object.freeze(Object.defineProperty({__proto__:null,default:qs},Symbol.toStringTag,{value:"Module"}));$.add(J,K);const Es={name:"OpenwbTextareaInput",components:{OpenwbBaseSettingElement:M,FontAwesomeIcon:C},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Object],required:!1,default:void 0},subtype:{validator:function(e){return["text","json"].indexOf(e)!==-1},default:"text"}},emits:["update:modelValue"],data(){return{inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.debug("returning invalid JSON as String"),this.tempValue):JSON.stringify(this.tempValue,void 0,2):this.modelValue},set(e){if(this.subtype=="json")try{let t=JSON.parse(e);this.inputInvalid=!1,this.$refs.jsonInput.setCustomValidity(""),this.tempValue=t,this.$emit("update:modelValue",t)}catch(t){console.warn("parsing JSON failed: "+e,t),this.inputInvalid=!0,this.$refs.jsonInput.setCustomValidity("Ungültiger JSON Ausdruck!"),this.tempValue=e}else this.$emit("update:modelValue",e)}},length:{get(){return this.value!==void 0?this.value.length:0}}}},Ls={class:"w-100"},js={class:"input-group"},Ws={class:"input-group-prepend"},Rs={class:"input-group-text"},Ns={key:2,class:"input-group-append"},zs={class:"input-group-text"},Fs={class:"form-text text-muted text-right"};function Hs(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",Ls,[a("div",js,[a("div",Ws,[a("div",Rs,[n.subtype=="text"?(i(),h(o,{key:0,icon:["fas","keyboard"]})):p("",!0),n.subtype=="json"?(i(),h(o,{key:1,icon:["fas","code"]})):p("",!0)])]),n.subtype==="json"?B((i(),u("textarea",O({key:0,ref:"jsonInput","onUpdate:modelValue":t[0]||(t[0]=r=>s.value=r),class:"form-control"},e.$attrs),null,16)),[[I,s.value,void 0,{lazy:!0}]]):B((i(),u("textarea",O({key:1,"onUpdate:modelValue":t[1]||(t[1]=r=>s.value=r),class:"form-control"},e.$attrs),null,16)),[[I,s.value]]),e.$attrs.maxlength?(i(),u("div",Ns,[a("div",zs,[a("small",Fs,v(s.length)+" / "+v(e.$attrs.maxlength),1)])])):p("",!0)])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Us=y(Es,[["render",Hs],["__scopeId","data-v-3d93046b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextarea.vue"]]),Gs=Object.freeze(Object.defineProperty({__proto__:null,default:Us},Symbol.toStringTag,{value:"Module"}));const Js={name:"OpenwbToast",props:{topic:{type:String,required:!0},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"},source:{type:String,required:!0,validator:function(e){return["system","client","command"].indexOf(e)!==-1}},timestamp:{type:Number,required:!0}},emits:["dismiss","hide"],data(){return{handle:void 0,relativeTime:void 0,hidden:!1}},mounted(){this.handle=window.setInterval(this.updateRelativeTime,1e3)},unmounted(){window.clearInterval(this.handle)},methods:{dismiss(){this.$emit("dismiss",{topic:this.topic})},updateRelativeTime(){const e={year:31536e6,month:2628e6,day:864e5,hour:36e5,minute:6e4,second:1e3};var t=new Intl.RelativeTimeFormat("de",{numeric:"auto"});const d=new Date-this.timestamp*1e3;for(var l in e)if(Math.abs(d)>e[l]){this.relativeTime=t.format(Math.round(-d/e[l]),l);break}d>10*1e3&&!this.hidden&&(this.hidden=!0,this.$emit("hide",{topic:this.topic}))}}},Ks={key:0,class:"time-diff"},Zs={class:"toast-body"};function Qs(e,t,n,d,l,s){return i(),u("div",{class:S(["toast","border-"+n.subtype]),role:"alert"},[a("div",{class:S(["toast-header","bg-"+n.subtype])},[t[2]||(t[2]=a("strong",{class:"pr-2 mr-auto"},"openWB",-1)),n.timestamp?(i(),u("small",Ks,v(l.relativeTime),1)):p("",!0),a("button",{type:"button",class:"ml-2 mb-1 close","data-dismiss":"toast","aria-label":"Close",onClick:t[0]||(t[0]=(...o)=>s.dismiss&&s.dismiss(...o))},t[1]||(t[1]=[a("span",{"aria-hidden":"true"},"×",-1)]))],2),a("div",Zs,[g(e.$slots,"default",{},void 0,!0)])],2)}const Ys=y(Js,[["render",Qs],["__scopeId","data-v-c51b5764"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseToast.vue"]]),Xs=Object.freeze(Object.defineProperty({__proto__:null,default:Ys},Symbol.toStringTag,{value:"Module"}));$.add(We);const eo={name:"OpenwbNavBar",components:{FontAwesomeIcon:C},computed:{nodeEnv(){return"development"}},watch:{$route(){this.$refs.collapsibleNavbar.classList.remove("show"),this.$refs.navbarButton.classList.add("collapsed"),this.$refs.navbarButton.setAttribute("aria-expanded",!1)}}},to={class:"navbar navbar-expand-lg bg-dark navbar-dark fixed-top"},no={ref:"navbarButton",class:"navbar-toggler mr-5",type:"button","data-toggle":"collapse","data-target":"#collapsibleNavbar"},so={id:"collapsibleNavbar",ref:"collapsibleNavbar",class:"collapse navbar-collapse navbar-nav-scroll"},oo={class:"navbar-nav"},ao={class:"nav-item"},io={class:"nav-item dropdown nav-separator-after"},lo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},ro={class:"nav-item dropdown"},uo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},co={class:"nav-item dropdown"},po={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},mo={class:"nav-item dropdown"},fo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},_o={class:"nav-item dropdown"},go={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},bo={class:"nav-item nav-separator-before"},ho={class:"nav-link",href:"https://github.com/openWB/core/wiki",target:"_blank"};function vo(e,t,n,d,l,s){const o=b("router-link"),m=b("font-awesome-icon");return i(),u("nav",to,[t[30]||(t[30]=a("a",{class:"navbar-brand",href:"/openWB/web/"},[a("span",null,"openWB")],-1)),a("button",no,t[0]||(t[0]=[a("span",{class:"navbar-toggler-icon"},null,-1)]),512),a("div",so,[a("ul",oo,[a("li",ao,[_(o,{to:"/Status",class:"nav-link","active-class":"active disabled"},{default:c(()=>t[1]||(t[1]=[f(" Status ",-1)])),_:1,__:[1]})]),a("li",io,[t[4]||(t[4]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Auswertungen ",-1)),a("div",lo,[_(o,{to:"/Logging/ChargeLog",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[2]||(t[2]=[f(" Ladeprotokoll ",-1)])),_:1,__:[2]}),_(o,{to:"/Logging/Chart",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[3]||(t[3]=[f(" Diagramme ",-1)])),_:1,__:[3]})])]),a("li",ro,[t[8]||(t[8]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Einstellungen ",-1)),a("div",uo,[_(o,{to:"/GeneralConfig",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[5]||(t[5]=[f(" Allgemein ",-1)])),_:1,__:[5]}),_(o,{to:"/OptionalComponents",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[6]||(t[6]=[f(" Display ",-1)])),_:1,__:[6]}),_(o,{to:"/IdentificationConfig",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[7]||(t[7]=[f(" Identifikation ",-1)])),_:1,__:[7]})])]),a("li",co,[t[11]||(t[11]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Ladeeinstellungen ",-1)),a("div",po,[_(o,{to:"/GeneralChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[9]||(t[9]=[f(" Übergreifendes ",-1)])),_:1,__:[9]}),_(o,{to:"/PVChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[10]||(t[10]=[f(" PV-Laden ",-1)])),_:1,__:[10]})])]),a("li",mo,[t[19]||(t[19]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Konfiguration ",-1)),a("div",fo,[_(o,{to:"/HardwareInstallation",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[12]||(t[12]=[f(" Geräte und Komponenten ",-1)])),_:1,__:[12]}),_(o,{to:"/LoadManagementConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[13]||(t[13]=[f(" Lastmanagement ",-1)])),_:1,__:[13]}),_(o,{to:"/ChargePointInstallation",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[14]||(t[14]=[f(" Ladepunkte ",-1)])),_:1,__:[14]}),_(o,{to:"/VehicleConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[15]||(t[15]=[f(" Fahrzeuge ",-1)])),_:1,__:[15]}),_(o,{to:"/IoConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[16]||(t[16]=[f(" Ein-/Ausgänge ",-1)])),_:1,__:[16]}),t[17]||(t[17]=a("div",{class:"dropdown-divider"},null,-1)),t[18]||(t[18]=a("a",{href:"modules/legacy_smart_home/smarthomeconfig.php",class:"dropdown-item",target:"_blank"}," SmartHome ",-1))])]),a("li",_o,[t[28]||(t[28]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," System ",-1)),a("div",go,[_(o,{to:"/System/InstallAssistant",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[20]||(t[20]=[f(" Einrichtungsassistent ",-1)])),_:1,__:[20]}),_(o,{to:"/System/CloudConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[21]||(t[21]=[f(" openWB Cloud ",-1)])),_:1,__:[21]}),_(o,{to:"/System/MqttBridgeConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[22]||(t[22]=[f(" MQTT-Brücken ",-1)])),_:1,__:[22]}),_(o,{to:"/System/DebugConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[23]||(t[23]=[f(" Fehlersuche ",-1)])),_:1,__:[23]}),_(o,{to:"/System/Support",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[24]||(t[24]=[f(" Support ",-1)])),_:1,__:[24]}),_(o,{to:"/System/DataManagement",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[25]||(t[25]=[f(" Datenverwaltung ",-1)])),_:1,__:[25]}),_(o,{to:"/System/SystemConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[26]||(t[26]=[f(" System ",-1)])),_:1,__:[26]}),_(o,{to:"/System/LegalSettings",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[27]||(t[27]=[f(" Rechtliches ",-1)])),_:1,__:[27]})])]),a("li",bo,[a("a",ho,[t[29]||(t[29]=f(" Wiki ",-1)),_(m,{icon:["fas","external-link-alt"]})])])])],512)])}const yo=y(eo,[["render",vo],["__scopeId","data-v-e7a6d0c0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageNavbar.vue"]]);const wo={name:"OpenwbPageFooter"},ko={id:"footer",class:"footer bg-dark text-light font-small"},So={class:"container text-center"};function Oo(e,t,n,d,l,s){return i(),u("footer",ko,[a("div",So,[a("small",null," Sie befinden sich hier: Einstellungen / "+v(e.$route.meta.heading),1)])])}const Bo=y(wo,[["render",Oo],["__scopeId","data-v-3c9a239a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageFooter.vue"]]),$o={name:"ComponentState",emits:["reset","defaults","save"],data(){return{mqttTopicsToSubscribe:[]}},computed:{weekdays(){return["Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag"]},chargeModes(){return["instant_charging","pv_charging","scheduled_charging","time_charging","eco_charging","stop"]},statusLevel(){return["success","warning","danger"]},stateIcon:{get(){switch(this.$store.state.mqtt[this.baseTopic+"/get/fault_state"]){case 0:return["fas","check-circle"];case 1:return["fas","exclamation-triangle"];case 2:return["fas","times-circle"];default:return["fas","check-circle"]}}}},mounted(){this.mqttTopicsToSubscribe.length>0&&this.$root.doSubscribe(this.mqttTopicsToSubscribe)},unmounted(){this.mqttTopicsToSubscribe.length>0&&this.$root.doUnsubscribe(this.mqttTopicsToSubscribe)},methods:{updateState(e,t,n=void 0){console.debug("updateState:",e,t,n),this.$store.commit({type:"updateTopic",topic:e,objectPath:n,payload:t})},ac_current2dc_power(e){return parseFloat((e*3*230/1e3).toFixed(0))},dc_power2ac_current(e){return parseFloat((e*1e3/230/3).toFixed(2))},getWildcardIndexList(e,t=!1){let n=e;t||(n="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$");let d=Object.keys(this.$store.state.mqtt).filter(l=>l.match(n));return d.forEach((l,s,o)=>{o[s]=parseInt(l.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,""))}),d},getWildcardTopics(e,t=!1){let n=e;return t||(n="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(this.$store.state.mqtt).filter(d=>d.match(n)).reduce((d,l)=>({...d,[l]:this.$store.state.mqtt[l]}),{})},formatDate(e,t={year:"numeric",month:"2-digit",day:"2-digit"}){return new Date(e).toLocaleDateString(void 0,t)},formatNumber(e,t=0,n=t,d=1){if(!(e==null||isNaN(e)))return e=e*d,e.toLocaleString(void 0,{minimumFractionDigits:t,maximumFractionDigits:n})},formatNumberTopic(e,t=0,n=t,d=1){return this.$store.state.mqtt[e]?this.formatNumber(this.$store.state.mqtt[e],t,n,d):"-"},formatPhaseArrayNumberTopic(e,t=0,n=t,d=1){return this.$store.state.mqtt[e]?this.$store.state.mqtt[e].map(l=>this.formatNumber(l,t,n,d)):["-","-","-"]},translateChargeMode(e){switch(e){case"instant_charging":return"Sofort";case"pv_charging":return"PV";case"scheduled_charging":return"Zielladen";case"time_charging":return"Zeitladen";case"eco_charging":return"Eco";case"standby":return"Standby";case"stop":return"Stop";default:return console.warn("unknown charge mode:",e),e}},getFaultStateSubtype(e){const t=this.$store.state.mqtt[e+"/get/fault_state"];if(t===void 0)return"warning";switch(t){case 0:return"success";case 1:return"warning";case 2:return"danger";default:return"dark"}}}},Q=y($o,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/mixins/ComponentState.vue"]]);$.add(Re,Ne);const Co={name:"OpenwbPageMessages",components:{FontAwesomeIcon:C,FontAwesomeLayers:ze,FontAwesomeLayersText:Fe},mixins:[Q],data(){return{mqttTopicsToSubscribe:["openWB/system/messages/+","openWB/command/"+this.$root.mqttClientId+"/messages/+"],showAllMessages:!1,hiddenMessages:[]}},computed:{alertLevel(){return this.messages.reduce((t,n)=>((t=="light"&&["info","success","warning","danger"].includes(n.type)||t=="info"&&["success","warning","danger"].includes(n.type)||t=="success"&&["warning","danger"].includes(n.type)||t=="warning"&&n.type=="danger")&&(t=n.type),t),"light")},messages(){const e=[];return this.systemMessages.forEach(t=>{e.push(t)}),this.clientMessages.forEach(t=>{e.push(t)}),e.sort(this.compareMessagesByTimestamp),e},recentMessages(){return this.showAllMessages?this.messages:this.messages.filter(e=>!this.hiddenMessages.includes(e.topic))},messageIndicatorClass(){return"text-"+this.alertLevel},systemMessages(){let e=this.getWildcardTopics("openWB/system/messages/+");var t=[];for(const[n,d]of Object.entries(e))t.push({topic:n,...d});return t},clientMessages(){let e=this.getWildcardTopics("openWB/command/"+this.$root.mqttClientId+"/messages/+");var t=[];for(const[n,d]of Object.entries(e))t.push({topic:n,...d});return t}},methods:{toggleAllMessages(){this.showAllMessages=!this.showAllMessages},compareMessagesByTimestamp(e,t){return t.timestamp-e.timestamp},clearTopic(e){this.$root.doPublish(e,void 0)},dismissMessage(e){this.clearTopic(e.topic);var t=this.hiddenMessages.indexOf(e.topic);t>-1&&this.hiddenMessages.splice(t,1)},dismissAllMessages(){this.messages.forEach(e=>{this.clearTopic(e.topic)}),this.hiddenMessages=[],this.toggleAllMessages()},hideMessage(e){this.hiddenMessages.includes(e.topic)||this.hiddenMessages.push(e.topic)}}},Io=["innerHTML"];function To(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("font-awesome-layers-text"),r=b("font-awesome-layers"),w=b("openwb-base-alert"),V=b("openwb-base-click-button"),D=b("openwb-base-toast");return i(),u(T,null,[(i(),h(F,{to:"body"},[a("div",{id:"message-indicator",class:S(["text-light mt-1 p-2 mr-1 clickable",l.showAllMessages?"active":""]),onClick:t[0]||(t[0]=(...P)=>s.toggleAllMessages&&s.toggleAllMessages(...P))},[_(r,{"full-width":"",style:{"font-size":"175%"}},{default:c(()=>[_(o,{icon:l.showAllMessages?["fas","bell"]:["far","bell"],class:S(s.messageIndicatorClass)},null,8,["icon","class"]),s.messages.length>0?(i(),h(m,{key:0,counter:"",value:s.messages.length,position:"top-right",class:"message-counter bg-light text-dark"},null,8,["value"])):p("",!0)]),_:1})],2)])),s.recentMessages.length>0||l.showAllMessages?(i(),u("div",{key:0,class:S(["openwb-toast-container",l.showAllMessages?"full-height":""])},[s.recentMessages.length==0?(i(),h(w,{key:0,subtype:"info"},{default:c(()=>t[1]||(t[1]=[f(" Keine Nachrichten vorhanden. ",-1)])),_:1,__:[1]})):l.showAllMessages?(i(),h(V,{key:1,class:"btn-sm btn-secondary mb-1",onButtonClicked:s.dismissAllMessages},{default:c(()=>t[2]||(t[2]=[f(" Alle Nachrichten löschen ",-1)])),_:1,__:[2]},8,["onButtonClicked"])):p("",!0),(i(!0),u(T,null,x(s.recentMessages,P=>(i(),h(D,{key:P.topic,topic:P.topic,source:P.source,subtype:P.type,timestamp:P.timestamp,onDismiss:s.dismissMessage,onHide:s.hideMessage},{default:c(()=>[a("span",{innerHTML:P.message},null,8,Io)]),_:2},1032,["topic","source","subtype","timestamp","onDismiss","onHide"]))),128))],2)):p("",!0)],64)}const Vo=y(Co,[["render",To],["__scopeId","data-v-2c25f0d0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageMessages.vue"]]),Ao={name:"OpenwbPageBlocker",mixins:[Q],data(){return{mqttTopicsToSubscribe:["openWB/system/boot_done","openWB/system/update_in_progress"]}},computed:{title(){return this.bootInProgress||this.updateInProgress?"openWB ist noch nicht bereit":this.reloadRequired?"Neues Laden der Seite erforderlich":"???"},myButtons(){return!(this.bootInProgress||this.updateInProgress)&&this.reloadRequired?[{text:"Jetzt neu laden",subtype:"success",event:"reload"}]:[]},bootInProgress(){return this.$store.state.mqtt["openWB/system/boot_done"]==null?!0:!this.$store.state.mqtt["openWB/system/boot_done"]},updateInProgress(){return this.$store.state.mqtt["openWB/system/update_in_progress"]==null?!1:this.$store.state.mqtt["openWB/system/update_in_progress"]},reloadRequired(){return this.$store.state.local.reloadRequired},showModalBlocker(){return this.bootInProgress||this.updateInProgress||this.reloadRequired}},methods:{handleModalResult(e){e=="reload"?location.reload():console.warn("unknown event",e)}}},Mo={class:"openwb-blocker"},Po={key:0},xo={key:1},qo={key:2},Do={key:3};function Eo(e,t,n,d,l,s){const o=b("openwb-base-modal-dialog");return i(),u("div",Mo,[_(o,{show:s.showModalBlocker,title:s.title,subtype:"dark","prevent-close":!0,buttons:s.myButtons,onModalResult:t[0]||(t[0]=m=>s.handleModalResult(m))},{default:c(()=>[s.bootInProgress?(i(),u("p",Po,"Der Systemstart ist noch nicht abgeschlossen.")):p("",!0),s.updateInProgress?(i(),u("p",xo,"Es wird eine Systemaktualisierung ausgeführt.")):p("",!0),!(s.bootInProgress||s.updateInProgress)&&s.reloadRequired?(i(),u("p",qo,"Bitte die Seite neu laden.")):(i(),u("p",Do,"Bitte warten..."))]),_:1},8,["show","title","buttons"])])}const Lo=y(Ao,[["render",Eo],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageBlocker.vue"]]);const jo={name:"OpenwbSettingsApp",components:{NavBar:yo,PageFooter:Bo,Messages:Vo,Blocker:Lo},data(){return{client:{connected:!1},connection:{protocol:location.protocol=="https:"?"wss":"ws",host:location.hostname,port:parseInt(location.port)||(location.protocol=="https:"?443:80),endpoint:"/ws",connectTimeout:4e3,reconnectPeriod:4e3}}},computed:{mqttClientId(){try{return this.client.options.clientId}catch(e){console.error("mqttClientId error",e);return}},topicList(){return Object.keys(this.$store.state.mqtt)}},created(){this.createConnection()},methods:{async saveValues(e=void 0){function t(d){return new Promise(l=>setTimeout(l,d))}this.$store.state.local.savingData=!0;let n={};e===void 0?(console.debug("no topics defined, so save everything we have in store"),n=this.$store.state.mqtt):Array.isArray(e)?e.forEach(d=>{n[d]=this.$store.state.mqtt[d]}):console.error("expected array, got ",typeof e);for(const[d,l]of Object.entries(n)){let s=d.replace("openWB/","openWB/set/");console.debug("saving data:",s,l),this.doPublish(s,l),await t(100)}this.$store.state.local.savingData=!1},resetValues(e=this.topicList){console.debug("resetting values..."),console.debug("topics: ",e),this.doUnsubscribe(e),this.doSubscribe(e)},setDefaultValues(){console.debug("setting default values... (ToDo)")},sendCommand(e){console.debug("sendCommand:",e),this.doPublish("openWB/set/command/"+this.client.options.clientId+"/todo",e,!1)},createConnection(){const{protocol:e,host:t,port:n,endpoint:d,...l}=this.connection,s=`${e}://${t}:${n}${d}`;console.debug("connecting to broker:",s);try{this.client=ie.connect(s,l)}catch(o){console.error("mqtt.connect error",o)}this.client.on("connect",()=>{console.debug("Connection succeeded! ClientId: ",this.client.options.clientId),this.doSubscribe(["openWB/system/usage_terms_acknowledged"]),this.doSubscribe(["openWB/system/installAssistantDone"])}),this.client.on("error",o=>{console.error("Connection failed",o)}),this.client.on("message",(o,m)=>{if(m.toString().length>0){let r;try{r=JSON.parse(m.toString())}catch(w){console.debug("Json parsing failed, fallback to string: ",o,w),r=m.toString()}this.$store.commit("updateTopic",{topic:o,payload:r})}else this.$store.commit("removeTopic",o)})},doSubscribe(e){e.forEach(t=>{this.$store.commit("addSubscription",t),this.$store.getters.subscriptionCount(t)==1?(t.includes("#")||t.includes("+")?console.debug("skipping init of wildcard topic:",t):this.$store.commit("addTopic",{topic:t,payload:void 0}),this.client.subscribe(t,{},n=>{if(n){console.error("Subscribe to topics error",n);return}})):console.debug("Already subscribed to topic: ",t)})},doUnsubscribe(e){e.forEach(t=>{this.$store.commit("removeSubscription",t),this.$store.getters.subscriptionCount(t)==0?(this.client.unsubscribe(t,n=>{n&&console.error("Unsubscribe error",n)}),t.includes("#")||t.includes("+")?(console.debug("expanding wildcard topic:",t),Object.keys(this.getWildcardTopics(t)).forEach(n=>{console.debug("removing wildcardTopic:",n),this.$store.commit("removeTopic",n)})):(console.debug("removing topic:",t),this.$store.commit("removeTopic",t))):console.debug("Still subscribed to topic: ",t)})},doPublish(e,t,n=!0,d=2){let l={qos:d,retain:n};this.client.publish(e,JSON.stringify(t),l,s=>{s&&console.error("Publish error",s)})},postClientMessage(e,t="secondary"){console.debug("postMessage:",e,t);const n=Date.now(),d="openWB/command/"+this.mqttClientId+"/messages/"+n;this.$store.commit({type:"addTopic",topic:d,payload:{message:e,type:t,source:"client",timestamp:Math.floor(n/1e3)}})},getWildcardTopics(e,t=!1){let n=e;return t||(n="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(this.$store.state.mqtt).filter(d=>d.match(n)).reduce((d,l)=>({...d,[l]:this.$store.state.mqtt[l]}),{})}}},Wo={role:"main",class:"container"},Ro={id:"content"};function No(e,t,n,d,l,s){const o=b("nav-bar"),m=b("router-view"),r=b("page-footer"),w=b("messages"),V=b("blocker");return i(),u(T,null,[a("header",null,[_(o)]),a("div",Wo,[a("div",Ro,[a("h1",null,v(e.$route.meta.heading),1),_(m,{onSave:s.saveValues,onReset:s.resetValues,onDefaults:s.setDefaultValues,onSendCommand:s.sendCommand},null,8,["onSave","onReset","onDefaults","onSendCommand"])])]),_(r),_(w),_(V)],64)}const zo=y(jo,[["render",No],["__file","/opt/openWB-dev/openwb-ui-settings/src/App.vue"]]),Fo="modulepreload",Ho=function(e){return"/openWB/web/settings/"+e},z={},k=function(t,n,d){if(!n||n.length===0)return t();const l=document.getElementsByTagName("link");return Promise.all(n.map(s=>{if(s=Ho(s),s in z)return;z[s]=!0;const o=s.endsWith(".css"),m=o?'[rel="stylesheet"]':"";if(!!d)for(let V=l.length-1;V>=0;V--){const D=l[V];if(D.href===s&&(!o||D.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${s}"]${m}`))return;const w=document.createElement("link");if(w.rel=o?"stylesheet":Fo,o||(w.as="script",w.crossOrigin=""),w.href=s,document.head.appendChild(w),o)return new Promise((V,D)=>{w.addEventListener("load",V),w.addEventListener("error",()=>D(new Error(`Unable to preload CSS for ${s}`)))})})).then(()=>t()).catch(s=>{const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=s,window.dispatchEvent(o),!o.defaultPrevented)throw s})};let Y={mqtt:{},mqttSubscriptions:{},local:{reloadRequired:!1,savingData:!1}};Y.examples={text1:"Text...",text2:"mail@domain.com",text3:"openwb.local",text4:"http://www.openwb.de",text5:"Benutzername",text6:"12:34",text7:"2021-10-31",color1:"#ff0000",color2:"#0000ff",number1:5,number2:10,number3:28e-5,password1:"GeHeiM!",textarea1:"Langer Text...",range1:6,range2:10,select1:1,select2:void 0,buttonGroup1:1,checkbox1:!0,json1:{text:"Text",number:123},hierarchy1:[{id:0,type:"counter",children:[{id:3,type:"inverter",children:[]},{id:4,type:"bat",children:[]},{id:1,type:"cp",children:[]},{id:2,type:"cp",children:[]}]}],hierarchy1Labels:{0:"EVU",1:"Ladepunkt 1",2:"Ladepunkt 2",3:"Wechselrichter",4:"Batteriespeicher"},tags:["1234","2345","3456"],ioConfig:{active:!1,pattern:[null,!1,!0],action:{value:"stop_all",options:null}}};const L=le({state:Y,mutations:{storeLocal(e,t){e.local[t.name]=t.value},addTopic(e,t){Object.keys(e.mqtt).includes(t.topic)?console.warn("topic already exists: ",t.topic):e.mqtt[t.topic]=t.payload},removeTopic(e,t){delete e.mqtt[t]},updateTopic(e,t){const n=(d,l,s)=>l.split(".").reduce((o,m,r)=>o[m]=l.split(".").length===++r?s:o[m]||{},d);t.topic in e.mqtt||!(t.topic in e.examples)?t.objectPath!=null?n(e.mqtt[t.topic],t.objectPath,t.payload):e.mqtt[t.topic]=t.payload:(console.debug("topic not found in state.mqtt: ",t.topic),t.topic in e.examples?t.objectPath!=null?n(e.examples[t.topic],t.objectPath,t.payload):e.examples[t.topic]=t.payload:console.warn("topic not found in state: ",t.topic," giving up"))},addSubscription(e,t){t in e.mqttSubscriptions?e.mqttSubscriptions[t]+=1:e.mqttSubscriptions[t]=1,console.debug("subscription count: ",t,e.mqttSubscriptions[t])},removeSubscription(e,t){t in e.mqttSubscriptions&&(e.mqttSubscriptions[t]-=1,e.mqttSubscriptions[t]<=0&&delete e.mqttSubscriptions[t])}},actions:{},modules:{},getters:{usageTermsAcknowledged(e){return new Promise(t=>{if(e.mqtt["openWB/system/usage_terms_acknowledged"]!==void 0)t(e.mqtt["openWB/system/usage_terms_acknowledged"]);else{var n,d;n=setTimeout(()=>{clearInterval(d),t(!1)},5e3),d=setInterval(()=>{e.mqtt["openWB/system/usage_terms_acknowledged"]!==void 0&&(clearTimeout(n),clearInterval(d),t(e.mqtt["openWB/system/usage_terms_acknowledged"]))},100)}})},installAssistantDone(e){return new Promise(t=>{if(e.mqtt["openWB/system/installAssistantDone"]!==void 0)t(e.mqtt["openWB/system/installAssistantDone"]);else{var n,d;n=setTimeout(()=>{clearInterval(d),t(!1)},5e3),d=setInterval(()=>{e.mqtt["openWB/system/installAssistantDone"]!==void 0&&(clearTimeout(n),clearInterval(d),t(e.mqtt["openWB/system/installAssistantDone"]))},100)}})},subscriptionCount:e=>t=>e.mqttSubscriptions[t]||0}}),X=[{path:"/",redirect:"/GeneralConfig"},{path:"/Status",name:"Status",meta:{heading:"Status"},component:()=>k(()=>import("./Status-76832ed9.js"),["assets/Status-76832ed9.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-chartjs-94a826eb.js","assets/vendor-luxon-cc86f6dc.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/Status-a4f24178.css"])},{path:"/Logging/ChargeLog",name:"ChargeLog",meta:{heading:"Auswertungen - Ladeprotokoll"},component:()=>k(()=>import("./ChargeLog-40aaca0a.js"),["assets/ChargeLog-40aaca0a.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/ChargeLog-1fb3fa68.css"])},{path:"/Logging/Chart/:chartRange?/:initialDate?",name:"DailyChart",meta:{heading:"Auswertungen - Diagramme"},component:()=>k(()=>import("./Chart-0e7a4a70.js"),["assets/Chart-0e7a4a70.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-chartjs-94a826eb.js","assets/vendor-luxon-cc86f6dc.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/Chart-e20451b4.css"])},{path:"/GeneralConfig",name:"GeneralConfig",meta:{heading:"Einstellungen - Allgemein"},component:()=>k(()=>import("./GeneralConfig-cc87a1f9.js").then(e=>e.a),["assets/GeneralConfig-cc87a1f9.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/IdentificationConfig",name:"IdentificationConfig",meta:{heading:"Einstellungen - Identifikation"},component:()=>k(()=>import("./IdentificationConfig-a3531ccb.js"),["assets/IdentificationConfig-a3531ccb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/OptionalComponents",name:"OptionalComponents",meta:{heading:"Einstellungen - Display"},component:()=>k(()=>import("./OptionalComponents-a2c47c92.js").then(e=>e.O),["assets/OptionalComponents-a2c47c92.js","assets/dynamic-import-helper-be004503.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css"])},{path:"/GeneralChargeConfig",name:"GeneralChargeConfig",meta:{heading:"Ladeeinstellungen - Übergreifendes"},component:()=>k(()=>import("./GeneralChargeConfig-d70b0d95.js").then(e=>e.G),["assets/GeneralChargeConfig-d70b0d95.js","assets/dynamic-import-helper-be004503.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css"])},{path:"/PVChargeConfig",name:"PVChargeConfig",meta:{heading:"Ladeeinstellungen - PV-Laden"},component:()=>k(()=>import("./PVChargeConfig-b6b84699.js"),["assets/PVChargeConfig-b6b84699.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/HardwareInstallation",name:"HardwareInstallation",meta:{heading:"Konfiguration - Geräte und Komponenten"},component:()=>k(()=>import("./HardwareInstallation-be759b0c.js").then(e=>e.a),["assets/HardwareInstallation-be759b0c.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/LoadManagementConfiguration",name:"LoadManagementConfiguration",meta:{heading:"Konfiguration - Lastmanagement"},component:()=>k(()=>import("./LoadManagementConfig-61263fe6.js"),["assets/LoadManagementConfig-61263fe6.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/OpenwbSortableList-c7b5b151.js","assets/OpenwbSortableList-7ba533e4.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/ChargePointInstallation",name:"ChargePointInstallation",meta:{heading:"Konfiguration - Ladepunkte"},component:()=>k(()=>import("./ChargePointInstallation-7e22d920.js").then(e=>e.c),["assets/ChargePointInstallation-7e22d920.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js","assets/ChargePointInstallation-7b9399a8.css"])},{path:"/VehicleConfiguration/:section?/:section_index?/:section_part?/:action?",name:"VehicleConfiguration",meta:{heading:"Konfiguration - Fahrzeuge"},component:()=>k(()=>import("./VehicleConfig-c6e5b45b.js").then(e=>e.b),["assets/VehicleConfig-c6e5b45b.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/IoConfiguration",name:"IoConfiguration",meta:{heading:"Konfiguration - Ein- und Ausgänge"},component:()=>k(()=>import("./IoConfig-38958e2e.js").then(e=>e.b),["assets/IoConfig-38958e2e.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/System/CloudConfiguration",name:"CloudConfig",meta:{heading:"System - openWB Cloud"},component:()=>k(()=>import("./CloudConfig-1f382920.js"),["assets/CloudConfig-1f382920.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/System/MqttBridgeConfiguration",name:"MqttBridgeConfig",meta:{heading:"System - MQTT-Brücken"},component:()=>k(()=>import("./MqttBridgeConfig-59050cb8.js"),["assets/MqttBridgeConfig-59050cb8.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/System/DebugConfiguration",name:"Debugging",meta:{heading:"System - Fehlersuche"},component:()=>k(()=>import("./DebugConfig-044b24f7.js"),["assets/DebugConfig-044b24f7.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-axios-ac33d60c.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/DebugConfig-e21ab72c.css"])},{path:"/System/Support",name:"Support",meta:{heading:"System - Support"},component:()=>k(()=>import("./Support-25ac4d94.js"),["assets/Support-25ac4d94.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/System/LegalSettings",name:"LegalSettings",meta:{heading:"System - Rechtliches"},component:()=>k(()=>import("./LegalSettings-20201125.js"),["assets/LegalSettings-20201125.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/System/SystemConfiguration",name:"SystemConfig",meta:{heading:"System - System"},component:()=>k(()=>import("./System-9f60a387.js"),["assets/System-9f60a387.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/System-f301c290.css"])},{path:"/System/DataManagement",name:"DataManagement",meta:{heading:"System - Datenverwaltung"},component:()=>k(()=>import("./DataManagement-52054445.js").then(e=>e.a),["assets/DataManagement-52054445.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/System/InstallAssistant",name:"InstallAssistant",meta:{heading:"System - Einrichtungsassistent"},component:()=>k(()=>import("./InstallAssistant-56db2231.js"),["assets/InstallAssistant-56db2231.js","assets/dynamic-import-helper-be004503.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])}];X.push({path:"/TestingStore",name:"VUEX Store",meta:{heading:"Beispiele - VUEX Store"},component:()=>k(()=>import("./TestingStore-3a739645.js"),["assets/TestingStore-3a739645.js","assets/OpenwbSortableList-c7b5b151.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/OpenwbSortableList-7ba533e4.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])});const W=re({history:de(),routes:X});W.beforeEach(async e=>{if(await L.getters.usageTermsAcknowledged){if(!await L.getters.installAssistantDone&&e.name!=="InstallAssistant")return{name:"InstallAssistant"}}else if(e.name!=="LegalSettings")return{name:"LegalSettings"}});W.afterEach(e=>{e.meta.heading?document.title="openWB | "+e.meta.heading:document.title="openWB"});const R=ue(zo);R.use(L).use(W).use(He,Ue);const Uo=Object.assign({"./components/OpenwbBaseAlert.vue":Ze,"./components/OpenwbBaseArrayInput.vue":mt,"./components/OpenwbBaseAvatar.vue":ht,"./components/OpenwbBaseButtonGroupInput.vue":Ot,"./components/OpenwbBaseButtonInput.vue":Mt,"./components/OpenwbBaseCard.vue":Nt,"./components/OpenwbBaseCheckboxInput.vue":Gt,"./components/OpenwbBaseClickButton.vue":It,"./components/OpenwbBaseColorPicker.vue":Xt,"./components/OpenwbBaseCopyToClipboard.vue":un,"./components/OpenwbBaseHeading.vue":hn,"./components/OpenwbBaseIoPattern.vue":kn,"./components/OpenwbBaseModalDialog.vue":An,"./components/OpenwbBaseNumberInput.vue":Nn,"./components/OpenwbBaseRangeInput.vue":Qn,"./components/OpenwbBaseSelectInput.vue":us,"./components/OpenwbBaseSettingElement.vue":nt,"./components/OpenwbBaseSubmitButtons.vue":hs,"./components/OpenwbBaseTextInput.vue":Ds,"./components/OpenwbBaseTextarea.vue":Gs,"./components/OpenwbBaseToast.vue":Xs});Object.entries(Uo).forEach(([e,t])=>{const n=ce(pe(e.split("/").pop().replace(/\.\w+$/,"")));R.component(n,t.default)});R.mount("#app");export{Q as C,M as O,k as _}; diff --git a/web/settings/assets/inverter-00436be2.js b/web/settings/assets/inverter-00436be2.js deleted file mode 100644 index c4d8c09e0c..0000000000 --- a/web/settings/assets/inverter-00436be2.js +++ /dev/null @@ -1 +0,0 @@ -import{C as a}from"./HardwareInstallation-35a2a562.js";import{_ as p,u as n,l as m,m as c,G as t,E as u,B as d}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceKacoInverter",mixins:[a]},_={class:"device-kaco-inverter"};function b(o,e,f,v,g,x){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),c("div",_,[t(i,null,{default:u(()=>[...e[1]||(e[1]=[d(" Einstellungen für Kaco Wechselrichter ",-1)])]),_:1}),t(r,{title:"Kaco-Modbus-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_tx/inverter.vue"]]);export{D as default}; diff --git a/web/settings/assets/inverter-01923309.js b/web/settings/assets/inverter-01923309.js new file mode 100644 index 0000000000..1a0a04a82c --- /dev/null +++ b/web/settings/assets/inverter-01923309.js @@ -0,0 +1 @@ +import{C as m}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as o,l as u,m as l,G as t,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSigenergyInverter",mixins:[m]},_={class:"device-sigenergy-inverter"};function c(n,e,b,f,v,w){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return u(),l("div",_,[t(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für Sigenergy Wechselrichter ",-1)])),_:1,__:[1]}),t(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},{help:i(()=>e[2]||(e[2]=[r(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])),_:1},8,["model-value"])])}const M=d(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/inverter.vue"]]);export{M as default}; diff --git a/web/settings/assets/inverter-0b8cbadd.js b/web/settings/assets/inverter-0b8cbadd.js new file mode 100644 index 0000000000..6f0c836ceb --- /dev/null +++ b/web/settings/assets/inverter-0b8cbadd.js @@ -0,0 +1 @@ +import{C as r}from"./HardwareInstallation-be759b0c.js";import{_ as n,u as s,l as o,m as i,G as a,E as p,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceVartaInverter",mixins:[r]},d={class:"varta-inverter"};function _(l,e,u,v,f,b){const t=s("openwb-base-alert");return o(),i("div",d,[a(t,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[c(" Die Leistung des Wechselrichters ist nur verfügbar, wenn dieser über Sensor an Varta angebunden ist. Wechselrichter die per Modbus mit dem Speicher kommunizieren lassen sich nicht über den Varta PV-Sensor auslesen. ",-1)])),_:1,__:[0]})])}const S=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/varta/inverter.vue"]]);export{S as default}; diff --git a/web/settings/assets/inverter-0e843ffe.js b/web/settings/assets/inverter-0e843ffe.js deleted file mode 100644 index fdd1b9f574..0000000000 --- a/web/settings/assets/inverter-0e843ffe.js +++ /dev/null @@ -1 +0,0 @@ -import{C as l}from"./HardwareInstallation-35a2a562.js";import{_ as u,u as n,l as d,m as c,G as o,E as r,B as i}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSmahmInverter",mixins:[l]},f={class:"device-smahm-inverter"};function b(t,e,v,g,h,w){const s=n("openwb-base-heading"),a=n("openwb-base-alert"),m=n("openwb-base-number-input");return d(),c("div",f,[o(s,null,{default:r(()=>[...e[1]||(e[1]=[i(" Einstellungen für SMA-HM/EM Wechselrichter ",-1)])]),_:1}),o(a,{subtype:"info"},{default:r(()=>[...e[2]||(e[2]=[i(' Dies ist nur die richtige Komponente, wenn ein extra EnergyMeter ausschließlich für die PV-Messung vorhanden ist. Wenn nur ein HomeManager vorhanden ist, muss ein Gerät "SMA Sunny Boy" mit der entsprechenden Wechselrichter-Komponente angelegt werden. ',-1)])]),_:1}),o(m,{title:"Seriennummer",required:"","model-value":t.component.configuration.serials,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.serials"))},null,8,["model-value"])])}const $=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_shm/inverter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/inverter-1484b10b.js b/web/settings/assets/inverter-1484b10b.js new file mode 100644 index 0000000000..f7bdb4930f --- /dev/null +++ b/web/settings/assets/inverter-1484b10b.js @@ -0,0 +1 @@ +import{C as a}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as t,l as u,m as l,G as n,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceKostalPikoInverter",mixins:[a]},_={class:"device-kostal-piko-inverter"};function f(o,e,b,v,g,k){const i=t("openwb-base-heading"),r=t("openwb-base-button-group-input");return u(),l("div",_,[n(i,null,{default:m(()=>e[1]||(e[1]=[c(" Einstellungen für Kostal Piko Wechselrichter ",-1)])),_:1,__:[1]}),n(r,{title:"Speicher",buttons:[{buttonValue:!1,text:"nicht vorhanden"},{buttonValue:!0,text:"vorhanden"}],"model-value":o.component.configuration.bat_configured,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.bat_configured"))},null,8,["model-value"])])}const N=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/inverter.vue"]]);export{N as default}; diff --git a/web/settings/assets/inverter-157ed243.js b/web/settings/assets/inverter-157ed243.js deleted file mode 100644 index 4da01a2ef6..0000000000 --- a/web/settings/assets/inverter-157ed243.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-35a2a562.js";import{_ as a,u as n,l as m,m as d,G as t,E as u,B as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceDeyeInverter",mixins:[p]},_={class:"device-deye-inverter"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),d("div",_,[t(i,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für Deye Wechselrichter ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const k=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/inverter.vue"]]);export{k as default}; diff --git a/web/settings/assets/inverter-18ce5bf2.js b/web/settings/assets/inverter-18ce5bf2.js deleted file mode 100644 index d186b01abe..0000000000 --- a/web/settings/assets/inverter-18ce5bf2.js +++ /dev/null @@ -1 +0,0 @@ -import{C as r}from"./HardwareInstallation-35a2a562.js";import{_ as p,u as o,l,m as u,G as n,E as c,B as m}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceKostalStecaInverter",mixins:[r]},_={class:"device-kostal-steca-inverter"};function f(t,e,v,b,g,k){const a=o("openwb-base-heading"),i=o("openwb-base-button-group-input");return l(),u("div",_,[n(a,null,{default:c(()=>[...e[1]||(e[1]=[m(" Einstellungen für Kostal Piko MP oder Steca Grid Coolcept Wechselrichter ",-1)])]),_:1}),n(i,{title:"Variante",buttons:[{buttonValue:!1,text:"Kostal Piko MP (non-plus)"},{buttonValue:!0,text:"Kostal Piko MP oder Steca Grid Coolcept"}],"model-value":t.component.configuration.variant_steca,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.variant_steca"))},null,8,["model-value"])])}const h=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_steca/inverter.vue"]]);export{h as default}; diff --git a/web/settings/assets/inverter-1dc39de7.js b/web/settings/assets/inverter-1dc39de7.js deleted file mode 100644 index 2c6ddadd6c..0000000000 --- a/web/settings/assets/inverter-1dc39de7.js +++ /dev/null @@ -1 +0,0 @@ -import{C as r}from"./HardwareInstallation-35a2a562.js";import{_ as n,u as s,l as o,m as i,G as a,E as p,B as c}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceVartaInverter",mixins:[r]},d={class:"varta-inverter"};function _(l,e,u,v,f,b){const t=s("openwb-base-alert");return o(),i("div",d,[a(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[c(" Die Leistung des Wechselrichters ist nur verfügbar, wenn dieser über Sensor an Varta angebunden ist. Wechselrichter die per Modbus mit dem Speicher kommunizieren lassen sich nicht über den Varta PV-Sensor auslesen. ",-1)])]),_:1})])}const S=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/varta/inverter.vue"]]);export{S as default}; diff --git a/web/settings/assets/inverter-218dfb39.js b/web/settings/assets/inverter-218dfb39.js new file mode 100644 index 0000000000..4d5633989e --- /dev/null +++ b/web/settings/assets/inverter-218dfb39.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as o,l,m,G as n,E as u,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbPvkitInverter",mixins:[p]},v={class:"device-openwb-pvkit-inverter"};function _(t,e,f,b,w,g){const i=o("openwb-base-heading"),r=o("openwb-base-select-input");return l(),m("div",v,[n(i,null,{default:u(()=>e[1]||(e[1]=[c(" Einstellungen für openWB PV-Kit Wechselrichter ",-1)])),_:1,__:[1]}),n(r,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.version"))},null,8,["model-value"])])}const $=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_pv_kit/inverter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/inverter-22f3c475.js b/web/settings/assets/inverter-22f3c475.js deleted file mode 100644 index 22e20d781b..0000000000 --- a/web/settings/assets/inverter-22f3c475.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-35a2a562.js";import{_ as a,u as o,l,m,G as n,E as u,B as c}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbPvkitInverter",mixins:[p]},v={class:"device-openwb-pvkit-inverter"};function _(t,e,f,b,w,g){const i=o("openwb-base-heading"),r=o("openwb-base-select-input");return l(),m("div",v,[n(i,null,{default:u(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB PV-Kit Wechselrichter ",-1)])]),_:1}),n(r,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.version"))},null,8,["model-value"])])}const $=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_pv_kit/inverter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/inverter-254014f2.js b/web/settings/assets/inverter-254014f2.js new file mode 100644 index 0000000000..927b4c46e4 --- /dev/null +++ b/web/settings/assets/inverter-254014f2.js @@ -0,0 +1 @@ +import{C as a}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as o,l as p,m as l,G as n,E as d,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSmartMeInverter",mixins:[a]},c={class:"device-smart-me-inverter"};function f(t,e,v,b,g,x){const r=o("openwb-base-heading"),i=o("openwb-base-text-input");return p(),l("div",c,[n(r,null,{default:d(()=>e[1]||(e[1]=[u(" Einstellungen für smart-me Wechselrichter ",-1)])),_:1,__:[1]}),n(i,{title:"Geräte-ID",required:"","model-value":t.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const G=m(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/inverter.vue"]]);export{G as default}; diff --git a/web/settings/assets/inverter-2e0b66fa.js b/web/settings/assets/inverter-2e0b66fa.js deleted file mode 100644 index 1f01eb2142..0000000000 --- a/web/settings/assets/inverter-2e0b66fa.js +++ /dev/null @@ -1 +0,0 @@ -import{C as m}from"./HardwareInstallation-35a2a562.js";import{_ as d,u as o,l as u,m as l,G as t,E as i,B as r}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSigenergyInverter",mixins:[m]},_={class:"device-sigenergy-inverter"};function c(n,e,b,f,v,w){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return u(),l("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für Sigenergy Wechselrichter ",-1)])]),_:1}),t(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[r(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])]),_:1},8,["model-value"])])}const M=d(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/inverter.vue"]]);export{M as default}; diff --git a/web/settings/assets/inverter-2e642f10.js b/web/settings/assets/inverter-2e642f10.js new file mode 100644 index 0000000000..fe0571f7e8 --- /dev/null +++ b/web/settings/assets/inverter-2e642f10.js @@ -0,0 +1 @@ +import{C as s}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as a,l as p,m,G as o,E as l,B as i,A as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceJsonInverter",mixins:[s]},b={class:"device-json-inverter"};function v(n,e,w,_,c,j){const u=a("openwb-base-heading"),r=a("openwb-base-text-input");return p(),m("div",b,[o(u,null,{default:l(()=>e[5]||(e[5]=[i(" Einstellungen für JSON Wechselrichter ",-1)])),_:1,__:[5]}),o(r,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":n.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.jq_power"))},{help:l(()=>e[6]||(e[6]=[i(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),f("br",null,null,-1),i(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) ",-1)])),_:1},8,["model-value"]),o(r,{title:"Abfrage für Zählerstand",subtype:"text","model-value":n.component.configuration.jq_exported,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.jq_exported"))},{help:l(()=>e[7]||(e[7]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])),_:1},8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":n.component.configuration.jq_current_l1,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.jq_current_l1"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":n.component.configuration.jq_current_l2,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.jq_current_l2"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":n.component.configuration.jq_current_l3,"onUpdate:modelValue":e[4]||(e[4]=t=>n.updateConfiguration(t,"configuration.jq_current_l3"))},null,8,["model-value"])])}const k=d(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/inverter.vue"]]);export{k as default}; diff --git a/web/settings/assets/inverter-31446a68.js b/web/settings/assets/inverter-31446a68.js new file mode 100644 index 0000000000..014857b77f --- /dev/null +++ b/web/settings/assets/inverter-31446a68.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceFoxEssInverter",mixins:[p]},c={class:"device-fox_ess-inverter"};function f(o,e,b,v,x,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>e[1]||(e[1]=[_(" Einstellungen für FoxEss Wechselrichter ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const F=a(l,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/inverter.vue"]]);export{F as default}; diff --git a/web/settings/assets/inverter-32f9b72e.js b/web/settings/assets/inverter-32f9b72e.js deleted file mode 100644 index 291bd58e6c..0000000000 --- a/web/settings/assets/inverter-32f9b72e.js +++ /dev/null @@ -1 +0,0 @@ -import{C as s}from"./HardwareInstallation-35a2a562.js";import{_ as d,u as a,l as p,m,G as o,E as l,B as i,A as f}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceJsonInverter",mixins:[s]},b={class:"device-json-inverter"};function v(n,e,w,c,j,_){const u=a("openwb-base-heading"),r=a("openwb-base-text-input");return p(),m("div",b,[o(u,null,{default:l(()=>[...e[5]||(e[5]=[i(" Einstellungen für JSON Wechselrichter ",-1)])]),_:1}),o(r,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":n.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.jq_power"))},{help:l(()=>[...e[6]||(e[6]=[i(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),f("br",null,null,-1),i(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) ",-1)])]),_:1},8,["model-value"]),o(r,{title:"Abfrage für Zählerstand",subtype:"text","model-value":n.component.configuration.jq_exported,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.jq_exported"))},{help:l(()=>[...e[7]||(e[7]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":n.component.configuration.jq_current_l1,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.jq_current_l1"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":n.component.configuration.jq_current_l2,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.jq_current_l2"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":n.component.configuration.jq_current_l3,"onUpdate:modelValue":e[4]||(e[4]=t=>n.updateConfiguration(t,"configuration.jq_current_l3"))},null,8,["model-value"])])}const k=d(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/inverter.vue"]]);export{k as default}; diff --git a/web/settings/assets/inverter-332388ea.js b/web/settings/assets/inverter-332388ea.js new file mode 100644 index 0000000000..c6c667eeef --- /dev/null +++ b/web/settings/assets/inverter-332388ea.js @@ -0,0 +1 @@ +import{C as s}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as t,l as m,m as l,G as i,E as d,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceVictronInverter",mixins:[s]},_={class:"device-victron-inverter"};function f(o,e,v,g,w,V){const r=t("openwb-base-heading"),p=t("openwb-base-number-input"),u=t("openwb-base-button-group-input");return m(),l("div",_,[i(r,null,{default:d(()=>e[2]||(e[2]=[c(" Einstellungen für Victron Wechselrichter ",-1)])),_:1,__:[2]}),i(p,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(u,{title:"MPPT",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":o.component.configuration.mppt,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.mppt"))},null,8,["model-value"])])}const I=a(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/inverter.vue"]]);export{I as default}; diff --git a/web/settings/assets/inverter-3370b8b6.js b/web/settings/assets/inverter-3370b8b6.js new file mode 100644 index 0000000000..e844b1a11e --- /dev/null +++ b/web/settings/assets/inverter-3370b8b6.js @@ -0,0 +1 @@ +import{C as l}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as n,l as d,m as _,G as o,E as r,B as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmahmInverter",mixins:[l]},f={class:"device-smahm-inverter"};function b(t,e,v,g,h,w){const s=n("openwb-base-heading"),a=n("openwb-base-alert"),m=n("openwb-base-number-input");return d(),_("div",f,[o(s,null,{default:r(()=>e[1]||(e[1]=[i(" Einstellungen für SMA-HM/EM Wechselrichter ",-1)])),_:1,__:[1]}),o(a,{subtype:"info"},{default:r(()=>e[2]||(e[2]=[i(' Dies ist nur die richtige Komponente, wenn ein extra EnergyMeter ausschließlich für die PV-Messung vorhanden ist. Wenn nur ein HomeManager vorhanden ist, muss ein Gerät "SMA Sunny Boy" mit der entsprechenden Wechselrichter-Komponente angelegt werden. ',-1)])),_:1,__:[2]}),o(m,{title:"Seriennummer",required:"","model-value":t.component.configuration.serials,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.serials"))},null,8,["model-value"])])}const $=u(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_shm/inverter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/inverter-3ae089d3.js b/web/settings/assets/inverter-3ae089d3.js deleted file mode 100644 index 7a37536024..0000000000 --- a/web/settings/assets/inverter-3ae089d3.js +++ /dev/null @@ -1 +0,0 @@ -import{C as m}from"./HardwareInstallation-35a2a562.js";import{_ as d,u as o,l as u,m as l,G as t,E as i,B as r}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceEnphaseInverter",mixins:[m]},_={class:"device-enphase-inverter"};function f(n,e,v,b,g,E){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return u(),l("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für Enphase Envoy / IQ Gateway Wechselrichter ",-1)])]),_:1}),t(p,{title:"EID",required:"","model-value":n.component.configuration.eid,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.eid"))},{help:i(()=>[...e[2]||(e[2]=[r(' EID für "production" ',-1)])]),_:1},8,["model-value"])])}const k=d(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/inverter.vue"]]);export{k as default}; diff --git a/web/settings/assets/inverter-3fe8754b.js b/web/settings/assets/inverter-3fe8754b.js new file mode 100644 index 0000000000..7661966d5f --- /dev/null +++ b/web/settings/assets/inverter-3fe8754b.js @@ -0,0 +1 @@ +import{C as m}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as o,l as u,m as l,G as t,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceEnphaseInverter",mixins:[m]},c={class:"device-enphase-inverter"};function f(n,e,v,b,g,E){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return u(),l("div",c,[t(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für Enphase Envoy / IQ Gateway Wechselrichter ",-1)])),_:1,__:[1]}),t(p,{title:"EID",required:"","model-value":n.component.configuration.eid,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.eid"))},{help:i(()=>e[2]||(e[2]=[r(' EID für "production" ',-1)])),_:1},8,["model-value"])])}const k=d(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/inverter.vue"]]);export{k as default}; diff --git a/web/settings/assets/inverter-423aa924.js b/web/settings/assets/inverter-423aa924.js new file mode 100644 index 0000000000..e84e5c49d2 --- /dev/null +++ b/web/settings/assets/inverter-423aa924.js @@ -0,0 +1 @@ +import{C as a}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as n,l as m,m as d,G as t,E as l,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolaredgeInverter",mixins:[a]},c={class:"device-solaredge-inverter"};function f(o,e,g,b,v,w){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),d("div",c,[t(r,null,{default:l(()=>e[1]||(e[1]=[u(" Einstellungen für SolarEdge Wechselrichter ",-1)])),_:1,__:[1]}),t(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/inverter.vue"]]);export{D as default}; diff --git a/web/settings/assets/inverter-45fa28a3.js b/web/settings/assets/inverter-45fa28a3.js deleted file mode 100644 index 03ca42814f..0000000000 --- a/web/settings/assets/inverter-45fa28a3.js +++ /dev/null @@ -1 +0,0 @@ -import{C as e}from"./HardwareInstallation-35a2a562.js";import{_ as n,l as t,m as i}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const o={name:"DeviceBenningInverter",mixins:[e]},r={class:"device-benning-inverter"};function s(p,c,m,a,_,v){return t(),i("div",r)}const C=n(o,[["render",s],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/benning/benning/inverter.vue"]]);export{C as default}; diff --git a/web/settings/assets/inverter-4621f53d.js b/web/settings/assets/inverter-4621f53d.js deleted file mode 100644 index ee3e41f50c..0000000000 --- a/web/settings/assets/inverter-4621f53d.js +++ /dev/null @@ -1 +0,0 @@ -import{C as l}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as t,l as b,m as v,G as r,E as i,B as a}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSunnyBoyInverter",mixins:[l]},_={class:"device-sunnyboy-inverter"};function g(n,e,y,c,w,C){const s=t("openwb-base-heading"),u=t("openwb-base-button-group-input"),d=t("openwb-base-select-input"),p=t("openwb-base-number-input");return b(),v("div",_,[r(s,null,{default:i(()=>[...e[3]||(e[3]=[a(" Einstellungen für SMA Sunny Boy/Tripower Wechselrichter ",-1)])]),_:1}),r(u,{title:"Hybrid-System",buttons:[{buttonValue:!1,text:"nicht vorhanden"},{buttonValue:!0,text:"vorhanden"}],"model-value":n.component.configuration.hybrid,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.hybrid"))},{help:i(()=>[...e[4]||(e[4]=[a(" Diese Option aktivieren, wenn ein Tripower Smart Energy, Sunny Boy Smart Energy oder ein anderes Hybrid-System verbaut ist. ",-1)])]),_:1},8,["model-value"]),r(d,{title:"Version","not-selected":"Bitte auswählen",options:[{value:0,text:"Standard"},{value:1,text:"Core-2"},{value:2,text:"Data Manager/Cluster Controller"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.version"))},null,8,["model-value"]),r(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},{help:i(()=>[...e[5]||(e[5]=[a(" Für die Standardversion ist die Standardmodbus-ID 3, für Core-2 ist sie 1 und für Data Manager/Cluster Controller 2. Wurde eine abweichende Modbus ID konfiguriert, entsprechend anpassen. ",-1)])]),_:1},8,["model-value"])])}const I=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/inverter.vue"]]);export{I as default}; diff --git a/web/settings/assets/inverter-53355b39.js b/web/settings/assets/inverter-53355b39.js deleted file mode 100644 index 711cc08b08..0000000000 --- a/web/settings/assets/inverter-53355b39.js +++ /dev/null @@ -1 +0,0 @@ -import{C as u}from"./HardwareInstallation-35a2a562.js";import{_ as a,u as t,l as p,m as l,G as n,E as m,B as c}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceYoulessInverter",mixins:[u]},d={class:"device-youless-inverter"};function f(o,e,b,v,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-button-group-input");return p(),l("div",d,[n(s,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für Youless LS120 Wechselrichter ",-1)])]),_:1}),n(i,{title:"S0-Eingang auslesen",buttons:[{buttonValue:!1,text:"nein"},{buttonValue:!0,text:"ja"}],"model-value":o.component.configuration.source_s0,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.source_s0"))},null,8,["model-value"])])}const N=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/youless/youless/inverter.vue"]]);export{N as default}; diff --git a/web/settings/assets/inverter-5531e828.js b/web/settings/assets/inverter-5531e828.js new file mode 100644 index 0000000000..aa64940f7a --- /dev/null +++ b/web/settings/assets/inverter-5531e828.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as l,u as n,l as d,m as c,G as t,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceSolarViewInverter",mixins:[p]},_={class:"device-solar-view-inverter"};function f(o,e,v,g,w,b){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return d(),c("div",_,[t(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für SolarView Wechselrichter ",-1)])),_:1,__:[1]}),t(a,{title:"Kommando für die Abfrage",required:"","model-value":o.component.configuration.command,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.command"))},{help:i(()=>e[2]||(e[2]=[r(" Kommandos gemäß SolarView-Dokumentation, z.B.: 00* (gesamte Anlage), 01* (Wechselrichter 1), 02* (Wechselrichter 2) ",-1)])),_:1},8,["model-value"])])}const S=l(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/solar_view/inverter.vue"]]);export{S as default}; diff --git a/web/settings/assets/inverter-5ac0453f.js b/web/settings/assets/inverter-5ac0453f.js deleted file mode 100644 index dd3d6a2b7b..0000000000 --- a/web/settings/assets/inverter-5ac0453f.js +++ /dev/null @@ -1 +0,0 @@ -import{C as a}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as n,l as p,m as l,G as t,E as u,B as d}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolarmaxInverter",mixins:[a]},_={class:"device-solarmax-inverter"};function b(o,e,f,v,x,g){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return p(),l("div",_,[t(r,null,{default:u(()=>[...e[1]||(e[1]=[d(" Einstellungen für Solarmax Wechselrichter ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const I=m(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/inverter.vue"]]);export{I as default}; diff --git a/web/settings/assets/inverter-63be17df.js b/web/settings/assets/inverter-63be17df.js deleted file mode 100644 index a3a090e300..0000000000 --- a/web/settings/assets/inverter-63be17df.js +++ /dev/null @@ -1 +0,0 @@ -import{C as s}from"./HardwareInstallation-35a2a562.js";import{_ as a,u as t,l as u,m,G as i,E as d,B as c}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const v={name:"DeviceOpenwbFlexInverter",mixins:[s]},b={class:"device-openwb-flex-inverter"};function f(o,e,_,w,x,g){const r=t("openwb-base-heading"),l=t("openwb-base-select-input"),p=t("openwb-base-number-input");return u(),m("div",b,[i(r,null,{default:d(()=>[...e[2]||(e[2]=[c(" Einstellungen für openWB-Flex Wechselrichter ",-1)])]),_:1}),i(l,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"},{value:3,text:"SDM120"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"]),i(p,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.id"))},null,8,["model-value"])])}const W=a(v,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/inverter.vue"]]);export{W as default}; diff --git a/web/settings/assets/inverter-6427ac53.js b/web/settings/assets/inverter-6427ac53.js new file mode 100644 index 0000000000..cf67172809 --- /dev/null +++ b/web/settings/assets/inverter-6427ac53.js @@ -0,0 +1 @@ +import{C as s}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as n,l as m,m as _,G as r,E as i,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceStuderInverter",mixins:[s]},b={class:"device-studer-inverter"};function v(t,e,f,g,V,S){const u=n("openwb-base-heading"),p=n("openwb-base-button-group-input"),l=n("openwb-base-number-input");return m(),_("div",b,[r(u,null,{default:i(()=>e[2]||(e[2]=[a(" Einstellungen für Studer Wechselrichter ",-1)])),_:1,__:[2]}),r(p,{title:"Typ der MPPT Solarladeregler",buttons:[{buttonValue:"VT",text:"Variotrack (VT-40/VT-65/VT-80)"},{buttonValue:"VS",text:"VarioString (VS-70/VS-120)"}],"model-value":t.component.configuration.vc_type,required:"","onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.vc_type"))},null,8,["model-value"]),r(l,{title:"Anzahl MPPT Solarladeregler",required:"",min:1,max:9,"model-value":t.component.configuration.vc_count,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.vc_count"))},{help:i(()=>e[3]||(e[3]=[a(" Anzahl (1-9) der Studer MPPT Solarladeregler im System (VS/VT) ",-1)])),_:1},8,["model-value"])])}const k=d(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/inverter.vue"]]);export{k as default}; diff --git a/web/settings/assets/inverter-71b44c07.js b/web/settings/assets/inverter-71b44c07.js deleted file mode 100644 index e86e730dad..0000000000 --- a/web/settings/assets/inverter-71b44c07.js +++ /dev/null @@ -1 +0,0 @@ -import{C as s}from"./HardwareInstallation-35a2a562.js";import{_ as a,u as t,l as m,m as l,G as i,E as d,B as c}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceVictronInverter",mixins:[s]},_={class:"device-victron-inverter"};function f(o,e,v,g,w,V){const r=t("openwb-base-heading"),p=t("openwb-base-number-input"),u=t("openwb-base-button-group-input");return m(),l("div",_,[i(r,null,{default:d(()=>[...e[2]||(e[2]=[c(" Einstellungen für Victron Wechselrichter ",-1)])]),_:1}),i(p,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(u,{title:"MPPT",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":o.component.configuration.mppt,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.mppt"))},null,8,["model-value"])])}const I=a(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/inverter.vue"]]);export{I as default}; diff --git a/web/settings/assets/inverter-7afcc2ba.js b/web/settings/assets/inverter-7afcc2ba.js new file mode 100644 index 0000000000..e28d118242 --- /dev/null +++ b/web/settings/assets/inverter-7afcc2ba.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as l,l as m,m as g,G as r,E as o,B as n,A as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const h={name:"DeviceHttpInverter",mixins:[p]},c={class:"device-http-inverter"};function b(t,e,v,f,w,_){const d=l("openwb-base-heading"),s=l("openwb-base-text-input");return m(),g("div",c,[r(d,null,{default:o(()=>e[2]||(e[2]=[n(" Einstellungen für Http Wechselrichter ",-1)])),_:1,__:[2]}),r(s,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.power_path"))},{help:o(()=>e[3]||(e[3]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) ",-1)])),_:1},8,["model-value"]),r(s,{title:"Pfad für Zählerstand Erzeugung",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.exported_path"))},{help:o(()=>e[4]||(e[4]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])),_:1},8,["model-value"])])}const S=u(h,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/inverter.vue"]]);export{S as default}; diff --git a/web/settings/assets/inverter-7bb16085.js b/web/settings/assets/inverter-7bb16085.js deleted file mode 100644 index 0e025fa226..0000000000 --- a/web/settings/assets/inverter-7bb16085.js +++ /dev/null @@ -1 +0,0 @@ -import{C as u}from"./HardwareInstallation-35a2a562.js";import{_ as d,u as r,l as b,m as g,G as i,E as o,B as t,A as n,F as p}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceMqttInverter",mixins:[u]},v={class:"device-mqtt-inverter"};function B(s,e,w,k,x,z){const a=r("openwb-base-heading"),l=r("openwb-base-copy-to-clipboard"),m=r("openwb-base-alert");return b(),g("div",v,[i(a,null,{default:o(()=>[...e[0]||(e[0]=[t(" Einstellungen für MQTT Wechselrichter ",-1)])]),_:1}),i(m,{subtype:"info"},{default:o(()=>[e[14]||(e[14]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),n("ul",null,[n("li",null,[i(l,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/pv/"+p(s.component.id)+"/get/power ",1)]),_:1}),e[1]||(e[1]=n("br",null,null,-1)),e[2]||(e[2]=t(" PV-Leistung in Watt als Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) Beispiel: ",-1)),e[3]||(e[3]=n("span",{class:"text-info"},"-123",-1))])]),e[15]||(e[15]=t(" Falls keine Wert für den Zählerstand übermittelt wird, berechnet openWB den Zählerstand anhand der Leistung. ",-1)),n("ul",null,[n("li",null,[i(l,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/pv/"+p(s.component.id)+"/get/exported ",1)]),_:1}),e[4]||(e[4]=n("br",null,null,-1)),e[5]||(e[5]=t(" Erzeugte Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[6]||(e[6]=n("br",null,null,-1)),e[7]||(e[7]=t(" Beispiel: ",-1)),e[8]||(e[8]=n("span",{class:"text-info"},"123.45",-1))])]),e[16]||(e[16]=t(" Ströme je Phase sind optional, jedoch für phasenbasiertes Lastmanagement in Verbindung mit einem virtuellen Zähler unbedingt erforderlich. Ansonsten erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung an diesem Zähler: ",-1)),n("ul",null,[n("li",null,[i(l,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/pv/"+p(s.component.id)+"/get/currents ",1)]),_:1}),e[9]||(e[9]=n("br",null,null,-1)),e[10]||(e[10]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),e[11]||(e[11]=n("br",null,null,-1)),e[12]||(e[12]=t(" Beispiel: ",-1)),e[13]||(e[13]=n("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])])]),_:1})])}const Z=d(f,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/inverter.vue"]]);export{Z as default}; diff --git a/web/settings/assets/inverter-7bea2389.js b/web/settings/assets/inverter-7bea2389.js new file mode 100644 index 0000000000..015651214f --- /dev/null +++ b/web/settings/assets/inverter-7bea2389.js @@ -0,0 +1 @@ +import{C as a}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as n,l as p,m as l,G as t,E as u,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolarmaxInverter",mixins:[a]},c={class:"device-solarmax-inverter"};function b(o,e,f,v,x,g){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return p(),l("div",c,[t(r,null,{default:u(()=>e[1]||(e[1]=[d(" Einstellungen für Solarmax Wechselrichter ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const I=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/inverter.vue"]]);export{I as default}; diff --git a/web/settings/assets/inverter-7de7992b.js b/web/settings/assets/inverter-7de7992b.js deleted file mode 100644 index 93e8200ca0..0000000000 --- a/web/settings/assets/inverter-7de7992b.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-35a2a562.js";import{_ as u,u as l,l as m,m as g,G as r,E as o,B as n,A as a}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const h={name:"DeviceHttpInverter",mixins:[p]},c={class:"device-http-inverter"};function b(t,e,v,f,w,_){const d=l("openwb-base-heading"),s=l("openwb-base-text-input");return m(),g("div",c,[r(d,null,{default:o(()=>[...e[2]||(e[2]=[n(" Einstellungen für Http Wechselrichter ",-1)])]),_:1}),r(s,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.power_path"))},{help:o(()=>[...e[3]||(e[3]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) ",-1)])]),_:1},8,["model-value"]),r(s,{title:"Pfad für Zählerstand Erzeugung",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.exported_path"))},{help:o(()=>[...e[4]||(e[4]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])]),_:1},8,["model-value"])])}const S=u(h,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/inverter.vue"]]);export{S as default}; diff --git a/web/settings/assets/inverter-7eb695ef.js b/web/settings/assets/inverter-7eb695ef.js deleted file mode 100644 index b6e3f8d424..0000000000 --- a/web/settings/assets/inverter-7eb695ef.js +++ /dev/null @@ -1 +0,0 @@ -import{C as a}from"./HardwareInstallation-35a2a562.js";import{_ as p,u as t,l as u,m as l,G as n,E as m,B as c}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceKostalPikoInverter",mixins:[a]},_={class:"device-kostal-piko-inverter"};function f(o,e,b,v,g,k){const i=t("openwb-base-heading"),r=t("openwb-base-button-group-input");return u(),l("div",_,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für Kostal Piko Wechselrichter ",-1)])]),_:1}),n(r,{title:"Speicher",buttons:[{buttonValue:!1,text:"nicht vorhanden"},{buttonValue:!0,text:"vorhanden"}],"model-value":o.component.configuration.bat_configured,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.bat_configured"))},null,8,["model-value"])])}const N=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/inverter.vue"]]);export{N as default}; diff --git a/web/settings/assets/inverter-7ff3cd0f.js b/web/settings/assets/inverter-7ff3cd0f.js deleted file mode 100644 index 6a8015595c..0000000000 --- a/web/settings/assets/inverter-7ff3cd0f.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-35a2a562.js";import{_ as l,u as n,l as d,m as c,G as t,E as i,B as r}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceSolarViewInverter",mixins:[p]},_={class:"device-solar-view-inverter"};function f(o,e,v,g,w,b){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return d(),c("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für SolarView Wechselrichter ",-1)])]),_:1}),t(a,{title:"Kommando für die Abfrage",required:"","model-value":o.component.configuration.command,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.command"))},{help:i(()=>[...e[2]||(e[2]=[r(" Kommandos gemäß SolarView-Dokumentation, z.B.: 00* (gesamte Anlage), 01* (Wechselrichter 1), 02* (Wechselrichter 2) ",-1)])]),_:1},8,["model-value"])])}const S=l(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/solar_view/inverter.vue"]]);export{S as default}; diff --git a/web/settings/assets/inverter-809f70c1.js b/web/settings/assets/inverter-809f70c1.js new file mode 100644 index 0000000000..17437c070f --- /dev/null +++ b/web/settings/assets/inverter-809f70c1.js @@ -0,0 +1 @@ +import{C as l}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as t,l as b,m as v,G as r,E as i,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSunnyBoyInverter",mixins:[l]},_={class:"device-sunnyboy-inverter"};function g(n,e,y,c,w,C){const s=t("openwb-base-heading"),u=t("openwb-base-button-group-input"),d=t("openwb-base-select-input"),p=t("openwb-base-number-input");return b(),v("div",_,[r(s,null,{default:i(()=>e[3]||(e[3]=[a(" Einstellungen für SMA Sunny Boy/Tripower Wechselrichter ",-1)])),_:1,__:[3]}),r(u,{title:"Hybrid-System",buttons:[{buttonValue:!1,text:"nicht vorhanden"},{buttonValue:!0,text:"vorhanden"}],"model-value":n.component.configuration.hybrid,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.hybrid"))},{help:i(()=>e[4]||(e[4]=[a(" Diese Option aktivieren, wenn ein Tripower Smart Energy, Sunny Boy Smart Energy oder ein anderes Hybrid-System verbaut ist. ",-1)])),_:1},8,["model-value"]),r(d,{title:"Version","not-selected":"Bitte auswählen",options:[{value:0,text:"Standard"},{value:1,text:"Core-2"},{value:2,text:"Data Manager/Cluster Controller"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.version"))},null,8,["model-value"]),r(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},{help:i(()=>e[5]||(e[5]=[a(" Für die Standardversion ist die Standardmodbus-ID 3, für Core-2 ist sie 1 und für Data Manager/Cluster Controller 2. Wurde eine abweichende Modbus ID konfiguriert, entsprechend anpassen. ",-1)])),_:1},8,["model-value"])])}const I=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/inverter.vue"]]);export{I as default}; diff --git a/web/settings/assets/inverter-811d2fd2.js b/web/settings/assets/inverter-811d2fd2.js new file mode 100644 index 0000000000..65b4aa24b0 --- /dev/null +++ b/web/settings/assets/inverter-811d2fd2.js @@ -0,0 +1 @@ +import{C as r}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as o,l,m as u,G as n,E as c,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceKostalStecaInverter",mixins:[r]},_={class:"device-kostal-steca-inverter"};function f(t,e,v,b,g,k){const a=o("openwb-base-heading"),i=o("openwb-base-button-group-input");return l(),u("div",_,[n(a,null,{default:c(()=>e[1]||(e[1]=[m(" Einstellungen für Kostal Piko MP oder Steca Grid Coolcept Wechselrichter ",-1)])),_:1,__:[1]}),n(i,{title:"Variante",buttons:[{buttonValue:!1,text:"Kostal Piko MP (non-plus)"},{buttonValue:!0,text:"Kostal Piko MP oder Steca Grid Coolcept"}],"model-value":t.component.configuration.variant_steca,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.variant_steca"))},null,8,["model-value"])])}const h=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_steca/inverter.vue"]]);export{h as default}; diff --git a/web/settings/assets/inverter-84112ddc.js b/web/settings/assets/inverter-84112ddc.js deleted file mode 100644 index 42c7a804b8..0000000000 --- a/web/settings/assets/inverter-84112ddc.js +++ /dev/null @@ -1 +0,0 @@ -import{C as a}from"./HardwareInstallation-35a2a562.js";import{_ as p,u as n,l as m,m as d,G as t,E as l,B as u}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolaredgeInverter",mixins:[a]},_={class:"device-solaredge-inverter"};function f(o,e,g,b,v,w){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),d("div",_,[t(r,null,{default:l(()=>[...e[1]||(e[1]=[u(" Einstellungen für SolarEdge Wechselrichter ",-1)])]),_:1}),t(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/inverter.vue"]]);export{D as default}; diff --git a/web/settings/assets/inverter-8ac71de3.js b/web/settings/assets/inverter-8ac71de3.js deleted file mode 100644 index 0c4a20e978..0000000000 --- a/web/settings/assets/inverter-8ac71de3.js +++ /dev/null @@ -1 +0,0 @@ -import{C as s}from"./HardwareInstallation-35a2a562.js";import{_ as d,u as n,l as m,m as c,G as r,E as i,B as a}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceStuderInverter",mixins:[s]},b={class:"device-studer-inverter"};function v(t,e,f,g,V,S){const u=n("openwb-base-heading"),p=n("openwb-base-button-group-input"),l=n("openwb-base-number-input");return m(),c("div",b,[r(u,null,{default:i(()=>[...e[2]||(e[2]=[a(" Einstellungen für Studer Wechselrichter ",-1)])]),_:1}),r(p,{title:"Typ der MPPT Solarladeregler",buttons:[{buttonValue:"VT",text:"Variotrack (VT-40/VT-65/VT-80)"},{buttonValue:"VS",text:"VarioString (VS-70/VS-120)"}],"model-value":t.component.configuration.vc_type,required:"","onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.vc_type"))},null,8,["model-value"]),r(l,{title:"Anzahl MPPT Solarladeregler",required:"",min:1,max:9,"model-value":t.component.configuration.vc_count,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.vc_count"))},{help:i(()=>[...e[3]||(e[3]=[a(" Anzahl (1-9) der Studer MPPT Solarladeregler im System (VS/VT) ",-1)])]),_:1},8,["model-value"])])}const k=d(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/inverter.vue"]]);export{k as default}; diff --git a/web/settings/assets/inverter-9022a53b.js b/web/settings/assets/inverter-9022a53b.js new file mode 100644 index 0000000000..48df8c2265 --- /dev/null +++ b/web/settings/assets/inverter-9022a53b.js @@ -0,0 +1 @@ +import{C as u}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as r,l as d,m as g,G as o,E as l,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceVZLoggerInverter",mixins:[u]},f={class:"device-vzlogger-inverter"};function c(n,e,v,b,w,Z){const a=r("openwb-base-heading"),p=r("openwb-base-alert"),i=r("openwb-base-number-input");return d(),g("div",f,[o(a,null,{default:l(()=>e[2]||(e[2]=[s(" Einstellungen für VZLogger Wechselrichter ",-1)])),_:1,__:[2]}),o(p,{subtype:"info"},{default:l(()=>e[3]||(e[3]=[s(' Bitte auf der Shell ausführen: "curl -s IPdesVZLogger:Port | jq .|cat -n" Zählen, in welcher Zeile der gesuchte Wert steht. Bei der ersten Zeile mit 1 anfangen zu zählen. ',-1)])),_:1,__:[3]}),o(i,{title:"Zeile der Leistung",required:"",min:0,"model-value":n.component.configuration.line_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.line_power"))},null,8,["model-value"]),o(i,{title:"Zeile der exportierten Energie (Ertrag)",min:0,"model-value":n.component.configuration.line_exported,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.line_exported"))},null,8,["model-value"])])}const W=m(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/inverter.vue"]]);export{W as default}; diff --git a/web/settings/assets/inverter-91e7bfd3.js b/web/settings/assets/inverter-91e7bfd3.js deleted file mode 100644 index eb3c47d6db..0000000000 --- a/web/settings/assets/inverter-91e7bfd3.js +++ /dev/null @@ -1 +0,0 @@ -import{C as a}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as o,l as p,m as l,G as n,E as d,B as u}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmartMeInverter",mixins:[a]},_={class:"device-smart-me-inverter"};function f(t,e,v,b,g,x){const r=o("openwb-base-heading"),i=o("openwb-base-text-input");return p(),l("div",_,[n(r,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für smart-me Wechselrichter ",-1)])]),_:1}),n(i,{title:"Geräte-ID",required:"","model-value":t.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const G=m(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/inverter.vue"]]);export{G as default}; diff --git a/web/settings/assets/inverter-948bcdb7.js b/web/settings/assets/inverter-948bcdb7.js new file mode 100644 index 0000000000..194d2d362d --- /dev/null +++ b/web/settings/assets/inverter-948bcdb7.js @@ -0,0 +1 @@ +import{C as s}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as t,l as u,m,G as i,E as d,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"DeviceOpenwbFlexInverter",mixins:[s]},_={class:"device-openwb-flex-inverter"};function b(o,e,f,w,x,g){const r=t("openwb-base-heading"),l=t("openwb-base-select-input"),p=t("openwb-base-number-input");return u(),m("div",_,[i(r,null,{default:d(()=>e[2]||(e[2]=[c(" Einstellungen für openWB-Flex Wechselrichter ",-1)])),_:1,__:[2]}),i(l,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"},{value:3,text:"SDM120"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"]),i(p,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.id"))},null,8,["model-value"])])}const W=a(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/inverter.vue"]]);export{W as default}; diff --git a/web/settings/assets/inverter-96158dd7.js b/web/settings/assets/inverter-96158dd7.js new file mode 100644 index 0000000000..a4f42a4ec9 --- /dev/null +++ b/web/settings/assets/inverter-96158dd7.js @@ -0,0 +1 @@ +import{C as u}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as r,l as b,m as g,G as i,E as o,B as t,A as n,F as p}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceMqttInverter",mixins:[u]},v={class:"device-mqtt-inverter"};function B(s,e,w,k,x,z){const a=r("openwb-base-heading"),l=r("openwb-base-copy-to-clipboard"),m=r("openwb-base-alert");return b(),g("div",v,[i(a,null,{default:o(()=>e[0]||(e[0]=[t(" Einstellungen für MQTT Wechselrichter ",-1)])),_:1,__:[0]}),i(m,{subtype:"info"},{default:o(()=>[e[14]||(e[14]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),n("ul",null,[n("li",null,[i(l,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/pv/"+p(s.component.id)+"/get/power ",1)]),_:1}),e[1]||(e[1]=n("br",null,null,-1)),e[2]||(e[2]=t(" PV-Leistung in Watt als Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) Beispiel: ",-1)),e[3]||(e[3]=n("span",{class:"text-info"},"-123",-1))])]),e[15]||(e[15]=t(" Falls keine Wert für den Zählerstand übermittelt wird, berechnet openWB den Zählerstand anhand der Leistung. ",-1)),n("ul",null,[n("li",null,[i(l,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/pv/"+p(s.component.id)+"/get/exported ",1)]),_:1}),e[4]||(e[4]=n("br",null,null,-1)),e[5]||(e[5]=t(" Erzeugte Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[6]||(e[6]=n("br",null,null,-1)),e[7]||(e[7]=t(" Beispiel: ",-1)),e[8]||(e[8]=n("span",{class:"text-info"},"123.45",-1))])]),e[16]||(e[16]=t(" Ströme je Phase sind optional, jedoch für phasenbasiertes Lastmanagement in Verbindung mit einem virtuellen Zähler unbedingt erforderlich. Ansonsten erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung an diesem Zähler: ",-1)),n("ul",null,[n("li",null,[i(l,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/pv/"+p(s.component.id)+"/get/currents ",1)]),_:1}),e[9]||(e[9]=n("br",null,null,-1)),e[10]||(e[10]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),e[11]||(e[11]=n("br",null,null,-1)),e[12]||(e[12]=t(" Beispiel: ",-1)),e[13]||(e[13]=n("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])])]),_:1,__:[14,15,16]})])}const Z=d(f,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/inverter.vue"]]);export{Z as default}; diff --git a/web/settings/assets/inverter-97aca950.js b/web/settings/assets/inverter-97aca950.js new file mode 100644 index 0000000000..c4992a98f6 --- /dev/null +++ b/web/settings/assets/inverter-97aca950.js @@ -0,0 +1 @@ +import{C as a}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as n,l as m,m as c,G as t,E as u,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceKacoInverter",mixins:[a]},_={class:"device-kaco-inverter"};function b(o,e,f,v,g,x){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),c("div",_,[t(i,null,{default:u(()=>e[1]||(e[1]=[d(" Einstellungen für Kaco Wechselrichter ",-1)])),_:1,__:[1]}),t(r,{title:"Kaco-Modbus-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_tx/inverter.vue"]]);export{D as default}; diff --git a/web/settings/assets/inverter-aa3864d0.js b/web/settings/assets/inverter-aa3864d0.js deleted file mode 100644 index 3d7fe8da5a..0000000000 --- a/web/settings/assets/inverter-aa3864d0.js +++ /dev/null @@ -1 +0,0 @@ -import{C as e}from"./HardwareInstallation-35a2a562.js";import{_ as t,l as o,m as n}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const r={name:"DeviceOpenDTUInverter",mixins:[e]},i={class:"device-opendtu-inverter"};function p(s,c,m,a,_,d){return o(),n("div",i)}const h=t(r,[["render",p],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/opendtu/opendtu/inverter.vue"]]);export{h as default}; diff --git a/web/settings/assets/inverter-b1698e75.js b/web/settings/assets/inverter-b1698e75.js deleted file mode 100644 index efdc244094..0000000000 --- a/web/settings/assets/inverter-b1698e75.js +++ /dev/null @@ -1 +0,0 @@ -import{C as a}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as n,l as p,m as u,G as t,E as d,B as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceHuaweiSmartLoggerInverter",mixins:[a]},_={class:"device-huawei-smart-logger-inverter"};function g(o,e,b,f,v,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return p(),u("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Wechselrichter ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const H=m(c,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/inverter.vue"]]);export{H as default}; diff --git a/web/settings/assets/inverter-b447983e.js b/web/settings/assets/inverter-b447983e.js new file mode 100644 index 0000000000..f22c422017 --- /dev/null +++ b/web/settings/assets/inverter-b447983e.js @@ -0,0 +1 @@ +import{C as a}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as n,l as u,m as c,G as t,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceMTecInverter",mixins:[a]},_={class:"device-mtec-inverter"};function b(o,e,f,v,g,w){const s=n("openwb-base-heading"),m=n("openwb-base-number-input");return u(),c("div",_,[t(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für M-Tec Wechselrichter ",-1)])),_:1,__:[1]}),t(m,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>e[2]||(e[2]=[r(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])),_:1},8,["model-value"])])}const V=d(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/inverter.vue"]]);export{V as default}; diff --git a/web/settings/assets/inverter-b490ca31.js b/web/settings/assets/inverter-b490ca31.js new file mode 100644 index 0000000000..b739db4138 --- /dev/null +++ b/web/settings/assets/inverter-b490ca31.js @@ -0,0 +1 @@ +import{C as e}from"./HardwareInstallation-be759b0c.js";import{_ as n,l as t,m as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const o={name:"DeviceBenningInverter",mixins:[e]},r={class:"device-benning-inverter"};function s(p,c,m,a,_,v){return t(),i("div",r)}const C=n(o,[["render",s],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/benning/benning/inverter.vue"]]);export{C as default}; diff --git a/web/settings/assets/inverter-b99fda43.js b/web/settings/assets/inverter-b99fda43.js new file mode 100644 index 0000000000..a344ebe2a6 --- /dev/null +++ b/web/settings/assets/inverter-b99fda43.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as n,l as m,m as l,G as t,E as u,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolisInverter",mixins:[p]},c={class:"device-solis-inverter"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",c,[t(i,null,{default:u(()=>e[1]||(e[1]=[d(" Einstellungen für Solis Wechselrichter ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const I=a(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/inverter.vue"]]);export{I as default}; diff --git a/web/settings/assets/inverter-bb0b052c.js b/web/settings/assets/inverter-bb0b052c.js deleted file mode 100644 index 0f141a46ad..0000000000 --- a/web/settings/assets/inverter-bb0b052c.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-35a2a562.js";import{_ as a,u as n,l as m,m as l,G as t,E as u,B as d}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolisInverter",mixins:[p]},_={class:"device-solis-inverter"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",_,[t(i,null,{default:u(()=>[...e[1]||(e[1]=[d(" Einstellungen für Solis Wechselrichter ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const I=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/inverter.vue"]]);export{I as default}; diff --git a/web/settings/assets/inverter-bc849b92.js b/web/settings/assets/inverter-bc849b92.js new file mode 100644 index 0000000000..7004eb0701 --- /dev/null +++ b/web/settings/assets/inverter-bc849b92.js @@ -0,0 +1 @@ +import{C as e}from"./HardwareInstallation-be759b0c.js";import{_ as t,l as o,m as n}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const r={name:"DeviceOpenDTUInverter",mixins:[e]},i={class:"device-opendtu-inverter"};function p(s,c,m,a,_,d){return o(),n("div",i)}const h=t(r,[["render",p],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/opendtu/opendtu/inverter.vue"]]);export{h as default}; diff --git a/web/settings/assets/inverter-d41890ab.js b/web/settings/assets/inverter-d41890ab.js new file mode 100644 index 0000000000..ecb976821d --- /dev/null +++ b/web/settings/assets/inverter-d41890ab.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as o,l,m as u,G as n,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbEvukitInverter",mixins:[p]},v={class:"device-openwb-evukit-inverter"};function _(t,e,f,b,w,g){const i=o("openwb-base-heading"),r=o("openwb-base-select-input");return l(),u("div",v,[n(i,null,{default:m(()=>e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Wechselrichter ",-1)])),_:1,__:[1]}),n(r,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.version"))},null,8,["model-value"])])}const $=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/inverter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/inverter-d8aa0787.js b/web/settings/assets/inverter-d8aa0787.js deleted file mode 100644 index 149c059929..0000000000 --- a/web/settings/assets/inverter-d8aa0787.js +++ /dev/null @@ -1 +0,0 @@ -import{C as a}from"./HardwareInstallation-35a2a562.js";import{_ as d,u as n,l as u,m as c,G as t,E as i,B as r}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceMTecInverter",mixins:[a]},_={class:"device-mtec-inverter"};function b(o,e,f,v,g,w){const s=n("openwb-base-heading"),m=n("openwb-base-number-input");return u(),c("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für M-Tec Wechselrichter ",-1)])]),_:1}),t(m,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[r(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])]),_:1},8,["model-value"])])}const V=d(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/inverter.vue"]]);export{V as default}; diff --git a/web/settings/assets/inverter-d8e7de15.js b/web/settings/assets/inverter-d8e7de15.js new file mode 100644 index 0000000000..0091e52784 --- /dev/null +++ b/web/settings/assets/inverter-d8e7de15.js @@ -0,0 +1 @@ +import{C as a}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as n,l as p,m as u,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceHuaweiSmartLoggerInverter",mixins:[a]},c={class:"device-huawei-smart-logger-inverter"};function g(o,e,b,f,v,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return p(),u("div",c,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Wechselrichter ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const H=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/inverter.vue"]]);export{H as default}; diff --git a/web/settings/assets/inverter-da07e623.js b/web/settings/assets/inverter-da07e623.js deleted file mode 100644 index df340c6ab8..0000000000 --- a/web/settings/assets/inverter-da07e623.js +++ /dev/null @@ -1 +0,0 @@ -import{C as d}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as r,l as u,m as c,G as n,E as i,B as o,A as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const v={name:"DeviceDiscovergyInverter",mixins:[d]},f={class:"device-discovergy-inverter"};function g(t,e,_,b,w,h){const s=r("openwb-base-heading"),a=r("openwb-base-text-input");return u(),c("div",f,[n(s,null,{default:i(()=>[...e[1]||(e[1]=[o(" Einstellungen für Discovergy Wechselrichter ",-1)])]),_:1}),n(a,{title:"Meter-ID",required:"","model-value":t.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.meter_id"))},{help:i(()=>[...e[2]||(e[2]=[o(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),l("a",{href:"https://api.discovergy.com/public/v1/meters",target:"_blank",rel:"noopener noreferrer"}," https://api.discovergy.com/public/v1/meters ",-1),o(" aufrufen und dort Benutzername und Passwort eingeben. Hier wird nun u.a. die ID des Zählers angezeigt. ",-1)])]),_:1},8,["model-value"])])}const z=m(v,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/inverter.vue"]]);export{z as default}; diff --git a/web/settings/assets/inverter-e3f0ea6e.js b/web/settings/assets/inverter-e3f0ea6e.js deleted file mode 100644 index 6ae9f17c4d..0000000000 --- a/web/settings/assets/inverter-e3f0ea6e.js +++ /dev/null @@ -1 +0,0 @@ -import{C as u}from"./HardwareInstallation-35a2a562.js";import{_ as l,u as t,l as m,m as c,G as r,E as i,B as n,A as s}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const f={name:"DevicePowerfoxInverter",mixins:[u]},b={class:"device-powerfox-inverter"};function g(o,e,v,w,_,x){const a=t("openwb-base-heading"),p=t("openwb-base-text-input");return m(),c("div",b,[r(a,null,{default:i(()=>[...e[1]||(e[1]=[n(" Einstellungen für Powerfox Wechselrichter ",-1)])]),_:1}),r(p,{title:"ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=d=>o.updateConfiguration(d,"configuration.id"))},{help:i(()=>[...e[2]||(e[2]=[n(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),s("a",{href:"https://backend.powerfox.energy/api/2.0/my/all/devices",target:"_blank",rel:"noopener noreferrer"}," https://backend.powerfox.energy/api/2.0/my/all/devices ",-1),n(" aufrufen und dort Benutzername und Passwort eingeben. Die DeviceID ist exakt so einzutragen, wie in der Antwort des Servers. Das bedeutet insbesondere auch, die Groß-/Kleinschreibung ist zu beachten! In dem Feld ist nur die Zeichenfolge direkt hinter ",-1),s("span",{class:"font-weight-bold text-monospace",style:{display:"contents"}},' "DeviceID" ',-1),n(" ohne den Doppelpunkt und Anführungszeichen einzutragen. ",-1)])]),_:1},8,["model-value"])])}const V=l(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/inverter.vue"]]);export{V as default}; diff --git a/web/settings/assets/inverter-e626a82d.js b/web/settings/assets/inverter-e626a82d.js new file mode 100644 index 0000000000..0f94e77a2c --- /dev/null +++ b/web/settings/assets/inverter-e626a82d.js @@ -0,0 +1 @@ +import{C as d}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as r,l as u,m as c,G as n,E as i,B as o,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"DeviceDiscovergyInverter",mixins:[d]},_={class:"device-discovergy-inverter"};function f(t,e,g,b,w,h){const s=r("openwb-base-heading"),a=r("openwb-base-text-input");return u(),c("div",_,[n(s,null,{default:i(()=>e[1]||(e[1]=[o(" Einstellungen für Discovergy Wechselrichter ",-1)])),_:1,__:[1]}),n(a,{title:"Meter-ID",required:"","model-value":t.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.meter_id"))},{help:i(()=>e[2]||(e[2]=[o(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),l("a",{href:"https://api.discovergy.com/public/v1/meters",target:"_blank",rel:"noopener noreferrer"}," https://api.discovergy.com/public/v1/meters ",-1),o(" aufrufen und dort Benutzername und Passwort eingeben. Hier wird nun u.a. die ID des Zählers angezeigt. ",-1)])),_:1},8,["model-value"])])}const z=m(v,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/inverter.vue"]]);export{z as default}; diff --git a/web/settings/assets/inverter-e6cbd119.js b/web/settings/assets/inverter-e6cbd119.js deleted file mode 100644 index 22d3f20e4e..0000000000 --- a/web/settings/assets/inverter-e6cbd119.js +++ /dev/null @@ -1 +0,0 @@ -import{C as u}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as r,l as d,m as g,G as o,E as l,B as s}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceVZLoggerInverter",mixins:[u]},_={class:"device-vzlogger-inverter"};function c(n,e,v,b,w,Z){const a=r("openwb-base-heading"),p=r("openwb-base-alert"),i=r("openwb-base-number-input");return d(),g("div",_,[o(a,null,{default:l(()=>[...e[2]||(e[2]=[s(" Einstellungen für VZLogger Wechselrichter ",-1)])]),_:1}),o(p,{subtype:"info"},{default:l(()=>[...e[3]||(e[3]=[s(' Bitte auf der Shell ausführen: "curl -s IPdesVZLogger:Port | jq .|cat -n" Zählen, in welcher Zeile der gesuchte Wert steht. Bei der ersten Zeile mit 1 anfangen zu zählen. ',-1)])]),_:1}),o(i,{title:"Zeile der Leistung",required:"",min:0,"model-value":n.component.configuration.line_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.line_power"))},null,8,["model-value"]),o(i,{title:"Zeile der exportierten Energie (Ertrag)",min:0,"model-value":n.component.configuration.line_exported,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.line_exported"))},null,8,["model-value"])])}const W=m(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/inverter.vue"]]);export{W as default}; diff --git a/web/settings/assets/inverter-ea38ab2a.js b/web/settings/assets/inverter-ea38ab2a.js new file mode 100644 index 0000000000..dba508baaa --- /dev/null +++ b/web/settings/assets/inverter-ea38ab2a.js @@ -0,0 +1 @@ +import{C as u}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as t,l as p,m as l,G as n,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceYoulessInverter",mixins:[u]},d={class:"device-youless-inverter"};function f(o,e,b,v,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-button-group-input");return p(),l("div",d,[n(s,null,{default:m(()=>e[1]||(e[1]=[c(" Einstellungen für Youless LS120 Wechselrichter ",-1)])),_:1,__:[1]}),n(i,{title:"S0-Eingang auslesen",buttons:[{buttonValue:!1,text:"nein"},{buttonValue:!0,text:"ja"}],"model-value":o.component.configuration.source_s0,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.source_s0"))},null,8,["model-value"])])}const N=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/youless/youless/inverter.vue"]]);export{N as default}; diff --git a/web/settings/assets/inverter-ee06ed09.js b/web/settings/assets/inverter-ee06ed09.js deleted file mode 100644 index b66f04b738..0000000000 --- a/web/settings/assets/inverter-ee06ed09.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-35a2a562.js";import{_ as a,u as o,l,m as u,G as n,E as m,B as c}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbEvukitInverter",mixins:[p]},v={class:"device-openwb-evukit-inverter"};function _(t,e,f,b,w,g){const i=o("openwb-base-heading"),r=o("openwb-base-select-input");return l(),u("div",v,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Wechselrichter ",-1)])]),_:1}),n(r,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.version"))},null,8,["model-value"])])}const $=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/inverter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/inverter-f1be98fb.js b/web/settings/assets/inverter-f1be98fb.js new file mode 100644 index 0000000000..107eb1882b --- /dev/null +++ b/web/settings/assets/inverter-f1be98fb.js @@ -0,0 +1 @@ +import{C as u}from"./HardwareInstallation-be759b0c.js";import{_ as l,u as t,l as m,m as c,G as r,E as i,B as n,A as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DevicePowerfoxInverter",mixins:[u]},_={class:"device-powerfox-inverter"};function b(o,e,g,v,w,x){const a=t("openwb-base-heading"),p=t("openwb-base-text-input");return m(),c("div",_,[r(a,null,{default:i(()=>e[1]||(e[1]=[n(" Einstellungen für Powerfox Wechselrichter ",-1)])),_:1,__:[1]}),r(p,{title:"ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=d=>o.updateConfiguration(d,"configuration.id"))},{help:i(()=>e[2]||(e[2]=[n(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),s("a",{href:"https://backend.powerfox.energy/api/2.0/my/all/devices",target:"_blank",rel:"noopener noreferrer"}," https://backend.powerfox.energy/api/2.0/my/all/devices ",-1),n(" aufrufen und dort Benutzername und Passwort eingeben. Die DeviceID ist exakt so einzutragen, wie in der Antwort des Servers. Das bedeutet insbesondere auch, die Groß-/Kleinschreibung ist zu beachten! In dem Feld ist nur die Zeichenfolge direkt hinter ",-1),s("span",{class:"font-weight-bold text-monospace",style:{display:"contents"}},' "DeviceID" ',-1),n(" ohne den Doppelpunkt und Anführungszeichen einzutragen. ",-1)])),_:1},8,["model-value"])])}const V=l(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/inverter.vue"]]);export{V as default}; diff --git a/web/settings/assets/inverter-f4ccd46a.js b/web/settings/assets/inverter-f4ccd46a.js new file mode 100644 index 0000000000..95040fe63b --- /dev/null +++ b/web/settings/assets/inverter-f4ccd46a.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as n,l as m,m as d,G as t,E as u,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceDeyeInverter",mixins:[p]},c={class:"device-deye-inverter"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),d("div",c,[t(i,null,{default:u(()=>e[1]||(e[1]=[l(" Einstellungen für Deye Wechselrichter ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const k=a(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/inverter.vue"]]);export{k as default}; diff --git a/web/settings/assets/inverter-fb7b4862.js b/web/settings/assets/inverter-fb7b4862.js deleted file mode 100644 index 67fa7c3bbf..0000000000 --- a/web/settings/assets/inverter-fb7b4862.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-35a2a562.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceFoxEssInverter",mixins:[p]},c={class:"device-fox_ess-inverter"};function f(o,e,b,v,x,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für FoxEss Wechselrichter ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const F=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/inverter.vue"]]);export{F as default}; diff --git a/web/settings/assets/inverter_secondary-63cbb85c.js b/web/settings/assets/inverter_secondary-63cbb85c.js deleted file mode 100644 index 713ed9c85f..0000000000 --- a/web/settings/assets/inverter_secondary-63cbb85c.js +++ /dev/null @@ -1 +0,0 @@ -import{C as u}from"./HardwareInstallation-35a2a562.js";import{_ as m,u as t,l as f,m as c,G as i,E as s,B as n,A as a,F as g}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const w={name:"DeviceFroniusInverterSecondary",mixins:[u],computed:{powerFlowUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetPowerFlowRealtimeData.fcgi?Scope=System`}}}},_={class:"device-fronius-inverter-secondary"},v=["href"];function b(r,e,D,k,h,o){const d=t("openwb-base-heading"),l=t("openwb-base-number-input");return f(),c("div",_,[i(d,null,{default:s(()=>[...e[1]||(e[1]=[n(" Einstellungen für einen sekundären Wechselrichter ",-1)])]),_:1}),i(l,{title:"ID","model-value":r.component.configuration.id,min:"0",required:"","onUpdate:modelValue":e[0]||(e[0]=p=>r.updateConfiguration(p,"configuration.id"))},{help:s(()=>[e[2]||(e[2]=n(" Die ID des sekundären Wechselrichters. Diese ist für jede Installation individuell und muss ermittelt werden. Dafür kann der folgende Link verwendet werden. Die ID kann den zurückgegebenen JSON entnommen werden. ",-1)),a("a",{href:o.powerFlowUrl,target:"_blank",rel:"noopener noreferrer"},g(o.powerFlowUrl),9,v),e[3]||(e[3]=a("br",null,null,-1)),e[4]||(e[4]=n(' Im Abschnitt "Body" -> "Data" -> "SecondaryMeters" werden die installierten Zähler angezeigt. Die ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Daten. ',-1))]),_:1},8,["model-value"])])}const V=m(w,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/inverter_secondary.vue"]]);export{V as default}; diff --git a/web/settings/assets/inverter_secondary-be8c6f76.js b/web/settings/assets/inverter_secondary-be8c6f76.js new file mode 100644 index 0000000000..456b6ae0d6 --- /dev/null +++ b/web/settings/assets/inverter_secondary-be8c6f76.js @@ -0,0 +1 @@ +import{C as u}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as t,l as f,m as c,G as i,E as s,B as n,A as a,F as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceFroniusInverterSecondary",mixins:[u],computed:{powerFlowUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetPowerFlowRealtimeData.fcgi?Scope=System`}}}},w={class:"device-fronius-inverter-secondary"},v=["href"];function b(r,e,D,k,h,o){const d=t("openwb-base-heading"),l=t("openwb-base-number-input");return f(),c("div",w,[i(d,null,{default:s(()=>e[1]||(e[1]=[n(" Einstellungen für einen sekundären Wechselrichter ",-1)])),_:1,__:[1]}),i(l,{title:"ID","model-value":r.component.configuration.id,min:"0",required:"","onUpdate:modelValue":e[0]||(e[0]=p=>r.updateConfiguration(p,"configuration.id"))},{help:s(()=>[e[2]||(e[2]=n(" Die ID des sekundären Wechselrichters. Diese ist für jede Installation individuell und muss ermittelt werden. Dafür kann der folgende Link verwendet werden. Die ID kann den zurückgegebenen JSON entnommen werden. ",-1)),a("a",{href:o.powerFlowUrl,target:"_blank",rel:"noopener noreferrer"},_(o.powerFlowUrl),9,v),e[3]||(e[3]=a("br",null,null,-1)),e[4]||(e[4]=n(' Im Abschnitt "Body" -> "Data" -> "SecondaryMeters" werden die installierten Zähler angezeigt. Die ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Daten. ',-1))]),_:1},8,["model-value"])])}const V=m(g,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/inverter_secondary.vue"]]);export{V as default}; diff --git a/web/settings/assets/io_action-639b3028.js b/web/settings/assets/io_action-639b3028.js new file mode 100644 index 0000000000..e94573e927 --- /dev/null +++ b/web/settings/assets/io_action-639b3028.js @@ -0,0 +1 @@ +import{a as f}from"./IoConfig-38958e2e.js";import{O as b}from"./OpenwbIoPattern-66bb2793.js";import{_ as v,u as r,l as p,m as w,G as l,E as a,B as i,F as g,A as s,x as A,z as V,N as h}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const k={name:"IoActionStepwiseControl",components:{OpenwbIoPattern:b},mixins:[f],computed:{availableDevices(){let t=this.availableComponents.filter(o=>o.type==="inverter").map(o=>({value:{type:o.type,id:o.value},text:o.text}));return[{label:t.length>0?"Wechselrichter":"Keine Wechselrichter verfügbar",options:t}]}}};function _(t,e,o,B,z,d){const u=r("openwb-io-pattern"),m=r("openwb-base-select-input"),c=r("openwb-base-button-group-input");return p(),w(h,null,[l(u,{modelValue:t.ioAction.configuration.input_pattern,"onUpdate:modelValue":e[0]||(e[0]=n=>t.ioAction.configuration.input_pattern=n),contacts:t.ioDevice.input.digital,"action-title":"Begrenzung","enable-add-delete":!1,class:"text-center"},{default:a(n=>[i(g(n.pattern.value*100+"%"),1)]),_:1},8,["modelValue","contacts"]),e[6]||(e[6]=s("hr",null,null,-1)),l(m,{modelValue:t.ioAction.configuration.devices,"onUpdate:modelValue":e[1]||(e[1]=n=>t.ioAction.configuration.devices=n),title:"Zugeordnete Erzeugungsanlagen...","not-selected":"Bitte auswählen","empty-value":[],groups:d.availableDevices,required:"",multiple:""},{help:a(()=>e[4]||(e[4]=[i(" Bitte die Erzeugungsanlagen auswählen, welche mit dieser Aktion gekoppelt sind. Es können mehrere Erzeugungsanlagen ausgewählt werden.",-1),s("br",null,null,-1),i(" Diese Zuordnung ist rein informativ und hat noch keine Auswirkungen auf die Funktionalität. Die Begrenzung der zugeordneten Erzeugungsanlagen wird im Status angezeigt. ",-1)])),_:1},8,["modelValue","groups"]),e[7]||(e[7]=s("hr",null,null,-1)),l(c,{modelValue:t.ioAction.configuration.passthrough_enabled,"onUpdate:modelValue":e[2]||(e[2]=n=>t.ioAction.configuration.passthrough_enabled=n),title:"Ausgänge aktivieren",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],class:"mb-2",required:""},{help:a(()=>e[5]||(e[5]=[i(' Optional kann das Signal der konfigurierten Eingänge an Ausgänge durchgereicht ("durchgeschliffen") werden. Wird z.B. das Muster für 60% als aktiv erkannt, dann wird auch das hier festgelegte Ausgangsmuster für 60% aktiviert. ',-1)])),_:1},8,["modelValue"]),t.ioAction.configuration.passthrough_enabled?(p(),A(u,{key:0,modelValue:t.ioAction.configuration.output_pattern,"onUpdate:modelValue":e[3]||(e[3]=n=>t.ioAction.configuration.output_pattern=n),contacts:t.ioDevice.output.digital,title:"Ausgangsmuster","action-title":"Begrenzung","enable-add-delete":!1,class:"text-center","show-check-pattern":!1},{default:a(n=>[i(g(n.pattern.value*100+"%"),1)]),_:1},8,["modelValue","contacts"])):V("",!0)],64)}const F=v(k,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/generator_systems/stepwise_control/io_action.vue"]]);export{F as default}; diff --git a/web/settings/assets/io_action-7d03813b.js b/web/settings/assets/io_action-7fdda1cd.js similarity index 60% rename from web/settings/assets/io_action-7d03813b.js rename to web/settings/assets/io_action-7fdda1cd.js index 5ada2c68a6..38f3814035 100644 --- a/web/settings/assets/io_action-7d03813b.js +++ b/web/settings/assets/io_action-7fdda1cd.js @@ -1 +1 @@ -import{a as d}from"./IoConfig-de1d5cc2.js";import{O as m}from"./OpenwbIoPattern-6f003fb0.js";import{_ as c,u as r,l as v,m as f,G as a,E as u,A as g,B as b,N as _}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const w={name:"IoActionRippleControlReceiver",components:{OpenwbIoPattern:m},mixins:[d],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(t){this.updateConfiguration(t,"configuration.input_pattern")}},availableDevices(){return[{label:this.availableChargePoints.length>0?"Ladepunkte":"Keine Ladepunkte verfügbar",options:this.availableChargePoints.map(e=>({value:{type:"cp",id:e.value},text:e.text}))}]}}};function V(t,e,h,x,C,o){var l;const i=r("openwb-base-select-input"),p=r("openwb-io-pattern");return v(),f(_,null,[a(p,{modelValue:o.value,"onUpdate:modelValue":e[0]||(e[0]=n=>o.value=n),contacts:t.ioDevice.input.digital,"enable-add-delete":!0,"min-patterns":2},{default:u(n=>[a(i,{modelValue:n.pattern.value,"onUpdate:modelValue":s=>n.pattern.value=s,required:"","not-selected":"Bitte auswählen","empty-value":null,options:[{value:0,text:"sperren"},{value:1,text:"freigeben"}]},null,8,["modelValue","onUpdate:modelValue"])]),_:1},8,["modelValue","contacts"]),e[3]||(e[3]=g("hr",null,null,-1)),a(i,{title:"Anwenden auf...","empty-value":[],groups:o.availableDevices,required:"",multiple:"","model-value":(l=t.ioAction)==null?void 0:l.configuration.devices,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.devices"))},{help:u(()=>[...e[2]||(e[2]=[b(" Bitte die Ladepunkte auswählen, auf die das Verhalten angewendet werden soll. Es können mehrere Einträge ausgewählt werden. ",-1)])]),_:1},8,["groups","model-value"])],64)}const O=c(w,[["render",V],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/ripple_control_receiver/io_action.vue"]]);export{O as default}; +import{a as d}from"./IoConfig-38958e2e.js";import{O as m}from"./OpenwbIoPattern-66bb2793.js";import{_ as c,u as r,l as v,m as f,G as a,E as u,A as g,B as b,N as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const w={name:"IoActionRippleControlReceiver",components:{OpenwbIoPattern:m},mixins:[d],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(t){this.updateConfiguration(t,"configuration.input_pattern")}},availableDevices(){return[{label:this.availableChargePoints.length>0?"Ladepunkte":"Keine Ladepunkte verfügbar",options:this.availableChargePoints.map(e=>({value:{type:"cp",id:e.value},text:e.text}))}]}}};function V(t,e,h,x,C,o){var l;const i=r("openwb-base-select-input"),p=r("openwb-io-pattern");return v(),f(_,null,[a(p,{modelValue:o.value,"onUpdate:modelValue":e[0]||(e[0]=n=>o.value=n),contacts:t.ioDevice.input.digital,"enable-add-delete":!0,"min-patterns":2},{default:u(n=>[a(i,{modelValue:n.pattern.value,"onUpdate:modelValue":s=>n.pattern.value=s,required:"","not-selected":"Bitte auswählen","empty-value":null,options:[{value:0,text:"sperren"},{value:1,text:"freigeben"}]},null,8,["modelValue","onUpdate:modelValue"])]),_:1},8,["modelValue","contacts"]),e[3]||(e[3]=g("hr",null,null,-1)),a(i,{title:"Anwenden auf...","empty-value":[],groups:o.availableDevices,required:"",multiple:"","model-value":(l=t.ioAction)==null?void 0:l.configuration.devices,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.devices"))},{help:u(()=>e[2]||(e[2]=[b(" Bitte die Ladepunkte auswählen, auf die das Verhalten angewendet werden soll. Es können mehrere Einträge ausgewählt werden. ",-1)])),_:1},8,["groups","model-value"])],64)}const O=c(w,[["render",V],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/ripple_control_receiver/io_action.vue"]]);export{O as default}; diff --git a/web/settings/assets/io_action-cd694bad.js b/web/settings/assets/io_action-a52c3f8c.js similarity index 50% rename from web/settings/assets/io_action-cd694bad.js rename to web/settings/assets/io_action-a52c3f8c.js index 45f0280b10..e449bb9d75 100644 --- a/web/settings/assets/io_action-cd694bad.js +++ b/web/settings/assets/io_action-a52c3f8c.js @@ -1 +1 @@ -import{a as v}from"./IoConfig-de1d5cc2.js";import{O as h}from"./OpenwbIoSinglePattern-b3081980.js";import{_ as w,u as r,l as _,m as k,G as u,A as p,E as V,B as g,N as A}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const x={name:"IoActionDimming",components:{OpenwbIoSinglePattern:h},mixins:[v],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(t){this.updateConfiguration(t,"configuration.input_pattern")}},ioDevicesOutputOptions(){let t=[];return this.availableIoDevices.forEach(e=>{let o=[];Object.keys(e==null?void 0:e.output.digital).forEach(a=>{o.push({text:`${a}`,value:{type:"io",id:e.id,digital_output:a}})}),o.length>0&&t.push({label:e.name,options:o})}),t},availableDevices(){return[{label:"Ladepunkte",options:this.availableChargePoints.map(t=>({value:{type:"cp",id:t.value},text:t.text}))}].concat(this.ioDevicesOutputOptions)}}};function E(t,e,o,a,O,n){var s,l,d,m;const c=r("openwb-io-single-pattern"),b=r("openwb-base-number-input"),f=r("openwb-base-select-input");return _(),k(A,null,[u(c,{modelValue:n.value,"onUpdate:modelValue":e[0]||(e[0]=i=>n.value=i),contacts:(l=(s=t.ioDevice)==null?void 0:s.input)==null?void 0:l.digital},null,8,["modelValue","contacts"]),u(b,{title:"maximale Bezugsleistung",unit:"kW",min:"0",step:"0.01",required:"",disabled:!(Object.keys(n.value[0].matrix).length>0),"model-value":((d=t.ioAction)==null?void 0:d.configuration.max_import_power)/1e3,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i*1e3,"configuration.max_import_power"))},null,8,["disabled","model-value"]),e[4]||(e[4]=p("hr",null,null,-1)),u(f,{title:"Anwenden auf...",groups:n.availableDevices,required:"",multiple:"",disabled:!(Object.keys(n.value[0].matrix).length>0),"model-value":(m=t.ioAction)==null?void 0:m.configuration.devices,"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateConfiguration(i,"configuration.devices"))},{help:V(()=>[...e[3]||(e[3]=[g(" Bitte die Ladepunkte und/oder digitale Ausgänge auswählen, welche berücksichtigt werden sollen. Es können mehrere Einträge ausgewählt werden. Bei steuerbaren Verbrauchseinrichtungen, die über einen digitalen Ausgang angesteuert werden, wird eine Leistung von 4,2 kW bei aktiver Dimmung angenommen. Ladepunkte werden so gesteuert, dass die angegebene Leistung am EVU-Punkt nicht überschritten wird. Eigene PV-Erzeugung und vorhandene Speicher werden berücksichtigt und zusätzlich genutzt.",-1),p("br",null,null,-1),g(' Zugeordnete digitale Ausgänge werden im nicht gedimmten Zustand aktiviert und im gedimmten Zustand deaktiviert. So ist sichergestellt, dass bei einem Verbindungsabbruch oder einem Ausfall der Steuerung die Verbraucher nicht ungewollt mit voller Leistung betrieben werden. Ein mit "NO" bezeichneter digitaler Ausgang ist also für den nicht gedimmten Zustand geschlossen und bei aktivierter Dimmung geöffnet. ',-1)])]),_:1},8,["groups","disabled","model-value"])],64)}const U=w(x,[["render",E],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/dimming/io_action.vue"]]);export{U as default}; +import{a as v}from"./IoConfig-38958e2e.js";import{O as h}from"./OpenwbIoSinglePattern-14df64f6.js";import{_ as w,u as r,l as _,m as k,G as u,A as p,E as V,B as g,N as A}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const x={name:"IoActionDimming",components:{OpenwbIoSinglePattern:h},mixins:[v],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(t){this.updateConfiguration(t,"configuration.input_pattern")}},ioDevicesOutputOptions(){let t=[];return this.availableIoDevices.forEach(e=>{let o=[];Object.keys(e==null?void 0:e.output.digital).forEach(a=>{o.push({text:`${a}`,value:{type:"io",id:e.id,digital_output:a}})}),o.length>0&&t.push({label:e.name,options:o})}),t},availableDevices(){return[{label:"Ladepunkte",options:this.availableChargePoints.map(t=>({value:{type:"cp",id:t.value},text:t.text}))}].concat(this.ioDevicesOutputOptions)}}};function E(t,e,o,a,O,n){var s,l,d,m;const c=r("openwb-io-single-pattern"),b=r("openwb-base-number-input"),f=r("openwb-base-select-input");return _(),k(A,null,[u(c,{modelValue:n.value,"onUpdate:modelValue":e[0]||(e[0]=i=>n.value=i),contacts:(l=(s=t.ioDevice)==null?void 0:s.input)==null?void 0:l.digital},null,8,["modelValue","contacts"]),u(b,{title:"maximale Bezugsleistung",unit:"kW",min:"0",step:"0.01",required:"",disabled:!(Object.keys(n.value[0].matrix).length>0),"model-value":((d=t.ioAction)==null?void 0:d.configuration.max_import_power)/1e3,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i*1e3,"configuration.max_import_power"))},null,8,["disabled","model-value"]),e[4]||(e[4]=p("hr",null,null,-1)),u(f,{title:"Anwenden auf...",groups:n.availableDevices,required:"",multiple:"",disabled:!(Object.keys(n.value[0].matrix).length>0),"model-value":(m=t.ioAction)==null?void 0:m.configuration.devices,"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateConfiguration(i,"configuration.devices"))},{help:V(()=>e[3]||(e[3]=[g(" Bitte die Ladepunkte und/oder digitale Ausgänge auswählen, welche berücksichtigt werden sollen. Es können mehrere Einträge ausgewählt werden. Bei steuerbaren Verbrauchseinrichtungen, die über einen digitalen Ausgang angesteuert werden, wird eine Leistung von 4,2 kW bei aktiver Dimmung angenommen. Ladepunkte werden so gesteuert, dass die angegebene Leistung am EVU-Punkt nicht überschritten wird. Eigene PV-Erzeugung und vorhandene Speicher werden berücksichtigt und zusätzlich genutzt.",-1),p("br",null,null,-1),g(' Zugeordnete digitale Ausgänge werden im nicht gedimmten Zustand aktiviert und im gedimmten Zustand deaktiviert. So ist sichergestellt, dass bei einem Verbindungsabbruch oder einem Ausfall der Steuerung die Verbraucher nicht ungewollt mit voller Leistung betrieben werden. Ein mit "NO" bezeichneter digitaler Ausgang ist also für den nicht gedimmten Zustand geschlossen und bei aktivierter Dimmung geöffnet. ',-1)])),_:1},8,["groups","disabled","model-value"])],64)}const U=w(x,[["render",E],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/dimming/io_action.vue"]]);export{U as default}; diff --git a/web/settings/assets/io_action-c74be46e.js b/web/settings/assets/io_action-d6457738.js similarity index 59% rename from web/settings/assets/io_action-c74be46e.js rename to web/settings/assets/io_action-d6457738.js index 4da96fddeb..ca630ef490 100644 --- a/web/settings/assets/io_action-c74be46e.js +++ b/web/settings/assets/io_action-d6457738.js @@ -1 +1 @@ -import{a as g}from"./IoConfig-de1d5cc2.js";import{O as c}from"./OpenwbIoSinglePattern-b3081980.js";import{_ as f,u,l as b,m as v,G as p,A as h,E as _,B as w,N as V}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const k={name:"IoActionDimmingDirectControl",components:{OpenwbIoSinglePattern:c},mixins:[g],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(t){this.updateConfiguration(t,"configuration.input_pattern")}},ioDevicesOutputOptions(){let t=[];return this.availableIoDevices.forEach(e=>{let n=[];Object.keys(e==null?void 0:e.output.digital).forEach(i=>{n.push({text:`${i}`,value:{type:"io",id:e.id,digital_output:i}})}),n.length>0&&t.push({label:e.name,options:n})}),t.length===0&&t.push({label:"Keine digitalen Ausgänge verfügbar",options:[]}),t},availableDevices(){return[{label:this.availableChargePoints.length>0?"Ladepunkte":"Keine Ladepunkte verfügbar",options:this.availableChargePoints.map(e=>({value:{type:"cp",id:e.value},text:e.text}))}].concat(this.ioDevicesOutputOptions)}}};function x(t,e,n,i,C,o){var l,r,s;const d=u("openwb-io-single-pattern"),m=u("openwb-base-select-input");return b(),v(V,null,[p(d,{modelValue:o.value,"onUpdate:modelValue":e[0]||(e[0]=a=>o.value=a),contacts:(r=(l=t.ioDevice)==null?void 0:l.input)==null?void 0:r.digital},null,8,["modelValue","contacts"]),e[3]||(e[3]=h("hr",null,null,-1)),p(m,{title:"Verhalten anwenden auf...","not-selected":"Bitte auswählen","empty-value":[],groups:o.availableDevices,multiple:"",required:"",disabled:!(Object.keys(o.value[0].matrix).length>0),"model-value":(s=t.ioAction)==null?void 0:s.configuration.devices,"onUpdate:modelValue":e[1]||(e[1]=a=>t.updateConfiguration(a,"configuration.devices"))},{help:_(()=>[...e[2]||(e[2]=[w(" Bitte die Ladepunkte und/oder digitalen Ausgänge auswählen, auf welche das Verhalten angewendet werden soll. Es können mehrere Einträge ausgewählt werden. Ladepunkte werden auf 4,2kW gedimmt, eine Verrechnung mit PV-Erzeugung findet nicht statt. ",-1)])]),_:1},8,["groups","disabled","model-value"])],64)}const j=f(k,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/dimming_direct_control/io_action.vue"]]);export{j as default}; +import{a as g}from"./IoConfig-38958e2e.js";import{O as c}from"./OpenwbIoSinglePattern-14df64f6.js";import{_ as f,u,l as b,m as v,G as p,A as h,E as _,B as w,N as V}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const k={name:"IoActionDimmingDirectControl",components:{OpenwbIoSinglePattern:c},mixins:[g],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(t){this.updateConfiguration(t,"configuration.input_pattern")}},ioDevicesOutputOptions(){let t=[];return this.availableIoDevices.forEach(e=>{let n=[];Object.keys(e==null?void 0:e.output.digital).forEach(i=>{n.push({text:`${i}`,value:{type:"io",id:e.id,digital_output:i}})}),n.length>0&&t.push({label:e.name,options:n})}),t.length===0&&t.push({label:"Keine digitalen Ausgänge verfügbar",options:[]}),t},availableDevices(){return[{label:this.availableChargePoints.length>0?"Ladepunkte":"Keine Ladepunkte verfügbar",options:this.availableChargePoints.map(e=>({value:{type:"cp",id:e.value},text:e.text}))}].concat(this.ioDevicesOutputOptions)}}};function x(t,e,n,i,C,o){var l,r,s;const d=u("openwb-io-single-pattern"),m=u("openwb-base-select-input");return b(),v(V,null,[p(d,{modelValue:o.value,"onUpdate:modelValue":e[0]||(e[0]=a=>o.value=a),contacts:(r=(l=t.ioDevice)==null?void 0:l.input)==null?void 0:r.digital},null,8,["modelValue","contacts"]),e[3]||(e[3]=h("hr",null,null,-1)),p(m,{title:"Verhalten anwenden auf...","not-selected":"Bitte auswählen","empty-value":[],groups:o.availableDevices,multiple:"",required:"",disabled:!(Object.keys(o.value[0].matrix).length>0),"model-value":(s=t.ioAction)==null?void 0:s.configuration.devices,"onUpdate:modelValue":e[1]||(e[1]=a=>t.updateConfiguration(a,"configuration.devices"))},{help:_(()=>e[2]||(e[2]=[w(" Bitte die Ladepunkte und/oder digitalen Ausgänge auswählen, auf welche das Verhalten angewendet werden soll. Es können mehrere Einträge ausgewählt werden. Ladepunkte werden auf 4,2kW gedimmt, eine Verrechnung mit PV-Erzeugung findet nicht statt. ",-1)])),_:1},8,["groups","disabled","model-value"])],64)}const j=f(k,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/dimming_direct_control/io_action.vue"]]);export{j as default}; diff --git a/web/settings/assets/io_action-fc96684d.js b/web/settings/assets/io_action-fc96684d.js deleted file mode 100644 index 6f46882542..0000000000 --- a/web/settings/assets/io_action-fc96684d.js +++ /dev/null @@ -1 +0,0 @@ -import{a as f}from"./IoConfig-de1d5cc2.js";import{O as b}from"./OpenwbIoPattern-6f003fb0.js";import{_ as v,u as r,l as p,m as w,G as l,E as a,B as i,F as g,A as s,x as A,z as V,N as h}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const k={name:"IoActionStepwiseControl",components:{OpenwbIoPattern:b},mixins:[f],computed:{availableDevices(){let t=this.availableComponents.filter(o=>o.type==="inverter").map(o=>({value:{type:o.type,id:o.value},text:o.text}));return[{label:t.length>0?"Wechselrichter":"Keine Wechselrichter verfügbar",options:t}]}}};function _(t,e,o,B,z,d){const u=r("openwb-io-pattern"),m=r("openwb-base-select-input"),c=r("openwb-base-button-group-input");return p(),w(h,null,[l(u,{modelValue:t.ioAction.configuration.input_pattern,"onUpdate:modelValue":e[0]||(e[0]=n=>t.ioAction.configuration.input_pattern=n),contacts:t.ioDevice.input.digital,"action-title":"Begrenzung","enable-add-delete":!1,class:"text-center"},{default:a(n=>[i(g(n.pattern.value*100+"%"),1)]),_:1},8,["modelValue","contacts"]),e[6]||(e[6]=s("hr",null,null,-1)),l(m,{modelValue:t.ioAction.configuration.devices,"onUpdate:modelValue":e[1]||(e[1]=n=>t.ioAction.configuration.devices=n),title:"Zugeordnete Erzeugungsanlagen...","not-selected":"Bitte auswählen","empty-value":[],groups:d.availableDevices,required:"",multiple:""},{help:a(()=>[...e[4]||(e[4]=[i(" Bitte die Erzeugungsanlagen auswählen, welche mit dieser Aktion gekoppelt sind. Es können mehrere Erzeugungsanlagen ausgewählt werden.",-1),s("br",null,null,-1),i(" Diese Zuordnung ist rein informativ und hat noch keine Auswirkungen auf die Funktionalität. Die Begrenzung der zugeordneten Erzeugungsanlagen wird im Status angezeigt. ",-1)])]),_:1},8,["modelValue","groups"]),e[7]||(e[7]=s("hr",null,null,-1)),l(c,{modelValue:t.ioAction.configuration.passthrough_enabled,"onUpdate:modelValue":e[2]||(e[2]=n=>t.ioAction.configuration.passthrough_enabled=n),title:"Ausgänge aktivieren",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],class:"mb-2",required:""},{help:a(()=>[...e[5]||(e[5]=[i(' Optional kann das Signal der konfigurierten Eingänge an Ausgänge durchgereicht ("durchgeschliffen") werden. Wird z.B. das Muster für 60% als aktiv erkannt, dann wird auch das hier festgelegte Ausgangsmuster für 60% aktiviert. ',-1)])]),_:1},8,["modelValue"]),t.ioAction.configuration.passthrough_enabled?(p(),A(u,{key:0,modelValue:t.ioAction.configuration.output_pattern,"onUpdate:modelValue":e[3]||(e[3]=n=>t.ioAction.configuration.output_pattern=n),contacts:t.ioDevice.output.digital,title:"Ausgangsmuster","action-title":"Begrenzung","enable-add-delete":!1,class:"text-center","show-check-pattern":!1},{default:a(n=>[i(g(n.pattern.value*100+"%"),1)]),_:1},8,["modelValue","contacts"])):V("",!0)],64)}const F=v(k,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/generator_systems/stepwise_control/io_action.vue"]]);export{F as default}; diff --git a/web/settings/assets/io_device-4394e2dd.js b/web/settings/assets/io_device-4394e2dd.js new file mode 100644 index 0000000000..f804882003 --- /dev/null +++ b/web/settings/assets/io_device-4394e2dd.js @@ -0,0 +1 @@ +import{O as m}from"./IoConfig-38958e2e.js";import{C as f}from"./index-8dd8e083.js";import{_ as g,u as s,l as h,m as b,G as a,E as l,B as o,A as n}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./dynamic-import-helper-be004503.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const _={name:"IoDeviceAddOn",mixins:[f,m],data(){return{mqttTopicsToSubscribe:["openWB/chargepoint/+/config"]}},computed:{configuredChargePoints(){const t=this.getWildcardTopics("openWB/chargepoint/+/config");let e=[];for(const i of Object.values(t))if(["external_openwb"].includes(i.type)){if(e.find(r=>r.value===i.configuration.ip_address))continue;e.push({value:i.configuration.ip_address,text:i.name})}return e},configuredDisplays(){return[]},availableIoSources:{get(){return[{label:"Ladepunkte",options:this.configuredChargePoints},{label:"Zusatzdisplays",options:this.configuredDisplays}].filter(t=>t.options.length>0)}}}},v={class:"io-device-add-on"};function w(t,e,i,r,B,d){const u=s("openwb-base-alert"),p=s("openwb-base-select-input");return h(),b("div",v,[a(u,{subtype:"warning"},{default:l(()=>e[1]||(e[1]=[o(" Die Kontakte der AddOn-Platine sind nicht galvanisch oder optisch getrennt. Es wird dringend empfohlen, mit Koppelrelais zu arbeiten.",-1),n("br",null,null,-1),o(" Weiterhin muss für die Verwendung der Kontakte in einer openWB series2 eine weitere Kabeldurchführung in das Gehäuse gebohrt werden. Da es hierbei zu Undichtigkeiten kommen kann, ist dies nur von fachkundigen Personen durchzuführen.",-1),n("br",null,null,-1),o(" Es wird keine Haftung für Schäden übernommen, die durch die direkte Beschaltung der Kontakte oder eine zusätzliche Bohrung im Gehäuse entstehen.",-1),n("br",null,null,-1),o(" Es wird der Einsatz des Dimm- & Control-Kits empfohlen! ",-1)])),_:1,__:[1]}),a(p,{title:"Installiert auf...","not-selected":"Bitte auswählen","empty-value":null,options:[{value:"localhost",text:"dieser openWB"}],groups:d.availableIoSources,"model-value":t.ioDevice.configuration.host,"onUpdate:modelValue":e[0]||(e[0]=c=>t.updateConfiguration(c,"configuration.host"))},{help:l(()=>e[2]||(e[2]=[o(" Bitte die Komponente auswählen, an der die Add-On-Platine installiert ist.",-1),n("br",null,null,-1),o(" Unterstützt werden:",-1),n("br",null,null,-1),n("ul",null,[n("li",null,"openWB standalone (als primary oder Zusatzdisplay)"),n("li",null,'openWB Ladepunkte als primary ("interne openWB") und secondary ("externe openWB")')],-1)])),_:1},8,["groups","model-value"])])}const E=g(_,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/add_on/io_device.vue"]]);export{E as default}; diff --git a/web/settings/assets/io_device-85eefe72.js b/web/settings/assets/io_device-85eefe72.js deleted file mode 100644 index 7fb226b309..0000000000 --- a/web/settings/assets/io_device-85eefe72.js +++ /dev/null @@ -1 +0,0 @@ -import{O as m}from"./IoConfig-de1d5cc2.js";import{C as f}from"./index-0992d19b.js";import{_ as g,u as s,l as h,m as b,G as a,E as l,B as o,A as n}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./dynamic-import-helper-be004503.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";const _={name:"IoDeviceAddOn",mixins:[f,m],data(){return{mqttTopicsToSubscribe:["openWB/chargepoint/+/config"]}},computed:{configuredChargePoints(){const t=this.getWildcardTopics("openWB/chargepoint/+/config");let e=[];for(const i of Object.values(t))if(["external_openwb"].includes(i.type)){if(e.find(r=>r.value===i.configuration.ip_address))continue;e.push({value:i.configuration.ip_address,text:i.name})}return e},configuredDisplays(){return[]},availableIoSources:{get(){return[{label:"Ladepunkte",options:this.configuredChargePoints},{label:"Zusatzdisplays",options:this.configuredDisplays}].filter(t=>t.options.length>0)}}}},v={class:"io-device-add-on"};function w(t,e,i,r,B,d){const u=s("openwb-base-alert"),p=s("openwb-base-select-input");return h(),b("div",v,[a(u,{subtype:"warning"},{default:l(()=>[...e[1]||(e[1]=[o(" Die Kontakte der AddOn-Platine sind nicht galvanisch oder optisch getrennt. Es wird dringend empfohlen, mit Koppelrelais zu arbeiten.",-1),n("br",null,null,-1),o(" Weiterhin muss für die Verwendung der Kontakte in einer openWB series2 eine weitere Kabeldurchführung in das Gehäuse gebohrt werden. Da es hierbei zu Undichtigkeiten kommen kann, ist dies nur von fachkundigen Personen durchzuführen.",-1),n("br",null,null,-1),o(" Es wird keine Haftung für Schäden übernommen, die durch die direkte Beschaltung der Kontakte oder eine zusätzliche Bohrung im Gehäuse entstehen.",-1),n("br",null,null,-1),o(" Es wird der Einsatz des Dimm- & Control-Kits empfohlen! ",-1)])]),_:1}),a(p,{title:"Installiert auf...","not-selected":"Bitte auswählen","empty-value":null,options:[{value:"localhost",text:"dieser openWB"}],groups:d.availableIoSources,"model-value":t.ioDevice.configuration.host,"onUpdate:modelValue":e[0]||(e[0]=c=>t.updateConfiguration(c,"configuration.host"))},{help:l(()=>[...e[2]||(e[2]=[o(" Bitte die Komponente auswählen, an der die Add-On-Platine installiert ist.",-1),n("br",null,null,-1),o(" Unterstützt werden:",-1),n("br",null,null,-1),n("ul",null,[n("li",null,"openWB standalone (als primary oder Zusatzdisplay)"),n("li",null,'openWB Ladepunkte als primary ("interne openWB") und secondary ("externe openWB")')],-1)])]),_:1},8,["groups","model-value"])])}const E=g(_,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/add_on/io_device.vue"]]);export{E as default}; diff --git a/web/settings/assets/io_device-bab7e132.js b/web/settings/assets/io_device-e4d01342.js similarity index 70% rename from web/settings/assets/io_device-bab7e132.js rename to web/settings/assets/io_device-e4d01342.js index 5f38f4470b..53995d09d8 100644 --- a/web/settings/assets/io_device-bab7e132.js +++ b/web/settings/assets/io_device-e4d01342.js @@ -1 +1 @@ -import{O as m}from"./IoConfig-de1d5cc2.js";import{_ as p,u as r,l as a,m as s,G as t}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const d={name:"IoDeviceDimmKit",mixins:[m]},l={class:"io-device-dimm-kit"};function v(o,e,c,f,_,b){const u=r("openwb-base-text-input"),n=r("openwb-base-number-input");return a(),s("div",l,[t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.ioDevice.configuration.host,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.host"))},null,8,["model-value"]),t(n,{title:"Port",required:"","model-value":o.ioDevice.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"]),t(n,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.ioDevice.configuration.modbus_id,"onUpdate:modelValue":e[2]||(e[2]=i=>o.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const B=p(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/dimm_kit/io_device.vue"]]);export{B as default}; +import{O as m}from"./IoConfig-38958e2e.js";import{_ as p,u as r,l as a,m as s,G as t}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"IoDeviceDimmKit",mixins:[m]},l={class:"io-device-dimm-kit"};function v(o,e,c,f,_,b){const u=r("openwb-base-text-input"),n=r("openwb-base-number-input");return a(),s("div",l,[t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.ioDevice.configuration.host,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.host"))},null,8,["model-value"]),t(n,{title:"Port",required:"","model-value":o.ioDevice.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"]),t(n,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.ioDevice.configuration.modbus_id,"onUpdate:modelValue":e[2]||(e[2]=i=>o.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const B=p(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/dimm_kit/io_device.vue"]]);export{B as default}; diff --git a/web/settings/assets/monitoring-14acb64f.js b/web/settings/assets/monitoring-14acb64f.js deleted file mode 100644 index e3711a0e51..0000000000 --- a/web/settings/assets/monitoring-14acb64f.js +++ /dev/null @@ -1 +0,0 @@ -import{M as l}from"./DataManagement-81c5a852.js";import{_ as p,u as a,l as d,m,G as t,E as g,B as r,A as s}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const f={name:"MonitoringZabbix",mixins:[l]},b={class:"monitoring-zabbix"};function v(n,e,k,_,w,y){const u=a("openwb-base-alert"),i=a("openwb-base-text-input");return d(),m("div",b,[t(u,{subtype:"info"},{default:g(()=>[...e[4]||(e[4]=[r(" Mit dem Monitoring-Service von openWB kannst Du Dein System ganz einfach überwachen. Einfach ",-1),s("a",{href:"https://wb-solution.de/produkt/aktives-monitoring-openwb-installation-2/",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),r(" anmelden und Deine Zugangsdaten erhalten.",-1),s("br",null,null,-1),r("Alternativ kannst Du auch deinen eigenen Zabbix-Server aufsetzen und die Zugangsdaten hier eintragen. ",-1)])]),_:1}),t(i,{title:"Zielhost",subtype:"host",required:"","model-value":n.monitoring.configuration.destination_host,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.destination_host"))},null,8,["model-value"]),t(i,{title:"Eigener Hostname",subtype:"user",required:"","model-value":n.monitoring.configuration.hostname,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.hostname"))},null,8,["model-value"]),t(i,{title:"PSK Identifier",subtype:"text",required:"","model-value":n.monitoring.configuration.psk_identifier,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.psk_identifier"))},null,8,["model-value"]),t(i,{title:"PSK Key",subtype:"password",required:"","model-value":n.monitoring.configuration.psk_key,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.psk_key"))},null,8,["model-value"])])}const q=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/zabbix/monitoring.vue"]]);export{q as default}; diff --git a/web/settings/assets/monitoring-1f99e249.js b/web/settings/assets/monitoring-1f99e249.js new file mode 100644 index 0000000000..f34459a9fa --- /dev/null +++ b/web/settings/assets/monitoring-1f99e249.js @@ -0,0 +1 @@ +import{M as l}from"./DataManagement-52054445.js";import{_ as p,u as a,l as d,m,G as t,E as g,B as r,A as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"MonitoringZabbix",mixins:[l]},b={class:"monitoring-zabbix"};function v(n,e,_,k,w,y){const u=a("openwb-base-alert"),i=a("openwb-base-text-input");return d(),m("div",b,[t(u,{subtype:"info"},{default:g(()=>e[4]||(e[4]=[r(" Mit dem Monitoring-Service von openWB kannst Du Dein System ganz einfach überwachen. Einfach ",-1),s("a",{href:"https://wb-solution.de/produkt/aktives-monitoring-openwb-installation-2/",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),r(" anmelden und Deine Zugangsdaten erhalten.",-1),s("br",null,null,-1),r("Alternativ kannst Du auch deinen eigenen Zabbix-Server aufsetzen und die Zugangsdaten hier eintragen. ",-1)])),_:1,__:[4]}),t(i,{title:"Zielhost",subtype:"host",required:"","model-value":n.monitoring.configuration.destination_host,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.destination_host"))},null,8,["model-value"]),t(i,{title:"Eigener Hostname",subtype:"user",required:"","model-value":n.monitoring.configuration.hostname,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.hostname"))},null,8,["model-value"]),t(i,{title:"PSK Identifier",subtype:"text",required:"","model-value":n.monitoring.configuration.psk_identifier,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.psk_identifier"))},null,8,["model-value"]),t(i,{title:"PSK Key",subtype:"password",required:"","model-value":n.monitoring.configuration.psk_key,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.psk_key"))},null,8,["model-value"])])}const q=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/zabbix/monitoring.vue"]]);export{q as default}; diff --git a/web/settings/assets/vehicle-04c99766.js b/web/settings/assets/vehicle-04c99766.js new file mode 100644 index 0000000000..960e8824d2 --- /dev/null +++ b/web/settings/assets/vehicle-04c99766.js @@ -0,0 +1 @@ +import{V as a}from"./VehicleConfig-c6e5b45b.js";import{_ as d,u,l as p,m as g,G as o,E as l,B as i,A as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocTronity",mixins:[a]},f={class:"vehicle-soc-tronity"};function b(n,e,v,C,w,h){const r=u("openwb-base-text-input"),s=u("openwb-base-button-group-input");return p(),g("div",f,[o(r,{title:"Vehicle ID",subtype:"text",required:"","model-value":n.vehicle.configuration.vehicle_id,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.vehicle_id"))},{help:l(()=>e[4]||(e[4]=[i(' Vehicle ID aus Tronity angeben. Diese ist in den "Assigned Vehicles" zu finden. ',-1)])),_:1},8,["model-value"]),o(r,{title:"Client ID",subtype:"text",required:"","model-value":n.vehicle.configuration.client_id,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.client_id"))},{help:l(()=>e[5]||(e[5]=[i(' Client ID aus Tronity angeben. Diese ist in den "Application Settings" zu finden. ',-1)])),_:1},8,["model-value"]),o(r,{title:"Client Secret",subtype:"password",required:"","model-value":n.vehicle.configuration.client_secret,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.client_secret"))},{help:l(()=>e[6]||(e[6]=[i(' Client Secret aus Tronity angeben. Diese ist in den "Application Settings" zu finden. Das Client Secret kann nur einmalig abgerufen werden. Ggf. neu erzeugen, womit frühere Client Secrets ungültig werden. ',-1)])),_:1},8,["model-value"]),o(s,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.calculate_soc"))},{help:l(()=>e[7]||(e[7]=[i(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),c("br",null,null,-1),i(" Derzeit notwendig für Peugeot, Opel, Citroen und DS. ",-1)])),_:1},8,["model-value"])])}const T=d(m,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/tronity/vehicle.vue"]]);export{T as default}; diff --git a/web/settings/assets/vehicle-0bf59308.js b/web/settings/assets/vehicle-0bf59308.js deleted file mode 100644 index 84fc9a2c8e..0000000000 --- a/web/settings/assets/vehicle-0bf59308.js +++ /dev/null @@ -1 +0,0 @@ -import{V as n}from"./VehicleConfig-233066dd.js";import{_ as s,u as i,l as o,m as r,G as a,E as d,B as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const p={name:"VehicleSocManual",mixins:[n]},c={class:"vehicle-soc-tesla"};function m(u,e,_,f,h,g){const t=i("openwb-base-alert");return o(),r("div",c,[a(t,{subtype:"info"},{default:d(()=>[...e[0]||(e[0]=[l(' Beim Anstecken des Fahrzeugs muss der aktuelle SoC über die Hauptseite angegeben werden. Anhand des Zählers im Ladepunkt wird dann der aktuelle SoC errechnet. Ausschlaggebend für die Qualität dieses Moduls sind die beiden Einstellungen "Kapazität der Batterie" in dem Fahrzeug-Profil und "Wirkungsgrad der Ladeelektronik". ',-1)])]),_:1})])}const z=s(p,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/manual/vehicle.vue"]]);export{z as default}; diff --git a/web/settings/assets/vehicle-eec1770e.js b/web/settings/assets/vehicle-16754a95.js similarity index 69% rename from web/settings/assets/vehicle-eec1770e.js rename to web/settings/assets/vehicle-16754a95.js index 0f729c150e..6c73beffc2 100644 --- a/web/settings/assets/vehicle-eec1770e.js +++ b/web/settings/assets/vehicle-16754a95.js @@ -1 +1 @@ -import{V as a}from"./VehicleConfig-233066dd.js";import{_ as u,u as l,l as p,m as s,G as i}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocEvnotify",mixins:[a]},d={class:"vehicle-soc-evnotify"};function f(e,o,c,v,b,g){const r=l("openwb-base-number-input"),t=l("openwb-base-text-input");return p(),s("div",d,[i(r,{title:"ID",required:"",min:0,"model-value":e.vehicle.configuration.id,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.id"))},null,8,["model-value"]),i(t,{title:"AKey",required:"","model-value":e.vehicle.configuration.akey,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n,"configuration.akey"))},null,8,["model-value"]),i(t,{title:"Token",required:"","model-value":e.vehicle.configuration.token,"onUpdate:modelValue":o[2]||(o[2]=n=>e.updateConfiguration(n,"configuration.token"))},null,8,["model-value"])])}const B=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/evnotify/vehicle.vue"]]);export{B as default}; +import{V as a}from"./VehicleConfig-c6e5b45b.js";import{_ as u,u as l,l as p,m as s,G as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocEvnotify",mixins:[a]},d={class:"vehicle-soc-evnotify"};function f(e,o,c,v,b,g){const r=l("openwb-base-number-input"),t=l("openwb-base-text-input");return p(),s("div",d,[i(r,{title:"ID",required:"",min:0,"model-value":e.vehicle.configuration.id,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.id"))},null,8,["model-value"]),i(t,{title:"AKey",required:"","model-value":e.vehicle.configuration.akey,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n,"configuration.akey"))},null,8,["model-value"]),i(t,{title:"Token",required:"","model-value":e.vehicle.configuration.token,"onUpdate:modelValue":o[2]||(o[2]=n=>e.updateConfiguration(n,"configuration.token"))},null,8,["model-value"])])}const B=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/evnotify/vehicle.vue"]]);export{B as default}; diff --git a/web/settings/assets/vehicle-16e46ceb.js b/web/settings/assets/vehicle-16e46ceb.js deleted file mode 100644 index c40adf10cc..0000000000 --- a/web/settings/assets/vehicle-16e46ceb.js +++ /dev/null @@ -1 +0,0 @@ -import{V as u}from"./VehicleConfig-233066dd.js";import{_ as a,u as s,l as d,m as p,G as i,E as r,B as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocRenault",mixins:[u]},f={class:"vehicle-soc-renault"};function v(n,e,g,V,w,b){const t=s("openwb-base-text-input");return d(),p("div",f,[i(t,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.user_id"))},{help:r(()=>[...e[4]||(e[4]=[l(" Der Benutzername für die Anmeldung an den Renault-Servern. ",-1)])]),_:1},8,["model-value"]),i(t,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.password"))},{help:r(()=>[...e[5]||(e[5]=[l(" Das Passwort für die Anmeldung an den Renault-Servern. ",-1)])]),_:1},8,["model-value"]),i(t,{title:"Land",required:"","model-value":n.vehicle.configuration.country,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.country"))},{help:r(()=>[...e[6]||(e[6]=[l(" Land des Fahrzeugs, z.b. DE für Deutschland. ",-1)])]),_:1},8,["model-value"]),i(t,{title:"VIN","model-value":n.vehicle.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.vin"))},{help:r(()=>[...e[7]||(e[7]=[l(" Die Fahrgestellnummer des Fahrzeugs falls mehrere Fahrzeuge im Account vorhanden sind. ",-1)])]),_:1},8,["model-value"])])}const $=a(m,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/renault/vehicle.vue"]]);export{$ as default}; diff --git a/web/settings/assets/vehicle-38543ffd.js b/web/settings/assets/vehicle-38543ffd.js new file mode 100644 index 0000000000..e268ca8cf1 --- /dev/null +++ b/web/settings/assets/vehicle-38543ffd.js @@ -0,0 +1 @@ +import{V as u}from"./VehicleConfig-c6e5b45b.js";import{_ as a,u as s,l as d,m as p,G as i,E as r,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocRenault",mixins:[u]},f={class:"vehicle-soc-renault"};function v(n,e,g,V,w,b){const t=s("openwb-base-text-input");return d(),p("div",f,[i(t,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.user_id"))},{help:r(()=>e[4]||(e[4]=[l(" Der Benutzername für die Anmeldung an den Renault-Servern. ",-1)])),_:1},8,["model-value"]),i(t,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.password"))},{help:r(()=>e[5]||(e[5]=[l(" Das Passwort für die Anmeldung an den Renault-Servern. ",-1)])),_:1},8,["model-value"]),i(t,{title:"Land",required:"","model-value":n.vehicle.configuration.country,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.country"))},{help:r(()=>e[6]||(e[6]=[l(" Land des Fahrzeugs, z.b. DE für Deutschland. ",-1)])),_:1},8,["model-value"]),i(t,{title:"VIN","model-value":n.vehicle.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.vin"))},{help:r(()=>e[7]||(e[7]=[l(" Die Fahrgestellnummer des Fahrzeugs falls mehrere Fahrzeuge im Account vorhanden sind. ",-1)])),_:1},8,["model-value"])])}const $=a(m,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/renault/vehicle.vue"]]);export{$ as default}; diff --git a/web/settings/assets/vehicle-3896a2ec.js b/web/settings/assets/vehicle-3896a2ec.js new file mode 100644 index 0000000000..c10c7adef0 --- /dev/null +++ b/web/settings/assets/vehicle-3896a2ec.js @@ -0,0 +1 @@ +import{V as u}from"./VehicleConfig-c6e5b45b.js";import{_ as p,u as a,l as d,m,G as o,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"VehicleSocLeaf",mixins:[u]},f={class:"vehicle-soc-leaf"};function g(t,e,c,b,w,N){const s=a("openwb-base-text-input"),l=a("openwb-base-select-input");return d(),m("div",f,[o(s,{title:"Benutzername",required:"",subtype:"user","model-value":t.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.user_id"))},{help:i(()=>e[3]||(e[3]=[r(" Der Benutzername für die Anmeldung an den Nissan-Servern. ",-1)])),_:1},8,["model-value"]),o(s,{title:"Kennwort",required:"",subtype:"password","model-value":t.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.password"))},{help:i(()=>e[4]||(e[4]=[r(" Das Passwort für die Anmeldung an den Nissan-Servern. ",-1)])),_:1},8,["model-value"]),o(l,{title:"Region",required:"","not-selected":"Bitte auswählen",options:[{value:"NE",text:"Europa (getestet)"},{value:"NNA",text:"USA (nicht getestet)"},{value:"NCI",text:"Kanada (nicht getestet)"},{value:"NMA",text:"Australien (nicht getestet)"},{value:"NML",text:"Japan (nicht getestet)"}],"model-value":t.vehicle.configuration.region,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.region"))},{help:i(()=>e[5]||(e[5]=[r(" Die Region, in der das Fahrzeug betrieben wird. ",-1)])),_:1},8,["model-value"])])}const U=p(v,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/leaf/vehicle.vue"]]);export{U as default}; diff --git a/web/settings/assets/vehicle-3cb9cb75.js b/web/settings/assets/vehicle-3cb9cb75.js new file mode 100644 index 0000000000..7a4f8305c3 --- /dev/null +++ b/web/settings/assets/vehicle-3cb9cb75.js @@ -0,0 +1 @@ +import{V as m}from"./VehicleConfig-c6e5b45b.js";import{_ as b,u as s,l as g,m as _,G as i,E as o,B as n,A as u,F as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"VehicleSocMercedesEq",mixins:[m],computed:{callback_url(){return`${location.origin}/openWB/web/settings/modules/vehicles/mercedeseq/callback_vehicle.php`},login_url(){return`https://ssoalpha.dvb.corpinter.net/v1/auth?response_type=code&state=${this.vehicleId}&client_id=${this.vehicle.configuration.client_id}&redirect_uri=${this.callback_url}&scope=mb:vehicle:mbdata:evstatus%20offline_access%20openid`},input_complete(){return this.vehicle.configuration.client_id&&this.vehicle.configuration.client_secret&&this.vehicle.configuration.vin}},methods:{login_window(){console.debug("callback url",this.callback_url),console.debug("login url",this.login_url);var t=window.open(this.login_url,"MercedesLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");t.focus()}}},h={class:"vehicle-soc-mercedeseq"};function w(t,e,k,C,y,r){const a=s("openwb-base-text-input"),d=s("openwb-base-copy-to-clipboard"),p=s("openwb-base-alert"),c=s("openwb-base-button-input");return g(),_("div",h,[i(a,{title:"Client-ID",required:"",subtype:"user","model-value":t.vehicle.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=l=>t.updateConfiguration(l,"configuration.client_id"))},{help:o(()=>e[3]||(e[3]=[n(" Die im Developer Portal angelegte Client-ID. ",-1)])),_:1},8,["model-value"]),i(a,{title:"Client Secret",required:"",subtype:"password","model-value":t.vehicle.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=l=>t.updateConfiguration(l,"configuration.client_secret"))},{help:o(()=>e[4]||(e[4]=[n(" Das im Developer Portal angelegte Client Secret. ",-1)])),_:1},8,["model-value"]),i(a,{title:"VIN",required:"","model-value":t.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=l=>t.updateConfiguration(l,"configuration.vin"))},{help:o(()=>e[5]||(e[5]=[n(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"]),i(p,{subtype:"info"},{default:o(()=>[e[6]||(e[6]=n(" Vor dem Anmelden bitte die Angaben speichern.",-1)),e[7]||(e[7]=u("br",null,null,-1)),e[8]||(e[8]=n(" Die Callback-URL für die Anmeldung lautet:",-1)),e[9]||(e[9]=u("br",null,null,-1)),i(d,{class:"text-info",tooltip:"URL kopieren"},{default:o(()=>[n(v(r.callback_url),1)]),_:1})]),_:1,__:[6,7,8,9]}),i(c,{title:"Anmelden","button-text":"Bei Mercedes Anmelden",subtype:"success",disabled:!r.input_complete,onButtonClicked:r.login_window},{help:o(()=>e[10]||(e[10]=[n(" Es wird ein neues Browserfenster geöffnet, in dem Sie sich bei Mercedes mit Ihren Zugangsdaten anmelden können.",-1),u("br",null,null,-1)])),_:1},8,["disabled","onButtonClicked"])])}const U=b(f,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/mercedeseq/vehicle.vue"]]);export{U as default}; diff --git a/web/settings/assets/vehicle-432a8e97.js b/web/settings/assets/vehicle-432a8e97.js deleted file mode 100644 index c925874505..0000000000 --- a/web/settings/assets/vehicle-432a8e97.js +++ /dev/null @@ -1 +0,0 @@ -import{V as a}from"./VehicleConfig-233066dd.js";import{_ as s,u as p,l as u,m,G as n,E as r,B as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const d={name:"VehicleSocHttp",mixins:[a]},c={class:"vehicle-soc-http"};function v(t,e,f,h,g,w){const i=p("openwb-base-text-input");return u(),m("div",c,[n(i,{title:"SoC URL",subtype:"url",required:"","model-value":t.vehicle.configuration.soc_url,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.soc_url"))},{help:r(()=>[...e[2]||(e[2]=[l(" Es wird vom Server eine Zahl (Float mit Punkt als Dezimaltrennzeichen oder Integer) erwartet, welche den aktuellen Ladestand in Prozent (0 bis 100) zurückgibt. ",-1)])]),_:1},8,["model-value"]),n(i,{title:"Reichweiten URL",subtype:"url","model-value":t.vehicle.configuration.range_url,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.range_url"))},{help:r(()=>[...e[3]||(e[3]=[l(" Es wird vom Server eine Zahl (Float mit Punkt als Dezimaltrennzeichen oder Integer) erwartet, welche die aktuelle Reichweite in Kilometern darstellt. Diese Angabe ist optional. ",-1)])]),_:1},8,["model-value"])])}const R=s(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/http/vehicle.vue"]]);export{R as default}; diff --git a/web/settings/assets/vehicle-4a5ca121.js b/web/settings/assets/vehicle-4a5ca121.js new file mode 100644 index 0000000000..b133dd35a2 --- /dev/null +++ b/web/settings/assets/vehicle-4a5ca121.js @@ -0,0 +1 @@ +import{V as m}from"./VehicleConfig-c6e5b45b.js";import{_ as p,u as s,l as g,m as b,G as r,E as i,B as n,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"VehicleSocJson",mixins:[m]},w={class:"vehicle-soc-json"};function h(t,e,v,c,k,z){const a=s("openwb-base-text-input"),u=s("openwb-base-button-group-input"),d=s("openwb-base-number-input");return g(),b("div",w,[r(a,{title:"URL",subtype:"url",required:"","model-value":t.vehicle.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.url"))},{help:i(()=>e[6]||(e[6]=[n(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen, optional einem Port und einem Pfad. Die Antwort muss ein json-Objekt sein. Beispiel: http://192.168.1.1:8080/json?data=1 ",-1)])),_:1},8,["model-value"]),r(a,{title:"Abfrage für SoC",subtype:"text",required:"","model-value":t.vehicle.configuration.soc_pattern,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.soc_pattern"))},{help:i(()=>e[7]||(e[7]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.soc eingetragen werden. ',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen Ladestand (SoC) darstellt. ",-1)])),_:1},8,["model-value"]),r(a,{title:"Abfrage für Reichweite",subtype:"text","model-value":t.vehicle.configuration.range_pattern,"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateConfiguration(o,"configuration.range_pattern"))},{help:i(()=>e[8]||(e[8]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.range eingetragen werden. ',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Reichweite darstellt.",-1),l("br",null,null,-1),n(" Ohne Angabe wird die Reichweite nicht abgefragt und auf Null gesetzt. ",-1)])),_:1},8,["model-value"]),r(a,{title:"Abfrage für Zeitstempel",subtype:"text","model-value":t.vehicle.configuration.timestamp_pattern,"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateConfiguration(o,"configuration.timestamp_pattern"))},{help:i(()=>e[9]||(e[9]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.timestamp eingetragen werden.',-1),l("br",null,null,-1),n(" Es wird vom Server entweder eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen als Epoch Zeitstempel oder eine ISO 8601 formatierte Zeit erwartet welche den Zeitstempel der gelieferten Werte darstellt.",-1),l("br",null,null,-1),n(" Ohne Angabe wird der Zeitpunkt des Datenabrufs als Zeitstempel verwendet. ",-1)])),_:1},8,["model-value"]),r(u,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateConfiguration(o,"configuration.calculate_soc"))},{help:i(()=>e[10]||(e[10]=[n(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),l("br",null,null,-1),n(" Derzeit u.a. notwendig für Peugeot, Opel, Citroen und DS. ",-1)])),_:1},8,["model-value"]),r(d,{title:"Timeout für http-Abfragen",subtype:"number","model-value":t.vehicle.configuration.timeout,"onUpdate:modelValue":e[5]||(e[5]=o=>t.updateConfiguration(o,"configuration.timeout"))},{help:i(()=>e[11]||(e[11]=[n(" Ermöglicht es einen Timeout für die http-Abfragen zu setzen. Der Wert wird in Sekunden angegeben. Standardwert ist 5 Sekunden sofern kein anderer Wert angegeben ist. ",-1)])),_:1},8,["model-value"])])}const E=p(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/json/vehicle.vue"]]);export{E as default}; diff --git a/web/settings/assets/vehicle-5d3ec9e7.js b/web/settings/assets/vehicle-5d3ec9e7.js deleted file mode 100644 index 8f5eaf7121..0000000000 --- a/web/settings/assets/vehicle-5d3ec9e7.js +++ /dev/null @@ -1 +0,0 @@ -import{V as l}from"./VehicleConfig-233066dd.js";import{_ as p,u as a,l as m,m as f,G as r,E as t,B as i}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const g={name:"VehicleSocPSACC",mixins:[l]},v={class:"vehicle-soc-psacc"};function c(n,e,b,_,C,h){const d=a("openwb-base-alert"),s=a("openwb-base-text-input"),u=a("openwb-base-number-input");return m(),f("div",v,[r(d,{subtype:"info"},{default:t(()=>[...e[3]||(e[3]=[i(' Der PSA Car Controller muss auf einem eigenen Host installiert werden, mit Zugangsdaten konfiguriert werden und dauerhaft laufen. Die openWB ruft den SoC zu Beginn der Ladung vom PSA Car Controller ab. Während der Ladung liefert PSA keine Updates. Daher wird der SoC während der Ladung aus dem Zählerstand berechnet. Ausschlaggebend für die Genauigkeit dieser Berechnung sind die beiden Einstellungen "Kapazität der Batterie" und "Wirkungsgrad der Ladeelektronik" im Fahrzeug-Profil. ',-1)])]),_:1}),r(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.vehicle.configuration.psacc_server_or_ip,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.psacc_server_or_ip"))},{help:t(()=>[...e[4]||(e[4]=[i("Host, auf dem der PSA Car Controller läuft.",-1)])]),_:1},8,["model-value"]),r(u,{title:"Port",required:"",min:1,max:65535,"model-value":n.vehicle.configuration.psacc_port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.psacc_port"))},{help:t(()=>[...e[5]||(e[5]=[i("Nummer des Ports, den der PSA Car Controller verwendet.",-1)])]),_:1},8,["model-value"]),r(s,{title:"VIN",subtype:"text",required:"","model-value":n.vehicle.configuration.vehicle_vin,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.vehicle_vin"))},{help:t(()=>[...e[6]||(e[6]=[i("Fahrzeug-Identifizierungsnummer des Fahrzeugs, von dem der SoC abgefragt wird.",-1)])]),_:1},8,["model-value"])])}const L=p(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/psacc/vehicle.vue"]]);export{L as default}; diff --git a/web/settings/assets/vehicle-1b6d0189.js b/web/settings/assets/vehicle-65e3046c.js similarity index 52% rename from web/settings/assets/vehicle-1b6d0189.js rename to web/settings/assets/vehicle-65e3046c.js index bd46ea22f7..1c4403b54d 100644 --- a/web/settings/assets/vehicle-1b6d0189.js +++ b/web/settings/assets/vehicle-65e3046c.js @@ -1 +1 @@ -import{V as r}from"./VehicleConfig-233066dd.js";import{_ as l,u as s,l as a,m as u,G as i,E as p,B as d}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocSmartHello",mixins:[r]},f={class:"vehicle-soc-smart-hello"};function v(o,e,c,g,h,V){const n=s("openwb-base-text-input");return a(),u("div",f,[i(n,{title:"Benutzername",subtype:"user",required:"","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user_id"))},null,8,["model-value"]),i(n,{title:"Kennwort",subtype:"password",required:"","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"]),i(n,{title:"VIN",subtype:"text","model-value":o.vehicle.configuration.VIN,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.VIN"))},{help:p(()=>[...e[3]||(e[3]=[d(" Fahrgestellnummer (VIN) des Fahrzeugs. Notwendig falls mehrere Fahrzeuge im Account des Herstellers vorhanden sind. ",-1)])]),_:1},8,["model-value"])])}const y=l(m,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/smarthello/vehicle.vue"]]);export{y as default}; +import{V as r}from"./VehicleConfig-c6e5b45b.js";import{_ as l,u as s,l as a,m as u,G as i,E as p,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocSmartHello",mixins:[r]},f={class:"vehicle-soc-smart-hello"};function v(o,e,c,g,h,V){const n=s("openwb-base-text-input");return a(),u("div",f,[i(n,{title:"Benutzername",subtype:"user",required:"","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user_id"))},null,8,["model-value"]),i(n,{title:"Kennwort",subtype:"password",required:"","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"]),i(n,{title:"VIN",subtype:"text","model-value":o.vehicle.configuration.VIN,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.VIN"))},{help:p(()=>e[3]||(e[3]=[d(" Fahrgestellnummer (VIN) des Fahrzeugs. Notwendig falls mehrere Fahrzeuge im Account des Herstellers vorhanden sind. ",-1)])),_:1},8,["model-value"])])}const y=l(m,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/smarthello/vehicle.vue"]]);export{y as default}; diff --git a/web/settings/assets/vehicle-66cc49e0.js b/web/settings/assets/vehicle-66cc49e0.js deleted file mode 100644 index 70a3eeb582..0000000000 --- a/web/settings/assets/vehicle-66cc49e0.js +++ /dev/null @@ -1 +0,0 @@ -import{V as a}from"./VehicleConfig-233066dd.js";import{_ as p,u as s,l as m,m as v,G as t,E as l,B as o,A as i}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const f={name:"VehicleSocOVMS",mixins:[a]},g={class:"vehicle-soc-ovms"};function b(n,e,V,w,S,M){const d=s("openwb-base-alert"),u=s("openwb-base-text-input");return m(),v("div",g,[t(d,{subtype:"info"},{default:l(()=>[...e[4]||(e[4]=[o(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),i("a",{href:"https://github.com/openWB/core/wiki/SoC-OVMS",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul OVMS",-1)])]),_:1}),t(u,{title:"Server URL",required:"","model-value":n.vehicle.configuration.server_url,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.server_url"))},{help:l(()=>[...e[5]||(e[5]=[o(" Die URL (incl. Port) des API des OVMS-Servers, an dem das OVMS-Modul angemeldet ist, z.B. ",-1),i("br",null,null,-1),o(" https://ovms.dexters-web.de:6869",-1),i("br",null,null,-1),o(" oder",-1),i("br",null,null,-1),o(" https://api.openvehicles.com:6869",-1),i("br",null,null,-1),o(" oder ein custom server",-1),i("br",null,null,-1)])]),_:1},8,["model-value"]),t(u,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateConfiguration(r,"configuration.user_id"))},{help:l(()=>[...e[6]||(e[6]=[o(" Der Benutzername für die Anmeldung am benutzen OVMS-Servers. ",-1)])]),_:1},8,["model-value"]),t(u,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=r=>n.updateConfiguration(r,"configuration.password"))},{help:l(()=>[...e[7]||(e[7]=[o(" Das Passwort für die Anmeldung am OVMS-Server. ",-1)])]),_:1},8,["model-value"]),t(u,{title:"Vehicle Id",required:"","model-value":n.vehicle.configuration.vehicleId,"onUpdate:modelValue":e[3]||(e[3]=r=>n.updateConfiguration(r,"configuration.vehicleId"))},{help:l(()=>[...e[8]||(e[8]=[o(" Die Id des Fahrzeugs im OVMS, auch Module Id genannt. ",-1)])]),_:1},8,["model-value"])])}const z=p(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ovms/vehicle.vue"]]);export{z as default}; diff --git a/web/settings/assets/vehicle-673ea579.js b/web/settings/assets/vehicle-673ea579.js new file mode 100644 index 0000000000..691d202283 --- /dev/null +++ b/web/settings/assets/vehicle-673ea579.js @@ -0,0 +1 @@ +import{V as s}from"./VehicleConfig-c6e5b45b.js";import{_ as p,u,l as d,m as v,G as a,E as n,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocEVCC",mixins:[s]},g={class:"vehicle-soc-evcc"};function x(t,e,f,V,w,b){const i=u("openwb-base-text-input"),r=u("openwb-base-select-input");return d(),v("div",g,[a(i,{title:"EVCC Sponsor Token",subtype:"password",required:"","model-value":t.vehicle.configuration.sponsor_token,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.sponsor_token"))},{help:n(()=>e[5]||(e[5]=[l(" EVCC Sponsor Token angeben, dies ist notwendig um SoC über EVCC abrufen zu können. https://sponsor.evcc.io/ ",-1)])),_:1},8,["model-value"]),a(i,{title:"Benutzername",subtype:"user",required:"","model-value":t.vehicle.configuration.user_id,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.user_id"))},{help:n(()=>e[6]||(e[6]=[l(" Benutzername beim Fahrzeughersteller. ",-1)])),_:1},8,["model-value"]),a(i,{title:"Kennwort",subtype:"password",required:"","model-value":t.vehicle.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateConfiguration(o,"configuration.password"))},{help:n(()=>e[7]||(e[7]=[l(" Kennwort beim Fahrzeughersteller. ",-1)])),_:1},8,["model-value"]),a(r,{title:"Marke",required:"","not-selected":"Bitte auswählen",options:[{value:"aiways",text:"Aiways"},{value:"audi",text:"Audi"},{value:"etron",text:"Audi e-tron"},{value:"bmw",text:"BMW"},{value:"dacia",text:"Dacia"},{value:"fiat",text:"Fiat"},{value:"ford",text:"Ford"},{value:"hyundai",text:"Hyundai"},{value:"jaguar",text:"Jaguar"},{value:"kia",text:"Kia"},{value:"landrover",text:"Landrover"},{value:"mg",text:"Mg"},{value:"mini",text:"Mini"},{value:"nissan",text:"Nissan"},{value:"carwings",text:"Nissan (Leaf pre 2019)"},{value:"ovms",text:"OVMS"},{value:"polestar",text:"Polestar"},{value:"porsche",text:"Porsche"},{value:"renault",text:"Renault"},{value:"seat",text:"Seat"},{value:"cupra",text:"Seat Cupra"},{value:"skoda",text:"Škoda"},{value:"enyaq",text:"Škoda Enyaq"},{value:"smart",text:"Smart"},{value:"smart-hello",text:"Smart-Hello"},{value:"template",text:"Template"},{value:"volvo",text:"Volvo"},{value:"volvo-connected",text:"Volvo-Connected"},{value:"vw",text:"VW"},{value:"id",text:"VW ID"}],"model-value":t.vehicle.configuration.vehicle_type,"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateConfiguration(o,"configuration.vehicle_type"))},{help:n(()=>e[8]||(e[8]=[l(" Marke aus des Fahrzeugs. ",-1)])),_:1},8,["model-value"]),a(i,{title:"VIN",subtype:"text","model-value":t.vehicle.configuration.VIN,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateConfiguration(o,"configuration.VIN"))},{help:n(()=>e[9]||(e[9]=[l(" Fahrgestellnummer (VIN) des Fahrzeugs. Notwendig falls mehrere Fahrzeuge im Account des Herstellers vorhanden sind. ",-1)])),_:1},8,["model-value"])])}const F=p(m,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/evcc/vehicle.vue"]]);export{F as default}; diff --git a/web/settings/assets/vehicle-70e7db8e.js b/web/settings/assets/vehicle-70e7db8e.js new file mode 100644 index 0000000000..3dd64cc511 --- /dev/null +++ b/web/settings/assets/vehicle-70e7db8e.js @@ -0,0 +1 @@ +import{V as n}from"./VehicleConfig-c6e5b45b.js";import{_ as s,u as i,l as o,m as r,G as a,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const p={name:"VehicleSocManual",mixins:[n]},c={class:"vehicle-soc-tesla"};function m(u,e,_,f,h,g){const t=i("openwb-base-alert");return o(),r("div",c,[a(t,{subtype:"info"},{default:d(()=>e[0]||(e[0]=[l(' Beim Anstecken des Fahrzeugs muss der aktuelle SoC über die Hauptseite angegeben werden. Anhand des Zählers im Ladepunkt wird dann der aktuelle SoC errechnet. Ausschlaggebend für die Qualität dieses Moduls sind die beiden Einstellungen "Kapazität der Batterie" in dem Fahrzeug-Profil und "Wirkungsgrad der Ladeelektronik". ',-1)])),_:1,__:[0]})])}const z=s(p,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/manual/vehicle.vue"]]);export{z as default}; diff --git a/web/settings/assets/vehicle-8289a840.js b/web/settings/assets/vehicle-8289a840.js new file mode 100644 index 0000000000..8ad9321fbf --- /dev/null +++ b/web/settings/assets/vehicle-8289a840.js @@ -0,0 +1 @@ +import{V as u}from"./VehicleConfig-c6e5b45b.js";import{_ as d,u as l,l as s,m as p,G as n,E as m,B as a,A as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"VehicleSocAiways",mixins:[u]},g={class:"vehicle-soc-aiways"};function c(o,e,w,V,b,C){const r=l("openwb-base-alert"),t=l("openwb-base-text-input");return s(),p("div",g,[n(r,{subtype:"info"},{default:m(()=>e[6]||(e[6]=[a(" Alle Werte müssen von der Aiways App abgefangen werden. Dazu kann diese ",-1),v("a",{href:"https://community.home-assistant.io/t/read-aiways-u5-state-of-charge/466441/5"}," Anleitung ",-1),a(" verwendet werden. ",-1)])),_:1,__:[6]}),n(t,{title:"User ID",required:"","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.user_id"))},null,8,["model-value"]),n(t,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.vin"))},null,8,["model-value"]),n(t,{title:"Device ID",required:"","model-value":o.vehicle.configuration.device_id,"onUpdate:modelValue":e[2]||(e[2]=i=>o.updateConfiguration(i,"configuration.device_id"))},null,8,["model-value"]),n(t,{title:"Register ID",required:"","model-value":o.vehicle.configuration.register_id,"onUpdate:modelValue":e[3]||(e[3]=i=>o.updateConfiguration(i,"configuration.register_id"))},null,8,["model-value"]),n(t,{title:"Token",required:"","model-value":o.vehicle.configuration.token,"onUpdate:modelValue":e[4]||(e[4]=i=>o.updateConfiguration(i,"configuration.token"))},null,8,["model-value"]),n(t,{title:"Condition URL",subtype:"url",required:"","model-value":o.vehicle.configuration.condition_url,"onUpdate:modelValue":e[5]||(e[5]=i=>o.updateConfiguration(i,"configuration.condition_url"))},null,8,["model-value"])])}const I=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/aiways/vehicle.vue"]]);export{I as default}; diff --git a/web/settings/assets/vehicle-8c0aaa75.js b/web/settings/assets/vehicle-8c0aaa75.js new file mode 100644 index 0000000000..d7ef3b3805 --- /dev/null +++ b/web/settings/assets/vehicle-8c0aaa75.js @@ -0,0 +1 @@ +import{V as p}from"./VehicleConfig-c6e5b45b.js";import{_ as m,u as l,l as f,m as b,G as i,E as r,B as t,A as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"VehicleSocVwid",mixins:[p]},v={class:"vehicle-soc-vwid"};function w(n,e,V,c,_,B){const s=l("openwb-base-alert"),u=l("openwb-base-text-input"),d=l("openwb-base-button-group-input");return f(),b("div",v,[i(s,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),a("a",{href:"https://github.com/openWB/core/wiki/SoC-VWId",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul VWId",-1)])),_:1,__:[4]}),i(u,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.user_id"))},{help:r(()=>e[5]||(e[5]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den VW-Servern. ",-1)])),_:1},8,["model-value"]),i(u,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.password"))},{help:r(()=>e[6]||(e[6]=[t(" Das Passwort für die Anmeldung an den VW-Servern. ",-1)])),_:1},8,["model-value"]),i(u,{title:"VIN",required:"","model-value":n.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.vin"))},{help:r(()=>e[7]||(e[7]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"]),i(d,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.calculate_soc"))},{help:r(()=>e[8]||(e[8]=[t(" Berechnet den Ladestand (SoC) während der Ladung. ",-1),a("br",null,null,-1),t(" Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),a("br",null,null,-1)])),_:1},8,["model-value"])])}const U=m(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/vwid/vehicle.vue"]]);export{U as default}; diff --git a/web/settings/assets/vehicle-8cf65d4b.js b/web/settings/assets/vehicle-8cf65d4b.js deleted file mode 100644 index 77ed56c1e9..0000000000 --- a/web/settings/assets/vehicle-8cf65d4b.js +++ /dev/null @@ -1 +0,0 @@ -import{V as p}from"./VehicleConfig-233066dd.js";import{_ as m,u as l,l as f,m as b,G as i,E as r,B as t,A as a}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const g={name:"VehicleSocVwid",mixins:[p]},v={class:"vehicle-soc-vwid"};function w(n,e,V,c,_,B){const s=l("openwb-base-alert"),u=l("openwb-base-text-input"),d=l("openwb-base-button-group-input");return f(),b("div",v,[i(s,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),a("a",{href:"https://github.com/openWB/core/wiki/SoC-VWId",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul VWId",-1)])]),_:1}),i(u,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.user_id"))},{help:r(()=>[...e[5]||(e[5]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den VW-Servern. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.password"))},{help:r(()=>[...e[6]||(e[6]=[t(" Das Passwort für die Anmeldung an den VW-Servern. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"VIN",required:"","model-value":n.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.vin"))},{help:r(()=>[...e[7]||(e[7]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"]),i(d,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.calculate_soc"))},{help:r(()=>[...e[8]||(e[8]=[t(" Berechnet den Ladestand (SoC) während der Ladung. ",-1),a("br",null,null,-1),t(" Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),a("br",null,null,-1)])]),_:1},8,["model-value"])])}const U=m(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/vwid/vehicle.vue"]]);export{U as default}; diff --git a/web/settings/assets/vehicle-8ef77206.js b/web/settings/assets/vehicle-8ef77206.js deleted file mode 100644 index b697cde06b..0000000000 --- a/web/settings/assets/vehicle-8ef77206.js +++ /dev/null @@ -1 +0,0 @@ -import{V as a}from"./VehicleConfig-233066dd.js";import{_ as d,u,l as p,m as g,G as o,E as l,B as i,A as c}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocTronity",mixins:[a]},f={class:"vehicle-soc-tronity"};function b(n,e,v,C,w,h){const r=u("openwb-base-text-input"),s=u("openwb-base-button-group-input");return p(),g("div",f,[o(r,{title:"Vehicle ID",subtype:"text",required:"","model-value":n.vehicle.configuration.vehicle_id,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.vehicle_id"))},{help:l(()=>[...e[4]||(e[4]=[i(' Vehicle ID aus Tronity angeben. Diese ist in den "Assigned Vehicles" zu finden. ',-1)])]),_:1},8,["model-value"]),o(r,{title:"Client ID",subtype:"text",required:"","model-value":n.vehicle.configuration.client_id,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.client_id"))},{help:l(()=>[...e[5]||(e[5]=[i(' Client ID aus Tronity angeben. Diese ist in den "Application Settings" zu finden. ',-1)])]),_:1},8,["model-value"]),o(r,{title:"Client Secret",subtype:"password",required:"","model-value":n.vehicle.configuration.client_secret,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.client_secret"))},{help:l(()=>[...e[6]||(e[6]=[i(' Client Secret aus Tronity angeben. Diese ist in den "Application Settings" zu finden. Das Client Secret kann nur einmalig abgerufen werden. Ggf. neu erzeugen, womit frühere Client Secrets ungültig werden. ',-1)])]),_:1},8,["model-value"]),o(s,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.calculate_soc"))},{help:l(()=>[...e[7]||(e[7]=[i(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),c("br",null,null,-1),i(" Derzeit notwendig für Peugeot, Opel, Citroen und DS. ",-1)])]),_:1},8,["model-value"])])}const T=d(m,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/tronity/vehicle.vue"]]);export{T as default}; diff --git a/web/settings/assets/vehicle-904e1b9a.js b/web/settings/assets/vehicle-904e1b9a.js deleted file mode 100644 index 45e11a96d9..0000000000 --- a/web/settings/assets/vehicle-904e1b9a.js +++ /dev/null @@ -1 +0,0 @@ -import{V as u}from"./VehicleConfig-233066dd.js";import{_ as d,u as l,l as s,m as p,G as n,E as m,B as a,A as v}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const f={name:"VehicleSocAiways",mixins:[u]},g={class:"vehicle-soc-aiways"};function c(o,e,w,V,b,C){const r=l("openwb-base-alert"),t=l("openwb-base-text-input");return s(),p("div",g,[n(r,{subtype:"info"},{default:m(()=>[...e[6]||(e[6]=[a(" Alle Werte müssen von der Aiways App abgefangen werden. Dazu kann diese ",-1),v("a",{href:"https://community.home-assistant.io/t/read-aiways-u5-state-of-charge/466441/5"}," Anleitung ",-1),a(" verwendet werden. ",-1)])]),_:1}),n(t,{title:"User ID",required:"","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.user_id"))},null,8,["model-value"]),n(t,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.vin"))},null,8,["model-value"]),n(t,{title:"Device ID",required:"","model-value":o.vehicle.configuration.device_id,"onUpdate:modelValue":e[2]||(e[2]=i=>o.updateConfiguration(i,"configuration.device_id"))},null,8,["model-value"]),n(t,{title:"Register ID",required:"","model-value":o.vehicle.configuration.register_id,"onUpdate:modelValue":e[3]||(e[3]=i=>o.updateConfiguration(i,"configuration.register_id"))},null,8,["model-value"]),n(t,{title:"Token",required:"","model-value":o.vehicle.configuration.token,"onUpdate:modelValue":e[4]||(e[4]=i=>o.updateConfiguration(i,"configuration.token"))},null,8,["model-value"]),n(t,{title:"Condition URL",subtype:"url",required:"","model-value":o.vehicle.configuration.condition_url,"onUpdate:modelValue":e[5]||(e[5]=i=>o.updateConfiguration(i,"configuration.condition_url"))},null,8,["model-value"])])}const I=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/aiways/vehicle.vue"]]);export{I as default}; diff --git a/web/settings/assets/vehicle-9505d809.js b/web/settings/assets/vehicle-9505d809.js new file mode 100644 index 0000000000..a314d332d6 --- /dev/null +++ b/web/settings/assets/vehicle-9505d809.js @@ -0,0 +1 @@ +import{V as l}from"./VehicleConfig-c6e5b45b.js";import{_ as u,u as a,l as p,m,G as i,E as r,B as t,A as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"VehicleSocVwid",mixins:[l]},g={class:"vehicle-soc-skoda"};function b(o,e,w,k,V,_){const d=a("openwb-base-alert"),s=a("openwb-base-text-input");return p(),m("div",g,[i(d,{subtype:"info"},{default:r(()=>e[3]||(e[3]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),f("a",{href:"https://github.com/openWB/core/wiki/SoC-Skoda",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul Skoda",-1)])),_:1,__:[3]}),i(s,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:r(()=>e[4]||(e[4]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den Skoda-Servern. ",-1)])),_:1},8,["model-value"]),i(s,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:r(()=>e[5]||(e[5]=[t(" Das Passwort für die Anmeldung an den Skoda-Servern. ",-1)])),_:1},8,["model-value"]),i(s,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:r(()=>e[6]||(e[6]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"])])}const q=u(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/skoda/vehicle.vue"]]);export{q as default}; diff --git a/web/settings/assets/vehicle-98b9fcdb.js b/web/settings/assets/vehicle-98b9fcdb.js new file mode 100644 index 0000000000..d0971402a7 --- /dev/null +++ b/web/settings/assets/vehicle-98b9fcdb.js @@ -0,0 +1 @@ +import{V as p}from"./VehicleConfig-c6e5b45b.js";import{_ as l,u as s,l as d,m,G as r,E as i,B as t,A as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"VehicleSocCupra",mixins:[p]},g={class:"vehicle-soc-cupra"};function b(o,e,w,C,c,_){const u=s("openwb-base-alert"),a=s("openwb-base-text-input");return d(),m("div",g,[r(u,{subtype:"info"},{default:i(()=>e[3]||(e[3]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),f("a",{href:"https://github.com/openWB/core/wiki/SoC-Cupra",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul Cupra",-1)])),_:1,__:[3]}),r(a,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:i(()=>e[4]||(e[4]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den Cupra-Servern. ",-1)])),_:1},8,["model-value"]),r(a,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:i(()=>e[5]||(e[5]=[t(" Das Passwort für die Anmeldung an den Cupra-Servern. ",-1)])),_:1},8,["model-value"]),r(a,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:i(()=>e[6]||(e[6]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"])])}const q=l(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/cupra/vehicle.vue"]]);export{q as default}; diff --git a/web/settings/assets/vehicle-9efbb8ea.js b/web/settings/assets/vehicle-9efbb8ea.js new file mode 100644 index 0000000000..e7e26d651f --- /dev/null +++ b/web/settings/assets/vehicle-9efbb8ea.js @@ -0,0 +1 @@ +import{V as l}from"./VehicleConfig-c6e5b45b.js";import{_ as p,u as a,l as m,m as f,G as r,E as t,B as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"VehicleSocPSACC",mixins:[l]},v={class:"vehicle-soc-psacc"};function c(n,e,b,_,C,h){const d=a("openwb-base-alert"),s=a("openwb-base-text-input"),u=a("openwb-base-number-input");return m(),f("div",v,[r(d,{subtype:"info"},{default:t(()=>e[3]||(e[3]=[i(' Der PSA Car Controller muss auf einem eigenen Host installiert werden, mit Zugangsdaten konfiguriert werden und dauerhaft laufen. Die openWB ruft den SoC zu Beginn der Ladung vom PSA Car Controller ab. Während der Ladung liefert PSA keine Updates. Daher wird der SoC während der Ladung aus dem Zählerstand berechnet. Ausschlaggebend für die Genauigkeit dieser Berechnung sind die beiden Einstellungen "Kapazität der Batterie" und "Wirkungsgrad der Ladeelektronik" im Fahrzeug-Profil. ',-1)])),_:1,__:[3]}),r(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.vehicle.configuration.psacc_server_or_ip,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.psacc_server_or_ip"))},{help:t(()=>e[4]||(e[4]=[i("Host, auf dem der PSA Car Controller läuft.",-1)])),_:1},8,["model-value"]),r(u,{title:"Port",required:"",min:1,max:65535,"model-value":n.vehicle.configuration.psacc_port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.psacc_port"))},{help:t(()=>e[5]||(e[5]=[i("Nummer des Ports, den der PSA Car Controller verwendet.",-1)])),_:1},8,["model-value"]),r(s,{title:"VIN",subtype:"text",required:"","model-value":n.vehicle.configuration.vehicle_vin,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.vehicle_vin"))},{help:t(()=>e[6]||(e[6]=[i("Fahrzeug-Identifizierungsnummer des Fahrzeugs, von dem der SoC abgefragt wird.",-1)])),_:1},8,["model-value"])])}const L=p(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/psacc/vehicle.vue"]]);export{L as default}; diff --git a/web/settings/assets/vehicle-a118bbc8.js b/web/settings/assets/vehicle-a118bbc8.js deleted file mode 100644 index f43f5b216e..0000000000 --- a/web/settings/assets/vehicle-a118bbc8.js +++ /dev/null @@ -1 +0,0 @@ -import{V as m}from"./VehicleConfig-233066dd.js";import{_ as b,u as s,l as g,m as v,G as i,E as o,B as n,A as u,F as _}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const f={name:"VehicleSocMercedesEq",mixins:[m],computed:{callback_url(){return`${location.origin}/openWB/web/settings/modules/vehicles/mercedeseq/callback_vehicle.php`},login_url(){return`https://ssoalpha.dvb.corpinter.net/v1/auth?response_type=code&state=${this.vehicleId}&client_id=${this.vehicle.configuration.client_id}&redirect_uri=${this.callback_url}&scope=mb:vehicle:mbdata:evstatus%20offline_access%20openid`},input_complete(){return this.vehicle.configuration.client_id&&this.vehicle.configuration.client_secret&&this.vehicle.configuration.vin}},methods:{login_window(){console.debug("callback url",this.callback_url),console.debug("login url",this.login_url);var t=window.open(this.login_url,"MercedesLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");t.focus()}}},h={class:"vehicle-soc-mercedeseq"};function w(t,e,k,C,y,r){const a=s("openwb-base-text-input"),d=s("openwb-base-copy-to-clipboard"),p=s("openwb-base-alert"),c=s("openwb-base-button-input");return g(),v("div",h,[i(a,{title:"Client-ID",required:"",subtype:"user","model-value":t.vehicle.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=l=>t.updateConfiguration(l,"configuration.client_id"))},{help:o(()=>[...e[3]||(e[3]=[n(" Die im Developer Portal angelegte Client-ID. ",-1)])]),_:1},8,["model-value"]),i(a,{title:"Client Secret",required:"",subtype:"password","model-value":t.vehicle.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=l=>t.updateConfiguration(l,"configuration.client_secret"))},{help:o(()=>[...e[4]||(e[4]=[n(" Das im Developer Portal angelegte Client Secret. ",-1)])]),_:1},8,["model-value"]),i(a,{title:"VIN",required:"","model-value":t.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=l=>t.updateConfiguration(l,"configuration.vin"))},{help:o(()=>[...e[5]||(e[5]=[n(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"]),i(p,{subtype:"info"},{default:o(()=>[e[6]||(e[6]=n(" Vor dem Anmelden bitte die Angaben speichern.",-1)),e[7]||(e[7]=u("br",null,null,-1)),e[8]||(e[8]=n(" Die Callback-URL für die Anmeldung lautet:",-1)),e[9]||(e[9]=u("br",null,null,-1)),i(d,{class:"text-info",tooltip:"URL kopieren"},{default:o(()=>[n(_(r.callback_url),1)]),_:1})]),_:1}),i(c,{title:"Anmelden","button-text":"Bei Mercedes Anmelden",subtype:"success",disabled:!r.input_complete,onButtonClicked:r.login_window},{help:o(()=>[...e[10]||(e[10]=[n(" Es wird ein neues Browserfenster geöffnet, in dem Sie sich bei Mercedes mit Ihren Zugangsdaten anmelden können.",-1),u("br",null,null,-1)])]),_:1},8,["disabled","onButtonClicked"])])}const U=b(f,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/mercedeseq/vehicle.vue"]]);export{U as default}; diff --git a/web/settings/assets/vehicle-b82069af.js b/web/settings/assets/vehicle-b82069af.js new file mode 100644 index 0000000000..127b9a5b24 --- /dev/null +++ b/web/settings/assets/vehicle-b82069af.js @@ -0,0 +1 @@ +import{V as o}from"./VehicleConfig-c6e5b45b.js";import{_ as i,u as r,l as s,m as a,G as c,E as p,B as n,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"VehicleSocPSA",mixins:[o]},m={class:"vehicle-soc-psa"};function u(_,e,f,h,b,g){const t=r("openwb-base-alert");return s(),a("div",m,[c(t,{subtype:"danger"},{default:p(()=>e[0]||(e[0]=[n(" Diese Modul ist seit Änderungen der Schnittstellen durch PSA nicht mehr funktionsfähig und wird in einer zukünftigen Version entfernt. Bitte auf einen anderen Anbieter wechseln, z.B. Tronity.",-1),l("br",null,null,-1),n(" Bei vorhandener PSA-Integration in Heimautomation kann der SoC ggf. auch per MQTT übergeben werden. ",-1)])),_:1,__:[0]})])}const T=i(d,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/psa/vehicle.vue"]]);export{T as default}; diff --git a/web/settings/assets/vehicle-bd25f961.js b/web/settings/assets/vehicle-bd25f961.js deleted file mode 100644 index 28717f26bd..0000000000 --- a/web/settings/assets/vehicle-bd25f961.js +++ /dev/null @@ -1 +0,0 @@ -import{V as p}from"./VehicleConfig-233066dd.js";import{_ as l,u as s,l as d,m,G as r,E as i,B as t,A as f}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const v={name:"VehicleSocCupra",mixins:[p]},g={class:"vehicle-soc-cupra"};function b(o,e,w,C,c,V){const u=s("openwb-base-alert"),a=s("openwb-base-text-input");return d(),m("div",g,[r(u,{subtype:"info"},{default:i(()=>[...e[3]||(e[3]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),f("a",{href:"https://github.com/openWB/core/wiki/SoC-Cupra",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul Cupra",-1)])]),_:1}),r(a,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:i(()=>[...e[4]||(e[4]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den Cupra-Servern. ",-1)])]),_:1},8,["model-value"]),r(a,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:i(()=>[...e[5]||(e[5]=[t(" Das Passwort für die Anmeldung an den Cupra-Servern. ",-1)])]),_:1},8,["model-value"]),r(a,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:i(()=>[...e[6]||(e[6]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"])])}const q=l(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/cupra/vehicle.vue"]]);export{q as default}; diff --git a/web/settings/assets/vehicle-bf282483.js b/web/settings/assets/vehicle-bf282483.js deleted file mode 100644 index dc31732dd2..0000000000 --- a/web/settings/assets/vehicle-bf282483.js +++ /dev/null @@ -1 +0,0 @@ -import{V as o}from"./VehicleConfig-233066dd.js";import{_ as i,u as r,l as s,m as a,G as c,E as p,B as n,A as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const d={name:"VehicleSocPSA",mixins:[o]},m={class:"vehicle-soc-psa"};function u(f,e,_,h,b,g){const t=r("openwb-base-alert");return s(),a("div",m,[c(t,{subtype:"danger"},{default:p(()=>[...e[0]||(e[0]=[n(" Diese Modul ist seit Änderungen der Schnittstellen durch PSA nicht mehr funktionsfähig und wird in einer zukünftigen Version entfernt. Bitte auf einen anderen Anbieter wechseln, z.B. Tronity.",-1),l("br",null,null,-1),n(" Bei vorhandener PSA-Integration in Heimautomation kann der SoC ggf. auch per MQTT übergeben werden. ",-1)])]),_:1})])}const T=i(d,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/psa/vehicle.vue"]]);export{T as default}; diff --git a/web/settings/assets/vehicle-c70b570d.js b/web/settings/assets/vehicle-c70b570d.js deleted file mode 100644 index 6a9fa4d2b9..0000000000 --- a/web/settings/assets/vehicle-c70b570d.js +++ /dev/null @@ -1 +0,0 @@ -import{V as l}from"./VehicleConfig-233066dd.js";import{_ as u,u as a,l as p,m,G as i,E as r,B as t,A as f}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const v={name:"VehicleSocVwid",mixins:[l]},g={class:"vehicle-soc-skoda"};function b(o,e,w,k,V,c){const d=a("openwb-base-alert"),s=a("openwb-base-text-input");return p(),m("div",g,[i(d,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),f("a",{href:"https://github.com/openWB/core/wiki/SoC-Skoda",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul Skoda",-1)])]),_:1}),i(s,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:r(()=>[...e[4]||(e[4]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den Skoda-Servern. ",-1)])]),_:1},8,["model-value"]),i(s,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:r(()=>[...e[5]||(e[5]=[t(" Das Passwort für die Anmeldung an den Skoda-Servern. ",-1)])]),_:1},8,["model-value"]),i(s,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:r(()=>[...e[6]||(e[6]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"])])}const q=u(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/skoda/vehicle.vue"]]);export{q as default}; diff --git a/web/settings/assets/vehicle-c7df15c6.js b/web/settings/assets/vehicle-c7df15c6.js deleted file mode 100644 index c3342d8539..0000000000 --- a/web/settings/assets/vehicle-c7df15c6.js +++ /dev/null @@ -1 +0,0 @@ -import{V as u}from"./VehicleConfig-233066dd.js";import{_ as a,u as s,l as d,m as p,G as t,E as r,B as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocKia",mixins:[u]},v={class:"vehicle-soc-kia"};function f(o,e,g,w,V,b){const i=s("openwb-base-text-input");return d(),p("div",v,[t(i,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:r(()=>[...e[4]||(e[4]=[l(" Der Benutzername für die Anmeldung an den Servern. ",-1)])]),_:1},8,["model-value"]),t(i,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:r(()=>[...e[5]||(e[5]=[l(" Das Passwort für die Anmeldung an den Servern. ",-1)])]),_:1},8,["model-value"]),t(i,{title:"PIN",required:"",subtype:"password","model-value":o.vehicle.configuration.pin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.pin"))},{help:r(()=>[...e[6]||(e[6]=[l(" Die PIN für die Anmeldung an den Servern. ",-1)])]),_:1},8,["model-value"]),t(i,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:r(()=>[...e[7]||(e[7]=[l(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"])])}const h=a(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/kia/vehicle.vue"]]);export{h as default}; diff --git a/web/settings/assets/vehicle-da3e8433.js b/web/settings/assets/vehicle-da3e8433.js new file mode 100644 index 0000000000..bfbea1f8d9 --- /dev/null +++ b/web/settings/assets/vehicle-da3e8433.js @@ -0,0 +1 @@ +import{V as p}from"./VehicleConfig-c6e5b45b.js";import{_ as g,u as s,l as b,m as f,G as l,E as r,B as t,A as n}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const w={name:"VehicleSocBmwBimmerConnected",mixins:[p]},C={class:"vehicle-soc-bmwbc"},v={href:"https://bimmer-connected.readthedocs.io/en/latest/captcha/rest_of_world.html",target:"_blank"};function k(o,e,B,S,D,z){const a=s("openwb-base-alert"),u=s("openwb-base-text-input"),d=s("font-awesome-icon"),m=s("openwb-base-button-group-input");return b(),f("div",C,[l(a,{subtype:"info"},{default:r(()=>e[5]||(e[5]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),n("a",{href:"https://github.com/openWB/core/wiki/SoC-BMW-Mini",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul BMW & Mini",-1)])),_:1,__:[5]}),l(u,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.user_id"))},{help:r(()=>e[6]||(e[6]=[t(" Der Benutzername für die Anmeldung an den BMW-Servern. ",-1)])),_:1},8,["model-value"]),l(u,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.password"))},{help:r(()=>e[7]||(e[7]=[t(" Das Passwort für die Anmeldung an den BMW-Servern. ",-1)])),_:1},8,["model-value"]),l(u,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=i=>o.updateConfiguration(i,"configuration.vin"))},{help:r(()=>e[8]||(e[8]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"]),l(u,{title:"Captcha-Token",required:"","model-value":o.vehicle.configuration.captcha_token,"onUpdate:modelValue":e[3]||(e[3]=i=>o.updateConfiguration(i,"configuration.captcha_token"))},{help:r(()=>[e[18]||(e[18]=t(" Zum erstmaligen Login z.B. nach einem Neustart oder wenn die Abfrage nicht mehr funktioniert ist ein ",-1)),e[19]||(e[19]=n("b",null,"aktuelles Captcha-Token",-1)),e[20]||(e[20]=t(" notwendig.",-1)),e[21]||(e[21]=n("br",null,null,-1)),e[22]||(e[22]=t(" Falls mehr als ein Fahrzeug in dem CD-Account vorhanden ist, sollte nur das mit der niedrigsten openWB id mit einem gültigen Captcha-Token konfiguriert werden (PRIMARY).",-1)),e[23]||(e[23]=n("br",null,null,-1)),e[24]||(e[24]=t(" Das SoC-Modul des Fahrzeuges mit ",-1)),e[25]||(e[25]=n("b",null,"gültigem",-1)),e[26]||(e[26]=t(" Captcha-Token führt die SoC-Abfragen für alle Fahrzeuge im CD-Account aus.",-1)),e[27]||(e[27]=n("br",null,null,-1)),e[28]||(e[28]=t(" Die SECONDARY SoC-Module holen sich ihre Daten vom PRIMARY.",-1)),e[29]||(e[29]=n("br",null,null,-1)),e[30]||(e[30]=t(' Bei den weiteren Fahrzeugen ist daher als Captcha-Token der Wert "SECONDARY" (ohne Quotes) einzutragen.',-1)),e[31]||(e[31]=n("br",null,null,-1)),e[32]||(e[32]=t(" Um das Captcha-Token zu bekommen bitte folgende Schritte durchführen: ",-1)),n("ol",null,[n("li",null,[e[10]||(e[10]=t(" In einem neuen Browser-Tab auf diese Seite gehen:",-1)),e[11]||(e[11]=n("br",null,null,-1)),n("a",v,[e[9]||(e[9]=t(" Captcha Lösen ",-1)),l(d,{icon:["fas","external-link-alt"]})]),e[12]||(e[12]=t(" (https://bimmer-connected.readthedocs.io/en/latest/captcha/rest_of_world.html) ",-1))]),e[13]||(e[13]=n("li",null,' Dort falls angefragt das Captcha lösen und/oder "Ich bin ein Mensch" und dann Submit anklicken. Als Ergebnis wird ein sehr langer String angezeigt. ',-1)),e[14]||(e[14]=n("li",null,[t("Diesen String komplett mit "),n("b",null,"Copy&Paste"),t(" in das Feld Captcha-Token eingeben.")],-1)),e[15]||(e[15]=n("li",null,"Die Konfiguration speichern.",-1)),e[16]||(e[16]=n("li",null,[n("b",null,"Sofort einmal im Desktop manuell (Kreispfeil) den SoC für das Fahrzeug abrufen.")],-1)),e[17]||(e[17]=n("li",null,[n("b",null,"Fertig."),t(" Ab jetzt wird bis zum nächsten Neustart das sog. Refresh-Token verwendet.")],-1))]),e[33]||(e[33]=n("b",null,"Achtung: Das Captcha-Token kann nur einmal verwendet werden und gilt nur kurze Zeit!",-1))]),_:1},8,["model-value"]),l(m,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":o.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[4]||(e[4]=i=>o.updateConfiguration(i,"configuration.calculate_soc"))},{help:r(()=>e[34]||(e[34]=[t(" Berechnet den Ladestand (SoC) während der Ladung. ",-1),n("br",null,null,-1),t(" Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),n("br",null,null,-1)])),_:1},8,["model-value"])])}const R=g(w,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/bmwbc/vehicle.vue"]]);export{R as default}; diff --git a/web/settings/assets/vehicle-dddd8c6f.js b/web/settings/assets/vehicle-dddd8c6f.js deleted file mode 100644 index 4bb335cc76..0000000000 --- a/web/settings/assets/vehicle-dddd8c6f.js +++ /dev/null @@ -1 +0,0 @@ -import{V as p}from"./VehicleConfig-233066dd.js";import{_ as g,u as s,l as b,m as f,G as l,E as r,B as t,A as n}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const w={name:"VehicleSocBmwBimmerConnected",mixins:[p]},C={class:"vehicle-soc-bmwbc"},v={href:"https://bimmer-connected.readthedocs.io/en/latest/captcha/rest_of_world.html",target:"_blank"};function k(o,e,B,S,D,z){const a=s("openwb-base-alert"),u=s("openwb-base-text-input"),d=s("font-awesome-icon"),m=s("openwb-base-button-group-input");return b(),f("div",C,[l(a,{subtype:"info"},{default:r(()=>[...e[5]||(e[5]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),n("a",{href:"https://github.com/openWB/core/wiki/SoC-BMW-Mini",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul BMW & Mini",-1)])]),_:1}),l(u,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.user_id"))},{help:r(()=>[...e[6]||(e[6]=[t(" Der Benutzername für die Anmeldung an den BMW-Servern. ",-1)])]),_:1},8,["model-value"]),l(u,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.password"))},{help:r(()=>[...e[7]||(e[7]=[t(" Das Passwort für die Anmeldung an den BMW-Servern. ",-1)])]),_:1},8,["model-value"]),l(u,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=i=>o.updateConfiguration(i,"configuration.vin"))},{help:r(()=>[...e[8]||(e[8]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"]),l(u,{title:"Captcha-Token",required:"","model-value":o.vehicle.configuration.captcha_token,"onUpdate:modelValue":e[3]||(e[3]=i=>o.updateConfiguration(i,"configuration.captcha_token"))},{help:r(()=>[e[18]||(e[18]=t(" Zum erstmaligen Login z.B. nach einem Neustart oder wenn die Abfrage nicht mehr funktioniert ist ein ",-1)),e[19]||(e[19]=n("b",null,"aktuelles Captcha-Token",-1)),e[20]||(e[20]=t(" notwendig.",-1)),e[21]||(e[21]=n("br",null,null,-1)),e[22]||(e[22]=t(" Falls mehr als ein Fahrzeug in dem CD-Account vorhanden ist, sollte nur das mit der niedrigsten openWB id mit einem gültigen Captcha-Token konfiguriert werden (PRIMARY).",-1)),e[23]||(e[23]=n("br",null,null,-1)),e[24]||(e[24]=t(" Das SoC-Modul des Fahrzeuges mit ",-1)),e[25]||(e[25]=n("b",null,"gültigem",-1)),e[26]||(e[26]=t(" Captcha-Token führt die SoC-Abfragen für alle Fahrzeuge im CD-Account aus.",-1)),e[27]||(e[27]=n("br",null,null,-1)),e[28]||(e[28]=t(" Die SECONDARY SoC-Module holen sich ihre Daten vom PRIMARY.",-1)),e[29]||(e[29]=n("br",null,null,-1)),e[30]||(e[30]=t(' Bei den weiteren Fahrzeugen ist daher als Captcha-Token der Wert "SECONDARY" (ohne Quotes) einzutragen.',-1)),e[31]||(e[31]=n("br",null,null,-1)),e[32]||(e[32]=t(" Um das Captcha-Token zu bekommen bitte folgende Schritte durchführen: ",-1)),n("ol",null,[n("li",null,[e[10]||(e[10]=t(" In einem neuen Browser-Tab auf diese Seite gehen:",-1)),e[11]||(e[11]=n("br",null,null,-1)),n("a",v,[e[9]||(e[9]=t(" Captcha Lösen ",-1)),l(d,{icon:["fas","external-link-alt"]})]),e[12]||(e[12]=t(" (https://bimmer-connected.readthedocs.io/en/latest/captcha/rest_of_world.html) ",-1))]),e[13]||(e[13]=n("li",null,' Dort falls angefragt das Captcha lösen und/oder "Ich bin ein Mensch" und dann Submit anklicken. Als Ergebnis wird ein sehr langer String angezeigt. ',-1)),e[14]||(e[14]=n("li",null,[t("Diesen String komplett mit "),n("b",null,"Copy&Paste"),t(" in das Feld Captcha-Token eingeben.")],-1)),e[15]||(e[15]=n("li",null,"Die Konfiguration speichern.",-1)),e[16]||(e[16]=n("li",null,[n("b",null,"Sofort einmal im Desktop manuell (Kreispfeil) den SoC für das Fahrzeug abrufen.")],-1)),e[17]||(e[17]=n("li",null,[n("b",null,"Fertig."),t(" Ab jetzt wird bis zum nächsten Neustart das sog. Refresh-Token verwendet.")],-1))]),e[33]||(e[33]=n("b",null,"Achtung: Das Captcha-Token kann nur einmal verwendet werden und gilt nur kurze Zeit!",-1))]),_:1},8,["model-value"]),l(m,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":o.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[4]||(e[4]=i=>o.updateConfiguration(i,"configuration.calculate_soc"))},{help:r(()=>[...e[34]||(e[34]=[t(" Berechnet den Ladestand (SoC) während der Ladung. ",-1),n("br",null,null,-1),t(" Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),n("br",null,null,-1)])]),_:1},8,["model-value"])])}const R=g(w,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/bmwbc/vehicle.vue"]]);export{R as default}; diff --git a/web/settings/assets/vehicle-e0cbc84a.js b/web/settings/assets/vehicle-e0cbc84a.js new file mode 100644 index 0000000000..610cfc1b31 --- /dev/null +++ b/web/settings/assets/vehicle-e0cbc84a.js @@ -0,0 +1 @@ +import{V as a}from"./VehicleConfig-c6e5b45b.js";import{_ as s,u as p,l as u,m,G as n,E as r,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"VehicleSocHttp",mixins:[a]},c={class:"vehicle-soc-http"};function v(t,e,f,h,g,w){const i=p("openwb-base-text-input");return u(),m("div",c,[n(i,{title:"SoC URL",subtype:"url",required:"","model-value":t.vehicle.configuration.soc_url,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.soc_url"))},{help:r(()=>e[2]||(e[2]=[l(" Es wird vom Server eine Zahl (Float mit Punkt als Dezimaltrennzeichen oder Integer) erwartet, welche den aktuellen Ladestand in Prozent (0 bis 100) zurückgibt. ",-1)])),_:1},8,["model-value"]),n(i,{title:"Reichweiten URL",subtype:"url","model-value":t.vehicle.configuration.range_url,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.range_url"))},{help:r(()=>e[3]||(e[3]=[l(" Es wird vom Server eine Zahl (Float mit Punkt als Dezimaltrennzeichen oder Integer) erwartet, welche die aktuelle Reichweite in Kilometern darstellt. Diese Angabe ist optional. ",-1)])),_:1},8,["model-value"])])}const R=s(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/http/vehicle.vue"]]);export{R as default}; diff --git a/web/settings/assets/vehicle-e45de3aa.js b/web/settings/assets/vehicle-e45de3aa.js new file mode 100644 index 0000000000..8682d7a5d5 --- /dev/null +++ b/web/settings/assets/vehicle-e45de3aa.js @@ -0,0 +1 @@ +import{_ as h,a6 as c,a7 as _,a8 as f,u as r,l as b,m as k,G as i,E as a,B as s,A as v}from"./vendor-25d394b4.js";import{a as w}from"./vendor-axios-ac33d60c.js";import{C}from"./index-8dd8e083.js";import{V as y}from"./VehicleConfig-c6e5b45b.js";import"./vendor-sortablejs-0eb84ec8.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./dynamic-import-helper-be004503.js";const T={name:"VehicleSocTesla",mixins:[C,y],data(){return{tesla_api_oauth2:"https://auth.tesla.com/oauth2/v3",tesla_api_redirect:"https://auth.tesla.com/void/callback",tesla_api_owners:"https://owner-api.teslamotors.com/oauth/token",user_agent:"Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",code_challenge:null,code_verifier:null,page_not_found_url:null}},methods:{tesla_login_window(){this.tesla_gen_challenge();var e=window.open(this.tesla_gen_url(),"TeslaLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");e.focus()},tesla_gen_challenge(){this.code_verifier=c.encode(_.randomBytes(86)).replace(/[^a-zA-Z0-9]/gi,"").substring(0,86);const e=_.createHash("sha256").update(this.code_verifier).digest();this.code_challenge=c.encode(e),console.debug(this.code_verifier,this.code_verifier.length,this.code_challenge,this.code_challenge.length)},tesla_gen_url(){const e=new URL(this.tesla_api_oauth2+"/authorize/");return e.searchParams.append("client_id","ownerapi"),e.searchParams.append("code_challenge",this.code_challenge),e.searchParams.append("code_challenge_method","S256"),e.searchParams.append("redirect_uri",this.tesla_api_redirect),e.searchParams.append("response_type","code"),e.searchParams.append("scope","openid email offline_access"),e.searchParams.append("state","myteslaapp"),e},async tesla_login(){const e=f.parse(this.page_not_found_url,!0).query;if(console.debug("queryObject",e),!e.code){console.error("Something is wrong... Code does not exist in URL"),this.$root.postClientMessage("Die eingegebene URL ist ungültig.","danger");return}const n={url:this.tesla_api_owners,user_agent:this.user_agent,data:{grant_type:"authorization_code",client_id:"ownerapi",code:e.code,code_verifier:this.code_verifier,redirect_uri:this.tesla_api_redirect}};try{const o=await w.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/vehicles/tesla/tesla.php",JSON.parse(JSON.stringify(n)),{headers:{"Content-Type":"application/json",Accept:"application/json"}});console.debug("response",o),this.updateConfiguration({access_token:o.data.access_token,refresh_token:o.data.refresh_token,created_at:o.data.created_at,expires_in:o.data.expires_in},"configuration.token"),this.$root.postClientMessage("Token erfolgreich abgerufen.","success")}catch(o){console.error(o),this.$root.postClientMessage("Beim Abruf der Token ist ein Fehler aufgetreten!
"+o+"
","danger")}}}},B={class:"vehicle-soc-tesla"};function U(e,n,o,z,l,p){const u=r("openwb-base-number-input"),m=r("openwb-base-heading"),g=r("openwb-base-button-input"),d=r("openwb-base-text-input");return b(),k("div",B,[i(u,{title:"Fahrzeug-ID",required:"",min:0,"model-value":e.vehicle.configuration.tesla_ev_num,"onUpdate:modelValue":n[0]||(n[0]=t=>e.updateConfiguration(t,"configuration.tesla_ev_num"))},{help:a(()=>n[6]||(n[6]=[s(' Die ID des Fahrzeugs bei Tesla. Normalerweise "0" bei nur einem Fahrzeug im Konto. ',-1)])),_:1},8,["model-value"]),i(m,null,{default:a(()=>n[7]||(n[7]=[s("Token abrufen oder eingeben",-1)])),_:1,__:[7]}),i(g,{title:"1. Anmelden","button-text":"Bei Tesla Anmelden",subtype:"success",onButtonClicked:p.tesla_login_window},{help:a(()=>n[8]||(n[8]=[s(" Es wird ein neues Browserfenster geöffnet, in dem Sie sich bei Tesla mit Ihren Zugangsdaten anmelden können. ",-1)])),_:1},8,["onButtonClicked"]),i(d,{modelValue:l.page_not_found_url,"onUpdate:modelValue":n[1]||(n[1]=t=>l.page_not_found_url=t),title:"2. URL kopieren und einfügen",subtype:"url","empty-value":null},{help:a(()=>n[9]||(n[9]=[s(' Hier die komplette URL (Text in der Adresszeile) aus dem geöffneten Browserfenster einfügen, wenn dort "Page Not Found" angezeigt wird. ',-1)])),_:1},8,["modelValue"]),i(g,{title:"3. Token abrufen","button-text":"Jetzt abrufen",subtype:"success",disabled:l.page_not_found_url===null,onButtonClicked:p.tesla_login},{help:a(()=>n[10]||(n[10]=[s(" Der in der eingegebenen URL enthaltene Code wird genutzt, um ein Anmeldetoken bei Tesla abzurufen. Ist dies erfolgreich, so werden die Daten des Token in den weiteren Feldern automatisch eingegeben. ",-1)])),_:1},8,["disabled","onButtonClicked"]),n[13]||(n[13]=v("hr",null,null,-1)),i(d,{title:"Access Token",pattern:"^(ey).*",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.access_token:"","onUpdate:modelValue":n[2]||(n[2]=t=>e.updateConfiguration(t,"configuration.token.access_token"))},null,8,["model-value"]),i(d,{title:"Refresh Token",pattern:"^(ey).*",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.refresh_token:"","onUpdate:modelValue":n[3]||(n[3]=t=>e.updateConfiguration(t,"configuration.token.refresh_token"))},null,8,["model-value"]),i(u,{title:"Erstellt um",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.created_at:0,"onUpdate:modelValue":n[4]||(n[4]=t=>e.updateConfiguration(t,"configuration.token.created_at"))},{help:a(()=>n[11]||(n[11]=[s(" Unix Timestamp des Zeitpunktes, an dem das Token erzeugt wurde. ",-1)])),_:1},8,["model-value"]),i(u,{title:"Ungültig in",unit:"s",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.expires_in:0,"onUpdate:modelValue":n[5]||(n[5]=t=>e.updateConfiguration(t,"configuration.token.expires_in"))},{help:a(()=>n[12]||(n[12]=[s(" Zeitspanne in Sekunden, nach der das Token ungültig wird. ",-1)])),_:1},8,["model-value"])])}const D=h(T,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/tesla/vehicle.vue"]]);export{D as default}; diff --git a/web/settings/assets/vehicle-edb9af18.js b/web/settings/assets/vehicle-edb9af18.js deleted file mode 100644 index dbcca65faa..0000000000 --- a/web/settings/assets/vehicle-edb9af18.js +++ /dev/null @@ -1 +0,0 @@ -import{V as s}from"./VehicleConfig-233066dd.js";import{_ as p,u,l as d,m as v,G as a,E as n,B as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocEVCC",mixins:[s]},g={class:"vehicle-soc-evcc"};function x(t,e,f,V,w,b){const i=u("openwb-base-text-input"),r=u("openwb-base-select-input");return d(),v("div",g,[a(i,{title:"EVCC Sponsor Token",subtype:"password",required:"","model-value":t.vehicle.configuration.sponsor_token,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.sponsor_token"))},{help:n(()=>[...e[5]||(e[5]=[l(" EVCC Sponsor Token angeben, dies ist notwendig um SoC über EVCC abrufen zu können. https://sponsor.evcc.io/ ",-1)])]),_:1},8,["model-value"]),a(i,{title:"Benutzername",subtype:"user",required:"","model-value":t.vehicle.configuration.user_id,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.user_id"))},{help:n(()=>[...e[6]||(e[6]=[l(" Benutzername beim Fahrzeughersteller. ",-1)])]),_:1},8,["model-value"]),a(i,{title:"Kennwort",subtype:"password",required:"","model-value":t.vehicle.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateConfiguration(o,"configuration.password"))},{help:n(()=>[...e[7]||(e[7]=[l(" Kennwort beim Fahrzeughersteller. ",-1)])]),_:1},8,["model-value"]),a(r,{title:"Marke",required:"","not-selected":"Bitte auswählen",options:[{value:"aiways",text:"Aiways"},{value:"audi",text:"Audi"},{value:"etron",text:"Audi e-tron"},{value:"bmw",text:"BMW"},{value:"dacia",text:"Dacia"},{value:"fiat",text:"Fiat"},{value:"ford",text:"Ford"},{value:"hyundai",text:"Hyundai"},{value:"jaguar",text:"Jaguar"},{value:"kia",text:"Kia"},{value:"landrover",text:"Landrover"},{value:"mg",text:"Mg"},{value:"mini",text:"Mini"},{value:"nissan",text:"Nissan"},{value:"carwings",text:"Nissan (Leaf pre 2019)"},{value:"ovms",text:"OVMS"},{value:"polestar",text:"Polestar"},{value:"porsche",text:"Porsche"},{value:"renault",text:"Renault"},{value:"seat",text:"Seat"},{value:"cupra",text:"Seat Cupra"},{value:"skoda",text:"Škoda"},{value:"enyaq",text:"Škoda Enyaq"},{value:"smart",text:"Smart"},{value:"smart-hello",text:"Smart-Hello"},{value:"template",text:"Template"},{value:"volvo",text:"Volvo"},{value:"volvo-connected",text:"Volvo-Connected"},{value:"vw",text:"VW"},{value:"id",text:"VW ID"}],"model-value":t.vehicle.configuration.vehicle_type,"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateConfiguration(o,"configuration.vehicle_type"))},{help:n(()=>[...e[8]||(e[8]=[l(" Marke aus des Fahrzeugs. ",-1)])]),_:1},8,["model-value"]),a(i,{title:"VIN",subtype:"text","model-value":t.vehicle.configuration.VIN,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateConfiguration(o,"configuration.VIN"))},{help:n(()=>[...e[9]||(e[9]=[l(" Fahrgestellnummer (VIN) des Fahrzeugs. Notwendig falls mehrere Fahrzeuge im Account des Herstellers vorhanden sind. ",-1)])]),_:1},8,["model-value"])])}const F=p(m,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/evcc/vehicle.vue"]]);export{F as default}; diff --git a/web/settings/assets/vehicle-edca70a6.js b/web/settings/assets/vehicle-edca70a6.js deleted file mode 100644 index ad15bf3069..0000000000 --- a/web/settings/assets/vehicle-edca70a6.js +++ /dev/null @@ -1 +0,0 @@ -import{V as m}from"./VehicleConfig-233066dd.js";import{_ as p,u as s,l as g,m as b,G as r,E as i,B as n,A as l}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const f={name:"VehicleSocJson",mixins:[m]},w={class:"vehicle-soc-json"};function h(t,e,v,c,k,z){const a=s("openwb-base-text-input"),u=s("openwb-base-button-group-input"),d=s("openwb-base-number-input");return g(),b("div",w,[r(a,{title:"URL",subtype:"url",required:"","model-value":t.vehicle.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.url"))},{help:i(()=>[...e[6]||(e[6]=[n(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen, optional einem Port und einem Pfad. Die Antwort muss ein json-Objekt sein. Beispiel: http://192.168.1.1:8080/json?data=1 ",-1)])]),_:1},8,["model-value"]),r(a,{title:"Abfrage für SoC",subtype:"text",required:"","model-value":t.vehicle.configuration.soc_pattern,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.soc_pattern"))},{help:i(()=>[...e[7]||(e[7]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.soc eingetragen werden. ',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen Ladestand (SoC) darstellt. ",-1)])]),_:1},8,["model-value"]),r(a,{title:"Abfrage für Reichweite",subtype:"text","model-value":t.vehicle.configuration.range_pattern,"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateConfiguration(o,"configuration.range_pattern"))},{help:i(()=>[...e[8]||(e[8]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.range eingetragen werden. ',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Reichweite darstellt.",-1),l("br",null,null,-1),n(" Ohne Angabe wird die Reichweite nicht abgefragt und auf Null gesetzt. ",-1)])]),_:1},8,["model-value"]),r(a,{title:"Abfrage für Zeitstempel",subtype:"text","model-value":t.vehicle.configuration.timestamp_pattern,"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateConfiguration(o,"configuration.timestamp_pattern"))},{help:i(()=>[...e[9]||(e[9]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.timestamp eingetragen werden.',-1),l("br",null,null,-1),n(" Es wird vom Server entweder eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen als Epoch Zeitstempel oder eine ISO 8601 formatierte Zeit erwartet welche den Zeitstempel der gelieferten Werte darstellt.",-1),l("br",null,null,-1),n(" Ohne Angabe wird der Zeitpunkt des Datenabrufs als Zeitstempel verwendet. ",-1)])]),_:1},8,["model-value"]),r(u,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateConfiguration(o,"configuration.calculate_soc"))},{help:i(()=>[...e[10]||(e[10]=[n(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),l("br",null,null,-1),n(" Derzeit u.a. notwendig für Peugeot, Opel, Citroen und DS. ",-1)])]),_:1},8,["model-value"]),r(d,{title:"Timeout für http-Abfragen",subtype:"number","model-value":t.vehicle.configuration.timeout,"onUpdate:modelValue":e[5]||(e[5]=o=>t.updateConfiguration(o,"configuration.timeout"))},{help:i(()=>[...e[11]||(e[11]=[n(" Ermöglicht es einen Timeout für die http-Abfragen zu setzen. Der Wert wird in Sekunden angegeben. Standardwert ist 5 Sekunden sofern kein anderer Wert angegeben ist. ",-1)])]),_:1},8,["model-value"])])}const E=p(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/json/vehicle.vue"]]);export{E as default}; diff --git a/web/settings/assets/vehicle-f2b05f39.js b/web/settings/assets/vehicle-f2b05f39.js new file mode 100644 index 0000000000..f353534925 --- /dev/null +++ b/web/settings/assets/vehicle-f2b05f39.js @@ -0,0 +1 @@ +import{V as a}from"./VehicleConfig-c6e5b45b.js";import{_ as p,u as s,l as m,m as v,G as t,E as l,B as o,A as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"VehicleSocOVMS",mixins:[a]},g={class:"vehicle-soc-ovms"};function b(n,e,V,w,S,M){const d=s("openwb-base-alert"),u=s("openwb-base-text-input");return m(),v("div",g,[t(d,{subtype:"info"},{default:l(()=>e[4]||(e[4]=[o(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),i("a",{href:"https://github.com/openWB/core/wiki/SoC-OVMS",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul OVMS",-1)])),_:1,__:[4]}),t(u,{title:"Server URL",required:"","model-value":n.vehicle.configuration.server_url,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.server_url"))},{help:l(()=>e[5]||(e[5]=[o(" Die URL (incl. Port) des API des OVMS-Servers, an dem das OVMS-Modul angemeldet ist, z.B. ",-1),i("br",null,null,-1),o(" https://ovms.dexters-web.de:6869",-1),i("br",null,null,-1),o(" oder",-1),i("br",null,null,-1),o(" https://api.openvehicles.com:6869",-1),i("br",null,null,-1),o(" oder ein custom server",-1),i("br",null,null,-1)])),_:1},8,["model-value"]),t(u,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateConfiguration(r,"configuration.user_id"))},{help:l(()=>e[6]||(e[6]=[o(" Der Benutzername für die Anmeldung am benutzen OVMS-Servers. ",-1)])),_:1},8,["model-value"]),t(u,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=r=>n.updateConfiguration(r,"configuration.password"))},{help:l(()=>e[7]||(e[7]=[o(" Das Passwort für die Anmeldung am OVMS-Server. ",-1)])),_:1},8,["model-value"]),t(u,{title:"Vehicle Id",required:"","model-value":n.vehicle.configuration.vehicleId,"onUpdate:modelValue":e[3]||(e[3]=r=>n.updateConfiguration(r,"configuration.vehicleId"))},{help:l(()=>e[8]||(e[8]=[o(" Die Id des Fahrzeugs im OVMS, auch Module Id genannt. ",-1)])),_:1},8,["model-value"])])}const z=p(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ovms/vehicle.vue"]]);export{z as default}; diff --git a/web/settings/assets/vehicle-f35ebd53.js b/web/settings/assets/vehicle-f35ebd53.js deleted file mode 100644 index 3c5dbe9a7a..0000000000 --- a/web/settings/assets/vehicle-f35ebd53.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as h,a6 as c,a7 as _,a8 as f,u as r,l as b,m as k,G as i,E as a,B as s,A as v}from"./vendor-36bf053b.js";import{a as w}from"./vendor-axios-090d6ce2.js";import{C}from"./index-0992d19b.js";import{V as y}from"./VehicleConfig-233066dd.js";import"./vendor-sortablejs-32624a33.js";import"./vendor-fortawesome-2b3791bb.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./dynamic-import-helper-be004503.js";const T={name:"VehicleSocTesla",mixins:[C,y],data(){return{tesla_api_oauth2:"https://auth.tesla.com/oauth2/v3",tesla_api_redirect:"https://auth.tesla.com/void/callback",tesla_api_owners:"https://owner-api.teslamotors.com/oauth/token",user_agent:"Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",code_challenge:null,code_verifier:null,page_not_found_url:null}},methods:{tesla_login_window(){this.tesla_gen_challenge();var e=window.open(this.tesla_gen_url(),"TeslaLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");e.focus()},tesla_gen_challenge(){this.code_verifier=c.encode(_.randomBytes(86)).replace(/[^a-zA-Z0-9]/gi,"").substring(0,86);const e=_.createHash("sha256").update(this.code_verifier).digest();this.code_challenge=c.encode(e),console.debug(this.code_verifier,this.code_verifier.length,this.code_challenge,this.code_challenge.length)},tesla_gen_url(){const e=new URL(this.tesla_api_oauth2+"/authorize/");return e.searchParams.append("client_id","ownerapi"),e.searchParams.append("code_challenge",this.code_challenge),e.searchParams.append("code_challenge_method","S256"),e.searchParams.append("redirect_uri",this.tesla_api_redirect),e.searchParams.append("response_type","code"),e.searchParams.append("scope","openid email offline_access"),e.searchParams.append("state","myteslaapp"),e},async tesla_login(){const e=f.parse(this.page_not_found_url,!0).query;if(console.debug("queryObject",e),!e.code){console.error("Something is wrong... Code does not exist in URL"),this.$root.postClientMessage("Die eingegebene URL ist ungültig.","danger");return}const n={url:this.tesla_api_owners,user_agent:this.user_agent,data:{grant_type:"authorization_code",client_id:"ownerapi",code:e.code,code_verifier:this.code_verifier,redirect_uri:this.tesla_api_redirect}};try{const o=await w.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/vehicles/tesla/tesla.php",JSON.parse(JSON.stringify(n)),{headers:{"Content-Type":"application/json",Accept:"application/json"}});console.debug("response",o),this.updateConfiguration({access_token:o.data.access_token,refresh_token:o.data.refresh_token,created_at:o.data.created_at,expires_in:o.data.expires_in},"configuration.token"),this.$root.postClientMessage("Token erfolgreich abgerufen.","success")}catch(o){console.error(o),this.$root.postClientMessage("Beim Abruf der Token ist ein Fehler aufgetreten!
"+o+"
","danger")}}}},B={class:"vehicle-soc-tesla"};function U(e,n,o,z,l,p){const u=r("openwb-base-number-input"),m=r("openwb-base-heading"),g=r("openwb-base-button-input"),d=r("openwb-base-text-input");return b(),k("div",B,[i(u,{title:"Fahrzeug-ID",required:"",min:0,"model-value":e.vehicle.configuration.tesla_ev_num,"onUpdate:modelValue":n[0]||(n[0]=t=>e.updateConfiguration(t,"configuration.tesla_ev_num"))},{help:a(()=>[...n[6]||(n[6]=[s(' Die ID des Fahrzeugs bei Tesla. Normalerweise "0" bei nur einem Fahrzeug im Konto. ',-1)])]),_:1},8,["model-value"]),i(m,null,{default:a(()=>[...n[7]||(n[7]=[s("Token abrufen oder eingeben",-1)])]),_:1}),i(g,{title:"1. Anmelden","button-text":"Bei Tesla Anmelden",subtype:"success",onButtonClicked:p.tesla_login_window},{help:a(()=>[...n[8]||(n[8]=[s(" Es wird ein neues Browserfenster geöffnet, in dem Sie sich bei Tesla mit Ihren Zugangsdaten anmelden können. ",-1)])]),_:1},8,["onButtonClicked"]),i(d,{modelValue:l.page_not_found_url,"onUpdate:modelValue":n[1]||(n[1]=t=>l.page_not_found_url=t),title:"2. URL kopieren und einfügen",subtype:"url","empty-value":null},{help:a(()=>[...n[9]||(n[9]=[s(' Hier die komplette URL (Text in der Adresszeile) aus dem geöffneten Browserfenster einfügen, wenn dort "Page Not Found" angezeigt wird. ',-1)])]),_:1},8,["modelValue"]),i(g,{title:"3. Token abrufen","button-text":"Jetzt abrufen",subtype:"success",disabled:l.page_not_found_url===null,onButtonClicked:p.tesla_login},{help:a(()=>[...n[10]||(n[10]=[s(" Der in der eingegebenen URL enthaltene Code wird genutzt, um ein Anmeldetoken bei Tesla abzurufen. Ist dies erfolgreich, so werden die Daten des Token in den weiteren Feldern automatisch eingegeben. ",-1)])]),_:1},8,["disabled","onButtonClicked"]),n[13]||(n[13]=v("hr",null,null,-1)),i(d,{title:"Access Token",pattern:"^(ey).*",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.access_token:"","onUpdate:modelValue":n[2]||(n[2]=t=>e.updateConfiguration(t,"configuration.token.access_token"))},null,8,["model-value"]),i(d,{title:"Refresh Token",pattern:"^(ey).*",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.refresh_token:"","onUpdate:modelValue":n[3]||(n[3]=t=>e.updateConfiguration(t,"configuration.token.refresh_token"))},null,8,["model-value"]),i(u,{title:"Erstellt um",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.created_at:0,"onUpdate:modelValue":n[4]||(n[4]=t=>e.updateConfiguration(t,"configuration.token.created_at"))},{help:a(()=>[...n[11]||(n[11]=[s(" Unix Timestamp des Zeitpunktes, an dem das Token erzeugt wurde. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"Ungültig in",unit:"s",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.expires_in:0,"onUpdate:modelValue":n[5]||(n[5]=t=>e.updateConfiguration(t,"configuration.token.expires_in"))},{help:a(()=>[...n[12]||(n[12]=[s(" Zeitspanne in Sekunden, nach der das Token ungültig wird. ",-1)])]),_:1},8,["model-value"])])}const D=h(T,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/tesla/vehicle.vue"]]);export{D as default}; diff --git a/web/settings/assets/vehicle-f4c3c45b.js b/web/settings/assets/vehicle-f4c3c45b.js deleted file mode 100644 index fb33249903..0000000000 --- a/web/settings/assets/vehicle-f4c3c45b.js +++ /dev/null @@ -1 +0,0 @@ -import{V as u}from"./VehicleConfig-233066dd.js";import{_ as p,u as a,l as d,m,G as o,E as i,B as r}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const v={name:"VehicleSocLeaf",mixins:[u]},f={class:"vehicle-soc-leaf"};function g(t,e,c,b,w,N){const s=a("openwb-base-text-input"),l=a("openwb-base-select-input");return d(),m("div",f,[o(s,{title:"Benutzername",required:"",subtype:"user","model-value":t.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.user_id"))},{help:i(()=>[...e[3]||(e[3]=[r(" Der Benutzername für die Anmeldung an den Nissan-Servern. ",-1)])]),_:1},8,["model-value"]),o(s,{title:"Kennwort",required:"",subtype:"password","model-value":t.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.password"))},{help:i(()=>[...e[4]||(e[4]=[r(" Das Passwort für die Anmeldung an den Nissan-Servern. ",-1)])]),_:1},8,["model-value"]),o(l,{title:"Region",required:"","not-selected":"Bitte auswählen",options:[{value:"NE",text:"Europa (getestet)"},{value:"NNA",text:"USA (nicht getestet)"},{value:"NCI",text:"Kanada (nicht getestet)"},{value:"NMA",text:"Australien (nicht getestet)"},{value:"NML",text:"Japan (nicht getestet)"}],"model-value":t.vehicle.configuration.region,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.region"))},{help:i(()=>[...e[5]||(e[5]=[r(" Die Region, in der das Fahrzeug betrieben wird. ",-1)])]),_:1},8,["model-value"])])}const U=p(v,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/leaf/vehicle.vue"]]);export{U as default}; diff --git a/web/settings/assets/vehicle-fbca4a35.js b/web/settings/assets/vehicle-fbca4a35.js new file mode 100644 index 0000000000..aa73e37fd1 --- /dev/null +++ b/web/settings/assets/vehicle-fbca4a35.js @@ -0,0 +1 @@ +import{V as u}from"./VehicleConfig-c6e5b45b.js";import{_ as a,u as s,l as d,m as p,G as t,E as r,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocKia",mixins:[u]},v={class:"vehicle-soc-kia"};function f(o,e,g,w,V,b){const i=s("openwb-base-text-input");return d(),p("div",v,[t(i,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:r(()=>e[4]||(e[4]=[l(" Der Benutzername für die Anmeldung an den Servern. ",-1)])),_:1},8,["model-value"]),t(i,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:r(()=>e[5]||(e[5]=[l(" Das Passwort für die Anmeldung an den Servern. ",-1)])),_:1},8,["model-value"]),t(i,{title:"PIN",required:"",subtype:"password","model-value":o.vehicle.configuration.pin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.pin"))},{help:r(()=>e[6]||(e[6]=[l(" Die PIN für die Anmeldung an den Servern. ",-1)])),_:1},8,["model-value"]),t(i,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:r(()=>e[7]||(e[7]=[l(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"])])}const h=a(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/kia/vehicle.vue"]]);export{h as default}; diff --git a/web/settings/assets/vehicle-33bf94c2.js b/web/settings/assets/vehicle-fe38074f.js similarity index 85% rename from web/settings/assets/vehicle-33bf94c2.js rename to web/settings/assets/vehicle-fe38074f.js index 0c9f831075..8abc54afec 100644 --- a/web/settings/assets/vehicle-33bf94c2.js +++ b/web/settings/assets/vehicle-fe38074f.js @@ -1 +1 @@ -import{V as u}from"./VehicleConfig-233066dd.js";import{_ as a,u as r,l as d,m as f,G as o,E as i,A as e,B as l,F as p}from"./vendor-36bf053b.js";import"./vendor-fortawesome-2b3791bb.js";import"./index-0992d19b.js";import"./vendor-bootstrap-87ba0f33.js";import"./vendor-jquery-ffd3fdac.js";import"./vendor-axios-090d6ce2.js";import"./vendor-sortablejs-32624a33.js";import"./dynamic-import-helper-be004503.js";const b={name:"VehicleSocMqtt",mixins:[u]},v={class:"vehicle-soc-mqtt"};function g(n,t,x,B,k,w){const s=r("openwb-base-copy-to-clipboard"),m=r("openwb-base-alert");return d(),f("div",v,[o(m,{subtype:"info"},{default:i(()=>[e("ul",null,[e("li",null,[o(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[l(" openWB/set/mqtt/vehicle/"+p(n.vehicleId)+"/get/soc ",1)]),_:1}),t[0]||(t[0]=e("br",null,null,-1)),t[1]||(t[1]=l(" Fahrzeug-SoC mit Nachkommastellen (Float) oder Ganzzahl",-1)),t[2]||(t[2]=e("br",null,null,-1)),t[3]||(t[3]=l(" Beispiel: ",-1)),t[4]||(t[4]=e("span",{class:"text-info"},"89.5",-1))]),e("li",null,[o(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[l(" openWB/set/mqtt/vehicle/"+p(n.vehicleId)+"/get/soc_timestamp ",1)]),_:1}),t[5]||(t[5]=e("br",null,null,-1)),t[6]||(t[6]=l(" Zeitstempel des SoCs in s als Unix-Zeitstempel",-1)),t[7]||(t[7]=e("br",null,null,-1)),t[8]||(t[8]=l(" Diese Info ist optional. Wird kein Wert für das Topic veröffentlicht, wird bei der Abfrage automatisch der aktuelle Zeitstempel gesetzt.",-1)),t[9]||(t[9]=e("br",null,null,-1)),t[10]||(t[10]=l(" Beispiel: ",-1)),t[11]||(t[11]=e("span",{class:"text-info"},"1748339524",-1))]),e("li",null,[o(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[l(" openWB/set/mqtt/vehicle/"+p(n.vehicleId)+"/get/range ",1)]),_:1}),t[12]||(t[12]=e("br",null,null,-1)),t[13]||(t[13]=l(" Reichweite des Fahrzeugs in km mit Nachkommastellen (Float) oder Ganzzahl",-1)),t[14]||(t[14]=e("br",null,null,-1)),t[15]||(t[15]=l(" Diese Info ist optional.",-1)),t[16]||(t[16]=e("br",null,null,-1)),t[17]||(t[17]=l(" Beispiel: ",-1)),t[18]||(t[18]=e("span",{class:"text-info"},"356.5",-1))])])]),_:1})])}const y=a(b,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/mqtt/vehicle.vue"]]);export{y as default}; +import{V as u}from"./VehicleConfig-c6e5b45b.js";import{_ as a,u as r,l as d,m as f,G as o,E as i,A as e,B as l,F as p}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"VehicleSocMqtt",mixins:[u]},v={class:"vehicle-soc-mqtt"};function g(n,t,x,B,k,w){const s=r("openwb-base-copy-to-clipboard"),m=r("openwb-base-alert");return d(),f("div",v,[o(m,{subtype:"info"},{default:i(()=>[e("ul",null,[e("li",null,[o(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[l(" openWB/set/mqtt/vehicle/"+p(n.vehicleId)+"/get/soc ",1)]),_:1}),t[0]||(t[0]=e("br",null,null,-1)),t[1]||(t[1]=l(" Fahrzeug-SoC mit Nachkommastellen (Float) oder Ganzzahl",-1)),t[2]||(t[2]=e("br",null,null,-1)),t[3]||(t[3]=l(" Beispiel: ",-1)),t[4]||(t[4]=e("span",{class:"text-info"},"89.5",-1))]),e("li",null,[o(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[l(" openWB/set/mqtt/vehicle/"+p(n.vehicleId)+"/get/soc_timestamp ",1)]),_:1}),t[5]||(t[5]=e("br",null,null,-1)),t[6]||(t[6]=l(" Zeitstempel des SoCs in s als Unix-Zeitstempel",-1)),t[7]||(t[7]=e("br",null,null,-1)),t[8]||(t[8]=l(" Diese Info ist optional. Wird kein Wert für das Topic veröffentlicht, wird bei der Abfrage automatisch der aktuelle Zeitstempel gesetzt.",-1)),t[9]||(t[9]=e("br",null,null,-1)),t[10]||(t[10]=l(" Beispiel: ",-1)),t[11]||(t[11]=e("span",{class:"text-info"},"1748339524",-1))]),e("li",null,[o(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[l(" openWB/set/mqtt/vehicle/"+p(n.vehicleId)+"/get/range ",1)]),_:1}),t[12]||(t[12]=e("br",null,null,-1)),t[13]||(t[13]=l(" Reichweite des Fahrzeugs in km mit Nachkommastellen (Float) oder Ganzzahl",-1)),t[14]||(t[14]=e("br",null,null,-1)),t[15]||(t[15]=l(" Diese Info ist optional.",-1)),t[16]||(t[16]=e("br",null,null,-1)),t[17]||(t[17]=l(" Beispiel: ",-1)),t[18]||(t[18]=e("span",{class:"text-info"},"356.5",-1))])])]),_:1})])}const y=a(b,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/mqtt/vehicle.vue"]]);export{y as default}; diff --git a/web/settings/assets/vendor-36bf053b.js b/web/settings/assets/vendor-25d394b4.js similarity index 80% rename from web/settings/assets/vendor-36bf053b.js rename to web/settings/assets/vendor-25d394b4.js index b6648c1f56..a478e2dddd 100644 --- a/web/settings/assets/vendor-36bf053b.js +++ b/web/settings/assets/vendor-25d394b4.js @@ -1,50 +1,50 @@ -import{r as require$$1$5}from"./vendor-sortablejs-32624a33.js";var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getDefaultExportFromCjs(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function getAugmentedNamespace(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function o(){return this instanceof o?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(o){var l=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(n,o,l.get?l:{enumerable:!0,get:function(){return e[o]}})}),n}var buffer$2={},base64Js={};base64Js.byteLength=byteLength$1;base64Js.toByteArray=toByteArray;base64Js.fromByteArray=fromByteArray;var lookup=[],revLookup=[],Arr=typeof Uint8Array<"u"?Uint8Array:Array,code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var i=0,len=code.length;i0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");n===-1&&(n=t);var o=n===t?0:4-n%4;return[n,o]}function byteLength$1(e){var t=getLens(e),n=t[0],o=t[1];return(n+o)*3/4-o}function _byteLength(e,t,n){return(t+n)*3/4-n}function toByteArray(e){var t,n=getLens(e),o=n[0],l=n[1],a=new Arr(_byteLength(e,o,l)),d=0,y=l>0?o-4:o,w;for(w=0;w>16&255,a[d++]=t>>8&255,a[d++]=t&255;return l===2&&(t=revLookup[e.charCodeAt(w)]<<2|revLookup[e.charCodeAt(w+1)]>>4,a[d++]=t&255),l===1&&(t=revLookup[e.charCodeAt(w)]<<10|revLookup[e.charCodeAt(w+1)]<<4|revLookup[e.charCodeAt(w+2)]>>2,a[d++]=t>>8&255,a[d++]=t&255),a}function tripletToBase64(e){return lookup[e>>18&63]+lookup[e>>12&63]+lookup[e>>6&63]+lookup[e&63]}function encodeChunk(e,t,n){for(var o,l=[],a=t;ay?y:d+a));return o===1?(t=e[n-1],l.push(lookup[t>>2]+lookup[t<<4&63]+"==")):o===2&&(t=(e[n-2]<<8)+e[n-1],l.push(lookup[t>>10]+lookup[t>>4&63]+lookup[t<<2&63]+"=")),l.join("")}var ieee754={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ieee754.read=function(e,t,n,o,l){var a,d,y=l*8-o-1,w=(1<>1,S=-7,x=n?l-1:0,C=n?-1:1,B=e[t+x];for(x+=C,a=B&(1<<-S)-1,B>>=-S,S+=y;S>0;a=a*256+e[t+x],x+=C,S-=8);for(d=a&(1<<-S)-1,a>>=-S,S+=o;S>0;d=d*256+e[t+x],x+=C,S-=8);if(a===0)a=1-_;else{if(a===w)return d?NaN:(B?-1:1)*(1/0);d=d+Math.pow(2,o),a=a-_}return(B?-1:1)*d*Math.pow(2,a-o)};ieee754.write=function(e,t,n,o,l,a){var d,y,w,_=a*8-l-1,S=(1<<_)-1,x=S>>1,C=l===23?Math.pow(2,-24)-Math.pow(2,-77):0,B=o?0:a-1,L=o?1:-1,F=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(y=isNaN(t)?1:0,d=S):(d=Math.floor(Math.log(t)/Math.LN2),t*(w=Math.pow(2,-d))<1&&(d--,w*=2),d+x>=1?t+=C/w:t+=C*Math.pow(2,1-x),t*w>=2&&(d++,w/=2),d+x>=S?(y=0,d=S):d+x>=1?(y=(t*w-1)*Math.pow(2,l),d=d+x):(y=t*Math.pow(2,x-1)*Math.pow(2,l),d=0));l>=8;e[n+B]=y&255,B+=L,y/=256,l-=8);for(d=d<0;e[n+B]=d&255,B+=L,d/=256,_-=8);e[n+B-L]|=F*128};/*! +import{r as require$$1$5}from"./vendor-sortablejs-0eb84ec8.js";var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getDefaultExportFromCjs(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function getAugmentedNamespace(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function o(){return this instanceof o?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(o){var l=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(n,o,l.get?l:{enumerable:!0,get:function(){return e[o]}})}),n}var buffer$2={},base64Js={};base64Js.byteLength=byteLength$1;base64Js.toByteArray=toByteArray;base64Js.fromByteArray=fromByteArray;var lookup=[],revLookup=[],Arr=typeof Uint8Array<"u"?Uint8Array:Array,code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var i=0,len=code.length;i0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");n===-1&&(n=t);var o=n===t?0:4-n%4;return[n,o]}function byteLength$1(e){var t=getLens(e),n=t[0],o=t[1];return(n+o)*3/4-o}function _byteLength(e,t,n){return(t+n)*3/4-n}function toByteArray(e){var t,n=getLens(e),o=n[0],l=n[1],a=new Arr(_byteLength(e,o,l)),d=0,y=l>0?o-4:o,w;for(w=0;w>16&255,a[d++]=t>>8&255,a[d++]=t&255;return l===2&&(t=revLookup[e.charCodeAt(w)]<<2|revLookup[e.charCodeAt(w+1)]>>4,a[d++]=t&255),l===1&&(t=revLookup[e.charCodeAt(w)]<<10|revLookup[e.charCodeAt(w+1)]<<4|revLookup[e.charCodeAt(w+2)]>>2,a[d++]=t>>8&255,a[d++]=t&255),a}function tripletToBase64(e){return lookup[e>>18&63]+lookup[e>>12&63]+lookup[e>>6&63]+lookup[e&63]}function encodeChunk(e,t,n){for(var o,l=[],a=t;ay?y:d+a));return o===1?(t=e[n-1],l.push(lookup[t>>2]+lookup[t<<4&63]+"==")):o===2&&(t=(e[n-2]<<8)+e[n-1],l.push(lookup[t>>10]+lookup[t>>4&63]+lookup[t<<2&63]+"=")),l.join("")}var ieee754={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ieee754.read=function(e,t,n,o,l){var a,d,y=l*8-o-1,w=(1<>1,S=-7,E=n?l-1:0,C=n?-1:1,B=e[t+E];for(E+=C,a=B&(1<<-S)-1,B>>=-S,S+=y;S>0;a=a*256+e[t+E],E+=C,S-=8);for(d=a&(1<<-S)-1,a>>=-S,S+=o;S>0;d=d*256+e[t+E],E+=C,S-=8);if(a===0)a=1-_;else{if(a===w)return d?NaN:(B?-1:1)*(1/0);d=d+Math.pow(2,o),a=a-_}return(B?-1:1)*d*Math.pow(2,a-o)};ieee754.write=function(e,t,n,o,l,a){var d,y,w,_=a*8-l-1,S=(1<<_)-1,E=S>>1,C=l===23?Math.pow(2,-24)-Math.pow(2,-77):0,B=o?0:a-1,L=o?1:-1,F=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(y=isNaN(t)?1:0,d=S):(d=Math.floor(Math.log(t)/Math.LN2),t*(w=Math.pow(2,-d))<1&&(d--,w*=2),d+E>=1?t+=C/w:t+=C*Math.pow(2,1-E),t*w>=2&&(d++,w/=2),d+E>=S?(y=0,d=S):d+E>=1?(y=(t*w-1)*Math.pow(2,l),d=d+E):(y=t*Math.pow(2,E-1)*Math.pow(2,l),d=0));l>=8;e[n+B]=y&255,B+=L,y/=256,l-=8);for(d=d<0;e[n+B]=d&255,B+=L,d/=256,_-=8);e[n+B-L]|=F*128};/*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT - */(function(e){var t=base64Js,n=ieee754,o=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=y,e.SlowBuffer=D,e.INSPECT_MAX_BYTES=50;var l=2147483647;e.kMaxLength=l,y.TYPED_ARRAY_SUPPORT=a(),!y.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function a(){try{var J=new Uint8Array(1),Y={foo:function(){return 42}};return Object.setPrototypeOf(Y,Uint8Array.prototype),Object.setPrototypeOf(J,Y),J.foo()===42}catch{return!1}}Object.defineProperty(y.prototype,"parent",{enumerable:!0,get:function(){if(y.isBuffer(this))return this.buffer}}),Object.defineProperty(y.prototype,"offset",{enumerable:!0,get:function(){if(y.isBuffer(this))return this.byteOffset}});function d(J){if(J>l)throw new RangeError('The value "'+J+'" is invalid for option "size"');var Y=new Uint8Array(J);return Object.setPrototypeOf(Y,y.prototype),Y}function y(J,Y,X){if(typeof J=="number"){if(typeof Y=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return x(J)}return w(J,Y,X)}y.poolSize=8192;function w(J,Y,X){if(typeof J=="string")return C(J,Y);if(ArrayBuffer.isView(J))return L(J);if(J==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof J);if(te(J,ArrayBuffer)||J&&te(J.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(te(J,SharedArrayBuffer)||J&&te(J.buffer,SharedArrayBuffer)))return F(J,Y,X);if(typeof J=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');var ne=J.valueOf&&J.valueOf();if(ne!=null&&ne!==J)return y.from(ne,Y,X);var me=q(J);if(me)return me;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof J[Symbol.toPrimitive]=="function")return y.from(J[Symbol.toPrimitive]("string"),Y,X);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof J)}y.from=function(J,Y,X){return w(J,Y,X)},Object.setPrototypeOf(y.prototype,Uint8Array.prototype),Object.setPrototypeOf(y,Uint8Array);function _(J){if(typeof J!="number")throw new TypeError('"size" argument must be of type number');if(J<0)throw new RangeError('The value "'+J+'" is invalid for option "size"')}function S(J,Y,X){return _(J),J<=0?d(J):Y!==void 0?typeof X=="string"?d(J).fill(Y,X):d(J).fill(Y):d(J)}y.alloc=function(J,Y,X){return S(J,Y,X)};function x(J){return _(J),d(J<0?0:H(J)|0)}y.allocUnsafe=function(J){return x(J)},y.allocUnsafeSlow=function(J){return x(J)};function C(J,Y){if((typeof Y!="string"||Y==="")&&(Y="utf8"),!y.isEncoding(Y))throw new TypeError("Unknown encoding: "+Y);var X=j(J,Y)|0,ne=d(X),me=ne.write(J,Y);return me!==X&&(ne=ne.slice(0,me)),ne}function B(J){for(var Y=J.length<0?0:H(J.length)|0,X=d(Y),ne=0;ne=l)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+l.toString(16)+" bytes");return J|0}function D(J){return+J!=J&&(J=0),y.alloc(+J)}y.isBuffer=function(Y){return Y!=null&&Y._isBuffer===!0&&Y!==y.prototype},y.compare=function(Y,X){if(te(Y,Uint8Array)&&(Y=y.from(Y,Y.offset,Y.byteLength)),te(X,Uint8Array)&&(X=y.from(X,X.offset,X.byteLength)),!y.isBuffer(Y)||!y.isBuffer(X))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(Y===X)return 0;for(var ne=Y.length,me=X.length,he=0,ge=Math.min(ne,me);heme.length?y.from(ge).copy(me,he):Uint8Array.prototype.set.call(me,ge,he);else if(y.isBuffer(ge))ge.copy(me,he);else throw new TypeError('"list" argument must be an Array of Buffers');he+=ge.length}return me};function j(J,Y){if(y.isBuffer(J))return J.length;if(ArrayBuffer.isView(J)||te(J,ArrayBuffer))return J.byteLength;if(typeof J!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof J);var X=J.length,ne=arguments.length>2&&arguments[2]===!0;if(!ne&&X===0)return 0;for(var me=!1;;)switch(Y){case"ascii":case"latin1":case"binary":return X;case"utf8":case"utf-8":return Z(J).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return X*2;case"hex":return X>>>1;case"base64":return k(J).length;default:if(me)return ne?-1:Z(J).length;Y=(""+Y).toLowerCase(),me=!0}}y.byteLength=j;function V(J,Y,X){var ne=!1;if((Y===void 0||Y<0)&&(Y=0),Y>this.length||((X===void 0||X>this.length)&&(X=this.length),X<=0)||(X>>>=0,Y>>>=0,X<=Y))return"";for(J||(J="utf8");;)switch(J){case"hex":return $(this,Y,X);case"utf8":case"utf-8":return m(this,Y,X);case"ascii":return A(this,Y,X);case"latin1":case"binary":return O(this,Y,X);case"base64":return v(this,Y,X);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return c(this,Y,X);default:if(ne)throw new TypeError("Unknown encoding: "+J);J=(J+"").toLowerCase(),ne=!0}}y.prototype._isBuffer=!0;function Q(J,Y,X){var ne=J[Y];J[Y]=J[X],J[X]=ne}y.prototype.swap16=function(){var Y=this.length;if(Y%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var X=0;XX&&(Y+=" ... "),""},o&&(y.prototype[o]=y.prototype.inspect),y.prototype.compare=function(Y,X,ne,me,he){if(te(Y,Uint8Array)&&(Y=y.from(Y,Y.offset,Y.byteLength)),!y.isBuffer(Y))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof Y);if(X===void 0&&(X=0),ne===void 0&&(ne=Y?Y.length:0),me===void 0&&(me=0),he===void 0&&(he=this.length),X<0||ne>Y.length||me<0||he>this.length)throw new RangeError("out of range index");if(me>=he&&X>=ne)return 0;if(me>=he)return-1;if(X>=ne)return 1;if(X>>>=0,ne>>>=0,me>>>=0,he>>>=0,this===Y)return 0;for(var ge=he-me,Re=ne-X,_e=Math.min(ge,Re),we=this.slice(me,he),qe=Y.slice(X,ne),Se=0;Se<_e;++Se)if(we[Se]!==qe[Se]){ge=we[Se],Re=qe[Se];break}return ge2147483647?X=2147483647:X<-2147483648&&(X=-2147483648),X=+X,ee(X)&&(X=me?0:J.length-1),X<0&&(X=J.length+X),X>=J.length){if(me)return-1;X=J.length-1}else if(X<0)if(me)X=0;else return-1;if(typeof Y=="string"&&(Y=y.from(Y,ne)),y.isBuffer(Y))return Y.length===0?-1:ce(J,Y,X,ne,me);if(typeof Y=="number")return Y=Y&255,typeof Uint8Array.prototype.indexOf=="function"?me?Uint8Array.prototype.indexOf.call(J,Y,X):Uint8Array.prototype.lastIndexOf.call(J,Y,X):ce(J,[Y],X,ne,me);throw new TypeError("val must be string, number or Buffer")}function ce(J,Y,X,ne,me){var he=1,ge=J.length,Re=Y.length;if(ne!==void 0&&(ne=String(ne).toLowerCase(),ne==="ucs2"||ne==="ucs-2"||ne==="utf16le"||ne==="utf-16le")){if(J.length<2||Y.length<2)return-1;he=2,ge/=2,Re/=2,X/=2}function _e(Me,ve){return he===1?Me[ve]:Me.readUInt16BE(ve*he)}var we;if(me){var qe=-1;for(we=X;wege&&(X=ge-Re),we=X;we>=0;we--){for(var Se=!0,Ae=0;Aeme&&(ne=me)):ne=me;var he=Y.length;ne>he/2&&(ne=he/2);for(var ge=0;ge>>0,isFinite(ne)?(ne=ne>>>0,me===void 0&&(me="utf8")):(me=ne,ne=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var he=this.length-X;if((ne===void 0||ne>he)&&(ne=he),Y.length>0&&(ne<0||X<0)||X>this.length)throw new RangeError("Attempt to write outside buffer bounds");me||(me="utf8");for(var ge=!1;;)switch(me){case"hex":return ue(this,Y,X,ne);case"utf8":case"utf-8":return re(this,Y,X,ne);case"ascii":case"latin1":case"binary":return pe(this,Y,X,ne);case"base64":return T(this,Y,X,ne);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return u(this,Y,X,ne);default:if(ge)throw new TypeError("Unknown encoding: "+me);me=(""+me).toLowerCase(),ge=!0}},y.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function v(J,Y,X){return Y===0&&X===J.length?t.fromByteArray(J):t.fromByteArray(J.slice(Y,X))}function m(J,Y,X){X=Math.min(J.length,X);for(var ne=[],me=Y;me239?4:he>223?3:he>191?2:1;if(me+Re<=X){var _e,we,qe,Se;switch(Re){case 1:he<128&&(ge=he);break;case 2:_e=J[me+1],(_e&192)===128&&(Se=(he&31)<<6|_e&63,Se>127&&(ge=Se));break;case 3:_e=J[me+1],we=J[me+2],(_e&192)===128&&(we&192)===128&&(Se=(he&15)<<12|(_e&63)<<6|we&63,Se>2047&&(Se<55296||Se>57343)&&(ge=Se));break;case 4:_e=J[me+1],we=J[me+2],qe=J[me+3],(_e&192)===128&&(we&192)===128&&(qe&192)===128&&(Se=(he&15)<<18|(_e&63)<<12|(we&63)<<6|qe&63,Se>65535&&Se<1114112&&(ge=Se))}}ge===null?(ge=65533,Re=1):ge>65535&&(ge-=65536,ne.push(ge>>>10&1023|55296),ge=56320|ge&1023),ne.push(ge),me+=Re}return M(ne)}var b=4096;function M(J){var Y=J.length;if(Y<=b)return String.fromCharCode.apply(String,J);for(var X="",ne=0;nene)&&(X=ne);for(var me="",he=Y;hene&&(Y=ne),X<0?(X+=ne,X<0&&(X=0)):X>ne&&(X=ne),XX)throw new RangeError("Trying to access beyond buffer length")}y.prototype.readUintLE=y.prototype.readUIntLE=function(Y,X,ne){Y=Y>>>0,X=X>>>0,ne||E(Y,X,this.length);for(var me=this[Y],he=1,ge=0;++ge>>0,X=X>>>0,ne||E(Y,X,this.length);for(var me=this[Y+--X],he=1;X>0&&(he*=256);)me+=this[Y+--X]*he;return me},y.prototype.readUint8=y.prototype.readUInt8=function(Y,X){return Y=Y>>>0,X||E(Y,1,this.length),this[Y]},y.prototype.readUint16LE=y.prototype.readUInt16LE=function(Y,X){return Y=Y>>>0,X||E(Y,2,this.length),this[Y]|this[Y+1]<<8},y.prototype.readUint16BE=y.prototype.readUInt16BE=function(Y,X){return Y=Y>>>0,X||E(Y,2,this.length),this[Y]<<8|this[Y+1]},y.prototype.readUint32LE=y.prototype.readUInt32LE=function(Y,X){return Y=Y>>>0,X||E(Y,4,this.length),(this[Y]|this[Y+1]<<8|this[Y+2]<<16)+this[Y+3]*16777216},y.prototype.readUint32BE=y.prototype.readUInt32BE=function(Y,X){return Y=Y>>>0,X||E(Y,4,this.length),this[Y]*16777216+(this[Y+1]<<16|this[Y+2]<<8|this[Y+3])},y.prototype.readIntLE=function(Y,X,ne){Y=Y>>>0,X=X>>>0,ne||E(Y,X,this.length);for(var me=this[Y],he=1,ge=0;++ge=he&&(me-=Math.pow(2,8*X)),me},y.prototype.readIntBE=function(Y,X,ne){Y=Y>>>0,X=X>>>0,ne||E(Y,X,this.length);for(var me=X,he=1,ge=this[Y+--me];me>0&&(he*=256);)ge+=this[Y+--me]*he;return he*=128,ge>=he&&(ge-=Math.pow(2,8*X)),ge},y.prototype.readInt8=function(Y,X){return Y=Y>>>0,X||E(Y,1,this.length),this[Y]&128?(255-this[Y]+1)*-1:this[Y]},y.prototype.readInt16LE=function(Y,X){Y=Y>>>0,X||E(Y,2,this.length);var ne=this[Y]|this[Y+1]<<8;return ne&32768?ne|4294901760:ne},y.prototype.readInt16BE=function(Y,X){Y=Y>>>0,X||E(Y,2,this.length);var ne=this[Y+1]|this[Y]<<8;return ne&32768?ne|4294901760:ne},y.prototype.readInt32LE=function(Y,X){return Y=Y>>>0,X||E(Y,4,this.length),this[Y]|this[Y+1]<<8|this[Y+2]<<16|this[Y+3]<<24},y.prototype.readInt32BE=function(Y,X){return Y=Y>>>0,X||E(Y,4,this.length),this[Y]<<24|this[Y+1]<<16|this[Y+2]<<8|this[Y+3]},y.prototype.readFloatLE=function(Y,X){return Y=Y>>>0,X||E(Y,4,this.length),n.read(this,Y,!0,23,4)},y.prototype.readFloatBE=function(Y,X){return Y=Y>>>0,X||E(Y,4,this.length),n.read(this,Y,!1,23,4)},y.prototype.readDoubleLE=function(Y,X){return Y=Y>>>0,X||E(Y,8,this.length),n.read(this,Y,!0,52,8)},y.prototype.readDoubleBE=function(Y,X){return Y=Y>>>0,X||E(Y,8,this.length),n.read(this,Y,!1,52,8)};function N(J,Y,X,ne,me,he){if(!y.isBuffer(J))throw new TypeError('"buffer" argument must be a Buffer instance');if(Y>me||YJ.length)throw new RangeError("Index out of range")}y.prototype.writeUintLE=y.prototype.writeUIntLE=function(Y,X,ne,me){if(Y=+Y,X=X>>>0,ne=ne>>>0,!me){var he=Math.pow(2,8*ne)-1;N(this,Y,X,ne,he,0)}var ge=1,Re=0;for(this[X]=Y&255;++Re>>0,ne=ne>>>0,!me){var he=Math.pow(2,8*ne)-1;N(this,Y,X,ne,he,0)}var ge=ne-1,Re=1;for(this[X+ge]=Y&255;--ge>=0&&(Re*=256);)this[X+ge]=Y/Re&255;return X+ne},y.prototype.writeUint8=y.prototype.writeUInt8=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,1,255,0),this[X]=Y&255,X+1},y.prototype.writeUint16LE=y.prototype.writeUInt16LE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,2,65535,0),this[X]=Y&255,this[X+1]=Y>>>8,X+2},y.prototype.writeUint16BE=y.prototype.writeUInt16BE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,2,65535,0),this[X]=Y>>>8,this[X+1]=Y&255,X+2},y.prototype.writeUint32LE=y.prototype.writeUInt32LE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,4,4294967295,0),this[X+3]=Y>>>24,this[X+2]=Y>>>16,this[X+1]=Y>>>8,this[X]=Y&255,X+4},y.prototype.writeUint32BE=y.prototype.writeUInt32BE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,4,4294967295,0),this[X]=Y>>>24,this[X+1]=Y>>>16,this[X+2]=Y>>>8,this[X+3]=Y&255,X+4},y.prototype.writeIntLE=function(Y,X,ne,me){if(Y=+Y,X=X>>>0,!me){var he=Math.pow(2,8*ne-1);N(this,Y,X,ne,he-1,-he)}var ge=0,Re=1,_e=0;for(this[X]=Y&255;++ge>0)-_e&255;return X+ne},y.prototype.writeIntBE=function(Y,X,ne,me){if(Y=+Y,X=X>>>0,!me){var he=Math.pow(2,8*ne-1);N(this,Y,X,ne,he-1,-he)}var ge=ne-1,Re=1,_e=0;for(this[X+ge]=Y&255;--ge>=0&&(Re*=256);)Y<0&&_e===0&&this[X+ge+1]!==0&&(_e=1),this[X+ge]=(Y/Re>>0)-_e&255;return X+ne},y.prototype.writeInt8=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,1,127,-128),Y<0&&(Y=255+Y+1),this[X]=Y&255,X+1},y.prototype.writeInt16LE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,2,32767,-32768),this[X]=Y&255,this[X+1]=Y>>>8,X+2},y.prototype.writeInt16BE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,2,32767,-32768),this[X]=Y>>>8,this[X+1]=Y&255,X+2},y.prototype.writeInt32LE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,4,2147483647,-2147483648),this[X]=Y&255,this[X+1]=Y>>>8,this[X+2]=Y>>>16,this[X+3]=Y>>>24,X+4},y.prototype.writeInt32BE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,4,2147483647,-2147483648),Y<0&&(Y=4294967295+Y+1),this[X]=Y>>>24,this[X+1]=Y>>>16,this[X+2]=Y>>>8,this[X+3]=Y&255,X+4};function z(J,Y,X,ne,me,he){if(X+ne>J.length)throw new RangeError("Index out of range");if(X<0)throw new RangeError("Index out of range")}function oe(J,Y,X,ne,me){return Y=+Y,X=X>>>0,me||z(J,Y,X,4),n.write(J,Y,X,ne,23,4),X+4}y.prototype.writeFloatLE=function(Y,X,ne){return oe(this,Y,X,!0,ne)},y.prototype.writeFloatBE=function(Y,X,ne){return oe(this,Y,X,!1,ne)};function le(J,Y,X,ne,me){return Y=+Y,X=X>>>0,me||z(J,Y,X,8),n.write(J,Y,X,ne,52,8),X+8}y.prototype.writeDoubleLE=function(Y,X,ne){return le(this,Y,X,!0,ne)},y.prototype.writeDoubleBE=function(Y,X,ne){return le(this,Y,X,!1,ne)},y.prototype.copy=function(Y,X,ne,me){if(!y.isBuffer(Y))throw new TypeError("argument should be a Buffer");if(ne||(ne=0),!me&&me!==0&&(me=this.length),X>=Y.length&&(X=Y.length),X||(X=0),me>0&&me=this.length)throw new RangeError("Index out of range");if(me<0)throw new RangeError("sourceEnd out of bounds");me>this.length&&(me=this.length),Y.length-X>>0,ne=ne===void 0?this.length:ne>>>0,Y||(Y=0);var ge;if(typeof Y=="number")for(ge=X;ge55295&&X<57344){if(!me){if(X>56319){(Y-=3)>-1&&he.push(239,191,189);continue}else if(ge+1===ne){(Y-=3)>-1&&he.push(239,191,189);continue}me=X;continue}if(X<56320){(Y-=3)>-1&&he.push(239,191,189),me=X;continue}X=(me-55296<<10|X-56320)+65536}else me&&(Y-=3)>-1&&he.push(239,191,189);if(me=null,X<128){if((Y-=1)<0)break;he.push(X)}else if(X<2048){if((Y-=2)<0)break;he.push(X>>6|192,X&63|128)}else if(X<65536){if((Y-=3)<0)break;he.push(X>>12|224,X>>6&63|128,X&63|128)}else if(X<1114112){if((Y-=4)<0)break;he.push(X>>18|240,X>>12&63|128,X>>6&63|128,X&63|128)}else throw new Error("Invalid code point")}return he}function ie(J){for(var Y=[],X=0;X>8,me=X%256,he.push(me),he.push(ne);return he}function k(J){return t.toByteArray(P(J))}function I(J,Y,X,ne){for(var me=0;me=Y.length||me>=J.length);++me)Y[me+X]=J[me];return me}function te(J,Y){return J instanceof Y||J!=null&&J.constructor!=null&&J.constructor.name!=null&&J.constructor.name===Y.name}function ee(J){return J!==J}var fe=function(){for(var J="0123456789abcdef",Y=new Array(256),X=0;X<16;++X)for(var ne=X*16,me=0;me<16;++me)Y[ne+me]=J[X]+J[me];return Y}()})(buffer$2);var browser$1$1={exports:{}},process=browser$1$1.exports={},cachedSetTimeout,cachedClearTimeout;function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?cachedSetTimeout=setTimeout:cachedSetTimeout=defaultSetTimout}catch{cachedSetTimeout=defaultSetTimout}try{typeof clearTimeout=="function"?cachedClearTimeout=clearTimeout:cachedClearTimeout=defaultClearTimeout}catch{cachedClearTimeout=defaultClearTimeout}})();function runTimeout(e){if(cachedSetTimeout===setTimeout)return setTimeout(e,0);if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout)return cachedSetTimeout=setTimeout,setTimeout(e,0);try{return cachedSetTimeout(e,0)}catch{try{return cachedSetTimeout.call(null,e,0)}catch{return cachedSetTimeout.call(this,e,0)}}}function runClearTimeout(e){if(cachedClearTimeout===clearTimeout)return clearTimeout(e);if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout)return cachedClearTimeout=clearTimeout,clearTimeout(e);try{return cachedClearTimeout(e)}catch{try{return cachedClearTimeout.call(null,e)}catch{return cachedClearTimeout.call(this,e)}}}var queue$1=[],draining=!1,currentQueue,queueIndex=-1;function cleanUpNextTick(){!draining||!currentQueue||(draining=!1,currentQueue.length?queue$1=currentQueue.concat(queue$1):queueIndex=-1,queue$1.length&&drainQueue())}function drainQueue(){if(!draining){var e=runTimeout(cleanUpNextTick);draining=!0;for(var t=queue$1.length;t;){for(currentQueue=queue$1,queue$1=[];++queueIndex1)for(var n=1;nl)throw new RangeError('The value "'+J+'" is invalid for option "size"');var Y=new Uint8Array(J);return Object.setPrototypeOf(Y,y.prototype),Y}function y(J,Y,X){if(typeof J=="number"){if(typeof Y=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return E(J)}return w(J,Y,X)}y.poolSize=8192;function w(J,Y,X){if(typeof J=="string")return C(J,Y);if(ArrayBuffer.isView(J))return L(J);if(J==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof J);if(te(J,ArrayBuffer)||J&&te(J.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(te(J,SharedArrayBuffer)||J&&te(J.buffer,SharedArrayBuffer)))return F(J,Y,X);if(typeof J=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');var ne=J.valueOf&&J.valueOf();if(ne!=null&&ne!==J)return y.from(ne,Y,X);var me=q(J);if(me)return me;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof J[Symbol.toPrimitive]=="function")return y.from(J[Symbol.toPrimitive]("string"),Y,X);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof J)}y.from=function(J,Y,X){return w(J,Y,X)},Object.setPrototypeOf(y.prototype,Uint8Array.prototype),Object.setPrototypeOf(y,Uint8Array);function _(J){if(typeof J!="number")throw new TypeError('"size" argument must be of type number');if(J<0)throw new RangeError('The value "'+J+'" is invalid for option "size"')}function S(J,Y,X){return _(J),J<=0?d(J):Y!==void 0?typeof X=="string"?d(J).fill(Y,X):d(J).fill(Y):d(J)}y.alloc=function(J,Y,X){return S(J,Y,X)};function E(J){return _(J),d(J<0?0:H(J)|0)}y.allocUnsafe=function(J){return E(J)},y.allocUnsafeSlow=function(J){return E(J)};function C(J,Y){if((typeof Y!="string"||Y==="")&&(Y="utf8"),!y.isEncoding(Y))throw new TypeError("Unknown encoding: "+Y);var X=j(J,Y)|0,ne=d(X),me=ne.write(J,Y);return me!==X&&(ne=ne.slice(0,me)),ne}function B(J){for(var Y=J.length<0?0:H(J.length)|0,X=d(Y),ne=0;ne=l)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+l.toString(16)+" bytes");return J|0}function D(J){return+J!=J&&(J=0),y.alloc(+J)}y.isBuffer=function(Y){return Y!=null&&Y._isBuffer===!0&&Y!==y.prototype},y.compare=function(Y,X){if(te(Y,Uint8Array)&&(Y=y.from(Y,Y.offset,Y.byteLength)),te(X,Uint8Array)&&(X=y.from(X,X.offset,X.byteLength)),!y.isBuffer(Y)||!y.isBuffer(X))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(Y===X)return 0;for(var ne=Y.length,me=X.length,he=0,ge=Math.min(ne,me);heme.length?y.from(ge).copy(me,he):Uint8Array.prototype.set.call(me,ge,he);else if(y.isBuffer(ge))ge.copy(me,he);else throw new TypeError('"list" argument must be an Array of Buffers');he+=ge.length}return me};function j(J,Y){if(y.isBuffer(J))return J.length;if(ArrayBuffer.isView(J)||te(J,ArrayBuffer))return J.byteLength;if(typeof J!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof J);var X=J.length,ne=arguments.length>2&&arguments[2]===!0;if(!ne&&X===0)return 0;for(var me=!1;;)switch(Y){case"ascii":case"latin1":case"binary":return X;case"utf8":case"utf-8":return Z(J).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return X*2;case"hex":return X>>>1;case"base64":return k(J).length;default:if(me)return ne?-1:Z(J).length;Y=(""+Y).toLowerCase(),me=!0}}y.byteLength=j;function V(J,Y,X){var ne=!1;if((Y===void 0||Y<0)&&(Y=0),Y>this.length||((X===void 0||X>this.length)&&(X=this.length),X<=0)||(X>>>=0,Y>>>=0,X<=Y))return"";for(J||(J="utf8");;)switch(J){case"hex":return $(this,Y,X);case"utf8":case"utf-8":return m(this,Y,X);case"ascii":return A(this,Y,X);case"latin1":case"binary":return O(this,Y,X);case"base64":return v(this,Y,X);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return c(this,Y,X);default:if(ne)throw new TypeError("Unknown encoding: "+J);J=(J+"").toLowerCase(),ne=!0}}y.prototype._isBuffer=!0;function Q(J,Y,X){var ne=J[Y];J[Y]=J[X],J[X]=ne}y.prototype.swap16=function(){var Y=this.length;if(Y%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var X=0;XX&&(Y+=" ... "),""},o&&(y.prototype[o]=y.prototype.inspect),y.prototype.compare=function(Y,X,ne,me,he){if(te(Y,Uint8Array)&&(Y=y.from(Y,Y.offset,Y.byteLength)),!y.isBuffer(Y))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof Y);if(X===void 0&&(X=0),ne===void 0&&(ne=Y?Y.length:0),me===void 0&&(me=0),he===void 0&&(he=this.length),X<0||ne>Y.length||me<0||he>this.length)throw new RangeError("out of range index");if(me>=he&&X>=ne)return 0;if(me>=he)return-1;if(X>=ne)return 1;if(X>>>=0,ne>>>=0,me>>>=0,he>>>=0,this===Y)return 0;for(var ge=he-me,Re=ne-X,_e=Math.min(ge,Re),we=this.slice(me,he),qe=Y.slice(X,ne),Se=0;Se<_e;++Se)if(we[Se]!==qe[Se]){ge=we[Se],Re=qe[Se];break}return ge2147483647?X=2147483647:X<-2147483648&&(X=-2147483648),X=+X,ee(X)&&(X=me?0:J.length-1),X<0&&(X=J.length+X),X>=J.length){if(me)return-1;X=J.length-1}else if(X<0)if(me)X=0;else return-1;if(typeof Y=="string"&&(Y=y.from(Y,ne)),y.isBuffer(Y))return Y.length===0?-1:ce(J,Y,X,ne,me);if(typeof Y=="number")return Y=Y&255,typeof Uint8Array.prototype.indexOf=="function"?me?Uint8Array.prototype.indexOf.call(J,Y,X):Uint8Array.prototype.lastIndexOf.call(J,Y,X):ce(J,[Y],X,ne,me);throw new TypeError("val must be string, number or Buffer")}function ce(J,Y,X,ne,me){var he=1,ge=J.length,Re=Y.length;if(ne!==void 0&&(ne=String(ne).toLowerCase(),ne==="ucs2"||ne==="ucs-2"||ne==="utf16le"||ne==="utf-16le")){if(J.length<2||Y.length<2)return-1;he=2,ge/=2,Re/=2,X/=2}function _e(Me,ve){return he===1?Me[ve]:Me.readUInt16BE(ve*he)}var we;if(me){var qe=-1;for(we=X;wege&&(X=ge-Re),we=X;we>=0;we--){for(var Se=!0,Ae=0;Aeme&&(ne=me)):ne=me;var he=Y.length;ne>he/2&&(ne=he/2);for(var ge=0;ge>>0,isFinite(ne)?(ne=ne>>>0,me===void 0&&(me="utf8")):(me=ne,ne=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var he=this.length-X;if((ne===void 0||ne>he)&&(ne=he),Y.length>0&&(ne<0||X<0)||X>this.length)throw new RangeError("Attempt to write outside buffer bounds");me||(me="utf8");for(var ge=!1;;)switch(me){case"hex":return ue(this,Y,X,ne);case"utf8":case"utf-8":return re(this,Y,X,ne);case"ascii":case"latin1":case"binary":return pe(this,Y,X,ne);case"base64":return T(this,Y,X,ne);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return u(this,Y,X,ne);default:if(ge)throw new TypeError("Unknown encoding: "+me);me=(""+me).toLowerCase(),ge=!0}},y.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function v(J,Y,X){return Y===0&&X===J.length?t.fromByteArray(J):t.fromByteArray(J.slice(Y,X))}function m(J,Y,X){X=Math.min(J.length,X);for(var ne=[],me=Y;me239?4:he>223?3:he>191?2:1;if(me+Re<=X){var _e,we,qe,Se;switch(Re){case 1:he<128&&(ge=he);break;case 2:_e=J[me+1],(_e&192)===128&&(Se=(he&31)<<6|_e&63,Se>127&&(ge=Se));break;case 3:_e=J[me+1],we=J[me+2],(_e&192)===128&&(we&192)===128&&(Se=(he&15)<<12|(_e&63)<<6|we&63,Se>2047&&(Se<55296||Se>57343)&&(ge=Se));break;case 4:_e=J[me+1],we=J[me+2],qe=J[me+3],(_e&192)===128&&(we&192)===128&&(qe&192)===128&&(Se=(he&15)<<18|(_e&63)<<12|(we&63)<<6|qe&63,Se>65535&&Se<1114112&&(ge=Se))}}ge===null?(ge=65533,Re=1):ge>65535&&(ge-=65536,ne.push(ge>>>10&1023|55296),ge=56320|ge&1023),ne.push(ge),me+=Re}return M(ne)}var b=4096;function M(J){var Y=J.length;if(Y<=b)return String.fromCharCode.apply(String,J);for(var X="",ne=0;nene)&&(X=ne);for(var me="",he=Y;hene&&(Y=ne),X<0?(X+=ne,X<0&&(X=0)):X>ne&&(X=ne),XX)throw new RangeError("Trying to access beyond buffer length")}y.prototype.readUintLE=y.prototype.readUIntLE=function(Y,X,ne){Y=Y>>>0,X=X>>>0,ne||x(Y,X,this.length);for(var me=this[Y],he=1,ge=0;++ge>>0,X=X>>>0,ne||x(Y,X,this.length);for(var me=this[Y+--X],he=1;X>0&&(he*=256);)me+=this[Y+--X]*he;return me},y.prototype.readUint8=y.prototype.readUInt8=function(Y,X){return Y=Y>>>0,X||x(Y,1,this.length),this[Y]},y.prototype.readUint16LE=y.prototype.readUInt16LE=function(Y,X){return Y=Y>>>0,X||x(Y,2,this.length),this[Y]|this[Y+1]<<8},y.prototype.readUint16BE=y.prototype.readUInt16BE=function(Y,X){return Y=Y>>>0,X||x(Y,2,this.length),this[Y]<<8|this[Y+1]},y.prototype.readUint32LE=y.prototype.readUInt32LE=function(Y,X){return Y=Y>>>0,X||x(Y,4,this.length),(this[Y]|this[Y+1]<<8|this[Y+2]<<16)+this[Y+3]*16777216},y.prototype.readUint32BE=y.prototype.readUInt32BE=function(Y,X){return Y=Y>>>0,X||x(Y,4,this.length),this[Y]*16777216+(this[Y+1]<<16|this[Y+2]<<8|this[Y+3])},y.prototype.readIntLE=function(Y,X,ne){Y=Y>>>0,X=X>>>0,ne||x(Y,X,this.length);for(var me=this[Y],he=1,ge=0;++ge=he&&(me-=Math.pow(2,8*X)),me},y.prototype.readIntBE=function(Y,X,ne){Y=Y>>>0,X=X>>>0,ne||x(Y,X,this.length);for(var me=X,he=1,ge=this[Y+--me];me>0&&(he*=256);)ge+=this[Y+--me]*he;return he*=128,ge>=he&&(ge-=Math.pow(2,8*X)),ge},y.prototype.readInt8=function(Y,X){return Y=Y>>>0,X||x(Y,1,this.length),this[Y]&128?(255-this[Y]+1)*-1:this[Y]},y.prototype.readInt16LE=function(Y,X){Y=Y>>>0,X||x(Y,2,this.length);var ne=this[Y]|this[Y+1]<<8;return ne&32768?ne|4294901760:ne},y.prototype.readInt16BE=function(Y,X){Y=Y>>>0,X||x(Y,2,this.length);var ne=this[Y+1]|this[Y]<<8;return ne&32768?ne|4294901760:ne},y.prototype.readInt32LE=function(Y,X){return Y=Y>>>0,X||x(Y,4,this.length),this[Y]|this[Y+1]<<8|this[Y+2]<<16|this[Y+3]<<24},y.prototype.readInt32BE=function(Y,X){return Y=Y>>>0,X||x(Y,4,this.length),this[Y]<<24|this[Y+1]<<16|this[Y+2]<<8|this[Y+3]},y.prototype.readFloatLE=function(Y,X){return Y=Y>>>0,X||x(Y,4,this.length),n.read(this,Y,!0,23,4)},y.prototype.readFloatBE=function(Y,X){return Y=Y>>>0,X||x(Y,4,this.length),n.read(this,Y,!1,23,4)},y.prototype.readDoubleLE=function(Y,X){return Y=Y>>>0,X||x(Y,8,this.length),n.read(this,Y,!0,52,8)},y.prototype.readDoubleBE=function(Y,X){return Y=Y>>>0,X||x(Y,8,this.length),n.read(this,Y,!1,52,8)};function N(J,Y,X,ne,me,he){if(!y.isBuffer(J))throw new TypeError('"buffer" argument must be a Buffer instance');if(Y>me||YJ.length)throw new RangeError("Index out of range")}y.prototype.writeUintLE=y.prototype.writeUIntLE=function(Y,X,ne,me){if(Y=+Y,X=X>>>0,ne=ne>>>0,!me){var he=Math.pow(2,8*ne)-1;N(this,Y,X,ne,he,0)}var ge=1,Re=0;for(this[X]=Y&255;++Re>>0,ne=ne>>>0,!me){var he=Math.pow(2,8*ne)-1;N(this,Y,X,ne,he,0)}var ge=ne-1,Re=1;for(this[X+ge]=Y&255;--ge>=0&&(Re*=256);)this[X+ge]=Y/Re&255;return X+ne},y.prototype.writeUint8=y.prototype.writeUInt8=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,1,255,0),this[X]=Y&255,X+1},y.prototype.writeUint16LE=y.prototype.writeUInt16LE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,2,65535,0),this[X]=Y&255,this[X+1]=Y>>>8,X+2},y.prototype.writeUint16BE=y.prototype.writeUInt16BE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,2,65535,0),this[X]=Y>>>8,this[X+1]=Y&255,X+2},y.prototype.writeUint32LE=y.prototype.writeUInt32LE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,4,4294967295,0),this[X+3]=Y>>>24,this[X+2]=Y>>>16,this[X+1]=Y>>>8,this[X]=Y&255,X+4},y.prototype.writeUint32BE=y.prototype.writeUInt32BE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,4,4294967295,0),this[X]=Y>>>24,this[X+1]=Y>>>16,this[X+2]=Y>>>8,this[X+3]=Y&255,X+4},y.prototype.writeIntLE=function(Y,X,ne,me){if(Y=+Y,X=X>>>0,!me){var he=Math.pow(2,8*ne-1);N(this,Y,X,ne,he-1,-he)}var ge=0,Re=1,_e=0;for(this[X]=Y&255;++ge>0)-_e&255;return X+ne},y.prototype.writeIntBE=function(Y,X,ne,me){if(Y=+Y,X=X>>>0,!me){var he=Math.pow(2,8*ne-1);N(this,Y,X,ne,he-1,-he)}var ge=ne-1,Re=1,_e=0;for(this[X+ge]=Y&255;--ge>=0&&(Re*=256);)Y<0&&_e===0&&this[X+ge+1]!==0&&(_e=1),this[X+ge]=(Y/Re>>0)-_e&255;return X+ne},y.prototype.writeInt8=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,1,127,-128),Y<0&&(Y=255+Y+1),this[X]=Y&255,X+1},y.prototype.writeInt16LE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,2,32767,-32768),this[X]=Y&255,this[X+1]=Y>>>8,X+2},y.prototype.writeInt16BE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,2,32767,-32768),this[X]=Y>>>8,this[X+1]=Y&255,X+2},y.prototype.writeInt32LE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,4,2147483647,-2147483648),this[X]=Y&255,this[X+1]=Y>>>8,this[X+2]=Y>>>16,this[X+3]=Y>>>24,X+4},y.prototype.writeInt32BE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,4,2147483647,-2147483648),Y<0&&(Y=4294967295+Y+1),this[X]=Y>>>24,this[X+1]=Y>>>16,this[X+2]=Y>>>8,this[X+3]=Y&255,X+4};function z(J,Y,X,ne,me,he){if(X+ne>J.length)throw new RangeError("Index out of range");if(X<0)throw new RangeError("Index out of range")}function oe(J,Y,X,ne,me){return Y=+Y,X=X>>>0,me||z(J,Y,X,4),n.write(J,Y,X,ne,23,4),X+4}y.prototype.writeFloatLE=function(Y,X,ne){return oe(this,Y,X,!0,ne)},y.prototype.writeFloatBE=function(Y,X,ne){return oe(this,Y,X,!1,ne)};function le(J,Y,X,ne,me){return Y=+Y,X=X>>>0,me||z(J,Y,X,8),n.write(J,Y,X,ne,52,8),X+8}y.prototype.writeDoubleLE=function(Y,X,ne){return le(this,Y,X,!0,ne)},y.prototype.writeDoubleBE=function(Y,X,ne){return le(this,Y,X,!1,ne)},y.prototype.copy=function(Y,X,ne,me){if(!y.isBuffer(Y))throw new TypeError("argument should be a Buffer");if(ne||(ne=0),!me&&me!==0&&(me=this.length),X>=Y.length&&(X=Y.length),X||(X=0),me>0&&me=this.length)throw new RangeError("Index out of range");if(me<0)throw new RangeError("sourceEnd out of bounds");me>this.length&&(me=this.length),Y.length-X>>0,ne=ne===void 0?this.length:ne>>>0,Y||(Y=0);var ge;if(typeof Y=="number")for(ge=X;ge55295&&X<57344){if(!me){if(X>56319){(Y-=3)>-1&&he.push(239,191,189);continue}else if(ge+1===ne){(Y-=3)>-1&&he.push(239,191,189);continue}me=X;continue}if(X<56320){(Y-=3)>-1&&he.push(239,191,189),me=X;continue}X=(me-55296<<10|X-56320)+65536}else me&&(Y-=3)>-1&&he.push(239,191,189);if(me=null,X<128){if((Y-=1)<0)break;he.push(X)}else if(X<2048){if((Y-=2)<0)break;he.push(X>>6|192,X&63|128)}else if(X<65536){if((Y-=3)<0)break;he.push(X>>12|224,X>>6&63|128,X&63|128)}else if(X<1114112){if((Y-=4)<0)break;he.push(X>>18|240,X>>12&63|128,X>>6&63|128,X&63|128)}else throw new Error("Invalid code point")}return he}function ie(J){for(var Y=[],X=0;X>8,me=X%256,he.push(me),he.push(ne);return he}function k(J){return t.toByteArray(P(J))}function I(J,Y,X,ne){for(var me=0;me=Y.length||me>=J.length);++me)Y[me+X]=J[me];return me}function te(J,Y){return J instanceof Y||J!=null&&J.constructor!=null&&J.constructor.name!=null&&J.constructor.name===Y.name}function ee(J){return J!==J}var fe=function(){for(var J="0123456789abcdef",Y=new Array(256),X=0;X<16;++X)for(var ne=X*16,me=0;me<16;++me)Y[ne+me]=J[X]+J[me];return Y}()})(buffer$2);var browser$1$1={exports:{}},process=browser$1$1.exports={},cachedSetTimeout,cachedClearTimeout;function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?cachedSetTimeout=setTimeout:cachedSetTimeout=defaultSetTimout}catch{cachedSetTimeout=defaultSetTimout}try{typeof clearTimeout=="function"?cachedClearTimeout=clearTimeout:cachedClearTimeout=defaultClearTimeout}catch{cachedClearTimeout=defaultClearTimeout}})();function runTimeout(e){if(cachedSetTimeout===setTimeout)return setTimeout(e,0);if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout)return cachedSetTimeout=setTimeout,setTimeout(e,0);try{return cachedSetTimeout(e,0)}catch{try{return cachedSetTimeout.call(null,e,0)}catch{return cachedSetTimeout.call(this,e,0)}}}function runClearTimeout(e){if(cachedClearTimeout===clearTimeout)return clearTimeout(e);if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout)return cachedClearTimeout=clearTimeout,clearTimeout(e);try{return cachedClearTimeout(e)}catch{try{return cachedClearTimeout.call(null,e)}catch{return cachedClearTimeout.call(this,e)}}}var queue$1=[],draining=!1,currentQueue,queueIndex=-1;function cleanUpNextTick(){!draining||!currentQueue||(draining=!1,currentQueue.length?queue$1=currentQueue.concat(queue$1):queueIndex=-1,queue$1.length&&drainQueue())}function drainQueue(){if(!draining){var e=runTimeout(cleanUpNextTick);draining=!0;for(var t=queue$1.length;t;){for(currentQueue=queue$1,queue$1=[];++queueIndex1)for(var n=1;nn in t}const EMPTY_OBJ=Object.freeze({}),EMPTY_ARR=Object.freeze([]),NOOP=()=>{},NO=()=>!1,isOn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),isModelListener=e=>e.startsWith("onUpdate:"),extend$1=Object.assign,remove=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},hasOwnProperty$4=Object.prototype.hasOwnProperty,hasOwn$3=(e,t)=>hasOwnProperty$4.call(e,t),isArray$a=Array.isArray,isMap$1=e=>toTypeString(e)==="[object Map]",isSet$1=e=>toTypeString(e)==="[object Set]",isDate$2=e=>toTypeString(e)==="[object Date]",isRegExp$3=e=>toTypeString(e)==="[object RegExp]",isFunction$2=e=>typeof e=="function",isString$2=e=>typeof e=="string",isSymbol$4=e=>typeof e=="symbol",isObject$3=e=>e!==null&&typeof e=="object",isPromise$1=e=>(isObject$3(e)||isFunction$2(e))&&isFunction$2(e.then)&&isFunction$2(e.catch),objectToString$4=Object.prototype.toString,toTypeString=e=>objectToString$4.call(e),toRawType=e=>toTypeString(e).slice(8,-1),isPlainObject=e=>toTypeString(e)==="[object Object]",isIntegerKey=e=>isString$2(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,isReservedProp=makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),isBuiltInDirective=makeMap("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),cacheStringFunction=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},camelizeRE=/-\w/g,camelize=cacheStringFunction(e=>e.replace(camelizeRE,t=>t.slice(1).toUpperCase())),hyphenateRE=/\B([A-Z])/g,hyphenate=cacheStringFunction(e=>e.replace(hyphenateRE,"-$1").toLowerCase()),capitalize$2=cacheStringFunction(e=>e.charAt(0).toUpperCase()+e.slice(1)),toHandlerKey=cacheStringFunction(e=>e?`on${capitalize$2(e)}`:""),hasChanged=(e,t)=>!Object.is(e,t),invokeArrayFns=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:n})},looseToNumber=e=>{const t=parseFloat(e);return isNaN(t)?e:t},toNumber=e=>{const t=isString$2(e)?Number(e):NaN;return isNaN(t)?e:t};let _globalThis$1;const getGlobalThis=()=>_globalThis$1||(_globalThis$1=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global$1<"u"?global$1:{}),GLOBALS_ALLOWED="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol",isGloballyAllowed=makeMap(GLOBALS_ALLOWED);function normalizeStyle(e){if(isArray$a(e)){const t={};for(let n=0;n{if(n){const o=n.split(propertyDelimiterRE);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function stringifyStyle(e){if(!e)return"";if(isString$2(e))return e;let t="";for(const n in e){const o=e[n];if(isString$2(o)||typeof o=="number"){const l=n.startsWith("--")?n:hyphenate(n);t+=`${l}:${o};`}}return t}function normalizeClass(e){let t="";if(isString$2(e))t=e;else if(isArray$a(e))for(let n=0;n?@[\\\]^`{|}~]/g;function getEscapedCssVarName(e,t){return e.replace(cssVarNameEscapeSymbolsRE,n=>t?n==='"'?'\\\\\\"':`\\\\${n}`:`\\${n}`)}function looseCompareArrays(e,t){if(e.length!==t.length)return!1;let n=!0;for(let o=0;n&&olooseEqual(n,t))}const isRef$1=e=>!!(e&&e.__v_isRef===!0),toDisplayString=e=>isString$2(e)?e:e==null?"":isArray$a(e)||isObject$3(e)&&(e.toString===objectToString$4||!isFunction$2(e.toString))?isRef$1(e)?toDisplayString(e.value):JSON.stringify(e,replacer,2):String(e),replacer=(e,t)=>isRef$1(t)?replacer(e,t.value):isMap$1(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,l],a)=>(n[stringifySymbol(o,a)+" =>"]=l,n),{})}:isSet$1(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>stringifySymbol(n))}:isSymbol$4(t)?stringifySymbol(t):isObject$3(t)&&!isArray$a(t)&&!isPlainObject(t)?String(t):t,stringifySymbol=(e,t="")=>{var n;return isSymbol$4(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};function normalizeCssVarValue(e){return e==null?"initial":typeof e=="string"?e===""?" ":e:((typeof e!="number"||!Number.isFinite(e))&&console.warn("[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:",e),String(e))}/** -* @vue/reactivity v3.5.21 +**//*! #__NO_SIDE_EFFECTS__ */function makeMap(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const EMPTY_OBJ=Object.freeze({}),EMPTY_ARR=Object.freeze([]),NOOP=()=>{},NO=()=>!1,isOn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),isModelListener=e=>e.startsWith("onUpdate:"),extend$1=Object.assign,remove=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},hasOwnProperty$4=Object.prototype.hasOwnProperty,hasOwn$3=(e,t)=>hasOwnProperty$4.call(e,t),isArray$a=Array.isArray,isMap$1=e=>toTypeString(e)==="[object Map]",isSet$1=e=>toTypeString(e)==="[object Set]",isDate$2=e=>toTypeString(e)==="[object Date]",isRegExp$3=e=>toTypeString(e)==="[object RegExp]",isFunction$2=e=>typeof e=="function",isString$2=e=>typeof e=="string",isSymbol$4=e=>typeof e=="symbol",isObject$3=e=>e!==null&&typeof e=="object",isPromise$1=e=>(isObject$3(e)||isFunction$2(e))&&isFunction$2(e.then)&&isFunction$2(e.catch),objectToString$4=Object.prototype.toString,toTypeString=e=>objectToString$4.call(e),toRawType=e=>toTypeString(e).slice(8,-1),isPlainObject=e=>toTypeString(e)==="[object Object]",isIntegerKey=e=>isString$2(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,isReservedProp=makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),isBuiltInDirective=makeMap("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),cacheStringFunction=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},camelizeRE=/-(\w)/g,camelize=cacheStringFunction(e=>e.replace(camelizeRE,(t,n)=>n?n.toUpperCase():"")),hyphenateRE=/\B([A-Z])/g,hyphenate=cacheStringFunction(e=>e.replace(hyphenateRE,"-$1").toLowerCase()),capitalize$2=cacheStringFunction(e=>e.charAt(0).toUpperCase()+e.slice(1)),toHandlerKey=cacheStringFunction(e=>e?`on${capitalize$2(e)}`:""),hasChanged=(e,t)=>!Object.is(e,t),invokeArrayFns=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:n})},looseToNumber=e=>{const t=parseFloat(e);return isNaN(t)?e:t},toNumber=e=>{const t=isString$2(e)?Number(e):NaN;return isNaN(t)?e:t};let _globalThis$1;const getGlobalThis=()=>_globalThis$1||(_globalThis$1=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global$1<"u"?global$1:{}),GLOBALS_ALLOWED="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol",isGloballyAllowed=makeMap(GLOBALS_ALLOWED);function normalizeStyle(e){if(isArray$a(e)){const t={};for(let n=0;n{if(n){const o=n.split(propertyDelimiterRE);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function stringifyStyle(e){if(!e)return"";if(isString$2(e))return e;let t="";for(const n in e){const o=e[n];if(isString$2(o)||typeof o=="number"){const l=n.startsWith("--")?n:hyphenate(n);t+=`${l}:${o};`}}return t}function normalizeClass(e){let t="";if(isString$2(e))t=e;else if(isArray$a(e))for(let n=0;n?@[\\\]^`{|}~]/g;function getEscapedCssVarName(e,t){return e.replace(cssVarNameEscapeSymbolsRE,n=>t?n==='"'?'\\\\\\"':`\\\\${n}`:`\\${n}`)}function looseCompareArrays(e,t){if(e.length!==t.length)return!1;let n=!0;for(let o=0;n&&olooseEqual(n,t))}const isRef$1=e=>!!(e&&e.__v_isRef===!0),toDisplayString=e=>isString$2(e)?e:e==null?"":isArray$a(e)||isObject$3(e)&&(e.toString===objectToString$4||!isFunction$2(e.toString))?isRef$1(e)?toDisplayString(e.value):JSON.stringify(e,replacer,2):String(e),replacer=(e,t)=>isRef$1(t)?replacer(e,t.value):isMap$1(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,l],a)=>(n[stringifySymbol(o,a)+" =>"]=l,n),{})}:isSet$1(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>stringifySymbol(n))}:isSymbol$4(t)?stringifySymbol(t):isObject$3(t)&&!isArray$a(t)&&!isPlainObject(t)?String(t):t,stringifySymbol=(e,t="")=>{var n;return isSymbol$4(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};function normalizeCssVarValue(e){return e==null?"initial":typeof e=="string"?e===""?" ":e:((typeof e!="number"||!Number.isFinite(e))&&console.warn("[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:",e),String(e))}/** +* @vue/reactivity v3.5.18 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/function warn$3(e,...t){console.warn(`[Vue warn] ${e}`,...t)}let activeEffectScope;class EffectScope{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=activeEffectScope,!t&&activeEffectScope&&(this.index=(activeEffectScope.scopes||(activeEffectScope.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0&&--this._on===0&&(activeEffectScope=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,o;for(n=0,o=this.effects.length;n0)return;if(batchedComputed){let t=batchedComputed;for(batchedComputed=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;batchedSub;){let t=batchedSub;for(batchedSub=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(o){e||(e=o)}t=n}}if(e)throw e}function prepareDeps(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function cleanupDeps(e){let t,n=e.depsTail,o=n;for(;o;){const l=o.prevDep;o.version===-1?(o===n&&(n=l),removeSub(o),removeDep(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=l}e.deps=t,e.depsTail=n}function isDirty(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(refreshComputed(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function refreshComputed(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===globalVersion)||(e.globalVersion=globalVersion,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!isDirty(e))))return;e.flags|=2;const t=e.dep,n=activeSub,o=shouldTrack;activeSub=e,shouldTrack=!0;try{prepareDeps(e);const l=e.fn(e._value);(t.version===0||hasChanged(l,e._value))&&(e.flags|=128,e._value=l,t.version++)}catch(l){throw t.version++,l}finally{activeSub=n,shouldTrack=o,cleanupDeps(e),e.flags&=-3}}function removeSub(e,t=!1){const{dep:n,prevSub:o,nextSub:l}=e;if(o&&(o.nextSub=l,e.prevSub=void 0),l&&(l.prevSub=o,e.nextSub=void 0),n.subsHead===e&&(n.subsHead=l),n.subs===e&&(n.subs=o,!o&&n.computed)){n.computed.flags&=-5;for(let a=n.computed.deps;a;a=a.nextDep)removeSub(a,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function removeDep(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}function effect(e,t){e.effect instanceof ReactiveEffect&&(e=e.effect.fn);const n=new ReactiveEffect(e);t&&extend$1(n,t);try{n.run()}catch(l){throw n.stop(),l}const o=n.run.bind(n);return o.effect=n,o}function stop(e){e.effect.stop()}let shouldTrack=!0;const trackStack=[];function pauseTracking(){trackStack.push(shouldTrack),shouldTrack=!1}function resetTracking(){const e=trackStack.pop();shouldTrack=e===void 0?!0:e}function cleanupEffect(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=activeSub;activeSub=void 0;try{t()}finally{activeSub=n}}}let globalVersion=0;class Link{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Dep{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0,this.subsHead=void 0}track(t){if(!activeSub||!shouldTrack||activeSub===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==activeSub)n=this.activeLink=new Link(activeSub,this),activeSub.deps?(n.prevDep=activeSub.depsTail,activeSub.depsTail.nextDep=n,activeSub.depsTail=n):activeSub.deps=activeSub.depsTail=n,addSub(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const o=n.nextDep;o.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=o),n.prevDep=activeSub.depsTail,n.nextDep=void 0,activeSub.depsTail.nextDep=n,activeSub.depsTail=n,activeSub.deps===n&&(activeSub.deps=o)}return activeSub.onTrack&&activeSub.onTrack(extend$1({effect:activeSub},t)),n}trigger(t){this.version++,globalVersion++,this.notify(t)}notify(t){startBatch();try{for(let n=this.subsHead;n;n=n.nextSub)n.sub.onTrigger&&!(n.sub.flags&8)&&n.sub.onTrigger(extend$1({effect:n.sub},t));for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{endBatch()}}}function addSub(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let o=t.deps;o;o=o.nextDep)addSub(o)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subsHead===void 0&&(e.dep.subsHead=e),e.dep.subs=e}}const targetMap=new WeakMap,ITERATE_KEY=Symbol("Object iterate"),MAP_KEY_ITERATE_KEY=Symbol("Map keys iterate"),ARRAY_ITERATE_KEY=Symbol("Array iterate");function track(e,t,n){if(shouldTrack&&activeSub){let o=targetMap.get(e);o||targetMap.set(e,o=new Map);let l=o.get(n);l||(o.set(n,l=new Dep),l.map=o,l.key=n),l.track({target:e,type:t,key:n})}}function trigger(e,t,n,o,l,a){const d=targetMap.get(e);if(!d){globalVersion++;return}const y=w=>{w&&w.trigger({target:e,type:t,key:n,newValue:o,oldValue:l,oldTarget:a})};if(startBatch(),t==="clear")d.forEach(y);else{const w=isArray$a(e),_=w&&isIntegerKey(n);if(w&&n==="length"){const S=Number(o);d.forEach((x,C)=>{(C==="length"||C===ARRAY_ITERATE_KEY||!isSymbol$4(C)&&C>=S)&&y(x)})}else switch((n!==void 0||d.has(void 0))&&y(d.get(n)),_&&y(d.get(ARRAY_ITERATE_KEY)),t){case"add":w?_&&y(d.get("length")):(y(d.get(ITERATE_KEY)),isMap$1(e)&&y(d.get(MAP_KEY_ITERATE_KEY)));break;case"delete":w||(y(d.get(ITERATE_KEY)),isMap$1(e)&&y(d.get(MAP_KEY_ITERATE_KEY)));break;case"set":isMap$1(e)&&y(d.get(ITERATE_KEY));break}}endBatch()}function getDepFromReactive(e,t){const n=targetMap.get(e);return n&&n.get(t)}function reactiveReadArray(e){const t=toRaw(e);return t===e?t:(track(t,"iterate",ARRAY_ITERATE_KEY),isShallow(e)?t:t.map(toReactive))}function shallowReadArray(e){return track(e=toRaw(e),"iterate",ARRAY_ITERATE_KEY),e}const arrayInstrumentations={__proto__:null,[Symbol.iterator](){return iterator$1(this,Symbol.iterator,toReactive)},concat(...e){return reactiveReadArray(this).concat(...e.map(t=>isArray$a(t)?reactiveReadArray(t):t))},entries(){return iterator$1(this,"entries",e=>(e[1]=toReactive(e[1]),e))},every(e,t){return apply(this,"every",e,t,void 0,arguments)},filter(e,t){return apply(this,"filter",e,t,n=>n.map(toReactive),arguments)},find(e,t){return apply(this,"find",e,t,toReactive,arguments)},findIndex(e,t){return apply(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return apply(this,"findLast",e,t,toReactive,arguments)},findLastIndex(e,t){return apply(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return apply(this,"forEach",e,t,void 0,arguments)},includes(...e){return searchProxy(this,"includes",e)},indexOf(...e){return searchProxy(this,"indexOf",e)},join(e){return reactiveReadArray(this).join(e)},lastIndexOf(...e){return searchProxy(this,"lastIndexOf",e)},map(e,t){return apply(this,"map",e,t,void 0,arguments)},pop(){return noTracking(this,"pop")},push(...e){return noTracking(this,"push",e)},reduce(e,...t){return reduce(this,"reduce",e,t)},reduceRight(e,...t){return reduce(this,"reduceRight",e,t)},shift(){return noTracking(this,"shift")},some(e,t){return apply(this,"some",e,t,void 0,arguments)},splice(...e){return noTracking(this,"splice",e)},toReversed(){return reactiveReadArray(this).toReversed()},toSorted(e){return reactiveReadArray(this).toSorted(e)},toSpliced(...e){return reactiveReadArray(this).toSpliced(...e)},unshift(...e){return noTracking(this,"unshift",e)},values(){return iterator$1(this,"values",toReactive)}};function iterator$1(e,t,n){const o=shallowReadArray(e),l=o[t]();return o!==e&&!isShallow(e)&&(l._next=l.next,l.next=()=>{const a=l._next();return a.value&&(a.value=n(a.value)),a}),l}const arrayProto=Array.prototype;function apply(e,t,n,o,l,a){const d=shallowReadArray(e),y=d!==e&&!isShallow(e),w=d[t];if(w!==arrayProto[t]){const x=w.apply(e,a);return y?toReactive(x):x}let _=n;d!==e&&(y?_=function(x,C){return n.call(this,toReactive(x),C,e)}:n.length>2&&(_=function(x,C){return n.call(this,x,C,e)}));const S=w.call(d,_,o);return y&&l?l(S):S}function reduce(e,t,n,o){const l=shallowReadArray(e);let a=n;return l!==e&&(isShallow(e)?n.length>3&&(a=function(d,y,w){return n.call(this,d,y,w,e)}):a=function(d,y,w){return n.call(this,d,toReactive(y),w,e)}),l[t](a,...o)}function searchProxy(e,t,n){const o=toRaw(e);track(o,"iterate",ARRAY_ITERATE_KEY);const l=o[t](...n);return(l===-1||l===!1)&&isProxy(n[0])?(n[0]=toRaw(n[0]),o[t](...n)):l}function noTracking(e,t,n=[]){pauseTracking(),startBatch();const o=toRaw(e)[t].apply(e,n);return endBatch(),resetTracking(),o}const isNonTrackableKeys=makeMap("__proto__,__v_isRef,__isVue"),builtInSymbols=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(isSymbol$4));function hasOwnProperty$3(e){isSymbol$4(e)||(e=String(e));const t=toRaw(this);return track(t,"has",e),t.hasOwnProperty(e)}class BaseReactiveHandler{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,o){if(n==="__v_skip")return t.__v_skip;const l=this._isReadonly,a=this._isShallow;if(n==="__v_isReactive")return!l;if(n==="__v_isReadonly")return l;if(n==="__v_isShallow")return a;if(n==="__v_raw")return o===(l?a?shallowReadonlyMap:readonlyMap:a?shallowReactiveMap:reactiveMap).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const d=isArray$a(t);if(!l){let w;if(d&&(w=arrayInstrumentations[n]))return w;if(n==="hasOwnProperty")return hasOwnProperty$3}const y=Reflect.get(t,n,isRef(t)?t:o);return(isSymbol$4(n)?builtInSymbols.has(n):isNonTrackableKeys(n))||(l||track(t,"get",n),a)?y:isRef(y)?d&&isIntegerKey(n)?y:y.value:isObject$3(y)?l?readonly(y):reactive(y):y}}class MutableReactiveHandler extends BaseReactiveHandler{constructor(t=!1){super(!1,t)}set(t,n,o,l){let a=t[n];if(!this._isShallow){const w=isReadonly(a);if(!isShallow(o)&&!isReadonly(o)&&(a=toRaw(a),o=toRaw(o)),!isArray$a(t)&&isRef(a)&&!isRef(o))return w?(warn$3(`Set operation on key "${String(n)}" failed: target is readonly.`,t[n]),!0):(a.value=o,!0)}const d=isArray$a(t)&&isIntegerKey(n)?Number(n)e,getProto$4=e=>Reflect.getPrototypeOf(e);function createIterableMethod(e,t,n){return function(...o){const l=this.__v_raw,a=toRaw(l),d=isMap$1(a),y=e==="entries"||e===Symbol.iterator&&d,w=e==="keys"&&d,_=l[e](...o),S=n?toShallow:t?toReadonly:toReactive;return!t&&track(a,"iterate",w?MAP_KEY_ITERATE_KEY:ITERATE_KEY),{next(){const{value:x,done:C}=_.next();return C?{value:x,done:C}:{value:y?[S(x[0]),S(x[1])]:S(x),done:C}},[Symbol.iterator](){return this}}}}function createReadonlyMethod(e){return function(...t){{const n=t[0]?`on key "${t[0]}" `:"";warn$3(`${capitalize$2(e)} operation ${n}failed: target is readonly.`,toRaw(this))}return e==="delete"?!1:e==="clear"?void 0:this}}function createInstrumentations(e,t){const n={get(l){const a=this.__v_raw,d=toRaw(a),y=toRaw(l);e||(hasChanged(l,y)&&track(d,"get",l),track(d,"get",y));const{has:w}=getProto$4(d),_=t?toShallow:e?toReadonly:toReactive;if(w.call(d,l))return _(a.get(l));if(w.call(d,y))return _(a.get(y));a!==d&&a.get(l)},get size(){const l=this.__v_raw;return!e&&track(toRaw(l),"iterate",ITERATE_KEY),l.size},has(l){const a=this.__v_raw,d=toRaw(a),y=toRaw(l);return e||(hasChanged(l,y)&&track(d,"has",l),track(d,"has",y)),l===y?a.has(l):a.has(l)||a.has(y)},forEach(l,a){const d=this,y=d.__v_raw,w=toRaw(y),_=t?toShallow:e?toReadonly:toReactive;return!e&&track(w,"iterate",ITERATE_KEY),y.forEach((S,x)=>l.call(a,_(S),_(x),d))}};return extend$1(n,e?{add:createReadonlyMethod("add"),set:createReadonlyMethod("set"),delete:createReadonlyMethod("delete"),clear:createReadonlyMethod("clear")}:{add(l){!t&&!isShallow(l)&&!isReadonly(l)&&(l=toRaw(l));const a=toRaw(this);return getProto$4(a).has.call(a,l)||(a.add(l),trigger(a,"add",l,l)),this},set(l,a){!t&&!isShallow(a)&&!isReadonly(a)&&(a=toRaw(a));const d=toRaw(this),{has:y,get:w}=getProto$4(d);let _=y.call(d,l);_?checkIdentityKeys(d,y,l):(l=toRaw(l),_=y.call(d,l));const S=w.call(d,l);return d.set(l,a),_?hasChanged(a,S)&&trigger(d,"set",l,a,S):trigger(d,"add",l,a),this},delete(l){const a=toRaw(this),{has:d,get:y}=getProto$4(a);let w=d.call(a,l);w?checkIdentityKeys(a,d,l):(l=toRaw(l),w=d.call(a,l));const _=y?y.call(a,l):void 0,S=a.delete(l);return w&&trigger(a,"delete",l,void 0,_),S},clear(){const l=toRaw(this),a=l.size!==0,d=isMap$1(l)?new Map(l):new Set(l),y=l.clear();return a&&trigger(l,"clear",void 0,void 0,d),y}}),["keys","values","entries",Symbol.iterator].forEach(l=>{n[l]=createIterableMethod(l,e,t)}),n}function createInstrumentationGetter(e,t){const n=createInstrumentations(e,t);return(o,l,a)=>l==="__v_isReactive"?!e:l==="__v_isReadonly"?e:l==="__v_raw"?o:Reflect.get(hasOwn$3(n,l)&&l in o?n:o,l,a)}const mutableCollectionHandlers={get:createInstrumentationGetter(!1,!1)},shallowCollectionHandlers={get:createInstrumentationGetter(!1,!0)},readonlyCollectionHandlers={get:createInstrumentationGetter(!0,!1)},shallowReadonlyCollectionHandlers={get:createInstrumentationGetter(!0,!0)};function checkIdentityKeys(e,t,n){const o=toRaw(n);if(o!==n&&t.call(e,o)){const l=toRawType(e);warn$3(`Reactive ${l} contains both the raw and reactive versions of the same object${l==="Map"?" as keys":""}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`)}}const reactiveMap=new WeakMap,shallowReactiveMap=new WeakMap,readonlyMap=new WeakMap,shallowReadonlyMap=new WeakMap;function targetTypeMap(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function getTargetType(e){return e.__v_skip||!Object.isExtensible(e)?0:targetTypeMap(toRawType(e))}function reactive(e){return isReadonly(e)?e:createReactiveObject(e,!1,mutableHandlers,mutableCollectionHandlers,reactiveMap)}function shallowReactive(e){return createReactiveObject(e,!1,shallowReactiveHandlers,shallowCollectionHandlers,shallowReactiveMap)}function readonly(e){return createReactiveObject(e,!0,readonlyHandlers,readonlyCollectionHandlers,readonlyMap)}function shallowReadonly(e){return createReactiveObject(e,!0,shallowReadonlyHandlers,shallowReadonlyCollectionHandlers,shallowReadonlyMap)}function createReactiveObject(e,t,n,o,l){if(!isObject$3(e))return warn$3(`value cannot be made ${t?"readonly":"reactive"}: ${String(e)}`),e;if(e.__v_raw&&!(t&&e.__v_isReactive))return e;const a=getTargetType(e);if(a===0)return e;const d=l.get(e);if(d)return d;const y=new Proxy(e,a===2?o:n);return l.set(e,y),y}function isReactive(e){return isReadonly(e)?isReactive(e.__v_raw):!!(e&&e.__v_isReactive)}function isReadonly(e){return!!(e&&e.__v_isReadonly)}function isShallow(e){return!!(e&&e.__v_isShallow)}function isProxy(e){return e?!!e.__v_raw:!1}function toRaw(e){const t=e&&e.__v_raw;return t?toRaw(t):e}function markRaw(e){return!hasOwn$3(e,"__v_skip")&&Object.isExtensible(e)&&def(e,"__v_skip",!0),e}const toReactive=e=>isObject$3(e)?reactive(e):e,toReadonly=e=>isObject$3(e)?readonly(e):e;function isRef(e){return e?e.__v_isRef===!0:!1}function ref$1(e){return createRef(e,!1)}function shallowRef(e){return createRef(e,!0)}function createRef(e,t){return isRef(e)?e:new RefImpl(e,t)}class RefImpl{constructor(t,n){this.dep=new Dep,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:toRaw(t),this._value=n?t:toReactive(t),this.__v_isShallow=n}get value(){return this.dep.track({target:this,type:"get",key:"value"}),this._value}set value(t){const n=this._rawValue,o=this.__v_isShallow||isShallow(t)||isReadonly(t);t=o?t:toRaw(t),hasChanged(t,n)&&(this._rawValue=t,this._value=o?t:toReactive(t),this.dep.trigger({target:this,type:"set",key:"value",newValue:t,oldValue:n}))}}function triggerRef(e){e.dep&&e.dep.trigger({target:e,type:"set",key:"value",newValue:e._value})}function unref(e){return isRef(e)?e.value:e}function toValue$1(e){return isFunction$2(e)?e():unref(e)}const shallowUnwrapHandlers={get:(e,t,n)=>t==="__v_raw"?e:unref(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const l=e[t];return isRef(l)&&!isRef(n)?(l.value=n,!0):Reflect.set(e,t,n,o)}};function proxyRefs(e){return isReactive(e)?e:new Proxy(e,shallowUnwrapHandlers)}class CustomRefImpl{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new Dep,{get:o,set:l}=t(n.track.bind(n),n.trigger.bind(n));this._get=o,this._set=l}get value(){return this._value=this._get()}set value(t){this._set(t)}}function customRef(e){return new CustomRefImpl(e)}function toRefs(e){isProxy(e)||warn$3("toRefs() expects a reactive object but received a plain one.");const t=isArray$a(e)?new Array(e.length):{};for(const n in e)t[n]=propertyToRef(e,n);return t}class ObjectRefImpl{constructor(t,n,o){this._object=t,this._key=n,this._defaultValue=o,this.__v_isRef=!0,this._value=void 0}get value(){const t=this._object[this._key];return this._value=t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return getDepFromReactive(toRaw(this._object),this._key)}}class GetterRefImpl{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function toRef(e,t,n){return isRef(e)?e:isFunction$2(e)?new GetterRefImpl(e):isObject$3(e)&&arguments.length>1?propertyToRef(e,t,n):ref$1(e)}function propertyToRef(e,t,n){const o=e[t];return isRef(o)?o:new ObjectRefImpl(e,t,n)}class ComputedRefImpl{constructor(t,n,o){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Dep(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=globalVersion-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&activeSub!==this)return batch(this,!0),!0}get value(){const t=this.dep.track({target:this,type:"get",key:"value"});return refreshComputed(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter?this.setter(t):warn$3("Write operation failed: computed value is readonly")}}function computed$1(e,t,n=!1){let o,l;isFunction$2(e)?o=e:(o=e.get,l=e.set);const a=new ComputedRefImpl(o,l,n);return t&&!n&&(a.onTrack=t.onTrack,a.onTrigger=t.onTrigger),a}const TrackOpTypes={GET:"get",HAS:"has",ITERATE:"iterate"},TriggerOpTypes={SET:"set",ADD:"add",DELETE:"delete",CLEAR:"clear"},INITIAL_WATCHER_VALUE={},cleanupMap=new WeakMap;let activeWatcher;function getCurrentWatcher(){return activeWatcher}function onWatcherCleanup(e,t=!1,n=activeWatcher){if(n){let o=cleanupMap.get(n);o||cleanupMap.set(n,o=[]),o.push(e)}else t||warn$3("onWatcherCleanup() was called when there was no active watcher to associate with.")}function watch$1(e,t,n=EMPTY_OBJ){const{immediate:o,deep:l,once:a,scheduler:d,augmentJob:y,call:w}=n,_=Q=>{(n.onWarn||warn$3)("Invalid watch source: ",Q,"A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.")},S=Q=>l?Q:isShallow(Q)||l===!1||l===0?traverse(Q,1):traverse(Q);let x,C,B,L,F=!1,q=!1;if(isRef(e)?(C=()=>e.value,F=isShallow(e)):isReactive(e)?(C=()=>S(e),F=!0):isArray$a(e)?(q=!0,F=e.some(Q=>isReactive(Q)||isShallow(Q)),C=()=>e.map(Q=>{if(isRef(Q))return Q.value;if(isReactive(Q))return S(Q);if(isFunction$2(Q))return w?w(Q,2):Q();_(Q)})):isFunction$2(e)?t?C=w?()=>w(e,2):e:C=()=>{if(B){pauseTracking();try{B()}finally{resetTracking()}}const Q=activeWatcher;activeWatcher=x;try{return w?w(e,3,[L]):e(L)}finally{activeWatcher=Q}}:(C=NOOP,_(e)),t&&l){const Q=C,ae=l===!0?1/0:l;C=()=>traverse(Q(),ae)}const H=getCurrentScope(),D=()=>{x.stop(),H&&H.active&&remove(H.effects,x)};if(a&&t){const Q=t;t=(...ae)=>{Q(...ae),D()}}let j=q?new Array(e.length).fill(INITIAL_WATCHER_VALUE):INITIAL_WATCHER_VALUE;const V=Q=>{if(!(!(x.flags&1)||!x.dirty&&!Q))if(t){const ae=x.run();if(l||F||(q?ae.some((ce,ue)=>hasChanged(ce,j[ue])):hasChanged(ae,j))){B&&B();const ce=activeWatcher;activeWatcher=x;try{const ue=[ae,j===INITIAL_WATCHER_VALUE?void 0:q&&j[0]===INITIAL_WATCHER_VALUE?[]:j,L];j=ae,w?w(t,3,ue):t(...ue)}finally{activeWatcher=ce}}}else x.run()};return y&&y(V),x=new ReactiveEffect(C),x.scheduler=d?()=>d(V,!1):V,L=Q=>onWatcherCleanup(Q,!1,x),B=x.onStop=()=>{const Q=cleanupMap.get(x);if(Q){if(w)w(Q,4);else for(const ae of Q)ae();cleanupMap.delete(x)}},x.onTrack=n.onTrack,x.onTrigger=n.onTrigger,t?o?V(!0):j=x.run():d?d(V.bind(null,!0),!0):x.run(),D.pause=x.pause.bind(x),D.resume=x.resume.bind(x),D.stop=D,D}function traverse(e,t=1/0,n){if(t<=0||!isObject$3(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,isRef(e))traverse(e.value,t,n);else if(isArray$a(e))for(let o=0;o{traverse(o,t,n)});else if(isPlainObject(e)){for(const o in e)traverse(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&traverse(e[o],t,n)}return e}/** -* @vue/runtime-core v3.5.21 +**/function warn$3(e,...t){console.warn(`[Vue warn] ${e}`,...t)}let activeEffectScope;class EffectScope{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=activeEffectScope,!t&&activeEffectScope&&(this.index=(activeEffectScope.scopes||(activeEffectScope.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0&&--this._on===0&&(activeEffectScope=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,o;for(n=0,o=this.effects.length;n0)return;if(batchedComputed){let t=batchedComputed;for(batchedComputed=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;batchedSub;){let t=batchedSub;for(batchedSub=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(o){e||(e=o)}t=n}}if(e)throw e}function prepareDeps(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function cleanupDeps(e){let t,n=e.depsTail,o=n;for(;o;){const l=o.prevDep;o.version===-1?(o===n&&(n=l),removeSub(o),removeDep(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=l}e.deps=t,e.depsTail=n}function isDirty(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(refreshComputed(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function refreshComputed(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===globalVersion)||(e.globalVersion=globalVersion,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!isDirty(e))))return;e.flags|=2;const t=e.dep,n=activeSub,o=shouldTrack;activeSub=e,shouldTrack=!0;try{prepareDeps(e);const l=e.fn(e._value);(t.version===0||hasChanged(l,e._value))&&(e.flags|=128,e._value=l,t.version++)}catch(l){throw t.version++,l}finally{activeSub=n,shouldTrack=o,cleanupDeps(e),e.flags&=-3}}function removeSub(e,t=!1){const{dep:n,prevSub:o,nextSub:l}=e;if(o&&(o.nextSub=l,e.prevSub=void 0),l&&(l.prevSub=o,e.nextSub=void 0),n.subsHead===e&&(n.subsHead=l),n.subs===e&&(n.subs=o,!o&&n.computed)){n.computed.flags&=-5;for(let a=n.computed.deps;a;a=a.nextDep)removeSub(a,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function removeDep(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}function effect(e,t){e.effect instanceof ReactiveEffect&&(e=e.effect.fn);const n=new ReactiveEffect(e);t&&extend$1(n,t);try{n.run()}catch(l){throw n.stop(),l}const o=n.run.bind(n);return o.effect=n,o}function stop(e){e.effect.stop()}let shouldTrack=!0;const trackStack=[];function pauseTracking(){trackStack.push(shouldTrack),shouldTrack=!1}function resetTracking(){const e=trackStack.pop();shouldTrack=e===void 0?!0:e}function cleanupEffect(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=activeSub;activeSub=void 0;try{t()}finally{activeSub=n}}}let globalVersion=0;class Link{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Dep{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0,this.subsHead=void 0}track(t){if(!activeSub||!shouldTrack||activeSub===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==activeSub)n=this.activeLink=new Link(activeSub,this),activeSub.deps?(n.prevDep=activeSub.depsTail,activeSub.depsTail.nextDep=n,activeSub.depsTail=n):activeSub.deps=activeSub.depsTail=n,addSub(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const o=n.nextDep;o.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=o),n.prevDep=activeSub.depsTail,n.nextDep=void 0,activeSub.depsTail.nextDep=n,activeSub.depsTail=n,activeSub.deps===n&&(activeSub.deps=o)}return activeSub.onTrack&&activeSub.onTrack(extend$1({effect:activeSub},t)),n}trigger(t){this.version++,globalVersion++,this.notify(t)}notify(t){startBatch();try{for(let n=this.subsHead;n;n=n.nextSub)n.sub.onTrigger&&!(n.sub.flags&8)&&n.sub.onTrigger(extend$1({effect:n.sub},t));for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{endBatch()}}}function addSub(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let o=t.deps;o;o=o.nextDep)addSub(o)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subsHead===void 0&&(e.dep.subsHead=e),e.dep.subs=e}}const targetMap=new WeakMap,ITERATE_KEY=Symbol("Object iterate"),MAP_KEY_ITERATE_KEY=Symbol("Map keys iterate"),ARRAY_ITERATE_KEY=Symbol("Array iterate");function track(e,t,n){if(shouldTrack&&activeSub){let o=targetMap.get(e);o||targetMap.set(e,o=new Map);let l=o.get(n);l||(o.set(n,l=new Dep),l.map=o,l.key=n),l.track({target:e,type:t,key:n})}}function trigger(e,t,n,o,l,a){const d=targetMap.get(e);if(!d){globalVersion++;return}const y=w=>{w&&w.trigger({target:e,type:t,key:n,newValue:o,oldValue:l,oldTarget:a})};if(startBatch(),t==="clear")d.forEach(y);else{const w=isArray$a(e),_=w&&isIntegerKey(n);if(w&&n==="length"){const S=Number(o);d.forEach((E,C)=>{(C==="length"||C===ARRAY_ITERATE_KEY||!isSymbol$4(C)&&C>=S)&&y(E)})}else switch((n!==void 0||d.has(void 0))&&y(d.get(n)),_&&y(d.get(ARRAY_ITERATE_KEY)),t){case"add":w?_&&y(d.get("length")):(y(d.get(ITERATE_KEY)),isMap$1(e)&&y(d.get(MAP_KEY_ITERATE_KEY)));break;case"delete":w||(y(d.get(ITERATE_KEY)),isMap$1(e)&&y(d.get(MAP_KEY_ITERATE_KEY)));break;case"set":isMap$1(e)&&y(d.get(ITERATE_KEY));break}}endBatch()}function getDepFromReactive(e,t){const n=targetMap.get(e);return n&&n.get(t)}function reactiveReadArray(e){const t=toRaw(e);return t===e?t:(track(t,"iterate",ARRAY_ITERATE_KEY),isShallow(e)?t:t.map(toReactive))}function shallowReadArray(e){return track(e=toRaw(e),"iterate",ARRAY_ITERATE_KEY),e}const arrayInstrumentations={__proto__:null,[Symbol.iterator](){return iterator$1(this,Symbol.iterator,toReactive)},concat(...e){return reactiveReadArray(this).concat(...e.map(t=>isArray$a(t)?reactiveReadArray(t):t))},entries(){return iterator$1(this,"entries",e=>(e[1]=toReactive(e[1]),e))},every(e,t){return apply(this,"every",e,t,void 0,arguments)},filter(e,t){return apply(this,"filter",e,t,n=>n.map(toReactive),arguments)},find(e,t){return apply(this,"find",e,t,toReactive,arguments)},findIndex(e,t){return apply(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return apply(this,"findLast",e,t,toReactive,arguments)},findLastIndex(e,t){return apply(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return apply(this,"forEach",e,t,void 0,arguments)},includes(...e){return searchProxy(this,"includes",e)},indexOf(...e){return searchProxy(this,"indexOf",e)},join(e){return reactiveReadArray(this).join(e)},lastIndexOf(...e){return searchProxy(this,"lastIndexOf",e)},map(e,t){return apply(this,"map",e,t,void 0,arguments)},pop(){return noTracking(this,"pop")},push(...e){return noTracking(this,"push",e)},reduce(e,...t){return reduce(this,"reduce",e,t)},reduceRight(e,...t){return reduce(this,"reduceRight",e,t)},shift(){return noTracking(this,"shift")},some(e,t){return apply(this,"some",e,t,void 0,arguments)},splice(...e){return noTracking(this,"splice",e)},toReversed(){return reactiveReadArray(this).toReversed()},toSorted(e){return reactiveReadArray(this).toSorted(e)},toSpliced(...e){return reactiveReadArray(this).toSpliced(...e)},unshift(...e){return noTracking(this,"unshift",e)},values(){return iterator$1(this,"values",toReactive)}};function iterator$1(e,t,n){const o=shallowReadArray(e),l=o[t]();return o!==e&&!isShallow(e)&&(l._next=l.next,l.next=()=>{const a=l._next();return a.value&&(a.value=n(a.value)),a}),l}const arrayProto=Array.prototype;function apply(e,t,n,o,l,a){const d=shallowReadArray(e),y=d!==e&&!isShallow(e),w=d[t];if(w!==arrayProto[t]){const E=w.apply(e,a);return y?toReactive(E):E}let _=n;d!==e&&(y?_=function(E,C){return n.call(this,toReactive(E),C,e)}:n.length>2&&(_=function(E,C){return n.call(this,E,C,e)}));const S=w.call(d,_,o);return y&&l?l(S):S}function reduce(e,t,n,o){const l=shallowReadArray(e);let a=n;return l!==e&&(isShallow(e)?n.length>3&&(a=function(d,y,w){return n.call(this,d,y,w,e)}):a=function(d,y,w){return n.call(this,d,toReactive(y),w,e)}),l[t](a,...o)}function searchProxy(e,t,n){const o=toRaw(e);track(o,"iterate",ARRAY_ITERATE_KEY);const l=o[t](...n);return(l===-1||l===!1)&&isProxy(n[0])?(n[0]=toRaw(n[0]),o[t](...n)):l}function noTracking(e,t,n=[]){pauseTracking(),startBatch();const o=toRaw(e)[t].apply(e,n);return endBatch(),resetTracking(),o}const isNonTrackableKeys=makeMap("__proto__,__v_isRef,__isVue"),builtInSymbols=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(isSymbol$4));function hasOwnProperty$3(e){isSymbol$4(e)||(e=String(e));const t=toRaw(this);return track(t,"has",e),t.hasOwnProperty(e)}class BaseReactiveHandler{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,o){if(n==="__v_skip")return t.__v_skip;const l=this._isReadonly,a=this._isShallow;if(n==="__v_isReactive")return!l;if(n==="__v_isReadonly")return l;if(n==="__v_isShallow")return a;if(n==="__v_raw")return o===(l?a?shallowReadonlyMap:readonlyMap:a?shallowReactiveMap:reactiveMap).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const d=isArray$a(t);if(!l){let w;if(d&&(w=arrayInstrumentations[n]))return w;if(n==="hasOwnProperty")return hasOwnProperty$3}const y=Reflect.get(t,n,isRef(t)?t:o);return(isSymbol$4(n)?builtInSymbols.has(n):isNonTrackableKeys(n))||(l||track(t,"get",n),a)?y:isRef(y)?d&&isIntegerKey(n)?y:y.value:isObject$3(y)?l?readonly(y):reactive(y):y}}class MutableReactiveHandler extends BaseReactiveHandler{constructor(t=!1){super(!1,t)}set(t,n,o,l){let a=t[n];if(!this._isShallow){const w=isReadonly(a);if(!isShallow(o)&&!isReadonly(o)&&(a=toRaw(a),o=toRaw(o)),!isArray$a(t)&&isRef(a)&&!isRef(o))return w?!1:(a.value=o,!0)}const d=isArray$a(t)&&isIntegerKey(n)?Number(n)e,getProto$4=e=>Reflect.getPrototypeOf(e);function createIterableMethod(e,t,n){return function(...o){const l=this.__v_raw,a=toRaw(l),d=isMap$1(a),y=e==="entries"||e===Symbol.iterator&&d,w=e==="keys"&&d,_=l[e](...o),S=n?toShallow:t?toReadonly:toReactive;return!t&&track(a,"iterate",w?MAP_KEY_ITERATE_KEY:ITERATE_KEY),{next(){const{value:E,done:C}=_.next();return C?{value:E,done:C}:{value:y?[S(E[0]),S(E[1])]:S(E),done:C}},[Symbol.iterator](){return this}}}}function createReadonlyMethod(e){return function(...t){{const n=t[0]?`on key "${t[0]}" `:"";warn$3(`${capitalize$2(e)} operation ${n}failed: target is readonly.`,toRaw(this))}return e==="delete"?!1:e==="clear"?void 0:this}}function createInstrumentations(e,t){const n={get(l){const a=this.__v_raw,d=toRaw(a),y=toRaw(l);e||(hasChanged(l,y)&&track(d,"get",l),track(d,"get",y));const{has:w}=getProto$4(d),_=t?toShallow:e?toReadonly:toReactive;if(w.call(d,l))return _(a.get(l));if(w.call(d,y))return _(a.get(y));a!==d&&a.get(l)},get size(){const l=this.__v_raw;return!e&&track(toRaw(l),"iterate",ITERATE_KEY),Reflect.get(l,"size",l)},has(l){const a=this.__v_raw,d=toRaw(a),y=toRaw(l);return e||(hasChanged(l,y)&&track(d,"has",l),track(d,"has",y)),l===y?a.has(l):a.has(l)||a.has(y)},forEach(l,a){const d=this,y=d.__v_raw,w=toRaw(y),_=t?toShallow:e?toReadonly:toReactive;return!e&&track(w,"iterate",ITERATE_KEY),y.forEach((S,E)=>l.call(a,_(S),_(E),d))}};return extend$1(n,e?{add:createReadonlyMethod("add"),set:createReadonlyMethod("set"),delete:createReadonlyMethod("delete"),clear:createReadonlyMethod("clear")}:{add(l){!t&&!isShallow(l)&&!isReadonly(l)&&(l=toRaw(l));const a=toRaw(this);return getProto$4(a).has.call(a,l)||(a.add(l),trigger(a,"add",l,l)),this},set(l,a){!t&&!isShallow(a)&&!isReadonly(a)&&(a=toRaw(a));const d=toRaw(this),{has:y,get:w}=getProto$4(d);let _=y.call(d,l);_?checkIdentityKeys(d,y,l):(l=toRaw(l),_=y.call(d,l));const S=w.call(d,l);return d.set(l,a),_?hasChanged(a,S)&&trigger(d,"set",l,a,S):trigger(d,"add",l,a),this},delete(l){const a=toRaw(this),{has:d,get:y}=getProto$4(a);let w=d.call(a,l);w?checkIdentityKeys(a,d,l):(l=toRaw(l),w=d.call(a,l));const _=y?y.call(a,l):void 0,S=a.delete(l);return w&&trigger(a,"delete",l,void 0,_),S},clear(){const l=toRaw(this),a=l.size!==0,d=isMap$1(l)?new Map(l):new Set(l),y=l.clear();return a&&trigger(l,"clear",void 0,void 0,d),y}}),["keys","values","entries",Symbol.iterator].forEach(l=>{n[l]=createIterableMethod(l,e,t)}),n}function createInstrumentationGetter(e,t){const n=createInstrumentations(e,t);return(o,l,a)=>l==="__v_isReactive"?!e:l==="__v_isReadonly"?e:l==="__v_raw"?o:Reflect.get(hasOwn$3(n,l)&&l in o?n:o,l,a)}const mutableCollectionHandlers={get:createInstrumentationGetter(!1,!1)},shallowCollectionHandlers={get:createInstrumentationGetter(!1,!0)},readonlyCollectionHandlers={get:createInstrumentationGetter(!0,!1)},shallowReadonlyCollectionHandlers={get:createInstrumentationGetter(!0,!0)};function checkIdentityKeys(e,t,n){const o=toRaw(n);if(o!==n&&t.call(e,o)){const l=toRawType(e);warn$3(`Reactive ${l} contains both the raw and reactive versions of the same object${l==="Map"?" as keys":""}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`)}}const reactiveMap=new WeakMap,shallowReactiveMap=new WeakMap,readonlyMap=new WeakMap,shallowReadonlyMap=new WeakMap;function targetTypeMap(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function getTargetType(e){return e.__v_skip||!Object.isExtensible(e)?0:targetTypeMap(toRawType(e))}function reactive(e){return isReadonly(e)?e:createReactiveObject(e,!1,mutableHandlers,mutableCollectionHandlers,reactiveMap)}function shallowReactive(e){return createReactiveObject(e,!1,shallowReactiveHandlers,shallowCollectionHandlers,shallowReactiveMap)}function readonly(e){return createReactiveObject(e,!0,readonlyHandlers,readonlyCollectionHandlers,readonlyMap)}function shallowReadonly(e){return createReactiveObject(e,!0,shallowReadonlyHandlers,shallowReadonlyCollectionHandlers,shallowReadonlyMap)}function createReactiveObject(e,t,n,o,l){if(!isObject$3(e))return warn$3(`value cannot be made ${t?"readonly":"reactive"}: ${String(e)}`),e;if(e.__v_raw&&!(t&&e.__v_isReactive))return e;const a=getTargetType(e);if(a===0)return e;const d=l.get(e);if(d)return d;const y=new Proxy(e,a===2?o:n);return l.set(e,y),y}function isReactive(e){return isReadonly(e)?isReactive(e.__v_raw):!!(e&&e.__v_isReactive)}function isReadonly(e){return!!(e&&e.__v_isReadonly)}function isShallow(e){return!!(e&&e.__v_isShallow)}function isProxy(e){return e?!!e.__v_raw:!1}function toRaw(e){const t=e&&e.__v_raw;return t?toRaw(t):e}function markRaw(e){return!hasOwn$3(e,"__v_skip")&&Object.isExtensible(e)&&def(e,"__v_skip",!0),e}const toReactive=e=>isObject$3(e)?reactive(e):e,toReadonly=e=>isObject$3(e)?readonly(e):e;function isRef(e){return e?e.__v_isRef===!0:!1}function ref$1(e){return createRef(e,!1)}function shallowRef(e){return createRef(e,!0)}function createRef(e,t){return isRef(e)?e:new RefImpl(e,t)}class RefImpl{constructor(t,n){this.dep=new Dep,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:toRaw(t),this._value=n?t:toReactive(t),this.__v_isShallow=n}get value(){return this.dep.track({target:this,type:"get",key:"value"}),this._value}set value(t){const n=this._rawValue,o=this.__v_isShallow||isShallow(t)||isReadonly(t);t=o?t:toRaw(t),hasChanged(t,n)&&(this._rawValue=t,this._value=o?t:toReactive(t),this.dep.trigger({target:this,type:"set",key:"value",newValue:t,oldValue:n}))}}function triggerRef(e){e.dep&&e.dep.trigger({target:e,type:"set",key:"value",newValue:e._value})}function unref(e){return isRef(e)?e.value:e}function toValue$1(e){return isFunction$2(e)?e():unref(e)}const shallowUnwrapHandlers={get:(e,t,n)=>t==="__v_raw"?e:unref(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const l=e[t];return isRef(l)&&!isRef(n)?(l.value=n,!0):Reflect.set(e,t,n,o)}};function proxyRefs(e){return isReactive(e)?e:new Proxy(e,shallowUnwrapHandlers)}class CustomRefImpl{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new Dep,{get:o,set:l}=t(n.track.bind(n),n.trigger.bind(n));this._get=o,this._set=l}get value(){return this._value=this._get()}set value(t){this._set(t)}}function customRef(e){return new CustomRefImpl(e)}function toRefs(e){isProxy(e)||warn$3("toRefs() expects a reactive object but received a plain one.");const t=isArray$a(e)?new Array(e.length):{};for(const n in e)t[n]=propertyToRef(e,n);return t}class ObjectRefImpl{constructor(t,n,o){this._object=t,this._key=n,this._defaultValue=o,this.__v_isRef=!0,this._value=void 0}get value(){const t=this._object[this._key];return this._value=t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return getDepFromReactive(toRaw(this._object),this._key)}}class GetterRefImpl{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function toRef(e,t,n){return isRef(e)?e:isFunction$2(e)?new GetterRefImpl(e):isObject$3(e)&&arguments.length>1?propertyToRef(e,t,n):ref$1(e)}function propertyToRef(e,t,n){const o=e[t];return isRef(o)?o:new ObjectRefImpl(e,t,n)}class ComputedRefImpl{constructor(t,n,o){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Dep(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=globalVersion-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&activeSub!==this)return batch(this,!0),!0}get value(){const t=this.dep.track({target:this,type:"get",key:"value"});return refreshComputed(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter?this.setter(t):warn$3("Write operation failed: computed value is readonly")}}function computed$1(e,t,n=!1){let o,l;isFunction$2(e)?o=e:(o=e.get,l=e.set);const a=new ComputedRefImpl(o,l,n);return t&&!n&&(a.onTrack=t.onTrack,a.onTrigger=t.onTrigger),a}const TrackOpTypes={GET:"get",HAS:"has",ITERATE:"iterate"},TriggerOpTypes={SET:"set",ADD:"add",DELETE:"delete",CLEAR:"clear"},INITIAL_WATCHER_VALUE={},cleanupMap=new WeakMap;let activeWatcher;function getCurrentWatcher(){return activeWatcher}function onWatcherCleanup(e,t=!1,n=activeWatcher){if(n){let o=cleanupMap.get(n);o||cleanupMap.set(n,o=[]),o.push(e)}else t||warn$3("onWatcherCleanup() was called when there was no active watcher to associate with.")}function watch$1(e,t,n=EMPTY_OBJ){const{immediate:o,deep:l,once:a,scheduler:d,augmentJob:y,call:w}=n,_=Q=>{(n.onWarn||warn$3)("Invalid watch source: ",Q,"A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.")},S=Q=>l?Q:isShallow(Q)||l===!1||l===0?traverse(Q,1):traverse(Q);let E,C,B,L,F=!1,q=!1;if(isRef(e)?(C=()=>e.value,F=isShallow(e)):isReactive(e)?(C=()=>S(e),F=!0):isArray$a(e)?(q=!0,F=e.some(Q=>isReactive(Q)||isShallow(Q)),C=()=>e.map(Q=>{if(isRef(Q))return Q.value;if(isReactive(Q))return S(Q);if(isFunction$2(Q))return w?w(Q,2):Q();_(Q)})):isFunction$2(e)?t?C=w?()=>w(e,2):e:C=()=>{if(B){pauseTracking();try{B()}finally{resetTracking()}}const Q=activeWatcher;activeWatcher=E;try{return w?w(e,3,[L]):e(L)}finally{activeWatcher=Q}}:(C=NOOP,_(e)),t&&l){const Q=C,ae=l===!0?1/0:l;C=()=>traverse(Q(),ae)}const H=getCurrentScope(),D=()=>{E.stop(),H&&H.active&&remove(H.effects,E)};if(a&&t){const Q=t;t=(...ae)=>{Q(...ae),D()}}let j=q?new Array(e.length).fill(INITIAL_WATCHER_VALUE):INITIAL_WATCHER_VALUE;const V=Q=>{if(!(!(E.flags&1)||!E.dirty&&!Q))if(t){const ae=E.run();if(l||F||(q?ae.some((ce,ue)=>hasChanged(ce,j[ue])):hasChanged(ae,j))){B&&B();const ce=activeWatcher;activeWatcher=E;try{const ue=[ae,j===INITIAL_WATCHER_VALUE?void 0:q&&j[0]===INITIAL_WATCHER_VALUE?[]:j,L];j=ae,w?w(t,3,ue):t(...ue)}finally{activeWatcher=ce}}}else E.run()};return y&&y(V),E=new ReactiveEffect(C),E.scheduler=d?()=>d(V,!1):V,L=Q=>onWatcherCleanup(Q,!1,E),B=E.onStop=()=>{const Q=cleanupMap.get(E);if(Q){if(w)w(Q,4);else for(const ae of Q)ae();cleanupMap.delete(E)}},E.onTrack=n.onTrack,E.onTrigger=n.onTrigger,t?o?V(!0):j=E.run():d?d(V.bind(null,!0),!0):E.run(),D.pause=E.pause.bind(E),D.resume=E.resume.bind(E),D.stop=D,D}function traverse(e,t=1/0,n){if(t<=0||!isObject$3(e)||e.__v_skip||(n=n||new Set,n.has(e)))return e;if(n.add(e),t--,isRef(e))traverse(e.value,t,n);else if(isArray$a(e))for(let o=0;o{traverse(o,t,n)});else if(isPlainObject(e)){for(const o in e)traverse(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&traverse(e[o],t,n)}return e}/** +* @vue/runtime-core v3.5.18 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/const stack=[];function pushWarningContext(e){stack.push(e)}function popWarningContext(){stack.pop()}let isWarning=!1;function warn$1(e,...t){if(isWarning)return;isWarning=!0,pauseTracking();const n=stack.length?stack[stack.length-1].component:null,o=n&&n.appContext.config.warnHandler,l=getComponentTrace();if(o)callWithErrorHandling(o,n,11,[e+t.map(a=>{var d,y;return(y=(d=a.toString)==null?void 0:d.call(a))!=null?y:JSON.stringify(a)}).join(""),n&&n.proxy,l.map(({vnode:a})=>`at <${formatComponentName(n,a.type)}>`).join(` `),l]);else{const a=[`[Vue warn]: ${e}`,...t];l.length&&a.push(` `,...formatTrace(l)),console.warn(...a)}resetTracking(),isWarning=!1}function getComponentTrace(){let e=stack[stack.length-1];if(!e)return[];const t=[];for(;e;){const n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});const o=e.component&&e.component.parent;e=o&&o.vnode}return t}function formatTrace(e){const t=[];return e.forEach((n,o)=>{t.push(...o===0?[]:[` -`],...formatTraceEntry(n))}),t}function formatTraceEntry({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:"",o=e.component?e.component.parent==null:!1,l=` at <${formatComponentName(e.component,e.type,o)}`,a=">"+n;return e.props?[l,...formatProps(e.props),a]:[l+a]}function formatProps(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(o=>{t.push(...formatProp(o,e[o]))}),n.length>3&&t.push(" ..."),t}function formatProp(e,t,n){return isString$2(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?n?t:[`${e}=${t}`]:isRef(t)?(t=formatProp(e,toRaw(t.value),!0),n?t:[`${e}=Ref<`,t,">"]):isFunction$2(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=toRaw(t),n?t:[`${e}=`,t])}function assertNumber(e,t){e!==void 0&&(typeof e!="number"?warn$1(`${t} is not a valid number - got ${JSON.stringify(e)}.`):isNaN(e)&&warn$1(`${t} is NaN - the duration expression might be incorrect.`))}const ErrorCodes={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER",COMPONENT_UPDATE:15,15:"COMPONENT_UPDATE",APP_UNMOUNT_CLEANUP:16,16:"APP_UNMOUNT_CLEANUP"},ErrorTypeStrings$1={sp:"serverPrefetch hook",bc:"beforeCreate hook",c:"created hook",bm:"beforeMount hook",m:"mounted hook",bu:"beforeUpdate hook",u:"updated",bum:"beforeUnmount hook",um:"unmounted hook",a:"activated hook",da:"deactivated hook",ec:"errorCaptured hook",rtc:"renderTracked hook",rtg:"renderTriggered hook",0:"setup function",1:"render function",2:"watcher getter",3:"watcher callback",4:"watcher cleanup function",5:"native event handler",6:"component event handler",7:"vnode hook",8:"directive hook",9:"transition hook",10:"app errorHandler",11:"app warnHandler",12:"ref function",13:"async component loader",14:"scheduler flush",15:"component update",16:"app unmount cleanup function"};function callWithErrorHandling(e,t,n,o){try{return o?e(...o):e()}catch(l){handleError(l,t,n)}}function callWithAsyncErrorHandling(e,t,n,o){if(isFunction$2(e)){const l=callWithErrorHandling(e,t,n,o);return l&&isPromise$1(l)&&l.catch(a=>{handleError(a,t,n)}),l}if(isArray$a(e)){const l=[];for(let a=0;a>>1,l=queue[o],a=getId(l);a=getId(n)?queue.push(e):queue.splice(findInsertionIndex$1(t),0,e),e.flags|=1,queueFlush()}}function queueFlush(){currentFlushPromise||(currentFlushPromise=resolvedPromise.then(flushJobs))}function queuePostFlushCb(e){isArray$a(e)?pendingPostFlushCbs.push(...e):activePostFlushCbs&&e.id===-1?activePostFlushCbs.splice(postFlushIndex+1,0,e):e.flags&1||(pendingPostFlushCbs.push(e),e.flags|=1),queueFlush()}function flushPreFlushCbs(e,t,n=flushIndex+1){for(t=t||new Map;ngetId(n)-getId(o));if(pendingPostFlushCbs.length=0,activePostFlushCbs){activePostFlushCbs.push(...t);return}for(activePostFlushCbs=t,e=e||new Map,postFlushIndex=0;postFlushIndexe.id==null?e.flags&2?-1:1/0:e.id;function flushJobs(e){e=e||new Map;const t=n=>checkRecursiveUpdates(e,n);try{for(flushIndex=0;flushIndexRECURSION_LIMIT){const o=t.i,l=o&&getComponentName(o.type);return handleError(`Maximum recursive updates exceeded${l?` in component <${l}>`:""}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,null,10),!0}return e.set(t,n+1),!1}let isHmrUpdating=!1;const hmrDirtyComponents=new Map;{const e=getGlobalThis();e.__VUE_HMR_RUNTIME__||(e.__VUE_HMR_RUNTIME__={createRecord:tryWrap(createRecord),rerender:tryWrap(rerender),reload:tryWrap(reload)})}const map$2=new Map;function registerHMR(e){const t=e.type.__hmrId;let n=map$2.get(t);n||(createRecord(t,e.type),n=map$2.get(t)),n.instances.add(e)}function unregisterHMR(e){map$2.get(e.type.__hmrId).instances.delete(e)}function createRecord(e,t){return map$2.has(e)?!1:(map$2.set(e,{initialDef:normalizeClassComponent(t),instances:new Set}),!0)}function normalizeClassComponent(e){return isClassComponent(e)?e.__vccOpts:e}function rerender(e,t){const n=map$2.get(e);n&&(n.initialDef.render=t,[...n.instances].forEach(o=>{t&&(o.render=t,normalizeClassComponent(o.type).render=t),o.renderCache=[],isHmrUpdating=!0,o.job.flags&8||o.update(),isHmrUpdating=!1}))}function reload(e,t){const n=map$2.get(e);if(!n)return;t=normalizeClassComponent(t),updateComponentDef(n.initialDef,t);const o=[...n.instances];for(let l=0;l{a.job.flags&8||(isHmrUpdating=!0,a.parent.update(),isHmrUpdating=!1,y.delete(a))}):a.appContext.reload?a.appContext.reload():typeof window<"u"?window.location.reload():console.warn("[HMR] Root or manually mounted instance modified. Full reload required."),a.root.ce&&a!==a.root&&a.root.ce._removeChildStyle(d)}queuePostFlushCb(()=>{hmrDirtyComponents.clear()})}function updateComponentDef(e,t){extend$1(e,t);for(const n in e)n!=="__file"&&!(n in t)&&delete e[n]}function tryWrap(e){return(t,n)=>{try{return e(t,n)}catch(o){console.error(o),console.warn("[HMR] Something went wrong during Vue component hot-reload. Full reload required.")}}}let devtools$1,buffer$1=[],devtoolsNotInstalled=!1;function emit$1(e,...t){devtools$1?devtools$1.emit(e,...t):devtoolsNotInstalled||buffer$1.push({event:e,args:t})}function setDevtoolsHook$1(e,t){var n,o;devtools$1=e,devtools$1?(devtools$1.enabled=!0,buffer$1.forEach(({event:l,args:a})=>devtools$1.emit(l,...a)),buffer$1=[]):typeof window<"u"&&window.HTMLElement&&!((o=(n=window.navigator)==null?void 0:n.userAgent)!=null&&o.includes("jsdom"))?((t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(a=>{setDevtoolsHook$1(a,t)}),setTimeout(()=>{devtools$1||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,devtoolsNotInstalled=!0,buffer$1=[])},3e3)):(devtoolsNotInstalled=!0,buffer$1=[])}function devtoolsInitApp(e,t){emit$1("app:init",e,t,{Fragment,Text,Comment,Static})}function devtoolsUnmountApp(e){emit$1("app:unmount",e)}const devtoolsComponentAdded=createDevtoolsComponentHook("component:added"),devtoolsComponentUpdated=createDevtoolsComponentHook("component:updated"),_devtoolsComponentRemoved=createDevtoolsComponentHook("component:removed"),devtoolsComponentRemoved=e=>{devtools$1&&typeof devtools$1.cleanupBuffer=="function"&&!devtools$1.cleanupBuffer(e)&&_devtoolsComponentRemoved(e)};function createDevtoolsComponentHook(e){return t=>{emit$1(e,t.appContext.app,t.uid,t.parent?t.parent.uid:void 0,t)}}const devtoolsPerfStart=createDevtoolsPerformanceHook("perf:start"),devtoolsPerfEnd=createDevtoolsPerformanceHook("perf:end");function createDevtoolsPerformanceHook(e){return(t,n,o)=>{emit$1(e,t.appContext.app,t.uid,t,n,o)}}function devtoolsComponentEmit(e,t,n){emit$1("component:emit",e.appContext.app,e,t,n)}let currentRenderingInstance=null,currentScopeId=null;function setCurrentRenderingInstance(e){const t=currentRenderingInstance;return currentRenderingInstance=e,currentScopeId=e&&e.type.__scopeId||null,t}function pushScopeId(e){currentScopeId=e}function popScopeId(){currentScopeId=null}const withScopeId=e=>withCtx;function withCtx(e,t=currentRenderingInstance,n){if(!t||e._n)return e;const o=(...l)=>{o._d&&setBlockTracking(-1);const a=setCurrentRenderingInstance(t);let d;try{d=e(...l)}finally{setCurrentRenderingInstance(a),o._d&&setBlockTracking(1)}return devtoolsComponentUpdated(t),d};return o._n=!0,o._c=!0,o._d=!0,o}function validateDirectiveName(e){isBuiltInDirective(e)&&warn$1("Do not use built-in directive ids as custom directive id: "+e)}function withDirectives(e,t){if(currentRenderingInstance===null)return warn$1("withDirectives can only be used inside render functions."),e;const n=getComponentPublicInstance(currentRenderingInstance),o=e.dirs||(e.dirs=[]);for(let l=0;le.__isTeleport,isTeleportDisabled=e=>e&&(e.disabled||e.disabled===""),isTeleportDeferred=e=>e&&(e.defer||e.defer===""),isTargetSVG=e=>typeof SVGElement<"u"&&e instanceof SVGElement,isTargetMathML=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,resolveTarget=(e,t)=>{const n=e&&e.to;if(isString$2(n))if(t){const o=t(n);return!o&&!isTeleportDisabled(e)&&warn$1(`Failed to locate Teleport target with selector "${n}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`),o}else return warn$1("Current renderer does not support string target for Teleports. (missing querySelector renderer option)"),null;else return!n&&!isTeleportDisabled(e)&&warn$1(`Invalid Teleport target: ${n}`),n},TeleportImpl={name:"Teleport",__isTeleport:!0,process(e,t,n,o,l,a,d,y,w,_){const{mc:S,pc:x,pbc:C,o:{insert:B,querySelector:L,createText:F,createComment:q}}=_,H=isTeleportDisabled(t.props);let{shapeFlag:D,children:j,dynamicChildren:V}=t;if(isHmrUpdating&&(w=!1,V=null),e==null){const Q=t.el=q("teleport start"),ae=t.anchor=q("teleport end");B(Q,n,o),B(ae,n,o);const ce=(re,pe)=>{D&16&&(l&&l.isCE&&(l.ce._teleportTarget=re),S(j,re,pe,l,a,d,y,w))},ue=()=>{const re=t.target=resolveTarget(t.props,L),pe=prepareAnchor(re,t,F,B);re?(d!=="svg"&&isTargetSVG(re)?d="svg":d!=="mathml"&&isTargetMathML(re)&&(d="mathml"),H||(ce(re,pe),updateCssVars(t,!1))):H||warn$1("Invalid Teleport target on mount:",re,`(${typeof re})`)};H&&(ce(n,ae),updateCssVars(t,!0)),isTeleportDeferred(t.props)?(t.el.__isMounted=!1,queuePostRenderEffect(()=>{ue(),delete t.el.__isMounted},a)):ue()}else{if(isTeleportDeferred(t.props)&&e.el.__isMounted===!1){queuePostRenderEffect(()=>{TeleportImpl.process(e,t,n,o,l,a,d,y,w,_)},a);return}t.el=e.el,t.targetStart=e.targetStart;const Q=t.anchor=e.anchor,ae=t.target=e.target,ce=t.targetAnchor=e.targetAnchor,ue=isTeleportDisabled(e.props),re=ue?n:ae,pe=ue?Q:ce;if(d==="svg"||isTargetSVG(ae)?d="svg":(d==="mathml"||isTargetMathML(ae))&&(d="mathml"),V?(C(e.dynamicChildren,V,re,l,a,d,y),traverseStaticChildren(e,t,!1)):w||x(e,t,re,pe,l,a,d,y,!1),H)ue?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):moveTeleport(t,n,Q,_,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const T=t.target=resolveTarget(t.props,L);T?moveTeleport(t,T,null,_,0):warn$1("Invalid Teleport target on update:",ae,`(${typeof ae})`)}else ue&&moveTeleport(t,ae,ce,_,1);updateCssVars(t,H)}},remove(e,t,n,{um:o,o:{remove:l}},a){const{shapeFlag:d,children:y,anchor:w,targetStart:_,targetAnchor:S,target:x,props:C}=e;if(x&&(l(_),l(S)),a&&l(w),d&16){const B=a||!isTeleportDisabled(C);for(let L=0;L{e.isMounted=!0}),onBeforeUnmount(()=>{e.isUnmounting=!0}),e}const TransitionHookValidator=[Function,Array],BaseTransitionPropsValidators={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:TransitionHookValidator,onEnter:TransitionHookValidator,onAfterEnter:TransitionHookValidator,onEnterCancelled:TransitionHookValidator,onBeforeLeave:TransitionHookValidator,onLeave:TransitionHookValidator,onAfterLeave:TransitionHookValidator,onLeaveCancelled:TransitionHookValidator,onBeforeAppear:TransitionHookValidator,onAppear:TransitionHookValidator,onAfterAppear:TransitionHookValidator,onAppearCancelled:TransitionHookValidator},recursiveGetSubtree=e=>{const t=e.subTree;return t.component?recursiveGetSubtree(t.component):t},BaseTransitionImpl={name:"BaseTransition",props:BaseTransitionPropsValidators,setup(e,{slots:t}){const n=getCurrentInstance(),o=useTransitionState();return()=>{const l=t.default&&getTransitionRawChildren(t.default(),!0);if(!l||!l.length)return;const a=findNonCommentChild(l),d=toRaw(e),{mode:y}=d;if(y&&y!=="in-out"&&y!=="out-in"&&y!=="default"&&warn$1(`invalid mode: ${y}`),o.isLeaving)return emptyPlaceholder(a);const w=getInnerChild$1(a);if(!w)return emptyPlaceholder(a);let _=resolveTransitionHooks(w,d,o,n,x=>_=x);w.type!==Comment&&setTransitionHooks(w,_);let S=n.subTree&&getInnerChild$1(n.subTree);if(S&&S.type!==Comment&&!isSameVNodeType(S,w)&&recursiveGetSubtree(n).type!==Comment){let x=resolveTransitionHooks(S,d,o,n);if(setTransitionHooks(S,x),y==="out-in"&&w.type!==Comment)return o.isLeaving=!0,x.afterLeave=()=>{o.isLeaving=!1,n.job.flags&8||n.update(),delete x.afterLeave,S=void 0},emptyPlaceholder(a);y==="in-out"&&w.type!==Comment?x.delayLeave=(C,B,L)=>{const F=getLeavingNodesForType(o,S);F[String(S.key)]=S,C[leaveCbKey]=()=>{B(),C[leaveCbKey]=void 0,delete _.delayedLeave,S=void 0},_.delayedLeave=()=>{L(),delete _.delayedLeave,S=void 0}}:S=void 0}else S&&(S=void 0);return a}}};function findNonCommentChild(e){let t=e[0];if(e.length>1){let n=!1;for(const o of e)if(o.type!==Comment){if(n){warn$1(" can only be used on a single element or component. Use for lists.");break}t=o,n=!0}}return t}const BaseTransition=BaseTransitionImpl;function getLeavingNodesForType(e,t){const{leavingVNodes:n}=e;let o=n.get(t.type);return o||(o=Object.create(null),n.set(t.type,o)),o}function resolveTransitionHooks(e,t,n,o,l){const{appear:a,mode:d,persisted:y=!1,onBeforeEnter:w,onEnter:_,onAfterEnter:S,onEnterCancelled:x,onBeforeLeave:C,onLeave:B,onAfterLeave:L,onLeaveCancelled:F,onBeforeAppear:q,onAppear:H,onAfterAppear:D,onAppearCancelled:j}=t,V=String(e.key),Q=getLeavingNodesForType(n,e),ae=(re,pe)=>{re&&callWithAsyncErrorHandling(re,o,9,pe)},ce=(re,pe)=>{const T=pe[1];ae(re,pe),isArray$a(re)?re.every(u=>u.length<=1)&&T():re.length<=1&&T()},ue={mode:d,persisted:y,beforeEnter(re){let pe=w;if(!n.isMounted)if(a)pe=q||w;else return;re[leaveCbKey]&&re[leaveCbKey](!0);const T=Q[V];T&&isSameVNodeType(e,T)&&T.el[leaveCbKey]&&T.el[leaveCbKey](),ae(pe,[re])},enter(re){let pe=_,T=S,u=x;if(!n.isMounted)if(a)pe=H||_,T=D||S,u=j||x;else return;let v=!1;const m=re[enterCbKey$1]=b=>{v||(v=!0,b?ae(u,[re]):ae(T,[re]),ue.delayedLeave&&ue.delayedLeave(),re[enterCbKey$1]=void 0)};pe?ce(pe,[re,m]):m()},leave(re,pe){const T=String(e.key);if(re[enterCbKey$1]&&re[enterCbKey$1](!0),n.isUnmounting)return pe();ae(C,[re]);let u=!1;const v=re[leaveCbKey]=m=>{u||(u=!0,pe(),m?ae(F,[re]):ae(L,[re]),re[leaveCbKey]=void 0,Q[T]===e&&delete Q[T])};Q[T]=e,B?ce(B,[re,v]):v()},clone(re){const pe=resolveTransitionHooks(re,t,n,o,l);return l&&l(pe),pe}};return ue}function emptyPlaceholder(e){if(isKeepAlive(e))return e=cloneVNode(e),e.children=null,e}function getInnerChild$1(e){if(!isKeepAlive(e))return isTeleport(e.type)&&e.children?findNonCommentChild(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&isFunction$2(n.default))return n.default()}}function setTransitionHooks(e,t){e.shapeFlag&6&&e.component?(e.transition=t,setTransitionHooks(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function getTransitionRawChildren(e,t=!1,n){let o=[],l=0;for(let a=0;a1)for(let a=0;aextend$1({name:e.name},t,{setup:e}))():e}function useId(){const e=getCurrentInstance();return e?(e.appContext.config.idPrefix||"v")+"-"+e.ids[0]+e.ids[1]++:(warn$1("useId() is called when there is no active component instance to be associated with."),"")}function markAsyncBoundary(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}const knownTemplateRefs=new WeakSet;function useTemplateRef(e){const t=getCurrentInstance(),n=shallowRef(null);if(t){const l=t.refs===EMPTY_OBJ?t.refs={}:t.refs;let a;(a=Object.getOwnPropertyDescriptor(l,e))&&!a.configurable?warn$1(`useTemplateRef('${e}') already exists.`):Object.defineProperty(l,e,{enumerable:!0,get:()=>n.value,set:d=>n.value=d})}else warn$1("useTemplateRef() is called when there is no active component instance to be associated with.");const o=readonly(n);return knownTemplateRefs.add(o),o}const pendingSetRefMap=new WeakMap;function setRef(e,t,n,o,l=!1){if(isArray$a(e)){e.forEach((F,q)=>setRef(F,t&&(isArray$a(t)?t[q]:t),n,o,l));return}if(isAsyncWrapper(o)&&!l){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&setRef(e,t,n,o.component.subTree);return}const a=o.shapeFlag&4?getComponentPublicInstance(o.component):o.el,d=l?null:a,{i:y,r:w}=e;if(!y){warn$1("Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.");return}const _=t&&t.r,S=y.refs===EMPTY_OBJ?y.refs={}:y.refs,x=y.setupState,C=toRaw(x),B=x===EMPTY_OBJ?NO:F=>(hasOwn$3(C,F)&&!isRef(C[F])&&warn$1(`Template ref "${F}" used on a non-ref value. It will not work in the production build.`),knownTemplateRefs.has(C[F])?!1:hasOwn$3(C,F)),L=F=>!knownTemplateRefs.has(F);if(_!=null&&_!==w){if(invalidatePendingSetRef(t),isString$2(_))S[_]=null,B(_)&&(x[_]=null);else if(isRef(_)){L(_)&&(_.value=null);const F=t;F.k&&(S[F.k]=null)}}if(isFunction$2(w))callWithErrorHandling(w,y,12,[d,S]);else{const F=isString$2(w),q=isRef(w);if(F||q){const H=()=>{if(e.f){const D=F?B(w)?x[w]:S[w]:L(w)||!e.k?w.value:S[e.k];if(l)isArray$a(D)&&remove(D,a);else if(isArray$a(D))D.includes(a)||D.push(a);else if(F)S[w]=[a],B(w)&&(x[w]=S[w]);else{const j=[a];L(w)&&(w.value=j),e.k&&(S[e.k]=j)}}else F?(S[w]=d,B(w)&&(x[w]=d)):q?(L(w)&&(w.value=d),e.k&&(S[e.k]=d)):warn$1("Invalid template ref type:",w,`(${typeof w})`)};if(d){const D=()=>{H(),pendingSetRefMap.delete(e)};D.id=-1,pendingSetRefMap.set(e,D),queuePostRenderEffect(D,n)}else invalidatePendingSetRef(e),H()}else warn$1("Invalid template ref type:",w,`(${typeof w})`)}}function invalidatePendingSetRef(e){const t=pendingSetRefMap.get(e);t&&(t.flags|=8,pendingSetRefMap.delete(e))}let hasLoggedMismatchError=!1;const logMismatchError=()=>{hasLoggedMismatchError||(console.error("Hydration completed but contains mismatches."),hasLoggedMismatchError=!0)},isSVGContainer=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",isMathMLContainer=e=>e.namespaceURI.includes("MathML"),getContainerType=e=>{if(e.nodeType===1){if(isSVGContainer(e))return"svg";if(isMathMLContainer(e))return"mathml"}},isComment=e=>e.nodeType===8;function createHydrationFunctions(e){const{mt:t,p:n,o:{patchProp:o,createText:l,nextSibling:a,parentNode:d,remove:y,insert:w,createComment:_}}=e,S=(j,V)=>{if(!V.hasChildNodes()){warn$1("Attempting to hydrate existing markup but container is empty. Performing full mount instead."),n(null,j,V),flushPostFlushCbs(),V._vnode=j;return}x(V.firstChild,j,null,null,null),flushPostFlushCbs(),V._vnode=j},x=(j,V,Q,ae,ce,ue=!1)=>{ue=ue||!!V.dynamicChildren;const re=isComment(j)&&j.data==="[",pe=()=>F(j,V,Q,ae,ce,re),{type:T,ref:u,shapeFlag:v,patchFlag:m}=V;let b=j.nodeType;V.el=j,def(j,"__vnode",V,!0),def(j,"__vueParentComponent",Q,!0),m===-2&&(ue=!1,V.dynamicChildren=null);let M=null;switch(T){case Text:b!==3?V.children===""?(w(V.el=l(""),d(j),j),M=j):M=pe():(j.data!==V.children&&(warn$1("Hydration text mismatch in",j.parentNode,` +`],...formatTraceEntry(n))}),t}function formatTraceEntry({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:"",o=e.component?e.component.parent==null:!1,l=` at <${formatComponentName(e.component,e.type,o)}`,a=">"+n;return e.props?[l,...formatProps(e.props),a]:[l+a]}function formatProps(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(o=>{t.push(...formatProp(o,e[o]))}),n.length>3&&t.push(" ..."),t}function formatProp(e,t,n){return isString$2(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?n?t:[`${e}=${t}`]:isRef(t)?(t=formatProp(e,toRaw(t.value),!0),n?t:[`${e}=Ref<`,t,">"]):isFunction$2(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=toRaw(t),n?t:[`${e}=`,t])}function assertNumber(e,t){e!==void 0&&(typeof e!="number"?warn$1(`${t} is not a valid number - got ${JSON.stringify(e)}.`):isNaN(e)&&warn$1(`${t} is NaN - the duration expression might be incorrect.`))}const ErrorCodes={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER",COMPONENT_UPDATE:15,15:"COMPONENT_UPDATE",APP_UNMOUNT_CLEANUP:16,16:"APP_UNMOUNT_CLEANUP"},ErrorTypeStrings$1={sp:"serverPrefetch hook",bc:"beforeCreate hook",c:"created hook",bm:"beforeMount hook",m:"mounted hook",bu:"beforeUpdate hook",u:"updated",bum:"beforeUnmount hook",um:"unmounted hook",a:"activated hook",da:"deactivated hook",ec:"errorCaptured hook",rtc:"renderTracked hook",rtg:"renderTriggered hook",0:"setup function",1:"render function",2:"watcher getter",3:"watcher callback",4:"watcher cleanup function",5:"native event handler",6:"component event handler",7:"vnode hook",8:"directive hook",9:"transition hook",10:"app errorHandler",11:"app warnHandler",12:"ref function",13:"async component loader",14:"scheduler flush",15:"component update",16:"app unmount cleanup function"};function callWithErrorHandling(e,t,n,o){try{return o?e(...o):e()}catch(l){handleError(l,t,n)}}function callWithAsyncErrorHandling(e,t,n,o){if(isFunction$2(e)){const l=callWithErrorHandling(e,t,n,o);return l&&isPromise$1(l)&&l.catch(a=>{handleError(a,t,n)}),l}if(isArray$a(e)){const l=[];for(let a=0;a>>1,l=queue[o],a=getId(l);a=getId(n)?queue.push(e):queue.splice(findInsertionIndex$1(t),0,e),e.flags|=1,queueFlush()}}function queueFlush(){currentFlushPromise||(currentFlushPromise=resolvedPromise.then(flushJobs))}function queuePostFlushCb(e){isArray$a(e)?pendingPostFlushCbs.push(...e):activePostFlushCbs&&e.id===-1?activePostFlushCbs.splice(postFlushIndex+1,0,e):e.flags&1||(pendingPostFlushCbs.push(e),e.flags|=1),queueFlush()}function flushPreFlushCbs(e,t,n=flushIndex+1){for(t=t||new Map;ngetId(n)-getId(o));if(pendingPostFlushCbs.length=0,activePostFlushCbs){activePostFlushCbs.push(...t);return}for(activePostFlushCbs=t,e=e||new Map,postFlushIndex=0;postFlushIndexe.id==null?e.flags&2?-1:1/0:e.id;function flushJobs(e){e=e||new Map;const t=n=>checkRecursiveUpdates(e,n);try{for(flushIndex=0;flushIndexRECURSION_LIMIT){const o=t.i,l=o&&getComponentName(o.type);return handleError(`Maximum recursive updates exceeded${l?` in component <${l}>`:""}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,null,10),!0}return e.set(t,n+1),!1}let isHmrUpdating=!1;const hmrDirtyComponents=new Map;getGlobalThis().__VUE_HMR_RUNTIME__={createRecord:tryWrap(createRecord),rerender:tryWrap(rerender),reload:tryWrap(reload)};const map$2=new Map;function registerHMR(e){const t=e.type.__hmrId;let n=map$2.get(t);n||(createRecord(t,e.type),n=map$2.get(t)),n.instances.add(e)}function unregisterHMR(e){map$2.get(e.type.__hmrId).instances.delete(e)}function createRecord(e,t){return map$2.has(e)?!1:(map$2.set(e,{initialDef:normalizeClassComponent(t),instances:new Set}),!0)}function normalizeClassComponent(e){return isClassComponent(e)?e.__vccOpts:e}function rerender(e,t){const n=map$2.get(e);n&&(n.initialDef.render=t,[...n.instances].forEach(o=>{t&&(o.render=t,normalizeClassComponent(o.type).render=t),o.renderCache=[],isHmrUpdating=!0,o.update(),isHmrUpdating=!1}))}function reload(e,t){const n=map$2.get(e);if(!n)return;t=normalizeClassComponent(t),updateComponentDef(n.initialDef,t);const o=[...n.instances];for(let l=0;l{isHmrUpdating=!0,a.parent.update(),isHmrUpdating=!1,y.delete(a)}):a.appContext.reload?a.appContext.reload():typeof window<"u"?window.location.reload():console.warn("[HMR] Root or manually mounted instance modified. Full reload required."),a.root.ce&&a!==a.root&&a.root.ce._removeChildStyle(d)}queuePostFlushCb(()=>{hmrDirtyComponents.clear()})}function updateComponentDef(e,t){extend$1(e,t);for(const n in e)n!=="__file"&&!(n in t)&&delete e[n]}function tryWrap(e){return(t,n)=>{try{return e(t,n)}catch(o){console.error(o),console.warn("[HMR] Something went wrong during Vue component hot-reload. Full reload required.")}}}let devtools$1,buffer$1=[],devtoolsNotInstalled=!1;function emit$1(e,...t){devtools$1?devtools$1.emit(e,...t):devtoolsNotInstalled||buffer$1.push({event:e,args:t})}function setDevtoolsHook$1(e,t){var n,o;devtools$1=e,devtools$1?(devtools$1.enabled=!0,buffer$1.forEach(({event:l,args:a})=>devtools$1.emit(l,...a)),buffer$1=[]):typeof window<"u"&&window.HTMLElement&&!((o=(n=window.navigator)==null?void 0:n.userAgent)!=null&&o.includes("jsdom"))?((t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(a=>{setDevtoolsHook$1(a,t)}),setTimeout(()=>{devtools$1||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,devtoolsNotInstalled=!0,buffer$1=[])},3e3)):(devtoolsNotInstalled=!0,buffer$1=[])}function devtoolsInitApp(e,t){emit$1("app:init",e,t,{Fragment,Text,Comment,Static})}function devtoolsUnmountApp(e){emit$1("app:unmount",e)}const devtoolsComponentAdded=createDevtoolsComponentHook("component:added"),devtoolsComponentUpdated=createDevtoolsComponentHook("component:updated"),_devtoolsComponentRemoved=createDevtoolsComponentHook("component:removed"),devtoolsComponentRemoved=e=>{devtools$1&&typeof devtools$1.cleanupBuffer=="function"&&!devtools$1.cleanupBuffer(e)&&_devtoolsComponentRemoved(e)};/*! #__NO_SIDE_EFFECTS__ */function createDevtoolsComponentHook(e){return t=>{emit$1(e,t.appContext.app,t.uid,t.parent?t.parent.uid:void 0,t)}}const devtoolsPerfStart=createDevtoolsPerformanceHook("perf:start"),devtoolsPerfEnd=createDevtoolsPerformanceHook("perf:end");function createDevtoolsPerformanceHook(e){return(t,n,o)=>{emit$1(e,t.appContext.app,t.uid,t,n,o)}}function devtoolsComponentEmit(e,t,n){emit$1("component:emit",e.appContext.app,e,t,n)}let currentRenderingInstance=null,currentScopeId=null;function setCurrentRenderingInstance(e){const t=currentRenderingInstance;return currentRenderingInstance=e,currentScopeId=e&&e.type.__scopeId||null,t}function pushScopeId(e){currentScopeId=e}function popScopeId(){currentScopeId=null}const withScopeId=e=>withCtx;function withCtx(e,t=currentRenderingInstance,n){if(!t||e._n)return e;const o=(...l)=>{o._d&&setBlockTracking(-1);const a=setCurrentRenderingInstance(t);let d;try{d=e(...l)}finally{setCurrentRenderingInstance(a),o._d&&setBlockTracking(1)}return devtoolsComponentUpdated(t),d};return o._n=!0,o._c=!0,o._d=!0,o}function validateDirectiveName(e){isBuiltInDirective(e)&&warn$1("Do not use built-in directive ids as custom directive id: "+e)}function withDirectives(e,t){if(currentRenderingInstance===null)return warn$1("withDirectives can only be used inside render functions."),e;const n=getComponentPublicInstance(currentRenderingInstance),o=e.dirs||(e.dirs=[]);for(let l=0;le.__isTeleport,isTeleportDisabled=e=>e&&(e.disabled||e.disabled===""),isTeleportDeferred=e=>e&&(e.defer||e.defer===""),isTargetSVG=e=>typeof SVGElement<"u"&&e instanceof SVGElement,isTargetMathML=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,resolveTarget=(e,t)=>{const n=e&&e.to;if(isString$2(n))if(t){const o=t(n);return!o&&!isTeleportDisabled(e)&&warn$1(`Failed to locate Teleport target with selector "${n}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`),o}else return warn$1("Current renderer does not support string target for Teleports. (missing querySelector renderer option)"),null;else return!n&&!isTeleportDisabled(e)&&warn$1(`Invalid Teleport target: ${n}`),n},TeleportImpl={name:"Teleport",__isTeleport:!0,process(e,t,n,o,l,a,d,y,w,_){const{mc:S,pc:E,pbc:C,o:{insert:B,querySelector:L,createText:F,createComment:q}}=_,H=isTeleportDisabled(t.props);let{shapeFlag:D,children:j,dynamicChildren:V}=t;if(isHmrUpdating&&(w=!1,V=null),e==null){const Q=t.el=q("teleport start"),ae=t.anchor=q("teleport end");B(Q,n,o),B(ae,n,o);const ce=(re,pe)=>{D&16&&(l&&l.isCE&&(l.ce._teleportTarget=re),S(j,re,pe,l,a,d,y,w))},ue=()=>{const re=t.target=resolveTarget(t.props,L),pe=prepareAnchor(re,t,F,B);re?(d!=="svg"&&isTargetSVG(re)?d="svg":d!=="mathml"&&isTargetMathML(re)&&(d="mathml"),H||(ce(re,pe),updateCssVars(t,!1))):H||warn$1("Invalid Teleport target on mount:",re,`(${typeof re})`)};H&&(ce(n,ae),updateCssVars(t,!0)),isTeleportDeferred(t.props)?(t.el.__isMounted=!1,queuePostRenderEffect(()=>{ue(),delete t.el.__isMounted},a)):ue()}else{if(isTeleportDeferred(t.props)&&e.el.__isMounted===!1){queuePostRenderEffect(()=>{TeleportImpl.process(e,t,n,o,l,a,d,y,w,_)},a);return}t.el=e.el,t.targetStart=e.targetStart;const Q=t.anchor=e.anchor,ae=t.target=e.target,ce=t.targetAnchor=e.targetAnchor,ue=isTeleportDisabled(e.props),re=ue?n:ae,pe=ue?Q:ce;if(d==="svg"||isTargetSVG(ae)?d="svg":(d==="mathml"||isTargetMathML(ae))&&(d="mathml"),V?(C(e.dynamicChildren,V,re,l,a,d,y),traverseStaticChildren(e,t,!1)):w||E(e,t,re,pe,l,a,d,y,!1),H)ue?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):moveTeleport(t,n,Q,_,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const T=t.target=resolveTarget(t.props,L);T?moveTeleport(t,T,null,_,0):warn$1("Invalid Teleport target on update:",ae,`(${typeof ae})`)}else ue&&moveTeleport(t,ae,ce,_,1);updateCssVars(t,H)}},remove(e,t,n,{um:o,o:{remove:l}},a){const{shapeFlag:d,children:y,anchor:w,targetStart:_,targetAnchor:S,target:E,props:C}=e;if(E&&(l(_),l(S)),a&&l(w),d&16){const B=a||!isTeleportDisabled(C);for(let L=0;L{e.isMounted=!0}),onBeforeUnmount(()=>{e.isUnmounting=!0}),e}const TransitionHookValidator=[Function,Array],BaseTransitionPropsValidators={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:TransitionHookValidator,onEnter:TransitionHookValidator,onAfterEnter:TransitionHookValidator,onEnterCancelled:TransitionHookValidator,onBeforeLeave:TransitionHookValidator,onLeave:TransitionHookValidator,onAfterLeave:TransitionHookValidator,onLeaveCancelled:TransitionHookValidator,onBeforeAppear:TransitionHookValidator,onAppear:TransitionHookValidator,onAfterAppear:TransitionHookValidator,onAppearCancelled:TransitionHookValidator},recursiveGetSubtree=e=>{const t=e.subTree;return t.component?recursiveGetSubtree(t.component):t},BaseTransitionImpl={name:"BaseTransition",props:BaseTransitionPropsValidators,setup(e,{slots:t}){const n=getCurrentInstance(),o=useTransitionState();return()=>{const l=t.default&&getTransitionRawChildren(t.default(),!0);if(!l||!l.length)return;const a=findNonCommentChild(l),d=toRaw(e),{mode:y}=d;if(y&&y!=="in-out"&&y!=="out-in"&&y!=="default"&&warn$1(`invalid mode: ${y}`),o.isLeaving)return emptyPlaceholder(a);const w=getInnerChild$1(a);if(!w)return emptyPlaceholder(a);let _=resolveTransitionHooks(w,d,o,n,E=>_=E);w.type!==Comment&&setTransitionHooks(w,_);let S=n.subTree&&getInnerChild$1(n.subTree);if(S&&S.type!==Comment&&!isSameVNodeType(w,S)&&recursiveGetSubtree(n).type!==Comment){let E=resolveTransitionHooks(S,d,o,n);if(setTransitionHooks(S,E),y==="out-in"&&w.type!==Comment)return o.isLeaving=!0,E.afterLeave=()=>{o.isLeaving=!1,n.job.flags&8||n.update(),delete E.afterLeave,S=void 0},emptyPlaceholder(a);y==="in-out"&&w.type!==Comment?E.delayLeave=(C,B,L)=>{const F=getLeavingNodesForType(o,S);F[String(S.key)]=S,C[leaveCbKey]=()=>{B(),C[leaveCbKey]=void 0,delete _.delayedLeave,S=void 0},_.delayedLeave=()=>{L(),delete _.delayedLeave,S=void 0}}:S=void 0}else S&&(S=void 0);return a}}};function findNonCommentChild(e){let t=e[0];if(e.length>1){let n=!1;for(const o of e)if(o.type!==Comment){if(n){warn$1(" can only be used on a single element or component. Use for lists.");break}t=o,n=!0}}return t}const BaseTransition=BaseTransitionImpl;function getLeavingNodesForType(e,t){const{leavingVNodes:n}=e;let o=n.get(t.type);return o||(o=Object.create(null),n.set(t.type,o)),o}function resolveTransitionHooks(e,t,n,o,l){const{appear:a,mode:d,persisted:y=!1,onBeforeEnter:w,onEnter:_,onAfterEnter:S,onEnterCancelled:E,onBeforeLeave:C,onLeave:B,onAfterLeave:L,onLeaveCancelled:F,onBeforeAppear:q,onAppear:H,onAfterAppear:D,onAppearCancelled:j}=t,V=String(e.key),Q=getLeavingNodesForType(n,e),ae=(re,pe)=>{re&&callWithAsyncErrorHandling(re,o,9,pe)},ce=(re,pe)=>{const T=pe[1];ae(re,pe),isArray$a(re)?re.every(u=>u.length<=1)&&T():re.length<=1&&T()},ue={mode:d,persisted:y,beforeEnter(re){let pe=w;if(!n.isMounted)if(a)pe=q||w;else return;re[leaveCbKey]&&re[leaveCbKey](!0);const T=Q[V];T&&isSameVNodeType(e,T)&&T.el[leaveCbKey]&&T.el[leaveCbKey](),ae(pe,[re])},enter(re){let pe=_,T=S,u=E;if(!n.isMounted)if(a)pe=H||_,T=D||S,u=j||E;else return;let v=!1;const m=re[enterCbKey$1]=b=>{v||(v=!0,b?ae(u,[re]):ae(T,[re]),ue.delayedLeave&&ue.delayedLeave(),re[enterCbKey$1]=void 0)};pe?ce(pe,[re,m]):m()},leave(re,pe){const T=String(e.key);if(re[enterCbKey$1]&&re[enterCbKey$1](!0),n.isUnmounting)return pe();ae(C,[re]);let u=!1;const v=re[leaveCbKey]=m=>{u||(u=!0,pe(),m?ae(F,[re]):ae(L,[re]),re[leaveCbKey]=void 0,Q[T]===e&&delete Q[T])};Q[T]=e,B?ce(B,[re,v]):v()},clone(re){const pe=resolveTransitionHooks(re,t,n,o,l);return l&&l(pe),pe}};return ue}function emptyPlaceholder(e){if(isKeepAlive(e))return e=cloneVNode(e),e.children=null,e}function getInnerChild$1(e){if(!isKeepAlive(e))return isTeleport(e.type)&&e.children?findNonCommentChild(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&isFunction$2(n.default))return n.default()}}function setTransitionHooks(e,t){e.shapeFlag&6&&e.component?(e.transition=t,setTransitionHooks(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function getTransitionRawChildren(e,t=!1,n){let o=[],l=0;for(let a=0;a1)for(let a=0;aextend$1({name:e.name},t,{setup:e}))():e}function useId(){const e=getCurrentInstance();return e?(e.appContext.config.idPrefix||"v")+"-"+e.ids[0]+e.ids[1]++:(warn$1("useId() is called when there is no active component instance to be associated with."),"")}function markAsyncBoundary(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}const knownTemplateRefs=new WeakSet;function useTemplateRef(e){const t=getCurrentInstance(),n=shallowRef(null);if(t){const l=t.refs===EMPTY_OBJ?t.refs={}:t.refs;let a;(a=Object.getOwnPropertyDescriptor(l,e))&&!a.configurable?warn$1(`useTemplateRef('${e}') already exists.`):Object.defineProperty(l,e,{enumerable:!0,get:()=>n.value,set:d=>n.value=d})}else warn$1("useTemplateRef() is called when there is no active component instance to be associated with.");const o=readonly(n);return knownTemplateRefs.add(o),o}function setRef(e,t,n,o,l=!1){if(isArray$a(e)){e.forEach((L,F)=>setRef(L,t&&(isArray$a(t)?t[F]:t),n,o,l));return}if(isAsyncWrapper(o)&&!l){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&setRef(e,t,n,o.component.subTree);return}const a=o.shapeFlag&4?getComponentPublicInstance(o.component):o.el,d=l?null:a,{i:y,r:w}=e;if(!y){warn$1("Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.");return}const _=t&&t.r,S=y.refs===EMPTY_OBJ?y.refs={}:y.refs,E=y.setupState,C=toRaw(E),B=E===EMPTY_OBJ?()=>!1:L=>(hasOwn$3(C,L)&&!isRef(C[L])&&warn$1(`Template ref "${L}" used on a non-ref value. It will not work in the production build.`),knownTemplateRefs.has(C[L])?!1:hasOwn$3(C,L));if(_!=null&&_!==w&&(isString$2(_)?(S[_]=null,B(_)&&(E[_]=null)):isRef(_)&&(_.value=null)),isFunction$2(w))callWithErrorHandling(w,y,12,[d,S]);else{const L=isString$2(w),F=isRef(w);if(L||F){const q=()=>{if(e.f){const H=L?B(w)?E[w]:S[w]:w.value;l?isArray$a(H)&&remove(H,a):isArray$a(H)?H.includes(a)||H.push(a):L?(S[w]=[a],B(w)&&(E[w]=S[w])):(w.value=[a],e.k&&(S[e.k]=w.value))}else L?(S[w]=d,B(w)&&(E[w]=d)):F?(w.value=d,e.k&&(S[e.k]=d)):warn$1("Invalid template ref type:",w,`(${typeof w})`)};d?(q.id=-1,queuePostRenderEffect(q,n)):q()}else warn$1("Invalid template ref type:",w,`(${typeof w})`)}}let hasLoggedMismatchError=!1;const logMismatchError=()=>{hasLoggedMismatchError||(console.error("Hydration completed but contains mismatches."),hasLoggedMismatchError=!0)},isSVGContainer=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",isMathMLContainer=e=>e.namespaceURI.includes("MathML"),getContainerType=e=>{if(e.nodeType===1){if(isSVGContainer(e))return"svg";if(isMathMLContainer(e))return"mathml"}},isComment=e=>e.nodeType===8;function createHydrationFunctions(e){const{mt:t,p:n,o:{patchProp:o,createText:l,nextSibling:a,parentNode:d,remove:y,insert:w,createComment:_}}=e,S=(j,V)=>{if(!V.hasChildNodes()){warn$1("Attempting to hydrate existing markup but container is empty. Performing full mount instead."),n(null,j,V),flushPostFlushCbs(),V._vnode=j;return}E(V.firstChild,j,null,null,null),flushPostFlushCbs(),V._vnode=j},E=(j,V,Q,ae,ce,ue=!1)=>{ue=ue||!!V.dynamicChildren;const re=isComment(j)&&j.data==="[",pe=()=>F(j,V,Q,ae,ce,re),{type:T,ref:u,shapeFlag:v,patchFlag:m}=V;let b=j.nodeType;V.el=j,def(j,"__vnode",V,!0),def(j,"__vueParentComponent",Q,!0),m===-2&&(ue=!1,V.dynamicChildren=null);let M=null;switch(T){case Text:b!==3?V.children===""?(w(V.el=l(""),d(j),j),M=j):M=pe():(j.data!==V.children&&(warn$1("Hydration text mismatch in",j.parentNode,` - rendered on server: ${JSON.stringify(j.data)} - - expected on client: ${JSON.stringify(V.children)}`),logMismatchError(),j.data=V.children),M=a(j));break;case Comment:D(j)?(M=a(j),H(V.el=j.content.firstChild,j,Q)):b!==8||re?M=pe():M=a(j);break;case Static:if(re&&(j=a(j),b=j.nodeType),b===1||b===3){M=j;const A=!V.children.length;for(let O=0;O{ue=ue||!!V.dynamicChildren;const{type:re,props:pe,patchFlag:T,shapeFlag:u,dirs:v,transition:m}=V,b=re==="input"||re==="option";{v&&invokeDirectiveHook(V,null,Q,"created");let M=!1;if(D(j)){M=needTransition(null,m)&&Q&&Q.vnode.props&&Q.vnode.props.appear;const O=j.content.firstChild;if(M){const $=O.getAttribute("class");$&&(O.$cls=$),m.beforeEnter(O)}H(O,j,Q),V.el=j=O}if(u&16&&!(pe&&(pe.innerHTML||pe.textContent))){let O=B(j.firstChild,V,j,Q,ae,ce,ue),$=!1;for(;O;){isMismatchAllowed(j,1)||($||(warn$1("Hydration children mismatch on",j,` + - expected on client: ${JSON.stringify(V.children)}`),logMismatchError(),j.data=V.children),M=a(j));break;case Comment:D(j)?(M=a(j),H(V.el=j.content.firstChild,j,Q)):b!==8||re?M=pe():M=a(j);break;case Static:if(re&&(j=a(j),b=j.nodeType),b===1||b===3){M=j;const A=!V.children.length;for(let O=0;O{ue=ue||!!V.dynamicChildren;const{type:re,props:pe,patchFlag:T,shapeFlag:u,dirs:v,transition:m}=V,b=re==="input"||re==="option";{v&&invokeDirectiveHook(V,null,Q,"created");let M=!1;if(D(j)){M=needTransition(null,m)&&Q&&Q.vnode.props&&Q.vnode.props.appear;const O=j.content.firstChild;if(M){const $=O.getAttribute("class");$&&(O.$cls=$),m.beforeEnter(O)}H(O,j,Q),V.el=j=O}if(u&16&&!(pe&&(pe.innerHTML||pe.textContent))){let O=B(j.firstChild,V,j,Q,ae,ce,ue),$=!1;for(;O;){isMismatchAllowed(j,1)||($||(warn$1("Hydration children mismatch on",j,` Server rendered element contains more child nodes than client vdom.`),$=!0),logMismatchError());const c=O;O=O.nextSibling,y(c)}}else if(u&8){let O=V.children;O[0]===` `&&(j.tagName==="PRE"||j.tagName==="TEXTAREA")&&(O=O.slice(1)),j.textContent!==O&&(isMismatchAllowed(j,0)||(warn$1("Hydration text content mismatch on",j,` - rendered on server: ${j.textContent} - - expected on client: ${V.children}`),logMismatchError()),j.textContent=V.children)}if(pe){const O=j.tagName.includes("-");for(const $ in pe)!(v&&v.some(c=>c.dir.created))&&propHasMismatch(j,$,pe[$],V,Q)&&logMismatchError(),(b&&($.endsWith("value")||$==="indeterminate")||isOn($)&&!isReservedProp($)||$[0]==="."||O)&&o(j,$,null,pe[$],void 0,Q)}let A;(A=pe&&pe.onVnodeBeforeMount)&&invokeVNodeHook(A,Q,V),v&&invokeDirectiveHook(V,null,Q,"beforeMount"),((A=pe&&pe.onVnodeMounted)||v||M)&&queueEffectWithSuspense(()=>{A&&invokeVNodeHook(A,Q,V),M&&m.enter(j),v&&invokeDirectiveHook(V,null,Q,"mounted")},ae)}return j.nextSibling},B=(j,V,Q,ae,ce,ue,re)=>{re=re||!!V.dynamicChildren;const pe=V.children,T=pe.length;let u=!1;for(let v=0;vc.dir.created))&&propHasMismatch(j,$,pe[$],V,Q)&&logMismatchError(),(b&&($.endsWith("value")||$==="indeterminate")||isOn($)&&!isReservedProp($)||$[0]==="."||O)&&o(j,$,null,pe[$],void 0,Q)}let A;(A=pe&&pe.onVnodeBeforeMount)&&invokeVNodeHook(A,Q,V),v&&invokeDirectiveHook(V,null,Q,"beforeMount"),((A=pe&&pe.onVnodeMounted)||v||M)&&queueEffectWithSuspense(()=>{A&&invokeVNodeHook(A,Q,V),M&&m.enter(j),v&&invokeDirectiveHook(V,null,Q,"mounted")},ae)}return j.nextSibling},B=(j,V,Q,ae,ce,ue,re)=>{re=re||!!V.dynamicChildren;const pe=V.children,T=pe.length;let u=!1;for(let v=0;v{const{slotScopeIds:re}=V;re&&(ce=ce?ce.concat(re):re);const pe=d(j),T=B(a(j),V,pe,Q,ae,ce,ue);return T&&isComment(T)&&T.data==="]"?a(V.anchor=T):(logMismatchError(),w(V.anchor=_("]"),pe,T),T)},F=(j,V,Q,ae,ce,ue)=>{if(isMismatchAllowed(j.parentElement,1)||(warn$1(`Hydration node mismatch: - rendered on server:`,j,j.nodeType===3?"(text)":isComment(j)&&j.data==="["?"(start of fragment)":"",` -- expected on client:`,V.type),logMismatchError()),V.el=null,ue){const T=q(j);for(;;){const u=a(j);if(u&&u!==T)y(u);else break}}const re=a(j),pe=d(j);return y(j),n(null,V,pe,re,Q,ae,getContainerType(pe),ce),Q&&(Q.vnode.el=V.el,updateHOCHostEl(Q,V.el)),re},q=(j,V="[",Q="]")=>{let ae=0;for(;j;)if(j=a(j),j&&isComment(j)&&(j.data===V&&ae++,j.data===Q)){if(ae===0)return a(j);ae--}return j},H=(j,V,Q)=>{const ae=V.parentNode;ae&&ae.replaceChild(j,V);let ce=Q;for(;ce;)ce.vnode.el===V&&(ce.vnode.el=ce.subTree.el=j),ce=ce.parent},D=j=>j.nodeType===1&&j.tagName==="TEMPLATE";return[S,x]}function propHasMismatch(e,t,n,o,l){let a,d,y,w;if(t==="class")e.$cls?(y=e.$cls,delete e.$cls):y=e.getAttribute("class"),w=normalizeClass(n),isSetEqual(toClassSet(y||""),toClassSet(w))||(a=2,d="class");else if(t==="style"){y=e.getAttribute("style")||"",w=isString$2(n)?n:stringifyStyle(normalizeStyle(n));const _=toStyleMap(y),S=toStyleMap(w);if(o.dirs)for(const{dir:x,value:C}of o.dirs)x.name==="show"&&!C&&S.set("display","none");l&&resolveCssVars(l,o,S),isMapEqual(_,S)||(a=3,d="style")}else(e instanceof SVGElement&&isKnownSvgAttr(t)||e instanceof HTMLElement&&(isBooleanAttr(t)||isKnownHtmlAttr(t)))&&(isBooleanAttr(t)?(y=e.hasAttribute(t),w=includeBooleanAttr(n)):n==null?(y=e.hasAttribute(t),w=!1):(e.hasAttribute(t)?y=e.getAttribute(t):t==="value"&&e.tagName==="TEXTAREA"?y=e.value:y=!1,w=isRenderableAttrValue(n)?String(n):!1),y!==w&&(a=4,d=t));if(a!=null&&!isMismatchAllowed(e,a)){const _=C=>C===!1?"(not rendered)":`${d}="${C}"`,S=`Hydration ${MismatchTypeString[a]} mismatch on`,x=` +- expected on client:`,V.type),logMismatchError()),V.el=null,ue){const T=q(j);for(;;){const u=a(j);if(u&&u!==T)y(u);else break}}const re=a(j),pe=d(j);return y(j),n(null,V,pe,re,Q,ae,getContainerType(pe),ce),Q&&(Q.vnode.el=V.el,updateHOCHostEl(Q,V.el)),re},q=(j,V="[",Q="]")=>{let ae=0;for(;j;)if(j=a(j),j&&isComment(j)&&(j.data===V&&ae++,j.data===Q)){if(ae===0)return a(j);ae--}return j},H=(j,V,Q)=>{const ae=V.parentNode;ae&&ae.replaceChild(j,V);let ce=Q;for(;ce;)ce.vnode.el===V&&(ce.vnode.el=ce.subTree.el=j),ce=ce.parent},D=j=>j.nodeType===1&&j.tagName==="TEMPLATE";return[S,E]}function propHasMismatch(e,t,n,o,l){let a,d,y,w;if(t==="class")e.$cls?(y=e.$cls,delete e.$cls):y=e.getAttribute("class"),w=normalizeClass(n),isSetEqual(toClassSet(y||""),toClassSet(w))||(a=2,d="class");else if(t==="style"){y=e.getAttribute("style")||"",w=isString$2(n)?n:stringifyStyle(normalizeStyle(n));const _=toStyleMap(y),S=toStyleMap(w);if(o.dirs)for(const{dir:E,value:C}of o.dirs)E.name==="show"&&!C&&S.set("display","none");l&&resolveCssVars(l,o,S),isMapEqual(_,S)||(a=3,d="style")}else(e instanceof SVGElement&&isKnownSvgAttr(t)||e instanceof HTMLElement&&(isBooleanAttr(t)||isKnownHtmlAttr(t)))&&(isBooleanAttr(t)?(y=e.hasAttribute(t),w=includeBooleanAttr(n)):n==null?(y=e.hasAttribute(t),w=!1):(e.hasAttribute(t)?y=e.getAttribute(t):t==="value"&&e.tagName==="TEXTAREA"?y=e.value:y=!1,w=isRenderableAttrValue(n)?String(n):!1),y!==w&&(a=4,d=t));if(a!=null&&!isMismatchAllowed(e,a)){const _=C=>C===!1?"(not rendered)":`${d}="${C}"`,S=`Hydration ${MismatchTypeString[a]} mismatch on`,E=` - rendered on server: ${_(y)} - expected on client: ${_(w)} Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead. - You should fix the source of the mismatch.`;return warn$1(S,e,x),!0}return!1}function toClassSet(e){return new Set(e.trim().split(/\s+/))}function isSetEqual(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function toStyleMap(e){const t=new Map;for(const n of e.split(";")){let[o,l]=n.split(":");o=o.trim(),l=l&&l.trim(),o&&l&&t.set(o,l)}return t}function isMapEqual(e,t){if(e.size!==t.size)return!1;for(const[n,o]of e)if(o!==t.get(n))return!1;return!0}function resolveCssVars(e,t,n){const o=e.subTree;if(e.getCssVars&&(t===o||o&&o.type===Fragment&&o.children.includes(t))){const l=e.getCssVars();for(const a in l){const d=normalizeCssVarValue(l[a]);n.set(`--${getEscapedCssVarName(a,!1)}`,d)}}t===o&&e.parent&&resolveCssVars(e.parent,e.vnode,n)}const allowMismatchAttr="data-allow-mismatch",MismatchTypeString={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function isMismatchAllowed(e,t){if(t===0||t===1)for(;e&&!e.hasAttribute(allowMismatchAttr);)e=e.parentElement;const n=e&&e.getAttribute(allowMismatchAttr);if(n==null)return!1;if(n==="")return!0;{const o=n.split(",");return t===0&&o.includes("children")?!0:o.includes(MismatchTypeString[t])}}const requestIdleCallback=getGlobalThis().requestIdleCallback||(e=>setTimeout(e,1)),cancelIdleCallback=getGlobalThis().cancelIdleCallback||(e=>clearTimeout(e)),hydrateOnIdle=(e=1e4)=>t=>{const n=requestIdleCallback(t,{timeout:e});return()=>cancelIdleCallback(n)};function elementIsVisibleInViewport(e){const{top:t,left:n,bottom:o,right:l}=e.getBoundingClientRect(),{innerHeight:a,innerWidth:d}=window;return(t>0&&t0&&o0&&n0&&l(t,n)=>{const o=new IntersectionObserver(l=>{for(const a of l)if(a.isIntersecting){o.disconnect(),t();break}},e);return n(l=>{if(l instanceof Element){if(elementIsVisibleInViewport(l))return t(),o.disconnect(),!1;o.observe(l)}}),()=>o.disconnect()},hydrateOnMediaQuery=e=>t=>{if(e){const n=matchMedia(e);if(n.matches)t();else return n.addEventListener("change",t,{once:!0}),()=>n.removeEventListener("change",t)}},hydrateOnInteraction=(e=[])=>(t,n)=>{isString$2(e)&&(e=[e]);let o=!1;const l=d=>{o||(o=!0,a(),t(),d.target.dispatchEvent(new d.constructor(d.type,d)))},a=()=>{n(d=>{for(const y of e)d.removeEventListener(y,l)})};return n(d=>{for(const y of e)d.addEventListener(y,l,{once:!0})}),a};function forEachElement(e,t){if(isComment(e)&&e.data==="["){let n=1,o=e.nextSibling;for(;o;){if(o.nodeType===1){if(t(o)===!1)break}else if(isComment(o))if(o.data==="]"){if(--n===0)break}else o.data==="["&&n++;o=o.nextSibling}}else t(e)}const isAsyncWrapper=e=>!!e.type.__asyncLoader;function defineAsyncComponent(e){isFunction$2(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:o,delay:l=200,hydrate:a,timeout:d,suspensible:y=!0,onError:w}=e;let _=null,S,x=0;const C=()=>(x++,_=null,B()),B=()=>{let L;return _||(L=_=t().catch(F=>{if(F=F instanceof Error?F:new Error(String(F)),w)return new Promise((q,H)=>{w(F,()=>q(C()),()=>H(F),x+1)});throw F}).then(F=>{if(L!==_&&_)return _;if(F||warn$1("Async component loader resolved to undefined. If you are using retry(), make sure to return its return value."),F&&(F.__esModule||F[Symbol.toStringTag]==="Module")&&(F=F.default),F&&!isObject$3(F)&&!isFunction$2(F))throw new Error(`Invalid async component load result: ${F}`);return S=F,F}))};return defineComponent({name:"AsyncComponentWrapper",__asyncLoader:B,__asyncHydrate(L,F,q){let H=!1;(F.bu||(F.bu=[])).push(()=>H=!0);const D=()=>{if(H){warn$1(`Skipping lazy hydration for component '${getComponentName(S)||S.__file}': it was updated before lazy hydration performed.`);return}q()},j=a?()=>{const V=a(D,Q=>forEachElement(L,Q));V&&(F.bum||(F.bum=[])).push(V)}:D;S?j():B().then(()=>!F.isUnmounted&&j())},get __asyncResolved(){return S},setup(){const L=currentInstance;if(markAsyncBoundary(L),S)return()=>createInnerComp(S,L);const F=j=>{_=null,handleError(j,L,13,!o)};if(y&&L.suspense||isInSSRComponentSetup)return B().then(j=>()=>createInnerComp(j,L)).catch(j=>(F(j),()=>o?createVNode(o,{error:j}):null));const q=ref$1(!1),H=ref$1(),D=ref$1(!!l);return l&&setTimeout(()=>{D.value=!1},l),d!=null&&setTimeout(()=>{if(!q.value&&!H.value){const j=new Error(`Async component timed out after ${d}ms.`);F(j),H.value=j}},d),B().then(()=>{q.value=!0,L.parent&&isKeepAlive(L.parent.vnode)&&L.parent.update()}).catch(j=>{F(j),H.value=j}),()=>{if(q.value&&S)return createInnerComp(S,L);if(H.value&&o)return createVNode(o,{error:H.value});if(n&&!D.value)return createVNode(n)}}})}function createInnerComp(e,t){const{ref:n,props:o,children:l,ce:a}=t.vnode,d=createVNode(e,o,l);return d.ref=n,d.ce=a,delete t.vnode.ce,d}const isKeepAlive=e=>e.type.__isKeepAlive,KeepAliveImpl={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const n=getCurrentInstance(),o=n.ctx;if(!o.renderer)return()=>{const D=t.default&&t.default();return D&&D.length===1?D[0]:D};const l=new Map,a=new Set;let d=null;n.__v_cache=l;const y=n.suspense,{renderer:{p:w,m:_,um:S,o:{createElement:x}}}=o,C=x("div");o.activate=(D,j,V,Q,ae)=>{const ce=D.component;_(D,j,V,0,y),w(ce.vnode,D,j,V,ce,y,Q,D.slotScopeIds,ae),queuePostRenderEffect(()=>{ce.isDeactivated=!1,ce.a&&invokeArrayFns(ce.a);const ue=D.props&&D.props.onVnodeMounted;ue&&invokeVNodeHook(ue,ce.parent,D)},y),devtoolsComponentAdded(ce)},o.deactivate=D=>{const j=D.component;invalidateMount(j.m),invalidateMount(j.a),_(D,C,null,1,y),queuePostRenderEffect(()=>{j.da&&invokeArrayFns(j.da);const V=D.props&&D.props.onVnodeUnmounted;V&&invokeVNodeHook(V,j.parent,D),j.isDeactivated=!0},y),devtoolsComponentAdded(j),j.__keepAliveStorageContainer=C};function B(D){resetShapeFlag(D),S(D,n,y,!0)}function L(D){l.forEach((j,V)=>{const Q=getComponentName(j.type);Q&&!D(Q)&&F(V)})}function F(D){const j=l.get(D);j&&(!d||!isSameVNodeType(j,d))?B(j):d&&resetShapeFlag(d),l.delete(D),a.delete(D)}watch(()=>[e.include,e.exclude],([D,j])=>{D&&L(V=>matches(D,V)),j&&L(V=>!matches(j,V))},{flush:"post",deep:!0});let q=null;const H=()=>{q!=null&&(isSuspense(n.subTree.type)?queuePostRenderEffect(()=>{l.set(q,getInnerChild(n.subTree))},n.subTree.suspense):l.set(q,getInnerChild(n.subTree)))};return onMounted(H),onUpdated(H),onBeforeUnmount(()=>{l.forEach(D=>{const{subTree:j,suspense:V}=n,Q=getInnerChild(j);if(D.type===Q.type&&D.key===Q.key){resetShapeFlag(Q);const ae=Q.component.da;ae&&queuePostRenderEffect(ae,V);return}B(D)})}),()=>{if(q=null,!t.default)return d=null;const D=t.default(),j=D[0];if(D.length>1)return warn$1("KeepAlive should contain exactly one component child."),d=null,D;if(!isVNode(j)||!(j.shapeFlag&4)&&!(j.shapeFlag&128))return d=null,j;let V=getInnerChild(j);if(V.type===Comment)return d=null,V;const Q=V.type,ae=getComponentName(isAsyncWrapper(V)?V.type.__asyncResolved||{}:Q),{include:ce,exclude:ue,max:re}=e;if(ce&&(!ae||!matches(ce,ae))||ue&&ae&&matches(ue,ae))return V.shapeFlag&=-257,d=V,j;const pe=V.key==null?Q:V.key,T=l.get(pe);return V.el&&(V=cloneVNode(V),j.shapeFlag&128&&(j.ssContent=V)),q=pe,T?(V.el=T.el,V.component=T.component,V.transition&&setTransitionHooks(V,V.transition),V.shapeFlag|=512,a.delete(pe),a.add(pe)):(a.add(pe),re&&a.size>parseInt(re,10)&&F(a.values().next().value)),V.shapeFlag|=256,d=V,isSuspense(j.type)?j:V}}},KeepAlive=KeepAliveImpl;function matches(e,t){return isArray$a(e)?e.some(n=>matches(n,t)):isString$2(e)?e.split(",").includes(t):isRegExp$3(e)?(e.lastIndex=0,e.test(t)):!1}function onActivated(e,t){registerKeepAliveHook(e,"a",t)}function onDeactivated(e,t){registerKeepAliveHook(e,"da",t)}function registerKeepAliveHook(e,t,n=currentInstance){const o=e.__wdc||(e.__wdc=()=>{let l=n;for(;l;){if(l.isDeactivated)return;l=l.parent}return e()});if(injectHook(t,o,n),n){let l=n.parent;for(;l&&l.parent;)isKeepAlive(l.parent.vnode)&&injectToKeepAliveRoot(o,t,n,l),l=l.parent}}function injectToKeepAliveRoot(e,t,n,o){const l=injectHook(t,e,o,!0);onUnmounted(()=>{remove(o[t],l)},n)}function resetShapeFlag(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function getInnerChild(e){return e.shapeFlag&128?e.ssContent:e}function injectHook(e,t,n=currentInstance,o=!1){if(n){const l=n[e]||(n[e]=[]),a=t.__weh||(t.__weh=(...d)=>{pauseTracking();const y=setCurrentInstance(n),w=callWithAsyncErrorHandling(t,n,e,d);return y(),resetTracking(),w});return o?l.unshift(a):l.push(a),a}else{const l=toHandlerKey(ErrorTypeStrings$1[e].replace(/ hook$/,""));warn$1(`${l} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.`)}}const createHook=e=>(t,n=currentInstance)=>{(!isInSSRComponentSetup||e==="sp")&&injectHook(e,(...o)=>t(...o),n)},onBeforeMount=createHook("bm"),onMounted=createHook("m"),onBeforeUpdate=createHook("bu"),onUpdated=createHook("u"),onBeforeUnmount=createHook("bum"),onUnmounted=createHook("um"),onServerPrefetch=createHook("sp"),onRenderTriggered=createHook("rtg"),onRenderTracked=createHook("rtc");function onErrorCaptured(e,t=currentInstance){injectHook("ec",e,t)}const COMPONENTS="components",DIRECTIVES="directives";function resolveComponent(e,t){return resolveAsset(COMPONENTS,e,!0,t)||e}const NULL_DYNAMIC_COMPONENT=Symbol.for("v-ndc");function resolveDynamicComponent(e){return isString$2(e)?resolveAsset(COMPONENTS,e,!1)||e:e||NULL_DYNAMIC_COMPONENT}function resolveDirective(e){return resolveAsset(DIRECTIVES,e)}function resolveAsset(e,t,n=!0,o=!1){const l=currentRenderingInstance||currentInstance;if(l){const a=l.type;if(e===COMPONENTS){const y=getComponentName(a,!1);if(y&&(y===t||y===camelize(t)||y===capitalize$2(camelize(t))))return a}const d=resolve$2(l[e]||a[e],t)||resolve$2(l.appContext[e],t);if(!d&&o)return a;if(n&&!d){const y=e===COMPONENTS?` -If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.`:"";warn$1(`Failed to resolve ${e.slice(0,-1)}: ${t}${y}`)}return d}else warn$1(`resolve${capitalize$2(e.slice(0,-1))} can only be used in render() or setup().`)}function resolve$2(e,t){return e&&(e[t]||e[camelize(t)]||e[capitalize$2(camelize(t))])}function renderList(e,t,n,o){let l;const a=n&&n[o],d=isArray$a(e);if(d||isString$2(e)){const y=d&&isReactive(e);let w=!1,_=!1;y&&(w=!isShallow(e),_=isReadonly(e),e=shallowReadArray(e)),l=new Array(e.length);for(let S=0,x=e.length;St(y,w,void 0,a&&a[w]));else{const y=Object.keys(e);l=new Array(y.length);for(let w=0,_=y.length;w<_;w++){const S=y[w];l[w]=t(e[S],S,w,a&&a[w])}}else l=[];return n&&(n[o]=l),l}function createSlots(e,t){for(let n=0;n{const a=o.fn(...l);return a&&(a.key=o.key),a}:o.fn)}return e}function renderSlot(e,t,n={},o,l){if(currentRenderingInstance.ce||currentRenderingInstance.parent&&isAsyncWrapper(currentRenderingInstance.parent)&¤tRenderingInstance.parent.ce)return t!=="default"&&(n.name=t),openBlock(),createBlock(Fragment,null,[createVNode("slot",n,o&&o())],64);let a=e[t];a&&a.length>1&&(warn$1("SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template."),a=()=>[]),a&&a._c&&(a._d=!1),openBlock();const d=a&&ensureValidVNode(a(n)),y=n.key||d&&d.key,w=createBlock(Fragment,{key:(y&&!isSymbol$4(y)?y:`_${t}`)+(!d&&o?"_fb":"")},d||(o?o():[]),d&&e._===1?64:-2);return!l&&w.scopeId&&(w.slotScopeIds=[w.scopeId+"-s"]),a&&a._c&&(a._d=!0),w}function ensureValidVNode(e){return e.some(t=>isVNode(t)?!(t.type===Comment||t.type===Fragment&&!ensureValidVNode(t.children)):!0)?e:null}function toHandlers(e,t){const n={};if(!isObject$3(e))return warn$1("v-on with no argument expects an object value."),n;for(const o in e)n[t&&/[A-Z]/.test(o)?`on:${o}`:toHandlerKey(o)]=e[o];return n}const getPublicInstance=e=>e?isStatefulComponent(e)?getComponentPublicInstance(e):getPublicInstance(e.parent):null,publicPropertiesMap=extend$1(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>shallowReadonly(e.props),$attrs:e=>shallowReadonly(e.attrs),$slots:e=>shallowReadonly(e.slots),$refs:e=>shallowReadonly(e.refs),$parent:e=>getPublicInstance(e.parent),$root:e=>getPublicInstance(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>resolveMergedOptions(e),$forceUpdate:e=>e.f||(e.f=()=>{queueJob(e.update)}),$nextTick:e=>e.n||(e.n=nextTick$4.bind(e.proxy)),$watch:e=>instanceWatch.bind(e)}),isReservedPrefix=e=>e==="_"||e==="$",hasSetupBinding=(e,t)=>e!==EMPTY_OBJ&&!e.__isScriptSetup&&hasOwn$3(e,t),PublicInstanceProxyHandlers={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:o,data:l,props:a,accessCache:d,type:y,appContext:w}=e;if(t==="__isVue")return!0;let _;if(t[0]!=="$"){const B=d[t];if(B!==void 0)switch(B){case 1:return o[t];case 2:return l[t];case 4:return n[t];case 3:return a[t]}else{if(hasSetupBinding(o,t))return d[t]=1,o[t];if(l!==EMPTY_OBJ&&hasOwn$3(l,t))return d[t]=2,l[t];if((_=e.propsOptions[0])&&hasOwn$3(_,t))return d[t]=3,a[t];if(n!==EMPTY_OBJ&&hasOwn$3(n,t))return d[t]=4,n[t];shouldCacheAccess&&(d[t]=0)}}const S=publicPropertiesMap[t];let x,C;if(S)return t==="$attrs"?(track(e.attrs,"get",""),markAttrsAccessed()):t==="$slots"&&track(e,"get",t),S(e);if((x=y.__cssModules)&&(x=x[t]))return x;if(n!==EMPTY_OBJ&&hasOwn$3(n,t))return d[t]=4,n[t];if(C=w.config.globalProperties,hasOwn$3(C,t))return C[t];currentRenderingInstance&&(!isString$2(t)||t.indexOf("__v")!==0)&&(l!==EMPTY_OBJ&&isReservedPrefix(t[0])&&hasOwn$3(l,t)?warn$1(`Property ${JSON.stringify(t)} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.`):e===currentRenderingInstance&&warn$1(`Property ${JSON.stringify(t)} was accessed during render but is not defined on instance.`))},set({_:e},t,n){const{data:o,setupState:l,ctx:a}=e;return hasSetupBinding(l,t)?(l[t]=n,!0):l.__isScriptSetup&&hasOwn$3(l,t)?(warn$1(`Cannot mutate - - - - - - + + + + + + + From 0e9ef17c55d077a3157c55c57820a700321196ab Mon Sep 17 00:00:00 2001 From: Lutz Bender Date: Mon, 22 Sep 2025 07:48:53 +0200 Subject: [PATCH 5/8] fix cloud bridge on factory reset --- runs/factory_reset.sh | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/runs/factory_reset.sh b/runs/factory_reset.sh index 26de55c79c..78b6109321 100755 --- a/runs/factory_reset.sh +++ b/runs/factory_reset.sh @@ -9,10 +9,15 @@ fi case "$1" in "clearall") echo "checking for configured cloud bridge..." - cloud_bridge=$(timeout 1 mosquitto_sub -t 'openWB/system/mqtt/bridge/+' | grep -E '"is_openwb_cloud": ?true') + cloud_bridge=$(timeout 1 mosquitto_sub -v -t 'openWB/system/mqtt/bridge/+' | grep -E '"is_openwb_cloud": ?true') + echo "$cloud_bridge" if [ -n "$cloud_bridge" ]; then - echo "cloud bridge is configured" + cloud_bridge_index=$(echo "$cloud_bridge" | cut -d' ' -f1 | cut -d'/' -f5) + cloud_bridge_configuration=$(echo "$cloud_bridge" | cut -d' ' -f2-) + echo "cloud bridge is configured with index \"$cloud_bridge_index\"" + echo "configuration: $cloud_bridge_configuration" valid_partner_ids=$(timeout 1 mosquitto_sub -t 'openWB/system/mqtt/valid_partner_ids' -C 1) + php -f "$OPENWBBASEDIR/runs/save_mqtt.php" "$cloud_bridge_index" '' else echo "no cloud bridge configured" fi @@ -25,10 +30,12 @@ case "$1" in echo "reset display rotation" sudo sed -i "s/^lcd_rotate=[0-3]$/lcd_rotate=0/" "/boot/config.txt" if [ -n "$cloud_bridge" ]; then - echo "restore cloud bridge configuration: $cloud_bridge" - mosquitto_pub -t 'openWB/command/max_id/mqtt_bridge' -r -m 1 -p 1886 + new_cloud_bridge_index=0 + echo "restore cloud bridge configuration at index \"$new_cloud_bridge_index\": $cloud_bridge_configuration" + mosquitto_pub -t 'openWB/command/max_id/mqtt_bridge' -r -m $new_cloud_bridge_index -p 1886 mosquitto_pub -t 'openWB/system/mqtt/valid_partner_ids' -r -m "$valid_partner_ids" -p 1886 - mosquitto_pub -t 'openWB/system/mqtt/bridge/0' -r -m "$cloud_bridge" -p 1886 + mosquitto_pub -t "openWB/system/mqtt/bridge/$new_cloud_bridge_index" -r -m "$cloud_bridge_configuration" -p 1886 + php -f "$OPENWBBASEDIR/runs/save_mqtt.php" "$new_cloud_bridge_index" "$cloud_bridge_configuration" fi echo "all done";; *) From 411041f4f58b10416d9f29cb25d4a0524e34f5aa Mon Sep 17 00:00:00 2001 From: LKuemmel Date: Mon, 22 Sep 2025 09:47:04 +0200 Subject: [PATCH 6/8] fix auto phase switch for pv charging with min current --- packages/control/chargepoint/chargepoint.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/control/chargepoint/chargepoint.py b/packages/control/chargepoint/chargepoint.py index 0d403dea61..2b7a4d8c61 100644 --- a/packages/control/chargepoint/chargepoint.py +++ b/packages/control/chargepoint/chargepoint.py @@ -920,7 +920,8 @@ def chargemode_support_phase_switch(self) -> bool: control_parameter = self.data.control_parameter pv_auto_switch = ((control_parameter.chargemode == Chargemode.PV_CHARGING or control_parameter.chargemode == Chargemode.ECO_CHARGING) and - control_parameter.submode == Chargemode.PV_CHARGING and + (control_parameter.submode == Chargemode.PV_CHARGING or + control_parameter.submode == Chargemode.INSTANT_CHARGING) and self.data.set.charge_template.data.chargemode.pv_charging.phases_to_use == 0) for p in self.data.set.charge_template.data.chargemode.scheduled_charging.plans: if p.id == self.data.control_parameter.current_plan: From b168b462d31bb5fd380d40cbfc9b155b10bf84f9 Mon Sep 17 00:00:00 2001 From: Lutz Bender Date: Mon, 22 Sep 2025 10:59:38 +0200 Subject: [PATCH 7/8] build settings --- ...eLog-40aaca0a.js => ChargeLog-70085d3d.js} | 4 +- .../ChargePointInstallation-7e22d920.js | 1 - .../ChargePointInstallation-f32d3e54.js | 1 + .../{Chart-0e7a4a70.js => Chart-730fde84.js} | 2 +- web/settings/assets/CloudConfig-1f382920.js | 1 - web/settings/assets/CloudConfig-832400a4.js | 1 + .../assets/DataManagement-52054445.js | 1 - .../assets/DataManagement-e6d61b39.js | 1 + web/settings/assets/DebugConfig-044b24f7.js | 2 - web/settings/assets/DebugConfig-0d862fc6.js | 2 + .../assets/GeneralChargeConfig-6ea49afe.js | 1 + .../assets/GeneralChargeConfig-d70b0d95.js | 1 - web/settings/assets/GeneralConfig-3d40ed90.js | 1 + web/settings/assets/GeneralConfig-cc87a1f9.js | 1 - .../assets/HardwareInstallation-8066ca79.js | 1 + .../assets/HardwareInstallation-be759b0c.js | 1 - .../assets/IdentificationConfig-1a2c5700.js | 2 + .../assets/IdentificationConfig-a3531ccb.js | 2 - .../assets/InstallAssistant-13cd0d9d.js | 1 + .../assets/InstallAssistant-56db2231.js | 1 - .../assets/InstallAssistantStep0-94d0c90f.js | 1 + .../assets/InstallAssistantStep0-acacfc75.js | 1 - .../assets/InstallAssistantStep1-9ca3e6aa.js | 1 + .../assets/InstallAssistantStep1-a93e968d.js | 1 - .../assets/InstallAssistantStep10-3d573bb7.js | 1 - .../assets/InstallAssistantStep10-c09c6a79.js | 1 + .../assets/InstallAssistantStep2-b4941f0c.js | 1 - .../assets/InstallAssistantStep2-d7efcb8f.js | 1 + .../assets/InstallAssistantStep3-7d2c9a9e.js | 1 + .../assets/InstallAssistantStep3-b0741703.js | 1 - .../assets/InstallAssistantStep4-7746f64c.js | 1 + .../assets/InstallAssistantStep4-f46d2116.js | 1 - .../InstallAssistantStep4.1-8b2ae23f.js | 1 - .../InstallAssistantStep4.1-d2c6e9b9.js | 1 + .../assets/InstallAssistantStep5-4a85dca5.js | 1 - .../assets/InstallAssistantStep5-a502922e.js | 1 + .../assets/InstallAssistantStep6-5c9750cb.js | 1 - .../assets/InstallAssistantStep6-80a98cf3.js | 1 + .../assets/InstallAssistantStep7-01325ff0.js | 1 + .../assets/InstallAssistantStep7-2bd98bf0.js | 1 - ...b.js => InstallAssistantStep8-65bb7ab2.js} | 2 +- .../assets/InstallAssistantStep9-1aa5b6bf.js | 1 - .../assets/InstallAssistantStep9-4ce532e6.js | 1 + .../InstallAssistantStepTemplate-59e1095f.js | 1 - .../InstallAssistantStepTemplate-d46144b3.js | 1 + web/settings/assets/IoConfig-20eaec88.js | 1 + web/settings/assets/IoConfig-38958e2e.js | 1 - ...-20201125.js => LegalSettings-1b718a5d.js} | 2 +- .../assets/LoadManagementConfig-61263fe6.js | 1 - .../assets/LoadManagementConfig-89605028.js | 1 + .../assets/MqttBridgeConfig-25a5936a.js | 1 + .../assets/MqttBridgeConfig-59050cb8.js | 1 - .../assets/OpenwbIoPattern-573b772f.js | 1 + .../assets/OpenwbIoPattern-66bb2793.js | 1 - ...6.js => OpenwbIoSinglePattern-67be81d3.js} | 2 +- ...b151.js => OpenwbSortableList-96f09c46.js} | 2 +- .../assets/OptionalComponents-855be104.js | 1 + .../assets/OptionalComponents-a2c47c92.js | 1 - .../assets/PVChargeConfig-b6b84699.js | 1 - .../assets/PVChargeConfig-db3a459e.js | 1 + web/settings/assets/Status-76832ed9.js | 1 - web/settings/assets/Status-b23f7e03.js | 1 + web/settings/assets/Support-028921f1.js | 3 + web/settings/assets/Support-25ac4d94.js | 3 - web/settings/assets/System-5e2d0137.js | 1 + web/settings/assets/System-9f60a387.js | 1 - web/settings/assets/TestingStore-3a739645.js | 1 - web/settings/assets/TestingStore-4c4aaf29.js | 1 + web/settings/assets/VehicleConfig-890c7977.js | 1 + web/settings/assets/VehicleConfig-c6e5b45b.js | 1 - web/settings/assets/backup_cloud-0a9a4a8d.js | 1 - web/settings/assets/backup_cloud-23b13a1c.js | 1 + web/settings/assets/backup_cloud-5420b416.js | 1 - web/settings/assets/backup_cloud-66a4543e.js | 1 - web/settings/assets/backup_cloud-72a22a71.js | 1 + web/settings/assets/backup_cloud-bfc3a02f.js | 1 + web/settings/assets/backup_cloud-e3708975.js | 1 - web/settings/assets/backup_cloud-fc511ccc.js | 1 + web/settings/assets/bat-01a2f194.js | 1 - web/settings/assets/bat-02c96333.js | 1 - web/settings/assets/bat-0303c661.js | 1 + web/settings/assets/bat-18693c33.js | 1 - web/settings/assets/bat-1ad29484.js | 1 - web/settings/assets/bat-1e5462e4.js | 1 - web/settings/assets/bat-1ede89b7.js | 1 + web/settings/assets/bat-24ebfa6e.js | 1 - web/settings/assets/bat-2e0391d4.js | 1 - web/settings/assets/bat-2eb6e306.js | 1 + web/settings/assets/bat-313da7a3.js | 1 - web/settings/assets/bat-3690aea0.js | 1 + web/settings/assets/bat-381c4030.js | 1 - web/settings/assets/bat-3af7a3ce.js | 1 + web/settings/assets/bat-410d986a.js | 1 + web/settings/assets/bat-460cfbf5.js | 1 + web/settings/assets/bat-4a5e2d78.js | 1 + web/settings/assets/bat-5276ac71.js | 1 - web/settings/assets/bat-536ad2ed.js | 1 + web/settings/assets/bat-5ab2250c.js | 1 + web/settings/assets/bat-5c9d3bae.js | 1 - web/settings/assets/bat-60e92443.js | 1 + web/settings/assets/bat-63b2083d.js | 1 + web/settings/assets/bat-6b538fb2.js | 1 + web/settings/assets/bat-6f26d004.js | 1 + web/settings/assets/bat-74a30937.js | 1 - web/settings/assets/bat-84dc10cd.js | 1 + web/settings/assets/bat-9f789e09.js | 1 - web/settings/assets/bat-b27a9158.js | 1 + web/settings/assets/bat-b6ca0c1a.js | 1 + web/settings/assets/bat-bdf83b40.js | 1 + web/settings/assets/bat-be5c48ce.js | 1 - web/settings/assets/bat-bef81950.js | 1 + web/settings/assets/bat-caa2d54a.js | 1 - web/settings/assets/bat-d270e7cf.js | 1 + web/settings/assets/bat-d365c2cb.js | 1 - web/settings/assets/bat-dfe36bde.js | 1 + web/settings/assets/bat-e176c2ff.js | 1 - web/settings/assets/bat-e326742a.js | 1 - web/settings/assets/bat-e4f98942.js | 1 - web/settings/assets/bat-e77edf27.js | 1 + web/settings/assets/bat-e9ec040d.js | 1 - web/settings/assets/bat-efda0fab.js | 1 - web/settings/assets/bat-f72ba579.js | 1 - .../assets/bat_smart_energy-43f3b393.js | 1 + .../assets/bat_smart_energy-af221efd.js | 1 - web/settings/assets/chargePoint-04f787ef.js | 1 - web/settings/assets/chargePoint-15ecf598.js | 1 + web/settings/assets/chargePoint-1623ec0b.js | 1 + ...nt-d206a228.js => chargePoint-1b76c4e2.js} | 2 +- ...nt-5ae09ebd.js => chargePoint-298a41ae.js} | 2 +- ...nt-b9360c52.js => chargePoint-3bc810fe.js} | 2 +- web/settings/assets/chargePoint-49f400c4.js | 1 + web/settings/assets/chargePoint-5d28cfe6.js | 1 - web/settings/assets/chargePoint-8808c043.js | 1 - web/settings/assets/chargePoint-9bb6ac88.js | 1 + web/settings/assets/chargePoint-c7a2ef8c.js | 1 - ...mands-6baac453.js => commands-55f6367a.js} | 2 +- ...mands-c6ddc747.js => commands-8f629639.js} | 2 +- .../assets/consumption_counter-1c9b3251.js | 1 - .../assets/consumption_counter-4f8ba92c.js | 1 + web/settings/assets/counter-01d8e9a4.js | 1 - web/settings/assets/counter-1346ff10.js | 1 - web/settings/assets/counter-165ce997.js | 1 - web/settings/assets/counter-170c4e9b.js | 1 + web/settings/assets/counter-189db4df.js | 1 - web/settings/assets/counter-19c86db9.js | 1 + web/settings/assets/counter-1d22e45e.js | 1 + web/settings/assets/counter-1f565ee4.js | 1 - web/settings/assets/counter-21bc2bc2.js | 1 - web/settings/assets/counter-2438b11a.js | 1 - web/settings/assets/counter-29be21bf.js | 1 + web/settings/assets/counter-2aac942b.js | 1 - web/settings/assets/counter-2abab92c.js | 1 + web/settings/assets/counter-2b8e7c78.js | 1 + web/settings/assets/counter-32894ee7.js | 1 - web/settings/assets/counter-332c42a7.js | 1 - web/settings/assets/counter-37d67776.js | 1 - web/settings/assets/counter-3a72c8c9.js | 1 + web/settings/assets/counter-3c133de8.js | 1 - web/settings/assets/counter-3ca7ffbd.js | 1 + web/settings/assets/counter-3e1bf7f1.js | 1 - web/settings/assets/counter-41e364f6.js | 1 + web/settings/assets/counter-4829f82d.js | 1 + web/settings/assets/counter-4c3ca39c.js | 1 + web/settings/assets/counter-4eb55d38.js | 1 + web/settings/assets/counter-57c49ae6.js | 1 - web/settings/assets/counter-5cd5b153.js | 1 + web/settings/assets/counter-6e1d95d5.js | 1 - web/settings/assets/counter-6eb3e0d5.js | 1 + web/settings/assets/counter-70b03053.js | 1 - web/settings/assets/counter-70de76b4.js | 1 - web/settings/assets/counter-71ead754.js | 1 + web/settings/assets/counter-73f9d00b.js | 1 + web/settings/assets/counter-7425f1bb.js | 1 + web/settings/assets/counter-74a6b7f4.js | 1 + web/settings/assets/counter-74f24773.js | 1 + web/settings/assets/counter-76544a83.js | 1 - web/settings/assets/counter-7d49c7a6.js | 1 + web/settings/assets/counter-81dd5705.js | 1 - web/settings/assets/counter-8237c33b.js | 1 + web/settings/assets/counter-8725308d.js | 1 - web/settings/assets/counter-8950294b.js | 1 - web/settings/assets/counter-92b65758.js | 1 + web/settings/assets/counter-955b7de4.js | 1 + web/settings/assets/counter-9a7cb966.js | 1 + web/settings/assets/counter-a4bd8bd6.js | 1 + web/settings/assets/counter-aa5bda67.js | 1 - web/settings/assets/counter-ac45f9c2.js | 1 - web/settings/assets/counter-aeecbad9.js | 1 + web/settings/assets/counter-b24acc4a.js | 1 + web/settings/assets/counter-c21587d3.js | 1 - web/settings/assets/counter-c7ccca56.js | 1 - web/settings/assets/counter-c8857016.js | 1 + web/settings/assets/counter-c8a85756.js | 1 + web/settings/assets/counter-cb484254.js | 1 + web/settings/assets/counter-d5daca07.js | 1 + web/settings/assets/counter-d72adf8c.js | 1 - web/settings/assets/counter-d73a3f9b.js | 1 - web/settings/assets/counter-de159ac4.js | 1 + web/settings/assets/counter-e48f1cfa.js | 1 - web/settings/assets/counter-e7edbb39.js | 1 + web/settings/assets/counter-eadf5e57.js | 1 - web/settings/assets/counter-f02f171d.js | 1 - web/settings/assets/counter-f2628932.js | 1 - web/settings/assets/counter-f47d34d5.js | 1 + web/settings/assets/counter-f5251d3f.js | 1 + web/settings/assets/counter-f54ee4df.js | 1 - web/settings/assets/counter-f8e5fc32.js | 1 - web/settings/assets/counter-fdd1cfe4.js | 1 - web/settings/assets/counter-fdeb4506.js | 1 - .../assets/counter_consumption-06ae199e.js | 1 - .../assets/counter_consumption-901cf616.js | 1 + web/settings/assets/counter_sm-c036b032.js | 1 + web/settings/assets/counter_sm-e0173218.js | 1 - web/settings/assets/device-022cb7a5.js | 1 - web/settings/assets/device-026ba885.js | 1 - web/settings/assets/device-04198354.js | 1 - web/settings/assets/device-0553aec2.js | 1 + web/settings/assets/device-05904d00.js | 1 - web/settings/assets/device-063b8544.js | 1 + web/settings/assets/device-07a65d9a.js | 1 - web/settings/assets/device-095d94ba.js | 1 + web/settings/assets/device-0a2a87db.js | 1 + web/settings/assets/device-0bd3c0be.js | 1 - web/settings/assets/device-0ff1683d.js | 1 - web/settings/assets/device-115ca373.js | 1 - web/settings/assets/device-11bf5d7f.js | 1 + web/settings/assets/device-13333def.js | 1 + web/settings/assets/device-14c83532.js | 1 - web/settings/assets/device-160ed507.js | 1 - web/settings/assets/device-18f8c834.js | 1 - web/settings/assets/device-1cc93638.js | 1 + web/settings/assets/device-1ecd0e84.js | 1 + web/settings/assets/device-2251901f.js | 1 - web/settings/assets/device-23990b21.js | 1 + web/settings/assets/device-24f54dcc.js | 1 - web/settings/assets/device-25d2441f.js | 1 + web/settings/assets/device-2671fef8.js | 1 - web/settings/assets/device-28e1a264.js | 1 + web/settings/assets/device-2a2b2695.js | 1 + web/settings/assets/device-2b1ae0bb.js | 1 + web/settings/assets/device-2c55f22c.js | 1 - web/settings/assets/device-2f6474c4.js | 1 - web/settings/assets/device-30bde472.js | 1 - web/settings/assets/device-318bb1e3.js | 1 + web/settings/assets/device-35f7717e.js | 1 - web/settings/assets/device-37a05407.js | 1 - web/settings/assets/device-3a96f207.js | 1 - web/settings/assets/device-3ae4b0dc.js | 1 + web/settings/assets/device-3c0ce676.js | 1 + web/settings/assets/device-3c6d5af6.js | 1 - web/settings/assets/device-3ee6aa79.js | 1 + web/settings/assets/device-3f7b60bf.js | 1 + web/settings/assets/device-400899e6.js | 1 + web/settings/assets/device-4301268c.js | 1 + web/settings/assets/device-431b8934.js | 1 + web/settings/assets/device-4359519d.js | 1 - web/settings/assets/device-44029622.js | 1 + web/settings/assets/device-444877fe.js | 1 - web/settings/assets/device-45750f00.js | 1 - web/settings/assets/device-46dae0da.js | 1 + web/settings/assets/device-46ed909c.js | 1 - web/settings/assets/device-4b1ba85f.js | 1 - web/settings/assets/device-4b49e69a.js | 1 - web/settings/assets/device-4bbfca01.js | 1 - web/settings/assets/device-4c47ea65.js | 1 - web/settings/assets/device-4ce19f90.js | 1 + web/settings/assets/device-50f7a9ff.js | 1 + web/settings/assets/device-52049b98.js | 1 - web/settings/assets/device-5343ce64.js | 1 + web/settings/assets/device-54b2f204.js | 1 - web/settings/assets/device-57c43c99.js | 1 - web/settings/assets/device-585500cc.js | 1 - web/settings/assets/device-5c141e99.js | 1 - web/settings/assets/device-5cab91ce.js | 1 + web/settings/assets/device-6017ed76.js | 1 - web/settings/assets/device-60677da2.js | 1 + web/settings/assets/device-6081837f.js | 1 - web/settings/assets/device-642a9f6f.js | 1 + web/settings/assets/device-659f1d77.js | 1 + web/settings/assets/device-65c6662e.js | 1 + web/settings/assets/device-671bcffc.js | 1 + web/settings/assets/device-6ea8eb37.js | 1 - web/settings/assets/device-7163038e.js | 1 + web/settings/assets/device-75b024ee.js | 1 + web/settings/assets/device-765526b8.js | 1 + web/settings/assets/device-77ab491f.js | 1 - web/settings/assets/device-78a44c29.js | 1 + web/settings/assets/device-7a7db35b.js | 1 - web/settings/assets/device-7c75fb7c.js | 1 - web/settings/assets/device-7d03d320.js | 1 - web/settings/assets/device-7def54a5.js | 1 - web/settings/assets/device-803b339a.js | 1 - web/settings/assets/device-80cfaffc.js | 1 + web/settings/assets/device-85f57776.js | 1 - web/settings/assets/device-8684e5fd.js | 1 + web/settings/assets/device-86e0a461.js | 1 - web/settings/assets/device-8739b2fb.js | 1 - web/settings/assets/device-8743d202.js | 1 + web/settings/assets/device-881b7363.js | 1 + web/settings/assets/device-88f4058a.js | 1 + web/settings/assets/device-8ad316ba.js | 1 + web/settings/assets/device-8bca7e20.js | 1 + web/settings/assets/device-8ec43ff9.js | 1 - web/settings/assets/device-91624bc5.js | 1 - web/settings/assets/device-91d8873a.js | 1 - web/settings/assets/device-961232b3.js | 1 + web/settings/assets/device-9962b0b8.js | 1 - web/settings/assets/device-99902fe5.js | 1 + web/settings/assets/device-99cb2dcd.js | 1 + web/settings/assets/device-9dcf188a.js | 1 - web/settings/assets/device-9f80ec42.js | 1 + web/settings/assets/device-9fca3461.js | 1 + web/settings/assets/device-9fec4861.js | 1 - web/settings/assets/device-a0f15220.js | 1 - web/settings/assets/device-a36af1b2.js | 1 + web/settings/assets/device-a9d743f1.js | 1 + web/settings/assets/device-aa389719.js | 1 + web/settings/assets/device-aab545a0.js | 1 - web/settings/assets/device-ab579910.js | 1 - web/settings/assets/device-abd46e94.js | 1 - web/settings/assets/device-ad31bc6c.js | 1 - web/settings/assets/device-ae4f5ccf.js | 1 - web/settings/assets/device-b2f0a632.js | 1 - web/settings/assets/device-b3265f86.js | 1 - web/settings/assets/device-b3818b6c.js | 1 - web/settings/assets/device-b39daa3e.js | 1 + web/settings/assets/device-b4339cb2.js | 1 + web/settings/assets/device-b63f7410.js | 1 + web/settings/assets/device-b933a21c.js | 1 - web/settings/assets/device-b94aa2cd.js | 1 - web/settings/assets/device-bb1ccbe7.js | 1 - web/settings/assets/device-bba31079.js | 1 - web/settings/assets/device-bd81fe78.js | 1 + web/settings/assets/device-c04b431d.js | 1 + web/settings/assets/device-c21b61c6.js | 1 + web/settings/assets/device-c41d2ff7.js | 1 + web/settings/assets/device-c8921d75.js | 1 - web/settings/assets/device-ca171f86.js | 1 + web/settings/assets/device-ca2216bb.js | 1 + web/settings/assets/device-cbf306be.js | 1 - web/settings/assets/device-cc5378a8.js | 1 + web/settings/assets/device-d3c47c07.js | 1 + web/settings/assets/device-d450da5d.js | 1 + web/settings/assets/device-d7f94b0d.js | 1 - web/settings/assets/device-d8332f79.js | 1 - web/settings/assets/device-da0c44d0.js | 1 + web/settings/assets/device-daf6231d.js | 1 - web/settings/assets/device-dc52892c.js | 1 + web/settings/assets/device-dc9ef32a.js | 1 + web/settings/assets/device-dcaf1061.js | 1 - web/settings/assets/device-e379eb65.js | 1 - web/settings/assets/device-e470aa3a.js | 1 + web/settings/assets/device-e5ec8653.js | 1 + web/settings/assets/device-e966116d.js | 1 + web/settings/assets/device-e99aa4c8.js | 1 + web/settings/assets/device-ea2ecac8.js | 1 - web/settings/assets/device-ee7a56fb.js | 1 + web/settings/assets/device-ef964622.js | 1 + web/settings/assets/device-fba9cb18.js | 1 - web/settings/assets/device-fc594731.js | 1 + web/settings/assets/device-fee0c0ea.js | 1 + web/settings/assets/displayTheme-1cde14a1.js | 1 + web/settings/assets/displayTheme-574a4f61.js | 1 + web/settings/assets/displayTheme-717a89a9.js | 1 - web/settings/assets/displayTheme-cf89ddcd.js | 1 - .../assets/electricity_tariff-1801c7f1.js | 1 + .../assets/electricity_tariff-1ac1c5ab.js | 1 - .../assets/electricity_tariff-364c39ff.js | 1 + .../assets/electricity_tariff-377f97e7.js | 1 - ...ea5d.js => electricity_tariff-45b171ab.js} | 2 +- .../assets/electricity_tariff-6a090d74.js | 1 - .../assets/electricity_tariff-701d2b86.js | 1 - .../assets/electricity_tariff-7bb00a2f.js | 1 - .../assets/electricity_tariff-81299fd9.js | 1 + .../assets/electricity_tariff-8d854ff1.js | 1 - .../assets/electricity_tariff-96f61949.js | 1 + .../assets/electricity_tariff-982b4ff6.js | 1 + .../assets/electricity_tariff-b0a556e0.js | 1 + .../assets/electricity_tariff-bb07cc98.js | 1 + .../assets/electricity_tariff-cf2ab1f8.js | 1 - .../assets/external_inverter-8e60306f.js | 1 - .../assets/external_inverter-bead5b8d.js | 1 + web/settings/assets/index-8dd8e083.js | 1 - web/settings/assets/index-c94f8df4.js | 1 + web/settings/assets/inverter-01923309.js | 1 - web/settings/assets/inverter-02db9c3f.js | 1 + web/settings/assets/inverter-037d9ebd.js | 1 + web/settings/assets/inverter-05bcd6e7.js | 1 + web/settings/assets/inverter-07777da1.js | 1 + web/settings/assets/inverter-0b8cbadd.js | 1 - web/settings/assets/inverter-1287c8cd.js | 1 + web/settings/assets/inverter-1484b10b.js | 1 - web/settings/assets/inverter-14c9afae.js | 1 + web/settings/assets/inverter-17495f9f.js | 1 + web/settings/assets/inverter-218dfb39.js | 1 - web/settings/assets/inverter-254014f2.js | 1 - web/settings/assets/inverter-25fc7f37.js | 1 + web/settings/assets/inverter-26256af8.js | 1 + web/settings/assets/inverter-2e642f10.js | 1 - web/settings/assets/inverter-31446a68.js | 1 - web/settings/assets/inverter-332388ea.js | 1 - web/settings/assets/inverter-3370b8b6.js | 1 - web/settings/assets/inverter-3fe8754b.js | 1 - web/settings/assets/inverter-42148877.js | 1 + web/settings/assets/inverter-423aa924.js | 1 - web/settings/assets/inverter-43433c4d.js | 1 + web/settings/assets/inverter-46bb7438.js | 1 + web/settings/assets/inverter-4c2e20ed.js | 1 + web/settings/assets/inverter-5531e828.js | 1 - web/settings/assets/inverter-61c893a1.js | 1 + web/settings/assets/inverter-6427ac53.js | 1 - web/settings/assets/inverter-698ee7a4.js | 1 + web/settings/assets/inverter-7a061d6b.js | 1 + web/settings/assets/inverter-7afcc2ba.js | 1 - web/settings/assets/inverter-7bea2389.js | 1 - web/settings/assets/inverter-809f70c1.js | 1 - web/settings/assets/inverter-811d2fd2.js | 1 - web/settings/assets/inverter-8ad0f9f7.js | 1 + web/settings/assets/inverter-9022a53b.js | 1 - web/settings/assets/inverter-9120bfd2.js | 1 + web/settings/assets/inverter-948bcdb7.js | 1 - web/settings/assets/inverter-95e857e0.js | 1 + web/settings/assets/inverter-96158dd7.js | 1 - web/settings/assets/inverter-97aca950.js | 1 - web/settings/assets/inverter-9961dcdb.js | 1 + web/settings/assets/inverter-ac4d7f34.js | 1 + web/settings/assets/inverter-b447983e.js | 1 - web/settings/assets/inverter-b490ca31.js | 1 - web/settings/assets/inverter-b4a73b4a.js | 1 + web/settings/assets/inverter-b4deb54d.js | 1 + web/settings/assets/inverter-b99fda43.js | 1 - web/settings/assets/inverter-bc849b92.js | 1 - web/settings/assets/inverter-ca193c42.js | 1 + web/settings/assets/inverter-d41890ab.js | 1 - web/settings/assets/inverter-d8e7de15.js | 1 - web/settings/assets/inverter-e626a82d.js | 1 - web/settings/assets/inverter-e73b2e99.js | 1 + web/settings/assets/inverter-e923e9ca.js | 1 + web/settings/assets/inverter-ea38ab2a.js | 1 - web/settings/assets/inverter-f1be98fb.js | 1 - web/settings/assets/inverter-f377a9ba.js | 1 + web/settings/assets/inverter-f4ccd46a.js | 1 - web/settings/assets/inverter-f4d336b7.js | 1 + web/settings/assets/inverter-f8595260.js | 1 + web/settings/assets/inverter-fbc7ce2f.js | 1 + web/settings/assets/inverter-fd3f7e7e.js | 1 + .../assets/inverter_secondary-456c249b.js | 1 + .../assets/inverter_secondary-be8c6f76.js | 1 - ...tion-7fdda1cd.js => io_action-3c4c6f74.js} | 2 +- web/settings/assets/io_action-639b3028.js | 1 - ...tion-a52c3f8c.js => io_action-82034a26.js} | 2 +- ...tion-d6457738.js => io_action-8211f02f.js} | 2 +- web/settings/assets/io_action-f1a6dc2b.js | 1 + web/settings/assets/io_device-1f979b15.js | 1 + web/settings/assets/io_device-4394e2dd.js | 1 - ...vice-e4d01342.js => io_device-ac0abd6b.js} | 2 +- web/settings/assets/monitoring-1f99e249.js | 1 - web/settings/assets/monitoring-b9e2cec0.js | 1 + web/settings/assets/vehicle-04c99766.js | 1 - web/settings/assets/vehicle-0f781a6d.js | 1 + web/settings/assets/vehicle-11bc2552.js | 1 + ...ehicle-16754a95.js => vehicle-151eb75d.js} | 2 +- web/settings/assets/vehicle-25a4898c.js | 1 + web/settings/assets/vehicle-2a399b60.js | 1 + ...ehicle-65e3046c.js => vehicle-2e28fc2a.js} | 2 +- web/settings/assets/vehicle-2f3715ab.js | 1 + ...ehicle-fe38074f.js => vehicle-2fbbd65b.js} | 2 +- web/settings/assets/vehicle-31ef3978.js | 1 + web/settings/assets/vehicle-32689279.js | 1 + web/settings/assets/vehicle-377b2545.js | 1 + web/settings/assets/vehicle-38543ffd.js | 1 - web/settings/assets/vehicle-3896a2ec.js | 1 - web/settings/assets/vehicle-3cb9cb75.js | 1 - web/settings/assets/vehicle-45b245c8.js | 1 + web/settings/assets/vehicle-4a5ca121.js | 1 - web/settings/assets/vehicle-673ea579.js | 1 - web/settings/assets/vehicle-70e7db8e.js | 1 - web/settings/assets/vehicle-7c8da79e.js | 1 + web/settings/assets/vehicle-8289a840.js | 1 - web/settings/assets/vehicle-8a029fa4.js | 1 + web/settings/assets/vehicle-8c0aaa75.js | 1 - web/settings/assets/vehicle-902f8abd.js | 1 + web/settings/assets/vehicle-9505d809.js | 1 - web/settings/assets/vehicle-98b9fcdb.js | 1 - web/settings/assets/vehicle-9efbb8ea.js | 1 - web/settings/assets/vehicle-a7b64348.js | 1 + web/settings/assets/vehicle-ae2c6386.js | 1 + web/settings/assets/vehicle-b82069af.js | 1 - web/settings/assets/vehicle-c0ccdce1.js | 1 + web/settings/assets/vehicle-c13da273.js | 1 + web/settings/assets/vehicle-d60d851d.js | 1 + web/settings/assets/vehicle-da3e8433.js | 1 - web/settings/assets/vehicle-e0cbc84a.js | 1 - web/settings/assets/vehicle-e357d4e3.js | 1 + web/settings/assets/vehicle-e45de3aa.js | 1 - web/settings/assets/vehicle-f2b05f39.js | 1 - web/settings/assets/vehicle-fbca4a35.js | 1 - ...{vendor-25d394b4.js => vendor-50125810.js} | 90 +++++++++---------- web/settings/assets/vendor-axios-1a87d4ae.js | 6 ++ web/settings/assets/vendor-axios-ac33d60c.js | 6 -- ...4cd88e.js => vendor-bootstrap-01761fad.js} | 2 +- ...94a826eb.js => vendor-chartjs-6bace15d.js} | 2 +- ...6813.js => vendor-fortawesome-fc4b3a41.js} | 2 +- ...-3364d39b.js => vendor-jquery-a46fe321.js} | 2 +- ...84ec8.js => vendor-sortablejs-8982fad4.js} | 2 +- web/settings/assets/webTheme-2a8c5ed1.js | 1 + web/settings/assets/webTheme-3d6548f9.js | 1 - web/settings/assets/webTheme-5cb70cc5.js | 1 - web/settings/assets/webTheme-de540af8.js | 1 + web/settings/index.html | 14 +-- 510 files changed, 328 insertions(+), 328 deletions(-) rename web/settings/assets/{ChargeLog-40aaca0a.js => ChargeLog-70085d3d.js} (76%) delete mode 100644 web/settings/assets/ChargePointInstallation-7e22d920.js create mode 100644 web/settings/assets/ChargePointInstallation-f32d3e54.js rename web/settings/assets/{Chart-0e7a4a70.js => Chart-730fde84.js} (89%) delete mode 100644 web/settings/assets/CloudConfig-1f382920.js create mode 100644 web/settings/assets/CloudConfig-832400a4.js delete mode 100644 web/settings/assets/DataManagement-52054445.js create mode 100644 web/settings/assets/DataManagement-e6d61b39.js delete mode 100644 web/settings/assets/DebugConfig-044b24f7.js create mode 100644 web/settings/assets/DebugConfig-0d862fc6.js create mode 100644 web/settings/assets/GeneralChargeConfig-6ea49afe.js delete mode 100644 web/settings/assets/GeneralChargeConfig-d70b0d95.js create mode 100644 web/settings/assets/GeneralConfig-3d40ed90.js delete mode 100644 web/settings/assets/GeneralConfig-cc87a1f9.js create mode 100644 web/settings/assets/HardwareInstallation-8066ca79.js delete mode 100644 web/settings/assets/HardwareInstallation-be759b0c.js create mode 100644 web/settings/assets/IdentificationConfig-1a2c5700.js delete mode 100644 web/settings/assets/IdentificationConfig-a3531ccb.js create mode 100644 web/settings/assets/InstallAssistant-13cd0d9d.js delete mode 100644 web/settings/assets/InstallAssistant-56db2231.js create mode 100644 web/settings/assets/InstallAssistantStep0-94d0c90f.js delete mode 100644 web/settings/assets/InstallAssistantStep0-acacfc75.js create mode 100644 web/settings/assets/InstallAssistantStep1-9ca3e6aa.js delete mode 100644 web/settings/assets/InstallAssistantStep1-a93e968d.js delete mode 100644 web/settings/assets/InstallAssistantStep10-3d573bb7.js create mode 100644 web/settings/assets/InstallAssistantStep10-c09c6a79.js delete mode 100644 web/settings/assets/InstallAssistantStep2-b4941f0c.js create mode 100644 web/settings/assets/InstallAssistantStep2-d7efcb8f.js create mode 100644 web/settings/assets/InstallAssistantStep3-7d2c9a9e.js delete mode 100644 web/settings/assets/InstallAssistantStep3-b0741703.js create mode 100644 web/settings/assets/InstallAssistantStep4-7746f64c.js delete mode 100644 web/settings/assets/InstallAssistantStep4-f46d2116.js delete mode 100644 web/settings/assets/InstallAssistantStep4.1-8b2ae23f.js create mode 100644 web/settings/assets/InstallAssistantStep4.1-d2c6e9b9.js delete mode 100644 web/settings/assets/InstallAssistantStep5-4a85dca5.js create mode 100644 web/settings/assets/InstallAssistantStep5-a502922e.js delete mode 100644 web/settings/assets/InstallAssistantStep6-5c9750cb.js create mode 100644 web/settings/assets/InstallAssistantStep6-80a98cf3.js create mode 100644 web/settings/assets/InstallAssistantStep7-01325ff0.js delete mode 100644 web/settings/assets/InstallAssistantStep7-2bd98bf0.js rename web/settings/assets/{InstallAssistantStep8-23be5b5b.js => InstallAssistantStep8-65bb7ab2.js} (85%) delete mode 100644 web/settings/assets/InstallAssistantStep9-1aa5b6bf.js create mode 100644 web/settings/assets/InstallAssistantStep9-4ce532e6.js delete mode 100644 web/settings/assets/InstallAssistantStepTemplate-59e1095f.js create mode 100644 web/settings/assets/InstallAssistantStepTemplate-d46144b3.js create mode 100644 web/settings/assets/IoConfig-20eaec88.js delete mode 100644 web/settings/assets/IoConfig-38958e2e.js rename web/settings/assets/{LegalSettings-20201125.js => LegalSettings-1b718a5d.js} (51%) delete mode 100644 web/settings/assets/LoadManagementConfig-61263fe6.js create mode 100644 web/settings/assets/LoadManagementConfig-89605028.js create mode 100644 web/settings/assets/MqttBridgeConfig-25a5936a.js delete mode 100644 web/settings/assets/MqttBridgeConfig-59050cb8.js create mode 100644 web/settings/assets/OpenwbIoPattern-573b772f.js delete mode 100644 web/settings/assets/OpenwbIoPattern-66bb2793.js rename web/settings/assets/{OpenwbIoSinglePattern-14df64f6.js => OpenwbIoSinglePattern-67be81d3.js} (97%) rename web/settings/assets/{OpenwbSortableList-c7b5b151.js => OpenwbSortableList-96f09c46.js} (92%) create mode 100644 web/settings/assets/OptionalComponents-855be104.js delete mode 100644 web/settings/assets/OptionalComponents-a2c47c92.js delete mode 100644 web/settings/assets/PVChargeConfig-b6b84699.js create mode 100644 web/settings/assets/PVChargeConfig-db3a459e.js delete mode 100644 web/settings/assets/Status-76832ed9.js create mode 100644 web/settings/assets/Status-b23f7e03.js create mode 100644 web/settings/assets/Support-028921f1.js delete mode 100644 web/settings/assets/Support-25ac4d94.js create mode 100644 web/settings/assets/System-5e2d0137.js delete mode 100644 web/settings/assets/System-9f60a387.js delete mode 100644 web/settings/assets/TestingStore-3a739645.js create mode 100644 web/settings/assets/TestingStore-4c4aaf29.js create mode 100644 web/settings/assets/VehicleConfig-890c7977.js delete mode 100644 web/settings/assets/VehicleConfig-c6e5b45b.js delete mode 100644 web/settings/assets/backup_cloud-0a9a4a8d.js create mode 100644 web/settings/assets/backup_cloud-23b13a1c.js delete mode 100644 web/settings/assets/backup_cloud-5420b416.js delete mode 100644 web/settings/assets/backup_cloud-66a4543e.js create mode 100644 web/settings/assets/backup_cloud-72a22a71.js create mode 100644 web/settings/assets/backup_cloud-bfc3a02f.js delete mode 100644 web/settings/assets/backup_cloud-e3708975.js create mode 100644 web/settings/assets/backup_cloud-fc511ccc.js delete mode 100644 web/settings/assets/bat-01a2f194.js delete mode 100644 web/settings/assets/bat-02c96333.js create mode 100644 web/settings/assets/bat-0303c661.js delete mode 100644 web/settings/assets/bat-18693c33.js delete mode 100644 web/settings/assets/bat-1ad29484.js delete mode 100644 web/settings/assets/bat-1e5462e4.js create mode 100644 web/settings/assets/bat-1ede89b7.js delete mode 100644 web/settings/assets/bat-24ebfa6e.js delete mode 100644 web/settings/assets/bat-2e0391d4.js create mode 100644 web/settings/assets/bat-2eb6e306.js delete mode 100644 web/settings/assets/bat-313da7a3.js create mode 100644 web/settings/assets/bat-3690aea0.js delete mode 100644 web/settings/assets/bat-381c4030.js create mode 100644 web/settings/assets/bat-3af7a3ce.js create mode 100644 web/settings/assets/bat-410d986a.js create mode 100644 web/settings/assets/bat-460cfbf5.js create mode 100644 web/settings/assets/bat-4a5e2d78.js delete mode 100644 web/settings/assets/bat-5276ac71.js create mode 100644 web/settings/assets/bat-536ad2ed.js create mode 100644 web/settings/assets/bat-5ab2250c.js delete mode 100644 web/settings/assets/bat-5c9d3bae.js create mode 100644 web/settings/assets/bat-60e92443.js create mode 100644 web/settings/assets/bat-63b2083d.js create mode 100644 web/settings/assets/bat-6b538fb2.js create mode 100644 web/settings/assets/bat-6f26d004.js delete mode 100644 web/settings/assets/bat-74a30937.js create mode 100644 web/settings/assets/bat-84dc10cd.js delete mode 100644 web/settings/assets/bat-9f789e09.js create mode 100644 web/settings/assets/bat-b27a9158.js create mode 100644 web/settings/assets/bat-b6ca0c1a.js create mode 100644 web/settings/assets/bat-bdf83b40.js delete mode 100644 web/settings/assets/bat-be5c48ce.js create mode 100644 web/settings/assets/bat-bef81950.js delete mode 100644 web/settings/assets/bat-caa2d54a.js create mode 100644 web/settings/assets/bat-d270e7cf.js delete mode 100644 web/settings/assets/bat-d365c2cb.js create mode 100644 web/settings/assets/bat-dfe36bde.js delete mode 100644 web/settings/assets/bat-e176c2ff.js delete mode 100644 web/settings/assets/bat-e326742a.js delete mode 100644 web/settings/assets/bat-e4f98942.js create mode 100644 web/settings/assets/bat-e77edf27.js delete mode 100644 web/settings/assets/bat-e9ec040d.js delete mode 100644 web/settings/assets/bat-efda0fab.js delete mode 100644 web/settings/assets/bat-f72ba579.js create mode 100644 web/settings/assets/bat_smart_energy-43f3b393.js delete mode 100644 web/settings/assets/bat_smart_energy-af221efd.js delete mode 100644 web/settings/assets/chargePoint-04f787ef.js create mode 100644 web/settings/assets/chargePoint-15ecf598.js create mode 100644 web/settings/assets/chargePoint-1623ec0b.js rename web/settings/assets/{chargePoint-d206a228.js => chargePoint-1b76c4e2.js} (59%) rename web/settings/assets/{chargePoint-5ae09ebd.js => chargePoint-298a41ae.js} (59%) rename web/settings/assets/{chargePoint-b9360c52.js => chargePoint-3bc810fe.js} (63%) create mode 100644 web/settings/assets/chargePoint-49f400c4.js delete mode 100644 web/settings/assets/chargePoint-5d28cfe6.js delete mode 100644 web/settings/assets/chargePoint-8808c043.js create mode 100644 web/settings/assets/chargePoint-9bb6ac88.js delete mode 100644 web/settings/assets/chargePoint-c7a2ef8c.js rename web/settings/assets/{commands-6baac453.js => commands-55f6367a.js} (59%) rename web/settings/assets/{commands-c6ddc747.js => commands-8f629639.js} (54%) delete mode 100644 web/settings/assets/consumption_counter-1c9b3251.js create mode 100644 web/settings/assets/consumption_counter-4f8ba92c.js delete mode 100644 web/settings/assets/counter-01d8e9a4.js delete mode 100644 web/settings/assets/counter-1346ff10.js delete mode 100644 web/settings/assets/counter-165ce997.js create mode 100644 web/settings/assets/counter-170c4e9b.js delete mode 100644 web/settings/assets/counter-189db4df.js create mode 100644 web/settings/assets/counter-19c86db9.js create mode 100644 web/settings/assets/counter-1d22e45e.js delete mode 100644 web/settings/assets/counter-1f565ee4.js delete mode 100644 web/settings/assets/counter-21bc2bc2.js delete mode 100644 web/settings/assets/counter-2438b11a.js create mode 100644 web/settings/assets/counter-29be21bf.js delete mode 100644 web/settings/assets/counter-2aac942b.js create mode 100644 web/settings/assets/counter-2abab92c.js create mode 100644 web/settings/assets/counter-2b8e7c78.js delete mode 100644 web/settings/assets/counter-32894ee7.js delete mode 100644 web/settings/assets/counter-332c42a7.js delete mode 100644 web/settings/assets/counter-37d67776.js create mode 100644 web/settings/assets/counter-3a72c8c9.js delete mode 100644 web/settings/assets/counter-3c133de8.js create mode 100644 web/settings/assets/counter-3ca7ffbd.js delete mode 100644 web/settings/assets/counter-3e1bf7f1.js create mode 100644 web/settings/assets/counter-41e364f6.js create mode 100644 web/settings/assets/counter-4829f82d.js create mode 100644 web/settings/assets/counter-4c3ca39c.js create mode 100644 web/settings/assets/counter-4eb55d38.js delete mode 100644 web/settings/assets/counter-57c49ae6.js create mode 100644 web/settings/assets/counter-5cd5b153.js delete mode 100644 web/settings/assets/counter-6e1d95d5.js create mode 100644 web/settings/assets/counter-6eb3e0d5.js delete mode 100644 web/settings/assets/counter-70b03053.js delete mode 100644 web/settings/assets/counter-70de76b4.js create mode 100644 web/settings/assets/counter-71ead754.js create mode 100644 web/settings/assets/counter-73f9d00b.js create mode 100644 web/settings/assets/counter-7425f1bb.js create mode 100644 web/settings/assets/counter-74a6b7f4.js create mode 100644 web/settings/assets/counter-74f24773.js delete mode 100644 web/settings/assets/counter-76544a83.js create mode 100644 web/settings/assets/counter-7d49c7a6.js delete mode 100644 web/settings/assets/counter-81dd5705.js create mode 100644 web/settings/assets/counter-8237c33b.js delete mode 100644 web/settings/assets/counter-8725308d.js delete mode 100644 web/settings/assets/counter-8950294b.js create mode 100644 web/settings/assets/counter-92b65758.js create mode 100644 web/settings/assets/counter-955b7de4.js create mode 100644 web/settings/assets/counter-9a7cb966.js create mode 100644 web/settings/assets/counter-a4bd8bd6.js delete mode 100644 web/settings/assets/counter-aa5bda67.js delete mode 100644 web/settings/assets/counter-ac45f9c2.js create mode 100644 web/settings/assets/counter-aeecbad9.js create mode 100644 web/settings/assets/counter-b24acc4a.js delete mode 100644 web/settings/assets/counter-c21587d3.js delete mode 100644 web/settings/assets/counter-c7ccca56.js create mode 100644 web/settings/assets/counter-c8857016.js create mode 100644 web/settings/assets/counter-c8a85756.js create mode 100644 web/settings/assets/counter-cb484254.js create mode 100644 web/settings/assets/counter-d5daca07.js delete mode 100644 web/settings/assets/counter-d72adf8c.js delete mode 100644 web/settings/assets/counter-d73a3f9b.js create mode 100644 web/settings/assets/counter-de159ac4.js delete mode 100644 web/settings/assets/counter-e48f1cfa.js create mode 100644 web/settings/assets/counter-e7edbb39.js delete mode 100644 web/settings/assets/counter-eadf5e57.js delete mode 100644 web/settings/assets/counter-f02f171d.js delete mode 100644 web/settings/assets/counter-f2628932.js create mode 100644 web/settings/assets/counter-f47d34d5.js create mode 100644 web/settings/assets/counter-f5251d3f.js delete mode 100644 web/settings/assets/counter-f54ee4df.js delete mode 100644 web/settings/assets/counter-f8e5fc32.js delete mode 100644 web/settings/assets/counter-fdd1cfe4.js delete mode 100644 web/settings/assets/counter-fdeb4506.js delete mode 100644 web/settings/assets/counter_consumption-06ae199e.js create mode 100644 web/settings/assets/counter_consumption-901cf616.js create mode 100644 web/settings/assets/counter_sm-c036b032.js delete mode 100644 web/settings/assets/counter_sm-e0173218.js delete mode 100644 web/settings/assets/device-022cb7a5.js delete mode 100644 web/settings/assets/device-026ba885.js delete mode 100644 web/settings/assets/device-04198354.js create mode 100644 web/settings/assets/device-0553aec2.js delete mode 100644 web/settings/assets/device-05904d00.js create mode 100644 web/settings/assets/device-063b8544.js delete mode 100644 web/settings/assets/device-07a65d9a.js create mode 100644 web/settings/assets/device-095d94ba.js create mode 100644 web/settings/assets/device-0a2a87db.js delete mode 100644 web/settings/assets/device-0bd3c0be.js delete mode 100644 web/settings/assets/device-0ff1683d.js delete mode 100644 web/settings/assets/device-115ca373.js create mode 100644 web/settings/assets/device-11bf5d7f.js create mode 100644 web/settings/assets/device-13333def.js delete mode 100644 web/settings/assets/device-14c83532.js delete mode 100644 web/settings/assets/device-160ed507.js delete mode 100644 web/settings/assets/device-18f8c834.js create mode 100644 web/settings/assets/device-1cc93638.js create mode 100644 web/settings/assets/device-1ecd0e84.js delete mode 100644 web/settings/assets/device-2251901f.js create mode 100644 web/settings/assets/device-23990b21.js delete mode 100644 web/settings/assets/device-24f54dcc.js create mode 100644 web/settings/assets/device-25d2441f.js delete mode 100644 web/settings/assets/device-2671fef8.js create mode 100644 web/settings/assets/device-28e1a264.js create mode 100644 web/settings/assets/device-2a2b2695.js create mode 100644 web/settings/assets/device-2b1ae0bb.js delete mode 100644 web/settings/assets/device-2c55f22c.js delete mode 100644 web/settings/assets/device-2f6474c4.js delete mode 100644 web/settings/assets/device-30bde472.js create mode 100644 web/settings/assets/device-318bb1e3.js delete mode 100644 web/settings/assets/device-35f7717e.js delete mode 100644 web/settings/assets/device-37a05407.js delete mode 100644 web/settings/assets/device-3a96f207.js create mode 100644 web/settings/assets/device-3ae4b0dc.js create mode 100644 web/settings/assets/device-3c0ce676.js delete mode 100644 web/settings/assets/device-3c6d5af6.js create mode 100644 web/settings/assets/device-3ee6aa79.js create mode 100644 web/settings/assets/device-3f7b60bf.js create mode 100644 web/settings/assets/device-400899e6.js create mode 100644 web/settings/assets/device-4301268c.js create mode 100644 web/settings/assets/device-431b8934.js delete mode 100644 web/settings/assets/device-4359519d.js create mode 100644 web/settings/assets/device-44029622.js delete mode 100644 web/settings/assets/device-444877fe.js delete mode 100644 web/settings/assets/device-45750f00.js create mode 100644 web/settings/assets/device-46dae0da.js delete mode 100644 web/settings/assets/device-46ed909c.js delete mode 100644 web/settings/assets/device-4b1ba85f.js delete mode 100644 web/settings/assets/device-4b49e69a.js delete mode 100644 web/settings/assets/device-4bbfca01.js delete mode 100644 web/settings/assets/device-4c47ea65.js create mode 100644 web/settings/assets/device-4ce19f90.js create mode 100644 web/settings/assets/device-50f7a9ff.js delete mode 100644 web/settings/assets/device-52049b98.js create mode 100644 web/settings/assets/device-5343ce64.js delete mode 100644 web/settings/assets/device-54b2f204.js delete mode 100644 web/settings/assets/device-57c43c99.js delete mode 100644 web/settings/assets/device-585500cc.js delete mode 100644 web/settings/assets/device-5c141e99.js create mode 100644 web/settings/assets/device-5cab91ce.js delete mode 100644 web/settings/assets/device-6017ed76.js create mode 100644 web/settings/assets/device-60677da2.js delete mode 100644 web/settings/assets/device-6081837f.js create mode 100644 web/settings/assets/device-642a9f6f.js create mode 100644 web/settings/assets/device-659f1d77.js create mode 100644 web/settings/assets/device-65c6662e.js create mode 100644 web/settings/assets/device-671bcffc.js delete mode 100644 web/settings/assets/device-6ea8eb37.js create mode 100644 web/settings/assets/device-7163038e.js create mode 100644 web/settings/assets/device-75b024ee.js create mode 100644 web/settings/assets/device-765526b8.js delete mode 100644 web/settings/assets/device-77ab491f.js create mode 100644 web/settings/assets/device-78a44c29.js delete mode 100644 web/settings/assets/device-7a7db35b.js delete mode 100644 web/settings/assets/device-7c75fb7c.js delete mode 100644 web/settings/assets/device-7d03d320.js delete mode 100644 web/settings/assets/device-7def54a5.js delete mode 100644 web/settings/assets/device-803b339a.js create mode 100644 web/settings/assets/device-80cfaffc.js delete mode 100644 web/settings/assets/device-85f57776.js create mode 100644 web/settings/assets/device-8684e5fd.js delete mode 100644 web/settings/assets/device-86e0a461.js delete mode 100644 web/settings/assets/device-8739b2fb.js create mode 100644 web/settings/assets/device-8743d202.js create mode 100644 web/settings/assets/device-881b7363.js create mode 100644 web/settings/assets/device-88f4058a.js create mode 100644 web/settings/assets/device-8ad316ba.js create mode 100644 web/settings/assets/device-8bca7e20.js delete mode 100644 web/settings/assets/device-8ec43ff9.js delete mode 100644 web/settings/assets/device-91624bc5.js delete mode 100644 web/settings/assets/device-91d8873a.js create mode 100644 web/settings/assets/device-961232b3.js delete mode 100644 web/settings/assets/device-9962b0b8.js create mode 100644 web/settings/assets/device-99902fe5.js create mode 100644 web/settings/assets/device-99cb2dcd.js delete mode 100644 web/settings/assets/device-9dcf188a.js create mode 100644 web/settings/assets/device-9f80ec42.js create mode 100644 web/settings/assets/device-9fca3461.js delete mode 100644 web/settings/assets/device-9fec4861.js delete mode 100644 web/settings/assets/device-a0f15220.js create mode 100644 web/settings/assets/device-a36af1b2.js create mode 100644 web/settings/assets/device-a9d743f1.js create mode 100644 web/settings/assets/device-aa389719.js delete mode 100644 web/settings/assets/device-aab545a0.js delete mode 100644 web/settings/assets/device-ab579910.js delete mode 100644 web/settings/assets/device-abd46e94.js delete mode 100644 web/settings/assets/device-ad31bc6c.js delete mode 100644 web/settings/assets/device-ae4f5ccf.js delete mode 100644 web/settings/assets/device-b2f0a632.js delete mode 100644 web/settings/assets/device-b3265f86.js delete mode 100644 web/settings/assets/device-b3818b6c.js create mode 100644 web/settings/assets/device-b39daa3e.js create mode 100644 web/settings/assets/device-b4339cb2.js create mode 100644 web/settings/assets/device-b63f7410.js delete mode 100644 web/settings/assets/device-b933a21c.js delete mode 100644 web/settings/assets/device-b94aa2cd.js delete mode 100644 web/settings/assets/device-bb1ccbe7.js delete mode 100644 web/settings/assets/device-bba31079.js create mode 100644 web/settings/assets/device-bd81fe78.js create mode 100644 web/settings/assets/device-c04b431d.js create mode 100644 web/settings/assets/device-c21b61c6.js create mode 100644 web/settings/assets/device-c41d2ff7.js delete mode 100644 web/settings/assets/device-c8921d75.js create mode 100644 web/settings/assets/device-ca171f86.js create mode 100644 web/settings/assets/device-ca2216bb.js delete mode 100644 web/settings/assets/device-cbf306be.js create mode 100644 web/settings/assets/device-cc5378a8.js create mode 100644 web/settings/assets/device-d3c47c07.js create mode 100644 web/settings/assets/device-d450da5d.js delete mode 100644 web/settings/assets/device-d7f94b0d.js delete mode 100644 web/settings/assets/device-d8332f79.js create mode 100644 web/settings/assets/device-da0c44d0.js delete mode 100644 web/settings/assets/device-daf6231d.js create mode 100644 web/settings/assets/device-dc52892c.js create mode 100644 web/settings/assets/device-dc9ef32a.js delete mode 100644 web/settings/assets/device-dcaf1061.js delete mode 100644 web/settings/assets/device-e379eb65.js create mode 100644 web/settings/assets/device-e470aa3a.js create mode 100644 web/settings/assets/device-e5ec8653.js create mode 100644 web/settings/assets/device-e966116d.js create mode 100644 web/settings/assets/device-e99aa4c8.js delete mode 100644 web/settings/assets/device-ea2ecac8.js create mode 100644 web/settings/assets/device-ee7a56fb.js create mode 100644 web/settings/assets/device-ef964622.js delete mode 100644 web/settings/assets/device-fba9cb18.js create mode 100644 web/settings/assets/device-fc594731.js create mode 100644 web/settings/assets/device-fee0c0ea.js create mode 100644 web/settings/assets/displayTheme-1cde14a1.js create mode 100644 web/settings/assets/displayTheme-574a4f61.js delete mode 100644 web/settings/assets/displayTheme-717a89a9.js delete mode 100644 web/settings/assets/displayTheme-cf89ddcd.js create mode 100644 web/settings/assets/electricity_tariff-1801c7f1.js delete mode 100644 web/settings/assets/electricity_tariff-1ac1c5ab.js create mode 100644 web/settings/assets/electricity_tariff-364c39ff.js delete mode 100644 web/settings/assets/electricity_tariff-377f97e7.js rename web/settings/assets/{electricity_tariff-ae11ea5d.js => electricity_tariff-45b171ab.js} (72%) delete mode 100644 web/settings/assets/electricity_tariff-6a090d74.js delete mode 100644 web/settings/assets/electricity_tariff-701d2b86.js delete mode 100644 web/settings/assets/electricity_tariff-7bb00a2f.js create mode 100644 web/settings/assets/electricity_tariff-81299fd9.js delete mode 100644 web/settings/assets/electricity_tariff-8d854ff1.js create mode 100644 web/settings/assets/electricity_tariff-96f61949.js create mode 100644 web/settings/assets/electricity_tariff-982b4ff6.js create mode 100644 web/settings/assets/electricity_tariff-b0a556e0.js create mode 100644 web/settings/assets/electricity_tariff-bb07cc98.js delete mode 100644 web/settings/assets/electricity_tariff-cf2ab1f8.js delete mode 100644 web/settings/assets/external_inverter-8e60306f.js create mode 100644 web/settings/assets/external_inverter-bead5b8d.js delete mode 100644 web/settings/assets/index-8dd8e083.js create mode 100644 web/settings/assets/index-c94f8df4.js delete mode 100644 web/settings/assets/inverter-01923309.js create mode 100644 web/settings/assets/inverter-02db9c3f.js create mode 100644 web/settings/assets/inverter-037d9ebd.js create mode 100644 web/settings/assets/inverter-05bcd6e7.js create mode 100644 web/settings/assets/inverter-07777da1.js delete mode 100644 web/settings/assets/inverter-0b8cbadd.js create mode 100644 web/settings/assets/inverter-1287c8cd.js delete mode 100644 web/settings/assets/inverter-1484b10b.js create mode 100644 web/settings/assets/inverter-14c9afae.js create mode 100644 web/settings/assets/inverter-17495f9f.js delete mode 100644 web/settings/assets/inverter-218dfb39.js delete mode 100644 web/settings/assets/inverter-254014f2.js create mode 100644 web/settings/assets/inverter-25fc7f37.js create mode 100644 web/settings/assets/inverter-26256af8.js delete mode 100644 web/settings/assets/inverter-2e642f10.js delete mode 100644 web/settings/assets/inverter-31446a68.js delete mode 100644 web/settings/assets/inverter-332388ea.js delete mode 100644 web/settings/assets/inverter-3370b8b6.js delete mode 100644 web/settings/assets/inverter-3fe8754b.js create mode 100644 web/settings/assets/inverter-42148877.js delete mode 100644 web/settings/assets/inverter-423aa924.js create mode 100644 web/settings/assets/inverter-43433c4d.js create mode 100644 web/settings/assets/inverter-46bb7438.js create mode 100644 web/settings/assets/inverter-4c2e20ed.js delete mode 100644 web/settings/assets/inverter-5531e828.js create mode 100644 web/settings/assets/inverter-61c893a1.js delete mode 100644 web/settings/assets/inverter-6427ac53.js create mode 100644 web/settings/assets/inverter-698ee7a4.js create mode 100644 web/settings/assets/inverter-7a061d6b.js delete mode 100644 web/settings/assets/inverter-7afcc2ba.js delete mode 100644 web/settings/assets/inverter-7bea2389.js delete mode 100644 web/settings/assets/inverter-809f70c1.js delete mode 100644 web/settings/assets/inverter-811d2fd2.js create mode 100644 web/settings/assets/inverter-8ad0f9f7.js delete mode 100644 web/settings/assets/inverter-9022a53b.js create mode 100644 web/settings/assets/inverter-9120bfd2.js delete mode 100644 web/settings/assets/inverter-948bcdb7.js create mode 100644 web/settings/assets/inverter-95e857e0.js delete mode 100644 web/settings/assets/inverter-96158dd7.js delete mode 100644 web/settings/assets/inverter-97aca950.js create mode 100644 web/settings/assets/inverter-9961dcdb.js create mode 100644 web/settings/assets/inverter-ac4d7f34.js delete mode 100644 web/settings/assets/inverter-b447983e.js delete mode 100644 web/settings/assets/inverter-b490ca31.js create mode 100644 web/settings/assets/inverter-b4a73b4a.js create mode 100644 web/settings/assets/inverter-b4deb54d.js delete mode 100644 web/settings/assets/inverter-b99fda43.js delete mode 100644 web/settings/assets/inverter-bc849b92.js create mode 100644 web/settings/assets/inverter-ca193c42.js delete mode 100644 web/settings/assets/inverter-d41890ab.js delete mode 100644 web/settings/assets/inverter-d8e7de15.js delete mode 100644 web/settings/assets/inverter-e626a82d.js create mode 100644 web/settings/assets/inverter-e73b2e99.js create mode 100644 web/settings/assets/inverter-e923e9ca.js delete mode 100644 web/settings/assets/inverter-ea38ab2a.js delete mode 100644 web/settings/assets/inverter-f1be98fb.js create mode 100644 web/settings/assets/inverter-f377a9ba.js delete mode 100644 web/settings/assets/inverter-f4ccd46a.js create mode 100644 web/settings/assets/inverter-f4d336b7.js create mode 100644 web/settings/assets/inverter-f8595260.js create mode 100644 web/settings/assets/inverter-fbc7ce2f.js create mode 100644 web/settings/assets/inverter-fd3f7e7e.js create mode 100644 web/settings/assets/inverter_secondary-456c249b.js delete mode 100644 web/settings/assets/inverter_secondary-be8c6f76.js rename web/settings/assets/{io_action-7fdda1cd.js => io_action-3c4c6f74.js} (60%) delete mode 100644 web/settings/assets/io_action-639b3028.js rename web/settings/assets/{io_action-a52c3f8c.js => io_action-82034a26.js} (50%) rename web/settings/assets/{io_action-d6457738.js => io_action-8211f02f.js} (59%) create mode 100644 web/settings/assets/io_action-f1a6dc2b.js create mode 100644 web/settings/assets/io_device-1f979b15.js delete mode 100644 web/settings/assets/io_device-4394e2dd.js rename web/settings/assets/{io_device-e4d01342.js => io_device-ac0abd6b.js} (70%) delete mode 100644 web/settings/assets/monitoring-1f99e249.js create mode 100644 web/settings/assets/monitoring-b9e2cec0.js delete mode 100644 web/settings/assets/vehicle-04c99766.js create mode 100644 web/settings/assets/vehicle-0f781a6d.js create mode 100644 web/settings/assets/vehicle-11bc2552.js rename web/settings/assets/{vehicle-16754a95.js => vehicle-151eb75d.js} (69%) create mode 100644 web/settings/assets/vehicle-25a4898c.js create mode 100644 web/settings/assets/vehicle-2a399b60.js rename web/settings/assets/{vehicle-65e3046c.js => vehicle-2e28fc2a.js} (52%) create mode 100644 web/settings/assets/vehicle-2f3715ab.js rename web/settings/assets/{vehicle-fe38074f.js => vehicle-2fbbd65b.js} (85%) create mode 100644 web/settings/assets/vehicle-31ef3978.js create mode 100644 web/settings/assets/vehicle-32689279.js create mode 100644 web/settings/assets/vehicle-377b2545.js delete mode 100644 web/settings/assets/vehicle-38543ffd.js delete mode 100644 web/settings/assets/vehicle-3896a2ec.js delete mode 100644 web/settings/assets/vehicle-3cb9cb75.js create mode 100644 web/settings/assets/vehicle-45b245c8.js delete mode 100644 web/settings/assets/vehicle-4a5ca121.js delete mode 100644 web/settings/assets/vehicle-673ea579.js delete mode 100644 web/settings/assets/vehicle-70e7db8e.js create mode 100644 web/settings/assets/vehicle-7c8da79e.js delete mode 100644 web/settings/assets/vehicle-8289a840.js create mode 100644 web/settings/assets/vehicle-8a029fa4.js delete mode 100644 web/settings/assets/vehicle-8c0aaa75.js create mode 100644 web/settings/assets/vehicle-902f8abd.js delete mode 100644 web/settings/assets/vehicle-9505d809.js delete mode 100644 web/settings/assets/vehicle-98b9fcdb.js delete mode 100644 web/settings/assets/vehicle-9efbb8ea.js create mode 100644 web/settings/assets/vehicle-a7b64348.js create mode 100644 web/settings/assets/vehicle-ae2c6386.js delete mode 100644 web/settings/assets/vehicle-b82069af.js create mode 100644 web/settings/assets/vehicle-c0ccdce1.js create mode 100644 web/settings/assets/vehicle-c13da273.js create mode 100644 web/settings/assets/vehicle-d60d851d.js delete mode 100644 web/settings/assets/vehicle-da3e8433.js delete mode 100644 web/settings/assets/vehicle-e0cbc84a.js create mode 100644 web/settings/assets/vehicle-e357d4e3.js delete mode 100644 web/settings/assets/vehicle-e45de3aa.js delete mode 100644 web/settings/assets/vehicle-f2b05f39.js delete mode 100644 web/settings/assets/vehicle-fbca4a35.js rename web/settings/assets/{vendor-25d394b4.js => vendor-50125810.js} (87%) create mode 100644 web/settings/assets/vendor-axios-1a87d4ae.js delete mode 100644 web/settings/assets/vendor-axios-ac33d60c.js rename web/settings/assets/{vendor-bootstrap-374cd88e.js => vendor-bootstrap-01761fad.js} (99%) rename web/settings/assets/{vendor-chartjs-94a826eb.js => vendor-chartjs-6bace15d.js} (99%) rename web/settings/assets/{vendor-fortawesome-a02b6813.js => vendor-fortawesome-fc4b3a41.js} (99%) rename web/settings/assets/{vendor-jquery-3364d39b.js => vendor-jquery-a46fe321.js} (99%) rename web/settings/assets/{vendor-sortablejs-0eb84ec8.js => vendor-sortablejs-8982fad4.js} (99%) create mode 100644 web/settings/assets/webTheme-2a8c5ed1.js delete mode 100644 web/settings/assets/webTheme-3d6548f9.js delete mode 100644 web/settings/assets/webTheme-5cb70cc5.js create mode 100644 web/settings/assets/webTheme-de540af8.js diff --git a/web/settings/assets/ChargeLog-40aaca0a.js b/web/settings/assets/ChargeLog-70085d3d.js similarity index 76% rename from web/settings/assets/ChargeLog-40aaca0a.js rename to web/settings/assets/ChargeLog-70085d3d.js index d8b02c8b82..c999fe3291 100644 --- a/web/settings/assets/ChargeLog-40aaca0a.js +++ b/web/settings/assets/ChargeLog-70085d3d.js @@ -1,3 +1,3 @@ -import{l as N,a2 as k,a3 as B,F as x}from"./vendor-fortawesome-a02b6813.js";import{_ as E,a1 as S,u,l as h,m as c,G as g,E as i,A as s,x as V,z as I,B as d,F as n,P as _,q as w}from"./vendor-25d394b4.js";import{C as W}from"./index-8dd8e083.js";import"./vendor-sortablejs-0eb84ec8.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";N.add(k,B);const F={name:"OpenwbChargeLogView",components:{Vue3TableLite:S,FontAwesomeIcon:x},mixins:[W],emits:["sendCommand"],data(){return{dateTimeFormat:new Intl.DateTimeFormat(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}),mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/charge_log_data_config","openWB/chargepoint/+/config","openWB/vehicle/+/name"],currentMonth:"",chargeLogRequestData:{month:"",year:"",filter:{chargepoint:{id:[]},vehicle:{id:[],tag:[],chargemode:[],prio:void 0}}},downloadFile:null,table:{messages:{pagingInfo:"Einträge {0}-{1} von {2}",pageSizeChangeLabel:"Einträge:",gotoPageLabel:" Gehe zu:",noDataAvailable:"Keine Einträge gefunden."},pageOptions:[{value:5,text:"5"},{value:10,text:"10"},{value:25,text:"25"},{value:50,text:"50"},{value:100,text:"100"}],columns:[{label:"Beginn",field:"time_begin",sortable:!0},{label:"Ende",field:"time_end",sortable:!0},{label:"Dauer",field:"time_time_charged",sortable:!0},{label:"Kosten",field:"data_costs",sortable:!0},{label:"Energieaufteilung",field:"data_power_source",sortable:!1},{label:"Fahrzeug",field:"vehicle_name",sortable:!0},{label:"Lademodus",field:"vehicle_chargemode",sortable:!0},{label:"Priorität",field:"vehicle_prio",sortable:!0},{label:"ID-Tag",field:"vehicle_rfid",sortable:!0},{label:"SoC Beginn",field:"vehicle_soc_at_start",sortable:!0},{label:"SoC Ende",field:"vehicle_soc_at_end",sortable:!0},{label:"Ladepunkt",field:"chargepoint_name",sortable:!0},{label:"Seriennummer",field:"chargepoint_serial_number",sortable:!0},{label:"Energie",field:"data_imported_since_mode_switch",sortable:!0},{label:"Zähler Beginn",field:"chargepoint_imported_at_start",sortable:!0},{label:"Zähler Ende",field:"chargepoint_imported_at_end",sortable:!0}],sortable:{order:"timestamp_begin",sort:"asc"}},totals:{columns:[{label:"Dauer",field:"time_charged",sortable:!1},{label:"Energie",field:"imported_since_mode_switch",sortable:!1},{label:"Reichweite",field:"range_charged",sortable:!1},{label:"Kosten",field:"costs",sortable:!1}]}}},computed:{mqttClientId(){return this.$root.mqttClientId},baseUrl(){const t=parseInt(location.port)||(location.protocol==="https:"?443:80);return`${location.protocol}//${location.hostname}:${t}/openWB/web/settings/downloadChargeLog.php`},downloadUrlMonth(){return!this.chargeLogRequestData.year||!this.chargeLogRequestData.month?(console.error("Fehlende Parameter für Monat oder Jahr"),null):`${this.baseUrl}?year=${this.chargeLogRequestData.year}&month=${this.chargeLogRequestData.month}`},downloadUrlYear(){return this.chargeLogRequestData.year?`${this.baseUrl}?year=${this.chargeLogRequestData.year}`:(console.error("Fehlendes Jahr"),null)},chargeLogDate:{get(){return this.chargeLogRequestData.year+"-"+this.chargeLogRequestData.month},set(t){let e=t.split("-");this.chargeLogRequestData.year=e[0],this.chargeLogRequestData.month=e[1]}},chargeLogTotals(){return this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"]?[this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"].totals]:[]},chargeLogColumns(){return this.table.columns.map(t=>({...t,headerClasses:this.addClasses(t.field),columnClasses:this.addClasses(t.field)}))},chargeLogDataset:{get(){if(this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"]==null)return[];try{return this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"].entries.map(t=>{var e=Date.parse(t.time.begin),o=Date.parse(t.time.end);return{chargepoint_id:t.chargepoint.id,chargepoint_name:t.chargepoint.name,chargepoint_imported_at_start:t.chargepoint.imported_at_start,chargepoint_imported_at_end:t.chargepoint.imported_at_end,chargepoint_serial_number:t.chargepoint.serial_number,vehicle_id:t.vehicle.id,vehicle_name:t.vehicle.name,vehicle_chargemode:this.translateChargeMode(t.vehicle.chargemode),vehicle_rfid:t.vehicle.rfid,vehicle_prio:t.vehicle.prio,vehicle_soc_at_start:t.vehicle.soc_at_start,vehicle_soc_at_end:t.vehicle.soc_at_end,vehicle_range_at_start:t.vehicle.range_at_start,vehicle_range_at_end:t.vehicle.range_at_end,timestamp_begin:e/1e3,time_begin:isNaN(e)?null:this.dateTimeFormat.format(new Date(e)),timestamp_end:o/1e3,time_end:isNaN(o)?null:this.dateTimeFormat.format(new Date(o)),time_time_charged:t.time.time_charged,data_power_source:t.data.power_source?{pv:t.data.power_source.pv*100,grid:t.data.power_source.grid*100,bat:t.data.power_source.bat*100,cp:t.data.power_source.cp*100}:void 0,data_range_charged:t.data.range_charged,data_costs:t.data.costs,data_imported_since_plugged:t.data.imported_since_plugged,data_imported_since_mode_switch:t.data.imported_since_mode_switch}})}catch(t){return console.error(t),[]}}},chargeLogCsv:{get(){return[['"Beginn"','"Ende"','"Zeitstempel Beginn"','"Zeitstempel Ende"','"Dauer"','"Kosten"','"Energieanteil Netz"','"Energieanteil Ladepunkte"','"Energieanteil Speicher"','"Energieanteil PV"','"Fahrzeug"','"Fahrzeug-ID"','"Lademodus"','"Priorität"','"ID-Tag"','"SoC Beginn"','"SoC Ende"','"Reichweite Beginn"','"Reichweite Ende"','"Ladepunkt"','"Ladepunkt-ID"','"Zähler Seriennummer"','"Energie"','"Reichweite"','"Zählerstand Beginn"','"Zählerstand Ende"','"Energie seit Anstecken"'],...this.chargeLogDataset.map(e=>[e.time_begin==null?"":'"'+e.time_begin+'"',e.time_end==null?"":'"'+e.time_end+'"',e.timestamp_begin==null||isNaN(e.timestamp_begin)?"":e.timestamp_begin,e.timestamp_end==null||isNaN(e.timestamp_end)?"":e.timestamp_end,'"'+e.time_time_charged+'"',this.formatCosts(e.data_costs,!1),e.data_power_source==null?"":this.formatNumber(e.data_power_source.grid,2),e.data_power_source==null?"":this.formatNumber(e.data_power_source.cp,2),e.data_power_source==null?"":this.formatNumber(e.data_power_source.bat,2),e.data_power_source==null?"":this.formatNumber(e.data_power_source.pv,2),'"'+e.vehicle_name+'"',e.vehicle_id,'"'+e.vehicle_chargemode+'"','"'+this.formatBool(e.vehicle_prio)+'"',e.vehicle_rfid==null?"":'"'+e.vehicle_rfid+'"',e.vehicle_soc_at_start==null?"":this.formatNumber(e.vehicle_soc_at_start,0),e.vehicle_soc_at_end==null?"":this.formatNumber(e.vehicle_soc_at_end,0),e.vehicle_range_at_start==null?"":this.formatNumber(e.vehicle_range_at_start,0),e.vehicle_range_at_end==null?"":this.formatNumber(e.vehicle_range_at_end,0),'"'+e.chargepoint_name+'"',e.chargepoint_id,e.chargepoint_serial_number==null?"":'"'+e.chargepoint_serial_number+'"',this.formatNumber(e.data_imported_since_mode_switch/1e3,2),this.formatNumber(e.data_range_charged,0),this.formatNumber(e.chargepoint_imported_at_start/1e3,2),this.formatNumber(e.chargepoint_imported_at_end/1e3,2),this.formatNumber(e.data_imported_since_plugged/1e3,2)])].map(e=>e.join(";")).join(` +import{l as N,a2 as k,a3 as B,F as x}from"./vendor-fortawesome-fc4b3a41.js";import{_ as E,a1 as S,u,l as h,m as c,G as g,E as i,A as s,x as V,z as I,B as d,F as n,P as _,q as w}from"./vendor-50125810.js";import{C as W}from"./index-c94f8df4.js";import"./vendor-sortablejs-8982fad4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";N.add(k,B);const F={name:"OpenwbChargeLogView",components:{Vue3TableLite:S,FontAwesomeIcon:x},mixins:[W],emits:["sendCommand"],data(){return{dateTimeFormat:new Intl.DateTimeFormat(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}),mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/charge_log_data_config","openWB/chargepoint/+/config","openWB/vehicle/+/name"],currentMonth:"",chargeLogRequestData:{month:"",year:"",filter:{chargepoint:{id:[]},vehicle:{id:[],tag:[],chargemode:[],prio:void 0}}},downloadFile:null,table:{messages:{pagingInfo:"Einträge {0}-{1} von {2}",pageSizeChangeLabel:"Einträge:",gotoPageLabel:" Gehe zu:",noDataAvailable:"Keine Einträge gefunden."},pageOptions:[{value:5,text:"5"},{value:10,text:"10"},{value:25,text:"25"},{value:50,text:"50"},{value:100,text:"100"}],columns:[{label:"Beginn",field:"time_begin",sortable:!0},{label:"Ende",field:"time_end",sortable:!0},{label:"Dauer",field:"time_time_charged",sortable:!0},{label:"Kosten",field:"data_costs",sortable:!0},{label:"Energieaufteilung",field:"data_power_source",sortable:!1},{label:"Fahrzeug",field:"vehicle_name",sortable:!0},{label:"Lademodus",field:"vehicle_chargemode",sortable:!0},{label:"Priorität",field:"vehicle_prio",sortable:!0},{label:"ID-Tag",field:"vehicle_rfid",sortable:!0},{label:"SoC Beginn",field:"vehicle_soc_at_start",sortable:!0},{label:"SoC Ende",field:"vehicle_soc_at_end",sortable:!0},{label:"Ladepunkt",field:"chargepoint_name",sortable:!0},{label:"Seriennummer",field:"chargepoint_serial_number",sortable:!0},{label:"Energie",field:"data_imported_since_mode_switch",sortable:!0},{label:"Zähler Beginn",field:"chargepoint_imported_at_start",sortable:!0},{label:"Zähler Ende",field:"chargepoint_imported_at_end",sortable:!0}],sortable:{order:"timestamp_begin",sort:"asc"}},totals:{columns:[{label:"Dauer",field:"time_charged",sortable:!1},{label:"Energie",field:"imported_since_mode_switch",sortable:!1},{label:"Reichweite",field:"range_charged",sortable:!1},{label:"Kosten",field:"costs",sortable:!1}]}}},computed:{mqttClientId(){return this.$root.mqttClientId},baseUrl(){const t=parseInt(location.port)||(location.protocol==="https:"?443:80);return`${location.protocol}//${location.hostname}:${t}/openWB/web/settings/downloadChargeLog.php`},downloadUrlMonth(){return!this.chargeLogRequestData.year||!this.chargeLogRequestData.month?(console.error("Fehlende Parameter für Monat oder Jahr"),null):`${this.baseUrl}?year=${this.chargeLogRequestData.year}&month=${this.chargeLogRequestData.month}`},downloadUrlYear(){return this.chargeLogRequestData.year?`${this.baseUrl}?year=${this.chargeLogRequestData.year}`:(console.error("Fehlendes Jahr"),null)},chargeLogDate:{get(){return this.chargeLogRequestData.year+"-"+this.chargeLogRequestData.month},set(t){let e=t.split("-");this.chargeLogRequestData.year=e[0],this.chargeLogRequestData.month=e[1]}},chargeLogTotals(){return this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"]?[this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"].totals]:[]},chargeLogColumns(){return this.table.columns.map(t=>({...t,headerClasses:this.addClasses(t.field),columnClasses:this.addClasses(t.field)}))},chargeLogDataset:{get(){if(this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"]==null)return[];try{return this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"].entries.map(t=>{var e=Date.parse(t.time.begin),o=Date.parse(t.time.end);return{chargepoint_id:t.chargepoint.id,chargepoint_name:t.chargepoint.name,chargepoint_imported_at_start:t.chargepoint.imported_at_start,chargepoint_imported_at_end:t.chargepoint.imported_at_end,chargepoint_serial_number:t.chargepoint.serial_number,vehicle_id:t.vehicle.id,vehicle_name:t.vehicle.name,vehicle_chargemode:this.translateChargeMode(t.vehicle.chargemode),vehicle_rfid:t.vehicle.rfid,vehicle_prio:t.vehicle.prio,vehicle_soc_at_start:t.vehicle.soc_at_start,vehicle_soc_at_end:t.vehicle.soc_at_end,vehicle_range_at_start:t.vehicle.range_at_start,vehicle_range_at_end:t.vehicle.range_at_end,timestamp_begin:e/1e3,time_begin:isNaN(e)?null:this.dateTimeFormat.format(new Date(e)),timestamp_end:o/1e3,time_end:isNaN(o)?null:this.dateTimeFormat.format(new Date(o)),time_time_charged:t.time.time_charged,data_power_source:t.data.power_source?{pv:t.data.power_source.pv*100,grid:t.data.power_source.grid*100,bat:t.data.power_source.bat*100,cp:t.data.power_source.cp*100}:void 0,data_range_charged:t.data.range_charged,data_costs:t.data.costs,data_imported_since_plugged:t.data.imported_since_plugged,data_imported_since_mode_switch:t.data.imported_since_mode_switch}})}catch(t){return console.error(t),[]}}},chargeLogCsv:{get(){return[['"Beginn"','"Ende"','"Zeitstempel Beginn"','"Zeitstempel Ende"','"Dauer"','"Kosten"','"Energieanteil Netz"','"Energieanteil Ladepunkte"','"Energieanteil Speicher"','"Energieanteil PV"','"Fahrzeug"','"Fahrzeug-ID"','"Lademodus"','"Priorität"','"ID-Tag"','"SoC Beginn"','"SoC Ende"','"Reichweite Beginn"','"Reichweite Ende"','"Ladepunkt"','"Ladepunkt-ID"','"Zähler Seriennummer"','"Energie"','"Reichweite"','"Zählerstand Beginn"','"Zählerstand Ende"','"Energie seit Anstecken"'],...this.chargeLogDataset.map(e=>[e.time_begin==null?"":'"'+e.time_begin+'"',e.time_end==null?"":'"'+e.time_end+'"',e.timestamp_begin==null||isNaN(e.timestamp_begin)?"":e.timestamp_begin,e.timestamp_end==null||isNaN(e.timestamp_end)?"":e.timestamp_end,'"'+e.time_time_charged+'"',this.formatCosts(e.data_costs,!1),e.data_power_source==null?"":this.formatNumber(e.data_power_source.grid,2),e.data_power_source==null?"":this.formatNumber(e.data_power_source.cp,2),e.data_power_source==null?"":this.formatNumber(e.data_power_source.bat,2),e.data_power_source==null?"":this.formatNumber(e.data_power_source.pv,2),'"'+e.vehicle_name+'"',e.vehicle_id,'"'+e.vehicle_chargemode+'"','"'+this.formatBool(e.vehicle_prio)+'"',e.vehicle_rfid==null?"":'"'+e.vehicle_rfid+'"',e.vehicle_soc_at_start==null?"":this.formatNumber(e.vehicle_soc_at_start,0),e.vehicle_soc_at_end==null?"":this.formatNumber(e.vehicle_soc_at_end,0),e.vehicle_range_at_start==null?"":this.formatNumber(e.vehicle_range_at_start,0),e.vehicle_range_at_end==null?"":this.formatNumber(e.vehicle_range_at_end,0),'"'+e.chargepoint_name+'"',e.chargepoint_id,e.chargepoint_serial_number==null?"":'"'+e.chargepoint_serial_number+'"',this.formatNumber(e.data_imported_since_mode_switch/1e3,2),this.formatNumber(e.data_range_charged,0),this.formatNumber(e.chargepoint_imported_at_start/1e3,2),this.formatNumber(e.chargepoint_imported_at_end/1e3,2),this.formatNumber(e.data_imported_since_plugged/1e3,2)])].map(e=>e.join(";")).join(` `)+` -`}},chargeLogRead:{get(){return this.chargeLogDataset!=null}},chargeLogHasEntries:{get(){return this.chargeLogDataset==null?!1:this.chargeLogDataset.length>0}},totalRecordCount(){return this.chargeLogDataset.length},chargeModeList(){let t=this.chargeModes.map(e=>({value:e,text:this.translateChargeMode(e)}));return t.unshift({value:void 0,text:"Alle"}),t},chargePointList(){let t=this.getWildcardTopics("openWB/chargepoint/+/config");var e=[{value:void 0,text:"Alle"}];for(const[,o]of Object.entries(t))e.push({value:o.id,text:o.name});return e},vehicleList(){let t=this.getWildcardTopics("openWB/vehicle/+/name");var e=[{value:void 0,text:"Alle"}];for(const[o,f]of Object.entries(t)){let l=parseInt(o.match(/\/([0-9]+)\/name$/)[1]);e.push({value:l,text:f})}return e}},beforeMount(){this.mqttTopicsToSubscribe.push("openWB/log/"+this.mqttClientId+"/data")},mounted(){const t=new Date;this.currentMonth=this.chargeLogDate=t.getFullYear()+"-"+String(t.getMonth()+1).padStart(2,"0"),this.requestChargeLog()},methods:{cleanRequestData(){"id"in this.chargeLogRequestData.filter.chargepoint&&(this.chargeLogRequestData.filter.chargepoint.id=this.chargeLogRequestData.filter.chargepoint.id.filter(t=>t!=null)),"chargemode"in this.chargeLogRequestData.filter.vehicle&&(this.chargeLogRequestData.filter.vehicle.chargemode=this.chargeLogRequestData.filter.vehicle.chargemode.filter(t=>t!=null)),"id"in this.chargeLogRequestData.filter.vehicle&&(this.chargeLogRequestData.filter.vehicle.id=this.chargeLogRequestData.filter.vehicle.id.filter(t=>t!=null))},requestChargeLog(){if(document.forms.chargeLogForm.reportValidity())this.cleanRequestData(),this.$emit("sendCommand",{command:"getChargeLog",data:this.chargeLogRequestData});else{console.warn("form invalid");return}},makeTextFile(t){var e=new Blob([t],{type:"text/csv"});return this.downloadFile!==null&&window.URL.revokeObjectURL(this.downloadFile),this.downloadFile=window.URL.createObjectURL(e),this.downloadFile},downloadChargeLog(){this.$refs.downloadChargeLogLink.setAttribute("download","Ladeprotokoll-"+this.chargeLogDate+".csv"),this.$refs.downloadChargeLogLink.href=this.makeTextFile(this.chargeLogCsv),this.$refs.downloadChargeLogLink.dispatchEvent(new MouseEvent("click"))},addClasses(t){return this.$store.state.mqtt["openWB/general/charge_log_data_config"]!==void 0&&Object.hasOwn(this.$store.state.mqtt["openWB/general/charge_log_data_config"],t)?this.$store.state.mqtt["openWB/general/charge_log_data_config"][t]?[]:["d-none"]:[]},getProgressTitle(t){return`Netz: ${this.formatNumber(t.grid,0,0)}%, Ladepunkte: ${this.formatNumber(t.cp,0,0)}%, Speicher: ${this.formatNumber(t.bat,0,0)}%, PV: ${this.formatNumber(t.pv,0,0)}%`},formatBool(t){return t?"Ja":"Nein"},formatW(t,e=!0){let o=this.dashIfNotSet(this.formatNumber(t/1e3,2));return e?o+"kW":o},formatWh(t,e=!0){let o=this.dashIfNotSet(this.formatNumber(t/1e3,2));return e?o+"kWh":o},formatRange(t,e=!0){let o=this.dashIfNotSet(this.formatNumber(t,0));return e?o+"km":o},formatSoc(t,e=!0){let o=this.dashIfNotSet(this.formatNumber(t,0));return e?o+"%":o},formatCosts(t,e=!0){let o=this.dashIfNotSet(this.formatNumber(t,2));return e?o+"€":o},dashIfNotSet(t){return t==null||t==""||t==null?"-":t},getChargeModeClass(t){switch(t){case"Sofort":return"bg-danger";case"PV":return"bg-success";case"Zielladen":return"bg-primary";case"Zeitladen":return"bg-warning";case"Eco":case"Standby":return"bg-secondary";case"Stop":return"bg-dark";default:return console.warn("unknown charge mode:",t),"bg-light"}}}},y={class:"chargeLog"},T={key:0},U={key:1},M={name:"chargeLogForm"},P=["href"],z=["href"],O={key:1},A={class:"td-end"},Z={class:"td-end"},j=["title"],J=["aria-valuenow"],K=["aria-valuenow"],Y=["aria-valuenow"],G=["aria-valuenow"],H={key:1,class:"td-center"},Q={class:"td-end"},X={class:"no-wrap"},$={class:"no-wrap"},ee={class:"td-end"},te={class:"no-wrap"},ae={class:"no-wrap"},re={class:"td-end"},se={class:"no-wrap"},ie={class:"no-wrap"},oe={class:"td-end"},ne={class:"td-end"},le={key:0},de={class:"row justify-content-center"},ge={ref:"downloadChargeLogLink",class:"hide"},ue={class:"td-end"},he={class:"td-end"},ce={class:"td-end"},_e={class:"td-end"};function me(t,e,o,f,l,r){const m=u("openwb-base-alert"),D=u("openwb-base-text-input"),b=u("font-awesome-icon"),C=u("openwb-base-button-group-input"),p=u("openwb-base-select-input"),q=u("openwb-base-array-input"),v=u("openwb-base-card"),L=u("vue3-table-lite"),R=u("openwb-base-click-button");return h(),c("div",y,[t.$store.state.mqtt["openWB/general/extern"]===!0?(h(),c("div",T,[g(m,{subtype:"info"},{default:i(()=>e[13]||(e[13]=[d(' Das Ladeprotokoll ist nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. Du findest alle Ladevorgänge in der openWB, die sich im Steuerungsmodus "primary" befindet. ',-1)])),_:1,__:[13]})])):(h(),c("div",U,[s("form",M,[g(v,{title:"Filter"},{default:i(()=>[g(D,{modelValue:r.chargeLogDate,"onUpdate:modelValue":[e[0]||(e[0]=a=>r.chargeLogDate=a),e[1]||(e[1]=a=>r.requestChargeLog())],title:"Zeitraum",subtype:"month",min:"2018-01","show-quick-buttons":!0,max:l.currentMonth},null,8,["modelValue","max"]),g(v,{title:"Erweiterte Optionen",collapsible:!0,collapsed:!0},{header:i(()=>[g(b,{icon:["fas","filter"]}),e[14]||(e[14]=d(" Erweiterte Optionen ",-1))]),default:i(()=>[g(C,{modelValue:l.chargeLogRequestData.filter.vehicle.prio,"onUpdate:modelValue":[e[2]||(e[2]=a=>l.chargeLogRequestData.filter.vehicle.prio=a),e[3]||(e[3]=a=>r.requestChargeLog())],title:"Priorität",buttons:[{buttonValue:void 0,text:"Alle"},{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),g(p,{modelValue:l.chargeLogRequestData.filter.vehicle.chargemode,"onUpdate:modelValue":[e[4]||(e[4]=a=>l.chargeLogRequestData.filter.vehicle.chargemode=a),e[5]||(e[5]=a=>r.requestChargeLog())],title:"Lademodus",multiple:"",options:r.chargeModeList},{help:i(()=>e[15]||(e[15]=[d(" Es können mehrere Elemente ausgewählt werden. ",-1)])),_:1},8,["modelValue","options"]),g(p,{modelValue:l.chargeLogRequestData.filter.chargepoint.id,"onUpdate:modelValue":[e[6]||(e[6]=a=>l.chargeLogRequestData.filter.chargepoint.id=a),e[7]||(e[7]=a=>r.requestChargeLog())],title:"Ladepunkt",multiple:"",options:r.chargePointList},{help:i(()=>e[16]||(e[16]=[d(" Es können mehrere Elemente ausgewählt werden. ",-1)])),_:1},8,["modelValue","options"]),g(p,{modelValue:l.chargeLogRequestData.filter.vehicle.id,"onUpdate:modelValue":[e[8]||(e[8]=a=>l.chargeLogRequestData.filter.vehicle.id=a),e[9]||(e[9]=a=>r.requestChargeLog())],title:"Fahrzeug",multiple:"",options:r.vehicleList},{help:i(()=>e[17]||(e[17]=[d(" Es können mehrere Elemente ausgewählt werden. ",-1)])),_:1},8,["modelValue","options"]),g(q,{modelValue:l.chargeLogRequestData.filter.vehicle.tag,"onUpdate:modelValue":[e[10]||(e[10]=a=>l.chargeLogRequestData.filter.vehicle.tag=a),e[11]||(e[11]=a=>r.requestChargeLog())],title:"ID-Tags"},{help:i(()=>e[18]||(e[18]=[d(" Es können mehrere Tags als Filter verwendet werden. ",-1)])),_:1},8,["modelValue"])]),_:1})]),_:1}),g(m,{subtype:"info"},{default:i(()=>[e[19]||(e[19]=d(" Das Ladeprotokoll kann monatsweise automatisiert über folgende URL abgerufen werden: ",-1)),s("a",{href:r.downloadUrlMonth},n(r.downloadUrlMonth),9,P),e[20]||(e[20]=d()),e[21]||(e[21]=s("br",null,null,-1)),e[22]||(e[22]=d(" Das komplette Ladeprotokoll für das gesamte Jahr kann automatisiert über folgende URL abgerufen werden: ",-1)),s("a",{href:r.downloadUrlYear},n(r.downloadUrlYear),9,z)]),_:1,__:[19,20,21,22]}),r.chargeLogRead?(h(),c("div",O,[g(L,{class:"charge-log-table","is-static-mode":!0,columns:r.chargeLogColumns,rows:r.chargeLogDataset,total:r.totalRecordCount,sortable:l.table.sortable,messages:l.table.messages,"page-options":l.table.pageOptions,limit:25,"is-slot-mode":!0},{time_begin:i(a=>[d(n(r.dashIfNotSet(a.value.time_begin)),1)]),time_end:i(a=>[d(n(r.dashIfNotSet(a.value.time_end)),1)]),time_time_charged:i(a=>[s("div",A,n(a.value.time_time_charged),1)]),data_costs:i(a=>[s("div",Z,n(r.formatCosts(a.value.data_costs)),1)]),data_power_source:i(a=>[a.value.data_power_source?(h(),c("div",{key:0,class:"progress td-center",title:r.getProgressTitle(a.value.data_power_source)},[s("div",{class:"progress-bar bg-danger",role:"progressbar",style:_({width:a.value.data_power_source.grid+"%"}),"aria-valuenow":a.value.data_power_source.grid,"aria-valuemin":"0","aria-valuemax":"100"},null,12,J),s("div",{class:"progress-bar bg-primary",role:"progressbar",style:_({width:a.value.data_power_source.cp+"%"}),"aria-valuenow":a.value.data_power_source.cp,"aria-valuemin":"0","aria-valuemax":"100"},null,12,K),s("div",{class:"progress-bar bg-warning",role:"progressbar",style:_({width:a.value.data_power_source.bat+"%"}),"aria-valuenow":a.value.data_power_source.bat,"aria-valuemin":"0","aria-valuemax":"100"},null,12,Y),s("div",{class:"progress-bar bg-success",role:"progressbar",style:_({width:a.value.data_power_source.pv+"%"}),"aria-valuenow":a.value.data_power_source.pv,"aria-valuemin":"0","aria-valuemax":"100"},null,12,G)],8,j)):(h(),c("div",H," - "))]),vehicle_chargemode:i(a=>[s("div",{class:w(["td-center tag",r.getChargeModeClass(a.value.vehicle_chargemode)])},n(a.value.vehicle_chargemode),3)]),vehicle_prio:i(a=>[s("div",{class:w(["td-center tag",a.value.vehicle_prio?"bg-success":"bg-danger"])},n(r.formatBool(a.value.vehicle_prio)),3)]),vehicle_rfid:i(a=>[d(n(r.dashIfNotSet(a.value.vehicle_rfid)),1)]),vehicle_soc_at_start:i(a=>[s("div",Q,[s("span",X,n(r.formatSoc(a.value.vehicle_soc_at_start)),1),s("span",$," ("+n(r.formatRange(a.value.vehicle_range_at_start))+") ",1)])]),vehicle_soc_at_end:i(a=>[s("div",ee,[s("span",te,n(r.formatSoc(a.value.vehicle_soc_at_end)),1),s("span",ae," ("+n(r.formatRange(a.value.vehicle_range_at_end))+") ",1)])]),chargepoint_name:i(a=>[d(n(r.dashIfNotSet(a.value.chargepoint_name)),1)]),chargepoint_serial_number:i(a=>[d(n(r.dashIfNotSet(a.value.chargepoint_serial_number)),1)]),data_imported_since_mode_switch:i(a=>[s("div",re,[s("span",se,n(r.formatWh(a.value.data_imported_since_mode_switch)),1),s("span",ie," ("+n(r.formatRange(a.value.data_range_charged))+") ",1)])]),chargepoint_imported_at_start:i(a=>[s("div",oe,n(r.formatWh(a.value.chargepoint_imported_at_start)),1)]),chargepoint_imported_at_end:i(a=>[s("div",ne,n(r.formatWh(a.value.chargepoint_imported_at_end)),1)]),_:1},8,["columns","rows","total","sortable","messages","page-options"]),r.totalRecordCount>0?(h(),c("div",le,[s("div",de,[g(R,{class:"col-4 btn-success",onButtonClicked:e[12]||(e[12]=a=>r.downloadChargeLog())},{default:i(()=>[e[24]||(e[24]=d(" Als CSV exportieren ",-1)),g(b,{icon:["fas","download"]})]),_:1,__:[24]}),s("a",ge,null,512)]),e[25]||(e[25]=s("div",{class:"row"},[s("div",{class:"col"},[s("h2",null,"Summe")])],-1)),g(L,{class:"charge-log-totals","is-static-mode":!0,"is-hide-paging":!0,columns:l.totals.columns,rows:r.chargeLogTotals,total:1,"is-slot-mode":!0},{time_charged:i(a=>[s("div",ue,n(a.value.time_charged),1)]),imported_since_mode_switch:i(a=>[s("div",he,n(r.formatWh(a.value.imported_since_mode_switch)),1)]),range_charged:i(a=>[s("div",ce,n(r.formatRange(a.value.range_charged)),1)]),costs:i(a=>[s("div",_e,n(r.formatCosts(a.value.costs)),1)]),_:1},8,["columns","rows"])])):I("",!0)])):(h(),V(m,{key:0,subtype:"info"},{default:i(()=>e[23]||(e[23]=[d(" Es wurden noch keine Daten abgerufen. ",-1)])),_:1,__:[23]}))])]))])}const Ce=E(F,[["render",me],["__scopeId","data-v-8607e7e7"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ChargeLog.vue"]]);export{Ce as default}; +`}},chargeLogRead:{get(){return this.chargeLogDataset!=null}},chargeLogHasEntries:{get(){return this.chargeLogDataset==null?!1:this.chargeLogDataset.length>0}},totalRecordCount(){return this.chargeLogDataset.length},chargeModeList(){let t=this.chargeModes.map(e=>({value:e,text:this.translateChargeMode(e)}));return t.unshift({value:void 0,text:"Alle"}),t},chargePointList(){let t=this.getWildcardTopics("openWB/chargepoint/+/config");var e=[{value:void 0,text:"Alle"}];for(const[,o]of Object.entries(t))e.push({value:o.id,text:o.name});return e},vehicleList(){let t=this.getWildcardTopics("openWB/vehicle/+/name");var e=[{value:void 0,text:"Alle"}];for(const[o,f]of Object.entries(t)){let l=parseInt(o.match(/\/([0-9]+)\/name$/)[1]);e.push({value:l,text:f})}return e}},beforeMount(){this.mqttTopicsToSubscribe.push("openWB/log/"+this.mqttClientId+"/data")},mounted(){const t=new Date;this.currentMonth=this.chargeLogDate=t.getFullYear()+"-"+String(t.getMonth()+1).padStart(2,"0"),this.requestChargeLog()},methods:{cleanRequestData(){"id"in this.chargeLogRequestData.filter.chargepoint&&(this.chargeLogRequestData.filter.chargepoint.id=this.chargeLogRequestData.filter.chargepoint.id.filter(t=>t!=null)),"chargemode"in this.chargeLogRequestData.filter.vehicle&&(this.chargeLogRequestData.filter.vehicle.chargemode=this.chargeLogRequestData.filter.vehicle.chargemode.filter(t=>t!=null)),"id"in this.chargeLogRequestData.filter.vehicle&&(this.chargeLogRequestData.filter.vehicle.id=this.chargeLogRequestData.filter.vehicle.id.filter(t=>t!=null))},requestChargeLog(){if(document.forms.chargeLogForm.reportValidity())this.cleanRequestData(),this.$emit("sendCommand",{command:"getChargeLog",data:this.chargeLogRequestData});else{console.warn("form invalid");return}},makeTextFile(t){var e=new Blob([t],{type:"text/csv"});return this.downloadFile!==null&&window.URL.revokeObjectURL(this.downloadFile),this.downloadFile=window.URL.createObjectURL(e),this.downloadFile},downloadChargeLog(){this.$refs.downloadChargeLogLink.setAttribute("download","Ladeprotokoll-"+this.chargeLogDate+".csv"),this.$refs.downloadChargeLogLink.href=this.makeTextFile(this.chargeLogCsv),this.$refs.downloadChargeLogLink.dispatchEvent(new MouseEvent("click"))},addClasses(t){return this.$store.state.mqtt["openWB/general/charge_log_data_config"]!==void 0&&Object.hasOwn(this.$store.state.mqtt["openWB/general/charge_log_data_config"],t)?this.$store.state.mqtt["openWB/general/charge_log_data_config"][t]?[]:["d-none"]:[]},getProgressTitle(t){return`Netz: ${this.formatNumber(t.grid,0,0)}%, Ladepunkte: ${this.formatNumber(t.cp,0,0)}%, Speicher: ${this.formatNumber(t.bat,0,0)}%, PV: ${this.formatNumber(t.pv,0,0)}%`},formatBool(t){return t?"Ja":"Nein"},formatW(t,e=!0){let o=this.dashIfNotSet(this.formatNumber(t/1e3,2));return e?o+"kW":o},formatWh(t,e=!0){let o=this.dashIfNotSet(this.formatNumber(t/1e3,2));return e?o+"kWh":o},formatRange(t,e=!0){let o=this.dashIfNotSet(this.formatNumber(t,0));return e?o+"km":o},formatSoc(t,e=!0){let o=this.dashIfNotSet(this.formatNumber(t,0));return e?o+"%":o},formatCosts(t,e=!0){let o=this.dashIfNotSet(this.formatNumber(t,2));return e?o+"€":o},dashIfNotSet(t){return t==null||t==""||t==null?"-":t},getChargeModeClass(t){switch(t){case"Sofort":return"bg-danger";case"PV":return"bg-success";case"Zielladen":return"bg-primary";case"Zeitladen":return"bg-warning";case"Eco":case"Standby":return"bg-secondary";case"Stop":return"bg-dark";default:return console.warn("unknown charge mode:",t),"bg-light"}}}},y={class:"chargeLog"},T={key:0},U={key:1},M={name:"chargeLogForm"},P=["href"],z=["href"],O={key:1},A={class:"td-end"},Z={class:"td-end"},j=["title"],J=["aria-valuenow"],K=["aria-valuenow"],Y=["aria-valuenow"],G=["aria-valuenow"],H={key:1,class:"td-center"},Q={class:"td-end"},X={class:"no-wrap"},$={class:"no-wrap"},ee={class:"td-end"},te={class:"no-wrap"},ae={class:"no-wrap"},re={class:"td-end"},se={class:"no-wrap"},ie={class:"no-wrap"},oe={class:"td-end"},ne={class:"td-end"},le={key:0},de={class:"row justify-content-center"},ge={ref:"downloadChargeLogLink",class:"hide"},ue={class:"td-end"},he={class:"td-end"},ce={class:"td-end"},_e={class:"td-end"};function me(t,e,o,f,l,r){const m=u("openwb-base-alert"),D=u("openwb-base-text-input"),b=u("font-awesome-icon"),C=u("openwb-base-button-group-input"),p=u("openwb-base-select-input"),q=u("openwb-base-array-input"),v=u("openwb-base-card"),L=u("vue3-table-lite"),R=u("openwb-base-click-button");return h(),c("div",y,[t.$store.state.mqtt["openWB/general/extern"]===!0?(h(),c("div",T,[g(m,{subtype:"info"},{default:i(()=>[...e[13]||(e[13]=[d(' Das Ladeprotokoll ist nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. Du findest alle Ladevorgänge in der openWB, die sich im Steuerungsmodus "primary" befindet. ',-1)])]),_:1})])):(h(),c("div",U,[s("form",M,[g(v,{title:"Filter"},{default:i(()=>[g(D,{modelValue:r.chargeLogDate,"onUpdate:modelValue":[e[0]||(e[0]=a=>r.chargeLogDate=a),e[1]||(e[1]=a=>r.requestChargeLog())],title:"Zeitraum",subtype:"month",min:"2018-01","show-quick-buttons":!0,max:l.currentMonth},null,8,["modelValue","max"]),g(v,{title:"Erweiterte Optionen",collapsible:!0,collapsed:!0},{header:i(()=>[g(b,{icon:["fas","filter"]}),e[14]||(e[14]=d(" Erweiterte Optionen ",-1))]),default:i(()=>[g(C,{modelValue:l.chargeLogRequestData.filter.vehicle.prio,"onUpdate:modelValue":[e[2]||(e[2]=a=>l.chargeLogRequestData.filter.vehicle.prio=a),e[3]||(e[3]=a=>r.requestChargeLog())],title:"Priorität",buttons:[{buttonValue:void 0,text:"Alle"},{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),g(p,{modelValue:l.chargeLogRequestData.filter.vehicle.chargemode,"onUpdate:modelValue":[e[4]||(e[4]=a=>l.chargeLogRequestData.filter.vehicle.chargemode=a),e[5]||(e[5]=a=>r.requestChargeLog())],title:"Lademodus",multiple:"",options:r.chargeModeList},{help:i(()=>[...e[15]||(e[15]=[d(" Es können mehrere Elemente ausgewählt werden. ",-1)])]),_:1},8,["modelValue","options"]),g(p,{modelValue:l.chargeLogRequestData.filter.chargepoint.id,"onUpdate:modelValue":[e[6]||(e[6]=a=>l.chargeLogRequestData.filter.chargepoint.id=a),e[7]||(e[7]=a=>r.requestChargeLog())],title:"Ladepunkt",multiple:"",options:r.chargePointList},{help:i(()=>[...e[16]||(e[16]=[d(" Es können mehrere Elemente ausgewählt werden. ",-1)])]),_:1},8,["modelValue","options"]),g(p,{modelValue:l.chargeLogRequestData.filter.vehicle.id,"onUpdate:modelValue":[e[8]||(e[8]=a=>l.chargeLogRequestData.filter.vehicle.id=a),e[9]||(e[9]=a=>r.requestChargeLog())],title:"Fahrzeug",multiple:"",options:r.vehicleList},{help:i(()=>[...e[17]||(e[17]=[d(" Es können mehrere Elemente ausgewählt werden. ",-1)])]),_:1},8,["modelValue","options"]),g(q,{modelValue:l.chargeLogRequestData.filter.vehicle.tag,"onUpdate:modelValue":[e[10]||(e[10]=a=>l.chargeLogRequestData.filter.vehicle.tag=a),e[11]||(e[11]=a=>r.requestChargeLog())],title:"ID-Tags"},{help:i(()=>[...e[18]||(e[18]=[d(" Es können mehrere Tags als Filter verwendet werden. ",-1)])]),_:1},8,["modelValue"])]),_:1})]),_:1}),g(m,{subtype:"info"},{default:i(()=>[e[19]||(e[19]=d(" Das Ladeprotokoll kann monatsweise automatisiert über folgende URL abgerufen werden: ",-1)),s("a",{href:r.downloadUrlMonth},n(r.downloadUrlMonth),9,P),e[20]||(e[20]=d()),e[21]||(e[21]=s("br",null,null,-1)),e[22]||(e[22]=d(" Das komplette Ladeprotokoll für das gesamte Jahr kann automatisiert über folgende URL abgerufen werden: ",-1)),s("a",{href:r.downloadUrlYear},n(r.downloadUrlYear),9,z)]),_:1}),r.chargeLogRead?(h(),c("div",O,[g(L,{class:"charge-log-table","is-static-mode":!0,columns:r.chargeLogColumns,rows:r.chargeLogDataset,total:r.totalRecordCount,sortable:l.table.sortable,messages:l.table.messages,"page-options":l.table.pageOptions,limit:25,"is-slot-mode":!0},{time_begin:i(a=>[d(n(r.dashIfNotSet(a.value.time_begin)),1)]),time_end:i(a=>[d(n(r.dashIfNotSet(a.value.time_end)),1)]),time_time_charged:i(a=>[s("div",A,n(a.value.time_time_charged),1)]),data_costs:i(a=>[s("div",Z,n(r.formatCosts(a.value.data_costs)),1)]),data_power_source:i(a=>[a.value.data_power_source?(h(),c("div",{key:0,class:"progress td-center",title:r.getProgressTitle(a.value.data_power_source)},[s("div",{class:"progress-bar bg-danger",role:"progressbar",style:_({width:a.value.data_power_source.grid+"%"}),"aria-valuenow":a.value.data_power_source.grid,"aria-valuemin":"0","aria-valuemax":"100"},null,12,J),s("div",{class:"progress-bar bg-primary",role:"progressbar",style:_({width:a.value.data_power_source.cp+"%"}),"aria-valuenow":a.value.data_power_source.cp,"aria-valuemin":"0","aria-valuemax":"100"},null,12,K),s("div",{class:"progress-bar bg-warning",role:"progressbar",style:_({width:a.value.data_power_source.bat+"%"}),"aria-valuenow":a.value.data_power_source.bat,"aria-valuemin":"0","aria-valuemax":"100"},null,12,Y),s("div",{class:"progress-bar bg-success",role:"progressbar",style:_({width:a.value.data_power_source.pv+"%"}),"aria-valuenow":a.value.data_power_source.pv,"aria-valuemin":"0","aria-valuemax":"100"},null,12,G)],8,j)):(h(),c("div",H," - "))]),vehicle_chargemode:i(a=>[s("div",{class:w(["td-center tag",r.getChargeModeClass(a.value.vehicle_chargemode)])},n(a.value.vehicle_chargemode),3)]),vehicle_prio:i(a=>[s("div",{class:w(["td-center tag",a.value.vehicle_prio?"bg-success":"bg-danger"])},n(r.formatBool(a.value.vehicle_prio)),3)]),vehicle_rfid:i(a=>[d(n(r.dashIfNotSet(a.value.vehicle_rfid)),1)]),vehicle_soc_at_start:i(a=>[s("div",Q,[s("span",X,n(r.formatSoc(a.value.vehicle_soc_at_start)),1),s("span",$," ("+n(r.formatRange(a.value.vehicle_range_at_start))+") ",1)])]),vehicle_soc_at_end:i(a=>[s("div",ee,[s("span",te,n(r.formatSoc(a.value.vehicle_soc_at_end)),1),s("span",ae," ("+n(r.formatRange(a.value.vehicle_range_at_end))+") ",1)])]),chargepoint_name:i(a=>[d(n(r.dashIfNotSet(a.value.chargepoint_name)),1)]),chargepoint_serial_number:i(a=>[d(n(r.dashIfNotSet(a.value.chargepoint_serial_number)),1)]),data_imported_since_mode_switch:i(a=>[s("div",re,[s("span",se,n(r.formatWh(a.value.data_imported_since_mode_switch)),1),s("span",ie," ("+n(r.formatRange(a.value.data_range_charged))+") ",1)])]),chargepoint_imported_at_start:i(a=>[s("div",oe,n(r.formatWh(a.value.chargepoint_imported_at_start)),1)]),chargepoint_imported_at_end:i(a=>[s("div",ne,n(r.formatWh(a.value.chargepoint_imported_at_end)),1)]),_:1},8,["columns","rows","total","sortable","messages","page-options"]),r.totalRecordCount>0?(h(),c("div",le,[s("div",de,[g(R,{class:"col-4 btn-success",onButtonClicked:e[12]||(e[12]=a=>r.downloadChargeLog())},{default:i(()=>[e[24]||(e[24]=d(" Als CSV exportieren ",-1)),g(b,{icon:["fas","download"]})]),_:1}),s("a",ge,null,512)]),e[25]||(e[25]=s("div",{class:"row"},[s("div",{class:"col"},[s("h2",null,"Summe")])],-1)),g(L,{class:"charge-log-totals","is-static-mode":!0,"is-hide-paging":!0,columns:l.totals.columns,rows:r.chargeLogTotals,total:1,"is-slot-mode":!0},{time_charged:i(a=>[s("div",ue,n(a.value.time_charged),1)]),imported_since_mode_switch:i(a=>[s("div",he,n(r.formatWh(a.value.imported_since_mode_switch)),1)]),range_charged:i(a=>[s("div",ce,n(r.formatRange(a.value.range_charged)),1)]),costs:i(a=>[s("div",_e,n(r.formatCosts(a.value.costs)),1)]),_:1},8,["columns","rows"])])):I("",!0)])):(h(),V(m,{key:0,subtype:"info"},{default:i(()=>[...e[23]||(e[23]=[d(" Es wurden noch keine Daten abgerufen. ",-1)])]),_:1}))])]))])}const Ce=E(F,[["render",me],["__scopeId","data-v-8607e7e7"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ChargeLog.vue"]]);export{Ce as default}; diff --git a/web/settings/assets/ChargePointInstallation-7e22d920.js b/web/settings/assets/ChargePointInstallation-7e22d920.js deleted file mode 100644 index bdb9ed059c..0000000000 --- a/web/settings/assets/ChargePointInstallation-7e22d920.js +++ /dev/null @@ -1 +0,0 @@ -import{l as F,ab as R,al as N,G as Z,am as j,an as J,F as $,d as ee,Q as ne,ao as te,M as ae}from"./vendor-fortawesome-a02b6813.js";import{_ as L,C as H}from"./index-8dd8e083.js";import{_ as M}from"./dynamic-import-helper-be004503.js";import{_ as z,u as p,l,m as u,x as h,E as o,B as i,F as v,G as a,A as m,a2 as T,a3 as O,N as A,q as oe,y as U,z as g,M as S,D as le}from"./vendor-25d394b4.js";const ie={props:{chargePoint:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},se=z(ie,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/ChargePointConfigMixin.vue"]]),re={name:"ChargePointConfigFallback",mixins:[se]},ue={class:"charge-point-config-fallback"},de={key:1};function pe(n,e,c,P,_,t){const w=p("openwb-base-alert"),f=p("openwb-base-textarea");return l(),u("div",ue,[Object.keys(n.chargePoint.configuration).length==0?(l(),h(w,{key:0,subtype:"info"},{default:o(()=>[i(' Der Ladepunkt-Typ "'+v(n.chargePoint.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(l(),u("div",de,[a(w,{subtype:"warning"},{default:o(()=>[i(' Es wurde keine Konfigurationsseite für den Ladepunkt-Typ "'+v(n.chargePoint.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),a(f,{title:"Konfiguration",subtype:"json","model-value":n.chargePoint.configuration,"onUpdate:modelValue":e[0]||(e[0]=C=>n.updateConfiguration(C,"configuration"))},{help:o(()=>e[1]||(e[1]=[i(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),a(w,{subtype:"info"},{default:o(()=>[m("pre",null,v(JSON.stringify(n.chargePoint.configuration,void 0,2)),1)]),_:1})]))])}const me=z(re,[["render",pe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointConfigFallback.vue"]]),ge={props:{chargePoint:{type:Object,required:!0}}},ce=z(ge,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/ChargePointCommandsMixin.vue"]]),be={name:"ChargePointCommandsFallback",mixins:[ce]},fe={class:"charge-point-commands-fallback"};function he(n,e,c,P,_,t){return l(),u("div",fe)}const _e=z(be,[["render",he],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointCommandsFallback.vue"]]),ke={name:"OpenwbChargePointProxy",props:{chargePoint:{required:!0,type:Object}},emits:["update:configuration"],methods:{getChargePointSettingsComponent(){return console.debug(`loading charge point settings: ${this.chargePoint.type}`),T({loader:()=>M(Object.assign({"./external_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-5d28cfe6.js"),["assets/chargePoint-5d28cfe6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./internal_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-b9360c52.js"),["assets/chargePoint-b9360c52.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mqtt/chargePoint.vue":()=>L(()=>import("./chargePoint-c7a2ef8c.js"),["assets/chargePoint-c7a2ef8c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_dc_adapter/chargePoint.vue":()=>L(()=>import("./chargePoint-d206a228.js"),["assets/chargePoint-d206a228.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_pro/chargePoint.vue":()=>L(()=>import("./chargePoint-5ae09ebd.js"),["assets/chargePoint-5ae09ebd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_series2_satellit/chargePoint.vue":()=>L(()=>import("./chargePoint-8808c043.js"),["assets/chargePoint-8808c043.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smartwb/chargePoint.vue":()=>L(()=>import("./chargePoint-04f787ef.js"),["assets/chargePoint-04f787ef.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.chargePoint.type}/chargePoint.vue`),errorComponent:me})},getChargePointCommandsComponent(){return console.debug(`loading charge point commands: ${this.chargePoint.type}`),T({loader:()=>M(Object.assign({"./internal_openwb/commands.vue":()=>L(()=>import("./commands-6baac453.js"),["assets/commands-6baac453.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_pro/commands.vue":()=>L(()=>import("./commands-c6ddc747.js"),["assets/commands-c6ddc747.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.chargePoint.type}/commands.vue`),errorComponent:_e})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function ve(n,e,c,P,_,t){const w=p("openwb-base-heading");return l(),u(A,null,[a(w,null,{default:o(()=>[i(' Einstellungen für Ladepunkt Typ "'+v(c.chargePoint.type)+'" ',1)]),_:1}),(l(),h(O(t.getChargePointSettingsComponent()),{"charge-point":c.chargePoint,"onUpdate:configuration":e[0]||(e[0]=f=>t.updateConfiguration(f))},null,40,["charge-point"])),e[1]||(e[1]=m("hr",null,null,-1)),a(w,null,{default:o(()=>[i(' Befehle für Ladepunkt Typ "'+v(c.chargePoint.type)+'" ',1)]),_:1}),(l(),h(O(t.getChargePointCommandsComponent()),{"charge-point":c.chargePoint},null,8,["charge-point"]))],64)}const we=z(ke,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointProxy.vue"]]);F.add(R,N,Z,j,J);const ye={name:"TemplateAutoLockPlan",components:{FontAwesomeIcon:$},mixins:[H],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0}},emits:["update:modelValue","sendCommand"],data(){return{showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:this.templateId,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeAutolockPlan",data:{template:this.templateId,plan:this.modelValue.id}})}}},Ce={key:0},Pe={key:1},Ve={key:2},Le={key:1},Be={key:2};function We(n,e,c,P,_,t){const w=p("openwb-base-modal-dialog"),f=p("font-awesome-icon"),C=p("openwb-base-avatar"),y=p("openwb-base-text-input"),B=p("openwb-base-button-group-input"),I=p("openwb-base-card");return l(),u(A,null,[a(w,{show:_.showRemoveModal,title:"Autolock Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:o(()=>[i(' Wollen Sie den Autolock Zeitplan "'+v(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),a(I,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:o(b=>[b.collapsed==!0?(l(),u("span",{key:0,class:oe(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=U(k=>t.plan.active=!t.plan.active,["stop"]))},[a(f,{icon:["fas","clock"]}),i(" "+v(t.plan.time[0])+" - "+v(t.plan.time[1])+" ",1),t.plan.frequency.selected=="once"?(l(),u("span",Ce,[a(f,{icon:["fas","calendar-day"]}),i(" "+v(n.formatDate(t.plan.frequency.once[0])==n.formatDate(t.plan.frequency.once[1])?n.formatDate(t.plan.frequency.once[0]):n.formatDate(t.plan.frequency.once[0])+" - "+n.formatDate(t.plan.frequency.once[1])),1)])):g("",!0),t.plan.frequency.selected=="daily"?(l(),u("span",Pe,[a(f,{icon:["fas","calendar-week"]})])):g("",!0),t.plan.frequency.selected=="weekly"?(l(),u("span",Ve,[a(f,{icon:["fas","calendar-alt"]})])):g("",!0)],2)):g("",!0),b.collapsed==!1?(l(),u("span",Le,[a(C,{class:"bg-success clickable",title:"Autolock Zeitplan duplizieren",onClick:e[1]||(e[1]=U(k=>t.copyPlan(),["stop"]))},{default:o(()=>[a(f,{icon:["fas","copy"]})]),_:1}),a(C,{class:"bg-danger clickable ml-1",title:"Autolock Zeitplan löschen",onClick:e[2]||(e[2]=U(k=>t.removePlanModal(),["stop"]))},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:1})])):g("",!0)]),default:o(()=>[a(y,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=b=>t.plan.name=b),title:"Bezeichnung"},null,8,["modelValue"]),a(B,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=b=>t.plan.active=b),title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),a(y,{modelValue:t.plan.time[0],"onUpdate:modelValue":e[5]||(e[5]=b=>t.plan.time[0]=b),title:"Sperren um",subtype:"time"},null,8,["modelValue"]),a(y,{modelValue:t.plan.time[1],"onUpdate:modelValue":e[6]||(e[6]=b=>t.plan.time[1]=b),title:"Freigeben um",subtype:"time"},null,8,["modelValue"]),a(B,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[7]||(e[7]=b=>t.plan.frequency.selected=b),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(l(),h(y,{key:0,modelValue:t.plan.frequency.once[0],"onUpdate:modelValue":e[8]||(e[8]=b=>t.plan.frequency.once[0]=b),title:"Sperren ab ...",subtype:"date"},null,8,["modelValue"])):g("",!0),t.plan.frequency.selected=="once"?(l(),h(y,{key:1,modelValue:t.plan.frequency.once[1],"onUpdate:modelValue":e[9]||(e[9]=b=>t.plan.frequency.once[1]=b),title:"... bis",subtype:"date",min:t.plan.frequency.once[0]},null,8,["modelValue","min"])):g("",!0),t.plan.frequency.selected=="weekly"?(l(),u("div",Be,[(l(!0),u(A,null,S(n.weekdays,(b,k)=>(l(),h(B,{key:k,modelValue:t.plan.frequency.weekly[k],"onUpdate:modelValue":V=>t.plan.frequency.weekly[k]=V,title:b,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):g("",!0)]),_:1},8,["title"])],64)}const Ae=z(ye,[["render",We],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/TemplateAutoLockPlan.vue"]]);F.add(ee,R,N,Z,j,J,ne,te);const ze={name:"OpenwbChargePointInstallationView",components:{FontAwesomeIcon:$,FontAwesomeLayers:ae,OpenwbChargePointProxy:we,TemplateAutoLockPlan:Ae},mixins:[H],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/optional/dc_charging","openWB/optional/ocpp/config","openWB/optional/rfid/active","openWB/chargepoint/+/config","openWB/chargepoint/template/+","openWB/system/configurable/chargepoints","openWB/system/configurable/chargepoints_internal"],chargePointToAdd:void 0,showChargePointModal:!1,modalChargePointIndex:void 0,showChargePointTemplateModal:!1,modalChargePointTemplateIndex:void 0}},computed:{dcChargingEnabled:{get(){return this.$store.state.mqtt["openWB/optional/dc_charging"]}},installedChargePoints:{get(){let n=this.getWildcardTopics("openWB/chargepoint/+/config"),e={};for(const[c,P]of Object.entries(n))(P.type==="internal_openwb"||this.$store.state.mqtt["openWB/general/extern"]===!1)&&(e[c]=P);return e}},chargePointTemplates:{get(){return this.getWildcardTopics("openWB/chargepoint/template/+")}},chargePointTemplateList:{get(){let n=[];return Object.keys(this.chargePointTemplates).forEach(e=>{let c=parseInt(e.match(/([0-9]+)/g)[0]),P=this.$store.state.mqtt["openWB/chargepoint/template/"+c].name;n.push({value:c,text:P})}),n}}},methods:{addChargePoint(){this.$emit("sendCommand",{command:"addChargepoint",data:{type:this.chargePointToAdd}})},removeChargePointModal(n,e){n.stopPropagation(),this.modalChargePointIndex=parseInt(e.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showChargePointModal=!0},removeChargePoint(n,e){this.showChargePointModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargepoint",data:{id:e}})},getChargePointList(){return this.$store.state.mqtt["openWB/general/extern"]===!1?this.$store.state.mqtt["openWB/system/configurable/chargepoints"]:this.$store.state.mqtt["openWB/system/configurable/chargepoints_internal"]},getChargePointName(n){return this.$store.state.mqtt["openWB/chargepoint/"+n+"/config"]?this.$store.state.mqtt["openWB/chargepoint/"+n+"/config"].name:"Ladepunkt "+n},getChargePointTemplateIndex(n){return parseInt(n.match(/([^/]+)$/)[0])},getChargePointTemplateName(n){return this.$store.state.mqtt["openWB/chargepoint/template/"+n]?this.$store.state.mqtt["openWB/chargepoint/template/"+n].name:"Profil "+n},addChargePointTemplate(n,e){n.stopPropagation();let c={};e&&(c.copy=this.getChargePointTemplateIndex(e)),this.$emit("sendCommand",{command:"addChargepointTemplate",data:c})},removeChargePointTemplateModal(n,e){n.stopPropagation(),this.modalChargePointTemplateIndex=this.getChargePointTemplateIndex(e),this.showChargePointTemplateModal=!0},removeChargePointTemplate(n,e){this.showChargePointTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargepointTemplate",data:{id:e}})},addChargePointTemplateAutolockPlan(n){this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:this.getChargePointTemplateIndex(n)}})},updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)}}},Ie={class:"chargePointInstallation"},Ee={name:"chargePointInstallationForm"},Ue={key:0},Se={key:2},De={key:0},xe={key:0,class:"border-secondary"},qe={key:0},Me={key:1},Te={key:1},Oe={key:0},Fe={key:0},Re={key:1},Ne={key:1},Ze={key:0},je={key:2},Je={key:4};function $e(n,e,c,P,_,t){const w=p("openwb-base-modal-dialog"),f=p("font-awesome-icon"),C=p("openwb-base-alert"),y=p("openwb-base-avatar"),B=p("openwb-base-text-input"),I=p("openwb-base-select-input"),b=p("openwb-charge-point-proxy"),k=p("openwb-base-heading"),V=p("openwb-base-button-group-input"),E=p("openwb-base-card"),G=p("font-awesome-layers"),x=p("router-link"),Q=p("openwb-base-array-input"),q=p("openwb-base-range-input"),X=p("openwb-base-number-input"),Y=p("template-auto-lock-plan"),K=p("openwb-base-submit-buttons");return l(),u(A,null,[a(w,{show:_.showChargePointModal,title:"Ladepunkt löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=s=>t.removeChargePoint(s,_.modalChargePointIndex))},{default:o(()=>[i(' Wollen Sie den Ladepunkt "'+v(t.getChargePointName(_.modalChargePointIndex))+'" (ID: '+v(_.modalChargePointIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),a(w,{show:_.showChargePointTemplateModal,title:"Ladepunkt-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=s=>t.removeChargePointTemplate(s,_.modalChargePointTemplateIndex))},{default:o(()=>[i(' Wollen Sie das Ladepunkt-Profil "'+v(t.getChargePointTemplateName(_.modalChargePointTemplateIndex))+'" (ID: '+v(_.modalChargePointTemplateIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),m("div",Ie,[m("form",Ee,[a(E,{title:"Ladepunkte",subtype:"primary",collapsible:!0,collapsed:!c.installAssistantActive},{header:o(()=>[a(f,{icon:["fas","charging-station"]}),e[7]||(e[7]=i(" Ladepunkte ",-1))]),default:o(()=>[a(C,{subtype:"info"},{default:o(()=>e[8]||(e[8]=[i(" Eine detaillierte Anleitung zur Einrichtung der Ladepunkte findet sich in unserem ",-1),m("a",{href:"https://wiki.openwb.de/doku.php?id=openwb:software:konfiguration:ladepunkte:openwb",target:"_blank",rel:"noopener noreferrer"},"Wiki",-1),i(" . ",-1)])),_:1,__:[8]}),(l(!0),u(A,null,S(t.installedChargePoints,(s,d)=>(l(),h(E,{key:d,title:s.name+" (ID: "+s.id+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(r=>[r.collapsed?g("",!0):(l(),h(y,{key:0,class:"bg-danger clickable",title:"Ladepunkt löschen",onClick:W=>t.removeChargePointModal(W,d)},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:o(()=>[a(B,{title:"Bezeichnung",subtype:"text","model-value":s.name,"onUpdate:modelValue":r=>n.updateState(d,r,"name")},null,8,["model-value","onUpdate:modelValue"]),a(B,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":n.$store.state.mqtt[d].type},null,8,["model-value"]),s.type!=="internal_openwb"||n.$store.state.mqtt["openWB/general/extern"]===!1?(l(),u("span",Ue,[a(I,{title:"Ladepunkt-Profil",options:t.chargePointTemplateList,"model-value":n.$store.state.mqtt[d].template,"onUpdate:modelValue":r=>n.updateState(d,r,"template")},null,8,["options","model-value","onUpdate:modelValue"])])):g("",!0),n.$store.state.mqtt["openWB/optional/ocpp/config"].active===!0?(l(),h(B,{key:1,title:"OCPP-Chargebox ID","model-value":s.ocpp_chargebox_id,"onUpdate:modelValue":r=>n.updateState(d,r,"ocpp_chargebox_id")},{help:o(()=>[...e[9]||(e[9]=[i(" Bitte geben Sie hier die Chargebox ID ein, die im OCPP-Backend für diesen Ladepunkt verwendet wird. Sollen die Daten dieses Ladepunktes nicht an ein OCPP-Backend übertragen werden, lasse dieses Feld leer. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])):g("",!0),e[15]||(e[15]=m("hr",null,null,-1)),a(b,{"charge-point":s,"onUpdate:configuration":r=>t.updateConfiguration(d,r)},null,8,["charge-point","onUpdate:configuration"]),(s.type!=="internal_openwb"||n.$store.state.mqtt["openWB/general/extern"]===!1)&&s.charging_type!=="DC"?(l(),u("div",Se,[e[14]||(e[14]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[10]||(e[10]=[i(" Hardware-Optionen ",-1)])]),_:1,__:[10]}),a(V,{title:"automatische Phasenumschaltung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.auto_phase_switch_hw,"onUpdate:modelValue":r=>n.updateState(d,r,"auto_phase_switch_hw")},null,8,["model-value","onUpdate:modelValue"]),a(V,{title:"Control-Pilot-Unterbrechung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.control_pilot_interruption_hw,"onUpdate:modelValue":r=>n.updateState(d,r,"control_pilot_interruption_hw")},{help:o(()=>[...e[11]||(e[11]=[i(' Die Control-Pilot-Leitung ist im Ladekabel integriert und dient der Steuerung der Fahrzeugladung (An/Aus/Stromvorgaben). Bei einigen Fahrzeugen können durch die Regelung erzwungene, längere Ladestopps (z.B. beim PV-Laden) zu unerwünschten "Einschlaf"-Effekten des Fahrzeuges führen. Mit diesem Feature, welches hardwareseitig verbaut sein muss, kann ein Abstecken des Ladesteckers simuliert werden, um ein Aufwecken des Fahrzeuges zu ermöglichen. Die Funktion hängt immer auch vom Fahrzeugtyp ab. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(k,null,{default:o(()=>[...e[12]||(e[12]=[i(" Elektrischer Anschluss ",-1)])]),_:1,__:[12]}),a(V,{title:"Anzahl angeschlossener Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":s.connected_phases,"onUpdate:modelValue":r=>n.updateState(d,r,"connected_phases")},null,8,["model-value","onUpdate:modelValue"]),a(V,{title:"Phase 1 des Ladekabels",buttons:[{buttonValue:1,text:"EVU L1"},{buttonValue:2,text:"EVU L2"},{buttonValue:3,text:"EVU L3"}],"model-value":s.phase_1,"onUpdate:modelValue":r=>n.updateState(d,r,"phase_1")},{help:o(()=>[...e[13]||(e[13]=[i(" Hier ist anzugeben, an welcher Phase des Hausanschlusses (EVU-Punkt) die Phase 1 dieses Ladepunktes angeschlossen ist. Diese Information wird für das Lastmanagement benötigt, um bei einer Schieflast gezielt einzelne Ladepunkte zu drosseln.",-1),m("br",null,null,-1),i(' Bei mehreren Ladepunkten macht es Sinn, die Phasen der LP rotierend anzuschließen, damit mehrere "nicht-dreiphasig" ladende Fahrzeuge mit optimaler Leistung laden können, bevor das Lastmanagement eingreift.',-1),m("br",null,null,-1),i(" Es wird vorausgesetzt, dass das Drehfeld innerhalb der Installation gleich bleibt. Wenn z.B. L1 des Ladepunktes auf EVU-L2 liegt, muss L2 des Ladepunktes auf EVU-L3 aufgelegt sein (und L3 des Ladepunktes auf EVU-L1).",-1),m("br",null,null,-1),i(" Eine Möglichkeit, die zur Ladepunktphase L1 zugehörige EVU-Phase zu ermitteln, ist eine einphasige Ladung zu starten und die Phasenströme am EVU-Zähler zu beobachten. Mit einem zweiphasig ladenden Fahrzeug kann danach auch der Anschluss von L2 ermittelt und so das Drehfeld kontrolliert werden.",-1),m("br",null,null,-1),i(" Im Zweifel bitte das Drehfeld von einer Fachkraft prüfen und korrigieren lassen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])])):g("",!0)]),_:2,__:[15]},1032,["title"]))),128)),Object.keys(t.installedChargePoints).length>0?(l(),u("hr",De)):g("",!0),a(I,{title:"Verfügbare Ladepunkte","not-selected":"Bitte auswählen",options:t.getChargePointList(),"model-value":_.chargePointToAdd,"add-button":!0,"onUpdate:modelValue":e[2]||(e[2]=s=>_.chargePointToAdd=s),"onInput:add":t.addChargePoint},{help:o(()=>e[16]||(e[16]=[i(" Bitte einen Ladepunkt auswählen, der der openWB-Regelung hinzugefügt werden soll.",-1),m("br",null,null,-1),m("ul",null,[m("li",null," Interne openWB - wenn diese openWB über einen verbauten Ladepunkt mit Regelcontroller verfügt (z.B. Standard(+), Custom, Duo, Buchse, NICHT Standalone); ansonsten immer anlegen, egal ob diese openWB steuert = primary oder ferngesteuert wird = secondary "),m("li",null," Secondary openWB - wenn diese openWB (primary) die Fernsteuerung von weiteren openWB (secondary) übernimmt "),m("li",null,"MQTT-Ladepunkt - nur zur Nutzung des openWB-Simulators zugelassen"),m("li",null,"openWB Pro - wenn diese openWB (primary) die Fernsteuerung einer openWB Pro (secondary) übernimmt"),m("li",null," openWB series2 Satellit/Satellit Duo - wenn diese openWB (primary) die Fernsteuerung einer openWB series2 Satellit/Satellit Duo (secondary) übernimmt "),m("li",null," smartWB/EVSE-Wifi - wenn diese openWB (primary) die Fernsteuerung einer smartWB/EVSE-Wifi übernimmt ")],-1)])),_:1},8,["options","model-value","onInput:add"])]),_:1},8,["collapsed"]),n.$store.state.mqtt["openWB/general/extern"]==!1||!c.installAssistantActive?(l(),u("hr",xe)):g("",!0),n.$store.state.mqtt["openWB/general/extern"]===!1||!c.installAssistantActive?(l(),h(E,{key:1,title:"Ladepunkt-Profile",collapsible:!0,collapsed:!0},{header:o(()=>[a(G,{class:"fa-lg"},{default:o(()=>[a(f,{icon:["far","file"]}),a(f,{icon:["fas","charging-station"],transform:"shrink-8"})]),_:1}),e[17]||(e[17]=i(" Ladepunkt-Profile ",-1))]),actions:o(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(l(),h(y,{key:0,class:"bg-success clickable",title:"Neues Ladepunkt-Profil anlegen",onClick:t.addChargePointTemplate},{default:o(()=>[a(f,{icon:["fas","plus"]})]),_:1},8,["onClick"])):g("",!0)]),default:o(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(l(),u("div",qe,[a(C,{subtype:"info"},{default:o(()=>e[18]||(e[18]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[18]})])):(l(),u("div",Me,[(l(!0),u(A,null,S(t.chargePointTemplates,(s,d)=>(l(),h(E,{key:d,title:`${s.name} (ID: ${t.getChargePointTemplateIndex(d)})`,collapsible:!0,collapsed:!0},{actions:o(r=>[r.collapsed==!1?(l(),h(y,{key:0,class:"bg-success clickable",title:"Ladepunkt-Profil duplizieren",onClick:W=>t.addChargePointTemplate(W,d)},{default:o(()=>[a(f,{icon:["fas","copy"]})]),_:2},1032,["onClick"])):g("",!0),r.collapsed==!1&&!d.endsWith("/0")?(l(),h(y,{key:1,class:"bg-danger clickable ml-1",title:"Ladepunkt-Profil löschen",onClick:W=>t.removeChargePointTemplateModal(W,d)},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:2},1032,["onClick"])):g("",!0)]),default:o(()=>[a(B,{title:"Bezeichnung",subtype:"text","model-value":s.name,disabled:d.endsWith("/0"),"onUpdate:modelValue":r=>n.updateState(d,r,"name")},le({_:2},[d.endsWith("/0")?{name:"help",fn:o(()=>[e[19]||(e[19]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(l(),h(V,{key:0,title:"Typ des Ladeprofils",buttons:[{buttonValue:"AC",text:"AC"},{buttonValue:"DC",text:"DC"}],"model-value":s.charging_type,"onUpdate:modelValue":r=>n.updateState(d,r,"charging_type")},null,8,["model-value","onUpdate:modelValue"])):g("",!0),e[39]||(e[39]=m("hr",null,null,-1)),c.installAssistantActive?g("",!0):(l(),u("div",Te,[a(k,null,{default:o(()=>[...e[20]||(e[20]=[i(" Zugangskontrolle ",-1)])]),_:1,__:[20]}),s.valid_tags.length>0?(l(),u("div",Oe,[a(C,{subtype:"info"},{default:o(()=>[e[22]||(e[22]=i(" Einstellungen zur Zugangskontrolle finden sich unter ",-1)),a(x,{to:"/IdentificationConfig"},{default:o(()=>[...e[21]||(e[21]=[i(" Einstellungen - Identifikation ",-1)])]),_:1,__:[21]}),e[23]||(e[23]=i(". ",-1)),n.$store.state.mqtt["openWB/optional/rfid/active"]===!0&&s.disable_after_unplug?(l(),u("div",Fe," Die Option ist aktiv. Ladepunkte denen dieses Ladepunkt-Profil zugeordnet ist müssen per ID-Tag entsperrt werden. ")):(l(),u("div",Re,"Aktuell ist die Option in den Einstellungen deaktiviert.")),e[24]||(e[24]=i(" Dem Ladepunkt-Profil sind folgende ID-Tags zum Entsperren zugeordnet: ",-1))]),_:2,__:[22,23,24]},1024),a(Q,{title:"Zugeordnete ID-Tags","no-elements-message":"Keine keine ID-Tags zugeordnet.","no-input":"true","model-value":s.valid_tags},null,8,["model-value"])])):(l(),u("div",Ne,[a(C,{subtype:"info"},{default:o(()=>[e[26]||(e[26]=i(" Einstellungen zur Zugangskontrolle finden sich unter ",-1)),a(x,{to:"/IdentificationConfig"},{default:o(()=>[...e[25]||(e[25]=[i(" Einstellungen - Identifikation ",-1)])]),_:1,__:[25]}),e[27]||(e[27]=i(".",-1)),e[28]||(e[28]=m("br",null,null,-1)),e[29]||(e[29]=i(" Dem Ladepunkt-Profil sind aktuell keine ID-Tags zum Entsperren zugeordnet. ",-1))]),_:1,__:[26,27,28,29]})]))])),e[40]||(e[40]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[30]||(e[30]=[i(" Angaben zum konfigurierten Ladestrom der openWB ",-1)])]),_:1,__:[30]}),a(C,{subtype:"info"},{default:o(()=>[e[31]||(e[31]=i(" Hier werden die maximalen Ladeströme entsprechend der in dem zugeordneten Ladepunkt genutzten Phasen eingestellt.",-1)),e[32]||(e[32]=m("br",null,null,-1)),e[33]||(e[33]=i(" Generell gilt, dass diese Werte in Übereinstimmung mit der Ausführung des Ladepunktes und des elektrischen Anschlusses bzw. der Absicherung zu wählen sind. ",-1)),s.charging_type==="AC"?(l(),u("span",Ze," Bei einer openWB mit 22kW Maximalleistung sind hier jeweils 32A einzustellen. Ist die openWB beispielsweise auf 11kW begrenzt (KfW-Förderung oder die Zuleitung ist mit 16A abgesichert), dann sind hier jeweils 16A einzustellen. ")):g("",!0)]),_:2,__:[31,32,33]},1024),s.charging_type==="AC"||t.dcChargingEnabled!==!0?(l(),u("div",je,[a(q,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":s.max_current_single_phase,"onUpdate:modelValue":r=>n.updateState(d,r,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),a(q,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":s.max_current_multi_phases,"onUpdate:modelValue":r=>n.updateState(d,r,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"])])):(l(),h(X,{key:3,title:"Maximalleistung",min:22,max:420,step:1,unit:"kW",precision:5,"model-value":n.ac_current2dc_power(s.dc_max_current),"onUpdate:modelValue":r=>n.updateState(d,n.dc_power2ac_current(r),"dc_max_current")},null,8,["model-value","onUpdate:modelValue"])),c.installAssistantActive?g("",!0):(l(),u("div",Je,[e[38]||(e[38]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[34]||(e[34]=[i(" Sperren nach Uhrzeit (Komplettsperrung - keine Freischaltung per ID-Tag möglich) ",-1)])]),_:1,__:[34]}),a(V,{title:"Sperren nach Uhrzeit aktiv",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.autolock.active,"onUpdate:modelValue":r=>n.updateState(d,r,"autolock.active")},{help:o(()=>[...e[35]||(e[35]=[i(" WirdSperren nach Uhrzeit aktiviert, können Fahrzeugladungen mittels Zeitplan auf gewünschte Zeitbereiche eingeschränkt werden. Dies kann z.B. bei Zugänglichkeiten zu Ladepunkten in öffentlichen oder halb-öffentlichen Bereichen sinnvoll sein. In dieser Zeit ist keine Freischaltung per RFID, Fahrzeugerkennung oder Pin möglich. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(V,{title:"Erst nach Ladeende sperren",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.autolock.wait_for_charging_end,"onUpdate:modelValue":r=>n.updateState(d,r,"autolock.wait_for_charging_end")},{help:o(()=>[...e[36]||(e[36]=[i(' Wenn ein Zeitplan Sperren nach Uhrzeit aktiviert, werden alle Ladepunkte direkt gesperrt und laufende Ladevorgänge beendet. Wird hier "Ja" ausgewählt, dann werden laufende Ladevorgänge NICHT beendet und diese Ladepunkte erst nach abgeschlossener Ladung gesperrt. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(k,null,{actions:o(()=>[a(y,{class:"bg-success clickable",title:"Neuen Autolock Zeitplan anlegen",onClick:U(r=>t.addChargePointTemplateAutolockPlan(d),["stop"])},{default:o(()=>[a(f,{icon:["fas","plus"]})]),_:2},1032,["onClick"])]),default:o(()=>[e[37]||(e[37]=i(" Zeitpläne für Sperren nach Uhrzeit ",-1))]),_:2,__:[37]},1024)])),(l(!0),u(A,null,S(s.autolock.plans,(r,W)=>(l(),h(Y,{key:W,"model-value":r,"template-id":s.id,"onUpdate:modelValue":D=>n.updateState(d,D,`autolock.plans.${W}`),onSendCommand:e[3]||(e[3]=D=>n.$emit("sendCommand",D))},null,8,["model-value","template-id","onUpdate:modelValue"]))),128))]),_:2,__:[39,40]},1032,["title"]))),128))]))]),_:1})):g("",!0),a(K,{"form-name":"chargePointInstallationForm",onSave:e[4]||(e[4]=s=>n.$emit("save")),onReset:e[5]||(e[5]=s=>n.$emit("reset")),onDefaults:e[6]||(e[6]=s=>n.$emit("defaults"))})])])],64)}const He=z(ze,[["render",$e],["__scopeId","data-v-75fe5743"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ChargePointInstallation.vue"]]),Ke=Object.freeze(Object.defineProperty({__proto__:null,default:He},Symbol.toStringTag,{value:"Module"}));export{se as C,ce as a,He as b,Ke as c}; diff --git a/web/settings/assets/ChargePointInstallation-f32d3e54.js b/web/settings/assets/ChargePointInstallation-f32d3e54.js new file mode 100644 index 0000000000..c31cb4f689 --- /dev/null +++ b/web/settings/assets/ChargePointInstallation-f32d3e54.js @@ -0,0 +1 @@ +import{l as F,ab as R,al as N,G as Z,am as j,an as J,F as $,d as ee,Q as ne,ao as te,M as ae}from"./vendor-fortawesome-fc4b3a41.js";import{_ as L,C as H}from"./index-c94f8df4.js";import{_ as M}from"./dynamic-import-helper-be004503.js";import{_ as z,u as p,l,m as u,x as h,E as o,B as i,F as v,G as a,A as m,a2 as T,a3 as O,N as A,q as oe,y as U,z as g,M as S,D as le}from"./vendor-50125810.js";const ie={props:{chargePoint:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},se=z(ie,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/ChargePointConfigMixin.vue"]]),re={name:"ChargePointConfigFallback",mixins:[se]},ue={class:"charge-point-config-fallback"},de={key:1};function pe(n,e,c,P,_,t){const w=p("openwb-base-alert"),f=p("openwb-base-textarea");return l(),u("div",ue,[Object.keys(n.chargePoint.configuration).length==0?(l(),h(w,{key:0,subtype:"info"},{default:o(()=>[i(' Der Ladepunkt-Typ "'+v(n.chargePoint.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(l(),u("div",de,[a(w,{subtype:"warning"},{default:o(()=>[i(' Es wurde keine Konfigurationsseite für den Ladepunkt-Typ "'+v(n.chargePoint.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),a(f,{title:"Konfiguration",subtype:"json","model-value":n.chargePoint.configuration,"onUpdate:modelValue":e[0]||(e[0]=C=>n.updateConfiguration(C,"configuration"))},{help:o(()=>[...e[1]||(e[1]=[i(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),a(w,{subtype:"info"},{default:o(()=>[m("pre",null,v(JSON.stringify(n.chargePoint.configuration,void 0,2)),1)]),_:1})]))])}const me=z(re,[["render",pe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointConfigFallback.vue"]]),ge={props:{chargePoint:{type:Object,required:!0}}},ce=z(ge,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/ChargePointCommandsMixin.vue"]]),be={name:"ChargePointCommandsFallback",mixins:[ce]},fe={class:"charge-point-commands-fallback"};function he(n,e,c,P,_,t){return l(),u("div",fe)}const _e=z(be,[["render",he],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointCommandsFallback.vue"]]),ke={name:"OpenwbChargePointProxy",props:{chargePoint:{required:!0,type:Object}},emits:["update:configuration"],methods:{getChargePointSettingsComponent(){return console.debug(`loading charge point settings: ${this.chargePoint.type}`),T({loader:()=>M(Object.assign({"./external_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-49f400c4.js"),["assets/chargePoint-49f400c4.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./internal_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-3bc810fe.js"),["assets/chargePoint-3bc810fe.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mqtt/chargePoint.vue":()=>L(()=>import("./chargePoint-15ecf598.js"),["assets/chargePoint-15ecf598.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_dc_adapter/chargePoint.vue":()=>L(()=>import("./chargePoint-1b76c4e2.js"),["assets/chargePoint-1b76c4e2.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_pro/chargePoint.vue":()=>L(()=>import("./chargePoint-298a41ae.js"),["assets/chargePoint-298a41ae.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_series2_satellit/chargePoint.vue":()=>L(()=>import("./chargePoint-1623ec0b.js"),["assets/chargePoint-1623ec0b.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smartwb/chargePoint.vue":()=>L(()=>import("./chargePoint-9bb6ac88.js"),["assets/chargePoint-9bb6ac88.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.chargePoint.type}/chargePoint.vue`),errorComponent:me})},getChargePointCommandsComponent(){return console.debug(`loading charge point commands: ${this.chargePoint.type}`),T({loader:()=>M(Object.assign({"./internal_openwb/commands.vue":()=>L(()=>import("./commands-55f6367a.js"),["assets/commands-55f6367a.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb_pro/commands.vue":()=>L(()=>import("./commands-8f629639.js"),["assets/commands-8f629639.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.chargePoint.type}/commands.vue`),errorComponent:_e})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function ve(n,e,c,P,_,t){const w=p("openwb-base-heading");return l(),u(A,null,[a(w,null,{default:o(()=>[i(' Einstellungen für Ladepunkt Typ "'+v(c.chargePoint.type)+'" ',1)]),_:1}),(l(),h(O(t.getChargePointSettingsComponent()),{"charge-point":c.chargePoint,"onUpdate:configuration":e[0]||(e[0]=f=>t.updateConfiguration(f))},null,40,["charge-point"])),e[1]||(e[1]=m("hr",null,null,-1)),a(w,null,{default:o(()=>[i(' Befehle für Ladepunkt Typ "'+v(c.chargePoint.type)+'" ',1)]),_:1}),(l(),h(O(t.getChargePointCommandsComponent()),{"charge-point":c.chargePoint},null,8,["charge-point"]))],64)}const we=z(ke,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointProxy.vue"]]);F.add(R,N,Z,j,J);const ye={name:"TemplateAutoLockPlan",components:{FontAwesomeIcon:$},mixins:[H],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0}},emits:["update:modelValue","sendCommand"],data(){return{showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:this.templateId,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeAutolockPlan",data:{template:this.templateId,plan:this.modelValue.id}})}}},Ce={key:0},Pe={key:1},Ve={key:2},Le={key:1},Be={key:2};function We(n,e,c,P,_,t){const w=p("openwb-base-modal-dialog"),f=p("font-awesome-icon"),C=p("openwb-base-avatar"),y=p("openwb-base-text-input"),B=p("openwb-base-button-group-input"),I=p("openwb-base-card");return l(),u(A,null,[a(w,{show:_.showRemoveModal,title:"Autolock Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:o(()=>[i(' Wollen Sie den Autolock Zeitplan "'+v(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),a(I,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:o(b=>[b.collapsed==!0?(l(),u("span",{key:0,class:oe(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=U(k=>t.plan.active=!t.plan.active,["stop"]))},[a(f,{icon:["fas","clock"]}),i(" "+v(t.plan.time[0])+" - "+v(t.plan.time[1])+" ",1),t.plan.frequency.selected=="once"?(l(),u("span",Ce,[a(f,{icon:["fas","calendar-day"]}),i(" "+v(n.formatDate(t.plan.frequency.once[0])==n.formatDate(t.plan.frequency.once[1])?n.formatDate(t.plan.frequency.once[0]):n.formatDate(t.plan.frequency.once[0])+" - "+n.formatDate(t.plan.frequency.once[1])),1)])):g("",!0),t.plan.frequency.selected=="daily"?(l(),u("span",Pe,[a(f,{icon:["fas","calendar-week"]})])):g("",!0),t.plan.frequency.selected=="weekly"?(l(),u("span",Ve,[a(f,{icon:["fas","calendar-alt"]})])):g("",!0)],2)):g("",!0),b.collapsed==!1?(l(),u("span",Le,[a(C,{class:"bg-success clickable",title:"Autolock Zeitplan duplizieren",onClick:e[1]||(e[1]=U(k=>t.copyPlan(),["stop"]))},{default:o(()=>[a(f,{icon:["fas","copy"]})]),_:1}),a(C,{class:"bg-danger clickable ml-1",title:"Autolock Zeitplan löschen",onClick:e[2]||(e[2]=U(k=>t.removePlanModal(),["stop"]))},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:1})])):g("",!0)]),default:o(()=>[a(y,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=b=>t.plan.name=b),title:"Bezeichnung"},null,8,["modelValue"]),a(B,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=b=>t.plan.active=b),title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),a(y,{modelValue:t.plan.time[0],"onUpdate:modelValue":e[5]||(e[5]=b=>t.plan.time[0]=b),title:"Sperren um",subtype:"time"},null,8,["modelValue"]),a(y,{modelValue:t.plan.time[1],"onUpdate:modelValue":e[6]||(e[6]=b=>t.plan.time[1]=b),title:"Freigeben um",subtype:"time"},null,8,["modelValue"]),a(B,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[7]||(e[7]=b=>t.plan.frequency.selected=b),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(l(),h(y,{key:0,modelValue:t.plan.frequency.once[0],"onUpdate:modelValue":e[8]||(e[8]=b=>t.plan.frequency.once[0]=b),title:"Sperren ab ...",subtype:"date"},null,8,["modelValue"])):g("",!0),t.plan.frequency.selected=="once"?(l(),h(y,{key:1,modelValue:t.plan.frequency.once[1],"onUpdate:modelValue":e[9]||(e[9]=b=>t.plan.frequency.once[1]=b),title:"... bis",subtype:"date",min:t.plan.frequency.once[0]},null,8,["modelValue","min"])):g("",!0),t.plan.frequency.selected=="weekly"?(l(),u("div",Be,[(l(!0),u(A,null,S(n.weekdays,(b,k)=>(l(),h(B,{key:k,modelValue:t.plan.frequency.weekly[k],"onUpdate:modelValue":V=>t.plan.frequency.weekly[k]=V,title:b,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):g("",!0)]),_:1},8,["title"])],64)}const Ae=z(ye,[["render",We],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/TemplateAutoLockPlan.vue"]]);F.add(ee,R,N,Z,j,J,ne,te);const ze={name:"OpenwbChargePointInstallationView",components:{FontAwesomeIcon:$,FontAwesomeLayers:ae,OpenwbChargePointProxy:we,TemplateAutoLockPlan:Ae},mixins:[H],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/optional/dc_charging","openWB/optional/ocpp/config","openWB/optional/rfid/active","openWB/chargepoint/+/config","openWB/chargepoint/template/+","openWB/system/configurable/chargepoints","openWB/system/configurable/chargepoints_internal"],chargePointToAdd:void 0,showChargePointModal:!1,modalChargePointIndex:void 0,showChargePointTemplateModal:!1,modalChargePointTemplateIndex:void 0}},computed:{dcChargingEnabled:{get(){return this.$store.state.mqtt["openWB/optional/dc_charging"]}},installedChargePoints:{get(){let n=this.getWildcardTopics("openWB/chargepoint/+/config"),e={};for(const[c,P]of Object.entries(n))(P.type==="internal_openwb"||this.$store.state.mqtt["openWB/general/extern"]===!1)&&(e[c]=P);return e}},chargePointTemplates:{get(){return this.getWildcardTopics("openWB/chargepoint/template/+")}},chargePointTemplateList:{get(){let n=[];return Object.keys(this.chargePointTemplates).forEach(e=>{let c=parseInt(e.match(/([0-9]+)/g)[0]),P=this.$store.state.mqtt["openWB/chargepoint/template/"+c].name;n.push({value:c,text:P})}),n}}},methods:{addChargePoint(){this.$emit("sendCommand",{command:"addChargepoint",data:{type:this.chargePointToAdd}})},removeChargePointModal(n,e){n.stopPropagation(),this.modalChargePointIndex=parseInt(e.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showChargePointModal=!0},removeChargePoint(n,e){this.showChargePointModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargepoint",data:{id:e}})},getChargePointList(){return this.$store.state.mqtt["openWB/general/extern"]===!1?this.$store.state.mqtt["openWB/system/configurable/chargepoints"]:this.$store.state.mqtt["openWB/system/configurable/chargepoints_internal"]},getChargePointName(n){return this.$store.state.mqtt["openWB/chargepoint/"+n+"/config"]?this.$store.state.mqtt["openWB/chargepoint/"+n+"/config"].name:"Ladepunkt "+n},getChargePointTemplateIndex(n){return parseInt(n.match(/([^/]+)$/)[0])},getChargePointTemplateName(n){return this.$store.state.mqtt["openWB/chargepoint/template/"+n]?this.$store.state.mqtt["openWB/chargepoint/template/"+n].name:"Profil "+n},addChargePointTemplate(n,e){n.stopPropagation();let c={};e&&(c.copy=this.getChargePointTemplateIndex(e)),this.$emit("sendCommand",{command:"addChargepointTemplate",data:c})},removeChargePointTemplateModal(n,e){n.stopPropagation(),this.modalChargePointTemplateIndex=this.getChargePointTemplateIndex(e),this.showChargePointTemplateModal=!0},removeChargePointTemplate(n,e){this.showChargePointTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargepointTemplate",data:{id:e}})},addChargePointTemplateAutolockPlan(n){this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:this.getChargePointTemplateIndex(n)}})},updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)}}},Ie={class:"chargePointInstallation"},Ee={name:"chargePointInstallationForm"},Ue={key:0},Se={key:2},De={key:0},xe={key:0,class:"border-secondary"},qe={key:0},Me={key:1},Te={key:1},Oe={key:0},Fe={key:0},Re={key:1},Ne={key:1},Ze={key:0},je={key:2},Je={key:4};function $e(n,e,c,P,_,t){const w=p("openwb-base-modal-dialog"),f=p("font-awesome-icon"),C=p("openwb-base-alert"),y=p("openwb-base-avatar"),B=p("openwb-base-text-input"),I=p("openwb-base-select-input"),b=p("openwb-charge-point-proxy"),k=p("openwb-base-heading"),V=p("openwb-base-button-group-input"),E=p("openwb-base-card"),G=p("font-awesome-layers"),x=p("router-link"),Q=p("openwb-base-array-input"),q=p("openwb-base-range-input"),X=p("openwb-base-number-input"),Y=p("template-auto-lock-plan"),K=p("openwb-base-submit-buttons");return l(),u(A,null,[a(w,{show:_.showChargePointModal,title:"Ladepunkt löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=s=>t.removeChargePoint(s,_.modalChargePointIndex))},{default:o(()=>[i(' Wollen Sie den Ladepunkt "'+v(t.getChargePointName(_.modalChargePointIndex))+'" (ID: '+v(_.modalChargePointIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),a(w,{show:_.showChargePointTemplateModal,title:"Ladepunkt-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=s=>t.removeChargePointTemplate(s,_.modalChargePointTemplateIndex))},{default:o(()=>[i(' Wollen Sie das Ladepunkt-Profil "'+v(t.getChargePointTemplateName(_.modalChargePointTemplateIndex))+'" (ID: '+v(_.modalChargePointTemplateIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),m("div",Ie,[m("form",Ee,[a(E,{title:"Ladepunkte",subtype:"primary",collapsible:!0,collapsed:!c.installAssistantActive},{header:o(()=>[a(f,{icon:["fas","charging-station"]}),e[7]||(e[7]=i(" Ladepunkte ",-1))]),default:o(()=>[a(C,{subtype:"info"},{default:o(()=>[...e[8]||(e[8]=[i(" Eine detaillierte Anleitung zur Einrichtung der Ladepunkte findet sich in unserem ",-1),m("a",{href:"https://wiki.openwb.de/doku.php?id=openwb:software:konfiguration:ladepunkte:openwb",target:"_blank",rel:"noopener noreferrer"},"Wiki",-1),i(" . ",-1)])]),_:1}),(l(!0),u(A,null,S(t.installedChargePoints,(s,d)=>(l(),h(E,{key:d,title:s.name+" (ID: "+s.id+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(r=>[r.collapsed?g("",!0):(l(),h(y,{key:0,class:"bg-danger clickable",title:"Ladepunkt löschen",onClick:W=>t.removeChargePointModal(W,d)},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:o(()=>[a(B,{title:"Bezeichnung",subtype:"text","model-value":s.name,"onUpdate:modelValue":r=>n.updateState(d,r,"name")},null,8,["model-value","onUpdate:modelValue"]),a(B,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":n.$store.state.mqtt[d].type},null,8,["model-value"]),s.type!=="internal_openwb"||n.$store.state.mqtt["openWB/general/extern"]===!1?(l(),u("span",Ue,[a(I,{title:"Ladepunkt-Profil",options:t.chargePointTemplateList,"model-value":n.$store.state.mqtt[d].template,"onUpdate:modelValue":r=>n.updateState(d,r,"template")},null,8,["options","model-value","onUpdate:modelValue"])])):g("",!0),n.$store.state.mqtt["openWB/optional/ocpp/config"].active===!0?(l(),h(B,{key:1,title:"OCPP-Chargebox ID","model-value":s.ocpp_chargebox_id,"onUpdate:modelValue":r=>n.updateState(d,r,"ocpp_chargebox_id")},{help:o(()=>[...e[9]||(e[9]=[i(" Bitte geben Sie hier die Chargebox ID ein, die im OCPP-Backend für diesen Ladepunkt verwendet wird. Sollen die Daten dieses Ladepunktes nicht an ein OCPP-Backend übertragen werden, lasse dieses Feld leer. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):g("",!0),e[15]||(e[15]=m("hr",null,null,-1)),a(b,{"charge-point":s,"onUpdate:configuration":r=>t.updateConfiguration(d,r)},null,8,["charge-point","onUpdate:configuration"]),(s.type!=="internal_openwb"||n.$store.state.mqtt["openWB/general/extern"]===!1)&&s.charging_type!=="DC"?(l(),u("div",Se,[e[14]||(e[14]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[10]||(e[10]=[i(" Hardware-Optionen ",-1)])]),_:1}),a(V,{title:"automatische Phasenumschaltung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.auto_phase_switch_hw,"onUpdate:modelValue":r=>n.updateState(d,r,"auto_phase_switch_hw")},null,8,["model-value","onUpdate:modelValue"]),a(V,{title:"Control-Pilot-Unterbrechung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.control_pilot_interruption_hw,"onUpdate:modelValue":r=>n.updateState(d,r,"control_pilot_interruption_hw")},{help:o(()=>[...e[11]||(e[11]=[i(' Die Control-Pilot-Leitung ist im Ladekabel integriert und dient der Steuerung der Fahrzeugladung (An/Aus/Stromvorgaben). Bei einigen Fahrzeugen können durch die Regelung erzwungene, längere Ladestopps (z.B. beim PV-Laden) zu unerwünschten "Einschlaf"-Effekten des Fahrzeuges führen. Mit diesem Feature, welches hardwareseitig verbaut sein muss, kann ein Abstecken des Ladesteckers simuliert werden, um ein Aufwecken des Fahrzeuges zu ermöglichen. Die Funktion hängt immer auch vom Fahrzeugtyp ab. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(k,null,{default:o(()=>[...e[12]||(e[12]=[i(" Elektrischer Anschluss ",-1)])]),_:1}),a(V,{title:"Anzahl angeschlossener Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":s.connected_phases,"onUpdate:modelValue":r=>n.updateState(d,r,"connected_phases")},null,8,["model-value","onUpdate:modelValue"]),a(V,{title:"Phase 1 des Ladekabels",buttons:[{buttonValue:1,text:"EVU L1"},{buttonValue:2,text:"EVU L2"},{buttonValue:3,text:"EVU L3"}],"model-value":s.phase_1,"onUpdate:modelValue":r=>n.updateState(d,r,"phase_1")},{help:o(()=>[...e[13]||(e[13]=[i(" Hier ist anzugeben, an welcher Phase des Hausanschlusses (EVU-Punkt) die Phase 1 dieses Ladepunktes angeschlossen ist. Diese Information wird für das Lastmanagement benötigt, um bei einer Schieflast gezielt einzelne Ladepunkte zu drosseln.",-1),m("br",null,null,-1),i(' Bei mehreren Ladepunkten macht es Sinn, die Phasen der LP rotierend anzuschließen, damit mehrere "nicht-dreiphasig" ladende Fahrzeuge mit optimaler Leistung laden können, bevor das Lastmanagement eingreift.',-1),m("br",null,null,-1),i(" Es wird vorausgesetzt, dass das Drehfeld innerhalb der Installation gleich bleibt. Wenn z.B. L1 des Ladepunktes auf EVU-L2 liegt, muss L2 des Ladepunktes auf EVU-L3 aufgelegt sein (und L3 des Ladepunktes auf EVU-L1).",-1),m("br",null,null,-1),i(" Eine Möglichkeit, die zur Ladepunktphase L1 zugehörige EVU-Phase zu ermitteln, ist eine einphasige Ladung zu starten und die Phasenströme am EVU-Zähler zu beobachten. Mit einem zweiphasig ladenden Fahrzeug kann danach auch der Anschluss von L2 ermittelt und so das Drehfeld kontrolliert werden.",-1),m("br",null,null,-1),i(" Im Zweifel bitte das Drehfeld von einer Fachkraft prüfen und korrigieren lassen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])])):g("",!0)]),_:2},1032,["title"]))),128)),Object.keys(t.installedChargePoints).length>0?(l(),u("hr",De)):g("",!0),a(I,{title:"Verfügbare Ladepunkte","not-selected":"Bitte auswählen",options:t.getChargePointList(),"model-value":_.chargePointToAdd,"add-button":!0,"onUpdate:modelValue":e[2]||(e[2]=s=>_.chargePointToAdd=s),"onInput:add":t.addChargePoint},{help:o(()=>[...e[16]||(e[16]=[i(" Bitte einen Ladepunkt auswählen, der der openWB-Regelung hinzugefügt werden soll.",-1),m("br",null,null,-1),m("ul",null,[m("li",null," Interne openWB - wenn diese openWB über einen verbauten Ladepunkt mit Regelcontroller verfügt (z.B. Standard(+), Custom, Duo, Buchse, NICHT Standalone); ansonsten immer anlegen, egal ob diese openWB steuert = primary oder ferngesteuert wird = secondary "),m("li",null," Secondary openWB - wenn diese openWB (primary) die Fernsteuerung von weiteren openWB (secondary) übernimmt "),m("li",null,"MQTT-Ladepunkt - nur zur Nutzung des openWB-Simulators zugelassen"),m("li",null,"openWB Pro - wenn diese openWB (primary) die Fernsteuerung einer openWB Pro (secondary) übernimmt"),m("li",null," openWB series2 Satellit/Satellit Duo - wenn diese openWB (primary) die Fernsteuerung einer openWB series2 Satellit/Satellit Duo (secondary) übernimmt "),m("li",null," smartWB/EVSE-Wifi - wenn diese openWB (primary) die Fernsteuerung einer smartWB/EVSE-Wifi übernimmt ")],-1)])]),_:1},8,["options","model-value","onInput:add"])]),_:1},8,["collapsed"]),n.$store.state.mqtt["openWB/general/extern"]==!1||!c.installAssistantActive?(l(),u("hr",xe)):g("",!0),n.$store.state.mqtt["openWB/general/extern"]===!1||!c.installAssistantActive?(l(),h(E,{key:1,title:"Ladepunkt-Profile",collapsible:!0,collapsed:!0},{header:o(()=>[a(G,{class:"fa-lg"},{default:o(()=>[a(f,{icon:["far","file"]}),a(f,{icon:["fas","charging-station"],transform:"shrink-8"})]),_:1}),e[17]||(e[17]=i(" Ladepunkt-Profile ",-1))]),actions:o(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(l(),h(y,{key:0,class:"bg-success clickable",title:"Neues Ladepunkt-Profil anlegen",onClick:t.addChargePointTemplate},{default:o(()=>[a(f,{icon:["fas","plus"]})]),_:1},8,["onClick"])):g("",!0)]),default:o(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(l(),u("div",qe,[a(C,{subtype:"info"},{default:o(()=>[...e[18]||(e[18]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(l(),u("div",Me,[(l(!0),u(A,null,S(t.chargePointTemplates,(s,d)=>(l(),h(E,{key:d,title:`${s.name} (ID: ${t.getChargePointTemplateIndex(d)})`,collapsible:!0,collapsed:!0},{actions:o(r=>[r.collapsed==!1?(l(),h(y,{key:0,class:"bg-success clickable",title:"Ladepunkt-Profil duplizieren",onClick:W=>t.addChargePointTemplate(W,d)},{default:o(()=>[a(f,{icon:["fas","copy"]})]),_:1},8,["onClick"])):g("",!0),r.collapsed==!1&&!d.endsWith("/0")?(l(),h(y,{key:1,class:"bg-danger clickable ml-1",title:"Ladepunkt-Profil löschen",onClick:W=>t.removeChargePointTemplateModal(W,d)},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:1},8,["onClick"])):g("",!0)]),default:o(()=>[a(B,{title:"Bezeichnung",subtype:"text","model-value":s.name,disabled:d.endsWith("/0"),"onUpdate:modelValue":r=>n.updateState(d,r,"name")},le({_:2},[d.endsWith("/0")?{name:"help",fn:o(()=>[e[19]||(e[19]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(l(),h(V,{key:0,title:"Typ des Ladeprofils",buttons:[{buttonValue:"AC",text:"AC"},{buttonValue:"DC",text:"DC"}],"model-value":s.charging_type,"onUpdate:modelValue":r=>n.updateState(d,r,"charging_type")},null,8,["model-value","onUpdate:modelValue"])):g("",!0),e[39]||(e[39]=m("hr",null,null,-1)),c.installAssistantActive?g("",!0):(l(),u("div",Te,[a(k,null,{default:o(()=>[...e[20]||(e[20]=[i(" Zugangskontrolle ",-1)])]),_:1}),s.valid_tags.length>0?(l(),u("div",Oe,[a(C,{subtype:"info"},{default:o(()=>[e[22]||(e[22]=i(" Einstellungen zur Zugangskontrolle finden sich unter ",-1)),a(x,{to:"/IdentificationConfig"},{default:o(()=>[...e[21]||(e[21]=[i(" Einstellungen - Identifikation ",-1)])]),_:1}),e[23]||(e[23]=i(". ",-1)),n.$store.state.mqtt["openWB/optional/rfid/active"]===!0&&s.disable_after_unplug?(l(),u("div",Fe," Die Option ist aktiv. Ladepunkte denen dieses Ladepunkt-Profil zugeordnet ist müssen per ID-Tag entsperrt werden. ")):(l(),u("div",Re,"Aktuell ist die Option in den Einstellungen deaktiviert.")),e[24]||(e[24]=i(" Dem Ladepunkt-Profil sind folgende ID-Tags zum Entsperren zugeordnet: ",-1))]),_:2},1024),a(Q,{title:"Zugeordnete ID-Tags","no-elements-message":"Keine keine ID-Tags zugeordnet.","no-input":"true","model-value":s.valid_tags},null,8,["model-value"])])):(l(),u("div",Ne,[a(C,{subtype:"info"},{default:o(()=>[e[26]||(e[26]=i(" Einstellungen zur Zugangskontrolle finden sich unter ",-1)),a(x,{to:"/IdentificationConfig"},{default:o(()=>[...e[25]||(e[25]=[i(" Einstellungen - Identifikation ",-1)])]),_:1}),e[27]||(e[27]=i(".",-1)),e[28]||(e[28]=m("br",null,null,-1)),e[29]||(e[29]=i(" Dem Ladepunkt-Profil sind aktuell keine ID-Tags zum Entsperren zugeordnet. ",-1))]),_:1})]))])),e[40]||(e[40]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[30]||(e[30]=[i(" Angaben zum konfigurierten Ladestrom der openWB ",-1)])]),_:1}),a(C,{subtype:"info"},{default:o(()=>[e[31]||(e[31]=i(" Hier werden die maximalen Ladeströme entsprechend der in dem zugeordneten Ladepunkt genutzten Phasen eingestellt.",-1)),e[32]||(e[32]=m("br",null,null,-1)),e[33]||(e[33]=i(" Generell gilt, dass diese Werte in Übereinstimmung mit der Ausführung des Ladepunktes und des elektrischen Anschlusses bzw. der Absicherung zu wählen sind. ",-1)),s.charging_type==="AC"?(l(),u("span",Ze," Bei einer openWB mit 22kW Maximalleistung sind hier jeweils 32A einzustellen. Ist die openWB beispielsweise auf 11kW begrenzt (KfW-Förderung oder die Zuleitung ist mit 16A abgesichert), dann sind hier jeweils 16A einzustellen. ")):g("",!0)]),_:2},1024),s.charging_type==="AC"||t.dcChargingEnabled!==!0?(l(),u("div",je,[a(q,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":s.max_current_single_phase,"onUpdate:modelValue":r=>n.updateState(d,r,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),a(q,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":s.max_current_multi_phases,"onUpdate:modelValue":r=>n.updateState(d,r,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"])])):(l(),h(X,{key:3,title:"Maximalleistung",min:22,max:420,step:1,unit:"kW",precision:5,"model-value":n.ac_current2dc_power(s.dc_max_current),"onUpdate:modelValue":r=>n.updateState(d,n.dc_power2ac_current(r),"dc_max_current")},null,8,["model-value","onUpdate:modelValue"])),c.installAssistantActive?g("",!0):(l(),u("div",Je,[e[38]||(e[38]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[34]||(e[34]=[i(" Sperren nach Uhrzeit (Komplettsperrung - keine Freischaltung per ID-Tag möglich) ",-1)])]),_:1}),a(V,{title:"Sperren nach Uhrzeit aktiv",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.autolock.active,"onUpdate:modelValue":r=>n.updateState(d,r,"autolock.active")},{help:o(()=>[...e[35]||(e[35]=[i(" WirdSperren nach Uhrzeit aktiviert, können Fahrzeugladungen mittels Zeitplan auf gewünschte Zeitbereiche eingeschränkt werden. Dies kann z.B. bei Zugänglichkeiten zu Ladepunkten in öffentlichen oder halb-öffentlichen Bereichen sinnvoll sein. In dieser Zeit ist keine Freischaltung per RFID, Fahrzeugerkennung oder Pin möglich. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(V,{title:"Erst nach Ladeende sperren",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.autolock.wait_for_charging_end,"onUpdate:modelValue":r=>n.updateState(d,r,"autolock.wait_for_charging_end")},{help:o(()=>[...e[36]||(e[36]=[i(' Wenn ein Zeitplan Sperren nach Uhrzeit aktiviert, werden alle Ladepunkte direkt gesperrt und laufende Ladevorgänge beendet. Wird hier "Ja" ausgewählt, dann werden laufende Ladevorgänge NICHT beendet und diese Ladepunkte erst nach abgeschlossener Ladung gesperrt. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(k,null,{actions:o(()=>[a(y,{class:"bg-success clickable",title:"Neuen Autolock Zeitplan anlegen",onClick:U(r=>t.addChargePointTemplateAutolockPlan(d),["stop"])},{default:o(()=>[a(f,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:o(()=>[e[37]||(e[37]=i(" Zeitpläne für Sperren nach Uhrzeit ",-1))]),_:2},1024)])),(l(!0),u(A,null,S(s.autolock.plans,(r,W)=>(l(),h(Y,{key:W,"model-value":r,"template-id":s.id,"onUpdate:modelValue":D=>n.updateState(d,D,`autolock.plans.${W}`),onSendCommand:e[3]||(e[3]=D=>n.$emit("sendCommand",D))},null,8,["model-value","template-id","onUpdate:modelValue"]))),128))]),_:2},1032,["title"]))),128))]))]),_:1})):g("",!0),a(K,{"form-name":"chargePointInstallationForm",onSave:e[4]||(e[4]=s=>n.$emit("save")),onReset:e[5]||(e[5]=s=>n.$emit("reset")),onDefaults:e[6]||(e[6]=s=>n.$emit("defaults"))})])])],64)}const He=z(ze,[["render",$e],["__scopeId","data-v-75fe5743"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ChargePointInstallation.vue"]]),Ke=Object.freeze(Object.defineProperty({__proto__:null,default:He},Symbol.toStringTag,{value:"Module"}));export{se as C,ce as a,He as b,Ke as c}; diff --git a/web/settings/assets/Chart-0e7a4a70.js b/web/settings/assets/Chart-730fde84.js similarity index 89% rename from web/settings/assets/Chart-0e7a4a70.js rename to web/settings/assets/Chart-730fde84.js index d9268b8a5a..7571a5f767 100644 --- a/web/settings/assets/Chart-0e7a4a70.js +++ b/web/settings/assets/Chart-730fde84.js @@ -1 +1 @@ -import{l as L,Q as T,_ as H,Z as V,Y as O,a4 as M,a5 as j,F as q}from"./vendor-fortawesome-a02b6813.js";import{C as z}from"./index-8dd8e083.js";import{C as P,p as E,a as B,L as N,b as F,B as K,f as Z,P as $,c as J,T as X,i as G,d as Y,e as U,g as Q}from"./vendor-chartjs-94a826eb.js";import{_ as ee,u as h,l as o,m as s,G as d,E as c,x as _,B as b,A as f,N as k,M as x,F as D,z as C}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./vendor-luxon-cc86f6dc.js";L.add(T,H,V,O,M,j);P.register(E,B,N,F,K,Z,$,J,X,G,Y);const te={name:"OpenwbChartView",components:{ChartjsLine:U,FontAwesomeIcon:q},mixins:[z],props:{initialChartRange:{type:String,required:!1,validator:function(e){return["day","month","year"].indexOf(e)!==-1},default:"day"},initialDate:{type:String,required:!1,validator:function(e){return e.match(/^(([0-9]{4})(-[0-9]{2}(-[0-9]{2})?)?)?$/g)},default:""}},emits:["sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/log/daily/#","openWB/log/monthly/#","openWB/log/yearly/#","openWB/system/device/+/component/+/config","openWB/chargepoint/+/config","openWB/vehicle/+/name"],currentDate:"",chartRange:"day",blockChartInit:!1,chartIsLoading:!1,chartRequestDate:{day:"",month:"",year:""},datasetTemplates:{"counter-power_average":{label:"Zähler",unit:"kW",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported":{label:"Zähler",unit:"kWh",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_exported":{label:"Zähler",unit:"kWh",jsonKey:null,borderColor:"rgba(0, 255, 105, 0.7)",backgroundColor:"rgba(0, 255, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_grid":{label:"Zähler (Netzanteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_pv":{label:"Zähler (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_bat":{label:"Zähler (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"pv-power_exported":{label:"PV",unit:"kW",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(10, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",stack:"inverter-power",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"pv-energy_exported":{label:"PV",unit:"kWh",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(10, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"inverter-exported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-power_average":{label:"Speicher",unit:"kW",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",stack:"battery-power",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-energy_imported":{label:"Speicher",unit:"kWh",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"battery-imported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-energy_exported":{label:"Speicher",unit:"kWh",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"battery-exported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-soc":{label:"Speicher SoC",unit:"%",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",borderDash:[10,5],hidden:!0,fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",borderWidth:2,data:null,yAxisID:"y3",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-power_average":{label:"Ladepunkt",unit:"kW",jsonKey:null,borderColor:"rgba(0, 0, 255, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",stack:"charge-point-power",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported":{label:"Ladepunkt",unit:"kWh",jsonKey:null,borderColor:"rgba(0, 0, 255, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"charge-point-imported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported_grid":{label:"Ladepunkt (Netzanteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"charge-point-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported_pv":{label:"Ladepunkt (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"charge-point-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported_bat":{label:"Ladepunkt (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"charge-point-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"ev-soc":{label:"Fahrzeug SoC",unit:"%",jsonKey:null,borderColor:"rgba(0, 0, 255, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",borderDash:[10,5],hidden:!0,fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",borderWidth:2,data:null,yAxisID:"y3",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"sh-power_average":{label:"SmartHome",unit:"kW",jsonKey:null,borderColor:"rgba(232, 62, 140, 0.7)",backgroundColor:"rgba(232, 72, 150, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"sh-energy_imported":{label:"SmartHome",unit:"kWh",jsonKey:null,borderColor:"rgba(232, 62, 140, 0.7)",backgroundColor:"rgba(232, 72, 150, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"sh-energy_exported":{label:"SmartHome",unit:"kWh",jsonKey:null,borderColor:"rgba(232, 62, 140, 0.7)",backgroundColor:"rgba(232, 72, 150, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-power_imported":{label:"Hausverbrauch",unit:"kW",jsonKey:null,borderColor:"rgba(120, 122, 124, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported":{label:"Hausverbrauch",unit:"kWh",jsonKey:null,borderColor:"rgba(120, 122, 124, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported_grid":{label:"Hausverbrauch (Netzanteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"hc-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported_pv":{label:"Hausverbrauch (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"hc-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported_bat":{label:"Hausverbrauch (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"hc-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}}},chartOptions:{plugins:{title:{display:!1},tooltip:{enabled:!0,callbacks:{label:e=>`${e.dataset.label}: ${e.formattedValue} ${e.dataset.unit}`}},legend:{display:!0},zoom:{pan:{enabled:!0,mode:"x",threshold:5},zoom:{wheel:{enabled:!0},pinch:{enabled:!0},mode:"x"}}},elements:{point:{radius:2}},responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{x:{type:"time",time:{unit:"",tooltipFormat:""},display:!0,title:{display:!0,text:""},ticks:{source:"timestamp",font:{size:12},maxTicksLimit:0},grid:{}},y:{position:"left",type:"linear",display:"auto",suggestedMin:0,suggestedMax:0,title:{font:{size:12},display:!0,text:"Leistung [kW]"},grid:{},ticks:{font:{size:12},stepSize:.2,maxTicksLimit:11}},y2:{position:"left",type:"linear",display:"auto",suggestedMin:0,suggestedMax:0,title:{font:{size:12},display:!0,text:"Energie [kWh]"},grid:{},ticks:{font:{size:12},stepSize:.2,maxTicksLimit:11}},y3:{position:"right",type:"linear",display:"auto",suggestedMin:0,suggestedMax:100,title:{font:{size:12},display:!0,text:"SoC [%]"},grid:{display:!1},ticks:{font:{size:12},stepSize:10,maxTicksLimit:11}}}},chartDatasets:{datasets:[]}}},computed:{dateInput(){var e={title:"Datum",type:"date",min:"2018-01-01"};switch(this.chartRange){case"month":e={title:"Monat",type:"month",min:"2018-01"};break;case"year":e={title:"Jahr",type:"year",min:"2018"};break}return e},chartDate:{get(){var e=this.chartRequestDate.year;return this.chartRange!="year"&&(e=e+"-"+this.chartRequestDate.month),this.chartRange=="day"&&(e=e+"-"+this.chartRequestDate.day),e},set(e){let t=e.split("-");this.chartRequestDate.year=t[0],t.length>1?this.chartRequestDate.month=t[1]:this.chartRequestDate.month="",t.length>2?this.chartRequestDate.day=t[2]:this.chartRequestDate.day=""}},chartScaleX(){var e={unit:"minute",tooltipFormat:"DD T",text:"Zeit",maxTicksLimit:24};switch(this.chartRange){case"month":e={unit:"day",tooltipFormat:"DD",text:"Tag",maxTicksLimit:31};break;case"year":e={unit:"month",tooltipFormat:"LLLL yyyy",text:"Monat",maxTicksLimit:12};break}return e},commandData(){var e={date:this.chartRequestDate.year+this.chartRequestDate.month+this.chartRequestDate.day};switch(this.chartRange){case"month":e={date:this.chartRequestDate.year+this.chartRequestDate.month};break;case"year":e={date:this.chartRequestDate.year};break}return e},baseTopic(){var e="openWB/log/";switch(this.chartRange){case"day":e=e+"daily/";break;case"month":e=e+"monthly/";break;case"year":e=e+"yearly/";break}return e},chartDataRead(){return this.chartDataObject!=null},chartDataHasEntries(){return this.chartDataObject?this.chartDataObject.length>0:!1},chartTotals(){if(this.$store.state.mqtt[this.baseTopic+this.commandData.date]&&Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"totals")){var e=JSON.parse(JSON.stringify(this.$store.state.mqtt[this.baseTopic+this.commandData.date].totals));return delete e.energy_source,Object.keys(e.counter).forEach(t=>{Object.prototype.hasOwnProperty.call(e.counter[t],"grid")&&delete e.counter[t].grid}),Object.keys(e).forEach(t=>{Object.prototype.hasOwnProperty.call(e[t],"all")&&(Object.keys(e[t]).length<=2&&["bat","pv"].includes(t)?delete e[t].all:e[t]={all:e[t].all,...e[t]})}),e}},chartDataObject(){if(this.$store.state.mqtt[this.baseTopic+this.commandData.date]){var e=this.$store.state.mqtt[this.baseTopic+this.commandData.date];Object.prototype.hasOwnProperty.call(e,"entries")&&(e=e.entries);var t=JSON.parse(JSON.stringify(e)).map(a=>(a.timestamp=a.timestamp*1e3,a));return t}},chartData(){if(this.chartDataObject){var e=["pv","counter","bat","cp","sh","ev","hc"];const t=this.chartDataObject[this.chartDataObject.length-1];return t&&e.forEach(a=>{Object.prototype.hasOwnProperty.call(t,a)&&(Object.prototype.hasOwnProperty.call(t[a],"all")&&(["bat","pv"].includes(a)&&Object.keys(t[a]).length<=2?delete t[a].all:t[a]={all:t[a].all,...t[a]}),Object.entries(t[a]).forEach(([n,i])=>{Object.keys(i).forEach(r=>{this.initDataset(a,n,r)})}))}),this.chartDatasets}}},watch:{chartRange(){this.init()},chartDataRead:{handler(e){e&&(this.chartIsLoading=!1)},immediate:!0}},mounted(){this.init()},methods:{handleChartClick(e){if(this.chartRange=="day")return;const t=this.$refs.myChart.chart;if(!t)return;const a=Q(t,e);if(!a.length)return;const{datasetIndex:n,index:i}=a[0],r=this.chartData.datasets[n].data[i].date;var u="",g="";switch(this.chartRange){case"month":u=r.substring(0,4)+"-"+r.substring(4,6)+"-"+r.substring(6),g="day";break;case"year":u=r.substring(0,4)+"-"+r.substring(4,6),g="month";break}this.blockChartInit=!0,this.chartDate=u,this.chartRange=g},getCardSubtype(e){switch(e){case"bat":return"warning";case"counter":return"danger";case"cp":return"primary";case"pv":return"success";case"sh":return"pink";default:return"secondary"}},getCardIcon(e){switch(e){case"bat":return["fas","car-battery"];case"counter":return["fas","gauge-high"];case"cp":return["fas","charging-station"];case"pv":return["fas","solar-panel"];case"sh":return["fas","house-signal"];case"hc":return["fas","house"];default:return}},hideDataset(e,t,a){return!!(["bat","pv","cp"].includes(e)&&Object.prototype.hasOwnProperty.call(this.chartTotals[e],"all")&&t!="all"||["grid","bat","pv","cp"].includes(a.split("_").pop()))},getTotalsLabel(e,t=void 0,a=void 0){var n="*test*";if(!t&&!a){switch(e){case"bat":return"Speicher";case"counter":return"Zähler";case"pv":return"Wechselrichter";case"cp":return"Ladepunkte";case"sh":return"SmartHome-Geräte";case"hc":return"Hausverbrauch";default:console.warn("unknown group key:",e)}return"*"+e+"*"}if(t&&!a){if(t=="all")return"Summe";if(Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"names"))return this.$store.state.mqtt[this.baseTopic+this.commandData.date].names[t]}if(t&&a){switch(e){case"bat":case"cp":switch(a){case"imported":case"energy_imported":return"Ladung";case"exported":case"energy_exported":return"Entladung";case"energy_imported_grid":return"Ladung (Netz-Anteil)";case"energy_imported_pv":return"Ladung (PV-Anteil)";case"energy_imported_bat":return"Ladung (Speicher-Anteil)";case"energy_imported_cp":return"Ladung (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;case"counter":switch(a){case"imported":case"energy_imported":return"Bezug/Verbrauch";case"exported":case"energy_exported":return"Einspeisung/Erzeugung";case"energy_imported_grid":return"Verbrauch (Netz-Anteil)";case"energy_imported_pv":return"Verbrauch (PV-Anteil)";case"energy_imported_bat":return"Verbrauch (Speicher-Anteil)";case"energy_imported_cp":return"Verbrauch (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;case"pv":switch(a){case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,a)}break;case"sh":switch(a){case"imported":case"energy_imported":return"Verbrauch";case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,a)}break;case"hc":switch(a){case"imported":case"energy_imported":return"Verbrauch";case"energy_imported_grid":return"Verbrauch (Netz-Anteil)";case"energy_imported_pv":return"Verbrauch (PV-Anteil)";case"energy_imported_bat":return"Verbrauch (Speicher-Anteil)";case"energy_imported_cp":return"Verbrauch (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;default:console.warn("unknown group key:",e)}return"*"+e+"+"+t+"+"+a+"*"}return n},getDatasetLabel(e,t,a,n){var i=["*"+n],r=[];if(t=="all")switch(e!=="hc"&&r.push("Summe"),e){case"pv":i=["PV"];break;case"bat":switch(i=["Speicher"],a){case"soc":i.push("SoC");break}break;case"cp":i=["Ladepunkte"];break;case"hc":i=["Hausverbrauch"]}else Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"names")&&Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date].names,t)&&(i=[this.$store.state.mqtt[this.baseTopic+this.commandData.date].names[t]]);switch(e){case"bat":case"ev":case"cp":switch(a){case"soc":r.push("SoC");break;case"energy_imported":r.push("Ladung");break;case"energy_exported":r.push("Entladung");break;case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break;case"counter":switch(a){case"energy_imported":r.push("Bezug/Verbrauch");break;case"energy_exported":r.push("Einspeisung/Erzeugung");break;case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break;case"sh":switch(a){case"energy_imported":r.push("Verbrauch");break;case"energy_exported":r.push("Erzeugung");break}break;case"hc":switch(a){case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break}return`${i.join(" ")}${r.length?" ("+r.join(", ")+")":""}`},getDatasetIndex(e){let t=this.chartDatasets.datasets.findIndex(a=>a.jsonKey==e);if(t!=-1)return t},updateDatasetStack(e,t,a){if(e){if(t=="all"&&!["grid","pv","bat","cp"].includes(a.split("_").slice(-1)[0])){console.debug("not stacking totals for:",e,t,a);return}return e.includes("#")?(console.debug("updating stack template:",e,t,a),e.replace("#",t)):e}},addDataset(e,t,a,n){if(console.debug("adding dataset:",e,t,a,n),!(Object.prototype.hasOwnProperty.call(this.chartTotals,e)&&!Object.prototype.hasOwnProperty.call(this.chartTotals[e],t))){var i=e+"-"+a;if(this.datasetTemplates[i]){var r=JSON.parse(JSON.stringify(this.datasetTemplates[i]));return r.parsing.yAxisKey=n,r.jsonKey=n,r.data=this.chartDataObject,r.label=this.getDatasetLabel(e,t,a,n),r.labelSuffix!=null&&(r.label=r.label+r.labelSuffix),r.hidden=this.hideDataset(e,t,a),r.stack=this.updateDatasetStack(r.stack,t,a),this.chartDatasets.datasets.push(r)-1}else console.warn("no matching template found for: "+n+" with template: "+i)}},initDataset(e,t,a){var n=[];this.chartRange=="day"?n={counter:["power_average"],pv:["power_exported"],bat:["power_average","soc"],cp:["power_average"],sh:["power_average"],ev:["soc"],hc:["power_imported"]}:n={counter:["energy_imported","energy_exported","energy_imported_grid","energy_imported_pv","energy_imported_bat"],pv:["energy_exported"],bat:["energy_imported","energy_exported"],cp:["energy_imported","energy_imported_grid","energy_imported_pv","energy_imported_bat"],sh:["energy_imported","energy_exported"],ev:[],hc:["energy_imported","energy_imported_grid","energy_imported_pv","energy_imported_bat"]};const i=e+"."+t+"."+a;if(n[e].includes(a)){var r=this.getDatasetIndex(i);r==null&&(r=this.addDataset(e,t,a,i))}else console.debug("skipping dataset:",i)},setupScaleX(){this.chartOptions.scales.x.time.unit=this.chartScaleX.unit,this.chartOptions.scales.x.time.tooltipFormat=this.chartScaleX.tooltipFormat,this.chartOptions.scales.x.title.text=this.chartScaleX.text,this.chartOptions.scales.x.ticks.maxTicksLimit=this.chartScaleX.maxTicksLimit},requestChart(){if(document.forms.chartFilterForm.reportValidity()){this.chartIsLoading=!0,this.setupScaleX(),this.chartDatasets.datasets=[];var t="";switch(this.chartRange){case"day":t="getDailyLog";break;case"month":t="getMonthlyLog";break;case"year":t="getYearlyLog";break}this.$emit("sendCommand",{command:t,data:this.commandData})}else{console.warn("form invalid");return}},clearChartData(){this.getWildcardIndexList(this.baseTopic+"+").forEach(e=>{this.$store.commit("removeTopic",`${this.baseTopic}${e}`)})},updateChart(){this.clearChartData(),this.requestChart()},init(){const e=new Date;this.currentDate=String(e.getFullYear()),this.chartRange!="year"&&(this.currentDate=this.currentDate+"-"+String(e.getMonth()+1).padStart(2,"0")),this.chartRange=="day"&&(this.currentDate=this.currentDate+"-"+String(e.getDate()).padStart(2,"0")),this.blockChartInit?this.blockChartInit=!1:this.initialDate==null||this.initialDate==""?this.chartDate=this.currentDate:this.chartDate=this.initialDate,this.updateChart()}}},re={class:"chart"},ae={key:0},ie={key:1},ne={name:"chartFilterForm"},oe={key:1},se={key:1},le={class:"openwb-chart"},de={name:"chartTotalsForm"},ce={key:1};function ue(e,t,a,n,i,r){const u=h("openwb-base-alert"),g=h("openwb-base-select-input"),v=h("openwb-base-text-input"),y=h("openwb-base-card"),S=h("chartjs-line"),R=h("font-awesome-icon"),w=h("openwb-base-heading");return o(),s("div",re,[e.$store.state.mqtt["openWB/general/extern"]===!0?(o(),s("div",ae,[d(u,{subtype:"info"},{default:c(()=>t[3]||(t[3]=[b(' Die Auswertungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. Du findest alle Auswertungen in der openWB, welche sich im Steuerungsmodus "primary" befindet. ',-1)])),_:1,__:[3]})])):(o(),s("div",ie,[d(y,{title:"Filter",collapsible:!0,collapsed:!1},{default:c(()=>[f("form",ne,[d(g,{modelValue:i.chartRange,"onUpdate:modelValue":t[0]||(t[0]=p=>i.chartRange=p),title:"Zeitraum",options:[{value:"day",text:"Tag"},{value:"month",text:"Monat"},{value:"year",text:"Jahr"}]},null,8,["modelValue"]),d(v,{modelValue:r.chartDate,"onUpdate:modelValue":[t[1]||(t[1]=p=>r.chartDate=p),t[2]||(t[2]=p=>r.updateChart())],title:r.dateInput.title,subtype:r.dateInput.type,min:r.dateInput.min,max:i.currentDate,"show-quick-buttons":!0},null,8,["modelValue","title","subtype","min","max"])])]),_:1}),i.chartIsLoading?(o(),_(u,{key:0,subtype:"info"},{default:c(()=>t[4]||(t[4]=[b(" Daten werden geladen... ",-1)])),_:1,__:[4]})):(o(),s("div",oe,[r.chartDataHasEntries?(o(),s("div",se,[d(y,{title:"Diagramm",collapsible:!0,collapsed:!1},{default:c(()=>[f("div",le,[d(S,{ref:"myChart",data:r.chartData,options:i.chartOptions,onClick:r.handleChartClick},null,8,["data","options","onClick"])])]),_:1}),d(y,{title:"Summen",collapsible:!0,collapsed:!0},{default:c(()=>[f("form",de,[(o(!0),s(k,null,x(Object.fromEntries(Object.entries(r.chartTotals).filter(([p,l])=>Object.keys(l).length>0)),(p,l)=>(o(),_(y,{key:l,collapsible:!0,collapsed:!0,subtype:r.getCardSubtype(l)},{header:c(()=>[d(R,{icon:r.getCardIcon(l)},null,8,["icon"]),b(" "+D(r.getTotalsLabel(l)),1)]),default:c(()=>[(o(!0),s(k,null,x(p,(I,m)=>(o(),s("div",{key:m},[l!=="hc"?(o(),_(w,{key:0},{default:c(()=>[b(D(r.getTotalsLabel(l,m)),1)]),_:2},1024)):C("",!0),(o(!0),s(k,null,x(I,(W,A)=>(o(),s("div",{key:A},[d(v,{title:r.getTotalsLabel(l,m,A),readonly:"",class:"text-right",unit:"kWh","model-value":e.formatNumber(W/1e3,3)},null,8,["title","model-value"])]))),128)),m=="all"&&l!="hc"?(o(),s("hr",ce)):C("",!0)]))),128))]),_:2},1032,["subtype"]))),128))])]),_:1})])):(o(),_(u,{key:0,subtype:"info"},{default:c(()=>t[5]||(t[5]=[b(" Es konnten keine Daten für diesen Zeitraum gefunden werden. ",-1)])),_:1,__:[5]}))]))]))])}const xe=ee(te,[["render",ue],["__scopeId","data-v-e00a7cd5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Chart.vue"]]);export{xe as default}; +import{l as L,Q as T,_ as H,Z as V,Y as O,a4 as M,a5 as j,F as q}from"./vendor-fortawesome-fc4b3a41.js";import{C as z}from"./index-c94f8df4.js";import{C as P,p as E,a as B,L as N,b as F,B as K,f as Z,P as $,c as J,T as X,i as G,d as Y,e as U,g as Q}from"./vendor-chartjs-6bace15d.js";import{_ as ee,u as h,l as o,m as s,G as d,E as c,x as f,B as b,A as _,N as k,M as x,F as D,z as C}from"./vendor-50125810.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./vendor-luxon-cc86f6dc.js";L.add(T,H,V,O,M,j);P.register(E,B,N,F,K,Z,$,J,X,G,Y);const te={name:"OpenwbChartView",components:{ChartjsLine:U,FontAwesomeIcon:q},mixins:[z],props:{initialChartRange:{type:String,required:!1,validator:function(e){return["day","month","year"].indexOf(e)!==-1},default:"day"},initialDate:{type:String,required:!1,validator:function(e){return e.match(/^(([0-9]{4})(-[0-9]{2}(-[0-9]{2})?)?)?$/g)},default:""}},emits:["sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/log/daily/#","openWB/log/monthly/#","openWB/log/yearly/#","openWB/system/device/+/component/+/config","openWB/chargepoint/+/config","openWB/vehicle/+/name"],currentDate:"",chartRange:"day",blockChartInit:!1,chartIsLoading:!1,chartRequestDate:{day:"",month:"",year:""},datasetTemplates:{"counter-power_average":{label:"Zähler",unit:"kW",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported":{label:"Zähler",unit:"kWh",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_exported":{label:"Zähler",unit:"kWh",jsonKey:null,borderColor:"rgba(0, 255, 105, 0.7)",backgroundColor:"rgba(0, 255, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_grid":{label:"Zähler (Netzanteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_pv":{label:"Zähler (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_bat":{label:"Zähler (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"pv-power_exported":{label:"PV",unit:"kW",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(10, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",stack:"inverter-power",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"pv-energy_exported":{label:"PV",unit:"kWh",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(10, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"inverter-exported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-power_average":{label:"Speicher",unit:"kW",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",stack:"battery-power",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-energy_imported":{label:"Speicher",unit:"kWh",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"battery-imported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-energy_exported":{label:"Speicher",unit:"kWh",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"battery-exported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"bat-soc":{label:"Speicher SoC",unit:"%",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(200, 255, 13, 0.3)",borderDash:[10,5],hidden:!0,fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",borderWidth:2,data:null,yAxisID:"y3",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-power_average":{label:"Ladepunkt",unit:"kW",jsonKey:null,borderColor:"rgba(0, 0, 255, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",stack:"charge-point-power",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported":{label:"Ladepunkt",unit:"kWh",jsonKey:null,borderColor:"rgba(0, 0, 255, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",stack:"charge-point-imported",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported_grid":{label:"Ladepunkt (Netzanteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"charge-point-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported_pv":{label:"Ladepunkt (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"charge-point-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"cp-energy_imported_bat":{label:"Ladepunkt (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"charge-point-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"ev-soc":{label:"Fahrzeug SoC",unit:"%",jsonKey:null,borderColor:"rgba(0, 0, 255, 0.7)",backgroundColor:"rgba(0, 0, 255, 0.3)",borderDash:[10,5],hidden:!0,fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",borderWidth:2,data:null,yAxisID:"y3",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"sh-power_average":{label:"SmartHome",unit:"kW",jsonKey:null,borderColor:"rgba(232, 62, 140, 0.7)",backgroundColor:"rgba(232, 72, 150, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"sh-energy_imported":{label:"SmartHome",unit:"kWh",jsonKey:null,borderColor:"rgba(232, 62, 140, 0.7)",backgroundColor:"rgba(232, 72, 150, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"sh-energy_exported":{label:"SmartHome",unit:"kWh",jsonKey:null,borderColor:"rgba(232, 62, 140, 0.7)",backgroundColor:"rgba(232, 72, 150, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-power_imported":{label:"Hausverbrauch",unit:"kW",jsonKey:null,borderColor:"rgba(120, 122, 124, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported":{label:"Hausverbrauch",unit:"kWh",jsonKey:null,borderColor:"rgba(120, 122, 124, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported_grid":{label:"Hausverbrauch (Netzanteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"hc-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported_pv":{label:"Hausverbrauch (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"hc-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"hc-energy_imported_bat":{label:"Hausverbrauch (PV-Anteil)",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(120, 122, 124, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"hc-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}}},chartOptions:{plugins:{title:{display:!1},tooltip:{enabled:!0,callbacks:{label:e=>`${e.dataset.label}: ${e.formattedValue} ${e.dataset.unit}`}},legend:{display:!0},zoom:{pan:{enabled:!0,mode:"x",threshold:5},zoom:{wheel:{enabled:!0},pinch:{enabled:!0},mode:"x"}}},elements:{point:{radius:2}},responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{x:{type:"time",time:{unit:"",tooltipFormat:""},display:!0,title:{display:!0,text:""},ticks:{source:"timestamp",font:{size:12},maxTicksLimit:0},grid:{}},y:{position:"left",type:"linear",display:"auto",suggestedMin:0,suggestedMax:0,title:{font:{size:12},display:!0,text:"Leistung [kW]"},grid:{},ticks:{font:{size:12},stepSize:.2,maxTicksLimit:11}},y2:{position:"left",type:"linear",display:"auto",suggestedMin:0,suggestedMax:0,title:{font:{size:12},display:!0,text:"Energie [kWh]"},grid:{},ticks:{font:{size:12},stepSize:.2,maxTicksLimit:11}},y3:{position:"right",type:"linear",display:"auto",suggestedMin:0,suggestedMax:100,title:{font:{size:12},display:!0,text:"SoC [%]"},grid:{display:!1},ticks:{font:{size:12},stepSize:10,maxTicksLimit:11}}}},chartDatasets:{datasets:[]}}},computed:{dateInput(){var e={title:"Datum",type:"date",min:"2018-01-01"};switch(this.chartRange){case"month":e={title:"Monat",type:"month",min:"2018-01"};break;case"year":e={title:"Jahr",type:"year",min:"2018"};break}return e},chartDate:{get(){var e=this.chartRequestDate.year;return this.chartRange!="year"&&(e=e+"-"+this.chartRequestDate.month),this.chartRange=="day"&&(e=e+"-"+this.chartRequestDate.day),e},set(e){let t=e.split("-");this.chartRequestDate.year=t[0],t.length>1?this.chartRequestDate.month=t[1]:this.chartRequestDate.month="",t.length>2?this.chartRequestDate.day=t[2]:this.chartRequestDate.day=""}},chartScaleX(){var e={unit:"minute",tooltipFormat:"DD T",text:"Zeit",maxTicksLimit:24};switch(this.chartRange){case"month":e={unit:"day",tooltipFormat:"DD",text:"Tag",maxTicksLimit:31};break;case"year":e={unit:"month",tooltipFormat:"LLLL yyyy",text:"Monat",maxTicksLimit:12};break}return e},commandData(){var e={date:this.chartRequestDate.year+this.chartRequestDate.month+this.chartRequestDate.day};switch(this.chartRange){case"month":e={date:this.chartRequestDate.year+this.chartRequestDate.month};break;case"year":e={date:this.chartRequestDate.year};break}return e},baseTopic(){var e="openWB/log/";switch(this.chartRange){case"day":e=e+"daily/";break;case"month":e=e+"monthly/";break;case"year":e=e+"yearly/";break}return e},chartDataRead(){return this.chartDataObject!=null},chartDataHasEntries(){return this.chartDataObject?this.chartDataObject.length>0:!1},chartTotals(){if(this.$store.state.mqtt[this.baseTopic+this.commandData.date]&&Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"totals")){var e=JSON.parse(JSON.stringify(this.$store.state.mqtt[this.baseTopic+this.commandData.date].totals));return delete e.energy_source,Object.keys(e.counter).forEach(t=>{Object.prototype.hasOwnProperty.call(e.counter[t],"grid")&&delete e.counter[t].grid}),Object.keys(e).forEach(t=>{Object.prototype.hasOwnProperty.call(e[t],"all")&&(Object.keys(e[t]).length<=2&&["bat","pv"].includes(t)?delete e[t].all:e[t]={all:e[t].all,...e[t]})}),e}},chartDataObject(){if(this.$store.state.mqtt[this.baseTopic+this.commandData.date]){var e=this.$store.state.mqtt[this.baseTopic+this.commandData.date];Object.prototype.hasOwnProperty.call(e,"entries")&&(e=e.entries);var t=JSON.parse(JSON.stringify(e)).map(a=>(a.timestamp=a.timestamp*1e3,a));return t}},chartData(){if(this.chartDataObject){var e=["pv","counter","bat","cp","sh","ev","hc"];const t=this.chartDataObject[this.chartDataObject.length-1];return t&&e.forEach(a=>{Object.prototype.hasOwnProperty.call(t,a)&&(Object.prototype.hasOwnProperty.call(t[a],"all")&&(["bat","pv"].includes(a)&&Object.keys(t[a]).length<=2?delete t[a].all:t[a]={all:t[a].all,...t[a]}),Object.entries(t[a]).forEach(([n,i])=>{Object.keys(i).forEach(r=>{this.initDataset(a,n,r)})}))}),this.chartDatasets}}},watch:{chartRange(){this.init()},chartDataRead:{handler(e){e&&(this.chartIsLoading=!1)},immediate:!0}},mounted(){this.init()},methods:{handleChartClick(e){if(this.chartRange=="day")return;const t=this.$refs.myChart.chart;if(!t)return;const a=Q(t,e);if(!a.length)return;const{datasetIndex:n,index:i}=a[0],r=this.chartData.datasets[n].data[i].date;var u="",g="";switch(this.chartRange){case"month":u=r.substring(0,4)+"-"+r.substring(4,6)+"-"+r.substring(6),g="day";break;case"year":u=r.substring(0,4)+"-"+r.substring(4,6),g="month";break}this.blockChartInit=!0,this.chartDate=u,this.chartRange=g},getCardSubtype(e){switch(e){case"bat":return"warning";case"counter":return"danger";case"cp":return"primary";case"pv":return"success";case"sh":return"pink";default:return"secondary"}},getCardIcon(e){switch(e){case"bat":return["fas","car-battery"];case"counter":return["fas","gauge-high"];case"cp":return["fas","charging-station"];case"pv":return["fas","solar-panel"];case"sh":return["fas","house-signal"];case"hc":return["fas","house"];default:return}},hideDataset(e,t,a){return!!(["bat","pv","cp"].includes(e)&&Object.prototype.hasOwnProperty.call(this.chartTotals[e],"all")&&t!="all"||["grid","bat","pv","cp"].includes(a.split("_").pop()))},getTotalsLabel(e,t=void 0,a=void 0){var n="*test*";if(!t&&!a){switch(e){case"bat":return"Speicher";case"counter":return"Zähler";case"pv":return"Wechselrichter";case"cp":return"Ladepunkte";case"sh":return"SmartHome-Geräte";case"hc":return"Hausverbrauch";default:console.warn("unknown group key:",e)}return"*"+e+"*"}if(t&&!a){if(t=="all")return"Summe";if(Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"names"))return this.$store.state.mqtt[this.baseTopic+this.commandData.date].names[t]}if(t&&a){switch(e){case"bat":case"cp":switch(a){case"imported":case"energy_imported":return"Ladung";case"exported":case"energy_exported":return"Entladung";case"energy_imported_grid":return"Ladung (Netz-Anteil)";case"energy_imported_pv":return"Ladung (PV-Anteil)";case"energy_imported_bat":return"Ladung (Speicher-Anteil)";case"energy_imported_cp":return"Ladung (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;case"counter":switch(a){case"imported":case"energy_imported":return"Bezug/Verbrauch";case"exported":case"energy_exported":return"Einspeisung/Erzeugung";case"energy_imported_grid":return"Verbrauch (Netz-Anteil)";case"energy_imported_pv":return"Verbrauch (PV-Anteil)";case"energy_imported_bat":return"Verbrauch (Speicher-Anteil)";case"energy_imported_cp":return"Verbrauch (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;case"pv":switch(a){case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,a)}break;case"sh":switch(a){case"imported":case"energy_imported":return"Verbrauch";case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,a)}break;case"hc":switch(a){case"imported":case"energy_imported":return"Verbrauch";case"energy_imported_grid":return"Verbrauch (Netz-Anteil)";case"energy_imported_pv":return"Verbrauch (PV-Anteil)";case"energy_imported_bat":return"Verbrauch (Speicher-Anteil)";case"energy_imported_cp":return"Verbrauch (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;default:console.warn("unknown group key:",e)}return"*"+e+"+"+t+"+"+a+"*"}return n},getDatasetLabel(e,t,a,n){var i=["*"+n],r=[];if(t=="all")switch(e!=="hc"&&r.push("Summe"),e){case"pv":i=["PV"];break;case"bat":switch(i=["Speicher"],a){case"soc":i.push("SoC");break}break;case"cp":i=["Ladepunkte"];break;case"hc":i=["Hausverbrauch"]}else Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"names")&&Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date].names,t)&&(i=[this.$store.state.mqtt[this.baseTopic+this.commandData.date].names[t]]);switch(e){case"bat":case"ev":case"cp":switch(a){case"soc":r.push("SoC");break;case"energy_imported":r.push("Ladung");break;case"energy_exported":r.push("Entladung");break;case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break;case"counter":switch(a){case"energy_imported":r.push("Bezug/Verbrauch");break;case"energy_exported":r.push("Einspeisung/Erzeugung");break;case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break;case"sh":switch(a){case"energy_imported":r.push("Verbrauch");break;case"energy_exported":r.push("Erzeugung");break}break;case"hc":switch(a){case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break}return`${i.join(" ")}${r.length?" ("+r.join(", ")+")":""}`},getDatasetIndex(e){let t=this.chartDatasets.datasets.findIndex(a=>a.jsonKey==e);if(t!=-1)return t},updateDatasetStack(e,t,a){if(e){if(t=="all"&&!["grid","pv","bat","cp"].includes(a.split("_").slice(-1)[0])){console.debug("not stacking totals for:",e,t,a);return}return e.includes("#")?(console.debug("updating stack template:",e,t,a),e.replace("#",t)):e}},addDataset(e,t,a,n){if(console.debug("adding dataset:",e,t,a,n),!(Object.prototype.hasOwnProperty.call(this.chartTotals,e)&&!Object.prototype.hasOwnProperty.call(this.chartTotals[e],t))){var i=e+"-"+a;if(this.datasetTemplates[i]){var r=JSON.parse(JSON.stringify(this.datasetTemplates[i]));return r.parsing.yAxisKey=n,r.jsonKey=n,r.data=this.chartDataObject,r.label=this.getDatasetLabel(e,t,a,n),r.labelSuffix!=null&&(r.label=r.label+r.labelSuffix),r.hidden=this.hideDataset(e,t,a),r.stack=this.updateDatasetStack(r.stack,t,a),this.chartDatasets.datasets.push(r)-1}else console.warn("no matching template found for: "+n+" with template: "+i)}},initDataset(e,t,a){var n=[];this.chartRange=="day"?n={counter:["power_average"],pv:["power_exported"],bat:["power_average","soc"],cp:["power_average"],sh:["power_average"],ev:["soc"],hc:["power_imported"]}:n={counter:["energy_imported","energy_exported","energy_imported_grid","energy_imported_pv","energy_imported_bat"],pv:["energy_exported"],bat:["energy_imported","energy_exported"],cp:["energy_imported","energy_imported_grid","energy_imported_pv","energy_imported_bat"],sh:["energy_imported","energy_exported"],ev:[],hc:["energy_imported","energy_imported_grid","energy_imported_pv","energy_imported_bat"]};const i=e+"."+t+"."+a;if(n[e].includes(a)){var r=this.getDatasetIndex(i);r==null&&(r=this.addDataset(e,t,a,i))}else console.debug("skipping dataset:",i)},setupScaleX(){this.chartOptions.scales.x.time.unit=this.chartScaleX.unit,this.chartOptions.scales.x.time.tooltipFormat=this.chartScaleX.tooltipFormat,this.chartOptions.scales.x.title.text=this.chartScaleX.text,this.chartOptions.scales.x.ticks.maxTicksLimit=this.chartScaleX.maxTicksLimit},requestChart(){if(document.forms.chartFilterForm.reportValidity()){this.chartIsLoading=!0,this.setupScaleX(),this.chartDatasets.datasets=[];var t="";switch(this.chartRange){case"day":t="getDailyLog";break;case"month":t="getMonthlyLog";break;case"year":t="getYearlyLog";break}this.$emit("sendCommand",{command:t,data:this.commandData})}else{console.warn("form invalid");return}},clearChartData(){this.getWildcardIndexList(this.baseTopic+"+").forEach(e=>{this.$store.commit("removeTopic",`${this.baseTopic}${e}`)})},updateChart(){this.clearChartData(),this.requestChart()},init(){const e=new Date;this.currentDate=String(e.getFullYear()),this.chartRange!="year"&&(this.currentDate=this.currentDate+"-"+String(e.getMonth()+1).padStart(2,"0")),this.chartRange=="day"&&(this.currentDate=this.currentDate+"-"+String(e.getDate()).padStart(2,"0")),this.blockChartInit?this.blockChartInit=!1:this.initialDate==null||this.initialDate==""?this.chartDate=this.currentDate:this.chartDate=this.initialDate,this.updateChart()}}},re={class:"chart"},ae={key:0},ie={key:1},ne={name:"chartFilterForm"},oe={key:1},se={key:1},le={class:"openwb-chart"},de={name:"chartTotalsForm"},ce={key:1};function ue(e,t,a,n,i,r){const u=h("openwb-base-alert"),g=h("openwb-base-select-input"),v=h("openwb-base-text-input"),y=h("openwb-base-card"),S=h("chartjs-line"),R=h("font-awesome-icon"),w=h("openwb-base-heading");return o(),s("div",re,[e.$store.state.mqtt["openWB/general/extern"]===!0?(o(),s("div",ae,[d(u,{subtype:"info"},{default:c(()=>[...t[3]||(t[3]=[b(' Die Auswertungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. Du findest alle Auswertungen in der openWB, welche sich im Steuerungsmodus "primary" befindet. ',-1)])]),_:1})])):(o(),s("div",ie,[d(y,{title:"Filter",collapsible:!0,collapsed:!1},{default:c(()=>[_("form",ne,[d(g,{modelValue:i.chartRange,"onUpdate:modelValue":t[0]||(t[0]=p=>i.chartRange=p),title:"Zeitraum",options:[{value:"day",text:"Tag"},{value:"month",text:"Monat"},{value:"year",text:"Jahr"}]},null,8,["modelValue"]),d(v,{modelValue:r.chartDate,"onUpdate:modelValue":[t[1]||(t[1]=p=>r.chartDate=p),t[2]||(t[2]=p=>r.updateChart())],title:r.dateInput.title,subtype:r.dateInput.type,min:r.dateInput.min,max:i.currentDate,"show-quick-buttons":!0},null,8,["modelValue","title","subtype","min","max"])])]),_:1}),i.chartIsLoading?(o(),f(u,{key:0,subtype:"info"},{default:c(()=>[...t[4]||(t[4]=[b(" Daten werden geladen... ",-1)])]),_:1})):(o(),s("div",oe,[r.chartDataHasEntries?(o(),s("div",se,[d(y,{title:"Diagramm",collapsible:!0,collapsed:!1},{default:c(()=>[_("div",le,[d(S,{ref:"myChart",data:r.chartData,options:i.chartOptions,onClick:r.handleChartClick},null,8,["data","options","onClick"])])]),_:1}),d(y,{title:"Summen",collapsible:!0,collapsed:!0},{default:c(()=>[_("form",de,[(o(!0),s(k,null,x(Object.fromEntries(Object.entries(r.chartTotals).filter(([p,l])=>Object.keys(l).length>0)),(p,l)=>(o(),f(y,{key:l,collapsible:!0,collapsed:!0,subtype:r.getCardSubtype(l)},{header:c(()=>[d(R,{icon:r.getCardIcon(l)},null,8,["icon"]),b(" "+D(r.getTotalsLabel(l)),1)]),default:c(()=>[(o(!0),s(k,null,x(p,(I,m)=>(o(),s("div",{key:m},[l!=="hc"?(o(),f(w,{key:0},{default:c(()=>[b(D(r.getTotalsLabel(l,m)),1)]),_:2},1024)):C("",!0),(o(!0),s(k,null,x(I,(W,A)=>(o(),s("div",{key:A},[d(v,{title:r.getTotalsLabel(l,m,A),readonly:"",class:"text-right",unit:"kWh","model-value":e.formatNumber(W/1e3,3)},null,8,["title","model-value"])]))),128)),m=="all"&&l!="hc"?(o(),s("hr",ce)):C("",!0)]))),128))]),_:2},1032,["subtype"]))),128))])]),_:1})])):(o(),f(u,{key:0,subtype:"info"},{default:c(()=>[...t[5]||(t[5]=[b(" Es konnten keine Daten für diesen Zeitraum gefunden werden. ",-1)])]),_:1}))]))]))])}const xe=ee(te,[["render",ue],["__scopeId","data-v-e00a7cd5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Chart.vue"]]);export{xe as default}; diff --git a/web/settings/assets/CloudConfig-1f382920.js b/web/settings/assets/CloudConfig-1f382920.js deleted file mode 100644 index 5eae34fda2..0000000000 --- a/web/settings/assets/CloudConfig-1f382920.js +++ /dev/null @@ -1 +0,0 @@ -import{l as q,aa as S,F as z}from"./vendor-fortawesome-a02b6813.js";import{C as P}from"./index-8dd8e083.js";import{_ as h,u as a,l,m as C,G as s,E as t,A as i,x as p,z as m,D as Z,N as I,B as r,q as k}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";q.add(S);const M={name:"OpenwbCloudConfigView",components:{FontAwesomeIcon:z},mixins:[P],emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/dataprotection_acknowledged","openWB/system/mqtt/bridge/+","openWB/system/mqtt/valid_partner_ids"],enableNewCloudButton:!0,newCloudData:{email:"",username:"",partner:!1},enableCloudConnectButton:!0,connectCloudData:{username:"",password:"",partner:!1},enableRemoveCloudButton:!0,showCloudRemoveModal:!1}},computed:{cloudBridge:{get(){let n=this.getWildcardTopics("openWB/system/mqtt/bridge/+");for(const[e,w]of Object.entries(n))w.remote.is_openwb_cloud||delete n[e];return n}},cloudBridgeKey:{get(){for(const[n,e]of Object.entries(this.cloudBridge))if(e.remote.is_openwb_cloud)return n}},cloudSettings:{get(){return{username:this.cloudBridge[this.cloudBridgeKey].remote.username,password:this.cloudBridge[this.cloudBridgeKey].remote.password,partner:this.cloudBridge[this.cloudBridgeKey].access?this.cloudBridge[this.cloudBridgeKey].access.partner:!1}}}},methods:{getMqttBridgeIndex(n){return parseInt(n.match(/(?:\/)(\d+)$/)[1])},createCloud(){document.forms.cloudConfigCreateForm.reportValidity()&&(this.$emit("save"),this.$emit("sendCommand",{command:"initCloud",data:this.newCloudData}),this.enableNewCloudButton=!1)},connectCloud(){document.forms.cloudConfigConnectForm.reportValidity()&&(this.$emit("save"),this.$emit("sendCommand",{command:"connectCloud",data:this.connectCloudData}),this.enableCloudConnectButton=!1)},removeCloudModal(n){n.stopPropagation(),this.showCloudRemoveModal=!0},removeCloud(n){this.showCloudRemoveModal=!1,n=="confirm"&&(this.updateState("openWB/system/mqtt/valid_partner_ids",[]),this.$emit("sendCommand",{command:"removeMqttBridge",data:{bridge:this.getMqttBridgeIndex(this.cloudBridgeKey)}}),this.enableCloudConnectButton=!0)}}},K={class:"cloud-config"},x={key:1},R={key:1,name:"cloudConfigConnectForm"},U={class:"row justify-content-center"},A={key:2,name:"cloudConfigured"},N={class:"row justify-content-center"};function F(n,e,w,j,u,d){const D=a("openwb-base-modal-dialog"),c=a("router-link"),g=a("openwb-base-alert"),b=a("openwb-base-text-input"),B=a("openwb-base-button-group-input"),f=a("font-awesome-icon"),_=a("openwb-base-array-input"),y=a("openwb-base-click-button"),v=a("openwb-base-card"),V=a("openwb-base-heading"),W=a("openwb-base-submit-buttons");return l(),C(I,null,[s(D,{show:u.showCloudRemoveModal,title:"Cloud Zugang löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=o=>d.removeCloud(o))},{default:t(()=>e[13]||(e[13]=[r(" Willst Du den vorhandenen Cloud Zugang wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",-1)])),_:1,__:[13]},8,["show"]),i("div",K,[n.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(l(),p(g,{key:0,subtype:"danger"},{default:t(()=>[e[15]||(e[15]=r(" Du musst der ",-1)),s(c,{to:"/System/LegalSettings"},{default:t(()=>e[14]||(e[14]=[r(" Datenschutzerklärung ",-1)])),_:1,__:[14]}),e[16]||(e[16]=r(" zustimmen, um die openWB Cloud nutzen zu können. ",-1))]),_:1,__:[15,16]})):(l(),C("div",x,[s(g,{subtype:"success"},{default:t(()=>[e[18]||(e[18]=r(" Du hast der ",-1)),s(c,{to:"/System/LegalSettings"},{default:t(()=>e[17]||(e[17]=[r(" Datenschutzerklärung ",-1)])),_:1,__:[17]}),e[19]||(e[19]=r(" zugestimmt und kannst die openWB Cloud nutzen. ",-1))]),_:1,__:[18,19]}),u.enableRemoveCloudButton?m("",!0):(l(),p(g,{key:0,subtype:"warning"},{default:t(()=>e[20]||(e[20]=[r(" Der Zugang wurde entfernt. Bitte starte die openWB neu, um die Änderungen anzuwenden! ",-1)])),_:1,__:[20]})),d.cloudBridgeKey?m("",!0):(l(),C("form",R,[s(v,{title:"Vorhandenen Zugang einrichten"},Z({default:t(()=>[s(g,{subtype:"info"},{default:t(()=>e[21]||(e[21]=[i("p",null,[r(" Bitte nutze die in/an der openWB notierten Zugangsdaten. Wenn bei einer gekauften openWB keine Zugangsdaten vorhanden sind, schreibe bitte eine Mail unter Angabe der Bestell- und/oder Seriennummer an "),i("a",{href:"mailto:support@openwb.de",subject:"Cloud Zugangsdaten"}," support@openwb.de "),r(" . ")],-1),i("p",null,[r(" Eine Anleitung zur Einrichtung der openWB Cloud findest Du im "),i("a",{href:"https://wiki.openwb.de/doku.php?id=openwb:faq:cloudeinrichten",target:"_blank",rel:"noopener noreferrer"}," Wiki "),r(". ")],-1)])),_:1,__:[21]}),s(b,{modelValue:u.connectCloudData.username,"onUpdate:modelValue":e[1]||(e[1]=o=>u.connectCloudData.username=o),title:"Benutzername",required:"",subtype:"user"},null,8,["modelValue"]),s(b,{modelValue:u.connectCloudData.password,"onUpdate:modelValue":e[2]||(e[2]=o=>u.connectCloudData.password=o),title:"Passwort",required:"",subtype:"password"},null,8,["modelValue"]),s(B,{modelValue:u.connectCloudData.partner,"onUpdate:modelValue":e[3]||(e[3]=o=>u.connectCloudData.partner=o),title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},{help:t(()=>e[22]||(e[22]=[r(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ",-1)])),_:1},8,["modelValue"]),u.connectCloudData.partner?(l(),p(_,{key:0,title:"Gültige Partner-IDs","no-elements-message":"Keine Partner-ID zugeordnet.","model-value":n.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[4]||(e[4]=o=>n.updateState("openWB/system/mqtt/valid_partner_ids",o))},{"input-prefix":t(()=>[s(f,{icon:["fas","user-gear"]})]),"element-prefix":t(()=>[s(f,{icon:["fas","user-gear"]})]),help:t(()=>e[23]||(e[23]=[r(" Die Partner-ID erhältst Du von Deinem Installateur. Ist hier keine Partner-ID eingetragen, dann kann auch niemand - trotz aktiviertem Zugang für Partner - über das Partner-Portal auf diese openWB zugreifen! ",-1)])),_:1},8,["model-value"])):m("",!0)]),_:2},[n.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:t(()=>[i("div",U,[s(y,{class:k(["col-4",u.enableCloudConnectButton?"btn-success":"btn-outline-success"]),disabled:!u.enableCloudConnectButton,onButtonClicked:d.connectCloud},{default:t(()=>e[24]||(e[24]=[r(" Mit Cloud verbinden ",-1)])),_:1,__:[24]},8,["class","disabled","onButtonClicked"])])]),key:"0"}:void 0]),1024)])),d.cloudBridgeKey?(l(),C("form",A,[!u.enableCloudConnectButton||!u.enableNewCloudButton?(l(),p(g,{key:0,subtype:"warning"},{default:t(()=>e[25]||(e[25]=[r(" Der Zugang wurde eingerichtet. Bitte starte die die openWB neu, um die Änderungen anzuwenden! ",-1)])),_:1,__:[25]})):m("",!0),s(v,{title:"Vorhandener Cloud Zugang"},{footer:t(()=>[i("div",N,[s(y,{class:k(["col-4",u.enableRemoveCloudButton?"btn-danger":"btn-outline-danger"]),disabled:!u.enableRemoveCloudButton,onButtonClicked:e[9]||(e[9]=o=>d.removeCloudModal(o))},{default:t(()=>e[29]||(e[29]=[r(" Zugang löschen ",-1)])),_:1,__:[29]},8,["class","disabled"])])]),default:t(()=>[s(V,null,{default:t(()=>e[26]||(e[26]=[i("span",null,[r(" Mit diesen Zugangsdaten kannst Du dich in der "),i("a",{href:"https://remote.openwb.de/",target:"_blank",rel:"noopener noreferrer"}," openWB Cloud "),r(" anmelden. ")],-1)])),_:1,__:[26]}),s(b,{modelValue:d.cloudSettings.username,"onUpdate:modelValue":e[5]||(e[5]=o=>d.cloudSettings.username=o),title:"Benutzername",required:"",subtype:"user",disabled:""},null,8,["modelValue"]),s(b,{modelValue:d.cloudSettings.password,"onUpdate:modelValue":e[6]||(e[6]=o=>d.cloudSettings.password=o),title:"Passwort",required:"",subtype:"password",disabled:""},null,8,["modelValue"]),e[30]||(e[30]=i("hr",null,null,-1)),s(B,{title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":d.cloudSettings.partner,"onUpdate:modelValue":e[7]||(e[7]=o=>n.updateState(d.cloudBridgeKey,o,"access.partner"))},{help:t(()=>e[27]||(e[27]=[r(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ",-1)])),_:1},8,["model-value"]),d.cloudSettings.partner?(l(),p(_,{key:0,title:"Gültige Partner-IDs","no-elements-message":"Keine Partner-ID zugeordnet.","model-value":n.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[8]||(e[8]=o=>n.updateState("openWB/system/mqtt/valid_partner_ids",o))},{"input-prefix":t(()=>[s(f,{icon:["fas","user-gear"]})]),"element-prefix":t(()=>[s(f,{icon:["fas","user-gear"]})]),help:t(()=>e[28]||(e[28]=[r(" Die Partner-ID erhältst Du von Deinem Installateur. Ist hier keine Partner-ID eingetragen, dann kann auch niemand - trotz aktiviertem Zugang für Partner - über das Partner-Portal auf diese openWB zugreifen! ",-1)])),_:1},8,["model-value"])):m("",!0)]),_:1,__:[30]})])):m("",!0),d.cloudBridgeKey?(l(),p(W,{key:3,"form-name":"cloudConfigured",onSave:e[10]||(e[10]=o=>n.$emit("save")),onReset:e[11]||(e[11]=o=>n.$emit("reset")),onDefaults:e[12]||(e[12]=o=>n.$emit("defaults"))})):m("",!0)]))])],64)}const Q=h(M,[["render",F],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/CloudConfig.vue"]]);export{Q as default}; diff --git a/web/settings/assets/CloudConfig-832400a4.js b/web/settings/assets/CloudConfig-832400a4.js new file mode 100644 index 0000000000..cb1b8ec0c8 --- /dev/null +++ b/web/settings/assets/CloudConfig-832400a4.js @@ -0,0 +1 @@ +import{l as q,aa as S,F as z}from"./vendor-fortawesome-fc4b3a41.js";import{C as P}from"./index-c94f8df4.js";import{_ as h,u as a,l,m as C,G as s,E as t,A as i,x as p,z as m,D as Z,N as I,B as r,q as _}from"./vendor-50125810.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";q.add(S);const M={name:"OpenwbCloudConfigView",components:{FontAwesomeIcon:z},mixins:[P],emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/dataprotection_acknowledged","openWB/system/mqtt/bridge/+","openWB/system/mqtt/valid_partner_ids"],enableNewCloudButton:!0,newCloudData:{email:"",username:"",partner:!1},enableCloudConnectButton:!0,connectCloudData:{username:"",password:"",partner:!1},enableRemoveCloudButton:!0,showCloudRemoveModal:!1}},computed:{cloudBridge:{get(){let n=this.getWildcardTopics("openWB/system/mqtt/bridge/+");for(const[e,w]of Object.entries(n))w.remote.is_openwb_cloud||delete n[e];return n}},cloudBridgeKey:{get(){for(const[n,e]of Object.entries(this.cloudBridge))if(e.remote.is_openwb_cloud)return n}},cloudSettings:{get(){return{username:this.cloudBridge[this.cloudBridgeKey].remote.username,password:this.cloudBridge[this.cloudBridgeKey].remote.password,partner:this.cloudBridge[this.cloudBridgeKey].access?this.cloudBridge[this.cloudBridgeKey].access.partner:!1}}}},methods:{getMqttBridgeIndex(n){return parseInt(n.match(/(?:\/)(\d+)$/)[1])},createCloud(){document.forms.cloudConfigCreateForm.reportValidity()&&(this.$emit("save"),this.$emit("sendCommand",{command:"initCloud",data:this.newCloudData}),this.enableNewCloudButton=!1)},connectCloud(){document.forms.cloudConfigConnectForm.reportValidity()&&(this.$emit("save"),this.$emit("sendCommand",{command:"connectCloud",data:this.connectCloudData}),this.enableCloudConnectButton=!1)},removeCloudModal(n){n.stopPropagation(),this.showCloudRemoveModal=!0},removeCloud(n){this.showCloudRemoveModal=!1,n=="confirm"&&(this.updateState("openWB/system/mqtt/valid_partner_ids",[]),this.$emit("sendCommand",{command:"removeMqttBridge",data:{bridge:this.getMqttBridgeIndex(this.cloudBridgeKey)}}),this.enableCloudConnectButton=!0)}}},K={class:"cloud-config"},x={key:1},R={key:1,name:"cloudConfigConnectForm"},U={class:"row justify-content-center"},A={key:2,name:"cloudConfigured"},N={class:"row justify-content-center"};function F(n,e,w,j,u,d){const D=a("openwb-base-modal-dialog"),c=a("router-link"),g=a("openwb-base-alert"),b=a("openwb-base-text-input"),B=a("openwb-base-button-group-input"),f=a("font-awesome-icon"),y=a("openwb-base-array-input"),v=a("openwb-base-click-button"),k=a("openwb-base-card"),V=a("openwb-base-heading"),W=a("openwb-base-submit-buttons");return l(),C(I,null,[s(D,{show:u.showCloudRemoveModal,title:"Cloud Zugang löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=o=>d.removeCloud(o))},{default:t(()=>[...e[13]||(e[13]=[r(" Willst Du den vorhandenen Cloud Zugang wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",-1)])]),_:1},8,["show"]),i("div",K,[n.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(l(),p(g,{key:0,subtype:"danger"},{default:t(()=>[e[15]||(e[15]=r(" Du musst der ",-1)),s(c,{to:"/System/LegalSettings"},{default:t(()=>[...e[14]||(e[14]=[r(" Datenschutzerklärung ",-1)])]),_:1}),e[16]||(e[16]=r(" zustimmen, um die openWB Cloud nutzen zu können. ",-1))]),_:1})):(l(),C("div",x,[s(g,{subtype:"success"},{default:t(()=>[e[18]||(e[18]=r(" Du hast der ",-1)),s(c,{to:"/System/LegalSettings"},{default:t(()=>[...e[17]||(e[17]=[r(" Datenschutzerklärung ",-1)])]),_:1}),e[19]||(e[19]=r(" zugestimmt und kannst die openWB Cloud nutzen. ",-1))]),_:1}),u.enableRemoveCloudButton?m("",!0):(l(),p(g,{key:0,subtype:"warning"},{default:t(()=>[...e[20]||(e[20]=[r(" Der Zugang wurde entfernt. Bitte starte die openWB neu, um die Änderungen anzuwenden! ",-1)])]),_:1})),d.cloudBridgeKey?m("",!0):(l(),C("form",R,[s(k,{title:"Vorhandenen Zugang einrichten"},Z({default:t(()=>[s(g,{subtype:"info"},{default:t(()=>[...e[21]||(e[21]=[i("p",null,[r(" Bitte nutze die in/an der openWB notierten Zugangsdaten. Wenn bei einer gekauften openWB keine Zugangsdaten vorhanden sind, schreibe bitte eine Mail unter Angabe der Bestell- und/oder Seriennummer an "),i("a",{href:"mailto:support@openwb.de",subject:"Cloud Zugangsdaten"}," support@openwb.de "),r(" . ")],-1),i("p",null,[r(" Eine Anleitung zur Einrichtung der openWB Cloud findest Du im "),i("a",{href:"https://wiki.openwb.de/doku.php?id=openwb:faq:cloudeinrichten",target:"_blank",rel:"noopener noreferrer"}," Wiki "),r(". ")],-1)])]),_:1}),s(b,{modelValue:u.connectCloudData.username,"onUpdate:modelValue":e[1]||(e[1]=o=>u.connectCloudData.username=o),title:"Benutzername",required:"",subtype:"user"},null,8,["modelValue"]),s(b,{modelValue:u.connectCloudData.password,"onUpdate:modelValue":e[2]||(e[2]=o=>u.connectCloudData.password=o),title:"Passwort",required:"",subtype:"password"},null,8,["modelValue"]),s(B,{modelValue:u.connectCloudData.partner,"onUpdate:modelValue":e[3]||(e[3]=o=>u.connectCloudData.partner=o),title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},{help:t(()=>[...e[22]||(e[22]=[r(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ",-1)])]),_:1},8,["modelValue"]),u.connectCloudData.partner?(l(),p(y,{key:0,title:"Gültige Partner-IDs","no-elements-message":"Keine Partner-ID zugeordnet.","model-value":n.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[4]||(e[4]=o=>n.updateState("openWB/system/mqtt/valid_partner_ids",o))},{"input-prefix":t(()=>[s(f,{icon:["fas","user-gear"]})]),"element-prefix":t(()=>[s(f,{icon:["fas","user-gear"]})]),help:t(()=>[...e[23]||(e[23]=[r(" Die Partner-ID erhältst Du von Deinem Installateur. Ist hier keine Partner-ID eingetragen, dann kann auch niemand - trotz aktiviertem Zugang für Partner - über das Partner-Portal auf diese openWB zugreifen! ",-1)])]),_:1},8,["model-value"])):m("",!0)]),_:2},[n.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:t(()=>[i("div",U,[s(v,{class:_(["col-4",u.enableCloudConnectButton?"btn-success":"btn-outline-success"]),disabled:!u.enableCloudConnectButton,onButtonClicked:d.connectCloud},{default:t(()=>[...e[24]||(e[24]=[r(" Mit Cloud verbinden ",-1)])]),_:1},8,["class","disabled","onButtonClicked"])])]),key:"0"}:void 0]),1024)])),d.cloudBridgeKey?(l(),C("form",A,[!u.enableCloudConnectButton||!u.enableNewCloudButton?(l(),p(g,{key:0,subtype:"warning"},{default:t(()=>[...e[25]||(e[25]=[r(" Der Zugang wurde eingerichtet. Bitte starte die die openWB neu, um die Änderungen anzuwenden! ",-1)])]),_:1})):m("",!0),s(k,{title:"Vorhandener Cloud Zugang"},{footer:t(()=>[i("div",N,[s(v,{class:_(["col-4",u.enableRemoveCloudButton?"btn-danger":"btn-outline-danger"]),disabled:!u.enableRemoveCloudButton,onButtonClicked:e[9]||(e[9]=o=>d.removeCloudModal(o))},{default:t(()=>[...e[29]||(e[29]=[r(" Zugang löschen ",-1)])]),_:1},8,["class","disabled"])])]),default:t(()=>[s(V,null,{default:t(()=>[...e[26]||(e[26]=[i("span",null,[r(" Mit diesen Zugangsdaten kannst Du dich in der "),i("a",{href:"https://remote.openwb.de/",target:"_blank",rel:"noopener noreferrer"}," openWB Cloud "),r(" anmelden. ")],-1)])]),_:1}),s(b,{modelValue:d.cloudSettings.username,"onUpdate:modelValue":e[5]||(e[5]=o=>d.cloudSettings.username=o),title:"Benutzername",required:"",subtype:"user",disabled:""},null,8,["modelValue"]),s(b,{modelValue:d.cloudSettings.password,"onUpdate:modelValue":e[6]||(e[6]=o=>d.cloudSettings.password=o),title:"Passwort",required:"",subtype:"password",disabled:""},null,8,["modelValue"]),e[30]||(e[30]=i("hr",null,null,-1)),s(B,{title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":d.cloudSettings.partner,"onUpdate:modelValue":e[7]||(e[7]=o=>n.updateState(d.cloudBridgeKey,o,"access.partner"))},{help:t(()=>[...e[27]||(e[27]=[r(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ",-1)])]),_:1},8,["model-value"]),d.cloudSettings.partner?(l(),p(y,{key:0,title:"Gültige Partner-IDs","no-elements-message":"Keine Partner-ID zugeordnet.","model-value":n.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[8]||(e[8]=o=>n.updateState("openWB/system/mqtt/valid_partner_ids",o))},{"input-prefix":t(()=>[s(f,{icon:["fas","user-gear"]})]),"element-prefix":t(()=>[s(f,{icon:["fas","user-gear"]})]),help:t(()=>[...e[28]||(e[28]=[r(" Die Partner-ID erhältst Du von Deinem Installateur. Ist hier keine Partner-ID eingetragen, dann kann auch niemand - trotz aktiviertem Zugang für Partner - über das Partner-Portal auf diese openWB zugreifen! ",-1)])]),_:1},8,["model-value"])):m("",!0)]),_:1})])):m("",!0),d.cloudBridgeKey?(l(),p(W,{key:3,"form-name":"cloudConfigured",onSave:e[10]||(e[10]=o=>n.$emit("save")),onReset:e[11]||(e[11]=o=>n.$emit("reset")),onDefaults:e[12]||(e[12]=o=>n.$emit("defaults"))})):m("",!0)]))])],64)}const Q=h(M,[["render",F],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/CloudConfig.vue"]]);export{Q as default}; diff --git a/web/settings/assets/DataManagement-52054445.js b/web/settings/assets/DataManagement-52054445.js deleted file mode 100644 index 4652e703b2..0000000000 --- a/web/settings/assets/DataManagement-52054445.js +++ /dev/null @@ -1 +0,0 @@ -import{l as F,a6 as V,a7 as E,F as A,as as q,at as H,au as N,av as $,aw as I}from"./vendor-fortawesome-a02b6813.js";import{_ as B,C as G}from"./index-8dd8e083.js";import{_ as j}from"./dynamic-import-helper-be004503.js";import{_ as C,u as d,l as u,m,x as y,E as i,B as o,F as b,G as t,A as s,a2 as z,a3 as P,N as W,z as w,q as M,M as T,D as J}from"./vendor-25d394b4.js";const K={props:{backupCloud:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})},sendSystemCommand(n,e={}){this.$emit("sendCommand",{command:n,data:e})}}},Z=C(K,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/BackupCloudConfigMixin.vue"]]),Q={name:"BackupCloudConfigFallback",mixins:[Z]},X={class:"backup-cloud-fallback"},Y={key:1};function ee(n,e,a,_,l,r){const p=d("openwb-base-alert"),c=d("openwb-base-textarea");return u(),m("div",X,[Object.keys(n.backupCloud.configuration).length==0?(u(),y(p,{key:0,subtype:"info"},{default:i(()=>[o(' Die Backup-Cloud "'+b(n.backupCloud.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(u(),m("div",Y,[t(p,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für die Backup-Cloud "'+b(n.backupCloud.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),t(c,{title:"Konfiguration",subtype:"json","model-value":n.backupCloud.configuration,"onUpdate:modelValue":e[0]||(e[0]=k=>n.updateConfiguration(k,"configuration"))},{help:i(()=>e[1]||(e[1]=[o(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),t(p,{subtype:"info"},{default:i(()=>[s("pre",null,b(JSON.stringify(n.backupCloud.configuration,void 0,2)),1)]),_:1})]))])}const ne=C(Q,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudConfigFallback.vue"]]);F.add(V,E);const te={name:"OpenwbBackupCloudProxy",components:{FontAwesomeIcon:A},props:{backupCloud:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{getBackupCloudComponent(){return console.debug(`loading backup cloud: ${this.backupCloud.type}`),z({loader:()=>j(Object.assign({"./nextcloud/backup_cloud.vue":()=>B(()=>import("./backup_cloud-5420b416.js"),["assets/backup_cloud-5420b416.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./nfs/backup_cloud.vue":()=>B(()=>import("./backup_cloud-66a4543e.js"),["assets/backup_cloud-66a4543e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./onedrive/backup_cloud.vue":()=>B(()=>import("./backup_cloud-0a9a4a8d.js"),["assets/backup_cloud-0a9a4a8d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./samba/backup_cloud.vue":()=>B(()=>import("./backup_cloud-e3708975.js"),["assets/backup_cloud-e3708975.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.backupCloud.type}/backup_cloud.vue`),errorComponent:ne})},updateConfiguration(n){this.$emit("update:configuration",n)},sendCommand(n){this.$emit("sendCommand",n)}}};function oe(n,e,a,_,l,r){const p=d("font-awesome-icon"),c=d("openwb-base-alert"),k=d("openwb-base-heading");return u(),m(W,null,[a.backupCloud.official?(u(),y(c,{key:0,subtype:"success"},{default:i(()=>[t(p,{icon:["fas","certificate"]}),o(' Das ausgewählte Backup-Cloud Modul "'+b(a.backupCloud.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(u(),y(c,{key:1,subtype:"info"},{default:i(()=>[t(p,{icon:["fas","people-group"]}),o(' Das ausgewählte Backup-Cloud Modul "'+b(a.backupCloud.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),t(k,null,{default:i(()=>[o(' Einstellungen für Backup-Cloud Modul "'+b(a.backupCloud.name)+'" ',1)]),_:1}),(u(),y(P(r.getBackupCloudComponent()),{"backup-cloud":a.backupCloud,"onUpdate:configuration":e[0]||(e[0]=h=>r.updateConfiguration(h)),onSendCommand:e[1]||(e[1]=h=>r.sendCommand(h))},null,40,["backup-cloud"]))],64)}const ie=C(te,[["render",oe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudProxy.vue"]]),se={props:{monitoring:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},ae=C(se,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/MonitoringConfigMixin.vue"]]),re={name:"MonitoringConfigFallback",mixins:[ae]},le={class:"monitoring-fallback"},ue={key:1};function de(n,e,a,_,l,r){const p=d("openwb-base-alert"),c=d("openwb-base-textarea");return u(),m("div",le,[Object.keys(n.monitoring.configuration).length==0?(u(),y(p,{key:0,subtype:"info"},{default:i(()=>[o(' Der Anbieter "'+b(n.monitoring.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(u(),m("div",ue,[t(p,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für den Anbieter "'+b(n.monitoring.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),t(c,{title:"Konfiguration",subtype:"json","model-value":n.monitoring.configuration,"onUpdate:modelValue":e[0]||(e[0]=k=>n.updateConfiguration(k,"configuration"))},{help:i(()=>e[1]||(e[1]=[o(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),t(p,{subtype:"info"},{default:i(()=>[s("pre",null,b(JSON.stringify(n.monitoring.configuration,void 0,2)),1)]),_:1})]))])}const pe=C(re,[["render",de],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/OpenwbMonitoringConfigFallback.vue"]]);F.add(V,E);const ce={name:"OpenwbMonitoringProxy",components:{FontAwesomeIcon:A},props:{monitoring:{type:Object,required:!0}},emits:["update:configuration"],methods:{getMonitoringComponent(){return console.debug(`loading monitoring: ${this.monitoring.type}`),z({loader:()=>j(Object.assign({"./zabbix/monitoring.vue":()=>B(()=>import("./monitoring-1f99e249.js"),["assets/monitoring-1f99e249.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.monitoring.type}/monitoring.vue`),errorComponent:pe})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function me(n,e,a,_,l,r){const p=d("font-awesome-icon"),c=d("openwb-base-alert"),k=d("openwb-base-heading");return u(),m(W,null,[a.monitoring.official?(u(),y(c,{key:0,subtype:"success"},{default:i(()=>[t(p,{icon:["fas","certificate"]}),o(' Das ausgewählte Monitoring Modul "'+b(a.monitoring.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(u(),y(c,{key:1,subtype:"info"},{default:i(()=>[t(p,{icon:["fas","people-group"]}),o(' Das ausgewählte Monitoring Modul "'+b(a.monitoring.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),t(k,null,{default:i(()=>[o(' Einstellungen für Modul "'+b(a.monitoring.name)+'" ',1)]),_:1}),(u(),y(P(r.getMonitoringComponent()),{monitoring:a.monitoring,"onUpdate:configuration":e[0]||(e[0]=h=>r.updateConfiguration(h))},null,40,["monitoring"]))],64)}const ge=C(ce,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/OpenwbMonitoringProxy.vue"]]);F.add(q,H,N,$,I);const fe={name:"OpenwbDataManagementView",components:{FontAwesomeIcon:A,OpenwbBackupCloudProxy:ie,OpenwbMonitoringProxy:ge},mixins:[G],props:{installAssistantActive:{type:Boolean,required:!1,default:!1},showBackupCloudSection:{type:Boolean,required:!1,default:!0}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/configurable/backup_clouds","openWB/system/configurable/monitoring","openWB/system/backup_cloud/config","openWB/system/backup_cloud/backup_before_update","openWB/system/device/+/component/+/config","openWB/chargepoint/+/config","openWB/optional/monitoring/config","openWB/vehicle/+/name","openWB/LegacySmartHome/config/get/Devices/+/device_configured","openWB/LegacySmartHome/config/get/Devices/+/device_name"],warningAcknowledged:!1,showRestoreSection:!this.installAssistantActive,selectedRestoreFile:void 0,restoreUploadDone:!1,selectedDataMigrationFile:void 0,dataMigrationUploadDone:!1,dataMigrationConfig:[{sectionName:"Ladepunkte",sectionComponents:[{key:"cp1",label:"Ladepunkt 1",validTypes:["chargePoint"]},{key:"cp2",label:"Ladepunkt 2",validTypes:["chargePoint"]},{key:"cp3",label:"Ladepunkt 3",validTypes:["chargePoint"]},{key:"cp4",label:"Ladepunkt 4",validTypes:["chargePoint"]},{key:"cp5",label:"Ladepunkt 5",validTypes:["chargePoint"]},{key:"cp6",label:"Ladepunkt 6",validTypes:["chargePoint"]},{key:"cp7",label:"Ladepunkt 7",validTypes:["chargePoint"]},{key:"cp8",label:"Ladepunkt 8",validTypes:["chargePoint"]}]},{sectionName:"Zähler",sectionComponents:[{key:"evu",label:"EVU",validTypes:["counter"]},{key:"consumer1",label:"Verbraucher 1",validTypes:["counter"]},{key:"consumer2",label:"Verbraucher 2",validTypes:["counter"]},{key:"consumer3",label:"Verbraucher 3",validTypes:["counter"]}]},{sectionName:"Wechselrichter",sectionComponents:[{key:"pvAll",label:"Wechselrichter (Summe)",validTypes:["inverter"],help:"Die 1.9er Version von openWB speichert lediglich die Summen-Leistung aller Wechselrichter."}]},{sectionName:"Batteriespeicher",sectionComponents:[{key:"bat",label:"Speicher 1",validTypes:["battery"]}]},{sectionName:"Fahrzeuge",sectionComponents:[{key:"ev1",label:"Fahrzeug von Ladepunkt 1",validTypes:["vehicle"]},{key:"ev2",label:"Fahrzeug von Ladepunkt 2",validTypes:["vehicle"]}]},{sectionName:"SmartHome 2.0",sectionComponents:[{key:"sh1",label:"Gerät 1",validTypes:["smartHome"]},{key:"sh2",label:"Gerät 2",validTypes:["smartHome"]},{key:"sh3",label:"Gerät 3",validTypes:["smartHome"]},{key:"sh4",label:"Gerät 4",validTypes:["smartHome"]},{key:"sh5",label:"Gerät 5",validTypes:["smartHome"]},{key:"sh6",label:"Gerät 6",validTypes:["smartHome"]},{key:"sh7",label:"Gerät 7",validTypes:["smartHome"]},{key:"sh8",label:"Gerät 8",validTypes:["smartHome"]},{key:"sh9",label:"Gerät 9",validTypes:["smartHome"]}]}],dataMigrationMapping:{cp1:void 0,cp2:void 0,cp3:void 0,cp4:void 0,cp5:void 0,cp6:void 0,cp7:void 0,cp8:void 0,evu:void 0,pvAll:void 0,bat:void 0,consumer1:void 0,consumer2:void 0,consumer3:void 0,sh1:void 0,sh2:void 0,sh3:void 0,sh4:void 0,sh5:void 0,sh6:void 0,sh7:void 0,sh8:void 0,sh9:void 0,ev1:void 0,ev2:void 0}}},computed:{backupCloudList(){return this.$store.state.mqtt["openWB/system/configurable/backup_clouds"]},componentConfigurations(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")},chargePointOptions(){let n=this.getWildcardTopics("openWB/chargepoint/+/config");var e=[];for(const a of Object.values(n))e.push({value:a.id,text:a.name});return e},counterOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"counter")&&n.push({value:e.id,text:e.name});return n},inverterOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"inverter")&&n.push({value:e.id,text:e.name});return n},monitoringList(){return this.$store.state.mqtt["openWB/system/configurable/monitoring"]},batteryOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"bat")&&n.push({value:e.id,text:e.name});return n},vehicleOptions(){let n=this.getWildcardTopics("openWB/vehicle/+/name");var e=[];for(const[a,_]of Object.entries(n)){let l=parseInt(a.match(/\/(\d\d?)\//)[1]);e.push({value:l,text:_})}return e},smartHomeOptions(){let n=this.getWildcardTopics("openWB/LegacySmartHome/config/get/Devices/+/device_configured");var e=[];for(const[a,_]of Object.entries(n))if(_==1){let l=parseInt(a.match(/\/(\d\d?)\//)[1]);e.push({value:l,text:this.$store.state.mqtt[`openWB/LegacySmartHome/config/get/Devices/${l}/device_name`]})}return e}},methods:{isComponentType(n,e){return n.split("_").includes(e)},getBackupCloudDefaultConfiguration(n){const e=this.backupCloudList.find(a=>a.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for backup cloud type!",n),{})},sendSystemCommand(n,e={}){this.$emit("sendCommand",{command:n,data:e})},getMigrationOptions(n){var e=[{value:void 0,text:"-- nicht übernehmen --"}];return n.includes("chargePoint")&&e.push(...this.chargePointOptions),n.includes("counter")&&e.push(...this.counterOptions),n.includes("inverter")&&e.push(...this.inverterOptions),n.includes("battery")&&e.push(...this.batteryOptions),n.includes("vehicle")&&e.push(...this.vehicleOptions),n.includes("smartHome")&&e.push(...this.smartHomeOptions),e},updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)},updateSelectedBackupCloud(n){this.updateState("openWB/system/backup_cloud/config",n,"type"),this.updateState("openWB/system/backup_cloud/config",this.getBackupCloudDefaultConfiguration(n))},updateSelectedRestoreFile(n){this.selectedRestoreFile=n.target.files[0]},updateSelectedDataMigrationFile(n){this.selectedDataMigrationFile=n.target.files[0]},uploadFile(n,e,a){return new Promise(_=>{if(e!==void 0){this.$root.postClientMessage("Hochladen der Datei gestartet.","info");let l=new FormData;l.append("file",e),l.append("target",n),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/uploadFile.php",l,{headers:{"Content-Type":"multipart/form-data"}}).then(()=>{this.$root.postClientMessage(a,"success"),_(!0)}).catch(r=>{if(r.response){console.error(r.response.status,r.response.data);var p="Hochladen der Datei fehlgeschlagen!
"+r.response.status+": "+r.response.data}else r.request?(console.error(r.request),p+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",r.message),p+="Es ist ein unbekannter Fehler aufgetreten.");this.$root.postClientMessage(p,"danger"),_(!1)})}else console.error("no file selected for upload"),_(!1)})},getMonitoringDefaultConfiguration(n){const e=this.monitoringList.find(a=>a.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for monitoring type!",n),{})},updateSelectedMonitoring(n){this.updateState("openWB/optional/monitoring/config",n,"type"),this.updateState("openWB/optional/monitoring/config",this.getMonitoringDefaultConfiguration(n))},async uploadRestoreFile(){const n="Die Sicherungsdatei wurde erfolgreich hochgeladen. Sie können die Wiederherstellung jetzt starten.";this.restoreUploadDone=await this.uploadFile("restore",this.selectedRestoreFile,n)},async uploadDataMigrationFile(){const n="Die Sicherungsdatei wurde erfolgreich hochgeladen. Sie können den Import jetzt starten.";this.dataMigrationUploadDone=await this.uploadFile("migrate",this.selectedDataMigrationFile,n)},restoreBackup(){this.sendSystemCommand("restoreBackup"),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})},dataMigration(){this.sendSystemCommand("dataMigration",this.dataMigrationMapping)},factoryReset(){this.sendSystemCommand("factoryReset",{}),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})}}},be={class:"system"},he={key:1},ke={name:"backupForm"},_e={class:"row justify-content-center"},ye={class:"col-md-4 d-flex py-1 justify-content-center"},ve={key:0,name:"restoreForm"},we={class:"input-group"},Ce={class:"input-group-prepend"},Be={class:"input-group-text"},De={class:"custom-file"},Se={id:"input-file-label",class:"custom-file-label",for:"input-file","data-browse":"Suchen"},Me={class:"input-group-append"},We=["disabled"],Oe={class:"row justify-content-center"},Fe={class:"col-md-4 d-flex py-1 justify-content-center"},Ae={key:1},Le={key:0,name:"cloudBackupForm"},Te={key:0},Ve={name:"dataMigrationForm"},Ee={class:"input-group"},je={class:"input-group-prepend"},ze={class:"input-group-text"},Pe={class:"custom-file"},xe={id:"data-migration-file-label",class:"custom-file-label",for:"data-migration-file","data-browse":"Suchen"},Re={class:"input-group-append"},Ue=["disabled"],qe={class:"row justify-content-center"},He={class:"col-md-4 d-flex py-1 justify-content-center"},Ne={key:1,name:"resetForm"},$e={class:"row justify-content-center"},Ie={class:"col-md-4 d-flex py-1 justify-content-center"},Ge={key:2,name:"monitoringForm"},Je={key:0},Ke={key:1},Ze={key:0};function Qe(n,e,a,_,l,r){const p=d("openwb-base-button-group-input"),c=d("openwb-base-alert"),k=d("openwb-base-heading"),h=d("font-awesome-icon"),D=d("openwb-base-click-button"),O=d("openwb-base-select-input"),x=d("openwb-base-button-input"),R=d("openwb-backup-cloud-proxy"),L=d("openwb-base-submit-buttons"),S=d("openwb-base-card"),U=d("openwb-monitoring-proxy");return u(),m("div",be,[a.installAssistantActive?w("",!0):(u(),y(c,{key:0,subtype:"danger"},{default:i(()=>[e[21]||(e[21]=s("h2",null,"Achtung!",-1)),e[22]||(e[22]=s("p",null," Vor allen Aktionen auf dieser Seite ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)),t(p,{modelValue:l.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=g=>l.warningAcknowledged=g),title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"])]),_:1,__:[21,22]})),l.warningAcknowledged||a.installAssistantActive?(u(),m("div",he,[t(S,{title:"Sicherung / Wiederherstellung",subtype:"success",collapsible:!0,collapsed:!a.installAssistantActive},{default:i(()=>{var g,v;return[s("form",ke,[t(k,null,{default:i(()=>e[23]||(e[23]=[o("Sicherung",-1)])),_:1,__:[23]}),t(c,{subtype:"danger"},{default:i(()=>e[24]||(e[24]=[o(' Aktuell können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ',-1)])),_:1,__:[24]}),t(c,{subtype:"info"},{default:i(()=>e[25]||(e[25]=[o(" Nachdem die Sicherung abgeschlossen ist, kann die erstellte Datei über den Link in der Benachrichtigung oder ",-1),s("a",{href:"/openWB/data/backup/",target:"_blank"},"hier",-1),o(" heruntergeladen werden. Beim Herunterladen bitte darauf achten, dass die Datei mit der Endung .tar.gz gespeichert wird. Ggf. das automatische Entpacken des Browsers deaktivieren. ",-1)])),_:1,__:[25]}),s("div",_e,[s("div",ye,[t(D,{class:"btn-success clickable",onButtonClicked:e[1]||(e[1]=f=>r.sendSystemCommand("createBackup",{use_extended_filename:!0}))},{default:i(()=>[e[26]||(e[26]=o(" Sicherung erstellen ",-1)),t(h,{icon:["fas","archive"]})]),_:1,__:[26]})])])]),l.showRestoreSection?(u(),m("form",ve,[e[31]||(e[31]=s("hr",null,null,-1)),t(k,null,{default:i(()=>e[27]||(e[27]=[o("Wiederherstellung",-1)])),_:1,__:[27]}),t(c,{subtype:"danger"},{default:i(()=>e[28]||(e[28]=[o(" Für die Wiederherstellung wird eine aktive Internetverbindung benötigt.",-1),s("br",null,null,-1),o(' Es können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ',-1)])),_:1,__:[28]}),s("div",we,[s("div",Ce,[s("div",Be,[t(h,{icon:["fas","file-archive"]})])]),s("div",De,[s("input",{id:"input-file",type:"file",class:"custom-file-input",accept:".tar.gz,application/gzip,application/tar+gzip",onChange:e[2]||(e[2]=f=>r.updateSelectedRestoreFile(f))},null,32),s("label",Se,b(l.selectedRestoreFile?l.selectedRestoreFile.name:"Bitte eine Datei auswählen"),1)]),s("div",Me,[s("button",{class:M(["btn",l.selectedRestoreFile?"btn-success clickable":"btn-outline-success"]),disabled:!l.selectedRestoreFile,type:"button",onClick:e[3]||(e[3]=f=>r.uploadRestoreFile())},[e[29]||(e[29]=o(" Hochladen ",-1)),t(h,{icon:["fas","upload"]})],10,We)])]),s("div",Oe,[s("div",Fe,[t(D,{class:M(l.restoreUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!l.restoreUploadDone,onButtonClicked:e[4]||(e[4]=f=>r.restoreBackup())},{default:i(()=>[e[30]||(e[30]=o(" Wiederherstellung starten ",-1)),t(h,{icon:["fas","box-open"]})]),_:1,__:[30]},8,["class","disabled"])])])])):w("",!0),a.installAssistantActive?w("",!0):(u(),m("div",Ae,[a.showBackupCloudSection?(u(),m("form",Le,[e[35]||(e[35]=s("hr",null,null,-1)),t(k,null,{default:i(()=>e[32]||(e[32]=[o(" Automatische Sicherung in einen Cloud-Dienst ",-1)])),_:1,__:[32]}),t(c,{subtype:"info"},{default:i(()=>e[33]||(e[33]=[o(" Ist die openWB als primary konfiguriert, wird zwischen Mitternacht und 5:00 Uhr automatisch eine Sicherung erstellt und in den angegebenen Cloud-Dienst (nicht openWB Cloud!) hochgeladen. Ist kein Cloud-Dienst konfiguriert, wird keine automatische Sicherung erstellt. Die automatische Sicherung kann unabhängig von der openWB Cloud genutzt werden.",-1),s("br",null,null,-1),o(" Die manuelle Cloud-Sicherung und -falls aktiviert- die Sicherung vor einem Update werden sowohl von einer primary als auch von einer secondary durchgeführt.",-1),s("br",null,null,-1),o(" Die Anleitung zur Konfiguration des Cloud-Dienstes findest Du ",-1),s("a",{href:"https://github.com/openWB/core/wiki/Cloud-Sicherung",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),o(" . ",-1)])),_:1,__:[33]}),t(O,{class:"mb-2",title:"Backup-Cloud",options:r.backupCloudList,"model-value":(g=n.$store.state.mqtt["openWB/system/backup_cloud/config"])==null?void 0:g.type,"onUpdate:modelValue":e[5]||(e[5]=f=>r.updateSelectedBackupCloud(f))},null,8,["options","model-value"]),(v=n.$store.state.mqtt["openWB/system/backup_cloud/config"])!=null&&v.type?(u(),m("div",Te,[t(p,{title:"Sicherung vor System-Update",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/system/backup_cloud/backup_before_update"],"onUpdate:modelValue":e[6]||(e[6]=f=>n.updateState("openWB/system/backup_cloud/backup_before_update",f))},{help:i(()=>e[34]||(e[34]=[o(" Ist diese Option aktiviert, dann wird vor jedem System-Update automatisch eine Sicherung erstellt und diese in die Backup-Cloud hochgeladen. ",-1)])),_:1},8,["model-value"]),t(x,{title:"Manuelle Cloud-Sicherung","button-text":"Sicherung erstellen und hochladen",subtype:"success",onButtonClicked:e[7]||(e[7]=f=>r.sendSystemCommand("createCloudBackup",{}))}),t(R,{"backup-cloud":n.$store.state.mqtt["openWB/system/backup_cloud/config"],"onUpdate:configuration":e[8]||(e[8]=f=>r.updateConfiguration("openWB/system/backup_cloud/config",f)),onSendCommand:e[9]||(e[9]=f=>r.sendSystemCommand(f.command,f.args))},null,8,["backup-cloud"])])):w("",!0),t(L,{"form-name":"cloudBackupForm","hide-reset":!0,"hide-defaults":!0,onSave:e[10]||(e[10]=f=>n.$emit("save")),onReset:e[11]||(e[11]=f=>n.$emit("reset")),onDefaults:e[12]||(e[12]=f=>n.$emit("defaults"))})])):w("",!0)]))]}),_:1},8,["collapsed"]),!a.installAssistantActive&&!n.$store.state.mqtt["openWB/general/extern"]?(u(),y(S,{key:0,title:"Datenübernahme",subtype:"success",collapsible:!0,collapsed:!0},{default:i(()=>[s("form",Ve,[t(c,{subtype:"info"},{default:i(()=>e[36]||(e[36]=[o(" Hier kann die Sicherung aus den älteren Software Versionen 1.9.303 oder 1.9.304 hochgeladen werden, um vorhandene historische Daten (Diagramme und Ladeprotokolle) sowie Cloud-Daten und Seriennummer in diese Installation zu importieren.",-1),s("br",null,null,-1),o(" Ein Import aus Versionen kleiner als 1.9.303 ist nicht möglich. Falls eine Datenübernahme aus 1.9er Versionen gewünscht ist, muss erst ein Upgrade auf 1.9.303 oder 1.9.304 durchgeführt werden! Die Zuordnung zwischen den alten und neuen Komponenten muss manuell durchgeführt werden. ",-1)])),_:1,__:[36]}),t(c,{subtype:"danger"},{default:i(()=>e[37]||(e[37]=[o(" Die Portierung kann bei vielen historischen Daten von mehreren Jahren durchaus bis zu 30 Minuten dauern. Die openWB in dieser Zeit bitte nicht herunterfahren! Du erhältst eine Meldung, wenn die Datenübernahme abgeschlossen ist.",-1),s("br",null,null,-1),o(" Vor der Datenübernahme unbedingt eine Sicherung erstellen.",-1),s("br",null,null,-1),o(" Die Datenübernahme kann nur durch Einspielen einer Sicherung rückgängig gemacht werden! ",-1)])),_:1,__:[37]}),s("div",Ee,[s("div",je,[s("div",ze,[t(h,{icon:["fas","file-archive"]})])]),s("div",Pe,[s("input",{id:"data-migration-file",type:"file",class:"custom-file-input",accept:".tar.gz,application/gzip,application/tar+gzip",onChange:e[13]||(e[13]=g=>r.updateSelectedDataMigrationFile(g))},null,32),s("label",xe,b(l.selectedDataMigrationFile?l.selectedDataMigrationFile.name:"Bitte eine Datei auswählen"),1)]),s("div",Re,[s("button",{class:M(["btn",l.selectedDataMigrationFile?"btn-success clickable":"btn-outline-success"]),disabled:!l.selectedDataMigrationFile,type:"button",onClick:e[14]||(e[14]=g=>r.uploadDataMigrationFile())},[e[38]||(e[38]=o(" Hochladen ",-1)),t(h,{icon:["fas","upload"]})],10,Ue)])]),t(k,null,{default:i(()=>e[39]||(e[39]=[o(" Zuordnung der Komponenten ",-1)])),_:1,__:[39]}),(u(!0),m(W,null,T(l.dataMigrationConfig,g=>(u(),m("div",{key:g.sectionName},[t(k,null,{default:i(()=>[o(b(g.sectionName),1)]),_:2},1024),(u(!0),m(W,null,T(g.sectionComponents,v=>(u(),y(O,{key:v.key,modelValue:l.dataMigrationMapping[v.key],"onUpdate:modelValue":f=>l.dataMigrationMapping[v.key]=f,title:v.label,options:r.getMigrationOptions(v.validTypes)},J({_:2},[v.help?{name:"help",fn:i(()=>[o(b(v.help),1)]),key:"0"}:void 0]),1032,["modelValue","onUpdate:modelValue","title","options"]))),128))]))),128)),s("div",qe,[s("div",He,[t(D,{class:M(l.dataMigrationUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!l.dataMigrationUploadDone,onButtonClicked:e[15]||(e[15]=g=>r.dataMigration())},{default:i(()=>[e[40]||(e[40]=o(" Datenübernahme starten ",-1)),t(h,{icon:["fas","box-open"]})]),_:1,__:[40]},8,["class","disabled"])])])])]),_:1})):w("",!0),a.installAssistantActive?w("",!0):(u(),m("form",Ne,[t(S,{title:"Zurücksetzen",subtype:"danger",collapsible:!0,collapsed:!0},{footer:i(()=>[s("div",$e,[s("div",Ie,[t(D,{class:"btn-danger clickable",onButtonClicked:e[16]||(e[16]=g=>r.factoryReset())},{default:i(()=>[t(h,{icon:["fas","skull-crossbones"]}),e[42]||(e[42]=o(" Zurücksetzen ",-1)),t(h,{icon:["fas","skull-crossbones"]})]),_:1,__:[42]})])])]),default:i(()=>[t(c,{subtype:"danger"},{default:i(()=>e[41]||(e[41]=[o(" Alle Einstellungen, angelegte Geräte/Komponenten, Ladepunkte und Fahrzeuge, etc., Tages-, Monats- und Jahresauswertungen sowie das Ladeprotokoll werden unwiederbringlich gelöscht. Auch die Vorkonfiguration im Auslieferungszustand wird gelöscht. Die openWB muss danach komplett neu eingerichtet werden. Die openWB wird hierfür automatisch neu gestartet. Bitte erstelle vor dem Zurücksetzen eine Sicherung! ",-1)])),_:1,__:[41]})]),_:1})])),a.installAssistantActive?w("",!0):(u(),m("form",Ge,[t(S,{title:"Monitoring",subtype:"success",collapsible:!0,collapsed:!0},{footer:i(()=>[t(L,{"form-name":"monitoringForm","hide-defaults":!0,onSave:e[19]||(e[19]=g=>n.$emit("save")),onReset:e[20]||(e[20]=g=>n.$emit("reset"))})]),default:i(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(u(),m("div",Je,[t(c,{subtype:"info"},{default:i(()=>e[43]||(e[43]=[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[43]})])):(u(),m("div",Ke,[t(c,{subtype:"info"},{default:i(()=>e[44]||(e[44]=[o(" Das Monitoring informiert Dich sofort per E-Mail, wenn eine Deiner Komponenten oder Ladepunkte ein Problem hat oder die openWB nicht mehr erreichbar ist. ",-1)])),_:1,__:[44]}),t(O,{class:"mb-2",title:"Anbieter",options:r.monitoringList,"model-value":n.$store.state.mqtt["openWB/optional/monitoring/config"]?n.$store.state.mqtt["openWB/optional/monitoring/config"].type:"","onUpdate:modelValue":e[17]||(e[17]=g=>r.updateSelectedMonitoring(g))},null,8,["options","model-value"]),n.$store.state.mqtt["openWB/optional/monitoring/config"]&&n.$store.state.mqtt["openWB/optional/monitoring/config"].type?(u(),m("div",Ze,[t(U,{monitoring:n.$store.state.mqtt["openWB/optional/monitoring/config"],"onUpdate:configuration":e[18]||(e[18]=g=>r.updateConfiguration("openWB/optional/monitoring/config",g))},null,8,["monitoring"])])):w("",!0)]))]),_:1})]))])):w("",!0)])}const Xe=C(fe,[["render",Qe],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DataManagement.vue"]]),on=Object.freeze(Object.defineProperty({__proto__:null,default:Xe},Symbol.toStringTag,{value:"Module"}));export{Z as B,Xe as D,ae as M,on as a}; diff --git a/web/settings/assets/DataManagement-e6d61b39.js b/web/settings/assets/DataManagement-e6d61b39.js new file mode 100644 index 0000000000..7ce3c3cdb9 --- /dev/null +++ b/web/settings/assets/DataManagement-e6d61b39.js @@ -0,0 +1 @@ +import{l as F,a6 as V,a7 as E,F as A,as as q,at as H,au as N,av as $,aw as I}from"./vendor-fortawesome-fc4b3a41.js";import{_ as B,C as G}from"./index-c94f8df4.js";import{_ as j}from"./dynamic-import-helper-be004503.js";import{_ as C,u as d,l as u,m,x as v,E as i,B as o,F as b,G as t,A as s,a2 as z,a3 as P,N as W,z as w,q as M,M as T,D as J}from"./vendor-50125810.js";const K={props:{backupCloud:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})},sendSystemCommand(n,e={}){this.$emit("sendCommand",{command:n,data:e})}}},Z=C(K,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/BackupCloudConfigMixin.vue"]]),Q={name:"BackupCloudConfigFallback",mixins:[Z]},X={class:"backup-cloud-fallback"},Y={key:1};function ee(n,e,a,y,l,r){const p=d("openwb-base-alert"),c=d("openwb-base-textarea");return u(),m("div",X,[Object.keys(n.backupCloud.configuration).length==0?(u(),v(p,{key:0,subtype:"info"},{default:i(()=>[o(' Die Backup-Cloud "'+b(n.backupCloud.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(u(),m("div",Y,[t(p,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für die Backup-Cloud "'+b(n.backupCloud.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),t(c,{title:"Konfiguration",subtype:"json","model-value":n.backupCloud.configuration,"onUpdate:modelValue":e[0]||(e[0]=k=>n.updateConfiguration(k,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[o(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),t(p,{subtype:"info"},{default:i(()=>[s("pre",null,b(JSON.stringify(n.backupCloud.configuration,void 0,2)),1)]),_:1})]))])}const ne=C(Q,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudConfigFallback.vue"]]);F.add(V,E);const te={name:"OpenwbBackupCloudProxy",components:{FontAwesomeIcon:A},props:{backupCloud:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{getBackupCloudComponent(){return console.debug(`loading backup cloud: ${this.backupCloud.type}`),z({loader:()=>j(Object.assign({"./nextcloud/backup_cloud.vue":()=>B(()=>import("./backup_cloud-bfc3a02f.js"),["assets/backup_cloud-bfc3a02f.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./nfs/backup_cloud.vue":()=>B(()=>import("./backup_cloud-72a22a71.js"),["assets/backup_cloud-72a22a71.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./onedrive/backup_cloud.vue":()=>B(()=>import("./backup_cloud-fc511ccc.js"),["assets/backup_cloud-fc511ccc.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./samba/backup_cloud.vue":()=>B(()=>import("./backup_cloud-23b13a1c.js"),["assets/backup_cloud-23b13a1c.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.backupCloud.type}/backup_cloud.vue`),errorComponent:ne})},updateConfiguration(n){this.$emit("update:configuration",n)},sendCommand(n){this.$emit("sendCommand",n)}}};function oe(n,e,a,y,l,r){const p=d("font-awesome-icon"),c=d("openwb-base-alert"),k=d("openwb-base-heading");return u(),m(W,null,[a.backupCloud.official?(u(),v(c,{key:0,subtype:"success"},{default:i(()=>[t(p,{icon:["fas","certificate"]}),o(' Das ausgewählte Backup-Cloud Modul "'+b(a.backupCloud.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(u(),v(c,{key:1,subtype:"info"},{default:i(()=>[t(p,{icon:["fas","people-group"]}),o(' Das ausgewählte Backup-Cloud Modul "'+b(a.backupCloud.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),t(k,null,{default:i(()=>[o(' Einstellungen für Backup-Cloud Modul "'+b(a.backupCloud.name)+'" ',1)]),_:1}),(u(),v(P(r.getBackupCloudComponent()),{"backup-cloud":a.backupCloud,"onUpdate:configuration":e[0]||(e[0]=h=>r.updateConfiguration(h)),onSendCommand:e[1]||(e[1]=h=>r.sendCommand(h))},null,40,["backup-cloud"]))],64)}const ie=C(te,[["render",oe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudProxy.vue"]]),se={props:{monitoring:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},ae=C(se,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/MonitoringConfigMixin.vue"]]),re={name:"MonitoringConfigFallback",mixins:[ae]},le={class:"monitoring-fallback"},ue={key:1};function de(n,e,a,y,l,r){const p=d("openwb-base-alert"),c=d("openwb-base-textarea");return u(),m("div",le,[Object.keys(n.monitoring.configuration).length==0?(u(),v(p,{key:0,subtype:"info"},{default:i(()=>[o(' Der Anbieter "'+b(n.monitoring.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(u(),m("div",ue,[t(p,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für den Anbieter "'+b(n.monitoring.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),t(c,{title:"Konfiguration",subtype:"json","model-value":n.monitoring.configuration,"onUpdate:modelValue":e[0]||(e[0]=k=>n.updateConfiguration(k,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[o(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),t(p,{subtype:"info"},{default:i(()=>[s("pre",null,b(JSON.stringify(n.monitoring.configuration,void 0,2)),1)]),_:1})]))])}const pe=C(re,[["render",de],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/OpenwbMonitoringConfigFallback.vue"]]);F.add(V,E);const ce={name:"OpenwbMonitoringProxy",components:{FontAwesomeIcon:A},props:{monitoring:{type:Object,required:!0}},emits:["update:configuration"],methods:{getMonitoringComponent(){return console.debug(`loading monitoring: ${this.monitoring.type}`),z({loader:()=>j(Object.assign({"./zabbix/monitoring.vue":()=>B(()=>import("./monitoring-b9e2cec0.js"),["assets/monitoring-b9e2cec0.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.monitoring.type}/monitoring.vue`),errorComponent:pe})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function me(n,e,a,y,l,r){const p=d("font-awesome-icon"),c=d("openwb-base-alert"),k=d("openwb-base-heading");return u(),m(W,null,[a.monitoring.official?(u(),v(c,{key:0,subtype:"success"},{default:i(()=>[t(p,{icon:["fas","certificate"]}),o(' Das ausgewählte Monitoring Modul "'+b(a.monitoring.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(u(),v(c,{key:1,subtype:"info"},{default:i(()=>[t(p,{icon:["fas","people-group"]}),o(' Das ausgewählte Monitoring Modul "'+b(a.monitoring.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),t(k,null,{default:i(()=>[o(' Einstellungen für Modul "'+b(a.monitoring.name)+'" ',1)]),_:1}),(u(),v(P(r.getMonitoringComponent()),{monitoring:a.monitoring,"onUpdate:configuration":e[0]||(e[0]=h=>r.updateConfiguration(h))},null,40,["monitoring"]))],64)}const ge=C(ce,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/OpenwbMonitoringProxy.vue"]]);F.add(q,H,N,$,I);const fe={name:"OpenwbDataManagementView",components:{FontAwesomeIcon:A,OpenwbBackupCloudProxy:ie,OpenwbMonitoringProxy:ge},mixins:[G],props:{installAssistantActive:{type:Boolean,required:!1,default:!1},showBackupCloudSection:{type:Boolean,required:!1,default:!0}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/configurable/backup_clouds","openWB/system/configurable/monitoring","openWB/system/backup_cloud/config","openWB/system/backup_cloud/backup_before_update","openWB/system/device/+/component/+/config","openWB/chargepoint/+/config","openWB/optional/monitoring/config","openWB/vehicle/+/name","openWB/LegacySmartHome/config/get/Devices/+/device_configured","openWB/LegacySmartHome/config/get/Devices/+/device_name"],warningAcknowledged:!1,showRestoreSection:!this.installAssistantActive,selectedRestoreFile:void 0,restoreUploadDone:!1,selectedDataMigrationFile:void 0,dataMigrationUploadDone:!1,dataMigrationConfig:[{sectionName:"Ladepunkte",sectionComponents:[{key:"cp1",label:"Ladepunkt 1",validTypes:["chargePoint"]},{key:"cp2",label:"Ladepunkt 2",validTypes:["chargePoint"]},{key:"cp3",label:"Ladepunkt 3",validTypes:["chargePoint"]},{key:"cp4",label:"Ladepunkt 4",validTypes:["chargePoint"]},{key:"cp5",label:"Ladepunkt 5",validTypes:["chargePoint"]},{key:"cp6",label:"Ladepunkt 6",validTypes:["chargePoint"]},{key:"cp7",label:"Ladepunkt 7",validTypes:["chargePoint"]},{key:"cp8",label:"Ladepunkt 8",validTypes:["chargePoint"]}]},{sectionName:"Zähler",sectionComponents:[{key:"evu",label:"EVU",validTypes:["counter"]},{key:"consumer1",label:"Verbraucher 1",validTypes:["counter"]},{key:"consumer2",label:"Verbraucher 2",validTypes:["counter"]},{key:"consumer3",label:"Verbraucher 3",validTypes:["counter"]}]},{sectionName:"Wechselrichter",sectionComponents:[{key:"pvAll",label:"Wechselrichter (Summe)",validTypes:["inverter"],help:"Die 1.9er Version von openWB speichert lediglich die Summen-Leistung aller Wechselrichter."}]},{sectionName:"Batteriespeicher",sectionComponents:[{key:"bat",label:"Speicher 1",validTypes:["battery"]}]},{sectionName:"Fahrzeuge",sectionComponents:[{key:"ev1",label:"Fahrzeug von Ladepunkt 1",validTypes:["vehicle"]},{key:"ev2",label:"Fahrzeug von Ladepunkt 2",validTypes:["vehicle"]}]},{sectionName:"SmartHome 2.0",sectionComponents:[{key:"sh1",label:"Gerät 1",validTypes:["smartHome"]},{key:"sh2",label:"Gerät 2",validTypes:["smartHome"]},{key:"sh3",label:"Gerät 3",validTypes:["smartHome"]},{key:"sh4",label:"Gerät 4",validTypes:["smartHome"]},{key:"sh5",label:"Gerät 5",validTypes:["smartHome"]},{key:"sh6",label:"Gerät 6",validTypes:["smartHome"]},{key:"sh7",label:"Gerät 7",validTypes:["smartHome"]},{key:"sh8",label:"Gerät 8",validTypes:["smartHome"]},{key:"sh9",label:"Gerät 9",validTypes:["smartHome"]}]}],dataMigrationMapping:{cp1:void 0,cp2:void 0,cp3:void 0,cp4:void 0,cp5:void 0,cp6:void 0,cp7:void 0,cp8:void 0,evu:void 0,pvAll:void 0,bat:void 0,consumer1:void 0,consumer2:void 0,consumer3:void 0,sh1:void 0,sh2:void 0,sh3:void 0,sh4:void 0,sh5:void 0,sh6:void 0,sh7:void 0,sh8:void 0,sh9:void 0,ev1:void 0,ev2:void 0}}},computed:{backupCloudList(){return this.$store.state.mqtt["openWB/system/configurable/backup_clouds"]},componentConfigurations(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")},chargePointOptions(){let n=this.getWildcardTopics("openWB/chargepoint/+/config");var e=[];for(const a of Object.values(n))e.push({value:a.id,text:a.name});return e},counterOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"counter")&&n.push({value:e.id,text:e.name});return n},inverterOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"inverter")&&n.push({value:e.id,text:e.name});return n},monitoringList(){return this.$store.state.mqtt["openWB/system/configurable/monitoring"]},batteryOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"bat")&&n.push({value:e.id,text:e.name});return n},vehicleOptions(){let n=this.getWildcardTopics("openWB/vehicle/+/name");var e=[];for(const[a,y]of Object.entries(n)){let l=parseInt(a.match(/\/(\d\d?)\//)[1]);e.push({value:l,text:y})}return e},smartHomeOptions(){let n=this.getWildcardTopics("openWB/LegacySmartHome/config/get/Devices/+/device_configured");var e=[];for(const[a,y]of Object.entries(n))if(y==1){let l=parseInt(a.match(/\/(\d\d?)\//)[1]);e.push({value:l,text:this.$store.state.mqtt[`openWB/LegacySmartHome/config/get/Devices/${l}/device_name`]})}return e}},methods:{isComponentType(n,e){return n.split("_").includes(e)},getBackupCloudDefaultConfiguration(n){const e=this.backupCloudList.find(a=>a.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for backup cloud type!",n),{})},sendSystemCommand(n,e={}){this.$emit("sendCommand",{command:n,data:e})},getMigrationOptions(n){var e=[{value:void 0,text:"-- nicht übernehmen --"}];return n.includes("chargePoint")&&e.push(...this.chargePointOptions),n.includes("counter")&&e.push(...this.counterOptions),n.includes("inverter")&&e.push(...this.inverterOptions),n.includes("battery")&&e.push(...this.batteryOptions),n.includes("vehicle")&&e.push(...this.vehicleOptions),n.includes("smartHome")&&e.push(...this.smartHomeOptions),e},updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)},updateSelectedBackupCloud(n){this.updateState("openWB/system/backup_cloud/config",n,"type"),this.updateState("openWB/system/backup_cloud/config",this.getBackupCloudDefaultConfiguration(n))},updateSelectedRestoreFile(n){this.selectedRestoreFile=n.target.files[0]},updateSelectedDataMigrationFile(n){this.selectedDataMigrationFile=n.target.files[0]},uploadFile(n,e,a){return new Promise(y=>{if(e!==void 0){this.$root.postClientMessage("Hochladen der Datei gestartet.","info");let l=new FormData;l.append("file",e),l.append("target",n),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/uploadFile.php",l,{headers:{"Content-Type":"multipart/form-data"}}).then(()=>{this.$root.postClientMessage(a,"success"),y(!0)}).catch(r=>{if(r.response){console.error(r.response.status,r.response.data);var p="Hochladen der Datei fehlgeschlagen!
"+r.response.status+": "+r.response.data}else r.request?(console.error(r.request),p+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",r.message),p+="Es ist ein unbekannter Fehler aufgetreten.");this.$root.postClientMessage(p,"danger"),y(!1)})}else console.error("no file selected for upload"),y(!1)})},getMonitoringDefaultConfiguration(n){const e=this.monitoringList.find(a=>a.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for monitoring type!",n),{})},updateSelectedMonitoring(n){this.updateState("openWB/optional/monitoring/config",n,"type"),this.updateState("openWB/optional/monitoring/config",this.getMonitoringDefaultConfiguration(n))},async uploadRestoreFile(){const n="Die Sicherungsdatei wurde erfolgreich hochgeladen. Sie können die Wiederherstellung jetzt starten.";this.restoreUploadDone=await this.uploadFile("restore",this.selectedRestoreFile,n)},async uploadDataMigrationFile(){const n="Die Sicherungsdatei wurde erfolgreich hochgeladen. Sie können den Import jetzt starten.";this.dataMigrationUploadDone=await this.uploadFile("migrate",this.selectedDataMigrationFile,n)},restoreBackup(){this.sendSystemCommand("restoreBackup"),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})},dataMigration(){this.sendSystemCommand("dataMigration",this.dataMigrationMapping)},factoryReset(){this.sendSystemCommand("factoryReset",{}),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})}}},be={class:"system"},he={key:1},ke={name:"backupForm"},ye={class:"row justify-content-center"},ve={class:"col-md-4 d-flex py-1 justify-content-center"},_e={key:0,name:"restoreForm"},we={class:"input-group"},Ce={class:"input-group-prepend"},Be={class:"input-group-text"},De={class:"custom-file"},Se={id:"input-file-label",class:"custom-file-label",for:"input-file","data-browse":"Suchen"},Me={class:"input-group-append"},We=["disabled"],Oe={class:"row justify-content-center"},Fe={class:"col-md-4 d-flex py-1 justify-content-center"},Ae={key:1},Le={key:0,name:"cloudBackupForm"},Te={key:0},Ve={name:"dataMigrationForm"},Ee={class:"input-group"},je={class:"input-group-prepend"},ze={class:"input-group-text"},Pe={class:"custom-file"},xe={id:"data-migration-file-label",class:"custom-file-label",for:"data-migration-file","data-browse":"Suchen"},Re={class:"input-group-append"},Ue=["disabled"],qe={class:"row justify-content-center"},He={class:"col-md-4 d-flex py-1 justify-content-center"},Ne={key:1,name:"resetForm"},$e={class:"row justify-content-center"},Ie={class:"col-md-4 d-flex py-1 justify-content-center"},Ge={key:2,name:"monitoringForm"},Je={key:0},Ke={key:1},Ze={key:0};function Qe(n,e,a,y,l,r){const p=d("openwb-base-button-group-input"),c=d("openwb-base-alert"),k=d("openwb-base-heading"),h=d("font-awesome-icon"),D=d("openwb-base-click-button"),O=d("openwb-base-select-input"),x=d("openwb-base-button-input"),R=d("openwb-backup-cloud-proxy"),L=d("openwb-base-submit-buttons"),S=d("openwb-base-card"),U=d("openwb-monitoring-proxy");return u(),m("div",be,[a.installAssistantActive?w("",!0):(u(),v(c,{key:0,subtype:"danger"},{default:i(()=>[e[21]||(e[21]=s("h2",null,"Achtung!",-1)),e[22]||(e[22]=s("p",null," Vor allen Aktionen auf dieser Seite ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)),t(p,{modelValue:l.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=g=>l.warningAcknowledged=g),title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"])]),_:1})),l.warningAcknowledged||a.installAssistantActive?(u(),m("div",he,[t(S,{title:"Sicherung / Wiederherstellung",subtype:"success",collapsible:!0,collapsed:!a.installAssistantActive},{default:i(()=>{var g,_;return[s("form",ke,[t(k,null,{default:i(()=>[...e[23]||(e[23]=[o("Sicherung",-1)])]),_:1}),t(c,{subtype:"danger"},{default:i(()=>[...e[24]||(e[24]=[o(' Aktuell können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ',-1)])]),_:1}),t(c,{subtype:"info"},{default:i(()=>[...e[25]||(e[25]=[o(" Nachdem die Sicherung abgeschlossen ist, kann die erstellte Datei über den Link in der Benachrichtigung oder ",-1),s("a",{href:"/openWB/data/backup/",target:"_blank"},"hier",-1),o(" heruntergeladen werden. Beim Herunterladen bitte darauf achten, dass die Datei mit der Endung .tar.gz gespeichert wird. Ggf. das automatische Entpacken des Browsers deaktivieren. ",-1)])]),_:1}),s("div",ye,[s("div",ve,[t(D,{class:"btn-success clickable",onButtonClicked:e[1]||(e[1]=f=>r.sendSystemCommand("createBackup",{use_extended_filename:!0}))},{default:i(()=>[e[26]||(e[26]=o(" Sicherung erstellen ",-1)),t(h,{icon:["fas","archive"]})]),_:1})])])]),l.showRestoreSection?(u(),m("form",_e,[e[31]||(e[31]=s("hr",null,null,-1)),t(k,null,{default:i(()=>[...e[27]||(e[27]=[o("Wiederherstellung",-1)])]),_:1}),t(c,{subtype:"danger"},{default:i(()=>[...e[28]||(e[28]=[o(" Für die Wiederherstellung wird eine aktive Internetverbindung benötigt.",-1),s("br",null,null,-1),o(' Es können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ',-1)])]),_:1}),s("div",we,[s("div",Ce,[s("div",Be,[t(h,{icon:["fas","file-archive"]})])]),s("div",De,[s("input",{id:"input-file",type:"file",class:"custom-file-input",accept:".tar.gz,application/gzip,application/tar+gzip",onChange:e[2]||(e[2]=f=>r.updateSelectedRestoreFile(f))},null,32),s("label",Se,b(l.selectedRestoreFile?l.selectedRestoreFile.name:"Bitte eine Datei auswählen"),1)]),s("div",Me,[s("button",{class:M(["btn",l.selectedRestoreFile?"btn-success clickable":"btn-outline-success"]),disabled:!l.selectedRestoreFile,type:"button",onClick:e[3]||(e[3]=f=>r.uploadRestoreFile())},[e[29]||(e[29]=o(" Hochladen ",-1)),t(h,{icon:["fas","upload"]})],10,We)])]),s("div",Oe,[s("div",Fe,[t(D,{class:M(l.restoreUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!l.restoreUploadDone,onButtonClicked:e[4]||(e[4]=f=>r.restoreBackup())},{default:i(()=>[e[30]||(e[30]=o(" Wiederherstellung starten ",-1)),t(h,{icon:["fas","box-open"]})]),_:1},8,["class","disabled"])])])])):w("",!0),a.installAssistantActive?w("",!0):(u(),m("div",Ae,[a.showBackupCloudSection?(u(),m("form",Le,[e[35]||(e[35]=s("hr",null,null,-1)),t(k,null,{default:i(()=>[...e[32]||(e[32]=[o(" Automatische Sicherung in einen Cloud-Dienst ",-1)])]),_:1}),t(c,{subtype:"info"},{default:i(()=>[...e[33]||(e[33]=[o(" Ist die openWB als primary konfiguriert, wird zwischen Mitternacht und 5:00 Uhr automatisch eine Sicherung erstellt und in den angegebenen Cloud-Dienst (nicht openWB Cloud!) hochgeladen. Ist kein Cloud-Dienst konfiguriert, wird keine automatische Sicherung erstellt. Die automatische Sicherung kann unabhängig von der openWB Cloud genutzt werden.",-1),s("br",null,null,-1),o(" Die manuelle Cloud-Sicherung und -falls aktiviert- die Sicherung vor einem Update werden sowohl von einer primary als auch von einer secondary durchgeführt.",-1),s("br",null,null,-1),o(" Die Anleitung zur Konfiguration des Cloud-Dienstes findest Du ",-1),s("a",{href:"https://github.com/openWB/core/wiki/Cloud-Sicherung",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),o(" . ",-1)])]),_:1}),t(O,{class:"mb-2",title:"Backup-Cloud",options:r.backupCloudList,"model-value":(g=n.$store.state.mqtt["openWB/system/backup_cloud/config"])==null?void 0:g.type,"onUpdate:modelValue":e[5]||(e[5]=f=>r.updateSelectedBackupCloud(f))},null,8,["options","model-value"]),(_=n.$store.state.mqtt["openWB/system/backup_cloud/config"])!=null&&_.type?(u(),m("div",Te,[t(p,{title:"Sicherung vor System-Update",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/system/backup_cloud/backup_before_update"],"onUpdate:modelValue":e[6]||(e[6]=f=>n.updateState("openWB/system/backup_cloud/backup_before_update",f))},{help:i(()=>[...e[34]||(e[34]=[o(" Ist diese Option aktiviert, dann wird vor jedem System-Update automatisch eine Sicherung erstellt und diese in die Backup-Cloud hochgeladen. ",-1)])]),_:1},8,["model-value"]),t(x,{title:"Manuelle Cloud-Sicherung","button-text":"Sicherung erstellen und hochladen",subtype:"success",onButtonClicked:e[7]||(e[7]=f=>r.sendSystemCommand("createCloudBackup",{}))}),t(R,{"backup-cloud":n.$store.state.mqtt["openWB/system/backup_cloud/config"],"onUpdate:configuration":e[8]||(e[8]=f=>r.updateConfiguration("openWB/system/backup_cloud/config",f)),onSendCommand:e[9]||(e[9]=f=>r.sendSystemCommand(f.command,f.args))},null,8,["backup-cloud"])])):w("",!0),t(L,{"form-name":"cloudBackupForm","hide-reset":!0,"hide-defaults":!0,onSave:e[10]||(e[10]=f=>n.$emit("save")),onReset:e[11]||(e[11]=f=>n.$emit("reset")),onDefaults:e[12]||(e[12]=f=>n.$emit("defaults"))})])):w("",!0)]))]}),_:1},8,["collapsed"]),!a.installAssistantActive&&!n.$store.state.mqtt["openWB/general/extern"]?(u(),v(S,{key:0,title:"Datenübernahme",subtype:"success",collapsible:!0,collapsed:!0},{default:i(()=>[s("form",Ve,[t(c,{subtype:"info"},{default:i(()=>[...e[36]||(e[36]=[o(" Hier kann die Sicherung aus den älteren Software Versionen 1.9.303 oder 1.9.304 hochgeladen werden, um vorhandene historische Daten (Diagramme und Ladeprotokolle) sowie Cloud-Daten und Seriennummer in diese Installation zu importieren.",-1),s("br",null,null,-1),o(" Ein Import aus Versionen kleiner als 1.9.303 ist nicht möglich. Falls eine Datenübernahme aus 1.9er Versionen gewünscht ist, muss erst ein Upgrade auf 1.9.303 oder 1.9.304 durchgeführt werden! Die Zuordnung zwischen den alten und neuen Komponenten muss manuell durchgeführt werden. ",-1)])]),_:1}),t(c,{subtype:"danger"},{default:i(()=>[...e[37]||(e[37]=[o(" Die Portierung kann bei vielen historischen Daten von mehreren Jahren durchaus bis zu 30 Minuten dauern. Die openWB in dieser Zeit bitte nicht herunterfahren! Du erhältst eine Meldung, wenn die Datenübernahme abgeschlossen ist.",-1),s("br",null,null,-1),o(" Vor der Datenübernahme unbedingt eine Sicherung erstellen.",-1),s("br",null,null,-1),o(" Die Datenübernahme kann nur durch Einspielen einer Sicherung rückgängig gemacht werden! ",-1)])]),_:1}),s("div",Ee,[s("div",je,[s("div",ze,[t(h,{icon:["fas","file-archive"]})])]),s("div",Pe,[s("input",{id:"data-migration-file",type:"file",class:"custom-file-input",accept:".tar.gz,application/gzip,application/tar+gzip",onChange:e[13]||(e[13]=g=>r.updateSelectedDataMigrationFile(g))},null,32),s("label",xe,b(l.selectedDataMigrationFile?l.selectedDataMigrationFile.name:"Bitte eine Datei auswählen"),1)]),s("div",Re,[s("button",{class:M(["btn",l.selectedDataMigrationFile?"btn-success clickable":"btn-outline-success"]),disabled:!l.selectedDataMigrationFile,type:"button",onClick:e[14]||(e[14]=g=>r.uploadDataMigrationFile())},[e[38]||(e[38]=o(" Hochladen ",-1)),t(h,{icon:["fas","upload"]})],10,Ue)])]),t(k,null,{default:i(()=>[...e[39]||(e[39]=[o(" Zuordnung der Komponenten ",-1)])]),_:1}),(u(!0),m(W,null,T(l.dataMigrationConfig,g=>(u(),m("div",{key:g.sectionName},[t(k,null,{default:i(()=>[o(b(g.sectionName),1)]),_:2},1024),(u(!0),m(W,null,T(g.sectionComponents,_=>(u(),v(O,{key:_.key,modelValue:l.dataMigrationMapping[_.key],"onUpdate:modelValue":f=>l.dataMigrationMapping[_.key]=f,title:_.label,options:r.getMigrationOptions(_.validTypes)},J({_:2},[_.help?{name:"help",fn:i(()=>[o(b(_.help),1)]),key:"0"}:void 0]),1032,["modelValue","onUpdate:modelValue","title","options"]))),128))]))),128)),s("div",qe,[s("div",He,[t(D,{class:M(l.dataMigrationUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!l.dataMigrationUploadDone,onButtonClicked:e[15]||(e[15]=g=>r.dataMigration())},{default:i(()=>[e[40]||(e[40]=o(" Datenübernahme starten ",-1)),t(h,{icon:["fas","box-open"]})]),_:1},8,["class","disabled"])])])])]),_:1})):w("",!0),a.installAssistantActive?w("",!0):(u(),m("form",Ne,[t(S,{title:"Zurücksetzen",subtype:"danger",collapsible:!0,collapsed:!0},{footer:i(()=>[s("div",$e,[s("div",Ie,[t(D,{class:"btn-danger clickable",onButtonClicked:e[16]||(e[16]=g=>r.factoryReset())},{default:i(()=>[t(h,{icon:["fas","skull-crossbones"]}),e[42]||(e[42]=o(" Zurücksetzen ",-1)),t(h,{icon:["fas","skull-crossbones"]})]),_:1})])])]),default:i(()=>[t(c,{subtype:"danger"},{default:i(()=>[...e[41]||(e[41]=[o(" Alle Einstellungen, angelegte Geräte/Komponenten, Ladepunkte und Fahrzeuge, etc., Tages-, Monats- und Jahresauswertungen sowie das Ladeprotokoll werden unwiederbringlich gelöscht. Auch die Vorkonfiguration im Auslieferungszustand wird gelöscht. Die openWB muss danach komplett neu eingerichtet werden. Die openWB wird hierfür automatisch neu gestartet. Bitte erstelle vor dem Zurücksetzen eine Sicherung! ",-1)])]),_:1})]),_:1})])),a.installAssistantActive?w("",!0):(u(),m("form",Ge,[t(S,{title:"Monitoring",subtype:"success",collapsible:!0,collapsed:!0},{footer:i(()=>[t(L,{"form-name":"monitoringForm","hide-defaults":!0,onSave:e[19]||(e[19]=g=>n.$emit("save")),onReset:e[20]||(e[20]=g=>n.$emit("reset"))})]),default:i(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(u(),m("div",Je,[t(c,{subtype:"info"},{default:i(()=>[...e[43]||(e[43]=[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(u(),m("div",Ke,[t(c,{subtype:"info"},{default:i(()=>[...e[44]||(e[44]=[o(" Das Monitoring informiert Dich sofort per E-Mail, wenn eine Deiner Komponenten oder Ladepunkte ein Problem hat oder die openWB nicht mehr erreichbar ist. ",-1)])]),_:1}),t(O,{class:"mb-2",title:"Anbieter",options:r.monitoringList,"model-value":n.$store.state.mqtt["openWB/optional/monitoring/config"]?n.$store.state.mqtt["openWB/optional/monitoring/config"].type:"","onUpdate:modelValue":e[17]||(e[17]=g=>r.updateSelectedMonitoring(g))},null,8,["options","model-value"]),n.$store.state.mqtt["openWB/optional/monitoring/config"]&&n.$store.state.mqtt["openWB/optional/monitoring/config"].type?(u(),m("div",Ze,[t(U,{monitoring:n.$store.state.mqtt["openWB/optional/monitoring/config"],"onUpdate:configuration":e[18]||(e[18]=g=>r.updateConfiguration("openWB/optional/monitoring/config",g))},null,8,["monitoring"])])):w("",!0)]))]),_:1})]))])):w("",!0)])}const Xe=C(fe,[["render",Qe],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DataManagement.vue"]]),on=Object.freeze(Object.defineProperty({__proto__:null,default:Xe},Symbol.toStringTag,{value:"Module"}));export{Z as B,Xe as D,ae as M,on as a}; diff --git a/web/settings/assets/DebugConfig-044b24f7.js b/web/settings/assets/DebugConfig-044b24f7.js deleted file mode 100644 index cd4e47e15e..0000000000 --- a/web/settings/assets/DebugConfig-044b24f7.js +++ /dev/null @@ -1,2 +0,0 @@ -import{C as x}from"./index-8dd8e083.js";import{l as B,ac as V,ad as z,k as W,ae as P,g as M,F as T}from"./vendor-fortawesome-a02b6813.js";import{a as y}from"./vendor-axios-ac33d60c.js";import{_ as F,a4 as N,u as l,l as u,x as g,E as r,q as f,y as L,G as p,z as m,B as h,F as v,A as b,m as C,N as S,M as q}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-sortablejs-0eb84ec8.js";B.add(V,z,W,P,M);const E={name:"OpenwbLogCard",components:{FontAwesomeIcon:T},props:{title:{type:String,required:!0},logFile:{type:String,required:!0}},data(){return{logData:"-- noch nicht geladen --",loading:!1,foundFiles:[],selectedVariant:"",copyMessage:!1,pastebinLink:""}},methods:{async getFilePromise(o,e=!1,n=!0,a=!1){return y[a?"head":"get"](location.protocol+"//"+location.host+o).then(s=>{if(a)return!0;{const d=s.data;return d||"log file is empty"}}).catch(s=>{if(!n)throw s;return s.response?s.response.status==404&&e?a?!1:"":`A 404 is expected if running node.js dev server! -`+s.response.status+" "+s.response.statusText+": "+s.response.request.responseURL:s.request?s.request:s.message})},async loadLog(o,e=""){this.logData="wird aktualisiert...",this.loading=!0,this.pastebinLink="";var n="";e&&(o=o.replace(".log",`.${e}.log`));for(let t=4;t>=1;t--){const s=await this.getFilePromise(o+"."+t,!0);n+=s}const a=await this.getFilePromise(o);n+=a,this.logData=n,this.loading=!1},async checkLatestLog(o){const e=[{suffix:"latest",title:"Letzten 3 Durchläufe",description:"Logs der Letzten 3 Durchläufe laden"},{suffix:"current",title:"Letzter Durchlauf",description:"Logs des letzten Durchlaufs laden"},{suffix:"latest-warning",title:"Letzter Durchlauf mit Warnung oder Fehler",description:"Fehlerprotokoll laden"}];this.foundFiles=[];for(const n of e){const a=o.replace(".log",`.${n.suffix}.log`);try{await this.getFilePromise(a,!1,!1,!0),this.foundFiles.push(n),n.suffix==="latest"&&(this.selectedVariant="latest",console.log("Found latest log file: ",a))}catch(t){console.log(t)}}this.foundFiles.length>0&&this.foundFiles.push({suffix:"",title:"Vollständiges Log",description:"Vollständiges Log laden"})},async onCardExpand(){await this.checkLatestLog(this.logFile),this.loadLog(this.logFile,this.selectedVariant)},copyToClipboard(o=this.logData,e=!0){if(navigator.clipboard&&navigator.clipboard.writeText)navigator.clipboard.writeText(o).then(()=>{e&&this.showCopyMessage()}).catch(n=>{console.error("Fehler beim Kopieren in die Zwischenablage: ",n)});else{const n=document.createElement("textarea");n.value=o,document.body.appendChild(n),n.select();try{document.execCommand("copy"),e&&this.showCopyMessage()}catch(a){console.error("Fehler beim Kopieren in die Zwischenablage: ",a)}document.body.removeChild(n)}},showCopyMessage(){this.copyMessage=!0,this.$root.postClientMessage("Log in die Zwischenablage kopiert.","info"),setTimeout(()=>{this.copyMessage=!1},3e3)},async postToPastebin(){try{const o=N.gzip(this.logData),e=await y.post("https://bytebin.openwb.de/post",o,{headers:{"Content-Type":"text/log","Content-Encoding":"gzip"}});if(!e.data.key)throw new Error("Key is missing in the response");const n=e.data.key;this.pastebinLink=`https://paste.openwb.de/${n}`,console.log("Pastebin link:",this.pastebinLink),this.copyToClipboard(this.pastebinLink,!1),this.$root.postClientMessage(`Log an Pastebin gesendet.
Key: ${n}
Der Link wurde in die Zwischenablage kopiert.`,"info")}catch(o){console.error("Fehler beim Posten auf paste.openwb.de: ",o)}}}},I={class:"log-data mb-0"};function A(o,e,n,a,t,s){const d=l("font-awesome-icon"),c=l("openwb-base-avatar"),_=l("openwb-base-select-input"),w=l("openwb-base-alert"),k=l("openwb-base-card");return u(),g(k,{title:n.title,class:"log-card",collapsible:!0,collapsed:!0,onExpanded:s.onCardExpand},{actions:r(({collapsed:i})=>[i?m("",!0):(u(),g(c,{key:0,class:f(["clickable mr-1",t.pastebinLink?"bg-success":"bg-info"]),onClick:L(s.postToPastebin,["stop"])},{default:r(()=>[p(d,{icon:t.pastebinLink?["fas","check"]:["fas","share-nodes"],title:t.pastebinLink?"Link in die Zwischenablage kopiert":"Log auf paste.openwb.de teilen"},null,8,["icon","title"])]),_:1},8,["class","onClick"])),i?m("",!0):(u(),g(c,{key:1,class:f(["clickable mr-1",t.copyMessage?"bg-success":"bg-info"]),onClick:e[0]||(e[0]=L(D=>s.copyToClipboard(t.logData),["stop"]))},{default:r(()=>[p(d,{icon:t.copyMessage?["fas","check"]:["fas","clipboard"],title:t.copyMessage?"Log in die Zwischenablage kopiert":"Log kopieren"},null,8,["icon","title"])]),_:1},8,["class"])),i?m("",!0):(u(),g(c,{key:2,class:f(["clickable",t.loading?"bg-success":"bg-info"]),onClick:e[1]||(e[1]=L(D=>s.loadLog(n.logFile,t.selectedVariant),["stop"]))},{default:r(()=>[p(d,{class:f(t.loading?"fa-spin-pulse":""),icon:t.loading?["fas","spinner"]:["fas","file-download"],title:"Log laden/aktualisieren"},null,8,["class","icon"])]),_:1},8,["class"]))]),default:r(()=>[t.foundFiles.length>0?(u(),g(w,{key:0,subtype:"info"},{default:r(()=>[h(" Im "+v(n.title)+" stehen unterschiedliche Logauszüge zur Verfügung. Standardmässig werden Logs der letzten 3 Durchläufe geladen, für viele Fälle sollte dies ausreichen. Optional kann auch das gesamte Log geladen werden.",1),e[4]||(e[4]=b("br",null,null,-1)),e[5]||(e[5]=h(" Wurde eine Warnung oder ein Fehler protokolliert steht zusätzlich der letzte Durchlauf mit Warnungen und Fehlern zur Verfügung.",-1)),e[6]||(e[6]=b("br",null,null,-1)),p(_,{modelValue:t.selectedVariant,"onUpdate:modelValue":e[2]||(e[2]=i=>t.selectedVariant=i),title:"Logfile",required:"",options:t.foundFiles.map(i=>({value:i.suffix,text:i.title})),onChange:e[3]||(e[3]=i=>s.loadLog(n.logFile,t.selectedVariant))},null,8,["modelValue","options"])]),_:1,__:[4,5,6]})):m("",!0),b("pre",I,v(t.logData),1)]),_:1},8,["title","onExpanded"])}const K=F(E,[["render",A],["__scopeId","data-v-a320c3d6"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/debug_config/LogCard.vue"]]),Z={name:"OpenwbDebuggingView",components:{OpenwbLogCard:K},mixins:[x],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/debug_level"],logFiles:[{title:"Main-Log",fileName:"/openWB/ramdisk/main.log"},{title:"Log des internen Ladepunktes",fileName:"/openWB/ramdisk/internal_chargepoint.log"},{title:"MQTT-Log",fileName:"/openWB/ramdisk/mqtt.log"},{title:"SoC-Log",fileName:"/openWB/ramdisk/soc.log"},{title:"Protokoll des letzten Updates",fileName:"/openWB/data/log/update.log"},{title:"Protokoll des Remote-Dienstes",fileName:"/openWB/ramdisk/remote_support.log"},{title:"Protokoll des SmartHome Dienstes",fileName:"/openWB/ramdisk/smarthome.log"},{title:"Protokoll der Datenmigration",fileName:"/openWB/data/log/data_migration.log"},{title:"Protokoll über die Schaltvorgänge von steuerbaren Verbrauchseinrichtungen",fileName:"/openWB/data/log/steuve_control_command.log"},{title:"Thread-Errors",fileName:"/openWB/ramdisk/thread_errors.log"}]}}},O={class:"debugging"},R={name:"debugConfigForm"};function U(o,e,n,a,t,s){const d=l("openwb-base-button-group-input"),c=l("openwb-base-alert"),_=l("openwb-base-card"),w=l("openwb-base-submit-buttons"),k=l("openwb-log-card");return u(),C("div",O,[b("form",R,[p(_,{title:"Protokollierung"},{default:r(()=>[p(d,{title:"Debug Level",buttons:[{buttonValue:30,text:"Warnungen und Fehler"},{buttonValue:20,text:"Info"},{buttonValue:10,text:"Details"}],"model-value":o.$store.state.mqtt["openWB/system/debug_level"],"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateState("openWB/system/debug_level",i))},{help:r(()=>e[4]||(e[4]=[h(' Wenn der Debug Level auf "Info" oder "Details" gesetzt wird, werden mehr Informationen in die Logdateien geschrieben. Im normalen Betrieb sollte immer "Warnungen und Fehler" gewählt werden, um die Schreibvorgänge auf der SD-Karte zu reduzieren. ',-1)])),_:1},8,["model-value"]),p(c,{subtype:"warning"},{default:r(()=>e[5]||(e[5]=[h(' Achtung! In den Einstellungen "Info" und "Details" können in den Logdateien sensible Daten wie Benutzernamen und Passwörter enthalten sein. Diese sollten vor dem Veröffentlichen z.B. im Forum unkenntlich gemacht werden. Private IP-Adressen (z.B. 192.168.x.x) müssen nicht maskiert werden, da diese nicht über das Internet erreichbar sind. ',-1)])),_:1,__:[5]})]),_:1}),p(w,{"form-name":"debugConfigForm",onSave:e[1]||(e[1]=i=>o.$emit("save")),onReset:e[2]||(e[2]=i=>o.$emit("reset")),onDefaults:e[3]||(e[3]=i=>o.$emit("defaults"))})]),(u(!0),C(S,null,q(t.logFiles,i=>(u(),g(k,{key:i.fileName,title:i.title,"log-file":i.fileName},null,8,["title","log-file"]))),128))])}const H=F(Z,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DebugConfig.vue"]]);export{H as default}; diff --git a/web/settings/assets/DebugConfig-0d862fc6.js b/web/settings/assets/DebugConfig-0d862fc6.js new file mode 100644 index 0000000000..43098bfe70 --- /dev/null +++ b/web/settings/assets/DebugConfig-0d862fc6.js @@ -0,0 +1,2 @@ +import{C as x}from"./index-c94f8df4.js";import{l as B,ac as W,ad as V,k as z,ae as P,g as N,F as M}from"./vendor-fortawesome-fc4b3a41.js";import{a as y}from"./vendor-axios-1a87d4ae.js";import{_ as F,a4 as S,u as l,l as u,x as p,E as r,q as f,y as L,G as g,z as m,B as h,F as v,A as b,m as C,N as T,M as q}from"./vendor-50125810.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-sortablejs-8982fad4.js";B.add(W,V,z,P,N);const E={name:"OpenwbLogCard",components:{FontAwesomeIcon:M},props:{title:{type:String,required:!0},logFile:{type:String,required:!0}},data(){return{logData:"-- noch nicht geladen --",loading:!1,foundFiles:[],selectedVariant:"",copyMessage:!1,pastebinLink:""}},methods:{async getFilePromise(o,e=!1,n=!0,a=!1){return y[a?"head":"get"](location.protocol+"//"+location.host+o).then(s=>{if(a)return!0;{const d=s.data;return d||"log file is empty"}}).catch(s=>{if(!n)throw s;return s.response?s.response.status==404&&e?a?!1:"":`A 404 is expected if running node.js dev server! +`+s.response.status+" "+s.response.statusText+": "+s.response.request.responseURL:s.request?s.request:s.message})},async loadLog(o,e=""){this.logData="wird aktualisiert...",this.loading=!0,this.pastebinLink="";var n="";e&&(o=o.replace(".log",`.${e}.log`));for(let t=4;t>=1;t--){const s=await this.getFilePromise(o+"."+t,!0);n+=s}const a=await this.getFilePromise(o);n+=a,this.logData=n,this.loading=!1},async checkLatestLog(o){const e=[{suffix:"latest",title:"Letzten 3 Durchläufe",description:"Logs der Letzten 3 Durchläufe laden"},{suffix:"current",title:"Letzter Durchlauf",description:"Logs des letzten Durchlaufs laden"},{suffix:"latest-warning",title:"Letzter Durchlauf mit Warnung oder Fehler",description:"Fehlerprotokoll laden"}];this.foundFiles=[];for(const n of e){const a=o.replace(".log",`.${n.suffix}.log`);try{await this.getFilePromise(a,!1,!1,!0),this.foundFiles.push(n),n.suffix==="latest"&&(this.selectedVariant="latest",console.log("Found latest log file: ",a))}catch(t){console.log(t)}}this.foundFiles.length>0&&this.foundFiles.push({suffix:"",title:"Vollständiges Log",description:"Vollständiges Log laden"})},async onCardExpand(){await this.checkLatestLog(this.logFile),this.loadLog(this.logFile,this.selectedVariant)},copyToClipboard(o=this.logData,e=!0){if(navigator.clipboard&&navigator.clipboard.writeText)navigator.clipboard.writeText(o).then(()=>{e&&this.showCopyMessage()}).catch(n=>{console.error("Fehler beim Kopieren in die Zwischenablage: ",n)});else{const n=document.createElement("textarea");n.value=o,document.body.appendChild(n),n.select();try{document.execCommand("copy"),e&&this.showCopyMessage()}catch(a){console.error("Fehler beim Kopieren in die Zwischenablage: ",a)}document.body.removeChild(n)}},showCopyMessage(){this.copyMessage=!0,this.$root.postClientMessage("Log in die Zwischenablage kopiert.","info"),setTimeout(()=>{this.copyMessage=!1},3e3)},async postToPastebin(){try{const o=S.gzip(this.logData),e=await y.post("https://bytebin.openwb.de/post",o,{headers:{"Content-Type":"text/log","Content-Encoding":"gzip"}});if(!e.data.key)throw new Error("Key is missing in the response");const n=e.data.key;this.pastebinLink=`https://paste.openwb.de/${n}`,console.log("Pastebin link:",this.pastebinLink),this.copyToClipboard(this.pastebinLink,!1),this.$root.postClientMessage(`Log an Pastebin gesendet.
Key: ${n}
Der Link wurde in die Zwischenablage kopiert.`,"info")}catch(o){console.error("Fehler beim Posten auf paste.openwb.de: ",o)}}}},I={class:"log-data mb-0"};function A(o,e,n,a,t,s){const d=l("font-awesome-icon"),c=l("openwb-base-avatar"),w=l("openwb-base-select-input"),_=l("openwb-base-alert"),k=l("openwb-base-card");return u(),p(k,{title:n.title,class:"log-card",collapsible:!0,collapsed:!0,onExpanded:s.onCardExpand},{actions:r(({collapsed:i})=>[i?m("",!0):(u(),p(c,{key:0,class:f(["clickable mr-1",t.pastebinLink?"bg-success":"bg-info"]),onClick:L(s.postToPastebin,["stop"])},{default:r(()=>[g(d,{icon:t.pastebinLink?["fas","check"]:["fas","share-nodes"],title:t.pastebinLink?"Link in die Zwischenablage kopiert":"Log auf paste.openwb.de teilen"},null,8,["icon","title"])]),_:1},8,["class","onClick"])),i?m("",!0):(u(),p(c,{key:1,class:f(["clickable mr-1",t.copyMessage?"bg-success":"bg-info"]),onClick:e[0]||(e[0]=L(D=>s.copyToClipboard(t.logData),["stop"]))},{default:r(()=>[g(d,{icon:t.copyMessage?["fas","check"]:["fas","clipboard"],title:t.copyMessage?"Log in die Zwischenablage kopiert":"Log kopieren"},null,8,["icon","title"])]),_:1},8,["class"])),i?m("",!0):(u(),p(c,{key:2,class:f(["clickable",t.loading?"bg-success":"bg-info"]),onClick:e[1]||(e[1]=L(D=>s.loadLog(n.logFile,t.selectedVariant),["stop"]))},{default:r(()=>[g(d,{class:f(t.loading?"fa-spin-pulse":""),icon:t.loading?["fas","spinner"]:["fas","file-download"],title:"Log laden/aktualisieren"},null,8,["class","icon"])]),_:1},8,["class"]))]),default:r(()=>[t.foundFiles.length>0?(u(),p(_,{key:0,subtype:"info"},{default:r(()=>[h(" Im "+v(n.title)+" stehen unterschiedliche Logauszüge zur Verfügung. Standardmässig werden Logs der letzten 3 Durchläufe geladen, für viele Fälle sollte dies ausreichen. Optional kann auch das gesamte Log geladen werden.",1),e[4]||(e[4]=b("br",null,null,-1)),e[5]||(e[5]=h(" Wurde eine Warnung oder ein Fehler protokolliert steht zusätzlich der letzte Durchlauf mit Warnungen und Fehlern zur Verfügung.",-1)),e[6]||(e[6]=b("br",null,null,-1)),g(w,{modelValue:t.selectedVariant,"onUpdate:modelValue":e[2]||(e[2]=i=>t.selectedVariant=i),title:"Logfile",required:"",options:t.foundFiles.map(i=>({value:i.suffix,text:i.title})),onChange:e[3]||(e[3]=i=>s.loadLog(n.logFile,t.selectedVariant))},null,8,["modelValue","options"])]),_:1})):m("",!0),b("pre",I,v(t.logData),1)]),_:1},8,["title","onExpanded"])}const K=F(E,[["render",A],["__scopeId","data-v-a320c3d6"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/debug_config/LogCard.vue"]]),Z={name:"OpenwbDebuggingView",components:{OpenwbLogCard:K},mixins:[x],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/debug_level"],logFiles:[{title:"Main-Log",fileName:"/openWB/ramdisk/main.log"},{title:"Log des internen Ladepunktes",fileName:"/openWB/ramdisk/internal_chargepoint.log"},{title:"MQTT-Log",fileName:"/openWB/ramdisk/mqtt.log"},{title:"SoC-Log",fileName:"/openWB/ramdisk/soc.log"},{title:"Protokoll des letzten Updates",fileName:"/openWB/data/log/update.log"},{title:"Protokoll des Remote-Dienstes",fileName:"/openWB/ramdisk/remote_support.log"},{title:"Protokoll des SmartHome Dienstes",fileName:"/openWB/ramdisk/smarthome.log"},{title:"Protokoll der Sicherung",fileName:"/openWB/data/log/backup.log"},{title:"Protokoll der Wiederherstellung",fileName:"/openWB/data/log/restore.log"},{title:"Protokoll der Datenmigration",fileName:"/openWB/data/log/data_migration.log"},{title:"Protokoll über die Schaltvorgänge von steuerbaren Verbrauchseinrichtungen",fileName:"/openWB/data/log/steuve_control_command.log"},{title:"Thread-Errors",fileName:"/openWB/ramdisk/thread_errors.log"}]}}},O={class:"debugging"},R={name:"debugConfigForm"};function U(o,e,n,a,t,s){const d=l("openwb-base-button-group-input"),c=l("openwb-base-alert"),w=l("openwb-base-card"),_=l("openwb-base-submit-buttons"),k=l("openwb-log-card");return u(),C("div",O,[b("form",R,[g(w,{title:"Protokollierung"},{default:r(()=>[g(d,{title:"Debug Level",buttons:[{buttonValue:30,text:"Warnungen und Fehler"},{buttonValue:20,text:"Info"},{buttonValue:10,text:"Details"}],"model-value":o.$store.state.mqtt["openWB/system/debug_level"],"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateState("openWB/system/debug_level",i))},{help:r(()=>[...e[4]||(e[4]=[h(' Wenn der Debug Level auf "Info" oder "Details" gesetzt wird, werden mehr Informationen in die Logdateien geschrieben. Im normalen Betrieb sollte immer "Warnungen und Fehler" gewählt werden, um die Schreibvorgänge auf der SD-Karte zu reduzieren. ',-1)])]),_:1},8,["model-value"]),g(c,{subtype:"warning"},{default:r(()=>[...e[5]||(e[5]=[h(' Achtung! In den Einstellungen "Info" und "Details" können in den Logdateien sensible Daten wie Benutzernamen und Passwörter enthalten sein. Diese sollten vor dem Veröffentlichen z.B. im Forum unkenntlich gemacht werden. Private IP-Adressen (z.B. 192.168.x.x) müssen nicht maskiert werden, da diese nicht über das Internet erreichbar sind. ',-1)])]),_:1})]),_:1}),g(_,{"form-name":"debugConfigForm",onSave:e[1]||(e[1]=i=>o.$emit("save")),onReset:e[2]||(e[2]=i=>o.$emit("reset")),onDefaults:e[3]||(e[3]=i=>o.$emit("defaults"))})]),(u(!0),C(T,null,q(t.logFiles,i=>(u(),p(k,{key:i.fileName,title:i.title,"log-file":i.fileName},null,8,["title","log-file"]))),128))])}const H=F(Z,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DebugConfig.vue"]]);export{H as default}; diff --git a/web/settings/assets/GeneralChargeConfig-6ea49afe.js b/web/settings/assets/GeneralChargeConfig-6ea49afe.js new file mode 100644 index 0000000000..a079f94ea7 --- /dev/null +++ b/web/settings/assets/GeneralChargeConfig-6ea49afe.js @@ -0,0 +1 @@ +import{_ as f,C as q}from"./index-c94f8df4.js";import{_ as D}from"./dynamic-import-helper-be004503.js";import{l as O,a6 as L,a7 as A,F}from"./vendor-fortawesome-fc4b3a41.js";import{_ as B,u,l as a,m as s,x as _,E as r,B as i,F as h,G as n,A as d,a2 as U,a3 as N,N as I,z as m}from"./vendor-50125810.js";const R={props:{electricityTariff:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},Z=B(R,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/ElectricityTariffConfigMixin.vue"]]),j={name:"ElectricityTariffConfigFallback",mixins:[Z]},H={class:"backup-cloud-fallback"},G={key:1};function M(t,e,g,W,z,c){const l=u("openwb-base-alert"),p=u("openwb-base-textarea");return a(),s("div",H,[Object.keys(t.electricityTariff.configuration).length==0?(a(),_(l,{key:0,subtype:"info"},{default:r(()=>[i(' Der Anbieter "'+h(t.electricityTariff.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(a(),s("div",G,[n(l,{subtype:"warning"},{default:r(()=>[i(' Es wurde keine Konfigurationsseite für den Anbieter "'+h(t.electricityTariff.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(p,{title:"Konfiguration",subtype:"json","model-value":t.electricityTariff.configuration,"onUpdate:modelValue":e[0]||(e[0]=v=>t.updateConfiguration(v,"configuration"))},{help:r(()=>[...e[1]||(e[1]=[i(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),n(l,{subtype:"info"},{default:r(()=>[d("pre",null,h(JSON.stringify(t.electricityTariff.configuration,void 0,2)),1)]),_:1})]))])}const J=B(j,[["render",M],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/OpenwbElectricityTariffConfigFallback.vue"]]);O.add(L,A);const K={name:"OpenwbElectricityTariffProxy",components:{FontAwesomeIcon:F},props:{electricityTariff:{type:Object,required:!0}},emits:["update:configuration"],methods:{getTariffComponent(){return console.debug(`loading electricity tariff: ${this.electricityTariff.type}`),U({loader:()=>D(Object.assign({"./awattar/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-96f61949.js"),["assets/electricity_tariff-96f61949.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/index-c94f8df4.js","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./energycharts/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-364c39ff.js"),["assets/electricity_tariff-364c39ff.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/index-c94f8df4.js","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fixed_hours/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-982b4ff6.js"),["assets/electricity_tariff-982b4ff6.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js","assets/electricity_tariff-48648707.css"]),"./octopusenergy/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-45b171ab.js"),["assets/electricity_tariff-45b171ab.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/index-c94f8df4.js","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./ostrom/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-bb07cc98.js"),["assets/electricity_tariff-bb07cc98.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/index-c94f8df4.js","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./rabot/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-81299fd9.js"),["assets/electricity_tariff-81299fd9.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/index-c94f8df4.js","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tibber/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-1801c7f1.js"),["assets/electricity_tariff-1801c7f1.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/index-c94f8df4.js","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./voltego/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-b0a556e0.js"),["assets/electricity_tariff-b0a556e0.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/index-c94f8df4.js","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.electricityTariff.type}/electricity_tariff.vue`),errorComponent:J})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function Q(t,e,g,W,z,c){const l=u("font-awesome-icon"),p=u("openwb-base-alert"),v=u("openwb-base-heading");return a(),s(I,null,[g.electricityTariff.official?(a(),_(p,{key:0,subtype:"success"},{default:r(()=>[n(l,{icon:["fas","certificate"]}),i(' Das ausgewählte Modul "'+h(g.electricityTariff.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(a(),_(p,{key:1,subtype:"info"},{default:r(()=>[n(l,{icon:["fas","people-group"]}),i(' Das ausgewählte Modul "'+h(g.electricityTariff.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),n(v,null,{default:r(()=>[i(' Einstellungen für Modul "'+h(g.electricityTariff.name)+'" ',1)]),_:1}),(a(),_(N(c.getTariffComponent()),{"electricity-tariff":g.electricityTariff,"onUpdate:configuration":e[0]||(e[0]=b=>c.updateConfiguration(b))},null,40,["electricity-tariff"]))],64)}const X=B(K,[["render",Q],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/OpenwbElectricityTariffProxy.vue"]]),Y={name:"OpenwbGeneralChargeConfigView",components:{OpenwbElectricityTariffProxy:X},mixins:[q],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/bat/config/power_limit_mode","openWB/bat/config/bat_control_permitted","openWB/bat/get/power_limit_controllable","openWB/general/extern","openWB/general/chargemode_config/phase_switch_delay","openWB/general/chargemode_config/retry_failed_phase_switches","openWB/general/chargemode_config/unbalanced_load","openWB/general/chargemode_config/unbalanced_load_limit","openWB/general/prices/bat","openWB/general/prices/grid","openWB/general/prices/pv","openWB/optional/et/provider","openWB/optional/ocpp/config","openWB/system/configurable/electricity_tariffs"]}},computed:{electricityTariffList(){return this.$store.state.mqtt["openWB/system/configurable/electricity_tariffs"]}},methods:{getElectricityTariffDefaultConfiguration(t){const e=this.electricityTariffList.find(g=>g.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for electricity tariff type!",t),{})},updateSelectedElectricityTariff(t){this.updateState("openWB/optional/et/provider",t,"type"),this.updateState("openWB/optional/et/provider",this.getElectricityTariffDefaultConfiguration(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},x={class:"generalChargeConfig"},ee={name:"generalChargeConfigForm"},te={key:0},ne={key:1},ie={key:0},re={key:1},oe={key:1},ae={key:0},se={key:1},le={key:0},ue={key:0},de={key:0},pe={key:1},ge={key:2},fe={key:1},me={key:0},ce={key:1},be={key:0};function _e(t,e,g,W,z,c){const l=u("openwb-base-alert"),p=u("openwb-base-button-group-input"),v=u("openwb-base-range-input"),b=u("openwb-base-number-input"),w=u("openwb-base-card"),k=u("openwb-base-heading"),S=u("openwb-base-select-input"),V=u("openwb-electricity-tariff-proxy"),C=u("openwb-base-text-input"),T=u("openwb-base-submit-buttons");return a(),s("div",x,[d("form",ee,[n(w,{title:"Allgemein"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",te,[n(l,{subtype:"info"},{default:r(()=>[...e[17]||(e[17]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(a(),s("div",ne,[n(p,{title:"Begrenzung der Schieflast",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"],"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateState("openWB/general/chargemode_config/unbalanced_load",o))},{help:r(()=>[...e[18]||(e[18]=[i(" Wenn diese Option aktiviert ist, werden nicht-dreiphasige Ladevorgänge so geregelt, dass am Netzanschlusspunkt (EVU-Zähler) die eingestellte Grenze für die Schieflast nicht überschritten wird. Hierfür muss der EVU-Zähler einzelne Phasenströme bereitstellen!",-1),d("br",null,null,-1),i(' Weiterhin müssen bei den Ladepunkten sowie Fahrzeugen sämtliche Angaben zur Anzahl angeschlossener/unterstützter Phasen und der Phasenrotation hinterlegt werden, damit der Regelung bekannt ist, welcher Ladevorgang welche Phase am Netzanschluss beeinflusst. siehe "Konfiguration - Ladepunkte -> elektrischer Anschluss - Phase 1" und "Konfiguration - Fahrzeuge -> Fahrzeug-Profile" ',-1)])]),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"]?(a(),_(v,{key:0,title:"Erlaubte Schieflast",min:10,max:32,step:1,unit:"A","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load_limit"],"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateState("openWB/general/chargemode_config/unbalanced_load_limit",o))},{help:r(()=>[...e[19]||(e[19]=[i(" Hiermit wird festgelegt, welche Schieflast am Netzanschlusspunkt erlaubt ist. Bei Überschreitung werden gezielt einzelne Ladevorgänge in der Leistung begrenzt. ",-1)])]),_:1},8,["model-value"])):m("",!0),n(p,{title:"Phasenumschaltung wiederholt anstoßen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/retry_failed_phase_switches"],"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateState("openWB/general/chargemode_config/retry_failed_phase_switches",o))},{help:r(()=>[...e[20]||(e[20]=[i(" Wenn diese Option aktiviert ist, werden bis zu zwei Umschaltversuche vorgenommen, wenn die vorgegebene und genutzte Phasenzahl nicht übereinstimmen. Wird die Option deaktiviert, wird nur eine Umschaltung durchgeführt.",-1),d("br",null,null,-1),i(" Die gezählten Fehlversuche werden beim nächsten Wechsel des Lademodus oder mit dem Abstecken zurückgesetzt. ",-1)])]),_:1},8,["model-value"]),n(b,{title:"Pufferzeit zwischen automat. Phasenumschaltungen",unit:"Min.",min:5,max:180,step:1,"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/phase_switch_delay"],"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateState("openWB/general/chargemode_config/phase_switch_delay",o))},{help:r(()=>[...e[21]||(e[21]=[i(" Um zu viele Umschaltungen zu vermeiden, wird mindestens die hier eingestellte Zeit zwischen zwei Umschaltungen abgewartet. Das Umschalten auf mehrphasiges Laden erfolgt nur, wenn mit der maximalen Stromstärke geladen wird und genug Leistung für mehrphasiges Laden zur Verfügung steht. Auf einphasiges Laden wird zurückgeschaltet, wenn auf die minimale Stromstärke heruntergeregelt wurde. Die Verzögerung wird nur bei der automatischen Phasenumschaltung bei Überschuss-Laden abgewartet.",-1),d("br",null,null,-1),i(" Ist ausreichend Überschuss vorhanden, wird beim Ladestart die Umschaltverzögerung nicht abgewartet, sondern direkt mit mehrphasiger Ladung begonnen. ",-1)])]),_:1},8,["model-value"])]))]),_:1}),n(w,{title:"Ladekosten"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",ie,[n(l,{subtype:"info"},{default:r(()=>[...e[22]||(e[22]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(a(),s("div",re,[n(k,{class:"mt-0"},{help:r(()=>[...e[23]||(e[23]=[i(" Zur Berechnung der Ladekosten im Lade-Protokoll werden stundenweise die Anteile der Stromquellen (Speicher, Netz, PV) berechnet und mit den hier angegebenen Preisen multipliziert.",-1),d("br",null,null,-1),i(" Ist die Abrechnung über das Ladeprotokoll, z.B. mit dem Arbeitgeber, vereinbart, ist bei allen drei Feldern der vereinbarte Preis einzutragen. ",-1)])]),default:r(()=>[e[24]||(e[24]=i(" Berechnung der Ladekosten ",-1))]),_:1}),t.$store.state.mqtt["openWB/optional/et/provider"]&&t.$store.state.mqtt["openWB/optional/et/provider"].type?(a(),_(l,{key:0,subtype:"info"},{default:r(()=>[...e[25]||(e[25]=[i(" Für den Netzbezug wird der dynamische Strompreis des Anbieters für variable Stromtarife verwendet. Wenn keine dynamischen Strompreise abgefragt werden können, wird der eingetragene Preis für den Netzbezug verwendet. ",-1)])]),_:1})):m("",!0),n(b,{title:"Preis für Netzbezug",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/general/prices/grid"]*1e5,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateState("openWB/general/prices/grid",parseFloat((o/1e5).toFixed(7))))},null,8,["model-value"]),n(b,{title:"Preis für Speicherentladung",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/general/prices/bat"]*1e5,"onUpdate:modelValue":e[5]||(e[5]=o=>t.updateState("openWB/general/prices/bat",parseFloat((o/1e5).toFixed(7))))},null,8,["model-value"]),n(b,{title:"Preis für PV-Strom",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/general/prices/pv"]*1e5,"onUpdate:modelValue":e[6]||(e[6]=o=>t.updateState("openWB/general/prices/pv",parseFloat((o/1e5).toFixed(7))))},null,8,["model-value"]),e[28]||(e[28]=d("hr",null,null,-1)),n(k,null,{default:r(()=>[...e[26]||(e[26]=[i(" Variable Stromtarife ",-1)])]),_:1}),n(l,{subtype:"info"},{default:r(()=>[...e[27]||(e[27]=[i(" Bei Sofort- und Zeitladen wird nur geladen, wenn der Strompreis unter dem angegebenen maximalen Strompreis liegt. Für Zielladen wird die Ladedauer ermittelt und dann zu den günstigsten Stunden geladen.",-1),d("br",null,null,-1),i(" Wenn keine Preise abgefragt werden können, wird bei Sofort- und Zeitladen immer geladen und bei Zielladen zunächst mit PV-Überschuss und zum Erreichen des Zieltermins mit Netzstrom. ",-1)])]),_:1}),n(S,{class:"mb-2",title:"Anbieter",options:c.electricityTariffList,"model-value":t.$store.state.mqtt["openWB/optional/et/provider"]?t.$store.state.mqtt["openWB/optional/et/provider"].type:"","onUpdate:modelValue":e[7]||(e[7]=o=>c.updateSelectedElectricityTariff(o))},null,8,["options","model-value"]),t.$store.state.mqtt["openWB/optional/et/provider"]&&t.$store.state.mqtt["openWB/optional/et/provider"].type?(a(),s("div",oe,[n(V,{"electricity-tariff":t.$store.state.mqtt["openWB/optional/et/provider"],"onUpdate:configuration":e[8]||(e[8]=o=>c.updateConfiguration("openWB/optional/et/provider",o))},null,8,["electricity-tariff"])])):m("",!0)]))]),_:1}),n(w,{title:"Optional"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",ae,[n(l,{subtype:"info"},{default:r(()=>[...e[29]||(e[29]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(a(),s("div",se,[n(l,{subtype:"info",class:"mb-3"},{default:r(()=>[e[30]||(e[30]=d("p",null,[i(" Die aktive Speichersteuerung durch openWB basiert auf öffentlich zugänglichen Informationen zu den verschiedenen Speichersystemen. Diese können auch nicht herstellerseitig freigegebene Informationen beinhalten."),d("br"),i(' Fragen bezüglich der Gewährleistung und Hardwarekompatibilität sind vor der Nutzung mit dem Hersteller zu klären. openWB übernimmt keine Haftung für Schäden, welche aus der Nutzung der "aktiven Speichersteuerung" entstehen. ')],-1)),n(p,{title:"Hinweise zur aktiven Speichersteuerung gelesen und akzeptiert",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/bat/config/bat_control_permitted"],"onUpdate:modelValue":e[9]||(e[9]=o=>t.updateState("openWB/bat/config/bat_control_permitted",o))},null,8,["model-value"])]),_:1}),t.$store.state.mqtt["openWB/bat/config/bat_control_permitted"]===!0?(a(),s("div",le,[n(k,{class:"mt-0"},{default:r(()=>[...e[31]||(e[31]=[i(" Speicher-Entladung ins Fahrzeug steuern ",-1)])]),_:1}),t.$store.state.mqtt["openWB/bat/get/power_limit_controllable"]===!0?(a(),s("div",ue,[n(p,{title:"Speichersteuerung",buttons:[{buttonValue:"no_limit",text:"Aus"},{buttonValue:"limit_stop",text:"volle Entladesperre"},{buttonValue:"limit_to_home_consumption",text:"Entladung in Fahrzeuge sperren"}],"model-value":t.$store.state.mqtt["openWB/bat/config/power_limit_mode"],"onUpdate:modelValue":e[10]||(e[10]=o=>t.updateState("openWB/bat/config/power_limit_mode",o))},{help:r(()=>[t.$store.state.mqtt["openWB/bat/config/power_limit_mode"]==="no_limit"?(a(),s("div",de," Der Speicher regelt eigenständig und wird nicht gesteuert. Es greift nur die konfigurierte Speicherbeachtung (Modus-PV). ")):m("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_mode"]==="limit_stop"?(a(),s("div",pe," Die Speicherentladung wird komplett gesperrt, sobald ein Fahrzeug lädt! Alle Verbraucher (Fahrzeuge, Hausverbrauch) werden durch Netzstrom versorgt. ")):m("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_mode"]==="limit_to_home_consumption"?(a(),s("div",ge,' Fahrzeugladung erzeugt Netzbezug statt Speicherentladung. Weitere Verbraucher (bspw. Hausverbrauch) werden durch den Speicher ausgeglichen. Kann die Entladung am Speicher nur komplett gesperrt werden, verhält sich diese Einstellung wie "volle Entladesperre". ')):m("",!0)]),_:1},8,["model-value"])])):(a(),s("div",fe,[n(l,{subtype:"info"},{default:r(()=>[...e[32]||(e[32]=[i(" Die Speicher-Entladung ins Fahrzeug kann nicht gesteuert werden, da die Entladeleistung nicht an den/die konfigurierten Speicher übergeben werden kann. ",-1)])]),_:1})]))])):m("",!0)]))]),_:1}),n(w,{title:"OCPP Anbindung"},{default:r(()=>{var o,E,P,$;return[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",me,[n(l,{subtype:"info"},{default:r(()=>[...e[33]||(e[33]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(a(),s("div",ce,[n(p,{title:"OCPP aktivieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(o=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:o.active,"onUpdate:modelValue":e[11]||(e[11]=y=>t.updateState("openWB/optional/ocpp/config",y,"active"))},null,8,["model-value"]),((E=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:E.active)===!0?(a(),s("div",be,[n(l,{subtype:"info"},{default:r(()=>[...e[34]||(e[34]=[i(" Die Ladepunkte übermitteln den ID-Tag, Heartbeat und den Zählerstand zum Zeitpunkt des Ansteckens, Absteckens und alle 5 Minuten. Eine Steuerung per OCPP ist nicht möglich.",-1),d("br",null,null,-1),i(" Alle Ladepunkte, die ihre Daten an das OCPP-Backend übermitteln sollen, müssen zunächst im OCPP-Backend angelegt werden. Die dort eingetragene Chargebox ID muss in der openWB in den Einstellungen des Ladepunkts eingetragen werden. ",-1)])]),_:1}),n(C,{title:"URL des OCPP-Backends",subtype:"url","model-value":(P=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:P.url,"onUpdate:modelValue":e[12]||(e[12]=y=>t.updateState("openWB/optional/ocpp/config",y,"url"))},null,8,["model-value"]),n(S,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"ocpp1.6",text:"OCPP 1.6"},{value:"ocpp2.0.1",text:"OCPP 2.0.1"}],"model-value":($=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:$.version,"onUpdate:modelValue":e[13]||(e[13]=y=>t.updateState("openWB/optional/ocpp/config",y,"version"))},null,8,["model-value"])])):m("",!0)]))]}),_:1}),n(T,{"form-name":"generalChargeConfigForm",onSave:e[14]||(e[14]=o=>t.$emit("save")),onReset:e[15]||(e[15]=o=>t.$emit("reset")),onDefaults:e[16]||(e[16]=o=>t.$emit("defaults"))})])])}const he=B(Y,[["render",_e],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralChargeConfig.vue"]]),ke=Object.freeze(Object.defineProperty({__proto__:null,default:he},Symbol.toStringTag,{value:"Module"}));export{Z as E,ke as G}; diff --git a/web/settings/assets/GeneralChargeConfig-d70b0d95.js b/web/settings/assets/GeneralChargeConfig-d70b0d95.js deleted file mode 100644 index 2e1154b2e4..0000000000 --- a/web/settings/assets/GeneralChargeConfig-d70b0d95.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as f,C as q}from"./index-8dd8e083.js";import{_ as D}from"./dynamic-import-helper-be004503.js";import{l as O,a6 as L,a7 as A,F}from"./vendor-fortawesome-a02b6813.js";import{_ as B,u,l as a,m as s,x as _,E as r,B as i,F as h,G as n,A as d,a2 as U,a3 as N,N as I,z as m}from"./vendor-25d394b4.js";const R={props:{electricityTariff:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},Z=B(R,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/ElectricityTariffConfigMixin.vue"]]),j={name:"ElectricityTariffConfigFallback",mixins:[Z]},H={class:"backup-cloud-fallback"},G={key:1};function M(t,e,g,W,z,c){const l=u("openwb-base-alert"),p=u("openwb-base-textarea");return a(),s("div",H,[Object.keys(t.electricityTariff.configuration).length==0?(a(),_(l,{key:0,subtype:"info"},{default:r(()=>[i(' Der Anbieter "'+h(t.electricityTariff.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(a(),s("div",G,[n(l,{subtype:"warning"},{default:r(()=>[i(' Es wurde keine Konfigurationsseite für den Anbieter "'+h(t.electricityTariff.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(p,{title:"Konfiguration",subtype:"json","model-value":t.electricityTariff.configuration,"onUpdate:modelValue":e[0]||(e[0]=v=>t.updateConfiguration(v,"configuration"))},{help:r(()=>e[1]||(e[1]=[i(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),n(l,{subtype:"info"},{default:r(()=>[d("pre",null,h(JSON.stringify(t.electricityTariff.configuration,void 0,2)),1)]),_:1})]))])}const J=B(j,[["render",M],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/OpenwbElectricityTariffConfigFallback.vue"]]);O.add(L,A);const K={name:"OpenwbElectricityTariffProxy",components:{FontAwesomeIcon:F},props:{electricityTariff:{type:Object,required:!0}},emits:["update:configuration"],methods:{getTariffComponent(){return console.debug(`loading electricity tariff: ${this.electricityTariff.type}`),U({loader:()=>D(Object.assign({"./awattar/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-8d854ff1.js"),["assets/electricity_tariff-8d854ff1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-8dd8e083.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./energycharts/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-cf2ab1f8.js"),["assets/electricity_tariff-cf2ab1f8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-8dd8e083.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fixed_hours/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-6a090d74.js"),["assets/electricity_tariff-6a090d74.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js","assets/electricity_tariff-48648707.css"]),"./octopusenergy/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-ae11ea5d.js"),["assets/electricity_tariff-ae11ea5d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-8dd8e083.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./ostrom/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-377f97e7.js"),["assets/electricity_tariff-377f97e7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-8dd8e083.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./rabot/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-1ac1c5ab.js"),["assets/electricity_tariff-1ac1c5ab.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-8dd8e083.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tibber/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-701d2b86.js"),["assets/electricity_tariff-701d2b86.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-8dd8e083.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./voltego/electricity_tariff.vue":()=>f(()=>import("./electricity_tariff-7bb00a2f.js"),["assets/electricity_tariff-7bb00a2f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-8dd8e083.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.electricityTariff.type}/electricity_tariff.vue`),errorComponent:J})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function Q(t,e,g,W,z,c){const l=u("font-awesome-icon"),p=u("openwb-base-alert"),v=u("openwb-base-heading");return a(),s(I,null,[g.electricityTariff.official?(a(),_(p,{key:0,subtype:"success"},{default:r(()=>[n(l,{icon:["fas","certificate"]}),i(' Das ausgewählte Modul "'+h(g.electricityTariff.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(a(),_(p,{key:1,subtype:"info"},{default:r(()=>[n(l,{icon:["fas","people-group"]}),i(' Das ausgewählte Modul "'+h(g.electricityTariff.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),n(v,null,{default:r(()=>[i(' Einstellungen für Modul "'+h(g.electricityTariff.name)+'" ',1)]),_:1}),(a(),_(N(c.getTariffComponent()),{"electricity-tariff":g.electricityTariff,"onUpdate:configuration":e[0]||(e[0]=b=>c.updateConfiguration(b))},null,40,["electricity-tariff"]))],64)}const X=B(K,[["render",Q],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/OpenwbElectricityTariffProxy.vue"]]),Y={name:"OpenwbGeneralChargeConfigView",components:{OpenwbElectricityTariffProxy:X},mixins:[q],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/bat/config/power_limit_mode","openWB/bat/config/bat_control_permitted","openWB/bat/get/power_limit_controllable","openWB/general/extern","openWB/general/chargemode_config/phase_switch_delay","openWB/general/chargemode_config/retry_failed_phase_switches","openWB/general/chargemode_config/unbalanced_load","openWB/general/chargemode_config/unbalanced_load_limit","openWB/general/prices/bat","openWB/general/prices/grid","openWB/general/prices/pv","openWB/optional/et/provider","openWB/optional/ocpp/config","openWB/system/configurable/electricity_tariffs"]}},computed:{electricityTariffList(){return this.$store.state.mqtt["openWB/system/configurable/electricity_tariffs"]}},methods:{getElectricityTariffDefaultConfiguration(t){const e=this.electricityTariffList.find(g=>g.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for electricity tariff type!",t),{})},updateSelectedElectricityTariff(t){this.updateState("openWB/optional/et/provider",t,"type"),this.updateState("openWB/optional/et/provider",this.getElectricityTariffDefaultConfiguration(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},x={class:"generalChargeConfig"},ee={name:"generalChargeConfigForm"},te={key:0},ne={key:1},ie={key:0},re={key:1},oe={key:1},ae={key:0},se={key:1},le={key:0},ue={key:0},de={key:0},pe={key:1},ge={key:2},fe={key:1},me={key:0},ce={key:1},be={key:0};function _e(t,e,g,W,z,c){const l=u("openwb-base-alert"),p=u("openwb-base-button-group-input"),v=u("openwb-base-range-input"),b=u("openwb-base-number-input"),w=u("openwb-base-card"),k=u("openwb-base-heading"),S=u("openwb-base-select-input"),V=u("openwb-electricity-tariff-proxy"),C=u("openwb-base-text-input"),T=u("openwb-base-submit-buttons");return a(),s("div",x,[d("form",ee,[n(w,{title:"Allgemein"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",te,[n(l,{subtype:"info"},{default:r(()=>e[17]||(e[17]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[17]})])):(a(),s("div",ne,[n(p,{title:"Begrenzung der Schieflast",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"],"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateState("openWB/general/chargemode_config/unbalanced_load",o))},{help:r(()=>e[18]||(e[18]=[i(" Wenn diese Option aktiviert ist, werden nicht-dreiphasige Ladevorgänge so geregelt, dass am Netzanschlusspunkt (EVU-Zähler) die eingestellte Grenze für die Schieflast nicht überschritten wird. Hierfür muss der EVU-Zähler einzelne Phasenströme bereitstellen!",-1),d("br",null,null,-1),i(' Weiterhin müssen bei den Ladepunkten sowie Fahrzeugen sämtliche Angaben zur Anzahl angeschlossener/unterstützter Phasen und der Phasenrotation hinterlegt werden, damit der Regelung bekannt ist, welcher Ladevorgang welche Phase am Netzanschluss beeinflusst. siehe "Konfiguration - Ladepunkte -> elektrischer Anschluss - Phase 1" und "Konfiguration - Fahrzeuge -> Fahrzeug-Profile" ',-1)])),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"]?(a(),_(v,{key:0,title:"Erlaubte Schieflast",min:10,max:32,step:1,unit:"A","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load_limit"],"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateState("openWB/general/chargemode_config/unbalanced_load_limit",o))},{help:r(()=>e[19]||(e[19]=[i(" Hiermit wird festgelegt, welche Schieflast am Netzanschlusspunkt erlaubt ist. Bei Überschreitung werden gezielt einzelne Ladevorgänge in der Leistung begrenzt. ",-1)])),_:1},8,["model-value"])):m("",!0),n(p,{title:"Phasenumschaltung wiederholt anstoßen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/retry_failed_phase_switches"],"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateState("openWB/general/chargemode_config/retry_failed_phase_switches",o))},{help:r(()=>e[20]||(e[20]=[i(" Wenn diese Option aktiviert ist, werden bis zu zwei Umschaltversuche vorgenommen, wenn die vorgegebene und genutzte Phasenzahl nicht übereinstimmen. Wird die Option deaktiviert, wird nur eine Umschaltung durchgeführt.",-1),d("br",null,null,-1),i(" Die gezählten Fehlversuche werden beim nächsten Wechsel des Lademodus oder mit dem Abstecken zurückgesetzt. ",-1)])),_:1},8,["model-value"]),n(b,{title:"Pufferzeit zwischen automat. Phasenumschaltungen",unit:"Min.",min:5,max:180,step:1,"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/phase_switch_delay"],"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateState("openWB/general/chargemode_config/phase_switch_delay",o))},{help:r(()=>e[21]||(e[21]=[i(" Um zu viele Umschaltungen zu vermeiden, wird mindestens die hier eingestellte Zeit zwischen zwei Umschaltungen abgewartet. Das Umschalten auf mehrphasiges Laden erfolgt nur, wenn mit der maximalen Stromstärke geladen wird und genug Leistung für mehrphasiges Laden zur Verfügung steht. Auf einphasiges Laden wird zurückgeschaltet, wenn auf die minimale Stromstärke heruntergeregelt wurde. Die Verzögerung wird nur bei der automatischen Phasenumschaltung bei Überschuss-Laden abgewartet.",-1),d("br",null,null,-1),i(" Ist ausreichend Überschuss vorhanden, wird beim Ladestart die Umschaltverzögerung nicht abgewartet, sondern direkt mit mehrphasiger Ladung begonnen. ",-1)])),_:1},8,["model-value"])]))]),_:1}),n(w,{title:"Ladekosten"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",ie,[n(l,{subtype:"info"},{default:r(()=>e[22]||(e[22]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[22]})])):(a(),s("div",re,[n(k,{class:"mt-0"},{help:r(()=>e[23]||(e[23]=[i(" Zur Berechnung der Ladekosten im Lade-Protokoll werden stundenweise die Anteile der Stromquellen (Speicher, Netz, PV) berechnet und mit den hier angegebenen Preisen multipliziert.",-1),d("br",null,null,-1),i(" Ist die Abrechnung über das Ladeprotokoll, z.B. mit dem Arbeitgeber, vereinbart, ist bei allen drei Feldern der vereinbarte Preis einzutragen. ",-1)])),default:r(()=>[e[24]||(e[24]=i(" Berechnung der Ladekosten ",-1))]),_:1,__:[24]}),t.$store.state.mqtt["openWB/optional/et/provider"]&&t.$store.state.mqtt["openWB/optional/et/provider"].type?(a(),_(l,{key:0,subtype:"info"},{default:r(()=>e[25]||(e[25]=[i(" Für den Netzbezug wird der dynamische Strompreis des Anbieters für variable Stromtarife verwendet. Wenn keine dynamischen Strompreise abgefragt werden können, wird der eingetragene Preis für den Netzbezug verwendet. ",-1)])),_:1,__:[25]})):m("",!0),n(b,{title:"Preis für Netzbezug",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/general/prices/grid"]*1e5,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateState("openWB/general/prices/grid",parseFloat((o/1e5).toFixed(7))))},null,8,["model-value"]),n(b,{title:"Preis für Speicherentladung",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/general/prices/bat"]*1e5,"onUpdate:modelValue":e[5]||(e[5]=o=>t.updateState("openWB/general/prices/bat",parseFloat((o/1e5).toFixed(7))))},null,8,["model-value"]),n(b,{title:"Preis für PV-Strom",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/general/prices/pv"]*1e5,"onUpdate:modelValue":e[6]||(e[6]=o=>t.updateState("openWB/general/prices/pv",parseFloat((o/1e5).toFixed(7))))},null,8,["model-value"]),e[28]||(e[28]=d("hr",null,null,-1)),n(k,null,{default:r(()=>e[26]||(e[26]=[i(" Variable Stromtarife ",-1)])),_:1,__:[26]}),n(l,{subtype:"info"},{default:r(()=>e[27]||(e[27]=[i(" Bei Sofort- und Zeitladen wird nur geladen, wenn der Strompreis unter dem angegebenen maximalen Strompreis liegt. Für Zielladen wird die Ladedauer ermittelt und dann zu den günstigsten Stunden geladen.",-1),d("br",null,null,-1),i(" Wenn keine Preise abgefragt werden können, wird bei Sofort- und Zeitladen immer geladen und bei Zielladen zunächst mit PV-Überschuss und zum Erreichen des Zieltermins mit Netzstrom. ",-1)])),_:1,__:[27]}),n(S,{class:"mb-2",title:"Anbieter",options:c.electricityTariffList,"model-value":t.$store.state.mqtt["openWB/optional/et/provider"]?t.$store.state.mqtt["openWB/optional/et/provider"].type:"","onUpdate:modelValue":e[7]||(e[7]=o=>c.updateSelectedElectricityTariff(o))},null,8,["options","model-value"]),t.$store.state.mqtt["openWB/optional/et/provider"]&&t.$store.state.mqtt["openWB/optional/et/provider"].type?(a(),s("div",oe,[n(V,{"electricity-tariff":t.$store.state.mqtt["openWB/optional/et/provider"],"onUpdate:configuration":e[8]||(e[8]=o=>c.updateConfiguration("openWB/optional/et/provider",o))},null,8,["electricity-tariff"])])):m("",!0)]))]),_:1}),n(w,{title:"Optional"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",ae,[n(l,{subtype:"info"},{default:r(()=>e[29]||(e[29]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[29]})])):(a(),s("div",se,[n(l,{subtype:"info",class:"mb-3"},{default:r(()=>[e[30]||(e[30]=d("p",null,[i(" Die aktive Speichersteuerung durch openWB basiert auf öffentlich zugänglichen Informationen zu den verschiedenen Speichersystemen. Diese können auch nicht herstellerseitig freigegebene Informationen beinhalten."),d("br"),i(' Fragen bezüglich der Gewährleistung und Hardwarekompatibilität sind vor der Nutzung mit dem Hersteller zu klären. openWB übernimmt keine Haftung für Schäden, welche aus der Nutzung der "aktiven Speichersteuerung" entstehen. ')],-1)),n(p,{title:"Hinweise zur aktiven Speichersteuerung gelesen und akzeptiert",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/bat/config/bat_control_permitted"],"onUpdate:modelValue":e[9]||(e[9]=o=>t.updateState("openWB/bat/config/bat_control_permitted",o))},null,8,["model-value"])]),_:1,__:[30]}),t.$store.state.mqtt["openWB/bat/config/bat_control_permitted"]===!0?(a(),s("div",le,[n(k,{class:"mt-0"},{default:r(()=>e[31]||(e[31]=[i(" Speicher-Entladung ins Fahrzeug steuern ",-1)])),_:1,__:[31]}),t.$store.state.mqtt["openWB/bat/get/power_limit_controllable"]===!0?(a(),s("div",ue,[n(p,{title:"Speichersteuerung",buttons:[{buttonValue:"no_limit",text:"Aus"},{buttonValue:"limit_stop",text:"volle Entladesperre"},{buttonValue:"limit_to_home_consumption",text:"Entladung in Fahrzeuge sperren"}],"model-value":t.$store.state.mqtt["openWB/bat/config/power_limit_mode"],"onUpdate:modelValue":e[10]||(e[10]=o=>t.updateState("openWB/bat/config/power_limit_mode",o))},{help:r(()=>[t.$store.state.mqtt["openWB/bat/config/power_limit_mode"]==="no_limit"?(a(),s("div",de," Der Speicher regelt eigenständig und wird nicht gesteuert. Es greift nur die konfigurierte Speicherbeachtung (Modus-PV). ")):m("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_mode"]==="limit_stop"?(a(),s("div",pe," Die Speicherentladung wird komplett gesperrt, sobald ein Fahrzeug lädt! Alle Verbraucher (Fahrzeuge, Hausverbrauch) werden durch Netzstrom versorgt. ")):m("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_mode"]==="limit_to_home_consumption"?(a(),s("div",ge,' Fahrzeugladung erzeugt Netzbezug statt Speicherentladung. Weitere Verbraucher (bspw. Hausverbrauch) werden durch den Speicher ausgeglichen. Kann die Entladung am Speicher nur komplett gesperrt werden, verhält sich diese Einstellung wie "volle Entladesperre". ')):m("",!0)]),_:1},8,["model-value"])])):(a(),s("div",fe,[n(l,{subtype:"info"},{default:r(()=>e[32]||(e[32]=[i(" Die Speicher-Entladung ins Fahrzeug kann nicht gesteuert werden, da die Entladeleistung nicht an den/die konfigurierten Speicher übergeben werden kann. ",-1)])),_:1,__:[32]})]))])):m("",!0)]))]),_:1}),n(w,{title:"OCPP Anbindung"},{default:r(()=>{var o,E,P,$;return[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s("div",me,[n(l,{subtype:"info"},{default:r(()=>e[33]||(e[33]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[33]})])):(a(),s("div",ce,[n(p,{title:"OCPP aktivieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(o=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:o.active,"onUpdate:modelValue":e[11]||(e[11]=y=>t.updateState("openWB/optional/ocpp/config",y,"active"))},null,8,["model-value"]),((E=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:E.active)===!0?(a(),s("div",be,[n(l,{subtype:"info"},{default:r(()=>e[34]||(e[34]=[i(" Die Ladepunkte übermitteln den ID-Tag, Heartbeat und den Zählerstand zum Zeitpunkt des Ansteckens, Absteckens und alle 5 Minuten. Eine Steuerung per OCPP ist nicht möglich.",-1),d("br",null,null,-1),i(" Alle Ladepunkte, die ihre Daten an das OCPP-Backend übermitteln sollen, müssen zunächst im OCPP-Backend angelegt werden. Die dort eingetragene Chargebox ID muss in der openWB in den Einstellungen des Ladepunkts eingetragen werden. ",-1)])),_:1,__:[34]}),n(C,{title:"URL des OCPP-Backends",subtype:"url","model-value":(P=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:P.url,"onUpdate:modelValue":e[12]||(e[12]=y=>t.updateState("openWB/optional/ocpp/config",y,"url"))},null,8,["model-value"]),n(S,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"ocpp1.6",text:"OCPP 1.6"},{value:"ocpp2.0.1",text:"OCPP 2.0.1"}],"model-value":($=t.$store.state.mqtt["openWB/optional/ocpp/config"])==null?void 0:$.version,"onUpdate:modelValue":e[13]||(e[13]=y=>t.updateState("openWB/optional/ocpp/config",y,"version"))},null,8,["model-value"])])):m("",!0)]))]}),_:1}),n(T,{"form-name":"generalChargeConfigForm",onSave:e[14]||(e[14]=o=>t.$emit("save")),onReset:e[15]||(e[15]=o=>t.$emit("reset")),onDefaults:e[16]||(e[16]=o=>t.$emit("defaults"))})])])}const he=B(Y,[["render",_e],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralChargeConfig.vue"]]),ke=Object.freeze(Object.defineProperty({__proto__:null,default:he},Symbol.toStringTag,{value:"Module"}));export{Z as E,ke as G}; diff --git a/web/settings/assets/GeneralConfig-3d40ed90.js b/web/settings/assets/GeneralConfig-3d40ed90.js new file mode 100644 index 0000000000..8efa0973be --- /dev/null +++ b/web/settings/assets/GeneralConfig-3d40ed90.js @@ -0,0 +1 @@ +import{l as J,a6 as I,a7 as x,F,a0 as j,Q as H,E as K,ag as Z,ah as Q,ai as X}from"./vendor-fortawesome-fc4b3a41.js";import{_ as O,C as Y}from"./index-c94f8df4.js";import{_ as ee}from"./dynamic-import-helper-be004503.js";import{_ as W,u as m,l as r,m as g,x as c,E as o,B as a,F as w,G as n,A as f,a2 as te,a3 as ne,N as oe,z as b}from"./vendor-50125810.js";const ae={props:{webTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},se=W(ae,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/WebThemeConfigMixin.vue"]]),le={name:"WebThemeFallback",mixins:[se]},re={class:"web-theme-fallback"},ie={key:1};function ue(t,e,u,B,V,h){const p=m("openwb-base-alert"),l=m("openwb-base-textarea");return r(),g("div",re,[Object.keys(t.webTheme.configuration).length==0?(r(),c(p,{key:0,subtype:"info"},{default:o(()=>[a(' Das Web Theme "'+w(t.webTheme.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(r(),g("div",ie,[n(p,{subtype:"warning"},{default:o(()=>[a(' Es wurde keine Konfigurationsseite für das Web Theme "'+w(t.webTheme.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(l,{title:"Theme Konfiguration",subtype:"json","model-value":t.webTheme.configuration,"onUpdate:modelValue":e[0]||(e[0]=_=>t.updateConfiguration(_,"configuration"))},{help:o(()=>[...e[1]||(e[1]=[a(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),n(p,{subtype:"info"},{default:o(()=>[f("pre",null,w(JSON.stringify(t.webTheme.configuration,void 0,2)),1)]),_:1})]))])}const de=W(le,[["render",ue],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeFallback.vue"]]);J.add(I,x);const ge={name:"OpenwbWebThemeProxy",components:{FontAwesomeIcon:F},props:{webTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{getThemeComponent(){return console.debug(`loading web theme: ${this.webTheme.type}`),te({loader:()=>ee(Object.assign({"./koala/webTheme.vue":()=>O(()=>import("./webTheme-2a8c5ed1.js"),["assets/webTheme-2a8c5ed1.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./standard_legacy/webTheme.vue":()=>O(()=>import("./webTheme-de540af8.js"),["assets/webTheme-de540af8.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.webTheme.type}/webTheme.vue`),errorComponent:de})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function me(t,e,u,B,V,h){const p=m("font-awesome-icon"),l=m("openwb-base-alert"),_=m("openwb-base-heading");return r(),g(oe,null,[u.webTheme.official?(r(),c(l,{key:0,subtype:"success"},{default:o(()=>[n(p,{icon:["fas","certificate"]}),a(' Das ausgewählte Web Theme "'+w(u.webTheme.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(r(),c(l,{key:1,subtype:"info"},{default:o(()=>[n(p,{icon:["fas","people-group"]}),e[1]||(e[1]=a(" Das ausgewählte Theme wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ",-1))]),_:1})),n(_,null,{default:o(()=>[a(' Einstellungen für Web Theme "'+w(u.webTheme.name)+'" ',1)]),_:1}),(r(),c(ne(h.getThemeComponent()),{"web-theme":u.webTheme,"onUpdate:configuration":e[0]||(e[0]=v=>h.updateConfiguration(v))},null,40,["web-theme"]))],64)}const pe=W(ge,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeProxy.vue"]]);J.add(j,H,K,Z,Q,X);const be={name:"OpenwbGeneralConfigView",components:{OpenwbWebThemeProxy:pe,FontAwesomeIcon:F},mixins:[Y],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/charge_log_data_config","openWB/general/control_interval","openWB/general/extern","openWB/general/external_buttons_hw","openWB/general/grid_protection_configured","openWB/general/http_api","openWB/general/modbus_control","openWB/general/notifications/configuration","openWB/general/notifications/plug","openWB/general/notifications/selected","openWB/general/notifications/smart_home","openWB/general/notifications/start_charging","openWB/general/notifications/stop_charging","openWB/general/price_kwh","openWB/general/range_unit","openWB/general/web_theme","openWB/system/configurable/web_themes","openWB/system/ip_address"]}},computed:{webThemeList:{get(){return this.$store.state.mqtt["openWB/system/configurable/web_themes"]}},webThemeGroupList:{get(){var e;let t=[{label:"openWB",options:[]},{label:"Community",options:[]}];return(e=this.webThemeList)==null||e.forEach(u=>{u.official===!0?t[0].options.push(u):t[1].options.push(u)}),t}}},methods:{getIpAddress(){return this.$store.state.mqtt["openWB/system/ip_address"]},getWebThemeDefaults(t){const e=this.webThemeList.find(u=>u.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for web theme type!",t),{})},updateSelectedWebTheme(t){this.updateState("openWB/general/web_theme",this.getWebThemeDefaults(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},fe={class:"generalConfig"},_e={name:"generalConfigForm"},ce={key:0},he={key:1},we={key:1},ve={key:0},We={key:0},Be={key:1},Ve={key:0},ye={key:1},Se={key:0},ke={key:0},Te={key:1};function $e(t,e,u,B,V,h){const p=m("openwb-base-alert"),l=m("openwb-base-button-group-input"),_=m("openwb-base-card"),v=m("openwb-base-heading"),R=m("openwb-base-select-input"),M=m("openwb-web-theme-proxy"),d=m("font-awesome-icon"),G=m("openwb-base-submit-buttons");return r(),g("div",fe,[f("form",_e,[n(_,{title:"Steuerungsmodus"},{default:o(()=>[n(p,{subtype:"info"},{default:o(()=>[...e[27]||(e[27]=[f("p",null,' Wird für den Steuerungsmodus "primary" gewählt, übernimmt diese openWB die alleinige Regelung und steuert ggf. vorhandene weitere openWB (z.B. secondary openWB, openWB Pro, Satellit u.a.) fern. Sie werden in den Ladepunkt-Einstellungen der primary-openWB hinzugefügt. ',-1),f("p",null,' Wird für den Steuerungsmodus "secondary" gewählt, übernimmt diese openWB keine Regelung und muss von einer anderen primary openWB ferngesteuert werden. Wichtig ist, dass in der secondary-openWB eine "interne openWB" mit der korrekten Bauart (= openWB-Hardwarevariante z.B. "Custom, Standard, Standard+, Duo, Buchse") konfiguriert ist. Bei einer Duo sind zwei "interne openWB" zu konfigurieren. Im "secondary"-Modus bleiben alle ausgeblendeten Einstellungen unbeachtet. ',-1)])]),_:1}),n(l,{title:"Steuerungsmodus",buttons:[{buttonValue:!1,text:"primary",class:"btn-outline-danger"},{buttonValue:!0,text:"secondary",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/extern"],"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateState("openWB/general/extern",i))},null,8,["model-value"]),u.installAssistantActive?b("",!0):(r(),g("div",ce,[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),c(l,{key:0,title:"Steuerung über Modbus als secondary",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/modbus_control"],"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateState("openWB/general/modbus_control",i))},{help:o(()=>[...e[28]||(e[28]=[a(" Im secondary-Modus kann die openWB über die Modbus-Schnittstelle gesteuert werden. Die Register sind ",-1),f("a",{href:"https://openwb.de/main/wp-content/uploads/2023/10/ModbusTCP-openWB-series2-Pro-1.pdf",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),a(" dokumentiert. Bei aktivierter Modbus-Schnittstelle darf die openWB nicht von einer primary-openWB gesteuert werden. ",-1)])]),_:1},8,["model-value"])):b("",!0),t.$store.state.mqtt["openWB/general/extern"]===!0&&t.$store.state.mqtt["openWB/general/modbus_control"]!==!0?(r(),g("div",he,[n(p,{subtype:"info",class:"mb-2"},{default:o(()=>[...e[29]||(e[29]=[a(' Wenn die Steuerung über Modbus auf "Aus" geändert wird, muss danach ein Neustart durchgeführt werden! ',-1)])]),_:1})])):b("",!0)])),u.installAssistantActive?b("",!0):(r(),g("div",we,[n(l,{title:"HTTP-API",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/http_api"],"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateState("openWB/general/http_api",i))},{help:o(()=>[...e[30]||(e[30]=[f("p",null,[a(" Mit der HTTP-API kann man den Wert eines MQTT-Topics per HTTPs abfragen oder neu setzen. Die Schnittstelle ist "),f("a",{href:"https://openwb.de/main/wp-content/uploads/2025/02/HTTP-API-fuer-openWB-series1-und-series2.pdf",target:"_blank",rel:"noopener noreferrer"}," hier "),a(" dokumentiert. ")],-1)])]),_:1},8,["model-value"])]))]),_:1}),u.installAssistantActive?b("",!0):(r(),g("div",ve,[n(_,{title:"Hardware"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),g("div",We,[n(p,{subtype:"info"},{default:o(()=>[...e[31]||(e[31]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):b("",!0),t.$store.state.mqtt["openWB/general/extern"]===!1?(r(),g("div",Be,[n(l,{title:"Geschwindigkeit Regelintervall",buttons:[{buttonValue:10,text:"Normal",class:"btn-outline-success"},{buttonValue:20,text:"Langsam",class:"btn-outline-warning"},{buttonValue:60,text:"Sehr Langsam",class:"btn-outline-danger"}],"model-value":t.$store.state.mqtt["openWB/general/control_interval"],"onUpdate:modelValue":e[3]||(e[3]=i=>t.updateState("openWB/general/control_interval",i))},{help:o(()=>[...e[32]||(e[32]=[a(' Sollten Probleme oder Fehlermeldungen auftauchen, stelle bitte zunächst das Regelintervall auf "Normal". Werden Module genutzt, welche z.B. eine Online-API zur Abfrage nutzen (höhere Latenzzeiten) oder möchte man weniger Regeleingriffe, so kann man das Regelintervall auf "Langsam" (20 Sekunden) herabsetzen. Die Einstellung „Sehr Langsam“ führt zu einer Regelzeit von 60 Sekunden.',-1),f("br",null,null,-1),f("span",{class:"text-danger"},' Nicht nur die Regelung der PV geführten Ladung, sondern auch die Ladestromänderung, beispielsweise “Stop“ etc., werden dann nur noch in diesem Intervall ausgeführt. Die Regelung wird insgesamt träger. Solange es keinen triftigen Grund gibt, sollte "Normal" gewählt werden. ',-1)])]),_:1},8,["model-value"]),n(l,{title:"Netzschutz",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/grid_protection_configured"],"onUpdate:modelValue":e[4]||(e[4]=i=>t.updateState("openWB/general/grid_protection_configured",i))},{help:o(()=>[...e[33]||(e[33]=[a(' Diese Option ist standardmäßig aktiviert und sollte so belassen werden. Bei Unterschreitung einer kritischen Frequenz des Stromnetzes wird die Ladung nach einer zufälligen Zeit zwischen 1 und 90 Sekunden pausiert. Der Lademodus wechselt auf "Stop". Sobald die Frequenz wieder in einem normalen Bereich ist wird automatisch der zuletzt gewählte Lademodus wieder aktiviert. Ebenso wird die Ladung bei Überschreiten von 51,8 Hz unterbrochen. Dies ist dann der Fall, wenn der Energieversorger Wartungsarbeiten am (Teil-)Netz durchführt und auf einen vorübergehenden Generator-Betrieb umschaltet. Die Erhöhung der Frequenz wird durchgeführt, um die PV Anlagen abzuschalten.',-1),f("br",null,null,-1),f("span",{class:"text-danger"}," Die Option ist nur aktiv, wenn der EVU-Zähler die Frequenz übermittelt. ",-1)])]),_:1},8,["model-value"])])):b("",!0)]),_:1})])),u.installAssistantActive?b("",!0):(r(),c(_,{key:1,title:"Darstellung"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),g("div",Ve,[n(p,{subtype:"info"},{default:o(()=>[...e[34]||(e[34]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(r(),g("div",ye,[n(v,{class:"mt-0"},{default:o(()=>[...e[35]||(e[35]=[a(" Hauptseite ",-1)])]),_:1}),t.$store.state.mqtt["openWB/general/web_theme"]!==void 0?(r(),g("div",Se,[n(R,{class:"mb-2",title:"Theme",groups:h.webThemeGroupList,"model-value":t.$store.state.mqtt["openWB/general/web_theme"].type,"onUpdate:modelValue":e[5]||(e[5]=i=>h.updateSelectedWebTheme(i))},null,8,["groups","model-value"]),t.$store.state.mqtt["openWB/general/web_theme"].type?(r(),c(M,{key:0,"web-theme":t.$store.state.mqtt["openWB/general/web_theme"],"onUpdate:configuration":e[6]||(e[6]=i=>h.updateConfiguration("openWB/general/web_theme",i))},null,8,["web-theme"])):b("",!0)])):b("",!0)]))]),_:1})),u.installAssistantActive?b("",!0):(r(),c(_,{key:2,title:"Lade-Protokoll"},{default:o(()=>{var i,y,S,k,T,$,q,C,N,z,A,D,E,U,P,L;return[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),g("div",ke,[n(p,{subtype:"info"},{default:o(()=>[...e[36]||(e[36]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(r(),g("div",Te,[n(l,{title:"Einheit für Entfernungen","model-value":t.$store.state.mqtt["openWB/general/range_unit"],buttons:[{buttonValue:"km",text:"Kilometer"},{buttonValue:"mi",text:"Meilen"}],"onUpdate:modelValue":e[7]||(e[7]=s=>t.updateState("openWB/general/range_unit",s))},null,8,["model-value"]),n(v,null,{default:o(()=>[...e[37]||(e[37]=[a(" Auswahl der Datenfelder ",-1)])]),_:1}),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(i=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:i.time_begin,"onUpdate:modelValue":e[8]||(e[8]=s=>t.updateState("openWB/general/charge_log_data_config",s,"time_begin"))},{title:o(()=>[n(d,{icon:["fas","calendar"]}),e[38]||(e[38]=a(" Beginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(y=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:y.time_end,"onUpdate:modelValue":e[9]||(e[9]=s=>t.updateState("openWB/general/charge_log_data_config",s,"time_end"))},{title:o(()=>[n(d,{icon:["fas","calendar"]}),e[39]||(e[39]=a(" Ende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(S=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:S.time_time_charged,"onUpdate:modelValue":e[10]||(e[10]=s=>t.updateState("openWB/general/charge_log_data_config",s,"time_time_charged"))},{title:o(()=>[n(d,{icon:["fas","clock"]}),e[40]||(e[40]=a(" Dauer ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(k=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:k.data_costs,"onUpdate:modelValue":e[11]||(e[11]=s=>t.updateState("openWB/general/charge_log_data_config",s,"data_costs"))},{title:o(()=>[n(d,{icon:["fas","coins"]}),e[41]||(e[41]=a(" Kosten ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(T=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:T.data_power_source,"onUpdate:modelValue":e[12]||(e[12]=s=>t.updateState("openWB/general/charge_log_data_config",s,"data_power_source"))},{title:o(()=>[n(d,{icon:["fas","pie-chart"]}),e[42]||(e[42]=a(" Energieaufteilung ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":($=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:$.vehicle_name,"onUpdate:modelValue":e[13]||(e[13]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_name"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[43]||(e[43]=a(" Name ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(q=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:q.vehicle_chargemode,"onUpdate:modelValue":e[14]||(e[14]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_chargemode"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[44]||(e[44]=a(" Lademodus ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(C=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:C.vehicle_prio,"onUpdate:modelValue":e[15]||(e[15]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_prio"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[45]||(e[45]=a(" Priorität ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(N=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:N.vehicle_rfid,"onUpdate:modelValue":e[16]||(e[16]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_rfid"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[46]||(e[46]=a(" ID-Tag ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(z=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:z.vehicle_soc_at_start,"onUpdate:modelValue":e[17]||(e[17]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_soc_at_start"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[47]||(e[47]=a(" SoC bei Ladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(A=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:A.vehicle_soc_at_end,"onUpdate:modelValue":e[18]||(e[18]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_soc_at_end"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[48]||(e[48]=a(" SoC bei Ladende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(D=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:D.chargepoint_name,"onUpdate:modelValue":e[19]||(e[19]=s=>t.updateState("openWB/general/charge_log_data_config",s,"chargepoint_name"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[49]||(e[49]=a(" Name ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(E=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:E.chargepoint_serial_number,"onUpdate:modelValue":e[20]||(e[20]=s=>t.updateState("openWB/general/charge_log_data_config",s,"chargepoint_serial_number"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[50]||(e[50]=a(" Seriennummer ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(U=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:U.data_imported_since_mode_switch,"onUpdate:modelValue":e[21]||(e[21]=s=>t.updateState("openWB/general/charge_log_data_config",s,"data_imported_since_mode_switch"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[51]||(e[51]=a(" Geladene Energie ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(P=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:P.chargepoint_imported_at_start,"onUpdate:modelValue":e[22]||(e[22]=s=>t.updateState("openWB/general/charge_log_data_config",s,"chargepoint_imported_at_start"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[52]||(e[52]=a(" Zählerstand bei Ladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(L=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:L.chargepoint_imported_at_end,"onUpdate:modelValue":e[23]||(e[23]=s=>t.updateState("openWB/general/charge_log_data_config",s,"chargepoint_imported_at_end"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[53]||(e[53]=a(" Zählerstand bei Ladeende ",-1))]),_:1},8,["model-value"])]))]}),_:1})),n(G,{"form-name":"generalConfigForm",onSave:e[24]||(e[24]=i=>t.$emit("save")),onReset:e[25]||(e[25]=i=>t.$emit("reset")),onDefaults:e[26]||(e[26]=i=>t.$emit("defaults"))})])])}const qe=W(be,[["render",$e],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralConfig.vue"]]),De=Object.freeze(Object.defineProperty({__proto__:null,default:qe},Symbol.toStringTag,{value:"Module"}));export{qe as G,se as W,De as a}; diff --git a/web/settings/assets/GeneralConfig-cc87a1f9.js b/web/settings/assets/GeneralConfig-cc87a1f9.js deleted file mode 100644 index 5a78f0563f..0000000000 --- a/web/settings/assets/GeneralConfig-cc87a1f9.js +++ /dev/null @@ -1 +0,0 @@ -import{l as J,a6 as I,a7 as x,F,a0 as j,Q as H,E as K,ag as Z,ah as Q,ai as X}from"./vendor-fortawesome-a02b6813.js";import{_ as O,C as Y}from"./index-8dd8e083.js";import{_ as ee}from"./dynamic-import-helper-be004503.js";import{_ as W,u as m,l as r,m as g,x as c,E as o,B as a,F as w,G as n,A as f,a2 as te,a3 as ne,N as oe,z as b}from"./vendor-25d394b4.js";const ae={props:{webTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},se=W(ae,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/WebThemeConfigMixin.vue"]]),le={name:"WebThemeFallback",mixins:[se]},re={class:"web-theme-fallback"},ie={key:1};function ue(t,e,u,B,V,h){const p=m("openwb-base-alert"),l=m("openwb-base-textarea");return r(),g("div",re,[Object.keys(t.webTheme.configuration).length==0?(r(),c(p,{key:0,subtype:"info"},{default:o(()=>[a(' Das Web Theme "'+w(t.webTheme.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(r(),g("div",ie,[n(p,{subtype:"warning"},{default:o(()=>[a(' Es wurde keine Konfigurationsseite für das Web Theme "'+w(t.webTheme.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(l,{title:"Theme Konfiguration",subtype:"json","model-value":t.webTheme.configuration,"onUpdate:modelValue":e[0]||(e[0]=_=>t.updateConfiguration(_,"configuration"))},{help:o(()=>e[1]||(e[1]=[a(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),n(p,{subtype:"info"},{default:o(()=>[f("pre",null,w(JSON.stringify(t.webTheme.configuration,void 0,2)),1)]),_:1})]))])}const de=W(le,[["render",ue],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeFallback.vue"]]);J.add(I,x);const ge={name:"OpenwbWebThemeProxy",components:{FontAwesomeIcon:F},props:{webTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{getThemeComponent(){return console.debug(`loading web theme: ${this.webTheme.type}`),te({loader:()=>ee(Object.assign({"./koala/webTheme.vue":()=>O(()=>import("./webTheme-5cb70cc5.js"),["assets/webTheme-5cb70cc5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./standard_legacy/webTheme.vue":()=>O(()=>import("./webTheme-3d6548f9.js"),["assets/webTheme-3d6548f9.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.webTheme.type}/webTheme.vue`),errorComponent:de})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function me(t,e,u,B,V,h){const p=m("font-awesome-icon"),l=m("openwb-base-alert"),_=m("openwb-base-heading");return r(),g(oe,null,[u.webTheme.official?(r(),c(l,{key:0,subtype:"success"},{default:o(()=>[n(p,{icon:["fas","certificate"]}),a(' Das ausgewählte Web Theme "'+w(u.webTheme.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(r(),c(l,{key:1,subtype:"info"},{default:o(()=>[n(p,{icon:["fas","people-group"]}),e[1]||(e[1]=a(" Das ausgewählte Theme wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ",-1))]),_:1,__:[1]})),n(_,null,{default:o(()=>[a(' Einstellungen für Web Theme "'+w(u.webTheme.name)+'" ',1)]),_:1}),(r(),c(ne(h.getThemeComponent()),{"web-theme":u.webTheme,"onUpdate:configuration":e[0]||(e[0]=v=>h.updateConfiguration(v))},null,40,["web-theme"]))],64)}const pe=W(ge,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeProxy.vue"]]);J.add(j,H,K,Z,Q,X);const be={name:"OpenwbGeneralConfigView",components:{OpenwbWebThemeProxy:pe,FontAwesomeIcon:F},mixins:[Y],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/charge_log_data_config","openWB/general/control_interval","openWB/general/extern","openWB/general/external_buttons_hw","openWB/general/grid_protection_configured","openWB/general/http_api","openWB/general/modbus_control","openWB/general/notifications/configuration","openWB/general/notifications/plug","openWB/general/notifications/selected","openWB/general/notifications/smart_home","openWB/general/notifications/start_charging","openWB/general/notifications/stop_charging","openWB/general/price_kwh","openWB/general/range_unit","openWB/general/web_theme","openWB/system/configurable/web_themes","openWB/system/ip_address"]}},computed:{webThemeList:{get(){return this.$store.state.mqtt["openWB/system/configurable/web_themes"]}},webThemeGroupList:{get(){var e;let t=[{label:"openWB",options:[]},{label:"Community",options:[]}];return(e=this.webThemeList)==null||e.forEach(u=>{u.official===!0?t[0].options.push(u):t[1].options.push(u)}),t}}},methods:{getIpAddress(){return this.$store.state.mqtt["openWB/system/ip_address"]},getWebThemeDefaults(t){const e=this.webThemeList.find(u=>u.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for web theme type!",t),{})},updateSelectedWebTheme(t){this.updateState("openWB/general/web_theme",this.getWebThemeDefaults(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},fe={class:"generalConfig"},_e={name:"generalConfigForm"},ce={key:0},he={key:1},we={key:1},ve={key:0},We={key:0},Be={key:1},Ve={key:0},ye={key:1},Se={key:0},ke={key:0},Te={key:1};function $e(t,e,u,B,V,h){const p=m("openwb-base-alert"),l=m("openwb-base-button-group-input"),_=m("openwb-base-card"),v=m("openwb-base-heading"),R=m("openwb-base-select-input"),M=m("openwb-web-theme-proxy"),d=m("font-awesome-icon"),G=m("openwb-base-submit-buttons");return r(),g("div",fe,[f("form",_e,[n(_,{title:"Steuerungsmodus"},{default:o(()=>[n(p,{subtype:"info"},{default:o(()=>e[27]||(e[27]=[f("p",null,' Wird für den Steuerungsmodus "primary" gewählt, übernimmt diese openWB die alleinige Regelung und steuert ggf. vorhandene weitere openWB (z.B. secondary openWB, openWB Pro, Satellit u.a.) fern. Sie werden in den Ladepunkt-Einstellungen der primary-openWB hinzugefügt. ',-1),f("p",null,' Wird für den Steuerungsmodus "secondary" gewählt, übernimmt diese openWB keine Regelung und muss von einer anderen primary openWB ferngesteuert werden. Wichtig ist, dass in der secondary-openWB eine "interne openWB" mit der korrekten Bauart (= openWB-Hardwarevariante z.B. "Custom, Standard, Standard+, Duo, Buchse") konfiguriert ist. Bei einer Duo sind zwei "interne openWB" zu konfigurieren. Im "secondary"-Modus bleiben alle ausgeblendeten Einstellungen unbeachtet. ',-1)])),_:1,__:[27]}),n(l,{title:"Steuerungsmodus",buttons:[{buttonValue:!1,text:"primary",class:"btn-outline-danger"},{buttonValue:!0,text:"secondary",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/extern"],"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateState("openWB/general/extern",i))},null,8,["model-value"]),u.installAssistantActive?b("",!0):(r(),g("div",ce,[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),c(l,{key:0,title:"Steuerung über Modbus als secondary",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/modbus_control"],"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateState("openWB/general/modbus_control",i))},{help:o(()=>e[28]||(e[28]=[a(" Im secondary-Modus kann die openWB über die Modbus-Schnittstelle gesteuert werden. Die Register sind ",-1),f("a",{href:"https://openwb.de/main/wp-content/uploads/2023/10/ModbusTCP-openWB-series2-Pro-1.pdf",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),a(" dokumentiert. Bei aktivierter Modbus-Schnittstelle darf die openWB nicht von einer primary-openWB gesteuert werden. ",-1)])),_:1},8,["model-value"])):b("",!0),t.$store.state.mqtt["openWB/general/extern"]===!0&&t.$store.state.mqtt["openWB/general/modbus_control"]!==!0?(r(),g("div",he,[n(p,{subtype:"info",class:"mb-2"},{default:o(()=>e[29]||(e[29]=[a(' Wenn die Steuerung über Modbus auf "Aus" geändert wird, muss danach ein Neustart durchgeführt werden! ',-1)])),_:1,__:[29]})])):b("",!0)])),u.installAssistantActive?b("",!0):(r(),g("div",we,[n(l,{title:"HTTP-API",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/http_api"],"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateState("openWB/general/http_api",i))},{help:o(()=>e[30]||(e[30]=[f("p",null,[a(" Mit der HTTP-API kann man den Wert eines MQTT-Topics per HTTPs abfragen oder neu setzen. Die Schnittstelle ist "),f("a",{href:"https://openwb.de/main/wp-content/uploads/2025/02/HTTP-API-fuer-openWB-series1-und-series2.pdf",target:"_blank",rel:"noopener noreferrer"}," hier "),a(" dokumentiert. ")],-1)])),_:1},8,["model-value"])]))]),_:1}),u.installAssistantActive?b("",!0):(r(),g("div",ve,[n(_,{title:"Hardware"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),g("div",We,[n(p,{subtype:"info"},{default:o(()=>e[31]||(e[31]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[31]})])):b("",!0),t.$store.state.mqtt["openWB/general/extern"]===!1?(r(),g("div",Be,[n(l,{title:"Geschwindigkeit Regelintervall",buttons:[{buttonValue:10,text:"Normal",class:"btn-outline-success"},{buttonValue:20,text:"Langsam",class:"btn-outline-warning"},{buttonValue:60,text:"Sehr Langsam",class:"btn-outline-danger"}],"model-value":t.$store.state.mqtt["openWB/general/control_interval"],"onUpdate:modelValue":e[3]||(e[3]=i=>t.updateState("openWB/general/control_interval",i))},{help:o(()=>e[32]||(e[32]=[a(' Sollten Probleme oder Fehlermeldungen auftauchen, stelle bitte zunächst das Regelintervall auf "Normal". Werden Module genutzt, welche z.B. eine Online-API zur Abfrage nutzen (höhere Latenzzeiten) oder möchte man weniger Regeleingriffe, so kann man das Regelintervall auf "Langsam" (20 Sekunden) herabsetzen. Die Einstellung „Sehr Langsam“ führt zu einer Regelzeit von 60 Sekunden.',-1),f("br",null,null,-1),f("span",{class:"text-danger"},' Nicht nur die Regelung der PV geführten Ladung, sondern auch die Ladestromänderung, beispielsweise “Stop“ etc., werden dann nur noch in diesem Intervall ausgeführt. Die Regelung wird insgesamt träger. Solange es keinen triftigen Grund gibt, sollte "Normal" gewählt werden. ',-1)])),_:1},8,["model-value"]),n(l,{title:"Netzschutz",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/grid_protection_configured"],"onUpdate:modelValue":e[4]||(e[4]=i=>t.updateState("openWB/general/grid_protection_configured",i))},{help:o(()=>e[33]||(e[33]=[a(' Diese Option ist standardmäßig aktiviert und sollte so belassen werden. Bei Unterschreitung einer kritischen Frequenz des Stromnetzes wird die Ladung nach einer zufälligen Zeit zwischen 1 und 90 Sekunden pausiert. Der Lademodus wechselt auf "Stop". Sobald die Frequenz wieder in einem normalen Bereich ist wird automatisch der zuletzt gewählte Lademodus wieder aktiviert. Ebenso wird die Ladung bei Überschreiten von 51,8 Hz unterbrochen. Dies ist dann der Fall, wenn der Energieversorger Wartungsarbeiten am (Teil-)Netz durchführt und auf einen vorübergehenden Generator-Betrieb umschaltet. Die Erhöhung der Frequenz wird durchgeführt, um die PV Anlagen abzuschalten.',-1),f("br",null,null,-1),f("span",{class:"text-danger"}," Die Option ist nur aktiv, wenn der EVU-Zähler die Frequenz übermittelt. ",-1)])),_:1},8,["model-value"])])):b("",!0)]),_:1})])),u.installAssistantActive?b("",!0):(r(),c(_,{key:1,title:"Darstellung"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),g("div",Ve,[n(p,{subtype:"info"},{default:o(()=>e[34]||(e[34]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[34]})])):(r(),g("div",ye,[n(v,{class:"mt-0"},{default:o(()=>e[35]||(e[35]=[a(" Hauptseite ",-1)])),_:1,__:[35]}),t.$store.state.mqtt["openWB/general/web_theme"]!==void 0?(r(),g("div",Se,[n(R,{class:"mb-2",title:"Theme",groups:h.webThemeGroupList,"model-value":t.$store.state.mqtt["openWB/general/web_theme"].type,"onUpdate:modelValue":e[5]||(e[5]=i=>h.updateSelectedWebTheme(i))},null,8,["groups","model-value"]),t.$store.state.mqtt["openWB/general/web_theme"].type?(r(),c(M,{key:0,"web-theme":t.$store.state.mqtt["openWB/general/web_theme"],"onUpdate:configuration":e[6]||(e[6]=i=>h.updateConfiguration("openWB/general/web_theme",i))},null,8,["web-theme"])):b("",!0)])):b("",!0)]))]),_:1})),u.installAssistantActive?b("",!0):(r(),c(_,{key:2,title:"Lade-Protokoll"},{default:o(()=>{var i,y,S,k,T,$,q,C,N,z,A,D,E,U,P,L;return[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),g("div",ke,[n(p,{subtype:"info"},{default:o(()=>e[36]||(e[36]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[36]})])):(r(),g("div",Te,[n(l,{title:"Einheit für Entfernungen","model-value":t.$store.state.mqtt["openWB/general/range_unit"],buttons:[{buttonValue:"km",text:"Kilometer"},{buttonValue:"mi",text:"Meilen"}],"onUpdate:modelValue":e[7]||(e[7]=s=>t.updateState("openWB/general/range_unit",s))},null,8,["model-value"]),n(v,null,{default:o(()=>e[37]||(e[37]=[a(" Auswahl der Datenfelder ",-1)])),_:1,__:[37]}),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(i=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:i.time_begin,"onUpdate:modelValue":e[8]||(e[8]=s=>t.updateState("openWB/general/charge_log_data_config",s,"time_begin"))},{title:o(()=>[n(d,{icon:["fas","calendar"]}),e[38]||(e[38]=a(" Beginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(y=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:y.time_end,"onUpdate:modelValue":e[9]||(e[9]=s=>t.updateState("openWB/general/charge_log_data_config",s,"time_end"))},{title:o(()=>[n(d,{icon:["fas","calendar"]}),e[39]||(e[39]=a(" Ende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(S=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:S.time_time_charged,"onUpdate:modelValue":e[10]||(e[10]=s=>t.updateState("openWB/general/charge_log_data_config",s,"time_time_charged"))},{title:o(()=>[n(d,{icon:["fas","clock"]}),e[40]||(e[40]=a(" Dauer ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(k=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:k.data_costs,"onUpdate:modelValue":e[11]||(e[11]=s=>t.updateState("openWB/general/charge_log_data_config",s,"data_costs"))},{title:o(()=>[n(d,{icon:["fas","coins"]}),e[41]||(e[41]=a(" Kosten ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(T=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:T.data_power_source,"onUpdate:modelValue":e[12]||(e[12]=s=>t.updateState("openWB/general/charge_log_data_config",s,"data_power_source"))},{title:o(()=>[n(d,{icon:["fas","pie-chart"]}),e[42]||(e[42]=a(" Energieaufteilung ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":($=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:$.vehicle_name,"onUpdate:modelValue":e[13]||(e[13]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_name"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[43]||(e[43]=a(" Name ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(q=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:q.vehicle_chargemode,"onUpdate:modelValue":e[14]||(e[14]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_chargemode"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[44]||(e[44]=a(" Lademodus ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(C=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:C.vehicle_prio,"onUpdate:modelValue":e[15]||(e[15]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_prio"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[45]||(e[45]=a(" Priorität ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(N=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:N.vehicle_rfid,"onUpdate:modelValue":e[16]||(e[16]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_rfid"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[46]||(e[46]=a(" ID-Tag ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(z=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:z.vehicle_soc_at_start,"onUpdate:modelValue":e[17]||(e[17]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_soc_at_start"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[47]||(e[47]=a(" SoC bei Ladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(A=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:A.vehicle_soc_at_end,"onUpdate:modelValue":e[18]||(e[18]=s=>t.updateState("openWB/general/charge_log_data_config",s,"vehicle_soc_at_end"))},{title:o(()=>[n(d,{icon:["fas","car"]}),e[48]||(e[48]=a(" SoC bei Ladende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(D=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:D.chargepoint_name,"onUpdate:modelValue":e[19]||(e[19]=s=>t.updateState("openWB/general/charge_log_data_config",s,"chargepoint_name"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[49]||(e[49]=a(" Name ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(E=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:E.chargepoint_serial_number,"onUpdate:modelValue":e[20]||(e[20]=s=>t.updateState("openWB/general/charge_log_data_config",s,"chargepoint_serial_number"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[50]||(e[50]=a(" Seriennummer ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(U=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:U.data_imported_since_mode_switch,"onUpdate:modelValue":e[21]||(e[21]=s=>t.updateState("openWB/general/charge_log_data_config",s,"data_imported_since_mode_switch"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[51]||(e[51]=a(" Geladene Energie ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(P=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:P.chargepoint_imported_at_start,"onUpdate:modelValue":e[22]||(e[22]=s=>t.updateState("openWB/general/charge_log_data_config",s,"chargepoint_imported_at_start"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[52]||(e[52]=a(" Zählerstand bei Ladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(L=t.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:L.chargepoint_imported_at_end,"onUpdate:modelValue":e[23]||(e[23]=s=>t.updateState("openWB/general/charge_log_data_config",s,"chargepoint_imported_at_end"))},{title:o(()=>[n(d,{icon:["fas","charging-station"]}),e[53]||(e[53]=a(" Zählerstand bei Ladeende ",-1))]),_:1},8,["model-value"])]))]}),_:1})),n(G,{"form-name":"generalConfigForm",onSave:e[24]||(e[24]=i=>t.$emit("save")),onReset:e[25]||(e[25]=i=>t.$emit("reset")),onDefaults:e[26]||(e[26]=i=>t.$emit("defaults"))})])])}const qe=W(be,[["render",$e],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralConfig.vue"]]),De=Object.freeze(Object.defineProperty({__proto__:null,default:qe},Symbol.toStringTag,{value:"Module"}));export{qe as G,se as W,De as a}; diff --git a/web/settings/assets/HardwareInstallation-8066ca79.js b/web/settings/assets/HardwareInstallation-8066ca79.js new file mode 100644 index 0000000000..6576a15a11 --- /dev/null +++ b/web/settings/assets/HardwareInstallation-8066ca79.js @@ -0,0 +1 @@ +import{l as S,d as U,y as q,aj as G,ab as N,_ as K,Z as F,Y as H,F as $}from"./vendor-fortawesome-fc4b3a41.js";import{_ as e,C as J}from"./index-c94f8df4.js";import{_ as x}from"./dynamic-import-helper-be004503.js";import{_ as I,u as p,l as v,m as g,x as E,E as r,B as d,F as f,G as u,A as c,a2 as z,a3 as Z,z as R,N as L,M as k,q as Y}from"./vendor-50125810.js";const Q={props:{device:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,o=void 0){this.$emit("update:configuration",{value:t,object:o})}}},B=I(Q,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/DeviceConfigMixin.vue"]]),X={name:"DeviceFallback",mixins:[B]},ee={class:"device-fallback"},oe={key:1};function te(t,o,i,m,s,n){const l=p("openwb-base-alert"),b=p("openwb-base-textarea");return v(),g("div",ee,[Object.keys(t.device.configuration).length==0?(v(),E(l,{key:0,subtype:"info"},{default:r(()=>[d(' Der Gerät-Typ "'+f(t.device.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(v(),g("div",oe,[u(l,{subtype:"warning"},{default:r(()=>[d(' Es wurde keine Konfigurationsseite für den Geräte-Typ "'+f(t.device.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),u(b,{title:"Konfiguration",subtype:"json","model-value":t.device.configuration,"onUpdate:modelValue":o[0]||(o[0]=T=>t.updateConfiguration(T,"configuration"))},{help:r(()=>[...o[1]||(o[1]=[d(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),u(l,{subtype:"info"},{default:r(()=>[c("pre",null,f(JSON.stringify(t.device.configuration,void 0,2)),1)]),_:1})]))])}const _e=I(X,[["render",te],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbDeviceConfigFallback.vue"]]),ie={mixins:[B],props:{component:{type:Object,required:!0}}},re=I(ie,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/ComponentConfigMixin.vue"]]),ne={name:"ComponentFallback",mixins:[re]},ue={class:"component-fallback"},de={key:1};function ve(t,o,i,m,s,n){const l=p("openwb-base-alert"),b=p("openwb-base-textarea");return v(),g("div",ue,[Object.keys(t.component.configuration).length==0?(v(),E(l,{key:0,subtype:"info"},{default:r(()=>[d(' Der Komponenten-Typ "'+f(t.component.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(v(),g("div",de,[u(l,{subtype:"warning"},{default:r(()=>[d(' Es wurde keine Konfigurationsseite für den Komponenten-Typ "'+f(t.component.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),u(b,{title:"Konfiguration",subtype:"json","model-value":t.component.configuration,"onUpdate:modelValue":o[0]||(o[0]=T=>t.updateConfiguration(T,"configuration"))},{help:r(()=>[...o[1]||(o[1]=[d(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),u(l,{subtype:"info"},{default:r(()=>[c("pre",null,f(JSON.stringify(t.component.configuration,void 0,2)),1)]),_:1})]))])}const se=I(ne,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbComponentConfigFallback.vue"]]),ae={name:"OpenwbConfigProxy",props:{device:{type:Object,required:!0},component:{type:Object,required:!1,default:void 0}},emits:["update:configuration"],methods:{getComponent(){var t;return console.debug(`loading component: ${this.device.type} / ${(t=this.component)==null?void 0:t.type}`),this.component!==void 0?z({loader:()=>x(Object.assign({"./algodue/algodue/device.vue":()=>e(()=>import("./device-80cfaffc.js"),["assets/device-80cfaffc.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./alpha_ess/alpha_ess/device.vue":()=>e(()=>import("./device-400899e6.js"),["assets/device-400899e6.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./ampere/ampere/device.vue":()=>e(()=>import("./device-4301268c.js"),["assets/device-4301268c.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./avm/avm/counter.vue":()=>e(()=>import("./counter-4eb55d38.js"),["assets/counter-4eb55d38.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./avm/avm/device.vue":()=>e(()=>import("./device-dc52892c.js"),["assets/device-dc52892c.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./azzurro_zcs/azzurro_zcs/device.vue":()=>e(()=>import("./device-2b1ae0bb.js"),["assets/device-2b1ae0bb.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./batterx/batterx/device.vue":()=>e(()=>import("./device-75b024ee.js"),["assets/device-75b024ee.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./benning/benning/device.vue":()=>e(()=>import("./device-25d2441f.js"),["assets/device-25d2441f.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./benning/benning/inverter.vue":()=>e(()=>import("./inverter-8ad0f9f7.js"),["assets/inverter-8ad0f9f7.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./byd/byd/device.vue":()=>e(()=>import("./device-99902fe5.js"),["assets/device-99902fe5.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./carlo_gavazzi/carlo_gavazzi/counter.vue":()=>e(()=>import("./counter-f47d34d5.js"),["assets/counter-f47d34d5.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./carlo_gavazzi/carlo_gavazzi/device.vue":()=>e(()=>import("./device-11bf5d7f.js"),["assets/device-11bf5d7f.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/bat.vue":()=>e(()=>import("./bat-bdf83b40.js"),["assets/bat-bdf83b40.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/counter.vue":()=>e(()=>import("./counter-4829f82d.js"),["assets/counter-4829f82d.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/device.vue":()=>e(()=>import("./device-095d94ba.js"),["assets/device-095d94ba.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/inverter.vue":()=>e(()=>import("./inverter-037d9ebd.js"),["assets/inverter-037d9ebd.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/counter.vue":()=>e(()=>import("./counter-1d22e45e.js"),["assets/counter-1d22e45e.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/device.vue":()=>e(()=>import("./device-8bca7e20.js"),["assets/device-8bca7e20.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/inverter.vue":()=>e(()=>import("./inverter-14c9afae.js"),["assets/inverter-14c9afae.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./e3dc/e3dc/device.vue":()=>e(()=>import("./device-659f1d77.js"),["assets/device-659f1d77.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./elgris/elgris/device.vue":()=>e(()=>import("./device-ca171f86.js"),["assets/device-ca171f86.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/counter.vue":()=>e(()=>import("./counter-9a7cb966.js"),["assets/counter-9a7cb966.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/device.vue":()=>e(()=>import("./device-e5ec8653.js"),["assets/device-e5ec8653.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/inverter.vue":()=>e(()=>import("./inverter-4c2e20ed.js"),["assets/inverter-4c2e20ed.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fems/fems/bat.vue":()=>e(()=>import("./bat-410d986a.js"),["assets/bat-410d986a.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fems/fems/device.vue":()=>e(()=>import("./device-99cb2dcd.js"),["assets/device-99cb2dcd.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/bat.vue":()=>e(()=>import("./bat-6b538fb2.js"),["assets/bat-6b538fb2.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/counter.vue":()=>e(()=>import("./counter-2b8e7c78.js"),["assets/counter-2b8e7c78.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/device.vue":()=>e(()=>import("./device-ef964622.js"),["assets/device-ef964622.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/inverter.vue":()=>e(()=>import("./inverter-43433c4d.js"),["assets/inverter-43433c4d.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/bat.vue":()=>e(()=>import("./bat-63b2083d.js"),["assets/bat-63b2083d.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/counter_sm.vue":()=>e(()=>import("./counter_sm-c036b032.js"),["assets/counter_sm-c036b032.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/device.vue":()=>e(()=>import("./device-d450da5d.js"),["assets/device-d450da5d.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/inverter_secondary.vue":()=>e(()=>import("./inverter_secondary-456c249b.js"),["assets/inverter_secondary-456c249b.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/bat.vue":()=>e(()=>import("./bat-2eb6e306.js"),["assets/bat-2eb6e306.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/counter.vue":()=>e(()=>import("./counter-de159ac4.js"),["assets/counter-de159ac4.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/device.vue":()=>e(()=>import("./device-ca2216bb.js"),["assets/device-ca2216bb.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/inverter.vue":()=>e(()=>import("./inverter-1287c8cd.js"),["assets/inverter-1287c8cd.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/bat.vue":()=>e(()=>import("./bat-e77edf27.js"),["assets/bat-e77edf27.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/counter.vue":()=>e(()=>import("./counter-f5251d3f.js"),["assets/counter-f5251d3f.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/device.vue":()=>e(()=>import("./device-c21b61c6.js"),["assets/device-c21b61c6.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/inverter.vue":()=>e(()=>import("./inverter-f4d336b7.js"),["assets/inverter-f4d336b7.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/bat.vue":()=>e(()=>import("./bat-d270e7cf.js"),["assets/bat-d270e7cf.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/counter.vue":()=>e(()=>import("./counter-74f24773.js"),["assets/counter-74f24773.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/device.vue":()=>e(()=>import("./device-063b8544.js"),["assets/device-063b8544.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/inverter.vue":()=>e(()=>import("./inverter-9961dcdb.js"),["assets/inverter-9961dcdb.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/virtual/counter.vue":()=>e(()=>import("./counter-3ca7ffbd.js"),["assets/counter-3ca7ffbd.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./good_we/good_we/bat.vue":()=>e(()=>import("./bat-460cfbf5.js"),["assets/bat-460cfbf5.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./good_we/good_we/device.vue":()=>e(()=>import("./device-ee7a56fb.js"),["assets/device-ee7a56fb.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./growatt/growatt/device.vue":()=>e(()=>import("./device-cc5378a8.js"),["assets/device-cc5378a8.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei/device.vue":()=>e(()=>import("./device-bd81fe78.js"),["assets/device-bd81fe78.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_emma/device.vue":()=>e(()=>import("./device-d3c47c07.js"),["assets/device-d3c47c07.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/bat.vue":()=>e(()=>import("./bat-6f26d004.js"),["assets/bat-6f26d004.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/counter.vue":()=>e(()=>import("./counter-b24acc4a.js"),["assets/counter-b24acc4a.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/device.vue":()=>e(()=>import("./device-23990b21.js"),["assets/device-23990b21.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/inverter.vue":()=>e(()=>import("./inverter-9120bfd2.js"),["assets/inverter-9120bfd2.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./janitza/janitza/counter.vue":()=>e(()=>import("./counter-c8857016.js"),["assets/counter-c8857016.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./janitza/janitza/device.vue":()=>e(()=>import("./device-a36af1b2.js"),["assets/device-a36af1b2.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kaco/kaco_tx/device.vue":()=>e(()=>import("./device-9fca3461.js"),["assets/device-9fca3461.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kaco/kaco_tx/inverter.vue":()=>e(()=>import("./inverter-7a061d6b.js"),["assets/inverter-7a061d6b.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/counter.vue":()=>e(()=>import("./counter-92b65758.js"),["assets/counter-92b65758.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/device.vue":()=>e(()=>import("./device-aa389719.js"),["assets/device-aa389719.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/inverter.vue":()=>e(()=>import("./inverter-ac4d7f34.js"),["assets/inverter-ac4d7f34.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko_old/device.vue":()=>e(()=>import("./device-3c0ce676.js"),["assets/device-3c0ce676.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_plenticore/counter.vue":()=>e(()=>import("./counter-955b7de4.js"),["assets/counter-955b7de4.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_plenticore/device.vue":()=>e(()=>import("./device-44029622.js"),["assets/device-44029622.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_sem/counter.vue":()=>e(()=>import("./counter-3a72c8c9.js"),["assets/counter-3a72c8c9.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_sem/device.vue":()=>e(()=>import("./device-671bcffc.js"),["assets/device-671bcffc.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_steca/device.vue":()=>e(()=>import("./device-8743d202.js"),["assets/device-8743d202.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_steca/inverter.vue":()=>e(()=>import("./inverter-fd3f7e7e.js"),["assets/inverter-fd3f7e7e.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./lg/lg/device.vue":()=>e(()=>import("./device-3ee6aa79.js"),["assets/device-3ee6aa79.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/bat.vue":()=>e(()=>import("./bat-5ab2250c.js"),["assets/bat-5ab2250c.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/counter.vue":()=>e(()=>import("./counter-71ead754.js"),["assets/counter-71ead754.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/device.vue":()=>e(()=>import("./device-46dae0da.js"),["assets/device-46dae0da.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/inverter.vue":()=>e(()=>import("./inverter-f8595260.js"),["assets/inverter-f8595260.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mystrom/mystrom/device.vue":()=>e(()=>import("./device-1cc93638.js"),["assets/device-1cc93638.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./nibe/nibe/counter.vue":()=>e(()=>import("./counter-a4bd8bd6.js"),["assets/counter-a4bd8bd6.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./nibe/nibe/device.vue":()=>e(()=>import("./device-fee0c0ea.js"),["assets/device-fee0c0ea.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./opendtu/opendtu/device.vue":()=>e(()=>import("./device-28e1a264.js"),["assets/device-28e1a264.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./opendtu/opendtu/inverter.vue":()=>e(()=>import("./inverter-42148877.js"),["assets/inverter-42148877.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_bat_kit/bat.vue":()=>e(()=>import("./bat-1ede89b7.js"),["assets/bat-1ede89b7.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_evu_kit/bat.vue":()=>e(()=>import("./bat-84dc10cd.js"),["assets/bat-84dc10cd.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_evu_kit/counter.vue":()=>e(()=>import("./counter-cb484254.js"),["assets/counter-cb484254.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_evu_kit/inverter.vue":()=>e(()=>import("./inverter-e73b2e99.js"),["assets/inverter-e73b2e99.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/bat.vue":()=>e(()=>import("./bat-60e92443.js"),["assets/bat-60e92443.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/consumption_counter.vue":()=>e(()=>import("./consumption_counter-4f8ba92c.js"),["assets/consumption_counter-4f8ba92c.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/counter.vue":()=>e(()=>import("./counter-19c86db9.js"),["assets/counter-19c86db9.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/device.vue":()=>e(()=>import("./device-881b7363.js"),["assets/device-881b7363.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/inverter.vue":()=>e(()=>import("./inverter-698ee7a4.js"),["assets/inverter-698ee7a4.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_pv_kit/inverter.vue":()=>e(()=>import("./inverter-25fc7f37.js"),["assets/inverter-25fc7f37.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./orno/orno/counter.vue":()=>e(()=>import("./counter-7d49c7a6.js"),["assets/counter-7d49c7a6.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./orno/orno/device.vue":()=>e(()=>import("./device-e99aa4c8.js"),["assets/device-e99aa4c8.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerdog/powerdog/counter.vue":()=>e(()=>import("./counter-4c3ca39c.js"),["assets/counter-4c3ca39c.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerdog/powerdog/device.vue":()=>e(()=>import("./device-c04b431d.js"),["assets/device-c04b431d.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/counter.vue":()=>e(()=>import("./counter-5cd5b153.js"),["assets/counter-5cd5b153.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/device.vue":()=>e(()=>import("./device-da0c44d0.js"),["assets/device-da0c44d0.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/inverter.vue":()=>e(()=>import("./inverter-61c893a1.js"),["assets/inverter-61c893a1.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./qcells/qcells/device.vue":()=>e(()=>import("./device-642a9f6f.js"),["assets/device-642a9f6f.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./rct/rct/device.vue":()=>e(()=>import("./device-3ae4b0dc.js"),["assets/device-3ae4b0dc.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./saxpower/saxpower/device.vue":()=>e(()=>import("./device-961232b3.js"),["assets/device-961232b3.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./shelly/shelly/counter.vue":()=>e(()=>import("./counter-d5daca07.js"),["assets/counter-d5daca07.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./shelly/shelly/device.vue":()=>e(()=>import("./device-c41d2ff7.js"),["assets/device-c41d2ff7.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens/device.vue":()=>e(()=>import("./device-fc594731.js"),["assets/device-fc594731.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens_sentron/device.vue":()=>e(()=>import("./device-5cab91ce.js"),["assets/device-5cab91ce.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/bat.vue":()=>e(()=>import("./bat-dfe36bde.js"),["assets/bat-dfe36bde.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/counter.vue":()=>e(()=>import("./counter-7425f1bb.js"),["assets/counter-7425f1bb.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/device.vue":()=>e(()=>import("./device-b39daa3e.js"),["assets/device-b39daa3e.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/inverter.vue":()=>e(()=>import("./inverter-fbc7ce2f.js"),["assets/inverter-fbc7ce2f.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_shm/counter.vue":()=>e(()=>import("./counter-8237c33b.js"),["assets/counter-8237c33b.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_shm/inverter.vue":()=>e(()=>import("./inverter-26256af8.js"),["assets/inverter-26256af8.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/bat.vue":()=>e(()=>import("./bat-b27a9158.js"),["assets/bat-b27a9158.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/bat_smart_energy.vue":()=>e(()=>import("./bat_smart_energy-43f3b393.js"),["assets/bat_smart_energy-43f3b393.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/counter.vue":()=>e(()=>import("./counter-170c4e9b.js"),["assets/counter-170c4e9b.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/device.vue":()=>e(()=>import("./device-318bb1e3.js"),["assets/device-318bb1e3.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/inverter.vue":()=>e(()=>import("./inverter-07777da1.js"),["assets/inverter-07777da1.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_island/bat.vue":()=>e(()=>import("./bat-3690aea0.js"),["assets/bat-3690aea0.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_island/device.vue":()=>e(()=>import("./device-1ecd0e84.js"),["assets/device-1ecd0e84.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_webbox/device.vue":()=>e(()=>import("./device-60677da2.js"),["assets/device-60677da2.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/counter.vue":()=>e(()=>import("./counter-73f9d00b.js"),["assets/counter-73f9d00b.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/device.vue":()=>e(()=>import("./device-b63f7410.js"),["assets/device-b63f7410.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/inverter.vue":()=>e(()=>import("./inverter-95e857e0.js"),["assets/inverter-95e857e0.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smartfox/smartfox/device.vue":()=>e(()=>import("./device-8684e5fd.js"),["assets/device-8684e5fd.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sofar/sofar/device.vue":()=>e(()=>import("./device-8ad316ba.js"),["assets/device-8ad316ba.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_log/solar_log/counter.vue":()=>e(()=>import("./counter-6eb3e0d5.js"),["assets/counter-6eb3e0d5.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_log/solar_log/device.vue":()=>e(()=>import("./device-88f4058a.js"),["assets/device-88f4058a.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_view/solar_view/device.vue":()=>e(()=>import("./device-50f7a9ff.js"),["assets/device-50f7a9ff.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_view/solar_view/inverter.vue":()=>e(()=>import("./inverter-ca193c42.js"),["assets/inverter-ca193c42.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_watt/solar_watt/device.vue":()=>e(()=>import("./device-0553aec2.js"),["assets/device-0553aec2.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_world/solar_world/device.vue":()=>e(()=>import("./device-e966116d.js"),["assets/device-e966116d.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/bat.vue":()=>e(()=>import("./bat-b6ca0c1a.js"),["assets/bat-b6ca0c1a.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/counter.vue":()=>e(()=>import("./counter-2abab92c.js"),["assets/counter-2abab92c.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/device.vue":()=>e(()=>import("./device-2a2b2695.js"),["assets/device-2a2b2695.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/external_inverter.vue":()=>e(()=>import("./external_inverter-bead5b8d.js"),["assets/external_inverter-bead5b8d.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/inverter.vue":()=>e(()=>import("./inverter-b4deb54d.js"),["assets/inverter-b4deb54d.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/bat.vue":()=>e(()=>import("./bat-536ad2ed.js"),["assets/bat-536ad2ed.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/device.vue":()=>e(()=>import("./device-3f7b60bf.js"),["assets/device-3f7b60bf.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/inverter.vue":()=>e(()=>import("./inverter-e923e9ca.js"),["assets/inverter-e923e9ca.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solax/solax/device.vue":()=>e(()=>import("./device-13333def.js"),["assets/device-13333def.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/bat.vue":()=>e(()=>import("./bat-bef81950.js"),["assets/bat-bef81950.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/counter.vue":()=>e(()=>import("./counter-c8a85756.js"),["assets/counter-c8a85756.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/device.vue":()=>e(()=>import("./device-a9d743f1.js"),["assets/device-a9d743f1.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/inverter.vue":()=>e(()=>import("./inverter-02db9c3f.js"),["assets/inverter-02db9c3f.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/bat.vue":()=>e(()=>import("./bat-3af7a3ce.js"),["assets/bat-3af7a3ce.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/counter.vue":()=>e(()=>import("./counter-aeecbad9.js"),["assets/counter-aeecbad9.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/counter_consumption.vue":()=>e(()=>import("./counter_consumption-901cf616.js"),["assets/counter_consumption-901cf616.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/device.vue":()=>e(()=>import("./device-0a2a87db.js"),["assets/device-0a2a87db.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/bat.vue":()=>e(()=>import("./bat-4a5e2d78.js"),["assets/bat-4a5e2d78.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/device.vue":()=>e(()=>import("./device-7163038e.js"),["assets/device-7163038e.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/inverter.vue":()=>e(()=>import("./inverter-f377a9ba.js"),["assets/inverter-f377a9ba.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sungrow/sungrow/device.vue":()=>e(()=>import("./device-78a44c29.js"),["assets/device-78a44c29.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sunways/sunways/device.vue":()=>e(()=>import("./device-b4339cb2.js"),["assets/device-b4339cb2.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tasmota/tasmota/device.vue":()=>e(()=>import("./device-5343ce64.js"),["assets/device-5343ce64.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/tesla/counter.vue":()=>e(()=>import("./counter-e7edbb39.js"),["assets/counter-e7edbb39.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/tesla/device.vue":()=>e(()=>import("./device-e470aa3a.js"),["assets/device-e470aa3a.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./thermia/thermia/counter.vue":()=>e(()=>import("./counter-29be21bf.js"),["assets/counter-29be21bf.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./thermia/thermia/device.vue":()=>e(()=>import("./device-765526b8.js"),["assets/device-765526b8.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./upower/upower/device.vue":()=>e(()=>import("./device-4ce19f90.js"),["assets/device-4ce19f90.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./varta/varta/device.vue":()=>e(()=>import("./device-431b8934.js"),["assets/device-431b8934.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./varta/varta/inverter.vue":()=>e(()=>import("./inverter-17495f9f.js"),["assets/inverter-17495f9f.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/bat.vue":()=>e(()=>import("./bat-0303c661.js"),["assets/bat-0303c661.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/counter.vue":()=>e(()=>import("./counter-41e364f6.js"),["assets/counter-41e364f6.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/device.vue":()=>e(()=>import("./device-65c6662e.js"),["assets/device-65c6662e.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/inverter.vue":()=>e(()=>import("./inverter-05bcd6e7.js"),["assets/inverter-05bcd6e7.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/counter.vue":()=>e(()=>import("./counter-74a6b7f4.js"),["assets/counter-74a6b7f4.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/device.vue":()=>e(()=>import("./device-dc9ef32a.js"),["assets/device-dc9ef32a.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/inverter.vue":()=>e(()=>import("./inverter-46bb7438.js"),["assets/inverter-46bb7438.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./youless/youless/device.vue":()=>e(()=>import("./device-9f80ec42.js"),["assets/device-9f80ec42.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./youless/youless/inverter.vue":()=>e(()=>import("./inverter-b4a73b4a.js"),["assets/inverter-b4a73b4a.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.device.vendor}/${this.device.type}/${this.component.type}.vue`),errorComponent:se}):z({loader:()=>x(Object.assign({"./algodue/algodue/device.vue":()=>e(()=>import("./device-80cfaffc.js"),["assets/device-80cfaffc.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./alpha_ess/alpha_ess/device.vue":()=>e(()=>import("./device-400899e6.js"),["assets/device-400899e6.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./ampere/ampere/device.vue":()=>e(()=>import("./device-4301268c.js"),["assets/device-4301268c.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./avm/avm/device.vue":()=>e(()=>import("./device-dc52892c.js"),["assets/device-dc52892c.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./azzurro_zcs/azzurro_zcs/device.vue":()=>e(()=>import("./device-2b1ae0bb.js"),["assets/device-2b1ae0bb.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./batterx/batterx/device.vue":()=>e(()=>import("./device-75b024ee.js"),["assets/device-75b024ee.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./benning/benning/device.vue":()=>e(()=>import("./device-25d2441f.js"),["assets/device-25d2441f.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./byd/byd/device.vue":()=>e(()=>import("./device-99902fe5.js"),["assets/device-99902fe5.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./carlo_gavazzi/carlo_gavazzi/device.vue":()=>e(()=>import("./device-11bf5d7f.js"),["assets/device-11bf5d7f.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/device.vue":()=>e(()=>import("./device-095d94ba.js"),["assets/device-095d94ba.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/device.vue":()=>e(()=>import("./device-8bca7e20.js"),["assets/device-8bca7e20.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./e3dc/e3dc/device.vue":()=>e(()=>import("./device-659f1d77.js"),["assets/device-659f1d77.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./elgris/elgris/device.vue":()=>e(()=>import("./device-ca171f86.js"),["assets/device-ca171f86.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/device.vue":()=>e(()=>import("./device-e5ec8653.js"),["assets/device-e5ec8653.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fems/fems/device.vue":()=>e(()=>import("./device-99cb2dcd.js"),["assets/device-99cb2dcd.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/device.vue":()=>e(()=>import("./device-ef964622.js"),["assets/device-ef964622.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/device.vue":()=>e(()=>import("./device-d450da5d.js"),["assets/device-d450da5d.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/device.vue":()=>e(()=>import("./device-ca2216bb.js"),["assets/device-ca2216bb.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/device.vue":()=>e(()=>import("./device-c21b61c6.js"),["assets/device-c21b61c6.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/device.vue":()=>e(()=>import("./device-063b8544.js"),["assets/device-063b8544.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./good_we/good_we/device.vue":()=>e(()=>import("./device-ee7a56fb.js"),["assets/device-ee7a56fb.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./growatt/growatt/device.vue":()=>e(()=>import("./device-cc5378a8.js"),["assets/device-cc5378a8.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei/device.vue":()=>e(()=>import("./device-bd81fe78.js"),["assets/device-bd81fe78.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_emma/device.vue":()=>e(()=>import("./device-d3c47c07.js"),["assets/device-d3c47c07.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/device.vue":()=>e(()=>import("./device-23990b21.js"),["assets/device-23990b21.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./janitza/janitza/device.vue":()=>e(()=>import("./device-a36af1b2.js"),["assets/device-a36af1b2.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kaco/kaco_tx/device.vue":()=>e(()=>import("./device-9fca3461.js"),["assets/device-9fca3461.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/device.vue":()=>e(()=>import("./device-aa389719.js"),["assets/device-aa389719.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko_old/device.vue":()=>e(()=>import("./device-3c0ce676.js"),["assets/device-3c0ce676.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_plenticore/device.vue":()=>e(()=>import("./device-44029622.js"),["assets/device-44029622.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_sem/device.vue":()=>e(()=>import("./device-671bcffc.js"),["assets/device-671bcffc.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_steca/device.vue":()=>e(()=>import("./device-8743d202.js"),["assets/device-8743d202.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./lg/lg/device.vue":()=>e(()=>import("./device-3ee6aa79.js"),["assets/device-3ee6aa79.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/device.vue":()=>e(()=>import("./device-46dae0da.js"),["assets/device-46dae0da.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mystrom/mystrom/device.vue":()=>e(()=>import("./device-1cc93638.js"),["assets/device-1cc93638.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./nibe/nibe/device.vue":()=>e(()=>import("./device-fee0c0ea.js"),["assets/device-fee0c0ea.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./opendtu/opendtu/device.vue":()=>e(()=>import("./device-28e1a264.js"),["assets/device-28e1a264.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/device.vue":()=>e(()=>import("./device-881b7363.js"),["assets/device-881b7363.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./orno/orno/device.vue":()=>e(()=>import("./device-e99aa4c8.js"),["assets/device-e99aa4c8.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerdog/powerdog/device.vue":()=>e(()=>import("./device-c04b431d.js"),["assets/device-c04b431d.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/device.vue":()=>e(()=>import("./device-da0c44d0.js"),["assets/device-da0c44d0.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./qcells/qcells/device.vue":()=>e(()=>import("./device-642a9f6f.js"),["assets/device-642a9f6f.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./rct/rct/device.vue":()=>e(()=>import("./device-3ae4b0dc.js"),["assets/device-3ae4b0dc.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./saxpower/saxpower/device.vue":()=>e(()=>import("./device-961232b3.js"),["assets/device-961232b3.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./shelly/shelly/device.vue":()=>e(()=>import("./device-c41d2ff7.js"),["assets/device-c41d2ff7.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens/device.vue":()=>e(()=>import("./device-fc594731.js"),["assets/device-fc594731.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens_sentron/device.vue":()=>e(()=>import("./device-5cab91ce.js"),["assets/device-5cab91ce.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/device.vue":()=>e(()=>import("./device-b39daa3e.js"),["assets/device-b39daa3e.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/device.vue":()=>e(()=>import("./device-318bb1e3.js"),["assets/device-318bb1e3.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_island/device.vue":()=>e(()=>import("./device-1ecd0e84.js"),["assets/device-1ecd0e84.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_webbox/device.vue":()=>e(()=>import("./device-60677da2.js"),["assets/device-60677da2.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/device.vue":()=>e(()=>import("./device-b63f7410.js"),["assets/device-b63f7410.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smartfox/smartfox/device.vue":()=>e(()=>import("./device-8684e5fd.js"),["assets/device-8684e5fd.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sofar/sofar/device.vue":()=>e(()=>import("./device-8ad316ba.js"),["assets/device-8ad316ba.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_log/solar_log/device.vue":()=>e(()=>import("./device-88f4058a.js"),["assets/device-88f4058a.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_view/solar_view/device.vue":()=>e(()=>import("./device-50f7a9ff.js"),["assets/device-50f7a9ff.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_watt/solar_watt/device.vue":()=>e(()=>import("./device-0553aec2.js"),["assets/device-0553aec2.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_world/solar_world/device.vue":()=>e(()=>import("./device-e966116d.js"),["assets/device-e966116d.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/device.vue":()=>e(()=>import("./device-2a2b2695.js"),["assets/device-2a2b2695.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/device.vue":()=>e(()=>import("./device-3f7b60bf.js"),["assets/device-3f7b60bf.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solax/solax/device.vue":()=>e(()=>import("./device-13333def.js"),["assets/device-13333def.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/device.vue":()=>e(()=>import("./device-a9d743f1.js"),["assets/device-a9d743f1.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/device.vue":()=>e(()=>import("./device-0a2a87db.js"),["assets/device-0a2a87db.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/device.vue":()=>e(()=>import("./device-7163038e.js"),["assets/device-7163038e.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sungrow/sungrow/device.vue":()=>e(()=>import("./device-78a44c29.js"),["assets/device-78a44c29.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sunways/sunways/device.vue":()=>e(()=>import("./device-b4339cb2.js"),["assets/device-b4339cb2.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tasmota/tasmota/device.vue":()=>e(()=>import("./device-5343ce64.js"),["assets/device-5343ce64.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/tesla/device.vue":()=>e(()=>import("./device-e470aa3a.js"),["assets/device-e470aa3a.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./thermia/thermia/device.vue":()=>e(()=>import("./device-765526b8.js"),["assets/device-765526b8.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./upower/upower/device.vue":()=>e(()=>import("./device-4ce19f90.js"),["assets/device-4ce19f90.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./varta/varta/device.vue":()=>e(()=>import("./device-431b8934.js"),["assets/device-431b8934.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/device.vue":()=>e(()=>import("./device-65c6662e.js"),["assets/device-65c6662e.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/device.vue":()=>e(()=>import("./device-dc9ef32a.js"),["assets/device-dc9ef32a.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./youless/youless/device.vue":()=>e(()=>import("./device-9f80ec42.js"),["assets/device-9f80ec42.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.device.vendor}/${this.device.type}/device.vue`),errorComponent:_e})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function me(t,o,i,m,s,n){return v(),E(Z(n.getComponent()),{device:i.device,component:i.component,configuration:i.component?i.component.configuration:i.device.configuration,"device-id":i.device.id,"device-type":i.device.type,"component-id":i.component?i.component.id:void 0,"component-type":i.component?i.component.type:void 0,"onUpdate:configuration":o[0]||(o[0]=l=>n.updateConfiguration(l))},null,40,["device","component","configuration","device-id","device-type","component-id","component-type"])}const pe=I(ae,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbConfigProxy.vue"]]);S.add(U,q,G,N,K,F,H);const le={name:"OpenwbHardwareInstallationView",components:{FontAwesomeIcon:$,OpenwbConfigProxy:pe},mixins:[J],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/counter/get/hierarchy","openWB/system/device/+/config","openWB/system/device/+/component/+/config","openWB/system/configurable/devices_components"],selectedVendor:void 0,deviceToAdd:void 0,showDeviceRemoveModal:!1,modalDevice:void 0,modalDeviceName:"",componentToAdd:[],showComponentRemoveModal:!1,modalComponent:void 0,modalComponentName:""}},computed:{installedDevices:{get(){return this.getWildcardTopics("openWB/system/device/+/config")}},installedComponents:{get(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")}},vendorList:{get(){return this.$store.state.mqtt["openWB/system/configurable/devices_components"]===void 0?[]:Object.entries(this.$store.state.mqtt["openWB/system/configurable/devices_components"]).map(([t,o])=>({label:o.group_name,options:Object.entries(o.vendors).map(([i,m])=>({value:[t,i],text:m.vendor_name})).sort((i,m)=>i.text.localeCompare(m.text))})).sort((t,o)=>-t.label.localeCompare(o.label))}},deviceList:{get(){if(this.selectedVendor===void 0)return[];let[t,o]=this.selectedVendor;return Object.entries(this.$store.state.mqtt["openWB/system/configurable/devices_components"][t].vendors[o].devices).map(([i,m])=>({value:[o,i],text:m.device_name})).sort((i,m)=>i.text.localeCompare(m.text))}}},methods:{getComponentTypeClass(t){return t.match(/^(.+_)?counter(_.+)?$/)?"danger":t.match(/^(.+_)?inverter(_.+)?$/)?"success":t.match(/^(.+_)?bat(_.+)?$/)?"warning":"dark"},getComponentTypeIcon(t){return t.match(/^(.+_)?counter(_.+)?$/)?["fas","fa-gauge-high"]:t.match(/^(.+_)?inverter(_.+)?$/)?["fas","fa-solar-panel"]:t.match(/^(.+_)?bat(_.+)?$/)?["fas","fa-car-battery"]:["fas","fa-microchip"]},getMyInstalledComponents(t){return this.getWildcardTopics("openWB/system/device/"+t+"/component/+/config")},deviceHasConfiguredComponents(t){return Object.keys(this.getMyInstalledComponents(t)).length>0},addDevice(){this.$emit("sendCommand",{command:"addDevice",data:{vendor:this.deviceToAdd[0],type:this.deviceToAdd[1]}})},removeDeviceModal(t,o,i){i.stopPropagation(),this.modalDevice=t,this.modalDeviceName=o,this.showDeviceRemoveModal=!0},removeDevice(t){this.showDeviceRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeDevice",data:{id:this.modalDevice}})},addComponent(t,o,i,m){this.$emit("sendCommand",{command:"addComponent",data:{deviceId:t,deviceType:i,deviceVendor:o,type:m}})},removeComponentModal(t,o,i,m,s){s.stopPropagation(),this.modalComponent={deviceId:t,id:o,type:i},this.modalComponentName=m,this.showComponentRemoveModal=!0},removeComponent(t){this.showComponentRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeComponent",data:this.modalComponent})},getComponentList(t,o){if(t===void 0||o===void 0)return[];let i=[];return Object.values(this.$store.state.mqtt["openWB/system/configurable/devices_components"]).every(m=>m.vendors[t]!==void 0?(m.vendors[t].devices[o]!==void 0&&(i=Object.entries(m.vendors[t].devices[o].components).map(([n,l])=>({value:n,text:l.component_name}))),!1):!0),i},updateConfiguration(t,o){console.debug("updateConfiguration",t,o),this.updateState(t,o.value,o.object)}}},ce={class:"hardwareInstallation"},Ee={name:"hardwareInstallationForm"},ge={key:0},Ve={key:1},fe={key:1},Oe={key:0};function Te(t,o,i,m,s,n){const l=p("openwb-base-modal-dialog"),b=p("router-link"),T=p("openwb-base-alert"),A=p("font-awesome-icon"),D=p("openwb-base-avatar"),P=p("openwb-base-text-input"),C=p("openwb-config-proxy"),M=p("openwb-base-heading"),w=p("openwb-base-card"),y=p("openwb-base-select-input"),j=p("openwb-base-submit-buttons");return v(),g(L,null,[u(l,{show:s.showDeviceRemoveModal,title:"Gerät löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:n.removeDevice},{default:r(()=>[d(' Wollen Sie das Gerät "'+f(s.modalDeviceName)+'" inklusive aller Komponenten wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),u(l,{show:s.showComponentRemoveModal,title:"Komponente löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:n.removeComponent},{default:r(()=>[d(' Wollen Sie die Komponente "'+f(s.modalComponentName)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),c("div",ce,[c("form",Ee,[i.installAssistantActive?R("",!0):(v(),E(T,{key:0,subtype:"info"},{default:r(()=>[o[7]||(o[7]=d(" Wenn neue Komponenten - insbesondere Zähler - konfiguriert wurden, ist auch das ",-1)),u(b,{to:"/LoadManagementConfiguration"},{default:r(()=>[...o[6]||(o[6]=[d(" Lastmanagement ",-1)])]),_:1}),o[8]||(o[8]=d(" zu prüfen!",-1)),o[9]||(o[9]=c("br",null,null,-1)),o[10]||(o[10]=d(" Je nach Hersteller muss eventuell die Kommunikation im Wechselrichter freigegeben werden (z.B. Aktivierung Modbus TCP, Portfreigaben o.Ä.) ",-1))]),_:1})),u(w,{title:"Geräte und Komponenten"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(v(),g("div",ge,[u(T,{subtype:"info"},{default:r(()=>[...o[11]||(o[11]=[d(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(v(),g("div",Ve,[(v(!0),g(L,null,k(n.installedDevices,(_,h)=>(v(),E(w,{key:h,collapsible:!0,collapsed:!0,subtype:"dark"},{header:r(()=>[u(A,{icon:["fas","network-wired"]}),d(" "+f(_==null?void 0:_.name),1)]),actions:r(a=>[a.collapsed?(v(),g("div",fe,[(v(!0),g(L,null,k(n.getMyInstalledComponents(_==null?void 0:_.id),V=>(v(),E(D,{key:V.id,class:Y("ml-1 bg-"+n.getComponentTypeClass(V.type))},{default:r(()=>[u(A,{icon:n.getComponentTypeIcon(V.type)},null,8,["icon"])]),_:2},1032,["class"]))),128))])):(v(),E(D,{key:0,class:"bg-danger clickable",onClick:V=>n.removeDeviceModal(_==null?void 0:_.id,_==null?void 0:_.name,V)},{default:r(()=>[u(A,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:r(()=>[u(P,{title:"Bezeichnung",subtype:"text","model-value":_==null?void 0:_.name,"onUpdate:modelValue":a=>t.updateState(h,a,"name")},null,8,["model-value","onUpdate:modelValue"]),o[19]||(o[19]=c("hr",null,null,-1)),u(C,{device:_,"onUpdate:configuration":a=>n.updateConfiguration(h,a)},null,8,["device","onUpdate:configuration"]),o[20]||(o[20]=c("hr",null,null,-1)),u(M,null,{default:r(()=>[...o[12]||(o[12]=[d("Komponenten",-1)])]),_:1}),n.deviceHasConfiguredComponents(_==null?void 0:_.id)?R("",!0):(v(),E(T,{key:0,subtype:"warning"},{default:r(()=>[...o[13]||(o[13]=[d(" Es wurden noch keine Komponenten zu diesem Gerät angelegt. ",-1)])]),_:1})),(v(!0),g(L,null,k(n.getMyInstalledComponents(_.id),(a,V)=>(v(),E(w,{key:a.id,collapsible:!0,collapsed:!0,subtype:n.getComponentTypeClass(a.type)},{header:r(()=>[u(A,{icon:n.getComponentTypeIcon(a.type)},null,8,["icon"]),d(" "+f(a.name),1)]),actions:r(O=>[O.collapsed?R("",!0):(v(),E(D,{key:0,class:"bg-danger clickable",onClick:W=>n.removeComponentModal(_.id,a.id,a.type,a.name,W)},{default:r(()=>[u(A,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:r(()=>[u(P,{title:"Bezeichnung",subtype:"text","model-value":a.name,"onUpdate:modelValue":O=>t.updateState(V,O,"name")},null,8,["model-value","onUpdate:modelValue"]),u(P,{title:"Hersteller",subtype:"text","model-value":a.info.manufacturer,"onUpdate:modelValue":O=>t.updateState(V,O,"info.manufacturer")},{help:r(()=>[...o[14]||(o[14]=[d(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),u(P,{title:"Modell",subtype:"text","model-value":a.info.model,"onUpdate:modelValue":O=>t.updateState(V,O,"info.model")},{help:r(()=>[...o[15]||(o[15]=[d(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),o[16]||(o[16]=c("hr",null,null,-1)),u(C,{device:_,component:a,"onUpdate:configuration":O=>n.updateConfiguration(V,O)},null,8,["device","component","onUpdate:configuration"])]),_:2},1032,["subtype"]))),128)),o[21]||(o[21]=c("hr",null,null,-1)),n.getComponentList(_.vendor,_.type).length?(v(),E(y,{key:1,title:"Verfügbare Komponenten","not-selected":"Bitte auswählen",options:n.getComponentList(_.vendor,_.type),"model-value":s.componentToAdd[_.id],"add-button":!0,"onUpdate:modelValue":a=>s.componentToAdd[_.id]=a,"onInput:add":a=>n.addComponent(_.id,_.vendor,_.type,s.componentToAdd[_.id])},{help:r(()=>[...o[17]||(o[17]=[d(" Bitte eine Komponente auswählen, die hinzugefügt werden soll. Für jeden Datensatz, z.B. Wechselrichter- und Batteriedaten, muss eine Wechselrichter- und eine Batteriekomponente hinzugefügt werden. ",-1)])]),_:1},8,["options","model-value","onUpdate:modelValue","onInput:add"])):(v(),E(T,{key:2,subtype:"info"},{default:r(()=>[...o[18]||(o[18]=[d(" Dieses System bietet keine Komponenten zur Installation an. ",-1)])]),_:1}))]),_:2},1024))),128)),Object.keys(n.installedDevices).length>0?(v(),g("hr",Oe)):R("",!0),u(y,{modelValue:s.selectedVendor,"onUpdate:modelValue":o[0]||(o[0]=_=>s.selectedVendor=_),title:"Hersteller","not-selected":"Bitte auswählen",groups:n.vendorList},null,8,["modelValue","groups"]),u(y,{modelValue:s.deviceToAdd,"onUpdate:modelValue":[o[1]||(o[1]=_=>s.deviceToAdd=_),o[2]||(o[2]=_=>s.deviceToAdd=_)],title:"Verfügbare Geräte","not-selected":"Bitte auswählen",disabled:s.selectedVendor===void 0,options:n.deviceList,"model-value":s.deviceToAdd,"add-button":!0,"onInput:add":n.addDevice},{help:r(()=>[...o[22]||(o[22]=[c("p",null,[d(' Die openWB-Regelung ist auf Werte von Messpunkten (Zähler, Energy Meter usw.) angewiesen. Hierfür werden "Geräte" und "Komponenten" verwendet.'),c("br"),d(' Ein "Gerät" wird hierbei durch seine Verbindungseinstellungen (z.B. IP-Adresse) spezifiziert (häufig durch manuelle Eingabe oder manchmal automatisch ermittelt) und kann über mehrere untergeordnete "Komponenten" verfügen, z.B. einen Messpunkt für PV-Erzeugung, einen Messpunkt für Netzeinspeisung/-bezug am EVU-Punkt usw.. Ein "Gerät" bedingt somit immer mindestens eine zugehörige "Komponente". ')],-1),c("p",null,[d(' Bsp: Werden die Werte von verschiedenen Messpunkten (z.B. PV und EVU) über die gleiche IP-Adresse abgefragt, wird dafür ein "Gerät" mit zwei "Komponenten" für PV- und EVU- Messpunkt angelegt.'),c("br"),d(' Verfügt dagegen jeder Messpunkt über eine eigene IP-Adresse, wird jeder Messpunkt als eigenes "Gerät" mit nur einer "Komponente" angelegt. ')],-1),c("p",null,' Das "Gerät" wird in der Dropdown-Liste ausgewählt und mit "+" der Regelung hinzugefügt. Im Anschluss erfolgt die Konfiguration des "Gerätes" innerhalb des schwarzen "Geräte"-Reiters. ',-1)])]),_:1},8,["modelValue","disabled","options","model-value","onInput:add"])]))]),_:1}),u(j,{"form-name":"hardwareInstallationForm",onSave:o[3]||(o[3]=_=>t.$emit("save")),onReset:o[4]||(o[4]=_=>t.$emit("reset")),onDefaults:o[5]||(o[5]=_=>t.$emit("defaults"))})])])],64)}const Ie=I(le,[["render",Te],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/HardwareInstallation.vue"]]),Le=Object.freeze(Object.defineProperty({__proto__:null,default:Ie},Symbol.toStringTag,{value:"Module"}));export{re as C,B as D,Ie as H,Le as a}; diff --git a/web/settings/assets/HardwareInstallation-be759b0c.js b/web/settings/assets/HardwareInstallation-be759b0c.js deleted file mode 100644 index 95a15b690d..0000000000 --- a/web/settings/assets/HardwareInstallation-be759b0c.js +++ /dev/null @@ -1 +0,0 @@ -import{l as S,d as U,y as q,aj as G,ab as N,_ as K,Z as F,Y as H,F as $}from"./vendor-fortawesome-a02b6813.js";import{_ as e,C as J}from"./index-8dd8e083.js";import{_ as x}from"./dynamic-import-helper-be004503.js";import{_ as I,u as p,l as v,m as g,x as E,E as r,B as d,F as f,G as u,A as c,a2 as z,a3 as Z,z as R,N as L,M as k,q as Y}from"./vendor-25d394b4.js";const Q={props:{device:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,o=void 0){this.$emit("update:configuration",{value:t,object:o})}}},B=I(Q,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/DeviceConfigMixin.vue"]]),X={name:"DeviceFallback",mixins:[B]},ee={class:"device-fallback"},oe={key:1};function te(t,o,i,m,s,n){const l=p("openwb-base-alert"),b=p("openwb-base-textarea");return v(),g("div",ee,[Object.keys(t.device.configuration).length==0?(v(),E(l,{key:0,subtype:"info"},{default:r(()=>[d(' Der Gerät-Typ "'+f(t.device.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(v(),g("div",oe,[u(l,{subtype:"warning"},{default:r(()=>[d(' Es wurde keine Konfigurationsseite für den Geräte-Typ "'+f(t.device.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),u(b,{title:"Konfiguration",subtype:"json","model-value":t.device.configuration,"onUpdate:modelValue":o[0]||(o[0]=T=>t.updateConfiguration(T,"configuration"))},{help:r(()=>o[1]||(o[1]=[d(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),u(l,{subtype:"info"},{default:r(()=>[c("pre",null,f(JSON.stringify(t.device.configuration,void 0,2)),1)]),_:1})]))])}const _e=I(X,[["render",te],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbDeviceConfigFallback.vue"]]),ie={mixins:[B],props:{component:{type:Object,required:!0}}},re=I(ie,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/ComponentConfigMixin.vue"]]),ne={name:"ComponentFallback",mixins:[re]},ue={class:"component-fallback"},de={key:1};function ve(t,o,i,m,s,n){const l=p("openwb-base-alert"),b=p("openwb-base-textarea");return v(),g("div",ue,[Object.keys(t.component.configuration).length==0?(v(),E(l,{key:0,subtype:"info"},{default:r(()=>[d(' Der Komponenten-Typ "'+f(t.component.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(v(),g("div",de,[u(l,{subtype:"warning"},{default:r(()=>[d(' Es wurde keine Konfigurationsseite für den Komponenten-Typ "'+f(t.component.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),u(b,{title:"Konfiguration",subtype:"json","model-value":t.component.configuration,"onUpdate:modelValue":o[0]||(o[0]=T=>t.updateConfiguration(T,"configuration"))},{help:r(()=>o[1]||(o[1]=[d(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),u(l,{subtype:"info"},{default:r(()=>[c("pre",null,f(JSON.stringify(t.component.configuration,void 0,2)),1)]),_:1})]))])}const se=I(ne,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbComponentConfigFallback.vue"]]),ae={name:"OpenwbConfigProxy",props:{device:{type:Object,required:!0},component:{type:Object,required:!1,default:void 0}},emits:["update:configuration"],methods:{getComponent(){var t;return console.debug(`loading component: ${this.device.type} / ${(t=this.component)==null?void 0:t.type}`),this.component!==void 0?z({loader:()=>x(Object.assign({"./algodue/algodue/device.vue":()=>e(()=>import("./device-57c43c99.js"),["assets/device-57c43c99.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./alpha_ess/alpha_ess/device.vue":()=>e(()=>import("./device-aab545a0.js"),["assets/device-aab545a0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./ampere/ampere/device.vue":()=>e(()=>import("./device-fba9cb18.js"),["assets/device-fba9cb18.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./avm/avm/counter.vue":()=>e(()=>import("./counter-21bc2bc2.js"),["assets/counter-21bc2bc2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./avm/avm/device.vue":()=>e(()=>import("./device-d8332f79.js"),["assets/device-d8332f79.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./azzurro_zcs/azzurro_zcs/device.vue":()=>e(()=>import("./device-bba31079.js"),["assets/device-bba31079.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./batterx/batterx/device.vue":()=>e(()=>import("./device-85f57776.js"),["assets/device-85f57776.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./benning/benning/device.vue":()=>e(()=>import("./device-14c83532.js"),["assets/device-14c83532.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./benning/benning/inverter.vue":()=>e(()=>import("./inverter-b490ca31.js"),["assets/inverter-b490ca31.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./byd/byd/device.vue":()=>e(()=>import("./device-ae4f5ccf.js"),["assets/device-ae4f5ccf.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./carlo_gavazzi/carlo_gavazzi/counter.vue":()=>e(()=>import("./counter-2438b11a.js"),["assets/counter-2438b11a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./carlo_gavazzi/carlo_gavazzi/device.vue":()=>e(()=>import("./device-d7f94b0d.js"),["assets/device-d7f94b0d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/bat.vue":()=>e(()=>import("./bat-313da7a3.js"),["assets/bat-313da7a3.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/counter.vue":()=>e(()=>import("./counter-fdd1cfe4.js"),["assets/counter-fdd1cfe4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/device.vue":()=>e(()=>import("./device-160ed507.js"),["assets/device-160ed507.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/inverter.vue":()=>e(()=>import("./inverter-f4ccd46a.js"),["assets/inverter-f4ccd46a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/counter.vue":()=>e(()=>import("./counter-165ce997.js"),["assets/counter-165ce997.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/device.vue":()=>e(()=>import("./device-a0f15220.js"),["assets/device-a0f15220.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/inverter.vue":()=>e(()=>import("./inverter-e626a82d.js"),["assets/inverter-e626a82d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./e3dc/e3dc/device.vue":()=>e(()=>import("./device-b933a21c.js"),["assets/device-b933a21c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./elgris/elgris/device.vue":()=>e(()=>import("./device-2671fef8.js"),["assets/device-2671fef8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/counter.vue":()=>e(()=>import("./counter-37d67776.js"),["assets/counter-37d67776.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/device.vue":()=>e(()=>import("./device-ab579910.js"),["assets/device-ab579910.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/inverter.vue":()=>e(()=>import("./inverter-3fe8754b.js"),["assets/inverter-3fe8754b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fems/fems/bat.vue":()=>e(()=>import("./bat-caa2d54a.js"),["assets/bat-caa2d54a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fems/fems/device.vue":()=>e(()=>import("./device-0bd3c0be.js"),["assets/device-0bd3c0be.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/bat.vue":()=>e(()=>import("./bat-f72ba579.js"),["assets/bat-f72ba579.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/counter.vue":()=>e(()=>import("./counter-eadf5e57.js"),["assets/counter-eadf5e57.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/device.vue":()=>e(()=>import("./device-803b339a.js"),["assets/device-803b339a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/inverter.vue":()=>e(()=>import("./inverter-31446a68.js"),["assets/inverter-31446a68.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/bat.vue":()=>e(()=>import("./bat-1e5462e4.js"),["assets/bat-1e5462e4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/counter_sm.vue":()=>e(()=>import("./counter_sm-e0173218.js"),["assets/counter_sm-e0173218.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/device.vue":()=>e(()=>import("./device-6017ed76.js"),["assets/device-6017ed76.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/inverter_secondary.vue":()=>e(()=>import("./inverter_secondary-be8c6f76.js"),["assets/inverter_secondary-be8c6f76.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/bat.vue":()=>e(()=>import("./bat-be5c48ce.js"),["assets/bat-be5c48ce.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/counter.vue":()=>e(()=>import("./counter-d72adf8c.js"),["assets/counter-d72adf8c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/device.vue":()=>e(()=>import("./device-5c141e99.js"),["assets/device-5c141e99.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/inverter.vue":()=>e(()=>import("./inverter-7afcc2ba.js"),["assets/inverter-7afcc2ba.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/bat.vue":()=>e(()=>import("./bat-efda0fab.js"),["assets/bat-efda0fab.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/counter.vue":()=>e(()=>import("./counter-f8e5fc32.js"),["assets/counter-f8e5fc32.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/device.vue":()=>e(()=>import("./device-7c75fb7c.js"),["assets/device-7c75fb7c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/inverter.vue":()=>e(()=>import("./inverter-2e642f10.js"),["assets/inverter-2e642f10.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/bat.vue":()=>e(()=>import("./bat-1ad29484.js"),["assets/bat-1ad29484.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/counter.vue":()=>e(()=>import("./counter-1346ff10.js"),["assets/counter-1346ff10.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/device.vue":()=>e(()=>import("./device-4b1ba85f.js"),["assets/device-4b1ba85f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/inverter.vue":()=>e(()=>import("./inverter-96158dd7.js"),["assets/inverter-96158dd7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/virtual/counter.vue":()=>e(()=>import("./counter-1f565ee4.js"),["assets/counter-1f565ee4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./good_we/good_we/bat.vue":()=>e(()=>import("./bat-74a30937.js"),["assets/bat-74a30937.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./good_we/good_we/device.vue":()=>e(()=>import("./device-2c55f22c.js"),["assets/device-2c55f22c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./growatt/growatt/device.vue":()=>e(()=>import("./device-45750f00.js"),["assets/device-45750f00.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei/device.vue":()=>e(()=>import("./device-9962b0b8.js"),["assets/device-9962b0b8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_emma/device.vue":()=>e(()=>import("./device-b94aa2cd.js"),["assets/device-b94aa2cd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/bat.vue":()=>e(()=>import("./bat-02c96333.js"),["assets/bat-02c96333.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/counter.vue":()=>e(()=>import("./counter-70de76b4.js"),["assets/counter-70de76b4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/device.vue":()=>e(()=>import("./device-0ff1683d.js"),["assets/device-0ff1683d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/inverter.vue":()=>e(()=>import("./inverter-d8e7de15.js"),["assets/inverter-d8e7de15.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./janitza/janitza/counter.vue":()=>e(()=>import("./counter-332c42a7.js"),["assets/counter-332c42a7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./janitza/janitza/device.vue":()=>e(()=>import("./device-35f7717e.js"),["assets/device-35f7717e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kaco/kaco_tx/device.vue":()=>e(()=>import("./device-77ab491f.js"),["assets/device-77ab491f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kaco/kaco_tx/inverter.vue":()=>e(()=>import("./inverter-97aca950.js"),["assets/inverter-97aca950.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/counter.vue":()=>e(()=>import("./counter-57c49ae6.js"),["assets/counter-57c49ae6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/device.vue":()=>e(()=>import("./device-cbf306be.js"),["assets/device-cbf306be.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/inverter.vue":()=>e(()=>import("./inverter-1484b10b.js"),["assets/inverter-1484b10b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko_old/device.vue":()=>e(()=>import("./device-18f8c834.js"),["assets/device-18f8c834.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_plenticore/counter.vue":()=>e(()=>import("./counter-70b03053.js"),["assets/counter-70b03053.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_plenticore/device.vue":()=>e(()=>import("./device-abd46e94.js"),["assets/device-abd46e94.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_sem/counter.vue":()=>e(()=>import("./counter-2aac942b.js"),["assets/counter-2aac942b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_sem/device.vue":()=>e(()=>import("./device-9dcf188a.js"),["assets/device-9dcf188a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_steca/device.vue":()=>e(()=>import("./device-05904d00.js"),["assets/device-05904d00.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_steca/inverter.vue":()=>e(()=>import("./inverter-811d2fd2.js"),["assets/inverter-811d2fd2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./lg/lg/device.vue":()=>e(()=>import("./device-e379eb65.js"),["assets/device-e379eb65.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/bat.vue":()=>e(()=>import("./bat-e4f98942.js"),["assets/bat-e4f98942.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/counter.vue":()=>e(()=>import("./counter-3c133de8.js"),["assets/counter-3c133de8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/device.vue":()=>e(()=>import("./device-37a05407.js"),["assets/device-37a05407.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/inverter.vue":()=>e(()=>import("./inverter-b447983e.js"),["assets/inverter-b447983e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mystrom/mystrom/device.vue":()=>e(()=>import("./device-8739b2fb.js"),["assets/device-8739b2fb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./nibe/nibe/counter.vue":()=>e(()=>import("./counter-e48f1cfa.js"),["assets/counter-e48f1cfa.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./nibe/nibe/device.vue":()=>e(()=>import("./device-ad31bc6c.js"),["assets/device-ad31bc6c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./opendtu/opendtu/device.vue":()=>e(()=>import("./device-86e0a461.js"),["assets/device-86e0a461.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./opendtu/opendtu/inverter.vue":()=>e(()=>import("./inverter-bc849b92.js"),["assets/inverter-bc849b92.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_bat_kit/bat.vue":()=>e(()=>import("./bat-e9ec040d.js"),["assets/bat-e9ec040d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_evu_kit/bat.vue":()=>e(()=>import("./bat-e326742a.js"),["assets/bat-e326742a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_evu_kit/counter.vue":()=>e(()=>import("./counter-01d8e9a4.js"),["assets/counter-01d8e9a4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_evu_kit/inverter.vue":()=>e(()=>import("./inverter-d41890ab.js"),["assets/inverter-d41890ab.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/bat.vue":()=>e(()=>import("./bat-24ebfa6e.js"),["assets/bat-24ebfa6e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/consumption_counter.vue":()=>e(()=>import("./consumption_counter-1c9b3251.js"),["assets/consumption_counter-1c9b3251.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/counter.vue":()=>e(()=>import("./counter-8950294b.js"),["assets/counter-8950294b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/device.vue":()=>e(()=>import("./device-4359519d.js"),["assets/device-4359519d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/inverter.vue":()=>e(()=>import("./inverter-948bcdb7.js"),["assets/inverter-948bcdb7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_pv_kit/inverter.vue":()=>e(()=>import("./inverter-218dfb39.js"),["assets/inverter-218dfb39.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./orno/orno/counter.vue":()=>e(()=>import("./counter-32894ee7.js"),["assets/counter-32894ee7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./orno/orno/device.vue":()=>e(()=>import("./device-4b49e69a.js"),["assets/device-4b49e69a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerdog/powerdog/counter.vue":()=>e(()=>import("./counter-f02f171d.js"),["assets/counter-f02f171d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerdog/powerdog/device.vue":()=>e(()=>import("./device-bb1ccbe7.js"),["assets/device-bb1ccbe7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/counter.vue":()=>e(()=>import("./counter-76544a83.js"),["assets/counter-76544a83.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/device.vue":()=>e(()=>import("./device-c8921d75.js"),["assets/device-c8921d75.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/inverter.vue":()=>e(()=>import("./inverter-f1be98fb.js"),["assets/inverter-f1be98fb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./qcells/qcells/device.vue":()=>e(()=>import("./device-022cb7a5.js"),["assets/device-022cb7a5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./rct/rct/device.vue":()=>e(()=>import("./device-8ec43ff9.js"),["assets/device-8ec43ff9.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./saxpower/saxpower/device.vue":()=>e(()=>import("./device-54b2f204.js"),["assets/device-54b2f204.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./shelly/shelly/counter.vue":()=>e(()=>import("./counter-189db4df.js"),["assets/counter-189db4df.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./shelly/shelly/device.vue":()=>e(()=>import("./device-4bbfca01.js"),["assets/device-4bbfca01.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens/device.vue":()=>e(()=>import("./device-115ca373.js"),["assets/device-115ca373.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens_sentron/device.vue":()=>e(()=>import("./device-3c6d5af6.js"),["assets/device-3c6d5af6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/bat.vue":()=>e(()=>import("./bat-e176c2ff.js"),["assets/bat-e176c2ff.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/counter.vue":()=>e(()=>import("./counter-6e1d95d5.js"),["assets/counter-6e1d95d5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/device.vue":()=>e(()=>import("./device-444877fe.js"),["assets/device-444877fe.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/inverter.vue":()=>e(()=>import("./inverter-01923309.js"),["assets/inverter-01923309.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_shm/counter.vue":()=>e(()=>import("./counter-8725308d.js"),["assets/counter-8725308d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_shm/inverter.vue":()=>e(()=>import("./inverter-3370b8b6.js"),["assets/inverter-3370b8b6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/bat.vue":()=>e(()=>import("./bat-5c9d3bae.js"),["assets/bat-5c9d3bae.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/bat_smart_energy.vue":()=>e(()=>import("./bat_smart_energy-af221efd.js"),["assets/bat_smart_energy-af221efd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/counter.vue":()=>e(()=>import("./counter-f2628932.js"),["assets/counter-f2628932.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/device.vue":()=>e(()=>import("./device-6081837f.js"),["assets/device-6081837f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/inverter.vue":()=>e(()=>import("./inverter-809f70c1.js"),["assets/inverter-809f70c1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_island/bat.vue":()=>e(()=>import("./bat-2e0391d4.js"),["assets/bat-2e0391d4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_island/device.vue":()=>e(()=>import("./device-91d8873a.js"),["assets/device-91d8873a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_webbox/device.vue":()=>e(()=>import("./device-b3265f86.js"),["assets/device-b3265f86.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/counter.vue":()=>e(()=>import("./counter-d73a3f9b.js"),["assets/counter-d73a3f9b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/device.vue":()=>e(()=>import("./device-46ed909c.js"),["assets/device-46ed909c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/inverter.vue":()=>e(()=>import("./inverter-254014f2.js"),["assets/inverter-254014f2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smartfox/smartfox/device.vue":()=>e(()=>import("./device-04198354.js"),["assets/device-04198354.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sofar/sofar/device.vue":()=>e(()=>import("./device-026ba885.js"),["assets/device-026ba885.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_log/solar_log/counter.vue":()=>e(()=>import("./counter-c7ccca56.js"),["assets/counter-c7ccca56.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_log/solar_log/device.vue":()=>e(()=>import("./device-7def54a5.js"),["assets/device-7def54a5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_view/solar_view/device.vue":()=>e(()=>import("./device-30bde472.js"),["assets/device-30bde472.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_view/solar_view/inverter.vue":()=>e(()=>import("./inverter-5531e828.js"),["assets/inverter-5531e828.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_watt/solar_watt/device.vue":()=>e(()=>import("./device-b2f0a632.js"),["assets/device-b2f0a632.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_world/solar_world/device.vue":()=>e(()=>import("./device-7d03d320.js"),["assets/device-7d03d320.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/bat.vue":()=>e(()=>import("./bat-d365c2cb.js"),["assets/bat-d365c2cb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/counter.vue":()=>e(()=>import("./counter-f54ee4df.js"),["assets/counter-f54ee4df.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/device.vue":()=>e(()=>import("./device-585500cc.js"),["assets/device-585500cc.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/external_inverter.vue":()=>e(()=>import("./external_inverter-8e60306f.js"),["assets/external_inverter-8e60306f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/inverter.vue":()=>e(()=>import("./inverter-423aa924.js"),["assets/inverter-423aa924.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/bat.vue":()=>e(()=>import("./bat-5276ac71.js"),["assets/bat-5276ac71.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/device.vue":()=>e(()=>import("./device-2f6474c4.js"),["assets/device-2f6474c4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/inverter.vue":()=>e(()=>import("./inverter-7bea2389.js"),["assets/inverter-7bea2389.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solax/solax/device.vue":()=>e(()=>import("./device-4c47ea65.js"),["assets/device-4c47ea65.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/bat.vue":()=>e(()=>import("./bat-381c4030.js"),["assets/bat-381c4030.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/counter.vue":()=>e(()=>import("./counter-81dd5705.js"),["assets/counter-81dd5705.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/device.vue":()=>e(()=>import("./device-9fec4861.js"),["assets/device-9fec4861.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/inverter.vue":()=>e(()=>import("./inverter-b99fda43.js"),["assets/inverter-b99fda43.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/bat.vue":()=>e(()=>import("./bat-9f789e09.js"),["assets/bat-9f789e09.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/counter.vue":()=>e(()=>import("./counter-3e1bf7f1.js"),["assets/counter-3e1bf7f1.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/counter_consumption.vue":()=>e(()=>import("./counter_consumption-06ae199e.js"),["assets/counter_consumption-06ae199e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/device.vue":()=>e(()=>import("./device-52049b98.js"),["assets/device-52049b98.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/bat.vue":()=>e(()=>import("./bat-01a2f194.js"),["assets/bat-01a2f194.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/device.vue":()=>e(()=>import("./device-dcaf1061.js"),["assets/device-dcaf1061.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/inverter.vue":()=>e(()=>import("./inverter-6427ac53.js"),["assets/inverter-6427ac53.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sungrow/sungrow/device.vue":()=>e(()=>import("./device-91624bc5.js"),["assets/device-91624bc5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sunways/sunways/device.vue":()=>e(()=>import("./device-07a65d9a.js"),["assets/device-07a65d9a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tasmota/tasmota/device.vue":()=>e(()=>import("./device-3a96f207.js"),["assets/device-3a96f207.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/tesla/counter.vue":()=>e(()=>import("./counter-fdeb4506.js"),["assets/counter-fdeb4506.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/tesla/device.vue":()=>e(()=>import("./device-ea2ecac8.js"),["assets/device-ea2ecac8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./thermia/thermia/counter.vue":()=>e(()=>import("./counter-c21587d3.js"),["assets/counter-c21587d3.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./thermia/thermia/device.vue":()=>e(()=>import("./device-daf6231d.js"),["assets/device-daf6231d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./upower/upower/device.vue":()=>e(()=>import("./device-6ea8eb37.js"),["assets/device-6ea8eb37.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./varta/varta/device.vue":()=>e(()=>import("./device-b3818b6c.js"),["assets/device-b3818b6c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./varta/varta/inverter.vue":()=>e(()=>import("./inverter-0b8cbadd.js"),["assets/inverter-0b8cbadd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/bat.vue":()=>e(()=>import("./bat-18693c33.js"),["assets/bat-18693c33.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/counter.vue":()=>e(()=>import("./counter-aa5bda67.js"),["assets/counter-aa5bda67.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/device.vue":()=>e(()=>import("./device-2251901f.js"),["assets/device-2251901f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/inverter.vue":()=>e(()=>import("./inverter-332388ea.js"),["assets/inverter-332388ea.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/counter.vue":()=>e(()=>import("./counter-ac45f9c2.js"),["assets/counter-ac45f9c2.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/device.vue":()=>e(()=>import("./device-7a7db35b.js"),["assets/device-7a7db35b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/inverter.vue":()=>e(()=>import("./inverter-9022a53b.js"),["assets/inverter-9022a53b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./youless/youless/device.vue":()=>e(()=>import("./device-24f54dcc.js"),["assets/device-24f54dcc.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./youless/youless/inverter.vue":()=>e(()=>import("./inverter-ea38ab2a.js"),["assets/inverter-ea38ab2a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.device.vendor}/${this.device.type}/${this.component.type}.vue`),errorComponent:se}):z({loader:()=>x(Object.assign({"./algodue/algodue/device.vue":()=>e(()=>import("./device-57c43c99.js"),["assets/device-57c43c99.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./alpha_ess/alpha_ess/device.vue":()=>e(()=>import("./device-aab545a0.js"),["assets/device-aab545a0.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./ampere/ampere/device.vue":()=>e(()=>import("./device-fba9cb18.js"),["assets/device-fba9cb18.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./avm/avm/device.vue":()=>e(()=>import("./device-d8332f79.js"),["assets/device-d8332f79.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./azzurro_zcs/azzurro_zcs/device.vue":()=>e(()=>import("./device-bba31079.js"),["assets/device-bba31079.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./batterx/batterx/device.vue":()=>e(()=>import("./device-85f57776.js"),["assets/device-85f57776.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./benning/benning/device.vue":()=>e(()=>import("./device-14c83532.js"),["assets/device-14c83532.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./byd/byd/device.vue":()=>e(()=>import("./device-ae4f5ccf.js"),["assets/device-ae4f5ccf.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./carlo_gavazzi/carlo_gavazzi/device.vue":()=>e(()=>import("./device-d7f94b0d.js"),["assets/device-d7f94b0d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./deye/deye/device.vue":()=>e(()=>import("./device-160ed507.js"),["assets/device-160ed507.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./discovergy/discovergy/device.vue":()=>e(()=>import("./device-a0f15220.js"),["assets/device-a0f15220.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./e3dc/e3dc/device.vue":()=>e(()=>import("./device-b933a21c.js"),["assets/device-b933a21c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./elgris/elgris/device.vue":()=>e(()=>import("./device-2671fef8.js"),["assets/device-2671fef8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./enphase/enphase/device.vue":()=>e(()=>import("./device-ab579910.js"),["assets/device-ab579910.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fems/fems/device.vue":()=>e(()=>import("./device-0bd3c0be.js"),["assets/device-0bd3c0be.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fox_ess/fox_ess/device.vue":()=>e(()=>import("./device-803b339a.js"),["assets/device-803b339a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./fronius/fronius/device.vue":()=>e(()=>import("./device-6017ed76.js"),["assets/device-6017ed76.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/http/device.vue":()=>e(()=>import("./device-5c141e99.js"),["assets/device-5c141e99.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/json/device.vue":()=>e(()=>import("./device-7c75fb7c.js"),["assets/device-7c75fb7c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generic/mqtt/device.vue":()=>e(()=>import("./device-4b1ba85f.js"),["assets/device-4b1ba85f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./good_we/good_we/device.vue":()=>e(()=>import("./device-2c55f22c.js"),["assets/device-2c55f22c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./growatt/growatt/device.vue":()=>e(()=>import("./device-45750f00.js"),["assets/device-45750f00.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei/device.vue":()=>e(()=>import("./device-9962b0b8.js"),["assets/device-9962b0b8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_emma/device.vue":()=>e(()=>import("./device-b94aa2cd.js"),["assets/device-b94aa2cd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./huawei/huawei_smartlogger/device.vue":()=>e(()=>import("./device-0ff1683d.js"),["assets/device-0ff1683d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./janitza/janitza/device.vue":()=>e(()=>import("./device-35f7717e.js"),["assets/device-35f7717e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kaco/kaco_tx/device.vue":()=>e(()=>import("./device-77ab491f.js"),["assets/device-77ab491f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko/device.vue":()=>e(()=>import("./device-cbf306be.js"),["assets/device-cbf306be.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_piko_old/device.vue":()=>e(()=>import("./device-18f8c834.js"),["assets/device-18f8c834.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_plenticore/device.vue":()=>e(()=>import("./device-abd46e94.js"),["assets/device-abd46e94.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_sem/device.vue":()=>e(()=>import("./device-9dcf188a.js"),["assets/device-9dcf188a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kostal/kostal_steca/device.vue":()=>e(()=>import("./device-05904d00.js"),["assets/device-05904d00.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./lg/lg/device.vue":()=>e(()=>import("./device-e379eb65.js"),["assets/device-e379eb65.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mtec/mtec/device.vue":()=>e(()=>import("./device-37a05407.js"),["assets/device-37a05407.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mystrom/mystrom/device.vue":()=>e(()=>import("./device-8739b2fb.js"),["assets/device-8739b2fb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./nibe/nibe/device.vue":()=>e(()=>import("./device-ad31bc6c.js"),["assets/device-ad31bc6c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./opendtu/opendtu/device.vue":()=>e(()=>import("./device-86e0a461.js"),["assets/device-86e0a461.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./openwb/openwb_flex/device.vue":()=>e(()=>import("./device-4359519d.js"),["assets/device-4359519d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./orno/orno/device.vue":()=>e(()=>import("./device-4b49e69a.js"),["assets/device-4b49e69a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerdog/powerdog/device.vue":()=>e(()=>import("./device-bb1ccbe7.js"),["assets/device-bb1ccbe7.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./powerfox/powerfox/device.vue":()=>e(()=>import("./device-c8921d75.js"),["assets/device-c8921d75.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./qcells/qcells/device.vue":()=>e(()=>import("./device-022cb7a5.js"),["assets/device-022cb7a5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./rct/rct/device.vue":()=>e(()=>import("./device-8ec43ff9.js"),["assets/device-8ec43ff9.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./saxpower/saxpower/device.vue":()=>e(()=>import("./device-54b2f204.js"),["assets/device-54b2f204.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./shelly/shelly/device.vue":()=>e(()=>import("./device-4bbfca01.js"),["assets/device-4bbfca01.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens/device.vue":()=>e(()=>import("./device-115ca373.js"),["assets/device-115ca373.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./siemens/siemens_sentron/device.vue":()=>e(()=>import("./device-3c6d5af6.js"),["assets/device-3c6d5af6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sigenergy/sigenergy/device.vue":()=>e(()=>import("./device-444877fe.js"),["assets/device-444877fe.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_boy/device.vue":()=>e(()=>import("./device-6081837f.js"),["assets/device-6081837f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_sunny_island/device.vue":()=>e(()=>import("./device-91d8873a.js"),["assets/device-91d8873a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sma/sma_webbox/device.vue":()=>e(()=>import("./device-b3265f86.js"),["assets/device-b3265f86.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smart_me/smart_me/device.vue":()=>e(()=>import("./device-46ed909c.js"),["assets/device-46ed909c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smartfox/smartfox/device.vue":()=>e(()=>import("./device-04198354.js"),["assets/device-04198354.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sofar/sofar/device.vue":()=>e(()=>import("./device-026ba885.js"),["assets/device-026ba885.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_log/solar_log/device.vue":()=>e(()=>import("./device-7def54a5.js"),["assets/device-7def54a5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_view/solar_view/device.vue":()=>e(()=>import("./device-30bde472.js"),["assets/device-30bde472.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_watt/solar_watt/device.vue":()=>e(()=>import("./device-b2f0a632.js"),["assets/device-b2f0a632.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solar_world/solar_world/device.vue":()=>e(()=>import("./device-7d03d320.js"),["assets/device-7d03d320.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solaredge/solaredge/device.vue":()=>e(()=>import("./device-585500cc.js"),["assets/device-585500cc.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solarmax/solarmax/device.vue":()=>e(()=>import("./device-2f6474c4.js"),["assets/device-2f6474c4.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solax/solax/device.vue":()=>e(()=>import("./device-4c47ea65.js"),["assets/device-4c47ea65.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./solis/solis/device.vue":()=>e(()=>import("./device-9fec4861.js"),["assets/device-9fec4861.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sonnen/sonnenbatterie/device.vue":()=>e(()=>import("./device-52049b98.js"),["assets/device-52049b98.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./studer/studer/device.vue":()=>e(()=>import("./device-dcaf1061.js"),["assets/device-dcaf1061.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sungrow/sungrow/device.vue":()=>e(()=>import("./device-91624bc5.js"),["assets/device-91624bc5.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./sunways/sunways/device.vue":()=>e(()=>import("./device-07a65d9a.js"),["assets/device-07a65d9a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tasmota/tasmota/device.vue":()=>e(()=>import("./device-3a96f207.js"),["assets/device-3a96f207.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/tesla/device.vue":()=>e(()=>import("./device-ea2ecac8.js"),["assets/device-ea2ecac8.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./thermia/thermia/device.vue":()=>e(()=>import("./device-daf6231d.js"),["assets/device-daf6231d.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./upower/upower/device.vue":()=>e(()=>import("./device-6ea8eb37.js"),["assets/device-6ea8eb37.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./varta/varta/device.vue":()=>e(()=>import("./device-b3818b6c.js"),["assets/device-b3818b6c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./victron/victron/device.vue":()=>e(()=>import("./device-2251901f.js"),["assets/device-2251901f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./vzlogger/vzlogger/device.vue":()=>e(()=>import("./device-7a7db35b.js"),["assets/device-7a7db35b.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./youless/youless/device.vue":()=>e(()=>import("./device-24f54dcc.js"),["assets/device-24f54dcc.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.device.vendor}/${this.device.type}/device.vue`),errorComponent:_e})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function me(t,o,i,m,s,n){return v(),E(Z(n.getComponent()),{device:i.device,component:i.component,configuration:i.component?i.component.configuration:i.device.configuration,"device-id":i.device.id,"device-type":i.device.type,"component-id":i.component?i.component.id:void 0,"component-type":i.component?i.component.type:void 0,"onUpdate:configuration":o[0]||(o[0]=l=>n.updateConfiguration(l))},null,40,["device","component","configuration","device-id","device-type","component-id","component-type"])}const pe=I(ae,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbConfigProxy.vue"]]);S.add(U,q,G,N,K,F,H);const le={name:"OpenwbHardwareInstallationView",components:{FontAwesomeIcon:$,OpenwbConfigProxy:pe},mixins:[J],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/counter/get/hierarchy","openWB/system/device/+/config","openWB/system/device/+/component/+/config","openWB/system/configurable/devices_components"],selectedVendor:void 0,deviceToAdd:void 0,showDeviceRemoveModal:!1,modalDevice:void 0,modalDeviceName:"",componentToAdd:[],showComponentRemoveModal:!1,modalComponent:void 0,modalComponentName:""}},computed:{installedDevices:{get(){return this.getWildcardTopics("openWB/system/device/+/config")}},installedComponents:{get(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")}},vendorList:{get(){return this.$store.state.mqtt["openWB/system/configurable/devices_components"]===void 0?[]:Object.entries(this.$store.state.mqtt["openWB/system/configurable/devices_components"]).map(([t,o])=>({label:o.group_name,options:Object.entries(o.vendors).map(([i,m])=>({value:[t,i],text:m.vendor_name})).sort((i,m)=>i.text.localeCompare(m.text))})).sort((t,o)=>-t.label.localeCompare(o.label))}},deviceList:{get(){if(this.selectedVendor===void 0)return[];let[t,o]=this.selectedVendor;return Object.entries(this.$store.state.mqtt["openWB/system/configurable/devices_components"][t].vendors[o].devices).map(([i,m])=>({value:[o,i],text:m.device_name})).sort((i,m)=>i.text.localeCompare(m.text))}}},methods:{getComponentTypeClass(t){return t.match(/^(.+_)?counter(_.+)?$/)?"danger":t.match(/^(.+_)?inverter(_.+)?$/)?"success":t.match(/^(.+_)?bat(_.+)?$/)?"warning":"dark"},getComponentTypeIcon(t){return t.match(/^(.+_)?counter(_.+)?$/)?["fas","fa-gauge-high"]:t.match(/^(.+_)?inverter(_.+)?$/)?["fas","fa-solar-panel"]:t.match(/^(.+_)?bat(_.+)?$/)?["fas","fa-car-battery"]:["fas","fa-microchip"]},getMyInstalledComponents(t){return this.getWildcardTopics("openWB/system/device/"+t+"/component/+/config")},deviceHasConfiguredComponents(t){return Object.keys(this.getMyInstalledComponents(t)).length>0},addDevice(){this.$emit("sendCommand",{command:"addDevice",data:{vendor:this.deviceToAdd[0],type:this.deviceToAdd[1]}})},removeDeviceModal(t,o,i){i.stopPropagation(),this.modalDevice=t,this.modalDeviceName=o,this.showDeviceRemoveModal=!0},removeDevice(t){this.showDeviceRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeDevice",data:{id:this.modalDevice}})},addComponent(t,o,i,m){this.$emit("sendCommand",{command:"addComponent",data:{deviceId:t,deviceType:i,deviceVendor:o,type:m}})},removeComponentModal(t,o,i,m,s){s.stopPropagation(),this.modalComponent={deviceId:t,id:o,type:i},this.modalComponentName=m,this.showComponentRemoveModal=!0},removeComponent(t){this.showComponentRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeComponent",data:this.modalComponent})},getComponentList(t,o){if(t===void 0||o===void 0)return[];let i=[];return Object.values(this.$store.state.mqtt["openWB/system/configurable/devices_components"]).every(m=>m.vendors[t]!==void 0?(m.vendors[t].devices[o]!==void 0&&(i=Object.entries(m.vendors[t].devices[o].components).map(([n,l])=>({value:n,text:l.component_name}))),!1):!0),i},updateConfiguration(t,o){console.debug("updateConfiguration",t,o),this.updateState(t,o.value,o.object)}}},ce={class:"hardwareInstallation"},Ee={name:"hardwareInstallationForm"},ge={key:0},Ve={key:1},fe={key:1},Oe={key:0};function Te(t,o,i,m,s,n){const l=p("openwb-base-modal-dialog"),b=p("router-link"),T=p("openwb-base-alert"),A=p("font-awesome-icon"),D=p("openwb-base-avatar"),P=p("openwb-base-text-input"),C=p("openwb-config-proxy"),M=p("openwb-base-heading"),w=p("openwb-base-card"),y=p("openwb-base-select-input"),j=p("openwb-base-submit-buttons");return v(),g(L,null,[u(l,{show:s.showDeviceRemoveModal,title:"Gerät löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:n.removeDevice},{default:r(()=>[d(' Wollen Sie das Gerät "'+f(s.modalDeviceName)+'" inklusive aller Komponenten wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),u(l,{show:s.showComponentRemoveModal,title:"Komponente löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:n.removeComponent},{default:r(()=>[d(' Wollen Sie die Komponente "'+f(s.modalComponentName)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),c("div",ce,[c("form",Ee,[i.installAssistantActive?R("",!0):(v(),E(T,{key:0,subtype:"info"},{default:r(()=>[o[7]||(o[7]=d(" Wenn neue Komponenten - insbesondere Zähler - konfiguriert wurden, ist auch das ",-1)),u(b,{to:"/LoadManagementConfiguration"},{default:r(()=>o[6]||(o[6]=[d(" Lastmanagement ",-1)])),_:1,__:[6]}),o[8]||(o[8]=d(" zu prüfen!",-1)),o[9]||(o[9]=c("br",null,null,-1)),o[10]||(o[10]=d(" Je nach Hersteller muss eventuell die Kommunikation im Wechselrichter freigegeben werden (z.B. Aktivierung Modbus TCP, Portfreigaben o.Ä.) ",-1))]),_:1,__:[7,8,9,10]})),u(w,{title:"Geräte und Komponenten"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(v(),g("div",ge,[u(T,{subtype:"info"},{default:r(()=>o[11]||(o[11]=[d(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[11]})])):(v(),g("div",Ve,[(v(!0),g(L,null,k(n.installedDevices,(_,h)=>(v(),E(w,{key:h,collapsible:!0,collapsed:!0,subtype:"dark"},{header:r(()=>[u(A,{icon:["fas","network-wired"]}),d(" "+f(_==null?void 0:_.name),1)]),actions:r(a=>[a.collapsed?(v(),g("div",fe,[(v(!0),g(L,null,k(n.getMyInstalledComponents(_==null?void 0:_.id),V=>(v(),E(D,{key:V.id,class:Y("ml-1 bg-"+n.getComponentTypeClass(V.type))},{default:r(()=>[u(A,{icon:n.getComponentTypeIcon(V.type)},null,8,["icon"])]),_:2},1032,["class"]))),128))])):(v(),E(D,{key:0,class:"bg-danger clickable",onClick:V=>n.removeDeviceModal(_==null?void 0:_.id,_==null?void 0:_.name,V)},{default:r(()=>[u(A,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:r(()=>[u(P,{title:"Bezeichnung",subtype:"text","model-value":_==null?void 0:_.name,"onUpdate:modelValue":a=>t.updateState(h,a,"name")},null,8,["model-value","onUpdate:modelValue"]),o[19]||(o[19]=c("hr",null,null,-1)),u(C,{device:_,"onUpdate:configuration":a=>n.updateConfiguration(h,a)},null,8,["device","onUpdate:configuration"]),o[20]||(o[20]=c("hr",null,null,-1)),u(M,null,{default:r(()=>[...o[12]||(o[12]=[d("Komponenten",-1)])]),_:1,__:[12]}),n.deviceHasConfiguredComponents(_==null?void 0:_.id)?R("",!0):(v(),E(T,{key:0,subtype:"warning"},{default:r(()=>[...o[13]||(o[13]=[d(" Es wurden noch keine Komponenten zu diesem Gerät angelegt. ",-1)])]),_:1,__:[13]})),(v(!0),g(L,null,k(n.getMyInstalledComponents(_.id),(a,V)=>(v(),E(w,{key:a.id,collapsible:!0,collapsed:!0,subtype:n.getComponentTypeClass(a.type)},{header:r(()=>[u(A,{icon:n.getComponentTypeIcon(a.type)},null,8,["icon"]),d(" "+f(a.name),1)]),actions:r(O=>[O.collapsed?R("",!0):(v(),E(D,{key:0,class:"bg-danger clickable",onClick:W=>n.removeComponentModal(_.id,a.id,a.type,a.name,W)},{default:r(()=>[u(A,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:r(()=>[u(P,{title:"Bezeichnung",subtype:"text","model-value":a.name,"onUpdate:modelValue":O=>t.updateState(V,O,"name")},null,8,["model-value","onUpdate:modelValue"]),u(P,{title:"Hersteller",subtype:"text","model-value":a.info.manufacturer,"onUpdate:modelValue":O=>t.updateState(V,O,"info.manufacturer")},{help:r(()=>[...o[14]||(o[14]=[d(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),u(P,{title:"Modell",subtype:"text","model-value":a.info.model,"onUpdate:modelValue":O=>t.updateState(V,O,"info.model")},{help:r(()=>[...o[15]||(o[15]=[d(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),o[16]||(o[16]=c("hr",null,null,-1)),u(C,{device:_,component:a,"onUpdate:configuration":O=>n.updateConfiguration(V,O)},null,8,["device","component","onUpdate:configuration"])]),_:2,__:[16]},1032,["subtype"]))),128)),o[21]||(o[21]=c("hr",null,null,-1)),n.getComponentList(_.vendor,_.type).length?(v(),E(y,{key:1,title:"Verfügbare Komponenten","not-selected":"Bitte auswählen",options:n.getComponentList(_.vendor,_.type),"model-value":s.componentToAdd[_.id],"add-button":!0,"onUpdate:modelValue":a=>s.componentToAdd[_.id]=a,"onInput:add":a=>n.addComponent(_.id,_.vendor,_.type,s.componentToAdd[_.id])},{help:r(()=>[...o[17]||(o[17]=[d(" Bitte eine Komponente auswählen, die hinzugefügt werden soll. Für jeden Datensatz, z.B. Wechselrichter- und Batteriedaten, muss eine Wechselrichter- und eine Batteriekomponente hinzugefügt werden. ",-1)])]),_:2},1032,["options","model-value","onUpdate:modelValue","onInput:add"])):(v(),E(T,{key:2,subtype:"info"},{default:r(()=>[...o[18]||(o[18]=[d(" Dieses System bietet keine Komponenten zur Installation an. ",-1)])]),_:1,__:[18]}))]),_:2,__:[19,20,21]},1024))),128)),Object.keys(n.installedDevices).length>0?(v(),g("hr",Oe)):R("",!0),u(y,{modelValue:s.selectedVendor,"onUpdate:modelValue":o[0]||(o[0]=_=>s.selectedVendor=_),title:"Hersteller","not-selected":"Bitte auswählen",groups:n.vendorList},null,8,["modelValue","groups"]),u(y,{modelValue:s.deviceToAdd,"onUpdate:modelValue":[o[1]||(o[1]=_=>s.deviceToAdd=_),o[2]||(o[2]=_=>s.deviceToAdd=_)],title:"Verfügbare Geräte","not-selected":"Bitte auswählen",disabled:s.selectedVendor===void 0,options:n.deviceList,"model-value":s.deviceToAdd,"add-button":!0,"onInput:add":n.addDevice},{help:r(()=>o[22]||(o[22]=[c("p",null,[d(' Die openWB-Regelung ist auf Werte von Messpunkten (Zähler, Energy Meter usw.) angewiesen. Hierfür werden "Geräte" und "Komponenten" verwendet.'),c("br"),d(' Ein "Gerät" wird hierbei durch seine Verbindungseinstellungen (z.B. IP-Adresse) spezifiziert (häufig durch manuelle Eingabe oder manchmal automatisch ermittelt) und kann über mehrere untergeordnete "Komponenten" verfügen, z.B. einen Messpunkt für PV-Erzeugung, einen Messpunkt für Netzeinspeisung/-bezug am EVU-Punkt usw.. Ein "Gerät" bedingt somit immer mindestens eine zugehörige "Komponente". ')],-1),c("p",null,[d(' Bsp: Werden die Werte von verschiedenen Messpunkten (z.B. PV und EVU) über die gleiche IP-Adresse abgefragt, wird dafür ein "Gerät" mit zwei "Komponenten" für PV- und EVU- Messpunkt angelegt.'),c("br"),d(' Verfügt dagegen jeder Messpunkt über eine eigene IP-Adresse, wird jeder Messpunkt als eigenes "Gerät" mit nur einer "Komponente" angelegt. ')],-1),c("p",null,' Das "Gerät" wird in der Dropdown-Liste ausgewählt und mit "+" der Regelung hinzugefügt. Im Anschluss erfolgt die Konfiguration des "Gerätes" innerhalb des schwarzen "Geräte"-Reiters. ',-1)])),_:1},8,["modelValue","disabled","options","model-value","onInput:add"])]))]),_:1}),u(j,{"form-name":"hardwareInstallationForm",onSave:o[3]||(o[3]=_=>t.$emit("save")),onReset:o[4]||(o[4]=_=>t.$emit("reset")),onDefaults:o[5]||(o[5]=_=>t.$emit("defaults"))})])])],64)}const Ie=I(le,[["render",Te],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/HardwareInstallation.vue"]]),Le=Object.freeze(Object.defineProperty({__proto__:null,default:Ie},Symbol.toStringTag,{value:"Module"}));export{re as C,B as D,Ie as H,Le as a}; diff --git a/web/settings/assets/IdentificationConfig-1a2c5700.js b/web/settings/assets/IdentificationConfig-1a2c5700.js new file mode 100644 index 0000000000..b4b52ff86d --- /dev/null +++ b/web/settings/assets/IdentificationConfig-1a2c5700.js @@ -0,0 +1,2 @@ +import{C as $}from"./index-c94f8df4.js";import{_ as D,u as m,l as o,m as u,A as r,G as s,E as i,B as a,x as l,z as g,N as W,M as z,F as b}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";const I={name:"IdentificationConfigView",mixins:[$],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/chargepoint/+/config","openWB/chargepoint/+/get/rfid","openWB/chargepoint/+/get/vehicle_id","openWB/chargepoint/+/get/rfid_timestamp","openWB/chargepoint/+/set/rfid","openWB/optional/rfid/active","openWB/chargepoint/template/+","openWB/vehicle/template/charge_template/+","openWB/vehicle/+/name","openWB/vehicle/+/charge_template","openWB/vehicle/+/tag_id"],tempIdTagList:{}}},computed:{idTagList(){return Object.values(this.updateIdTagList())},chargePointTemplates:{get(){return this.getWildcardTopics("openWB/chargepoint/template/+")}},vehicleIndexes:{get(){return this.getWildcardIndexList("openWB/vehicle/+/name")}}},methods:{getIdFromTopic(e){return e.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,"")},updateIdTagList(){return Object.entries(this.getWildcardTopics("^openWB/chargepoint/[^+/]+/[gs]et/(rfid|vehicle_id)$",!0)).forEach(e=>{e[1]!==null&&(this.tempIdTagList[e[1]]=`${e[1]} (${e[0].includes("/set/")?"zugewiesen":"erfasst"} an ${this.getChargePointName(this.getIdFromTopic(e[0]))})`)}),this.tempIdTagList},getChargePointName(e){return this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"]?this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"].name:"Ladepunkt "+e},getChargePointTemplateIndex(e){return parseInt(e.match(/([^/]+)$/)[0])},getVehicleName(e){return this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]?this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]:"Fahrzeug "+e}}},y={class:"optionalComponents"},F={name:"optionalComponentsForm"},L={key:2},q={key:0},S={key:2},T={key:0};function V(e,t,E,C,N,f){const d=m("openwb-base-alert"),c=m("openwb-base-button-group-input"),_=m("openwb-base-textarea"),v=m("openwb-base-card"),h=m("openwb-base-heading"),B=m("openwb-base-array-input"),w=m("openwb-base-submit-buttons");return o(),u("div",y,[r("form",F,[s(v,{title:"Identifikation"},{default:i(()=>[s(d,{subtype:"info"},{default:i(()=>[...t[4]||(t[4]=[a(" Die Identifikation kann zum Entsperren von Ladepunkten und/oder zur Zuordnung von Fahrzeugen genutzt werden und kann auf mehreren Wegen erfolgen: ",-1),r("ul",null,[r("li",null,"Über einen RFID-Reader (optional in der openWB verbaut, z.B. anhand des Lieferscheins prüfen)."),r("li",null," Durch die automatische Fahrzeugerkennung der openWB Pro/ Pro+ (in den Einstellungen der openWB Pro aktivieren). "),r("li",null,"Durch manuelle Eingabe einer ID an einer openWB mit Display.")],-1),r("p",null,"Bei openWB Pro/Pro+ werden RFID-Tags nur bei angestecktem Fahrzeug erfasst!",-1),r("p",null,[a(" Für die Erkennung kann auch ein Muster (mittels Wildcards) hinterlegt werden. Ein Fragezeichen (?) entspricht dabei einem Zeichen, ein Stern (*) beliebig vielen Zeichen. So ist bspw. die Erkennung von Fahrzeugen mit wechselnder ID (u.a. Fahrzeuge der VW Gruppe) möglich."),r("br"),a(" Es wird davon abgeraten, Muster für die Entsperrung von öffentlich zugänglichen Ladepunkten zu nutzen, um unbefugten Zugriff zu vermeiden. ")],-1)])]),_:1}),s(c,{title:"Identifikation aktivieren","model-value":e.$store.state.mqtt["openWB/optional/rfid/active"],buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":t[0]||(t[0]=n=>e.updateState("openWB/optional/rfid/active",n))},null,8,["model-value"]),e.$store.state.mqtt["openWB/general/extern"]===!0?(o(),l(d,{key:0,subtype:"info",class:"mt-3"},{default:i(()=>[...t[5]||(t[5]=[a(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})):e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(o(),l(_,{key:1,title:"Erkannte ID-Tags",readonly:"",disabled:"","model-value":f.idTagList.join(` +`)},null,8,["model-value"])):g("",!0)]),_:1}),s(h,null,{default:i(()=>[...t[6]||(t[6]=[a(" Entsperren von Ladepunkten (gekoppelt an Ladepunkt-Profil) ",-1)])]),_:1}),s(v,{title:"Ladepunkt-Profile",collapsible:!0,collapsed:!0},{default:i(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(o(),l(d,{key:0,subtype:"info"},{default:i(()=>[...t[7]||(t[7]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet.',-1),r("br",null,null,-1),a(' Die Konfiguration zum Entsperren von Ladepunkten bitte auf der "primary" openWB durchführen. ',-1)])]),_:1})):e.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(o(),l(d,{key:1,subtype:"info"},{default:i(()=>[...t[8]||(t[8]=[a(" Diese Einstellungen sind nur verfügbar, wenn Identifikation aktiviert ist. ",-1)])]),_:1})):(o(),u("div",L,[s(d,{subtype:"info"},{default:i(()=>[...t[9]||(t[9]=[a(" Hier zugeordnete ID-Tags entsperren beim Scannen das jeweilige Ladepunkt-Profil. Der ID-Tag kann an jedem Ladepunkt genutzt werden, dem das entsprechende Ladepunkt-Profil zugeordnet wurde. ",-1)])]),_:1}),(o(!0),u(W,null,z(f.chargePointTemplates,(n,p)=>(o(),u("div",{key:p},[f.getChargePointTemplateIndex(p)!=0?(o(),u("hr",q)):g("",!0),s(h,{class:"mt-0"},{default:i(()=>[a(b(n.name),1)]),_:2},1024),e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(o(),l(B,{key:1,title:"Zugeordnete ID-Tags","no-elements-message":'"'+n.name+'" sind keine ID-Tags zugeordnet.',pattern:"^[^\\s].*[^\\s]$","model-value":n.valid_tags,"onUpdate:modelValue":k=>e.updateState(p,k,"valid_tags")},null,8,["no-elements-message","model-value","onUpdate:modelValue"])):g("",!0),s(c,{title:"Sperre nach Abstecken",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.disable_after_unplug,"onUpdate:modelValue":k=>e.updateState(p,k,"disable_after_unplug")},{help:i(()=>[a(' Ist "Sperre nach Abstecken" aktiviert, wird der Ladepunkt mit Ladepunkt-Profil "'+b(n.name)+'" nach Abstecken eines Fahrzeugs automatisch gesperrt. Ist die Funktion deaktiviert, bleibt der Ladepunkt entsperrt. ',1)]),_:2},1032,["model-value","onUpdate:modelValue"])]))),128))]))]),_:1}),s(h,null,{default:i(()=>[...t[10]||(t[10]=[a(" Zuordnung von Fahrzeugen ",-1)])]),_:1}),s(v,{title:"Fahrzeuge",subtype:"info",collapsible:!0,collapsed:!0},{default:i(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(o(),l(d,{key:0,subtype:"info"},{default:i(()=>[...t[11]||(t[11]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet.',-1),r("br",null,null,-1),a(' Die Konfiguration zur Fahrzeugzuordnung bitte auf der "primary" openWB durchführen. ',-1)])]),_:1})):e.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(o(),l(d,{key:1,subtype:"info"},{default:i(()=>[...t[12]||(t[12]=[a(" Diese Einstellungen sind nur verfügbar, wenn Identifikation aktiviert ist. ",-1)])]),_:1})):(o(),u("div",S,[s(d,{subtype:"info"},{default:i(()=>[...t[13]||(t[13]=[a(" Hier zugeordnete ID-Tags weisen dem Ladepunkt beim Scannen automatisch das jeweilige Fahrzeug zu. Ist bei Scannen des ID-Tags noch kein Fahrzeug angeschlossen muss dies zeitnah erfolgen, da der ID-Tag nach 5 Minuten verworfen wird. ",-1)])]),_:1}),(o(!0),u(W,null,z(f.vehicleIndexes,n=>(o(),u("div",{key:n},[n!=f.vehicleIndexes[0]?(o(),u("hr",T)):g("",!0),s(h,{class:"mt-0"},{default:i(()=>[a(b(e.$store.state.mqtt["openWB/vehicle/"+n+"/name"]),1)]),_:2},1024),e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(o(),l(B,{key:1,title:"Zugeordnete ID-Tags","no-elements-message":'"'+e.$store.state.mqtt["openWB/vehicle/"+n+"/name"]+'" sind keine ID-Tags zugeordnet.',pattern:"^[^\\s].*[^\\s]$","model-value":e.$store.state.mqtt["openWB/vehicle/"+n+"/tag_id"],"onUpdate:modelValue":p=>e.updateState("openWB/vehicle/"+n+"/tag_id",p)},null,8,["no-elements-message","model-value","onUpdate:modelValue"])):g("",!0),n!=0?(o(),l(c,{key:2,title:"Standard-Fahrzeug nach Abstecken zuordnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":e.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"]].load_default,"onUpdate:modelValue":p=>e.updateState("openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"],p,"load_default")},{help:i(()=>[a(' Ist diese Option aktiviert, wird am Ladepunkt nach Abstecken auf das Standard-Fahrzeug zurückgesetzt. Die Option ist im Lade-Profil "'+b(e.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"]].name)+'" gespeichert.',1),t[14]||(t[14]=r("br",null,null,-1)),a(' "Standard-Fahrzeug nach Abstecken" ist für alle Fahrzeuge '+b(e.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"]].load_default===!0?"aktiviert":"deaktiviert")+" , denen dieses Lade-Profil zugeordnet wurde. ",1)]),_:2},1032,["model-value","onUpdate:modelValue"])):g("",!0)]))),128))]))]),_:1}),s(w,{"form-name":"optionalComponentsForm",onSave:t[1]||(t[1]=n=>e.$emit("save")),onReset:t[2]||(t[2]=n=>e.$emit("reset")),onDefaults:t[3]||(t[3]=n=>e.$emit("defaults"))})])])}const R=D(I,[["render",V],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/IdentificationConfig.vue"]]);export{R as default}; diff --git a/web/settings/assets/IdentificationConfig-a3531ccb.js b/web/settings/assets/IdentificationConfig-a3531ccb.js deleted file mode 100644 index 5f496c6e11..0000000000 --- a/web/settings/assets/IdentificationConfig-a3531ccb.js +++ /dev/null @@ -1,2 +0,0 @@ -import{C as $}from"./index-8dd8e083.js";import{_ as w,u as p,l as o,m as s,A as l,G as a,E as r,B as i,z as f,N as k,M as B,F as b,x as y}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const F={name:"IdentificationConfigView",mixins:[$],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/chargepoint/+/config","openWB/chargepoint/+/get/rfid","openWB/chargepoint/+/get/vehicle_id","openWB/chargepoint/+/get/rfid_timestamp","openWB/chargepoint/+/set/rfid","openWB/optional/rfid/active","openWB/chargepoint/template/+","openWB/vehicle/template/charge_template/+","openWB/vehicle/+/name","openWB/vehicle/+/charge_template","openWB/vehicle/+/tag_id"],tempIdTagList:{}}},computed:{idTagList(){return Object.values(this.updateIdTagList())},chargePointTemplates:{get(){return this.getWildcardTopics("openWB/chargepoint/template/+")}},vehicleIndexes:{get(){return this.getWildcardIndexList("openWB/vehicle/+/name")}}},methods:{getIdFromTopic(e){return e.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,"")},updateIdTagList(){return Object.entries(this.getWildcardTopics("^openWB/chargepoint/[^+/]+/[gs]et/(rfid|vehicle_id)$",!0)).forEach(e=>{e[1]!==null&&(this.tempIdTagList[e[1]]=`${e[1]} (${e[0].includes("/set/")?"zugewiesen":"erfasst"} an ${this.getChargePointName(this.getIdFromTopic(e[0]))})`)}),this.tempIdTagList},getChargePointName(e){return this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"]?this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"].name:"Ladepunkt "+e},getChargePointTemplateIndex(e){return parseInt(e.match(/([^/]+)$/)[0])},getVehicleName(e){return this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]?this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]:"Fahrzeug "+e}}},D={class:"optionalComponents"},L={name:"optionalComponentsForm"},I={key:0},q={key:1},V={key:0},S={key:0},T={key:1},E={key:2},C={key:0},N={key:0},A={key:1},P={key:2},U=["title","collapsed"],Z={key:0},j={key:0},O={key:1};function R(e,t,G,H,J,m){const u=p("openwb-base-alert"),h=p("openwb-base-button-group-input"),W=p("openwb-base-textarea"),c=p("openwb-base-card"),g=p("openwb-base-heading"),_=p("openwb-base-array-input"),z=p("openwb-base-submit-buttons");return o(),s("div",D,[l("form",L,[a(c,{title:"Identifikation"},{default:r(()=>[a(u,{subtype:"info"},{default:r(()=>t[4]||(t[4]=[i(" Die Identifikation kann zum Entsperren von Ladepunkten und/oder zur Zuordnung von Fahrzeugen genutzt werden und kann auf mehreren Wegen erfolgen: ",-1),l("ul",null,[l("li",null,"Über einen RFID-Reader (optional in der openWB verbaut, z.B. anhand des Lieferscheins prüfen)."),l("li",null," Durch die automatische Fahrzeugerkennung der openWB Pro/ Pro+ (in den Einstellungen der openWB Pro aktivieren). "),l("li",null,"Durch manuelle Eingabe einer ID an einer openWB mit Display.")],-1),l("p",null,"Bei openWB Pro/Pro+ werden RFID-Tags nur bei angestecktem Fahrzeug erfasst!",-1),l("p",null,[i(" Für die Erkennung kann auch ein Muster (mittels Wildcards) hinterlegt werden. Ein ? entspricht dabei einem Zeichen, ein * beliebig vielen Zeichen. So ist bspw. die Erkennung von Fahrzeugen mit wechselnder ID (u.a. Fahrzeuge der VW Gruppe) möglich."),l("br"),i(" Es wird davon abgeraten die Funktion für die Entsperrung von öffentlich zugänglichen Ladepunkten zu nutzen, um unbefugten Zugriff zu vermeiden. ")],-1)])),_:1,__:[4]}),a(h,{title:"Identifikation aktivieren","model-value":e.$store.state.mqtt["openWB/optional/rfid/active"],buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":t[0]||(t[0]=n=>e.updateState("openWB/optional/rfid/active",n))},null,8,["model-value"]),e.$store.state.mqtt["openWB/general/extern"]===!0?(o(),s("div",I,[a(u,{subtype:"info"},{default:r(()=>t[5]||(t[5]=[i(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[5]})])):(o(),s("div",q,[e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(o(),s("div",V,[a(W,{title:"Erkannte ID-Tags",readonly:"",disabled:"","model-value":m.idTagList.join(` -`)},null,8,["model-value"])])):f("",!0)]))]),_:1}),a(g,{class:"mt-0"},{default:r(()=>t[6]||(t[6]=[i(" Entsperren von Ladepunkten (gekoppelt an Ladepunkt-Profil) ",-1)])),_:1,__:[6]}),l("div",null,[a(c,{title:"Ladepunkt-Profile",collapsible:!0,collapsed:!0},{default:r(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(o(),s("div",S,[a(u,{subtype:"info"},{default:r(()=>t[7]||(t[7]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet.',-1),l("br",null,null,-1),i(' Die Konfiguration zum Entsperren von Ladepunkten bitte auf der "primary" openWB durchführen. ',-1)])),_:1,__:[7]})])):e.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(o(),s("div",T,[a(u,{subtype:"info"},{default:r(()=>t[8]||(t[8]=[i(" Diese Einstellungen sind nur verfügbar, wenn Identifikation aktiviert ist. ",-1)])),_:1,__:[8]})])):(o(),s("div",E,[a(u,{subtype:"info"},{default:r(()=>t[9]||(t[9]=[i(" Hier zugeordnete ID-Tags entsperren beim Scannen das jeweilige Ladepunkt-Profil. Der ID-Tag kann an jedem Ladepunkt genutzt werden, dem das entsprechende Ladepunkt-Profil zugeordnet wurde. ",-1)])),_:1,__:[9]}),(o(!0),s(k,null,B(m.chargePointTemplates,(n,d)=>(o(),s("div",{key:d},[a(g,{class:"mt-0"},{default:r(()=>[i(b(n.name),1)]),_:2},1024),e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(o(),s("div",C,[a(_,{title:"Zugeordnete ID-Tags","no-elements-message":'"'+n.name+'" sind keine ID-Tags zugeordnet.',pattern:"^[^\\s].*[^\\s]$","model-value":n.valid_tags,"onUpdate:modelValue":v=>e.updateState(d,v,"valid_tags")},null,8,["no-elements-message","model-value","onUpdate:modelValue"])])):f("",!0),a(h,{title:"Sperre nach Abstecken",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.disable_after_unplug,"onUpdate:modelValue":v=>e.updateState(d,v,"disable_after_unplug")},{help:r(()=>[i(b('Ist "Sperre nach Abstecken" aktiviert, wird der Ladepunkt mit Ladepunkt-Profil "'+n.name+'" nach Abstecken eines Fahrzeugs automatisch gesperrt. Ist die Funktion deaktiviert, bleibt der Ladepunkt entsperrt.'),1)]),_:2},1032,["model-value","onUpdate:modelValue"]),t[10]||(t[10]=l("br",null,null,-1))]))),128))]))]),_:1})]),a(g,{class:"mt-0"},{default:r(()=>t[11]||(t[11]=[i(" Zuordnung von Fahrzeugen ",-1)])),_:1,__:[11]}),l("div",null,[a(c,{subtype:"info",collapsible:!0,collapsed:e.$route.params.section!="vehicle"},{header:r(()=>t[12]||(t[12]=[i(" Fahrzeuge ",-1)])),default:r(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(o(),s("div",N,[a(u,{subtype:"info"},{default:r(()=>t[13]||(t[13]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet.',-1),l("br",null,null,-1),i(' Die Konfiguration zur Fahrzeugzuordnung bitte auf der "primary" openWB durchführen. ',-1)])),_:1,__:[13]})])):e.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(o(),s("div",A,[a(u,{subtype:"info"},{default:r(()=>t[14]||(t[14]=[i(" Diese Einstellungen sind nur verfügbar, wenn Identifikation aktiviert ist. ",-1)])),_:1,__:[14]})])):(o(),s("div",P,[a(u,{subtype:"info"},{default:r(()=>t[15]||(t[15]=[i(" Hier zugeordnete ID-Tags weisen dem Ladepunkt beim Scannen automatisch das jeweilige Fahrzeug zu. Ist bei Scannen des ID-Tags noch kein Fahrzeug angeschlossen muss dies zeitnah erfolgen, da der ID-Tag nach 5min verworfen wird. ",-1)])),_:1,__:[15]}),(o(!0),s(k,null,B(m.vehicleIndexes,n=>(o(),s("div",{key:n,title:m.getVehicleName(n),collapsible:!0,collapsed:!(e.$route.params.section=="vehicle"&&parseInt(e.$route.params.section_index)==n),subtype:"info"},[t[16]||(t[16]=l("br",null,null,-1)),a(g,{class:"mt-0"},{default:r(()=>[i(b(e.$store.state.mqtt["openWB/vehicle/"+n+"/name"]),1)]),_:2},1024),e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(o(),s("div",Z,[a(_,{title:"Zugeordnete ID-Tags","no-elements-message":'"'+e.$store.state.mqtt["openWB/vehicle/"+n+"/name"]+'" sind keine ID-Tags zugeordnet.',pattern:"^[^\\s].*[^\\s]$","model-value":e.$store.state.mqtt["openWB/vehicle/"+n+"/tag_id"],"onUpdate:modelValue":d=>e.updateState("openWB/vehicle/"+n+"/tag_id",d)},null,8,["no-elements-message","model-value","onUpdate:modelValue"])])):f("",!0),n!=0?(o(),y(h,{key:1,title:"Standard-Fahrzeug nach Abstecken zuordnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":e.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"]].load_default,"onUpdate:modelValue":d=>e.updateState("openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"],d,"load_default")},{help:r(()=>[i(b('Ist diese Option aktiviert, wird am Ladepunkt nach Abstecken auf das Standard-Fahrzeug zurückgesetzt. Die Option ist im Lade-Profil "'+e.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"]].name+'" gespeichert.')+" ",1),e.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"]].load_default===!0?(o(),s("div",j,' "Standard-Fahrzeug nach Abstecken" ist für alle Fahrzeuge aktiviert, denen dieses Lade-Profil zugeordnet wurde. ')):(o(),s("div",O,' "Standard-Fahrzeug nach Abstecken" ist für alle Fahrzeuge deaktiviert, denen dieses Lade-Profil zugeordnet wurde. '))]),_:2},1032,["model-value","onUpdate:modelValue"])):f("",!0)],8,U))),128))]))]),_:1},8,["collapsed"])]),a(z,{"form-name":"optionalComponentsForm",onSave:t[1]||(t[1]=n=>e.$emit("save")),onReset:t[2]||(t[2]=n=>e.$emit("reset")),onDefaults:t[3]||(t[3]=n=>e.$emit("defaults"))})])])}const te=w(F,[["render",R],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/IdentificationConfig.vue"]]);export{te as default}; diff --git a/web/settings/assets/InstallAssistant-13cd0d9d.js b/web/settings/assets/InstallAssistant-13cd0d9d.js new file mode 100644 index 0000000000..f3a407a475 --- /dev/null +++ b/web/settings/assets/InstallAssistant-13cd0d9d.js @@ -0,0 +1 @@ +import{C as r,_ as t}from"./index-c94f8df4.js";import{_}from"./dynamic-import-helper-be004503.js";import{_ as m,a2 as p,u as d,l as i,m as u,G as A,E as v,x as E,a3 as I,B as c}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";const P={name:"InstallAssistantView",mixins:[r],emits:["sendCommand","save","reset","defaults"],data(){return{currentPage:0,lastPage:10,showEndAssistantModal:!1}},methods:{getInstallAssistantStepComponent(){return console.debug(`loading assistant page: ${this.currentPage}`),p({loader:()=>_(Object.assign({"../components/install_assistant/InstallAssistantStep0.vue":()=>t(()=>import("./InstallAssistantStep0-94d0c90f.js"),["assets/InstallAssistantStep0-94d0c90f.js","assets/index-c94f8df4.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-d46144b3.js","assets/InstallAssistantStepTemplate-930e3c07.css"]),"../components/install_assistant/InstallAssistantStep1.vue":()=>t(()=>import("./InstallAssistantStep1-9ca3e6aa.js"),["assets/InstallAssistantStep1-9ca3e6aa.js","assets/index-c94f8df4.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-d46144b3.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/DataManagement-e6d61b39.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep10.vue":()=>t(()=>import("./InstallAssistantStep10-c09c6a79.js"),["assets/InstallAssistantStep10-c09c6a79.js","assets/index-c94f8df4.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-d46144b3.js","assets/InstallAssistantStepTemplate-930e3c07.css"]),"../components/install_assistant/InstallAssistantStep2.vue":()=>t(()=>import("./InstallAssistantStep2-d7efcb8f.js"),["assets/InstallAssistantStep2-d7efcb8f.js","assets/index-c94f8df4.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-d46144b3.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/System-5e2d0137.js","assets/System-f301c290.css"]),"../components/install_assistant/InstallAssistantStep3.vue":()=>t(()=>import("./InstallAssistantStep3-7d2c9a9e.js"),["assets/InstallAssistantStep3-7d2c9a9e.js","assets/index-c94f8df4.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-d46144b3.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/GeneralConfig-3d40ed90.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep4.1.vue":()=>t(()=>import("./InstallAssistantStep4.1-d2c6e9b9.js"),["assets/InstallAssistantStep4.1-d2c6e9b9.js","assets/index-c94f8df4.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-d46144b3.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/IoConfig-20eaec88.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep4.vue":()=>t(()=>import("./InstallAssistantStep4-7746f64c.js"),["assets/InstallAssistantStep4-7746f64c.js","assets/index-c94f8df4.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-d46144b3.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/ChargePointInstallation-f32d3e54.js","assets/dynamic-import-helper-be004503.js","assets/ChargePointInstallation-7b9399a8.css"]),"../components/install_assistant/InstallAssistantStep5.vue":()=>t(()=>import("./InstallAssistantStep5-a502922e.js"),["assets/InstallAssistantStep5-a502922e.js","assets/index-c94f8df4.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-d46144b3.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/HardwareInstallation-8066ca79.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep6.vue":()=>t(()=>import("./InstallAssistantStep6-80a98cf3.js"),["assets/InstallAssistantStep6-80a98cf3.js","assets/index-c94f8df4.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-d46144b3.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/ChargePointInstallation-f32d3e54.js","assets/dynamic-import-helper-be004503.js","assets/ChargePointInstallation-7b9399a8.css"]),"../components/install_assistant/InstallAssistantStep7.vue":()=>t(()=>import("./InstallAssistantStep7-01325ff0.js"),["assets/InstallAssistantStep7-01325ff0.js","assets/index-c94f8df4.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-d46144b3.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/LoadManagementConfig-89605028.js","assets/OpenwbSortableList-96f09c46.js","assets/OpenwbSortableList-7ba533e4.css"]),"../components/install_assistant/InstallAssistantStep8.vue":()=>t(()=>import("./InstallAssistantStep8-65bb7ab2.js"),["assets/InstallAssistantStep8-65bb7ab2.js","assets/index-c94f8df4.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-d46144b3.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/VehicleConfig-890c7977.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep9.vue":()=>t(()=>import("./InstallAssistantStep9-4ce532e6.js"),["assets/InstallAssistantStep9-4ce532e6.js","assets/index-c94f8df4.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-d46144b3.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/DataManagement-e6d61b39.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStepTemplate.vue":()=>t(()=>import("./InstallAssistantStepTemplate-d46144b3.js"),["assets/InstallAssistantStepTemplate-d46144b3.js","assets/index-c94f8df4.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-930e3c07.css"])}),`../components/install_assistant/InstallAssistantStep${this.currentPage}.vue`)})},switchPage(s){s>=0&&s<=this.lastPage?this.currentPage=s:console.error(`invalid assistant page number: ${s}`)},endAssistantModal(){this.currentPage!=this.lastPage?this.showEndAssistantModal=!0:this.endAssistant("confirm")},endAssistant(s){this.showEndAssistantModal=!1,s=="confirm"&&(this.updateState("openWB/system/installAssistantDone",!0),this.$root.doPublish("openWB/set/system/installAssistantDone",!0),this.$router.push("/Status"))}}};function S(s,n,f,g,o,e){const l=d("openwb-base-modal-dialog");return i(),u("div",null,[A(l,{show:o.showEndAssistantModal,title:"Assistent beenden",subtype:"danger",buttons:[{text:"Beenden",event:"confirm",subtype:"danger"}],onModalResult:e.endAssistant},{default:v(()=>[...n[4]||(n[4]=[c(" Wollen Sie den Assistenten wirklich vorzeitig beenden? ",-1)])]),_:1},8,["show","onModalResult"]),(i(),E(I(e.getInstallAssistantStepComponent()),{onSendCommand:n[0]||(n[0]=a=>s.$emit("sendCommand",a)),onSave:n[1]||(n[1]=a=>s.$emit("save")),onReset:n[2]||(n[2]=a=>s.$emit("reset")),onDefaults:n[3]||(n[3]=a=>s.$emit("defaults")),onSwitchPage:e.switchPage,onEndAssistant:e.endAssistantModal},null,40,["onSwitchPage","onEndAssistant"]))])}const L=m(P,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/InstallAssistant.vue"]]);export{L as default}; diff --git a/web/settings/assets/InstallAssistant-56db2231.js b/web/settings/assets/InstallAssistant-56db2231.js deleted file mode 100644 index 6ed6f5ecad..0000000000 --- a/web/settings/assets/InstallAssistant-56db2231.js +++ /dev/null @@ -1 +0,0 @@ -import{C as r,_ as t}from"./index-8dd8e083.js";import{_}from"./dynamic-import-helper-be004503.js";import{_ as m,a2 as p,u as d,l as i,m as u,G as A,E as v,x as E,a3 as I,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const P={name:"InstallAssistantView",mixins:[r],emits:["sendCommand","save","reset","defaults"],data(){return{currentPage:0,lastPage:10,showEndAssistantModal:!1}},methods:{getInstallAssistantStepComponent(){return console.debug(`loading assistant page: ${this.currentPage}`),p({loader:()=>_(Object.assign({"../components/install_assistant/InstallAssistantStep0.vue":()=>t(()=>import("./InstallAssistantStep0-acacfc75.js"),["assets/InstallAssistantStep0-acacfc75.js","assets/index-8dd8e083.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-59e1095f.js","assets/InstallAssistantStepTemplate-930e3c07.css"]),"../components/install_assistant/InstallAssistantStep1.vue":()=>t(()=>import("./InstallAssistantStep1-a93e968d.js"),["assets/InstallAssistantStep1-a93e968d.js","assets/index-8dd8e083.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-59e1095f.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/DataManagement-52054445.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep10.vue":()=>t(()=>import("./InstallAssistantStep10-3d573bb7.js"),["assets/InstallAssistantStep10-3d573bb7.js","assets/index-8dd8e083.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-59e1095f.js","assets/InstallAssistantStepTemplate-930e3c07.css"]),"../components/install_assistant/InstallAssistantStep2.vue":()=>t(()=>import("./InstallAssistantStep2-b4941f0c.js"),["assets/InstallAssistantStep2-b4941f0c.js","assets/index-8dd8e083.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-59e1095f.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/System-9f60a387.js","assets/System-f301c290.css"]),"../components/install_assistant/InstallAssistantStep3.vue":()=>t(()=>import("./InstallAssistantStep3-b0741703.js"),["assets/InstallAssistantStep3-b0741703.js","assets/index-8dd8e083.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-59e1095f.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/GeneralConfig-cc87a1f9.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep4.1.vue":()=>t(()=>import("./InstallAssistantStep4.1-8b2ae23f.js"),["assets/InstallAssistantStep4.1-8b2ae23f.js","assets/index-8dd8e083.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-59e1095f.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/IoConfig-38958e2e.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep4.vue":()=>t(()=>import("./InstallAssistantStep4-f46d2116.js"),["assets/InstallAssistantStep4-f46d2116.js","assets/index-8dd8e083.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-59e1095f.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/ChargePointInstallation-7e22d920.js","assets/dynamic-import-helper-be004503.js","assets/ChargePointInstallation-7b9399a8.css"]),"../components/install_assistant/InstallAssistantStep5.vue":()=>t(()=>import("./InstallAssistantStep5-4a85dca5.js"),["assets/InstallAssistantStep5-4a85dca5.js","assets/index-8dd8e083.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-59e1095f.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/HardwareInstallation-be759b0c.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep6.vue":()=>t(()=>import("./InstallAssistantStep6-5c9750cb.js"),["assets/InstallAssistantStep6-5c9750cb.js","assets/index-8dd8e083.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-59e1095f.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/ChargePointInstallation-7e22d920.js","assets/dynamic-import-helper-be004503.js","assets/ChargePointInstallation-7b9399a8.css"]),"../components/install_assistant/InstallAssistantStep7.vue":()=>t(()=>import("./InstallAssistantStep7-2bd98bf0.js"),["assets/InstallAssistantStep7-2bd98bf0.js","assets/index-8dd8e083.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-59e1095f.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/LoadManagementConfig-61263fe6.js","assets/OpenwbSortableList-c7b5b151.js","assets/OpenwbSortableList-7ba533e4.css"]),"../components/install_assistant/InstallAssistantStep8.vue":()=>t(()=>import("./InstallAssistantStep8-23be5b5b.js"),["assets/InstallAssistantStep8-23be5b5b.js","assets/index-8dd8e083.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-59e1095f.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/VehicleConfig-c6e5b45b.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep9.vue":()=>t(()=>import("./InstallAssistantStep9-1aa5b6bf.js"),["assets/InstallAssistantStep9-1aa5b6bf.js","assets/index-8dd8e083.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-59e1095f.js","assets/InstallAssistantStepTemplate-930e3c07.css","assets/DataManagement-52054445.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStepTemplate.vue":()=>t(()=>import("./InstallAssistantStepTemplate-59e1095f.js"),["assets/InstallAssistantStepTemplate-59e1095f.js","assets/index-8dd8e083.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/InstallAssistantStepTemplate-930e3c07.css"])}),`../components/install_assistant/InstallAssistantStep${this.currentPage}.vue`)})},switchPage(s){s>=0&&s<=this.lastPage?this.currentPage=s:console.error(`invalid assistant page number: ${s}`)},endAssistantModal(){this.currentPage!=this.lastPage?this.showEndAssistantModal=!0:this.endAssistant("confirm")},endAssistant(s){this.showEndAssistantModal=!1,s=="confirm"&&(this.updateState("openWB/system/installAssistantDone",!0),this.$root.doPublish("openWB/set/system/installAssistantDone",!0),this.$router.push("/Status"))}}};function S(s,n,f,g,o,e){const l=d("openwb-base-modal-dialog");return i(),u("div",null,[A(l,{show:o.showEndAssistantModal,title:"Assistent beenden",subtype:"danger",buttons:[{text:"Beenden",event:"confirm",subtype:"danger"}],onModalResult:e.endAssistant},{default:v(()=>n[4]||(n[4]=[c(" Wollen Sie den Assistenten wirklich vorzeitig beenden? ",-1)])),_:1,__:[4]},8,["show","onModalResult"]),(i(),E(I(e.getInstallAssistantStepComponent()),{onSendCommand:n[0]||(n[0]=a=>s.$emit("sendCommand",a)),onSave:n[1]||(n[1]=a=>s.$emit("save")),onReset:n[2]||(n[2]=a=>s.$emit("reset")),onDefaults:n[3]||(n[3]=a=>s.$emit("defaults")),onSwitchPage:e.switchPage,onEndAssistant:e.endAssistantModal},null,40,["onSwitchPage","onEndAssistant"]))])}const L=m(P,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/InstallAssistant.vue"]]);export{L as default}; diff --git a/web/settings/assets/InstallAssistantStep0-94d0c90f.js b/web/settings/assets/InstallAssistantStep0-94d0c90f.js new file mode 100644 index 0000000000..142a7e601d --- /dev/null +++ b/web/settings/assets/InstallAssistantStep0-94d0c90f.js @@ -0,0 +1 @@ +import{C as m}from"./index-c94f8df4.js";import g from"./InstallAssistantStepTemplate-d46144b3.js";import{F as f}from"./vendor-fortawesome-fc4b3a41.js";import{_ as h,u as i,l as c,x as w,E as r,G as a,B as o,A as n}from"./vendor-50125810.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";const A={name:"InstallAssistantStep0",components:{InstallAssistantStepTemplate:g,FontAwesomeIcon:f},mixins:[m],emits:["switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[],showModalWarning:!1}),methods:{requestNextPage(){this.showModalWarning=!0},nextPage(s){this.showModalWarning=!1,s==="confirm"&&this.$emit("switchPage",1)},previousPage(){},endAssistant(){this.$emit("endAssistant")}}},b={class:"font-weight-bold"};function k(s,e,x,B,P,t){const l=i("openwb-base-modal-dialog"),u=i("FontAwesomeIcon"),d=i("InstallAssistantStepTemplate");return c(),w(d,{title:"Start","hide-previous":!0,onNextPage:t.requestNextPage,onPreviousPage:t.previousPage,onEndAssistant:t.endAssistant},{content:r(()=>[a(l,{show:s.showModalWarning,title:"Achtung!",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"success"}],onModalResult:e[0]||(e[0]=p=>t.nextPage(p))},{default:r(()=>[...e[1]||(e[1]=[o(" Bevor der Assistent gestartet wird, ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)])]),_:1},8,["show"]),e[4]||(e[4]=n("h2",null,"Vielen Dank, dass Du Dich für openWB entschieden hast.",-1)),e[5]||(e[5]=n("p",null,"Dieser Assistent führt durch die Konfiguration der einzelnen Module:",-1)),e[6]||(e[6]=n("ol",null,[n("li",null,"Datensicherung der bestehenden Konfiguration"),n("li",null,"Aktualisierung des openWB-Systems"),n("li",null,"Allgemeine Einstellungen: Auswahl des Betriebsmodus primary (steuernd) bzw. secondary (gesteuerte WB)")],-1)),e[7]||(e[7]=n("p",null," Wird diese openWB als secondary betrieben, so werden nur die lokalen Ladepunkte eingerichtet. Im Betriebsmodus primary werden die folgenden zusätzlichen Schritte durchlaufen: ",-1)),e[8]||(e[8]=n("ol",{start:"4"},[n("li",null,"Ein- und Ausgänge konfigurieren"),n("li",null,"Energiesystem - Geräte und Komponenten einrichten"),n("li",null,"Einrichten der Ladepunkte (openWB als primary)"),n("li",null,"Konfiguration des Lastmanagements"),n("li",null,"Einrichten der Fahrzeuge"),n("li",null,"Datensicherung der neuen Konfiguration")],-1)),e[9]||(e[9]=n("p",null,"Danach ist die Grundkonfiguration abgeschlossen.",-1)),n("p",b,[e[2]||(e[2]=o(" Bitte während der Einrichtung auch die jeweiligen Hilfstexte lesen, welche durch Klick auf ",-1)),a(u,{icon:["far","question-circle"]}),e[3]||(e[3]=o(" erscheinen. Hier sind weiterführende Informationen zu den Eingabefeldern zu finden. ",-1))])]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const N=h(A,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep0.vue"]]);export{N as default}; diff --git a/web/settings/assets/InstallAssistantStep0-acacfc75.js b/web/settings/assets/InstallAssistantStep0-acacfc75.js deleted file mode 100644 index d818596314..0000000000 --- a/web/settings/assets/InstallAssistantStep0-acacfc75.js +++ /dev/null @@ -1 +0,0 @@ -import{C as m}from"./index-8dd8e083.js";import g from"./InstallAssistantStepTemplate-59e1095f.js";import{F as f}from"./vendor-fortawesome-a02b6813.js";import{_ as h,u as i,l as c,x as w,E as r,G as a,B as o,A as n}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const A={name:"InstallAssistantStep0",components:{InstallAssistantStepTemplate:g,FontAwesomeIcon:f},mixins:[m],emits:["switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[],showModalWarning:!1}),methods:{requestNextPage(){this.showModalWarning=!0},nextPage(s){this.showModalWarning=!1,s==="confirm"&&this.$emit("switchPage",1)},previousPage(){},endAssistant(){this.$emit("endAssistant")}}},b={class:"font-weight-bold"};function k(s,e,x,B,P,t){const l=i("openwb-base-modal-dialog"),u=i("FontAwesomeIcon"),d=i("InstallAssistantStepTemplate");return c(),w(d,{title:"Start","hide-previous":!0,onNextPage:t.requestNextPage,onPreviousPage:t.previousPage,onEndAssistant:t.endAssistant},{content:r(()=>[a(l,{show:s.showModalWarning,title:"Achtung!",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"success"}],onModalResult:e[0]||(e[0]=p=>t.nextPage(p))},{default:r(()=>e[1]||(e[1]=[o(" Bevor der Assistent gestartet wird, ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)])),_:1,__:[1]},8,["show"]),e[4]||(e[4]=n("h2",null,"Vielen Dank, dass Du Dich für openWB entschieden hast.",-1)),e[5]||(e[5]=n("p",null,"Dieser Assistent führt durch die Konfiguration der einzelnen Module:",-1)),e[6]||(e[6]=n("ol",null,[n("li",null,"Datensicherung der bestehenden Konfiguration"),n("li",null,"Aktualisierung des openWB-Systems"),n("li",null,"Allgemeine Einstellungen: Auswahl des Betriebsmodus primary (steuernd) bzw. secondary (gesteuerte WB)")],-1)),e[7]||(e[7]=n("p",null," Wird diese openWB als secondary betrieben, so werden nur die lokalen Ladepunkte eingerichtet. Im Betriebsmodus primary werden die folgenden zusätzlichen Schritte durchlaufen: ",-1)),e[8]||(e[8]=n("ol",{start:"4"},[n("li",null,"Ein- und Ausgänge konfigurieren"),n("li",null,"Energiesystem - Geräte und Komponenten einrichten"),n("li",null,"Einrichten der Ladepunkte (openWB als primary)"),n("li",null,"Konfiguration des Lastmanagements"),n("li",null,"Einrichten der Fahrzeuge"),n("li",null,"Datensicherung der neuen Konfiguration")],-1)),e[9]||(e[9]=n("p",null,"Danach ist die Grundkonfiguration abgeschlossen.",-1)),n("p",b,[e[2]||(e[2]=o(" Bitte während der Einrichtung auch die jeweiligen Hilfstexte lesen, welche durch Klick auf ",-1)),a(u,{icon:["far","question-circle"]}),e[3]||(e[3]=o(" erscheinen. Hier sind weiterführende Informationen zu den Eingabefeldern zu finden. ",-1))])]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const N=h(A,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep0.vue"]]);export{N as default}; diff --git a/web/settings/assets/InstallAssistantStep1-9ca3e6aa.js b/web/settings/assets/InstallAssistantStep1-9ca3e6aa.js new file mode 100644 index 0000000000..21a3dc80a7 --- /dev/null +++ b/web/settings/assets/InstallAssistantStep1-9ca3e6aa.js @@ -0,0 +1 @@ +import{C as m}from"./index-c94f8df4.js";import p from"./InstallAssistantStepTemplate-d46144b3.js";import{D as l}from"./DataManagement-e6d61b39.js";import{_ as d,u as a,l as u,x as g,E as o,A as f,G as v}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const A={name:"InstallAssistantStep1",components:{InstallAssistantStepTemplate:p,DataManagement:l},mixins:[m],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",2)},previousPage(){this.$emit("switchPage",0)},endAssistant(){this.$emit("endAssistant")}}};function P(t,e,c,S,w,n){const i=a("DataManagement"),r=a("InstallAssistantStepTemplate");return u(),g(r,{title:"1. Datensicherung der bestehenden Konfiguration",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>[...e[4]||(e[4]=[f("p",null," Wir empfehlen an dieser Stelle eine Sicherung der openWB zu erstellen, auf welche später zurückgegriffen werden kann, insbesondere, wenn die openWB schon konfiguriert war und der Assistent nun erneut ausgeführt wird. ",-1)])]),content:o(()=>[v(i,{"install-assistant-active":!0,"show-backup-cloud-section":!1,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const N=d(A,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep1.vue"]]);export{N as default}; diff --git a/web/settings/assets/InstallAssistantStep1-a93e968d.js b/web/settings/assets/InstallAssistantStep1-a93e968d.js deleted file mode 100644 index 538ec44236..0000000000 --- a/web/settings/assets/InstallAssistantStep1-a93e968d.js +++ /dev/null @@ -1 +0,0 @@ -import{C as m}from"./index-8dd8e083.js";import p from"./InstallAssistantStepTemplate-59e1095f.js";import{D as l}from"./DataManagement-52054445.js";import{_ as d,u as a,l as u,x as g,E as o,A as f,G as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const A={name:"InstallAssistantStep1",components:{InstallAssistantStepTemplate:p,DataManagement:l},mixins:[m],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",2)},previousPage(){this.$emit("switchPage",0)},endAssistant(){this.$emit("endAssistant")}}};function P(t,e,c,S,w,n){const i=a("DataManagement"),r=a("InstallAssistantStepTemplate");return u(),g(r,{title:"1. Datensicherung der bestehenden Konfiguration",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>e[4]||(e[4]=[f("p",null," Wir empfehlen an dieser Stelle eine Sicherung der openWB zu erstellen, auf welche später zurückgegriffen werden kann, insbesondere, wenn die openWB schon konfiguriert war und der Assistent nun erneut ausgeführt wird. ",-1)])),content:o(()=>[v(i,{"install-assistant-active":!0,"show-backup-cloud-section":!1,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const N=d(A,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep1.vue"]]);export{N as default}; diff --git a/web/settings/assets/InstallAssistantStep10-3d573bb7.js b/web/settings/assets/InstallAssistantStep10-3d573bb7.js deleted file mode 100644 index 01e2850142..0000000000 --- a/web/settings/assets/InstallAssistantStep10-3d573bb7.js +++ /dev/null @@ -1 +0,0 @@ -import{C as a}from"./index-8dd8e083.js";import o from"./InstallAssistantStepTemplate-59e1095f.js";import{_ as r,u as l,l as m,x as p,E as d,A as n}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const u={name:"InstallAssistantStep10",components:{InstallAssistantStepTemplate:o},mixins:[a],emits:["switchPage","endAssistant","sendCommand"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){},previousPage(){this.$emit("switchPage",9)},sendCommand(t){this.$emit("sendCommand",t)},endAssistant(){this.$emit("endAssistant")}}};function g(t,s,c,f,A,e){const i=l("InstallAssistantStepTemplate");return m(),p(i,{title:"Abgeschlossen","hide-next":!0,onNextPage:e.nextPage,onPreviousPage:e.previousPage,onEndAssistant:e.endAssistant},{content:d(()=>s[0]||(s[0]=[n("h2",null,"Die Grundkonfiguration ist abgeschlossen.",-1),n("p",null," Die grundlegende Konfiguration der openWB ist abgeschlossen. Du wirst mit Beendigung dieses Assistenten auf die Statusseite weitergeleitet. Bitte überprüfe die dargestellten Informationen und passe bei Unstimmigkeiten die Einstellungen in den jeweiligen Konfigurationsseiten an (openWB -> Einstellungen -> Konfiguration). ",-1)])),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const w=r(u,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep10.vue"]]);export{w as default}; diff --git a/web/settings/assets/InstallAssistantStep10-c09c6a79.js b/web/settings/assets/InstallAssistantStep10-c09c6a79.js new file mode 100644 index 0000000000..8ba8fb083f --- /dev/null +++ b/web/settings/assets/InstallAssistantStep10-c09c6a79.js @@ -0,0 +1 @@ +import{C as a}from"./index-c94f8df4.js";import o from"./InstallAssistantStepTemplate-d46144b3.js";import{_ as r,u as l,l as m,x as p,E as d,A as n}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";const u={name:"InstallAssistantStep10",components:{InstallAssistantStepTemplate:o},mixins:[a],emits:["switchPage","endAssistant","sendCommand"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){},previousPage(){this.$emit("switchPage",9)},sendCommand(t){this.$emit("sendCommand",t)},endAssistant(){this.$emit("endAssistant")}}};function g(t,s,c,f,A,e){const i=l("InstallAssistantStepTemplate");return m(),p(i,{title:"Abgeschlossen","hide-next":!0,onNextPage:e.nextPage,onPreviousPage:e.previousPage,onEndAssistant:e.endAssistant},{content:d(()=>[...s[0]||(s[0]=[n("h2",null,"Die Grundkonfiguration ist abgeschlossen.",-1),n("p",null," Die grundlegende Konfiguration der openWB ist abgeschlossen. Du wirst mit Beendigung dieses Assistenten auf die Statusseite weitergeleitet. Bitte überprüfe die dargestellten Informationen und passe bei Unstimmigkeiten die Einstellungen in den jeweiligen Konfigurationsseiten an (openWB -> Einstellungen -> Konfiguration). ",-1)])]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const w=r(u,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep10.vue"]]);export{w as default}; diff --git a/web/settings/assets/InstallAssistantStep2-b4941f0c.js b/web/settings/assets/InstallAssistantStep2-b4941f0c.js deleted file mode 100644 index f186b25dfc..0000000000 --- a/web/settings/assets/InstallAssistantStep2-b4941f0c.js +++ /dev/null @@ -1 +0,0 @@ -import{C as l}from"./index-8dd8e083.js";import p from"./InstallAssistantStepTemplate-59e1095f.js";import d from"./System-9f60a387.js";import{_ as u,u as i,l as f,x as g,E as o,A as a,G as S}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const A={name:"InstallAssistantStep2",components:{InstallAssistantStepTemplate:p,SystemView:d},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",3)},previousPage(){this.$emit("switchPage",1)},endAssistant(){this.$emit("endAssistant")}}};function v(t,e,w,P,c,n){const r=i("SystemView"),m=i("InstallAssistantStepTemplate");return f(),g(m,{title:"2. Aktualisierung des openWB-Systems",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>e[4]||(e[4]=[a("p",null,"Bitte ein System-Update durchführen, um die Software auf den neuesten Stand zu bringen.",-1),a("p",null,' Hierzu "Informationen aktualisieren" klicken. Falls ein Update verfügbar ist, wird der Update-Button grün (zum Update bereit). ',-1),a("p",null,' Ein Klick auf "Update" startet die Aktualisierung, welche auch einen automatischen Reboot initiiert (bitte ca. 5 Minuten warten). Danach muss der Assistent neu gestartet werden. ',-1)])),content:o(()=>[S(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const T=u(A,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep2.vue"]]);export{T as default}; diff --git a/web/settings/assets/InstallAssistantStep2-d7efcb8f.js b/web/settings/assets/InstallAssistantStep2-d7efcb8f.js new file mode 100644 index 0000000000..ae28b447e3 --- /dev/null +++ b/web/settings/assets/InstallAssistantStep2-d7efcb8f.js @@ -0,0 +1 @@ +import{C as l}from"./index-c94f8df4.js";import p from"./InstallAssistantStepTemplate-d46144b3.js";import d from"./System-5e2d0137.js";import{_ as u,u as i,l as f,x as g,E as o,A as a,G as S}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";const A={name:"InstallAssistantStep2",components:{InstallAssistantStepTemplate:p,SystemView:d},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",3)},previousPage(){this.$emit("switchPage",1)},endAssistant(){this.$emit("endAssistant")}}};function v(t,e,w,P,c,n){const r=i("SystemView"),m=i("InstallAssistantStepTemplate");return f(),g(m,{title:"2. Aktualisierung des openWB-Systems",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>[...e[4]||(e[4]=[a("p",null,"Bitte ein System-Update durchführen, um die Software auf den neuesten Stand zu bringen.",-1),a("p",null,' Hierzu "Informationen aktualisieren" klicken. Falls ein Update verfügbar ist, wird der Update-Button grün (zum Update bereit). ',-1),a("p",null,' Ein Klick auf "Update" startet die Aktualisierung, welche auch einen automatischen Reboot initiiert (bitte ca. 5 Minuten warten). Danach muss der Assistent neu gestartet werden. ',-1)])]),content:o(()=>[S(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const T=u(A,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep2.vue"]]);export{T as default}; diff --git a/web/settings/assets/InstallAssistantStep3-7d2c9a9e.js b/web/settings/assets/InstallAssistantStep3-7d2c9a9e.js new file mode 100644 index 0000000000..160dc051fb --- /dev/null +++ b/web/settings/assets/InstallAssistantStep3-7d2c9a9e.js @@ -0,0 +1 @@ +import{C as p}from"./index-c94f8df4.js";import d from"./InstallAssistantStepTemplate-d46144b3.js";import{G as m}from"./GeneralConfig-3d40ed90.js";import{_ as u,u as i,l as g,x as f,E as r,A as a,G as w}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const S={name:"InstallAssistantStep3",components:{InstallAssistantStepTemplate:d,GeneralConfigView:m},mixins:[p],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:["openWB/general/extern"]}),methods:{nextPage(){this.$emit("switchPage",this.$store.state.mqtt["openWB/general/extern"]?4:4.1)},previousPage(){this.$emit("switchPage",2)},endAssistant(){this.$emit("endAssistant")}}};function A(t,e,P,k,v,s){const o=i("GeneralConfigView"),l=i("InstallAssistantStepTemplate");return g(),f(l,{title:"3. Auswahl des Steuerungsmodus",onNextPage:s.nextPage,onPreviousPage:s.previousPage,onEndAssistant:s.endAssistant},{help:r(()=>[...e[4]||(e[4]=[a("p",null,' Hier festlegen, ob die openWB als "steuernd" (primary) oder als ferngesteuert (secondary) arbeiten soll. Die Einstellung gilt für genau die WB, auf der aktuell konfiguriert wird (korrekte IP-Adresse beachten). ',-1),a("p",null," Eine openWB standalone hat keinen Ladepunkt und arbeitet nur als Steuerteil (primary). Eine openWB Standard(+), custom, Duo (2 Ladepunkte) und Buchse können sowohl als steuernde primary oder als ferngesteuerte secondary betrieben werden. Eine openWB Pro und Satellit können nur als s.g. Ladepunkt genutzt werden und benötigen zwingend einen separaten primary als Steuerteil. ",-1),a("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:r(()=>[w(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=n=>t.$emit("sendCommand",n)),onSave:e[1]||(e[1]=n=>t.$emit("save")),onReset:e[2]||(e[2]=n=>t.$emit("reset")),onDefaults:e[3]||(e[3]=n=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const y=u(S,[["render",A],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep3.vue"]]);export{y as default}; diff --git a/web/settings/assets/InstallAssistantStep3-b0741703.js b/web/settings/assets/InstallAssistantStep3-b0741703.js deleted file mode 100644 index c447d3ba8c..0000000000 --- a/web/settings/assets/InstallAssistantStep3-b0741703.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./index-8dd8e083.js";import d from"./InstallAssistantStepTemplate-59e1095f.js";import{G as m}from"./GeneralConfig-cc87a1f9.js";import{_ as u,u as i,l as g,x as f,E as r,A as a,G as w}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const S={name:"InstallAssistantStep3",components:{InstallAssistantStepTemplate:d,GeneralConfigView:m},mixins:[p],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:["openWB/general/extern"]}),methods:{nextPage(){this.$emit("switchPage",this.$store.state.mqtt["openWB/general/extern"]?4:4.1)},previousPage(){this.$emit("switchPage",2)},endAssistant(){this.$emit("endAssistant")}}};function A(t,e,P,k,v,s){const o=i("GeneralConfigView"),l=i("InstallAssistantStepTemplate");return g(),f(l,{title:"3. Auswahl des Steuerungsmodus",onNextPage:s.nextPage,onPreviousPage:s.previousPage,onEndAssistant:s.endAssistant},{help:r(()=>e[4]||(e[4]=[a("p",null,' Hier festlegen, ob die openWB als "steuernd" (primary) oder als ferngesteuert (secondary) arbeiten soll. Die Einstellung gilt für genau die WB, auf der aktuell konfiguriert wird (korrekte IP-Adresse beachten). ',-1),a("p",null," Eine openWB standalone hat keinen Ladepunkt und arbeitet nur als Steuerteil (primary). Eine openWB Standard(+), custom, Duo (2 Ladepunkte) und Buchse können sowohl als steuernde primary oder als ferngesteuerte secondary betrieben werden. Eine openWB Pro und Satellit können nur als s.g. Ladepunkt genutzt werden und benötigen zwingend einen separaten primary als Steuerteil. ",-1),a("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:r(()=>[w(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=n=>t.$emit("sendCommand",n)),onSave:e[1]||(e[1]=n=>t.$emit("save")),onReset:e[2]||(e[2]=n=>t.$emit("reset")),onDefaults:e[3]||(e[3]=n=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const y=u(S,[["render",A],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep3.vue"]]);export{y as default}; diff --git a/web/settings/assets/InstallAssistantStep4-7746f64c.js b/web/settings/assets/InstallAssistantStep4-7746f64c.js new file mode 100644 index 0000000000..a41b6e3940 --- /dev/null +++ b/web/settings/assets/InstallAssistantStep4-7746f64c.js @@ -0,0 +1 @@ +import{C as l}from"./index-c94f8df4.js";import d from"./InstallAssistantStepTemplate-d46144b3.js";import{b as m}from"./ChargePointInstallation-f32d3e54.js";import{_ as u,u as a,l as g,x as f,E as o,A as n,G as w}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const v={name:"InstallAssistantStep4",components:{InstallAssistantStepTemplate:d,ChargePointInstallationView:m},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",9)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function P(t,e,B,k,S,i){const r=a("ChargePointInstallationView"),p=a("InstallAssistantStepTemplate");return g(),f(p,{title:"4. Einrichten der Ladepunkte (openWB als secondary)",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:o(()=>[...e[4]||(e[4]=[n("p",null,' Diese openWB wurde als "secondary" eingestellt und wird von einer anderen openWB oder standalone ferngesteuert. ',-1),n("p",null," Bei vorkonfigurierten openWBs ist ab Werk bereits ein (zwei bei einer Duo) interner Ladepunkt eingetragen. Es müssen keine weiteren Ladepunkte hinzugefügt werden. ",-1),n("p",null,' Tragen Sie unter Ladepunkte bei verfügbare Ladepunkte "Interne openWB" ein und wählen Sie die Bauart der openWB (z.B. openWB series 1/2 custom, Standard (+), Buchse oder Pro+) aus. ',-1),n("p",null,"Wenn eine openWB Duo gewählt wird, so sind zwei Ladepunkte mit Ladepunkt-Nummer 1 und 2 zu konfigurieren.",-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:o(()=>[w(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const T=u(v,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep4.vue"]]);export{T as default}; diff --git a/web/settings/assets/InstallAssistantStep4-f46d2116.js b/web/settings/assets/InstallAssistantStep4-f46d2116.js deleted file mode 100644 index 978d828f9f..0000000000 --- a/web/settings/assets/InstallAssistantStep4-f46d2116.js +++ /dev/null @@ -1 +0,0 @@ -import{C as l}from"./index-8dd8e083.js";import d from"./InstallAssistantStepTemplate-59e1095f.js";import{b as m}from"./ChargePointInstallation-7e22d920.js";import{_ as u,u as a,l as g,x as f,E as o,A as n,G as w}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"InstallAssistantStep4",components:{InstallAssistantStepTemplate:d,ChargePointInstallationView:m},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",9)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function P(t,e,B,k,S,i){const r=a("ChargePointInstallationView"),p=a("InstallAssistantStepTemplate");return g(),f(p,{title:"4. Einrichten der Ladepunkte (openWB als secondary)",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:o(()=>e[4]||(e[4]=[n("p",null,' Diese openWB wurde als "secondary" eingestellt und wird von einer anderen openWB oder standalone ferngesteuert. ',-1),n("p",null," Bei vorkonfigurierten openWBs ist ab Werk bereits ein (zwei bei einer Duo) interner Ladepunkt eingetragen. Es müssen keine weiteren Ladepunkte hinzugefügt werden. ",-1),n("p",null,' Tragen Sie unter Ladepunkte bei verfügbare Ladepunkte "Interne openWB" ein und wählen Sie die Bauart der openWB (z.B. openWB series 1/2 custom, Standard (+), Buchse oder Pro+) aus. ',-1),n("p",null,"Wenn eine openWB Duo gewählt wird, so sind zwei Ladepunkte mit Ladepunkt-Nummer 1 und 2 zu konfigurieren.",-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:o(()=>[w(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const T=u(v,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep4.vue"]]);export{T as default}; diff --git a/web/settings/assets/InstallAssistantStep4.1-8b2ae23f.js b/web/settings/assets/InstallAssistantStep4.1-8b2ae23f.js deleted file mode 100644 index 683e14142f..0000000000 --- a/web/settings/assets/InstallAssistantStep4.1-8b2ae23f.js +++ /dev/null @@ -1 +0,0 @@ -import{C as l}from"./index-8dd8e083.js";import p from"./InstallAssistantStepTemplate-59e1095f.js";import{I as d}from"./IoConfig-38958e2e.js";import{_ as u,u as a,l as g,x as f,E as o,A as i,G as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const w={name:"InstallAssistantStep4.1",components:{InstallAssistantStepTemplate:p,IoConfigView:d},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",5)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function S(t,e,A,P,c,n){const r=a("IoConfigView"),m=a("InstallAssistantStepTemplate");return g(),f(m,{title:"4. Ein- und Ausgänge konfigurieren",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>e[4]||(e[4]=[i("p",null,'Diese openWB ist als "primary" konfiguriert und übernimmt die Regelung des Systems.',-1),i("p",null," Sofern openWB als Energiemanagementsystem für steuerbare Verbrauchseinrichtungen (SteuVE) gemäß §14a EnWG verwendet werden soll, so ist für die VNB-Signaleingänge die entsprechende Hardware auszuwählen. ",-1),i("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:o(()=>[v(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const N=u(w,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep4.1.vue"]]);export{N as default}; diff --git a/web/settings/assets/InstallAssistantStep4.1-d2c6e9b9.js b/web/settings/assets/InstallAssistantStep4.1-d2c6e9b9.js new file mode 100644 index 0000000000..d70353677e --- /dev/null +++ b/web/settings/assets/InstallAssistantStep4.1-d2c6e9b9.js @@ -0,0 +1 @@ +import{C as l}from"./index-c94f8df4.js";import p from"./InstallAssistantStepTemplate-d46144b3.js";import{I as d}from"./IoConfig-20eaec88.js";import{_ as u,u as a,l as g,x as f,E as o,A as i,G as v}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const w={name:"InstallAssistantStep4.1",components:{InstallAssistantStepTemplate:p,IoConfigView:d},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",5)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function S(t,e,A,P,c,n){const r=a("IoConfigView"),m=a("InstallAssistantStepTemplate");return g(),f(m,{title:"4. Ein- und Ausgänge konfigurieren",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>[...e[4]||(e[4]=[i("p",null,'Diese openWB ist als "primary" konfiguriert und übernimmt die Regelung des Systems.',-1),i("p",null," Sofern openWB als Energiemanagementsystem für steuerbare Verbrauchseinrichtungen (SteuVE) gemäß §14a EnWG verwendet werden soll, so ist für die VNB-Signaleingänge die entsprechende Hardware auszuwählen. ",-1),i("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:o(()=>[v(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const N=u(w,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep4.1.vue"]]);export{N as default}; diff --git a/web/settings/assets/InstallAssistantStep5-4a85dca5.js b/web/settings/assets/InstallAssistantStep5-4a85dca5.js deleted file mode 100644 index 3aa4cc09b9..0000000000 --- a/web/settings/assets/InstallAssistantStep5-4a85dca5.js +++ /dev/null @@ -1 +0,0 @@ -import{C as d}from"./index-8dd8e083.js";import m from"./InstallAssistantStepTemplate-59e1095f.js";import{H as p}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as r,l as g,x as w,E as a,A as s,G as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const h={name:"InstallAssistantStep5",components:{InstallAssistantStepTemplate:m,HardwareInstallationView:p},mixins:[d],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",6)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function v(t,e,c,A,P,i){const o=r("HardwareInstallationView"),l=r("InstallAssistantStepTemplate");return g(),w(l,{title:"5. Energiesystem - Geräte und Komponenten einrichten",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>e[4]||(e[4]=[s("p",null," Für die Regelung werden aktuelle Leistungswerte des EVU-Zählers, der PV-Anlage und ggf. eines Speichers benötigt. ",-1),s("p",null," Sofern das System nicht zurückgesetzt wurde, ist im Auslieferungszustand für erste Ladetests ein virtueller Zähler vorkonfiguriert. Dieser muss zuerst gelöscht werden, wenn das im Gebäude installierte Energiesystem konfiguriert wird. ",-1),s("p",null," Alle Komponenten, welche über die gleiche IP-Adresse erreichbar sind werden als ein Gerät verstanden. Dieses Gerät ist über den Herstellernamen des Energiesystems im Auswahlmenü der verfügbaren Geräte auszuwählen. Unterhalb des Gerätes werden die zugehörigen Komponenten EVU-Zähler, WR und Speicher konfiguriert. Es können je nach Bedarf beliebig viele Geräte und Komponenten miteinander kombiniert werden. ",-1),s("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:a(()=>[f(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=n=>t.$emit("sendCommand",n)),onSave:e[1]||(e[1]=n=>t.$emit("save")),onReset:e[2]||(e[2]=n=>t.$emit("reset")),onDefaults:e[3]||(e[3]=n=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const z=u(h,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep5.vue"]]);export{z as default}; diff --git a/web/settings/assets/InstallAssistantStep5-a502922e.js b/web/settings/assets/InstallAssistantStep5-a502922e.js new file mode 100644 index 0000000000..f7c31a51f4 --- /dev/null +++ b/web/settings/assets/InstallAssistantStep5-a502922e.js @@ -0,0 +1 @@ +import{C as d}from"./index-c94f8df4.js";import m from"./InstallAssistantStepTemplate-d46144b3.js";import{H as p}from"./HardwareInstallation-8066ca79.js";import{_ as u,u as r,l as g,x as w,E as a,A as s,G as f}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const h={name:"InstallAssistantStep5",components:{InstallAssistantStepTemplate:m,HardwareInstallationView:p},mixins:[d],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",6)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function v(t,e,c,A,P,i){const o=r("HardwareInstallationView"),l=r("InstallAssistantStepTemplate");return g(),w(l,{title:"5. Energiesystem - Geräte und Komponenten einrichten",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[...e[4]||(e[4]=[s("p",null," Für die Regelung werden aktuelle Leistungswerte des EVU-Zählers, der PV-Anlage und ggf. eines Speichers benötigt. ",-1),s("p",null," Sofern das System nicht zurückgesetzt wurde, ist im Auslieferungszustand für erste Ladetests ein virtueller Zähler vorkonfiguriert. Dieser muss zuerst gelöscht werden, wenn das im Gebäude installierte Energiesystem konfiguriert wird. ",-1),s("p",null," Alle Komponenten, welche über die gleiche IP-Adresse erreichbar sind werden als ein Gerät verstanden. Dieses Gerät ist über den Herstellernamen des Energiesystems im Auswahlmenü der verfügbaren Geräte auszuwählen. Unterhalb des Gerätes werden die zugehörigen Komponenten EVU-Zähler, WR und Speicher konfiguriert. Es können je nach Bedarf beliebig viele Geräte und Komponenten miteinander kombiniert werden. ",-1),s("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:a(()=>[f(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=n=>t.$emit("sendCommand",n)),onSave:e[1]||(e[1]=n=>t.$emit("save")),onReset:e[2]||(e[2]=n=>t.$emit("reset")),onDefaults:e[3]||(e[3]=n=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const z=u(h,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep5.vue"]]);export{z as default}; diff --git a/web/settings/assets/InstallAssistantStep6-5c9750cb.js b/web/settings/assets/InstallAssistantStep6-5c9750cb.js deleted file mode 100644 index 12a79b29be..0000000000 --- a/web/settings/assets/InstallAssistantStep6-5c9750cb.js +++ /dev/null @@ -1 +0,0 @@ -import{C as d}from"./index-8dd8e083.js";import u from"./InstallAssistantStepTemplate-59e1095f.js";import{b as p}from"./ChargePointInstallation-7e22d920.js";import{_ as m,u as a,l as h,x as g,E as r,A as n,G as w}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const P={name:"InstallAssistantStep6",components:{InstallAssistantStepTemplate:u,ChargePointInstallationView:p},mixins:[d],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",7)},previousPage(){this.$emit("switchPage",5)},endAssistant(){this.$emit("endAssistant")}}};function c(t,e,f,b,k,i){const o=a("ChargePointInstallationView"),l=a("InstallAssistantStepTemplate");return h(),g(l,{title:"6. Einrichten der Ladepunkte (openWB als primary)",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:r(()=>e[4]||(e[4]=[n("p",null,' Enthält die steuernde openWB (primary) Ladetechnik, wird bei "Verfügbare Ladepunkte" "Interne openWB" ausgewählt. Weitere LP werden im primary als "Secondary openWB" oder andere WB-Typen wie "openWB Pro", "openwB Satellit" eingebunden. ',-1),n("p",null,"Bei openWBs ab Werk ist hier bereits ein Ladepunkt eingetragen.",-1),n("p",null," Nachfolgend werden die Eigenschaften des Ladepunktes wie IP-Adresse und elektrischer Anschluss definiert. Die meisten openWB werden 3-phasig angeschlossen! Bei mehreren Ladepunkten ist auf phasenrotierten Anschluss der openWB-Zuleitung zu achten! Abschließend wird die korrekte Zuordnung der Phase 1 des Ladekabels zur zugehörigen EVU-Zählerphase konfiguriert. Dies ist sehr wichtig, um optimales Lastmanagement sicherzustellen! ",-1),n("p",null," Tipp zur Zuordnung: Verwende ein nur 1-phasig ladendes Auto (z.B. Hybrid) oder stelle bei openWB mit 1p3p-Phasenumschaltung temporär unter Sofortladen (s. Einstellungen -> Ladeeinstellungen) auf einphasig, um eine 1-phasige Ladung zu erzwingen. Gehe unter Status und vergleiche die Leistungen bzw. Ströme der 3 Phasen am EVU-Zähler (rot) beim und nach dem Autoladen (Sofortladen mit 16A/ Stop). Diejenige EVU-Phase, die deutlich erhöhte Werte anzeigt, ist die auszuwählende EVU-Phase. ",-1),n("p",null,' Im grauen Abschnitt "Ladepunkt-Profile" können neben dem Standard-Ladepunkt-Profil auch weitere Ladepunkt-Profile, die andere WB-Typen abbilden, erstellt werden. Dort sind Eintragungen bzgl. des Ladepunkt-Maximalstroms bei einer Phase bzw. mehreren Phasen vorzunehmen. Die Profile werden abschließend im jeweiligen blauen Ladepunkt mittels Auswahlmenü zugeordnet. ',-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:r(()=>[w(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const $=m(P,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep6.vue"]]);export{$ as default}; diff --git a/web/settings/assets/InstallAssistantStep6-80a98cf3.js b/web/settings/assets/InstallAssistantStep6-80a98cf3.js new file mode 100644 index 0000000000..6d9c87ea55 --- /dev/null +++ b/web/settings/assets/InstallAssistantStep6-80a98cf3.js @@ -0,0 +1 @@ +import{C as d}from"./index-c94f8df4.js";import u from"./InstallAssistantStepTemplate-d46144b3.js";import{b as p}from"./ChargePointInstallation-f32d3e54.js";import{_ as m,u as a,l as h,x as g,E as r,A as n,G as w}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const P={name:"InstallAssistantStep6",components:{InstallAssistantStepTemplate:u,ChargePointInstallationView:p},mixins:[d],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",7)},previousPage(){this.$emit("switchPage",5)},endAssistant(){this.$emit("endAssistant")}}};function c(t,e,f,b,k,i){const o=a("ChargePointInstallationView"),l=a("InstallAssistantStepTemplate");return h(),g(l,{title:"6. Einrichten der Ladepunkte (openWB als primary)",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:r(()=>[...e[4]||(e[4]=[n("p",null,' Enthält die steuernde openWB (primary) Ladetechnik, wird bei "Verfügbare Ladepunkte" "Interne openWB" ausgewählt. Weitere LP werden im primary als "Secondary openWB" oder andere WB-Typen wie "openWB Pro", "openwB Satellit" eingebunden. ',-1),n("p",null,"Bei openWBs ab Werk ist hier bereits ein Ladepunkt eingetragen.",-1),n("p",null," Nachfolgend werden die Eigenschaften des Ladepunktes wie IP-Adresse und elektrischer Anschluss definiert. Die meisten openWB werden 3-phasig angeschlossen! Bei mehreren Ladepunkten ist auf phasenrotierten Anschluss der openWB-Zuleitung zu achten! Abschließend wird die korrekte Zuordnung der Phase 1 des Ladekabels zur zugehörigen EVU-Zählerphase konfiguriert. Dies ist sehr wichtig, um optimales Lastmanagement sicherzustellen! ",-1),n("p",null," Tipp zur Zuordnung: Verwende ein nur 1-phasig ladendes Auto (z.B. Hybrid) oder stelle bei openWB mit 1p3p-Phasenumschaltung temporär unter Sofortladen (s. Einstellungen -> Ladeeinstellungen) auf einphasig, um eine 1-phasige Ladung zu erzwingen. Gehe unter Status und vergleiche die Leistungen bzw. Ströme der 3 Phasen am EVU-Zähler (rot) beim und nach dem Autoladen (Sofortladen mit 16A/ Stop). Diejenige EVU-Phase, die deutlich erhöhte Werte anzeigt, ist die auszuwählende EVU-Phase. ",-1),n("p",null,' Im grauen Abschnitt "Ladepunkt-Profile" können neben dem Standard-Ladepunkt-Profil auch weitere Ladepunkt-Profile, die andere WB-Typen abbilden, erstellt werden. Dort sind Eintragungen bzgl. des Ladepunkt-Maximalstroms bei einer Phase bzw. mehreren Phasen vorzunehmen. Die Profile werden abschließend im jeweiligen blauen Ladepunkt mittels Auswahlmenü zugeordnet. ',-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:r(()=>[w(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const $=m(P,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep6.vue"]]);export{$ as default}; diff --git a/web/settings/assets/InstallAssistantStep7-01325ff0.js b/web/settings/assets/InstallAssistantStep7-01325ff0.js new file mode 100644 index 0000000000..65cf0a43a4 --- /dev/null +++ b/web/settings/assets/InstallAssistantStep7-01325ff0.js @@ -0,0 +1 @@ +import{C as l}from"./index-c94f8df4.js";import m from"./InstallAssistantStepTemplate-d46144b3.js";import p from"./LoadManagementConfig-89605028.js";import{_ as u,u as r,l as g,x as h,E as a,A as n,G as c}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./OpenwbSortableList-96f09c46.js";const f={name:"InstallAssistantStep7",components:{InstallAssistantStepTemplate:m,LoadManagementConfigView:p},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",8)},previousPage(){this.$emit("switchPage",6)},endAssistant(){this.$emit("endAssistant")}}};function b(t,e,S,w,A,i){const o=r("LoadManagementConfigView"),d=r("InstallAssistantStepTemplate");return g(),h(d,{title:"7. Konfiguration des Lastmanagements",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[...e[4]||(e[4]=[n("p",null," Im Lastmanagement werden die maximale Leistung sowie die maximalen Ströme für jede Phase des Zählermoduls sowie bei Hybrid-Systemen (per DC-angebundener Speicher) die maximale Ausgangsleistung des Wechselrichters der PV-Anlage eingetragen, falls eine solche vorhanden ist. ",-1),n("p",null,' Der erste Zähler ist in der Regel der Zähler am EVU-Punkt (Position des PV/Speicher-Smartmeters direkt hinter dem VNB-Zähler). In openWB ist hierzu auf die unterhalb der "Vorhandene Zählermodule" liegende (rote) EVU-Zähler-Komponente zu klicken, in welche die maximale EVU-Leistung sowie die Phasenströme eingetragen werden, für die der Hausanschluss abgesichert ist (Elektriker fragen, typisch f. EFH: 24kW/3x35A, 43kW/3x63A). ',-1),n("p",null," Ist ein Wechselrichter mit DC-angebundenem Speicher unter Geräte hinzugefügt worden, dann ist unter der (grünen) WR-Komponente noch die maximale Ausgangsleistung des WR einzutragen. ",-1),n("p",null,' Der EVU-Zähler (rot) schließt alle weiteren Komponenten wie WR und Speicher unter sich ein. Bei AC-eingebundenen Speichern befinden sich WR und Speicher in derselben Ebene, bei DC-eingebundenen Speichern (Hybrid) der Speicher unterhalb des WR. Die Ladepunkte (z.B. "secondary openWB") befinden sich auf derselben Ebene wie der WR und unterhalb des EVU-Zählers. Anpassungen der Anordnungen sind über die Pfeil-Bereiche der Komponenten durch einfaches Verschieben mit der Maus oder am Smartphone möglich. ',-1),n("p",null,null,-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:a(()=>[c(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const I=u(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep7.vue"]]);export{I as default}; diff --git a/web/settings/assets/InstallAssistantStep7-2bd98bf0.js b/web/settings/assets/InstallAssistantStep7-2bd98bf0.js deleted file mode 100644 index 30c8a632b7..0000000000 --- a/web/settings/assets/InstallAssistantStep7-2bd98bf0.js +++ /dev/null @@ -1 +0,0 @@ -import{C as l}from"./index-8dd8e083.js";import m from"./InstallAssistantStepTemplate-59e1095f.js";import p from"./LoadManagementConfig-61263fe6.js";import{_ as u,u as r,l as g,x as h,E as a,A as n,G as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./OpenwbSortableList-c7b5b151.js";const f={name:"InstallAssistantStep7",components:{InstallAssistantStepTemplate:m,LoadManagementConfigView:p},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",8)},previousPage(){this.$emit("switchPage",6)},endAssistant(){this.$emit("endAssistant")}}};function b(t,e,S,w,A,i){const o=r("LoadManagementConfigView"),d=r("InstallAssistantStepTemplate");return g(),h(d,{title:"7. Konfiguration des Lastmanagements",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>e[4]||(e[4]=[n("p",null," Im Lastmanagement werden die maximale Leistung sowie die maximalen Ströme für jede Phase des Zählermoduls sowie bei Hybrid-Systemen (per DC-angebundener Speicher) die maximale Ausgangsleistung des Wechselrichters der PV-Anlage eingetragen, falls eine solche vorhanden ist. ",-1),n("p",null,' Der erste Zähler ist in der Regel der Zähler am EVU-Punkt (Position des PV/Speicher-Smartmeters direkt hinter dem VNB-Zähler). In openWB ist hierzu auf die unterhalb der "Vorhandene Zählermodule" liegende (rote) EVU-Zähler-Komponente zu klicken, in welche die maximale EVU-Leistung sowie die Phasenströme eingetragen werden, für die der Hausanschluss abgesichert ist (Elektriker fragen, typisch f. EFH: 24kW/3x35A, 43kW/3x63A). ',-1),n("p",null," Ist ein Wechselrichter mit DC-angebundenem Speicher unter Geräte hinzugefügt worden, dann ist unter der (grünen) WR-Komponente noch die maximale Ausgangsleistung des WR einzutragen. ",-1),n("p",null,' Der EVU-Zähler (rot) schließt alle weiteren Komponenten wie WR und Speicher unter sich ein. Bei AC-eingebundenen Speichern befinden sich WR und Speicher in derselben Ebene, bei DC-eingebundenen Speichern (Hybrid) der Speicher unterhalb des WR. Die Ladepunkte (z.B. "secondary openWB") befinden sich auf derselben Ebene wie der WR und unterhalb des EVU-Zählers. Anpassungen der Anordnungen sind über die Pfeil-Bereiche der Komponenten durch einfaches Verschieben mit der Maus oder am Smartphone möglich. ',-1),n("p",null,null,-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])),content:a(()=>[c(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const I=u(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep7.vue"]]);export{I as default}; diff --git a/web/settings/assets/InstallAssistantStep8-23be5b5b.js b/web/settings/assets/InstallAssistantStep8-65bb7ab2.js similarity index 85% rename from web/settings/assets/InstallAssistantStep8-23be5b5b.js rename to web/settings/assets/InstallAssistantStep8-65bb7ab2.js index acf77efe8a..8c52ecbee3 100644 --- a/web/settings/assets/InstallAssistantStep8-23be5b5b.js +++ b/web/settings/assets/InstallAssistantStep8-65bb7ab2.js @@ -1 +1 @@ -import{C as g}from"./index-8dd8e083.js";import p from"./InstallAssistantStepTemplate-59e1095f.js";import{a as h}from"./VehicleConfig-c6e5b45b.js";import{F as f}from"./vendor-fortawesome-a02b6813.js";import{_ as z,u as r,l as w,x as P,E as a,A as n,B as o,G as d}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const A={name:"InstallAssistantStep8",components:{InstallAssistantStepTemplate:p,VehicleConfigView:h,FontAwesomeIcon:f},mixins:[g],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",9)},previousPage(){this.$emit("switchPage",7)},endAssistant(){this.$emit("endAssistant")}}},F={class:"font-weight-bold"};function v(t,e,c,S,V,i){const l=r("FontAwesomeIcon"),u=r("VehicleConfigView"),m=r("InstallAssistantStepTemplate");return w(),P(m,{title:"8. Einrichten der Fahrzeuge",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[e[6]||(e[6]=n("p",null,"Vor dem eigentlichen Fahrzeug werden zuerst die Fahrzeug- und Lade-Profile konfiguriert.",-1)),e[7]||(e[7]=n("p",null," Bei nur einem Fahrzeug reicht das Standard-Fahrzeug-Profil aus. Bei mehreren Fahrzeugtypen werden weitere Fahrzeug-Profile hinzugefügt. Im Anschluss werden die Fahrzeug-Profile mit den passenden Einstellungen des Fahrzeugtyps versehen (Mindeststromstärke, Maximalstromstärke bei einer/mehreren Phase/n sowie Angaben zur Batterie und Handhabung der Phasen entsprechend den Daten des Automobilherstellers. Im Zweifelsfall den Hersteller des Autos oder im openWB-Forum nachfragen). ",-1)),n("p",F,[e[4]||(e[4]=o(' Wichtig: Die "Angaben zur Handhabung von Phasen" des Fahrzeugs sind richtig einzutragen! Beachte die Hilfstexte, die Du durch Klick auf ',-1)),d(l,{icon:["far","question-circle"]}),e[5]||(e[5]=o(" anzeigen kannst. ",-1))]),e[8]||(e[8]=n("p",null," Bei nur einem Fahrzeug reicht das Standard-Lade-Profil aus. Bei mehreren Fahrzeugen können weitere Lade-Profile hinzugefügt werden. Dies erlaubt die Nutzung unterschiedlicher Lademodi je Fahrzeug (z.B. EV1 = Sofortladen, EV2 = PV-Laden). Im Anschluss werden die Voreinstellungen zu den verschiedenen Lademodi konfiguriert. ",-1)),e[9]||(e[9]=n("p",null," Nun wird das eigentliche Fahrzeug angelegt und mit dem gewünschten Fahrzeug-Profil / Lade-Profil versehen. Ist nur ein Fahrzeug vorhanden, reicht das Standard-Fahrzeug aus. ",-1)),e[10]||(e[10]=n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1))]),content:a(()=>[d(u,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const T=z(A,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep8.vue"]]);export{T as default}; +import{C as g}from"./index-c94f8df4.js";import p from"./InstallAssistantStepTemplate-d46144b3.js";import{a as h}from"./VehicleConfig-890c7977.js";import{F as f}from"./vendor-fortawesome-fc4b3a41.js";import{_ as z,u as r,l as w,x as P,E as a,A as n,B as o,G as d}from"./vendor-50125810.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const A={name:"InstallAssistantStep8",components:{InstallAssistantStepTemplate:p,VehicleConfigView:h,FontAwesomeIcon:f},mixins:[g],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",9)},previousPage(){this.$emit("switchPage",7)},endAssistant(){this.$emit("endAssistant")}}},F={class:"font-weight-bold"};function v(t,e,c,S,V,i){const l=r("FontAwesomeIcon"),u=r("VehicleConfigView"),m=r("InstallAssistantStepTemplate");return w(),P(m,{title:"8. Einrichten der Fahrzeuge",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[e[6]||(e[6]=n("p",null,"Vor dem eigentlichen Fahrzeug werden zuerst die Fahrzeug- und Lade-Profile konfiguriert.",-1)),e[7]||(e[7]=n("p",null," Bei nur einem Fahrzeug reicht das Standard-Fahrzeug-Profil aus. Bei mehreren Fahrzeugtypen werden weitere Fahrzeug-Profile hinzugefügt. Im Anschluss werden die Fahrzeug-Profile mit den passenden Einstellungen des Fahrzeugtyps versehen (Mindeststromstärke, Maximalstromstärke bei einer/mehreren Phase/n sowie Angaben zur Batterie und Handhabung der Phasen entsprechend den Daten des Automobilherstellers. Im Zweifelsfall den Hersteller des Autos oder im openWB-Forum nachfragen). ",-1)),n("p",F,[e[4]||(e[4]=o(' Wichtig: Die "Angaben zur Handhabung von Phasen" des Fahrzeugs sind richtig einzutragen! Beachte die Hilfstexte, die Du durch Klick auf ',-1)),d(l,{icon:["far","question-circle"]}),e[5]||(e[5]=o(" anzeigen kannst. ",-1))]),e[8]||(e[8]=n("p",null," Bei nur einem Fahrzeug reicht das Standard-Lade-Profil aus. Bei mehreren Fahrzeugen können weitere Lade-Profile hinzugefügt werden. Dies erlaubt die Nutzung unterschiedlicher Lademodi je Fahrzeug (z.B. EV1 = Sofortladen, EV2 = PV-Laden). Im Anschluss werden die Voreinstellungen zu den verschiedenen Lademodi konfiguriert. ",-1)),e[9]||(e[9]=n("p",null," Nun wird das eigentliche Fahrzeug angelegt und mit dem gewünschten Fahrzeug-Profil / Lade-Profil versehen. Ist nur ein Fahrzeug vorhanden, reicht das Standard-Fahrzeug aus. ",-1)),e[10]||(e[10]=n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1))]),content:a(()=>[d(u,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const T=z(A,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep8.vue"]]);export{T as default}; diff --git a/web/settings/assets/InstallAssistantStep9-1aa5b6bf.js b/web/settings/assets/InstallAssistantStep9-1aa5b6bf.js deleted file mode 100644 index aab54cfa53..0000000000 --- a/web/settings/assets/InstallAssistantStep9-1aa5b6bf.js +++ /dev/null @@ -1 +0,0 @@ -import{C as l}from"./index-8dd8e083.js";import p from"./InstallAssistantStepTemplate-59e1095f.js";import{D as u}from"./DataManagement-52054445.js";import{_ as d,u as a,l as g,x as f,E as i,A as o,G as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const A={name:"InstallAssistantStep9",components:{InstallAssistantStepTemplate:p,DataManagement:u},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:["openWB/general/extern"]}),computed:{stepNumber(){return this.$store.state.mqtt["openWB/general/extern"]?5:9}},methods:{nextPage(){this.$emit("switchPage",10)},previousPage(){this.$emit("switchPage",this.$store.state.mqtt["openWB/general/extern"]?4:8)},endAssistant(){this.$emit("endAssistant")}}};function P(t,e,$,S,c,n){const r=a("DataManagement"),m=a("InstallAssistantStepTemplate");return g(),f(m,{title:`${n.stepNumber}. Datensicherung der neuen Konfiguration`,onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:i(()=>e[4]||(e[4]=[o("p",null," Wir empfehlen an dieser Stelle eine manuell initiierte Sicherung der neu konfigurierten openWB zu erstellen. ",-1),o("p",null," Dieser Vorgang sollte im Betrieb regelmäßig wiederholt werden (mindestens vor Updates), um sowohl die individuellen Log-Daten als auch auf ältere Konfigurationen zurückgreifen zu können (Backups). ",-1)])),content:i(()=>[v(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["title","onNextPage","onPreviousPage","onEndAssistant"])}const W=d(A,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep9.vue"]]);export{W as default}; diff --git a/web/settings/assets/InstallAssistantStep9-4ce532e6.js b/web/settings/assets/InstallAssistantStep9-4ce532e6.js new file mode 100644 index 0000000000..f132c72e6a --- /dev/null +++ b/web/settings/assets/InstallAssistantStep9-4ce532e6.js @@ -0,0 +1 @@ +import{C as l}from"./index-c94f8df4.js";import p from"./InstallAssistantStepTemplate-d46144b3.js";import{D as u}from"./DataManagement-e6d61b39.js";import{_ as d,u as a,l as g,x as f,E as i,A as o,G as v}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const A={name:"InstallAssistantStep9",components:{InstallAssistantStepTemplate:p,DataManagement:u},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopicsToSubscribe:["openWB/general/extern"]}),computed:{stepNumber(){return this.$store.state.mqtt["openWB/general/extern"]?5:9}},methods:{nextPage(){this.$emit("switchPage",10)},previousPage(){this.$emit("switchPage",this.$store.state.mqtt["openWB/general/extern"]?4:8)},endAssistant(){this.$emit("endAssistant")}}};function P(t,e,$,S,c,n){const r=a("DataManagement"),m=a("InstallAssistantStepTemplate");return g(),f(m,{title:`${n.stepNumber}. Datensicherung der neuen Konfiguration`,onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:i(()=>[...e[4]||(e[4]=[o("p",null," Wir empfehlen an dieser Stelle eine manuell initiierte Sicherung der neu konfigurierten openWB zu erstellen. ",-1),o("p",null," Dieser Vorgang sollte im Betrieb regelmäßig wiederholt werden (mindestens vor Updates), um sowohl die individuellen Log-Daten als auch auf ältere Konfigurationen zurückgreifen zu können (Backups). ",-1)])]),content:i(()=>[v(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=s=>t.$emit("sendCommand",s)),onSave:e[1]||(e[1]=s=>t.$emit("save")),onReset:e[2]||(e[2]=s=>t.$emit("reset")),onDefaults:e[3]||(e[3]=s=>t.$emit("defaults"))})]),_:1},8,["title","onNextPage","onPreviousPage","onEndAssistant"])}const W=d(A,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep9.vue"]]);export{W as default}; diff --git a/web/settings/assets/InstallAssistantStepTemplate-59e1095f.js b/web/settings/assets/InstallAssistantStepTemplate-59e1095f.js deleted file mode 100644 index b03cf7e407..0000000000 --- a/web/settings/assets/InstallAssistantStepTemplate-59e1095f.js +++ /dev/null @@ -1 +0,0 @@ -import{C as g}from"./index-8dd8e083.js";import{l as v,ax as y,ay as w,F as x}from"./vendor-fortawesome-a02b6813.js";import{_ as k,u as r,l as a,m as i,G as t,E as s,A as n,B as c,z as p,p as f}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const B="/openWB/web/settings/img/openWB_logo_light.png";v.add(y,w);const h={name:"InstallAssistantStepTemplate",components:{FontAwesomeIcon:x},mixins:[g],props:{title:{type:String,required:!0},hidePrevious:{type:Boolean,required:!1,default:!1},hideNext:{type:Boolean,required:!1,default:!1},hideEnd:{type:Boolean,required:!1,default:!1}},emits:["previousPage","nextPage","endAssistant"],methods:{nextPage(){window.scrollTo(0,0),this.$emit("nextPage")},previousPage(){window.scrollTo(0,0),this.$emit("previousPage")},endAssistant(){this.$emit("endAssistant")}}},A={class:"row justify-content-center mb-1"},C={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},P={key:1,class:"col-md-4 d-flex py-1 justify-content-center"},S={key:2,class:"col-md-4 d-flex py-1 justify-content-center"},T={class:"row justify-content-center"},I={class:"page-help-text col-md-3 py-2"},N={class:"col py-2"};function $(_,e,o,j,W,l){const u=r("font-awesome-icon"),d=r("openwb-base-click-button"),b=r("openwb-base-card");return a(),i("div",null,[t(b,{title:o.title,"body-bg":"white",class:"p-0 mx-3"},{footer:s(()=>[n("div",A,[o.hidePrevious?p("",!0):(a(),i("div",C,[t(d,{class:"btn-block btn-warning",onButtonClicked:e[0]||(e[0]=m=>l.previousPage())},{default:s(()=>[t(u,{icon:["fas","caret-left"]}),e[3]||(e[3]=c(" Zurück ",-1))]),_:1,__:[3]})])),o.hideNext?p("",!0):(a(),i("div",P,[t(d,{class:"btn-block btn-success",onButtonClicked:e[1]||(e[1]=m=>l.nextPage())},{default:s(()=>[e[4]||(e[4]=c(" Weiter ",-1)),t(u,{icon:["fas","caret-right"]})]),_:1,__:[4]})])),o.hideEnd?p("",!0):(a(),i("div",S,[t(d,{class:"btn-block btn-danger",onButtonClicked:e[2]||(e[2]=m=>l.endAssistant())},{default:s(()=>e[5]||(e[5]=[c(" Assistent beenden ",-1)])),_:1,__:[5]})]))])]),default:s(()=>[n("div",T,[n("div",I,[f(_.$slots,"help",{},()=>[e[6]||(e[6]=n("img",{src:B,alt:"openWB Logo",class:"w-100"},null,-1))],!0)]),n("div",N,[f(_.$slots,"content",{},void 0,!0)])])]),_:3},8,["title"])])}const R=k(h,[["render",$],["__scopeId","data-v-db9e78cb"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStepTemplate.vue"]]);export{R as default}; diff --git a/web/settings/assets/InstallAssistantStepTemplate-d46144b3.js b/web/settings/assets/InstallAssistantStepTemplate-d46144b3.js new file mode 100644 index 0000000000..36381eceff --- /dev/null +++ b/web/settings/assets/InstallAssistantStepTemplate-d46144b3.js @@ -0,0 +1 @@ +import{C as g}from"./index-c94f8df4.js";import{l as v,ax as y,ay as w,F as x}from"./vendor-fortawesome-fc4b3a41.js";import{_ as k,u as r,l as a,m as i,G as t,E as s,A as n,B as c,z as p,p as f}from"./vendor-50125810.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";const B="/openWB/web/settings/img/openWB_logo_light.png";v.add(y,w);const h={name:"InstallAssistantStepTemplate",components:{FontAwesomeIcon:x},mixins:[g],props:{title:{type:String,required:!0},hidePrevious:{type:Boolean,required:!1,default:!1},hideNext:{type:Boolean,required:!1,default:!1},hideEnd:{type:Boolean,required:!1,default:!1}},emits:["previousPage","nextPage","endAssistant"],methods:{nextPage(){window.scrollTo(0,0),this.$emit("nextPage")},previousPage(){window.scrollTo(0,0),this.$emit("previousPage")},endAssistant(){this.$emit("endAssistant")}}},A={class:"row justify-content-center mb-1"},C={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},P={key:1,class:"col-md-4 d-flex py-1 justify-content-center"},S={key:2,class:"col-md-4 d-flex py-1 justify-content-center"},T={class:"row justify-content-center"},I={class:"page-help-text col-md-3 py-2"},N={class:"col py-2"};function $(u,e,o,j,W,l){const m=r("font-awesome-icon"),d=r("openwb-base-click-button"),b=r("openwb-base-card");return a(),i("div",null,[t(b,{title:o.title,"body-bg":"white",class:"p-0 mx-3"},{footer:s(()=>[n("div",A,[o.hidePrevious?p("",!0):(a(),i("div",C,[t(d,{class:"btn-block btn-warning",onButtonClicked:e[0]||(e[0]=_=>l.previousPage())},{default:s(()=>[t(m,{icon:["fas","caret-left"]}),e[3]||(e[3]=c(" Zurück ",-1))]),_:1})])),o.hideNext?p("",!0):(a(),i("div",P,[t(d,{class:"btn-block btn-success",onButtonClicked:e[1]||(e[1]=_=>l.nextPage())},{default:s(()=>[e[4]||(e[4]=c(" Weiter ",-1)),t(m,{icon:["fas","caret-right"]})]),_:1})])),o.hideEnd?p("",!0):(a(),i("div",S,[t(d,{class:"btn-block btn-danger",onButtonClicked:e[2]||(e[2]=_=>l.endAssistant())},{default:s(()=>[...e[5]||(e[5]=[c(" Assistent beenden ",-1)])]),_:1})]))])]),default:s(()=>[n("div",T,[n("div",I,[f(u.$slots,"help",{},()=>[e[6]||(e[6]=n("img",{src:B,alt:"openWB Logo",class:"w-100"},null,-1))],!0)]),n("div",N,[f(u.$slots,"content",{},void 0,!0)])])]),_:3},8,["title"])])}const R=k(h,[["render",$],["__scopeId","data-v-db9e78cb"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStepTemplate.vue"]]);export{R as default}; diff --git a/web/settings/assets/IoConfig-20eaec88.js b/web/settings/assets/IoConfig-20eaec88.js new file mode 100644 index 0000000000..d9972c0421 --- /dev/null +++ b/web/settings/assets/IoConfig-20eaec88.js @@ -0,0 +1 @@ +import{l as q,ab as $,F as L}from"./vendor-fortawesome-fc4b3a41.js";import{_ as A,C as E}from"./index-c94f8df4.js";import{_ as W}from"./dynamic-import-helper-be004503.js";import{_ as k,u as l,l as a,m as g,x as v,E as i,B as d,F as b,G as r,A as w,a2 as M,N as I,M as x,z as C,a3 as T}from"./vendor-50125810.js";const U={props:{ioDevice:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},F=k(U,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceConfigMixin.vue"]]),N={name:"OpenwbIoDeviceConfigFallback",mixins:[F]},z={class:"io-device-config-fallback"},G={key:1};function R(t,e,s,_,c,n){const m=l("openwb-base-alert"),h=l("openwb-base-textarea");return a(),g("div",z,[Object.keys(t.ioDevice.configuration).length==0?(a(),v(m,{key:0,subtype:"info"},{default:i(()=>[d(' Das I/O-Modul "'+b(t.ioDevice.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(a(),g("div",G,[r(m,{subtype:"warning"},{default:i(()=>[d(' Es wurde keine Konfigurationsseite für das I/O-Modul "'+b(t.ioDevice.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),r(h,{title:"Konfiguration",subtype:"json","model-value":t.ioDevice.configuration,"onUpdate:modelValue":e[0]||(e[0]=f=>t.updateConfiguration(f,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[d(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),r(m,{subtype:"info"},{default:i(()=>[w("pre",null,b(JSON.stringify(t.ioDevice.configuration,void 0,2)),1)]),_:1})]))])}const J=k(N,[["render",R],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceConfigFallback.vue"]]),H={name:"OpenwbIoDeviceProxy",props:{ioDevice:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],computed:{myComponent(){return console.debug(`loading io device: ${this.ioDevice.type}`),M({loader:()=>W(Object.assign({"./add_on/io_device.vue":()=>A(()=>import("./io_device-1f979b15.js"),["assets/io_device-1f979b15.js","assets/index-c94f8df4.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./dimm_kit/io_device.vue":()=>A(()=>import("./io_device-ac0abd6b.js"),["assets/io_device-ac0abd6b.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.ioDevice.type}/io_device.vue`),errorComponent:J})},outputs(){const t=[];if(this.ioDevice.output){if(this.ioDevice.output.analog)for(const e in this.ioDevice.output.analog)t.push(`openWB/set/system/io/${this.ioDevice.id}/set/manual/analog_output/${e}`);if(this.ioDevice.output.digital)for(const e in this.ioDevice.output.digital)t.push(`openWB/set/system/io/${this.ioDevice.id}/set/manual/digital_output/${e}`)}return t}},methods:{updateConfiguration(t){this.$emit("update:configuration",t)},sendCommand(t){this.$emit("sendCommand",t)}}};function Q(t,e,s,_,c,n){const m=l("openwb-base-heading"),h=l("openwb-base-copy-to-clipboard"),f=l("openwb-base-alert");return a(),g("div",null,[r(m,null,{default:i(()=>[d(' Einstellungen für I/O-Modul "'+b(s.ioDevice.name)+'" ',1)]),_:1}),n.outputs.length?(a(),v(f,{key:0,subtype:"info"},{default:i(()=>[e[2]||(e[2]=d(" Die Ausgänge können über die folgenden Topics manuell per MQTT geschaltet werden. Falls Ausgänge in Aktionen konfiguriert werden, überschreibt das manuelle Setzen den Status. ",-1)),w("ul",null,[(a(!0),g(I,null,x(n.outputs,p=>(a(),g("li",{key:p},[r(h,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[d(b(p),1)]),_:2},1024)]))),128))]),e[3]||(e[3]=d(" Als Wert wird ein boolean als json oder 0/1 akzeptiert.",-1)),e[4]||(e[4]=w("br",null,null,-1)),e[5]||(e[5]=d(" Beispiel: ",-1)),e[6]||(e[6]=w("span",{class:"text-info"},"false",-1))]),_:1})):C("",!0),(a(),v(T(n.myComponent),{"io-device":s.ioDevice,"onUpdate:configuration":e[0]||(e[0]=p=>n.updateConfiguration(p)),onSendCommand:e[1]||(e[1]=p=>n.sendCommand(p))},null,40,["io-device"]))])}const X=k(H,[["render",Q],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceProxy.vue"]]),Y={mixins:[E],props:{ioAction:{type:Object,required:!0},ioDevice:{type:Object,required:!0},availableChargePoints:{type:Array,required:!1,default:()=>[]},availableComponents:{type:Array,required:!1,default:()=>[]},availableIoDevices:{type:Array,required:!1,default:()=>[]}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},Z=k(Y,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionConfigMixin.vue"]]),K={name:"OpenwbIoActionConfigFallback",mixins:[Z]},ee={class:"io-action-config-fallback"},te={key:1};function oe(t,e,s,_,c,n){var f,p;const m=l("openwb-base-alert"),h=l("openwb-base-textarea");return a(),g("div",ee,[Object.keys((f=t.ioAction)==null?void 0:f.configuration).length==0?(a(),v(m,{key:0,subtype:"info"},{default:i(()=>{var u;return[d(' Die I/O-Aktion "'+b((u=t.ioAction)==null?void 0:u.name)+'" bietet keine Einstellungen. ',1)]}),_:1})):(a(),g("div",te,[r(m,{subtype:"warning"},{default:i(()=>{var u;return[d(' Es wurde keine Konfigurationsseite für die I/O-Aktion "'+b((u=t.ioAction)==null?void 0:u.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]}),_:1}),r(h,{title:"Konfiguration",subtype:"json","model-value":(p=t.ioAction)==null?void 0:p.configuration,"onUpdate:modelValue":e[0]||(e[0]=u=>t.updateConfiguration(u,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[d(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),r(m,{subtype:"info"},{default:i(()=>{var u;return[w("pre",null,b(JSON.stringify((u=t.ioAction)==null?void 0:u.configuration,void 0,2)),1)]}),_:1})]))])}const ne=k(K,[["render",oe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionConfigFallback.vue"]]),ie={name:"OpenwbIoActionProxy",props:{ioAction:{type:Object,required:!0},ioDevices:{type:Object,required:!0},installedChargePoints:{type:Object,required:!0},installedComponents:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],computed:{myComponent(){var t,e;return console.debug(`loading io action: ${(t=this.ioAction)==null?void 0:t.group} / ${(e=this.ioAction)==null?void 0:e.type}`),M({loader:()=>{var s,_;return W(Object.assign({"./controllable_consumers/dimming/io_action.vue":()=>A(()=>import("./io_action-82034a26.js"),["assets/io_action-82034a26.js","assets/OpenwbIoSinglePattern-67be81d3.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./controllable_consumers/dimming_direct_control/io_action.vue":()=>A(()=>import("./io_action-8211f02f.js"),["assets/io_action-8211f02f.js","assets/OpenwbIoSinglePattern-67be81d3.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./controllable_consumers/ripple_control_receiver/io_action.vue":()=>A(()=>import("./io_action-3c4c6f74.js"),["assets/io_action-3c4c6f74.js","assets/OpenwbIoPattern-573b772f.js","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/OpenwbIoPattern-746401f7.css","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generator_systems/stepwise_control/io_action.vue":()=>A(()=>import("./io_action-f1a6dc2b.js"),["assets/io_action-f1a6dc2b.js","assets/OpenwbIoPattern-573b772f.js","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/OpenwbIoPattern-746401f7.css","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${(s=this.ioAction)==null?void 0:s.group}/${(_=this.ioAction)==null?void 0:_.type}/io_action.vue`)},errorComponent:ne})},ioDeviceList(){return Object.keys(this.ioDevices).map(t=>{var e,s;return{value:(e=this.ioDevices[t])==null?void 0:e.id,text:(s=this.ioDevices[t])==null?void 0:s.name}})},availableIoDevices(){return Object.values(this.ioDevices)},availableChargePoints(){return Object.values(this.installedChargePoints).map(t=>({value:t==null?void 0:t.id,text:t==null?void 0:t.name}))},availableComponents(){return Object.values(this.installedComponents).map(t=>({value:t==null?void 0:t.id,text:t==null?void 0:t.name,type:t==null?void 0:t.type}))}},methods:{updateConfiguration(t,e=void 0){e?this.$emit("update:configuration",{value:t,object:e}):this.$emit("update:configuration",t)},updateIoDevice(t){var e;if(this.updateConfiguration(t,"configuration.io_device"),Array.isArray((e=this.ioAction.configuration)==null?void 0:e.input_pattern)){let s=this.ioAction.configuration.input_pattern.map(_=>({value:_.value,matrix:{}}));this.updateConfiguration(s,"configuration.input_pattern")}Object.prototype.hasOwnProperty.call(this.ioAction.configuration,"digital_input")&&this.updateConfiguration(null,"configuration.digital_input")}}},ae={key:0};function se(t,e,s,_,c,n){var f,p;const m=l("openwb-base-heading"),h=l("openwb-base-select-input");return a(),g(I,null,[r(m,null,{default:i(()=>{var u;return[d(' Einstellungen für I/O-Aktion "'+b((u=s.ioAction)==null?void 0:u.name)+'" ',1)]}),_:1}),r(h,{title:"Eingangs-Gerät","not-selected":"Bitte auswählen","empty-value":null,required:"",options:n.ioDeviceList,"model-value":(f=s.ioAction)==null?void 0:f.configuration.io_device,"onUpdate:modelValue":e[0]||(e[0]=u=>n.updateIoDevice(u))},{help:i(()=>[...e[2]||(e[2]=[d(" Bitte das Gerät auswählen, über das der Schaltbefehl empfangen werden soll. Für jede Aktion kann nur ein Gerät ausgewählt werden. ",-1)])]),_:1},8,["options","model-value"]),((p=s.ioAction)==null?void 0:p.configuration.io_device)!==null?(a(),g("div",ae,[e[3]||(e[3]=w("hr",null,null,-1)),(a(),v(T(n.myComponent),{"io-action":s.ioAction,"io-device":s.ioDevices[`openWB/system/io/${s.ioAction.configuration.io_device}/config`],"available-charge-points":n.availableChargePoints,"available-components":n.availableComponents,"available-io-devices":n.availableIoDevices,"onUpdate:configuration":e[1]||(e[1]=u=>n.updateConfiguration(u))},null,40,["io-action","io-device","available-charge-points","available-components","available-io-devices"]))])):C("",!0)],64)}const re=k(ie,[["render",se],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionProxy.vue"]]);q.add($);const ue={name:"OpenwbIoConfigView",components:{FontAwesomeIcon:L,OpenwbIoDeviceProxy:X,OpenwbIoActionProxy:re},mixins:[E],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults","send-command"],data(){return{mqttTopicsToSubscribe:["openWB/system/configurable/io_devices","openWB/system/io/+/config","openWB/system/configurable/io_actions","openWB/io/action/+/config","openWB/chargepoint/+/config","openWB/system/device/+/component/+/config"],showIoDeviceDeleteModal:!1,modalIoDeviceIndex:void 0,ioDeviceToAdd:void 0,showIoActionDeleteModal:!1,modalIoActionIndex:void 0,ioActionToAdd:void 0}},computed:{ioDeviceList:{get(){return this.$store.state.mqtt["openWB/system/configurable/io_devices"]}},installedIoDevices:{get(){return this.getWildcardTopics("openWB/system/io/+/config")}},ioActionList:{get(){return this.$store.state.mqtt["openWB/system/configurable/io_actions"]===void 0?[]:Object.entries(this.$store.state.mqtt["openWB/system/configurable/io_actions"]).map(([t,e])=>({label:e.group_name,options:e.actions.map(s=>({value:[t,s.value],text:s.text})).sort((s,_)=>s.text.localeCompare(_.text))})).sort((t,e)=>t.label.localeCompare(e.label))}},installedIoActions:{get(){return this.getWildcardTopics("openWB/io/action/+/config")}},installedChargePoints:{get(){return this.getWildcardTopics("openWB/chargepoint/+/config")}},installedComponents:{get(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")}}},methods:{getIoDeviceName(t){return this.$store.state.mqtt["openWB/system/io/"+t+"/config"]?this.$store.state.mqtt["openWB/system/io/"+t+"/config"].name:"I/O-Gerät "+t},addIoDevice(){this.$emit("send-command",{command:"addIoDevice",data:{type:this.ioDeviceToAdd}})},removeIoDeviceModal(t,e){e.stopPropagation(),this.modalIoDeviceIndex=parseInt(t.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showIoDeviceDeleteModal=!0},removeIoDevice(t,e){this.showIoDeviceDeleteModal=!1,e=="confirm"&&this.$emit("send-command",{command:"removeIoDevice",data:{id:t}})},addIoAction(){this.$emit("send-command",{command:"addIoAction",data:{type:this.ioActionToAdd}})},removeIoActionModal(t,e){e.stopPropagation(),this.modalIoActionIndex=parseInt(t.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showIoActionDeleteModal=!0},removeIoAction(t,e){this.showIoActionDeleteModal=!1,e=="confirm"&&this.$emit("send-command",{command:"removeIoAction",data:{id:t}})},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},le={class:"ioConfig"},de={name:"ioConfigForm"},pe={key:0},ce={key:0};function me(t,e,s,_,c,n){const m=l("openwb-base-modal-dialog"),h=l("font-awesome-icon"),f=l("openwb-base-avatar"),p=l("openwb-base-text-input"),u=l("openwb-io-device-proxy"),O=l("openwb-base-card"),j=l("openwb-base-select-input"),P=l("openwb-io-action-proxy"),V=l("openwb-base-alert"),S=l("openwb-base-submit-buttons");return a(),g(I,null,[r(m,{show:c.showIoDeviceDeleteModal,title:"Modul löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=o=>n.removeIoDevice(c.modalIoDeviceIndex,o))},{default:i(()=>[d(' Wollen Sie das Ein-/Ausgangs-Gerät "'+b(n.getIoDeviceName(c.modalIoDeviceIndex))+'" (ID: '+b(c.modalIoDeviceIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),r(m,{show:c.showIoActionDeleteModal,title:"Aktion löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=o=>n.removeIoAction(c.modalIoActionIndex,o))},{default:i(()=>[d(' Wollen Sie die Aktion "'+b(n.getIoDeviceName(c.modalIoActionIndex))+'" (ID: '+b(c.modalIoActionIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),w("div",le,[w("form",de,[r(O,{title:"Ein-/Ausgangs-Geräte"},{default:i(()=>[(a(!0),g(I,null,x(n.installedIoDevices,(o,D)=>(a(),v(O,{key:D,title:(o==null?void 0:o.name)+" (ID: "+(o==null?void 0:o.id)+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:i(y=>[y.collapsed?C("",!0):(a(),v(f,{key:0,class:"bg-danger clickable",onClick:B=>n.removeIoDeviceModal(D,B)},{default:i(()=>[r(h,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:i(()=>[r(p,{title:"Bezeichnung",subtype:"text","model-value":o.name,"onUpdate:modelValue":y=>t.updateState(D,y,"name")},null,8,["model-value","onUpdate:modelValue"]),r(p,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":t.$store.state.mqtt[D].type},null,8,["model-value"]),e[7]||(e[7]=w("hr",null,null,-1)),r(u,{"io-device":o,"onUpdate:configuration":y=>n.updateConfiguration(D,y)},null,8,["io-device","onUpdate:configuration"])]),_:2},1032,["title"]))),128)),Object.keys(n.installedIoDevices).length>0?(a(),g("hr",pe)):C("",!0),r(j,{title:"Verfügbare Geräte","not-selected":"Bitte auswählen",options:n.ioDeviceList,"model-value":c.ioDeviceToAdd,"add-button":!0,"onUpdate:modelValue":e[2]||(e[2]=o=>c.ioDeviceToAdd=o),"onInput:add":n.addIoDevice},{help:i(()=>[...e[8]||(e[8]=[d(" Bitte ein Ein-/Ausgangs-Modul auswählen, das hinzugefügt werden soll. ",-1)])]),_:1},8,["options","model-value","onInput:add"])]),_:1}),r(O,{title:"Ein-/Ausgangs-Aktionen"},{default:i(()=>[(a(!0),g(I,null,x(n.installedIoActions,(o,D)=>(a(),v(O,{key:D,title:(o==null?void 0:o.name)+" (ID: "+(o==null?void 0:o.id)+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:i(y=>[y.collapsed?C("",!0):(a(),v(f,{key:0,class:"bg-danger clickable",onClick:B=>n.removeIoActionModal(D,B)},{default:i(()=>[r(h,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:i(()=>[r(p,{title:"Bezeichnung",subtype:"text","model-value":o==null?void 0:o.name,"onUpdate:modelValue":y=>t.updateState(D,y,"name")},null,8,["model-value","onUpdate:modelValue"]),r(p,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":[o==null?void 0:o.group,o==null?void 0:o.type].join(" / ")},null,8,["model-value"]),e[9]||(e[9]=w("hr",null,null,-1)),o!==void 0?(a(),v(P,{key:0,"io-action":o,"io-devices":n.installedIoDevices,"installed-charge-points":n.installedChargePoints,"installed-components":n.installedComponents,"onUpdate:configuration":y=>n.updateConfiguration(D,y)},null,8,["io-action","io-devices","installed-charge-points","installed-components","onUpdate:configuration"])):C("",!0)]),_:2},1032,["title"]))),128)),Object.keys(n.installedIoActions).length>0?(a(),g("hr",ce)):C("",!0),Object.keys(n.installedIoDevices).length>0?(a(),v(j,{key:1,title:"Verfügbare Aktionen","not-selected":"Bitte auswählen",groups:n.ioActionList,"model-value":c.ioActionToAdd,"add-button":!0,"onUpdate:modelValue":e[3]||(e[3]=o=>c.ioActionToAdd=o),"onInput:add":n.addIoAction},{help:i(()=>[...e[10]||(e[10]=[d(" Bitte eine Ein-/Ausgangs-Aktion auswählen, die hinzugefügt werden soll. ",-1)])]),_:1},8,["groups","model-value","onInput:add"])):(a(),v(V,{key:2,subtype:"warning"},{default:i(()=>[...e[11]||(e[11]=[d(" Keine Ein-/Ausgangs-Geräte vorhanden!",-1),w("br",null,null,-1),d(" Bitte fügen Sie zuerst ein Ein-/Ausgangs-Gerät hinzu, bevor Sie Aktionen konfigurieren. ",-1)])]),_:1}))]),_:1}),r(S,{"form-name":"ioConfigForm",onSave:e[4]||(e[4]=o=>t.$emit("save")),onReset:e[5]||(e[5]=o=>t.$emit("reset")),onDefaults:e[6]||(e[6]=o=>t.$emit("defaults"))})])])],64)}const ge=k(ue,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/IoConfig.vue"]]),ye=Object.freeze(Object.defineProperty({__proto__:null,default:ge},Symbol.toStringTag,{value:"Module"}));export{ge as I,F as O,Z as a,ye as b}; diff --git a/web/settings/assets/IoConfig-38958e2e.js b/web/settings/assets/IoConfig-38958e2e.js deleted file mode 100644 index fd19f3d846..0000000000 --- a/web/settings/assets/IoConfig-38958e2e.js +++ /dev/null @@ -1 +0,0 @@ -import{l as q,ab as $,F as L}from"./vendor-fortawesome-a02b6813.js";import{_ as A,C as E}from"./index-8dd8e083.js";import{_ as W}from"./dynamic-import-helper-be004503.js";import{_ as k,u as l,l as a,m as g,x as _,E as i,B as d,F as b,G as r,A as w,a2 as M,N as I,M as x,z as C,a3 as T}from"./vendor-25d394b4.js";const U={props:{ioDevice:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},F=k(U,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceConfigMixin.vue"]]),N={name:"OpenwbIoDeviceConfigFallback",mixins:[F]},z={class:"io-device-config-fallback"},G={key:1};function R(t,e,s,v,c,n){const m=l("openwb-base-alert"),h=l("openwb-base-textarea");return a(),g("div",z,[Object.keys(t.ioDevice.configuration).length==0?(a(),_(m,{key:0,subtype:"info"},{default:i(()=>[d(' Das I/O-Modul "'+b(t.ioDevice.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(a(),g("div",G,[r(m,{subtype:"warning"},{default:i(()=>[d(' Es wurde keine Konfigurationsseite für das I/O-Modul "'+b(t.ioDevice.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),r(h,{title:"Konfiguration",subtype:"json","model-value":t.ioDevice.configuration,"onUpdate:modelValue":e[0]||(e[0]=f=>t.updateConfiguration(f,"configuration"))},{help:i(()=>e[1]||(e[1]=[d(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),r(m,{subtype:"info"},{default:i(()=>[w("pre",null,b(JSON.stringify(t.ioDevice.configuration,void 0,2)),1)]),_:1})]))])}const J=k(N,[["render",R],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceConfigFallback.vue"]]),H={name:"OpenwbIoDeviceProxy",props:{ioDevice:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],computed:{myComponent(){return console.debug(`loading io device: ${this.ioDevice.type}`),M({loader:()=>W(Object.assign({"./add_on/io_device.vue":()=>A(()=>import("./io_device-4394e2dd.js"),["assets/io_device-4394e2dd.js","assets/index-8dd8e083.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./dimm_kit/io_device.vue":()=>A(()=>import("./io_device-e4d01342.js"),["assets/io_device-e4d01342.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.ioDevice.type}/io_device.vue`),errorComponent:J})},outputs(){const t=[];if(this.ioDevice.output){if(this.ioDevice.output.analog)for(const e in this.ioDevice.output.analog)t.push(`openWB/set/system/io/${this.ioDevice.id}/set/manual/analog_output/${e}`);if(this.ioDevice.output.digital)for(const e in this.ioDevice.output.digital)t.push(`openWB/set/system/io/${this.ioDevice.id}/set/manual/digital_output/${e}`)}return t}},methods:{updateConfiguration(t){this.$emit("update:configuration",t)},sendCommand(t){this.$emit("sendCommand",t)}}};function Q(t,e,s,v,c,n){const m=l("openwb-base-heading"),h=l("openwb-base-copy-to-clipboard"),f=l("openwb-base-alert");return a(),g("div",null,[r(m,null,{default:i(()=>[d(' Einstellungen für I/O-Modul "'+b(s.ioDevice.name)+'" ',1)]),_:1}),n.outputs.length?(a(),_(f,{key:0,subtype:"info"},{default:i(()=>[e[2]||(e[2]=d(" Die Ausgänge können über die folgenden Topics manuell per MQTT geschaltet werden. Falls Ausgänge in Aktionen konfiguriert werden, überschreibt das manuelle Setzen den Status. ",-1)),w("ul",null,[(a(!0),g(I,null,x(n.outputs,p=>(a(),g("li",{key:p},[r(h,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[d(b(p),1)]),_:2},1024)]))),128))]),e[3]||(e[3]=d(" Als Wert wird ein boolean als json oder 0/1 akzeptiert.",-1)),e[4]||(e[4]=w("br",null,null,-1)),e[5]||(e[5]=d(" Beispiel: ",-1)),e[6]||(e[6]=w("span",{class:"text-info"},"false",-1))]),_:1,__:[2,3,4,5,6]})):C("",!0),(a(),_(T(n.myComponent),{"io-device":s.ioDevice,"onUpdate:configuration":e[0]||(e[0]=p=>n.updateConfiguration(p)),onSendCommand:e[1]||(e[1]=p=>n.sendCommand(p))},null,40,["io-device"]))])}const X=k(H,[["render",Q],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceProxy.vue"]]),Y={mixins:[E],props:{ioAction:{type:Object,required:!0},ioDevice:{type:Object,required:!0},availableChargePoints:{type:Array,required:!1,default:()=>[]},availableComponents:{type:Array,required:!1,default:()=>[]},availableIoDevices:{type:Array,required:!1,default:()=>[]}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},Z=k(Y,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionConfigMixin.vue"]]),K={name:"OpenwbIoActionConfigFallback",mixins:[Z]},ee={class:"io-action-config-fallback"},te={key:1};function oe(t,e,s,v,c,n){var f,p;const m=l("openwb-base-alert"),h=l("openwb-base-textarea");return a(),g("div",ee,[Object.keys((f=t.ioAction)==null?void 0:f.configuration).length==0?(a(),_(m,{key:0,subtype:"info"},{default:i(()=>{var u;return[d(' Die I/O-Aktion "'+b((u=t.ioAction)==null?void 0:u.name)+'" bietet keine Einstellungen. ',1)]}),_:1})):(a(),g("div",te,[r(m,{subtype:"warning"},{default:i(()=>{var u;return[d(' Es wurde keine Konfigurationsseite für die I/O-Aktion "'+b((u=t.ioAction)==null?void 0:u.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]}),_:1}),r(h,{title:"Konfiguration",subtype:"json","model-value":(p=t.ioAction)==null?void 0:p.configuration,"onUpdate:modelValue":e[0]||(e[0]=u=>t.updateConfiguration(u,"configuration"))},{help:i(()=>e[1]||(e[1]=[d(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),r(m,{subtype:"info"},{default:i(()=>{var u;return[w("pre",null,b(JSON.stringify((u=t.ioAction)==null?void 0:u.configuration,void 0,2)),1)]}),_:1})]))])}const ne=k(K,[["render",oe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionConfigFallback.vue"]]),ie={name:"OpenwbIoActionProxy",props:{ioAction:{type:Object,required:!0},ioDevices:{type:Object,required:!0},installedChargePoints:{type:Object,required:!0},installedComponents:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],computed:{myComponent(){var t,e;return console.debug(`loading io action: ${(t=this.ioAction)==null?void 0:t.group} / ${(e=this.ioAction)==null?void 0:e.type}`),M({loader:()=>{var s,v;return W(Object.assign({"./controllable_consumers/dimming/io_action.vue":()=>A(()=>import("./io_action-a52c3f8c.js"),["assets/io_action-a52c3f8c.js","assets/OpenwbIoSinglePattern-14df64f6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./controllable_consumers/dimming_direct_control/io_action.vue":()=>A(()=>import("./io_action-d6457738.js"),["assets/io_action-d6457738.js","assets/OpenwbIoSinglePattern-14df64f6.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./controllable_consumers/ripple_control_receiver/io_action.vue":()=>A(()=>import("./io_action-7fdda1cd.js"),["assets/io_action-7fdda1cd.js","assets/OpenwbIoPattern-66bb2793.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/OpenwbIoPattern-746401f7.css","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./generator_systems/stepwise_control/io_action.vue":()=>A(()=>import("./io_action-639b3028.js"),["assets/io_action-639b3028.js","assets/OpenwbIoPattern-66bb2793.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/OpenwbIoPattern-746401f7.css","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${(s=this.ioAction)==null?void 0:s.group}/${(v=this.ioAction)==null?void 0:v.type}/io_action.vue`)},errorComponent:ne})},ioDeviceList(){return Object.keys(this.ioDevices).map(t=>{var e,s;return{value:(e=this.ioDevices[t])==null?void 0:e.id,text:(s=this.ioDevices[t])==null?void 0:s.name}})},availableIoDevices(){return Object.values(this.ioDevices)},availableChargePoints(){return Object.values(this.installedChargePoints).map(t=>({value:t==null?void 0:t.id,text:t==null?void 0:t.name}))},availableComponents(){return Object.values(this.installedComponents).map(t=>({value:t==null?void 0:t.id,text:t==null?void 0:t.name,type:t==null?void 0:t.type}))}},methods:{updateConfiguration(t,e=void 0){e?this.$emit("update:configuration",{value:t,object:e}):this.$emit("update:configuration",t)},updateIoDevice(t){var e;if(this.updateConfiguration(t,"configuration.io_device"),Array.isArray((e=this.ioAction.configuration)==null?void 0:e.input_pattern)){let s=this.ioAction.configuration.input_pattern.map(v=>({value:v.value,matrix:{}}));this.updateConfiguration(s,"configuration.input_pattern")}Object.prototype.hasOwnProperty.call(this.ioAction.configuration,"digital_input")&&this.updateConfiguration(null,"configuration.digital_input")}}},ae={key:0};function se(t,e,s,v,c,n){var f,p;const m=l("openwb-base-heading"),h=l("openwb-base-select-input");return a(),g(I,null,[r(m,null,{default:i(()=>{var u;return[d(' Einstellungen für I/O-Aktion "'+b((u=s.ioAction)==null?void 0:u.name)+'" ',1)]}),_:1}),r(h,{title:"Eingangs-Gerät","not-selected":"Bitte auswählen","empty-value":null,required:"",options:n.ioDeviceList,"model-value":(f=s.ioAction)==null?void 0:f.configuration.io_device,"onUpdate:modelValue":e[0]||(e[0]=u=>n.updateIoDevice(u))},{help:i(()=>e[2]||(e[2]=[d(" Bitte das Gerät auswählen, über das der Schaltbefehl empfangen werden soll. Für jede Aktion kann nur ein Gerät ausgewählt werden. ",-1)])),_:1},8,["options","model-value"]),((p=s.ioAction)==null?void 0:p.configuration.io_device)!==null?(a(),g("div",ae,[e[3]||(e[3]=w("hr",null,null,-1)),(a(),_(T(n.myComponent),{"io-action":s.ioAction,"io-device":s.ioDevices[`openWB/system/io/${s.ioAction.configuration.io_device}/config`],"available-charge-points":n.availableChargePoints,"available-components":n.availableComponents,"available-io-devices":n.availableIoDevices,"onUpdate:configuration":e[1]||(e[1]=u=>n.updateConfiguration(u))},null,40,["io-action","io-device","available-charge-points","available-components","available-io-devices"]))])):C("",!0)],64)}const re=k(ie,[["render",se],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionProxy.vue"]]);q.add($);const ue={name:"OpenwbIoConfigView",components:{FontAwesomeIcon:L,OpenwbIoDeviceProxy:X,OpenwbIoActionProxy:re},mixins:[E],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults","send-command"],data(){return{mqttTopicsToSubscribe:["openWB/system/configurable/io_devices","openWB/system/io/+/config","openWB/system/configurable/io_actions","openWB/io/action/+/config","openWB/chargepoint/+/config","openWB/system/device/+/component/+/config"],showIoDeviceDeleteModal:!1,modalIoDeviceIndex:void 0,ioDeviceToAdd:void 0,showIoActionDeleteModal:!1,modalIoActionIndex:void 0,ioActionToAdd:void 0}},computed:{ioDeviceList:{get(){return this.$store.state.mqtt["openWB/system/configurable/io_devices"]}},installedIoDevices:{get(){return this.getWildcardTopics("openWB/system/io/+/config")}},ioActionList:{get(){return this.$store.state.mqtt["openWB/system/configurable/io_actions"]===void 0?[]:Object.entries(this.$store.state.mqtt["openWB/system/configurable/io_actions"]).map(([t,e])=>({label:e.group_name,options:e.actions.map(s=>({value:[t,s.value],text:s.text})).sort((s,v)=>s.text.localeCompare(v.text))})).sort((t,e)=>t.label.localeCompare(e.label))}},installedIoActions:{get(){return this.getWildcardTopics("openWB/io/action/+/config")}},installedChargePoints:{get(){return this.getWildcardTopics("openWB/chargepoint/+/config")}},installedComponents:{get(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")}}},methods:{getIoDeviceName(t){return this.$store.state.mqtt["openWB/system/io/"+t+"/config"]?this.$store.state.mqtt["openWB/system/io/"+t+"/config"].name:"I/O-Gerät "+t},addIoDevice(){this.$emit("send-command",{command:"addIoDevice",data:{type:this.ioDeviceToAdd}})},removeIoDeviceModal(t,e){e.stopPropagation(),this.modalIoDeviceIndex=parseInt(t.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showIoDeviceDeleteModal=!0},removeIoDevice(t,e){this.showIoDeviceDeleteModal=!1,e=="confirm"&&this.$emit("send-command",{command:"removeIoDevice",data:{id:t}})},addIoAction(){this.$emit("send-command",{command:"addIoAction",data:{type:this.ioActionToAdd}})},removeIoActionModal(t,e){e.stopPropagation(),this.modalIoActionIndex=parseInt(t.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showIoActionDeleteModal=!0},removeIoAction(t,e){this.showIoActionDeleteModal=!1,e=="confirm"&&this.$emit("send-command",{command:"removeIoAction",data:{id:t}})},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},le={class:"ioConfig"},de={name:"ioConfigForm"},pe={key:0},ce={key:0};function me(t,e,s,v,c,n){const m=l("openwb-base-modal-dialog"),h=l("font-awesome-icon"),f=l("openwb-base-avatar"),p=l("openwb-base-text-input"),u=l("openwb-io-device-proxy"),O=l("openwb-base-card"),j=l("openwb-base-select-input"),P=l("openwb-io-action-proxy"),V=l("openwb-base-alert"),S=l("openwb-base-submit-buttons");return a(),g(I,null,[r(m,{show:c.showIoDeviceDeleteModal,title:"Modul löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=o=>n.removeIoDevice(c.modalIoDeviceIndex,o))},{default:i(()=>[d(' Wollen Sie das Ein-/Ausgangs-Gerät "'+b(n.getIoDeviceName(c.modalIoDeviceIndex))+'" (ID: '+b(c.modalIoDeviceIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),r(m,{show:c.showIoActionDeleteModal,title:"Aktion löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=o=>n.removeIoAction(c.modalIoActionIndex,o))},{default:i(()=>[d(' Wollen Sie die Aktion "'+b(n.getIoDeviceName(c.modalIoActionIndex))+'" (ID: '+b(c.modalIoActionIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),w("div",le,[w("form",de,[r(O,{title:"Ein-/Ausgangs-Geräte"},{default:i(()=>[(a(!0),g(I,null,x(n.installedIoDevices,(o,D)=>(a(),_(O,{key:D,title:(o==null?void 0:o.name)+" (ID: "+(o==null?void 0:o.id)+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:i(y=>[y.collapsed?C("",!0):(a(),_(f,{key:0,class:"bg-danger clickable",onClick:B=>n.removeIoDeviceModal(D,B)},{default:i(()=>[r(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:i(()=>[r(p,{title:"Bezeichnung",subtype:"text","model-value":o.name,"onUpdate:modelValue":y=>t.updateState(D,y,"name")},null,8,["model-value","onUpdate:modelValue"]),r(p,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":t.$store.state.mqtt[D].type},null,8,["model-value"]),e[7]||(e[7]=w("hr",null,null,-1)),r(u,{"io-device":o,"onUpdate:configuration":y=>n.updateConfiguration(D,y)},null,8,["io-device","onUpdate:configuration"])]),_:2,__:[7]},1032,["title"]))),128)),Object.keys(n.installedIoDevices).length>0?(a(),g("hr",pe)):C("",!0),r(j,{title:"Verfügbare Geräte","not-selected":"Bitte auswählen",options:n.ioDeviceList,"model-value":c.ioDeviceToAdd,"add-button":!0,"onUpdate:modelValue":e[2]||(e[2]=o=>c.ioDeviceToAdd=o),"onInput:add":n.addIoDevice},{help:i(()=>e[8]||(e[8]=[d(" Bitte ein Ein-/Ausgangs-Modul auswählen, das hinzugefügt werden soll. ",-1)])),_:1},8,["options","model-value","onInput:add"])]),_:1}),r(O,{title:"Ein-/Ausgangs-Aktionen"},{default:i(()=>[(a(!0),g(I,null,x(n.installedIoActions,(o,D)=>(a(),_(O,{key:D,title:(o==null?void 0:o.name)+" (ID: "+(o==null?void 0:o.id)+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:i(y=>[y.collapsed?C("",!0):(a(),_(f,{key:0,class:"bg-danger clickable",onClick:B=>n.removeIoActionModal(D,B)},{default:i(()=>[r(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:i(()=>[r(p,{title:"Bezeichnung",subtype:"text","model-value":o==null?void 0:o.name,"onUpdate:modelValue":y=>t.updateState(D,y,"name")},null,8,["model-value","onUpdate:modelValue"]),r(p,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":[o==null?void 0:o.group,o==null?void 0:o.type].join(" / ")},null,8,["model-value"]),e[9]||(e[9]=w("hr",null,null,-1)),o!==void 0?(a(),_(P,{key:0,"io-action":o,"io-devices":n.installedIoDevices,"installed-charge-points":n.installedChargePoints,"installed-components":n.installedComponents,"onUpdate:configuration":y=>n.updateConfiguration(D,y)},null,8,["io-action","io-devices","installed-charge-points","installed-components","onUpdate:configuration"])):C("",!0)]),_:2,__:[9]},1032,["title"]))),128)),Object.keys(n.installedIoActions).length>0?(a(),g("hr",ce)):C("",!0),Object.keys(n.installedIoDevices).length>0?(a(),_(j,{key:1,title:"Verfügbare Aktionen","not-selected":"Bitte auswählen",groups:n.ioActionList,"model-value":c.ioActionToAdd,"add-button":!0,"onUpdate:modelValue":e[3]||(e[3]=o=>c.ioActionToAdd=o),"onInput:add":n.addIoAction},{help:i(()=>e[10]||(e[10]=[d(" Bitte eine Ein-/Ausgangs-Aktion auswählen, die hinzugefügt werden soll. ",-1)])),_:1},8,["groups","model-value","onInput:add"])):(a(),_(V,{key:2,subtype:"warning"},{default:i(()=>e[11]||(e[11]=[d(" Keine Ein-/Ausgangs-Geräte vorhanden!",-1),w("br",null,null,-1),d(" Bitte fügen Sie zuerst ein Ein-/Ausgangs-Gerät hinzu, bevor Sie Aktionen konfigurieren. ",-1)])),_:1,__:[11]}))]),_:1}),r(S,{"form-name":"ioConfigForm",onSave:e[4]||(e[4]=o=>t.$emit("save")),onReset:e[5]||(e[5]=o=>t.$emit("reset")),onDefaults:e[6]||(e[6]=o=>t.$emit("defaults"))})])])],64)}const ge=k(ue,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/IoConfig.vue"]]),ye=Object.freeze(Object.defineProperty({__proto__:null,default:ge},Symbol.toStringTag,{value:"Module"}));export{ge as I,F as O,Z as a,ye as b}; diff --git a/web/settings/assets/LegalSettings-20201125.js b/web/settings/assets/LegalSettings-1b718a5d.js similarity index 51% rename from web/settings/assets/LegalSettings-20201125.js rename to web/settings/assets/LegalSettings-1b718a5d.js index a18ca70930..83c5869af3 100644 --- a/web/settings/assets/LegalSettings-20201125.js +++ b/web/settings/assets/LegalSettings-1b718a5d.js @@ -1 +1 @@ -import{l as f,af as k,F as v}from"./vendor-fortawesome-a02b6813.js";import{C as y}from"./index-8dd8e083.js";import{_ as B,u as n,l as i,m as z,A as a,G as o,E as r,x as m,B as u,z as p}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";f.add(k);const S={name:"OpenwbDataProtectionView",components:{FontAwesomeIcon:v},mixins:[y],emits:["sendCommand","save"],data(){return{mqttTopicsToSubscribe:["openWB/system/dataprotection_acknowledged"]}},methods:{sendSystemCommand(t,e={}){this.$emit("sendCommand",{command:t,data:e})}}},$={class:"dataProtection"},h={name:"dataProtectionForm"},C={class:"row justify-content-center"},V={class:"col-md-4 d-flex justify-content-center"};function W(t,e,N,A,x,b){const d=n("openwb-base-button-group-input"),c=n("font-awesome-icon"),g=n("openwb-base-click-button"),l=n("openwb-base-alert"),_=n("openwb-base-submit-buttons"),w=n("openwb-base-card");return i(),z("div",$,[a("form",h,[o(w,{title:"Nutzungsbedingungen & Datenschutzerklärung"},{footer:r(()=>[o(_,{"form-name":"dataProtectionForm","hide-reset":!0,"hide-defaults":!0,onSave:e[3]||(e[3]=s=>t.$emit("save"))})]),default:r(()=>[e[7]||(e[7]=a("iframe",{src:"dataProtection-usageTerms.html",width:"100%",height:"400px",class:"bg-light"},null,-1)),e[8]||(e[8]=a("hr",null,null,-1)),o(d,{title:"Nutzungsbedingungen",buttons:[{buttonValue:!1,text:"Ablehnen",class:"btn-outline-danger"},{buttonValue:!0,text:"Akzeptieren",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/system/usage_terms_acknowledged"],"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateState("openWB/system/usage_terms_acknowledged",s))},null,8,["model-value"]),t.$store.state.mqtt["openWB/system/usage_terms_acknowledged"]?p("",!0):(i(),m(l,{key:0,subtype:"danger",class:"mb-1"},{default:r(()=>[e[5]||(e[5]=u(" Sie müssen die Nutzungsbedingungen akzeptieren, bevor openWB eingesetzt werden kann. ",-1)),a("div",C,[a("div",V,[o(g,{class:"btn-danger",onButtonClicked:e[1]||(e[1]=s=>b.sendSystemCommand("systemShutdown"))},{default:r(()=>[e[4]||(e[4]=u(" Nicht akzeptieren und ausschalten ",-1)),o(c,{icon:["fas","power-off"]})]),_:1,__:[4]})])])]),_:1,__:[5]})),o(d,{title:"Datenschutzerklärung",buttons:[{buttonValue:!1,text:"Ablehnen",class:"btn-outline-danger"},{buttonValue:!0,text:"Akzeptieren",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"],"onUpdate:modelValue":e[2]||(e[2]=s=>t.updateState("openWB/system/dataprotection_acknowledged",s))},null,8,["model-value"]),t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]?p("",!0):(i(),m(l,{key:1,subtype:"warning"},{default:r(()=>e[6]||(e[6]=[u(" Wenn Du nicht einwilligst, wird eine ggf. konfigurierte Cloud-Anbindung gelöscht. Die openWB arbeitet autark wie gewohnt weiter. Fernzugriff und Remote-Support sind dann nicht mehr möglich! ",-1)])),_:1,__:[6]}))]),_:1,__:[7,8]})])])}const L=B(S,[["render",W],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LegalSettings.vue"]]);export{L as default}; +import{l as _,af as k,F as v}from"./vendor-fortawesome-fc4b3a41.js";import{C as y}from"./index-c94f8df4.js";import{_ as B,u as n,l as i,m as z,A as a,G as o,E as r,x as m,B as u,z as p}from"./vendor-50125810.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";_.add(k);const S={name:"OpenwbDataProtectionView",components:{FontAwesomeIcon:v},mixins:[y],emits:["sendCommand","save"],data(){return{mqttTopicsToSubscribe:["openWB/system/dataprotection_acknowledged"]}},methods:{sendSystemCommand(t,e={}){this.$emit("sendCommand",{command:t,data:e})}}},$={class:"dataProtection"},h={name:"dataProtectionForm"},C={class:"row justify-content-center"},V={class:"col-md-4 d-flex justify-content-center"};function W(t,e,N,A,x,b){const d=n("openwb-base-button-group-input"),c=n("font-awesome-icon"),g=n("openwb-base-click-button"),l=n("openwb-base-alert"),w=n("openwb-base-submit-buttons"),f=n("openwb-base-card");return i(),z("div",$,[a("form",h,[o(f,{title:"Nutzungsbedingungen & Datenschutzerklärung"},{footer:r(()=>[o(w,{"form-name":"dataProtectionForm","hide-reset":!0,"hide-defaults":!0,onSave:e[3]||(e[3]=s=>t.$emit("save"))})]),default:r(()=>[e[7]||(e[7]=a("iframe",{src:"dataProtection-usageTerms.html",width:"100%",height:"400px",class:"bg-light"},null,-1)),e[8]||(e[8]=a("hr",null,null,-1)),o(d,{title:"Nutzungsbedingungen",buttons:[{buttonValue:!1,text:"Ablehnen",class:"btn-outline-danger"},{buttonValue:!0,text:"Akzeptieren",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/system/usage_terms_acknowledged"],"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateState("openWB/system/usage_terms_acknowledged",s))},null,8,["model-value"]),t.$store.state.mqtt["openWB/system/usage_terms_acknowledged"]?p("",!0):(i(),m(l,{key:0,subtype:"danger",class:"mb-1"},{default:r(()=>[e[5]||(e[5]=u(" Sie müssen die Nutzungsbedingungen akzeptieren, bevor openWB eingesetzt werden kann. ",-1)),a("div",C,[a("div",V,[o(g,{class:"btn-danger",onButtonClicked:e[1]||(e[1]=s=>b.sendSystemCommand("systemShutdown"))},{default:r(()=>[e[4]||(e[4]=u(" Nicht akzeptieren und ausschalten ",-1)),o(c,{icon:["fas","power-off"]})]),_:1})])])]),_:1})),o(d,{title:"Datenschutzerklärung",buttons:[{buttonValue:!1,text:"Ablehnen",class:"btn-outline-danger"},{buttonValue:!0,text:"Akzeptieren",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"],"onUpdate:modelValue":e[2]||(e[2]=s=>t.updateState("openWB/system/dataprotection_acknowledged",s))},null,8,["model-value"]),t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]?p("",!0):(i(),m(l,{key:1,subtype:"warning"},{default:r(()=>[...e[6]||(e[6]=[u(" Wenn Du nicht einwilligst, wird eine ggf. konfigurierte Cloud-Anbindung gelöscht. Die openWB arbeitet autark wie gewohnt weiter. Fernzugriff und Remote-Support sind dann nicht mehr möglich! ",-1)])]),_:1}))]),_:1})])])}const L=B(S,[["render",W],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LegalSettings.vue"]]);export{L as default}; diff --git a/web/settings/assets/LoadManagementConfig-61263fe6.js b/web/settings/assets/LoadManagementConfig-61263fe6.js deleted file mode 100644 index c096577ed9..0000000000 --- a/web/settings/assets/LoadManagementConfig-61263fe6.js +++ /dev/null @@ -1 +0,0 @@ -import{l as C,Z as L,Y as x,F as V}from"./vendor-fortawesome-a02b6813.js";import{C as Z}from"./index-8dd8e083.js";import{S as q}from"./OpenwbSortableList-c7b5b151.js";import{_ as $,u as l,l as u,m,A as d,G as s,E as o,B as i,x as f,z as A,N as w,M as v,F as k}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";C.add(L,x);const E={name:"OpenwbLoadManagementConfigView",components:{SortableList:q,FontAwesomeIcon:V},mixins:[Z],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/counter/config/home_consumption_source_id","openWB/counter/config/consider_less_charging","openWB/counter/get/hierarchy","openWB/system/device/+/component/+/config","openWB/counter/+/config/max_power_errorcase","openWB/counter/+/config/max_currents","openWB/counter/+/config/max_total_power","openWB/pv/+/config/max_ac_out","openWB/chargepoint/+/config"]}},computed:{componentConfigurations(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")},counterConfigs:{get(){let t=this.getWildcardTopics("openWB/system/device/+/component/+/config");return Object.keys(t).filter(e=>{var n;return(n=t[e])==null?void 0:n.type.includes("counter")}).reduce((e,n)=>({...e,[n]:t[n]}),{})}},counterOptions(){var t=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e==null?void 0:e.type,"counter")&&t.push({value:e.id,text:e.name});return t.sort((e,n)=>e.text==n.text?0:e.text>n.text?1:-1)},inverterConfigs:{get(){let t=this.getWildcardTopics("openWB/system/device/+/component/+/config");return Object.keys(t).filter(e=>{var n;return(n=t[e])==null?void 0:n.type.includes("inverter")}).reduce((e,n)=>({...e,[n]:t[n]}),{})}},hierarchyLabels:{get(){let t={};for(const e of Object.values(this.$store.state.mqtt["openWB/counter/get/hierarchy"]))t={...t,...this.getElementTreeNames(e)};return t}},getHcSourceIdOptions(){let t=[{value:null,text:"von openWB berechnen (in 99% der Fälle die richtige Einstellung)"}],e=[{label:"Eingerichtete Zähler-Komponenten",options:[...this.counterOptions]}];return{options:t,groups:e}}},methods:{getElementTreeNames(t){let e={};if(t.type=="cp"){let n=this.getChargePoint(t.id);n&&(e[t.id]=n.name)}else{let n=this.getComponent(t.id);n&&(e[t.id]=n.name)}return t.children.forEach(n=>{e={...e,...this.getElementTreeNames(n)}}),e},getComponent(t){let e;return Object.keys(this.$store.state.mqtt).forEach(n=>{n.match("^openWB/system/device/[0-9]+/component/"+t+"/config$")&&(e=this.$store.state.mqtt[n])}),e},getChargePoint(t){let e;return Object.keys(this.$store.state.mqtt).forEach(n=>{n.match("^openWB/chargepoint/"+t+"/config$")&&(e=this.$store.state.mqtt[n])}),e},isComponentType(t,e){return t==null?void 0:t.split("_").includes(e)}}},M={class:"loadManagementConfig"},U={name:"loadManagementConfigForm"},F={key:0},D={key:1},O={key:0},P={key:1};function N(t,e,n,H,j,g){const c=l("openwb-base-alert"),W=l("router-link"),B=l("openwb-base-button-group-input"),S=l("openwb-base-select-input"),b=l("openwb-base-heading"),_=l("font-awesome-icon"),p=l("openwb-base-number-input"),h=l("openwb-base-card"),z=l("sortable-list"),y=l("openwb-base-submit-buttons");return u(),m("div",M,[d("form",U,[s(h,{title:"Einstellungen",collapsible:!0,collapsed:!1},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(u(),m("div",F,[s(c,{subtype:"info"},{default:o(()=>e[6]||(e[6]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[6]})])):(u(),m("div",D,[n.installAssistantActive?A("",!0):(u(),f(c,{key:0,subtype:"info"},{default:o(()=>[e[8]||(e[8]=i(" Die Konfiguration für die externe Steuerung durch den Netzbetreiber (RSE, EMS, §14a) erfolgt in den ",-1)),s(W,{to:"/IoConfiguration"},{default:o(()=>e[7]||(e[7]=[i("Einstellungen der Ein-/Ausgänge",-1)])),_:1,__:[7]}),e[9]||(e[9]=i(" im Bereich der Aktionen. ",-1))]),_:1,__:[8,9]})),s(B,{title:"Fahrzeuge, die nicht mit Sollstrom laden",buttons:[{buttonValue:!1,text:"nicht berücksichtigen",class:"btn-outline-danger"},{buttonValue:!0,text:"berücksichtigen",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/counter/config/consider_less_charging"],"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateState("openWB/counter/config/consider_less_charging",r))},{help:o(()=>e[10]||(e[10]=[d("p",null," Wenn angesteckte Fahrzeuge, die nicht oder nicht mit der Sollstromstärke laden, im Lastmanagement berücksichtigt werden, wird für diese der Sollstrom reserviert. Dadurch können bei Eingreifen des Lastmanagements andere Fahrzeuge möglicherweise nur mit reduzierter Stromstärke laden und der reservierte Strom wird nicht genutzt. Wenn die Fahrzeuge wieder Leistung beziehen, z.B. um vorzuklimatisieren, nutzen sie den für sie reservierten Strom. ",-1),d("p",null," Wenn angesteckte Fahrzeuge, die nicht oder nicht mit der Sollstromstärke laden, nicht im Lastmanagement berücksichtigt werden, wird für diese auch kein Strom bei vorliegender Ladefreigabe reserviert bzw. es wird nur der tatsächlich genutzte Strom im Lastmanagement berücksichtigt. Andere Fahrzeuge können dadurch mit höherer Stromstärke laden. Wenn die maximalen Lastmanagement-Grenzen fast erreicht sind und die Fahrzeuge wieder Leistung beziehen, z.B. um vorzuklimatisieren, kann es zu einer kurzzeitigen Überschreitung der Lastmanagement-Grenzen kommen, bis im nächsten Zyklus die Stromstärken aller Ladepunkte an die neue Situation angepasst wurden. Das kurzzeitige Überschreiten der Maximal-Werte stellt für die Sicherungen in der Regel kein Problem dar. ",-1)])),_:1},8,["model-value"]),s(S,{title:"Hausverbrauch",options:g.getHcSourceIdOptions.options,groups:g.getHcSourceIdOptions.groups,"model-value":t.$store.state.mqtt["openWB/counter/config/home_consumption_source_id"],"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateState("openWB/counter/config/home_consumption_source_id",r))},{help:o(()=>e[11]||(e[11]=[i(" Meist ist der Zähler am EVU-Punkt installiert, dann muss hier 'von openWB berechnen' ausgewählt werden. Wenn der Zähler im Hausverbrauchszweig installiert ist, die Struktur wie im ",-1),d("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"}," Wiki ",-1),i(" beschrieben anordnen und hier den Hausverbrauchszähler auswählen. Dann wird dieser Wert abzüglich der Ladeleistung als Hausverbrauch erfasst. ",-1)])),_:1},8,["options","groups","model-value"]),s(b,null,{default:o(()=>e[12]||(e[12]=[i(" Vorhandene Zählermodule ",-1)])),_:1,__:[12]}),s(c,{subtype:"info"},{default:o(()=>e[13]||(e[13]=[i(" Die maximale Leistung wird nur für den EVU-Zähler berücksichtigt. Bei Zwischenzählern begrenzt das Lastmanagement rein anhand der maximalen Phasenströme.",-1),d("br",null,null,-1),i(" Wenn ein Zähler nicht auslesbar ist, wird weiterhin versucht, diesen auszulesen und nach 60s die angenommene Leistung im Fehlerfall verwendet, die unten für jeden Zähler eingestellt wird, um eine Überlast zu vermeiden. Die angenommene Leistung wird gleichmäßig auf die Phasen verteilt.",-1),d("br",null,null,-1),i(" Überlicherweise sind Hausanschlüsse mit 24kW und 3*35A bzw. 43kW und 3*63A abgesichert. ",-1)])),_:1,__:[13]}),(u(!0),m(w,null,v(g.counterConfigs,r=>(u(),f(h,{key:r.id,collapsible:!0,collapsed:!0,subtype:"danger"},{header:o(()=>[s(_,{icon:["fas","gauge-high"]}),i(" "+k(r.name),1)]),default:o(()=>[s(p,{title:"Maximale Leistung",min:1,step:.1,required:"",unit:"kW","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_total_power"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_total_power",a*1e3)},{help:o(()=>[...e[14]||(e[14]=[i(" Maximal zulässige Leistung für diesen (Zwischen-)Zähler. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximaler Strom L1",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_currents"][0],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_currents",a,"0")},{help:o(()=>[...e[15]||(e[15]=[i(" Maximal zulässiger Strom für die Phase 1 dieses (Zwischen-)Zählers. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximaler Strom L2",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_currents"][1],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_currents",a,"1")},{help:o(()=>[...e[16]||(e[16]=[i(" Maximal zulässiger Strom für die Phase 2 dieses (Zwischen-)Zählers. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximaler Strom L3",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_currents"][2],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_currents",a,"2")},{help:o(()=>[...e[17]||(e[17]=[i(" Maximal zulässiger Strom für die Phase 3 dieses (Zwischen-)Zählers. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximale Leistung im Fehlerfall",min:0,step:.1,unit:"kW","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_power_errorcase"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_power_errorcase",a*1e3)},{help:o(()=>[...e[18]||(e[18]=[i(" Angenommen Leistung für diesen (Zwischen-)Zähler, falls vom Zähler keine Werte abgefragt werden können. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1024))),128)),s(b,null,{default:o(()=>e[19]||(e[19]=[i(" Vorhandene Wechselrichtermodule ",-1)])),_:1,__:[19]}),(u(!0),m(w,null,v(g.inverterConfigs,r=>(u(),f(h,{key:r.id,collapsible:!0,collapsed:!0,subtype:"success"},{header:o(()=>[s(_,{icon:["fas","solar-panel"]}),i(" "+k(r.name),1)]),default:o(()=>[s(p,{title:"Maximale Ausgangsleistung des Wechselrichters",min:0,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/pv/"+r.id+"/config/max_ac_out"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/pv/"+r.id+"/config/max_ac_out",a*1e3)},{help:o(()=>[...e[20]||(e[20]=[i(" Bei 0 kW erfolgt keine Berücksichtigung der maximalen Ausgangsleistung. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1024))),128))]))]),_:1}),s(h,{title:"Struktur",collapsible:!0,collapsed:!0},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(u(),m("div",O,[s(c,{subtype:"info"},{default:o(()=>e[21]||(e[21]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[21]})])):(u(),m("div",P,[s(z,{title:"Anordnung der Komponenten","model-value":t.$store.state.mqtt["openWB/counter/get/hierarchy"],labels:g.hierarchyLabels,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateState("openWB/counter/get/hierarchy",r))},{help:o(()=>e[22]||(e[22]=[i(" Durch die Anordnung der Komponenten werden Abhängigkeiten abgebildet.",-1),d("br",null,null,-1),i(" An erster Stelle muss eine Zählerkomponente stehen, die den Netzanschlusspunkt erfasst. Dafür kann auch ein virtueller Zähler genutzt werden.",-1),d("br",null,null,-1),i(" Die weiteren Komponenten müssen hierarchisch so angeordnet werden, wie sie auch physisch im Stromnetz angeschlossen werden.",-1),d("br",null,null,-1),i(" Bei DC-gekoppelten Speichern sind diese hinter dem zugehörigen Wechselrichter zu platzieren, damit die Abhängigkeit in der Regelung berücksichtigt werden kann. ",-1)])),_:1},8,["model-value","labels"])]))]),_:1}),s(y,{"form-name":"loadManagementConfigForm",onSave:e[3]||(e[3]=r=>t.$emit("save")),onReset:e[4]||(e[4]=r=>t.$emit("reset")),onDefaults:e[5]||(e[5]=r=>t.$emit("defaults"))})])])}const X=$(E,[["render",N],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LoadManagementConfig.vue"]]);export{X as default}; diff --git a/web/settings/assets/LoadManagementConfig-89605028.js b/web/settings/assets/LoadManagementConfig-89605028.js new file mode 100644 index 0000000000..c9c23cda94 --- /dev/null +++ b/web/settings/assets/LoadManagementConfig-89605028.js @@ -0,0 +1 @@ +import{l as C,Z as L,Y as x,F as V}from"./vendor-fortawesome-fc4b3a41.js";import{C as Z}from"./index-c94f8df4.js";import{S as q}from"./OpenwbSortableList-96f09c46.js";import{_ as $,u as l,l as u,m,A as d,G as s,E as o,B as i,x as f,z as A,N as v,M as k,F as W}from"./vendor-50125810.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";C.add(L,x);const E={name:"OpenwbLoadManagementConfigView",components:{SortableList:q,FontAwesomeIcon:V},mixins:[Z],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/counter/config/home_consumption_source_id","openWB/counter/config/consider_less_charging","openWB/counter/get/hierarchy","openWB/system/device/+/component/+/config","openWB/counter/+/config/max_power_errorcase","openWB/counter/+/config/max_currents","openWB/counter/+/config/max_total_power","openWB/pv/+/config/max_ac_out","openWB/chargepoint/+/config"]}},computed:{componentConfigurations(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")},counterConfigs:{get(){let t=this.getWildcardTopics("openWB/system/device/+/component/+/config");return Object.keys(t).filter(e=>{var n;return(n=t[e])==null?void 0:n.type.includes("counter")}).reduce((e,n)=>({...e,[n]:t[n]}),{})}},counterOptions(){var t=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e==null?void 0:e.type,"counter")&&t.push({value:e.id,text:e.name});return t.sort((e,n)=>e.text==n.text?0:e.text>n.text?1:-1)},inverterConfigs:{get(){let t=this.getWildcardTopics("openWB/system/device/+/component/+/config");return Object.keys(t).filter(e=>{var n;return(n=t[e])==null?void 0:n.type.includes("inverter")}).reduce((e,n)=>({...e,[n]:t[n]}),{})}},hierarchyLabels:{get(){let t={};for(const e of Object.values(this.$store.state.mqtt["openWB/counter/get/hierarchy"]))t={...t,...this.getElementTreeNames(e)};return t}},getHcSourceIdOptions(){let t=[{value:null,text:"von openWB berechnen (in 99% der Fälle die richtige Einstellung)"}],e=[{label:"Eingerichtete Zähler-Komponenten",options:[...this.counterOptions]}];return{options:t,groups:e}}},methods:{getElementTreeNames(t){let e={};if(t.type=="cp"){let n=this.getChargePoint(t.id);n&&(e[t.id]=n.name)}else{let n=this.getComponent(t.id);n&&(e[t.id]=n.name)}return t.children.forEach(n=>{e={...e,...this.getElementTreeNames(n)}}),e},getComponent(t){let e;return Object.keys(this.$store.state.mqtt).forEach(n=>{n.match("^openWB/system/device/[0-9]+/component/"+t+"/config$")&&(e=this.$store.state.mqtt[n])}),e},getChargePoint(t){let e;return Object.keys(this.$store.state.mqtt).forEach(n=>{n.match("^openWB/chargepoint/"+t+"/config$")&&(e=this.$store.state.mqtt[n])}),e},isComponentType(t,e){return t==null?void 0:t.split("_").includes(e)}}},M={class:"loadManagementConfig"},U={name:"loadManagementConfigForm"},F={key:0},D={key:1},O={key:0},P={key:1};function N(t,e,n,H,j,g){const c=l("openwb-base-alert"),_=l("router-link"),B=l("openwb-base-button-group-input"),S=l("openwb-base-select-input"),b=l("openwb-base-heading"),w=l("font-awesome-icon"),p=l("openwb-base-number-input"),h=l("openwb-base-card"),z=l("sortable-list"),y=l("openwb-base-submit-buttons");return u(),m("div",M,[d("form",U,[s(h,{title:"Einstellungen",collapsible:!0,collapsed:!1},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(u(),m("div",F,[s(c,{subtype:"info"},{default:o(()=>[...e[6]||(e[6]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(u(),m("div",D,[n.installAssistantActive?A("",!0):(u(),f(c,{key:0,subtype:"info"},{default:o(()=>[e[8]||(e[8]=i(" Die Konfiguration für die externe Steuerung durch den Netzbetreiber (RSE, EMS, §14a) erfolgt in den ",-1)),s(_,{to:"/IoConfiguration"},{default:o(()=>[...e[7]||(e[7]=[i("Einstellungen der Ein-/Ausgänge",-1)])]),_:1}),e[9]||(e[9]=i(" im Bereich der Aktionen. ",-1))]),_:1})),s(B,{title:"Fahrzeuge, die nicht mit Sollstrom laden",buttons:[{buttonValue:!1,text:"nicht berücksichtigen",class:"btn-outline-danger"},{buttonValue:!0,text:"berücksichtigen",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/counter/config/consider_less_charging"],"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateState("openWB/counter/config/consider_less_charging",r))},{help:o(()=>[...e[10]||(e[10]=[d("p",null," Wenn angesteckte Fahrzeuge, die nicht oder nicht mit der Sollstromstärke laden, im Lastmanagement berücksichtigt werden, wird für diese der Sollstrom reserviert. Dadurch können bei Eingreifen des Lastmanagements andere Fahrzeuge möglicherweise nur mit reduzierter Stromstärke laden und der reservierte Strom wird nicht genutzt. Wenn die Fahrzeuge wieder Leistung beziehen, z.B. um vorzuklimatisieren, nutzen sie den für sie reservierten Strom. ",-1),d("p",null," Wenn angesteckte Fahrzeuge, die nicht oder nicht mit der Sollstromstärke laden, nicht im Lastmanagement berücksichtigt werden, wird für diese auch kein Strom bei vorliegender Ladefreigabe reserviert bzw. es wird nur der tatsächlich genutzte Strom im Lastmanagement berücksichtigt. Andere Fahrzeuge können dadurch mit höherer Stromstärke laden. Wenn die maximalen Lastmanagement-Grenzen fast erreicht sind und die Fahrzeuge wieder Leistung beziehen, z.B. um vorzuklimatisieren, kann es zu einer kurzzeitigen Überschreitung der Lastmanagement-Grenzen kommen, bis im nächsten Zyklus die Stromstärken aller Ladepunkte an die neue Situation angepasst wurden. Das kurzzeitige Überschreiten der Maximal-Werte stellt für die Sicherungen in der Regel kein Problem dar. ",-1)])]),_:1},8,["model-value"]),s(S,{title:"Hausverbrauch",options:g.getHcSourceIdOptions.options,groups:g.getHcSourceIdOptions.groups,"model-value":t.$store.state.mqtt["openWB/counter/config/home_consumption_source_id"],"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateState("openWB/counter/config/home_consumption_source_id",r))},{help:o(()=>[...e[11]||(e[11]=[i(" Meist ist der Zähler am EVU-Punkt installiert, dann muss hier 'von openWB berechnen' ausgewählt werden. Wenn der Zähler im Hausverbrauchszweig installiert ist, die Struktur wie im ",-1),d("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"}," Wiki ",-1),i(" beschrieben anordnen und hier den Hausverbrauchszähler auswählen. Dann wird dieser Wert abzüglich der Ladeleistung als Hausverbrauch erfasst. ",-1)])]),_:1},8,["options","groups","model-value"]),s(b,null,{default:o(()=>[...e[12]||(e[12]=[i(" Vorhandene Zählermodule ",-1)])]),_:1}),s(c,{subtype:"info"},{default:o(()=>[...e[13]||(e[13]=[i(" Die maximale Leistung wird nur für den EVU-Zähler berücksichtigt. Bei Zwischenzählern begrenzt das Lastmanagement rein anhand der maximalen Phasenströme.",-1),d("br",null,null,-1),i(" Wenn ein Zähler nicht auslesbar ist, wird weiterhin versucht, diesen auszulesen und nach 60s die angenommene Leistung im Fehlerfall verwendet, die unten für jeden Zähler eingestellt wird, um eine Überlast zu vermeiden. Die angenommene Leistung wird gleichmäßig auf die Phasen verteilt.",-1),d("br",null,null,-1),i(" Überlicherweise sind Hausanschlüsse mit 24kW und 3*35A bzw. 43kW und 3*63A abgesichert. ",-1)])]),_:1}),(u(!0),m(v,null,k(g.counterConfigs,r=>(u(),f(h,{key:r.id,collapsible:!0,collapsed:!0,subtype:"danger"},{header:o(()=>[s(w,{icon:["fas","gauge-high"]}),i(" "+W(r.name),1)]),default:o(()=>[s(p,{title:"Maximale Leistung",min:1,step:.1,required:"",unit:"kW","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_total_power"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_total_power",a*1e3)},{help:o(()=>[...e[14]||(e[14]=[i(" Maximal zulässige Leistung für diesen (Zwischen-)Zähler. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximaler Strom L1",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_currents"][0],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_currents",a,"0")},{help:o(()=>[...e[15]||(e[15]=[i(" Maximal zulässiger Strom für die Phase 1 dieses (Zwischen-)Zählers. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximaler Strom L2",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_currents"][1],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_currents",a,"1")},{help:o(()=>[...e[16]||(e[16]=[i(" Maximal zulässiger Strom für die Phase 2 dieses (Zwischen-)Zählers. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximaler Strom L3",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_currents"][2],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_currents",a,"2")},{help:o(()=>[...e[17]||(e[17]=[i(" Maximal zulässiger Strom für die Phase 3 dieses (Zwischen-)Zählers. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximale Leistung im Fehlerfall",min:0,step:.1,unit:"kW","model-value":t.$store.state.mqtt["openWB/counter/"+r.id+"/config/max_power_errorcase"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+r.id+"/config/max_power_errorcase",a*1e3)},{help:o(()=>[...e[18]||(e[18]=[i(" Angenommen Leistung für diesen (Zwischen-)Zähler, falls vom Zähler keine Werte abgefragt werden können. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1024))),128)),s(b,null,{default:o(()=>[...e[19]||(e[19]=[i(" Vorhandene Wechselrichtermodule ",-1)])]),_:1}),(u(!0),m(v,null,k(g.inverterConfigs,r=>(u(),f(h,{key:r.id,collapsible:!0,collapsed:!0,subtype:"success"},{header:o(()=>[s(w,{icon:["fas","solar-panel"]}),i(" "+W(r.name),1)]),default:o(()=>[s(p,{title:"Maximale Ausgangsleistung des Wechselrichters",min:0,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/pv/"+r.id+"/config/max_ac_out"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/pv/"+r.id+"/config/max_ac_out",a*1e3)},{help:o(()=>[...e[20]||(e[20]=[i(" Bei 0 kW erfolgt keine Berücksichtigung der maximalen Ausgangsleistung. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1024))),128))]))]),_:1}),s(h,{title:"Struktur",collapsible:!0,collapsed:!0},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(u(),m("div",O,[s(c,{subtype:"info"},{default:o(()=>[...e[21]||(e[21]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(u(),m("div",P,[s(z,{title:"Anordnung der Komponenten","model-value":t.$store.state.mqtt["openWB/counter/get/hierarchy"],labels:g.hierarchyLabels,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateState("openWB/counter/get/hierarchy",r))},{help:o(()=>[...e[22]||(e[22]=[i(" Durch die Anordnung der Komponenten werden Abhängigkeiten abgebildet.",-1),d("br",null,null,-1),i(" An erster Stelle muss eine Zählerkomponente stehen, die den Netzanschlusspunkt erfasst. Dafür kann auch ein virtueller Zähler genutzt werden.",-1),d("br",null,null,-1),i(" Die weiteren Komponenten müssen hierarchisch so angeordnet werden, wie sie auch physisch im Stromnetz angeschlossen werden.",-1),d("br",null,null,-1),i(" Bei DC-gekoppelten Speichern sind diese hinter dem zugehörigen Wechselrichter zu platzieren, damit die Abhängigkeit in der Regelung berücksichtigt werden kann. ",-1)])]),_:1},8,["model-value","labels"])]))]),_:1}),s(y,{"form-name":"loadManagementConfigForm",onSave:e[3]||(e[3]=r=>t.$emit("save")),onReset:e[4]||(e[4]=r=>t.$emit("reset")),onDefaults:e[5]||(e[5]=r=>t.$emit("defaults"))})])])}const X=$(E,[["render",N],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LoadManagementConfig.vue"]]);export{X as default}; diff --git a/web/settings/assets/MqttBridgeConfig-25a5936a.js b/web/settings/assets/MqttBridgeConfig-25a5936a.js new file mode 100644 index 0000000000..1d630868da --- /dev/null +++ b/web/settings/assets/MqttBridgeConfig-25a5936a.js @@ -0,0 +1 @@ +import{l as x,d as z,ab as D,F as A}from"./vendor-fortawesome-fc4b3a41.js";import{C}from"./index-c94f8df4.js";import{_ as W,u,l as m,m as b,G as a,E as o,A as g,N as M,B as s,F as q,x as _,z as B,M as E}from"./vendor-50125810.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";x.add(z,D);const Q={name:"OpenwbMqttBridgeConfigurationView",components:{FontAwesomeIcon:A},mixins:[C],emits:["sendCommand","save","reset"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/mqtt/bridge/+"],showMqttBridgeModal:!1,modalMqttBridgeIndex:void 0}},computed:{configuredMqttBridges:{get(){let t=this.getWildcardTopics("openWB/system/mqtt/bridge/+");for(const[e,v]of Object.entries(t))v.remote.is_openwb_cloud&&delete t[e];return t}}},methods:{addMqttBridge(t){t.stopPropagation(),this.$emit("sendCommand",{command:"addMqttBridge",data:{}})},getMqttBridgeIndex(t){return parseInt(t.match(/(?:\/)(\d+)$/)[1])},removeMqttBridgeModal(t,e){e.stopPropagation(),this.modalMqttBridgeIndex=this.getMqttBridgeIndex(t),this.showMqttBridgeModal=!0},removeMqttBridge(t,e){this.showMqttBridgeModal=!1,e=="confirm"&&this.$emit("sendCommand",{command:"removeMqttBridge",data:{bridge:t}})},getMqttBridgeName(t){return this.$store.state.mqtt["openWB/system/mqtt/bridge/"+t]?this.$store.state.mqtt["openWB/system/mqtt/bridge/"+t].name:t}}},Z={class:"mqttBridgeConfiguration"},L={key:0},I={key:1},N=["name"];function y(t,e,v,P,f,i){const T=u("openwb-base-modal-dialog"),c=u("openwb-base-alert"),h=u("font-awesome-icon"),w=u("openwb-base-avatar"),p=u("openwb-base-text-input"),d=u("openwb-base-button-group-input"),k=u("openwb-base-heading"),S=u("openwb-base-number-input"),U=u("openwb-base-submit-buttons"),V=u("openwb-base-card");return m(),b(M,null,[a(T,{show:f.showMqttBridgeModal,title:"MQTT-Brücke löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=l=>i.removeMqttBridge(f.modalMqttBridgeIndex,l))},{default:o(()=>[s(' Wollen Sie die MQTT-Brücke "'+q(i.getMqttBridgeName(f.modalMqttBridgeIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),g("div",Z,[a(c,{subtype:"danger"},{default:o(()=>[...e[1]||(e[1]=[s(" ACHTUNG: Die Konfiguration einer MQTT-Brücke erlaubt allen Nutzern mit Zugang zum entfernten MQTT-Server alle weitergeleiteten Daten dieser openWB einzusehen!",-1),g("br",null,null,-1),s(' Es wird dringend empfohlen, dies nur für nicht-öffentliche MQTT-Server unter Verwendung starker Transport-Verschlüsselung (TLS) mit persönlichem Login und strenger Zugriffskontrolle (zumindest für die MQTT-Themen unterhalb von "Entfernter Präfix") zu aktivieren! ',-1)])]),_:1}),a(V,{title:"Konfigurierte MQTT-Brücken"},{actions:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!1?(m(),_(w,{key:0,class:"bg-success clickable",onClick:i.addMqttBridge},{default:o(()=>[a(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):B("",!0)]),default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(m(),b("div",L,[a(c,{subtype:"info"},{default:o(()=>[...e[2]||(e[2]=[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(m(),b("div",I,[Object.keys(i.configuredMqttBridges).length===0?(m(),_(c,{key:0,subtype:"info"},{default:o(()=>[...e[3]||(e[3]=[s(" Es wurde noch keine MQTT-Brücke konfiguriert. ",-1)])]),_:1})):B("",!0),(m(!0),b(M,null,E(i.configuredMqttBridges,(l,r)=>(m(),b("form",{key:r,name:"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(r)},[a(V,{title:l.name,collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(()=>[a(w,{class:"bg-danger clickable",onClick:n=>i.removeMqttBridgeModal(r,n)},{default:o(()=>[a(h,{icon:["fas","trash"]})]),_:1},8,["onClick"])]),footer:o(()=>[a(U,{"form-name":"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(r),"hide-defaults":!0,onSave:n=>t.$emit("save",[r]),onReset:n=>t.$emit("reset",[r])},null,8,["form-name","onSave","onReset"])]),default:o(()=>[a(p,{title:"Bezeichnung",subtype:"text",required:"",pattern:"[A-Za-z0-9]+","model-value":l.name,"onUpdate:modelValue":n=>t.updateState(r,n,"name")},{help:o(()=>[...e[4]||(e[4]=[s(" Die Bezeichnung darf nur aus Buchstaben ohne Umlaute und Zahlen bestehen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"Brücke aktivieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":l.active,"onUpdate:modelValue":n=>t.updateState(r,n,"active")},null,8,["model-value","onUpdate:modelValue"]),e[14]||(e[14]=g("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[5]||(e[5]=[s(" Einstellungen zur Verbindung ",-1)])]),_:1}),a(p,{title:"Entfernter Server",subtype:"host",required:"","model-value":l.remote.host,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.host")},null,8,["model-value","onUpdate:modelValue"]),a(S,{title:"Entfernter Port",required:"",min:1,max:65535,"model-value":l.remote.port,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.port")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Benutzername",subtype:"user",required:"",pattern:"[a-zA-Z0-9_\\-+.]+","model-value":l.remote.username,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.username")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Passwort",subtype:"password",required:"","model-value":l.remote.password,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.password")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Präfix",subtype:"text",pattern:"[A-Za-z0-9_\\-]+(\\/[A-Za-z0-9_\\-]+)?\\/","model-value":l.remote.prefix,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.prefix")},{help:o(()=>[...e[6]||(e[6]=[s(' Das Präfix darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. Optional kann mit einem Schrägstrich "/" eine Topic-Struktur abgebildet werden. Am Ende des Präfixes muss ein Schrägstrich "/" stehen. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(p,{title:"Client ID",subtype:"text",required:"",pattern:"[A-Za-z0-9_\\-]+","model-value":l.remote.client_id,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.client_id")},{help:o(()=>[...e[7]||(e[7]=[s(" Die Client ID darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"MQTT Protokoll",required:"required",buttons:[{buttonValue:"mqttv31",text:"v3.1"},{buttonValue:"mqttv311",text:"v3.1.1"}],"model-value":l.remote.protocol,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.protocol")},null,8,["model-value","onUpdate:modelValue"]),a(d,{title:"TLS Version",buttons:[{buttonValue:"auto",text:"Automatisch",class:"btn-outline-success"},{buttonValue:"tlsv1.0",text:"v1.0",class:"btn-outline-warning"},{buttonValue:"tlsv1.1",text:"v1.1",class:"btn-outline-warning"},{buttonValue:"tlsv1.2",text:"v1.2"}],"model-value":l.remote.tls_version,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.tls_version")},{help:o(()=>[...e[8]||(e[8]=[s(' In der Einstellung "Automatisch" wird die Version zwischen Client und Server ausgehandelt. Wenn erforderlich, kann eine spezielle Version erzwungen werden. Versionen kleiner 1.2 gelten als veraltet und sollten nicht mehr verwendet werden. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"Brücke signalisieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l.remote.try_private,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.try_private")},{help:o(()=>[...e[9]||(e[9]=[s(" Aktiviert eine proprietäre Protokoll-Erweiterung des Mosquitto Brokers, welche dem entfernten Broker signalisiert, dass es sich um eine MQTT Brücke handelt. Ergibt bessere Leistung mit Mosquitto-Brokern, ist jedoch inkompatibel mit vielen anderen MQTT-Brokern. Daher bitte nur aktivieren, wenn der Ziel-Broker sicher ein Mosquitto-Broker ist. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),e[15]||(e[15]=g("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[10]||(e[10]=[s(" Datenübertragung ",-1)])]),_:1}),a(d,{title:"Alle Statusdaten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l.data_transfer.status,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.status")},{help:o(()=>[...e[11]||(e[11]=[s(" Wenn aktiviert, werden alle Statusdaten (z.B. Ladezustand, Leistung, Spannungen, Ströme, etc.) der angeschlossenen Komponenten und Ladepunkte übertragen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"Datenserien für Diagramme",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l.data_transfer.graph,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.graph")},{help:o(()=>[...e[12]||(e[12]=[s(" Wenn aktiviert, werden alle Datenserien für die Diagramme (z.B. Leistung über Zeit) der angeschlossenen Komponenten und Ladepunkte übertragen. Dies sind deutlich mehr Daten als bei den Statusdaten allein.",-1),g("br",null,null,-1),s(" Diese Einstellung sollte nur aktiviert werden, wenn die Daten auch tatsächlich benötigt und interpretiert werden können. In der Regel werden die Daten nur für die Web- und Display-Themes benötigt und können daher bei einer MQTT-Brücke deaktiviert bleiben. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"Fernkonfiguration ermöglichen",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l.data_transfer.configuration,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.configuration")},{help:o(()=>[...e[13]||(e[13]=[s(' Wenn aktiviert, können über die MQTT-Brücke auch Konfigurationsänderungen (z.B. Ladeleistung, Zeitsteuerungen, etc.) an die openWB über die Topics "openWB/set/*" gesendet werden. Dies sollte nur aktiviert werden, wenn der entfernte MQTT-Server und alle Nutzer, welche darauf Zugriff haben, absolut vertrauenswürdig sind. Ansonsten besteht die Gefahr, dass unbefugte Nutzer die Konfiguration der openWB verändern und z.B. den Ladevorgang manipulieren. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1032,["title"])],8,N))),128))]))]),_:1})])],64)}const J=W(Q,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/MqttBridgeConfig.vue"]]);export{J as default}; diff --git a/web/settings/assets/MqttBridgeConfig-59050cb8.js b/web/settings/assets/MqttBridgeConfig-59050cb8.js deleted file mode 100644 index 2c451bc926..0000000000 --- a/web/settings/assets/MqttBridgeConfig-59050cb8.js +++ /dev/null @@ -1 +0,0 @@ -import{l as x,d as z,ab as D,F as A}from"./vendor-fortawesome-a02b6813.js";import{C}from"./index-8dd8e083.js";import{_ as W,u,l as m,m as b,G as a,E as o,A as g,N as V,B as s,F as q,x as M,z as B,M as E}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";x.add(z,D);const Q={name:"OpenwbMqttBridgeConfigurationView",components:{FontAwesomeIcon:A},mixins:[C],emits:["sendCommand","save","reset"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/mqtt/bridge/+"],showMqttBridgeModal:!1,modalMqttBridgeIndex:void 0}},computed:{configuredMqttBridges:{get(){let t=this.getWildcardTopics("openWB/system/mqtt/bridge/+");for(const[e,v]of Object.entries(t))v.remote.is_openwb_cloud&&delete t[e];return t}}},methods:{addMqttBridge(t){t.stopPropagation(),this.$emit("sendCommand",{command:"addMqttBridge",data:{}})},getMqttBridgeIndex(t){return parseInt(t.match(/(?:\/)(\d+)$/)[1])},removeMqttBridgeModal(t,e){e.stopPropagation(),this.modalMqttBridgeIndex=this.getMqttBridgeIndex(t),this.showMqttBridgeModal=!0},removeMqttBridge(t,e){this.showMqttBridgeModal=!1,e=="confirm"&&this.$emit("sendCommand",{command:"removeMqttBridge",data:{bridge:t}})},getMqttBridgeName(t){return this.$store.state.mqtt["openWB/system/mqtt/bridge/"+t]?this.$store.state.mqtt["openWB/system/mqtt/bridge/"+t].name:t}}},Z={class:"mqttBridgeConfiguration"},L={key:0},I={key:1},N=["name"];function y(t,e,v,P,f,i){const T=u("openwb-base-modal-dialog"),c=u("openwb-base-alert"),h=u("font-awesome-icon"),w=u("openwb-base-avatar"),p=u("openwb-base-text-input"),d=u("openwb-base-button-group-input"),_=u("openwb-base-heading"),S=u("openwb-base-number-input"),U=u("openwb-base-submit-buttons"),k=u("openwb-base-card");return m(),b(V,null,[a(T,{show:f.showMqttBridgeModal,title:"MQTT-Brücke löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=l=>i.removeMqttBridge(f.modalMqttBridgeIndex,l))},{default:o(()=>[s(' Wollen Sie die MQTT-Brücke "'+q(i.getMqttBridgeName(f.modalMqttBridgeIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),g("div",Z,[a(c,{subtype:"danger"},{default:o(()=>e[1]||(e[1]=[s(" ACHTUNG: Die Konfiguration einer MQTT-Brücke erlaubt allen Nutzern mit Zugang zum entfernten MQTT-Server alle weitergeleiteten Daten dieser openWB einzusehen!",-1),g("br",null,null,-1),s(' Es wird dringend empfohlen, dies nur für nicht-öffentliche MQTT-Server unter Verwendung starker Transport-Verschlüsselung (TLS) mit persönlichem Login und strenger Zugriffskontrolle (zumindest für die MQTT-Themen unterhalb von "Entfernter Präfix") zu aktivieren! ',-1)])),_:1,__:[1]}),a(k,{title:"Konfigurierte MQTT-Brücken"},{actions:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!1?(m(),M(w,{key:0,class:"bg-success clickable",onClick:i.addMqttBridge},{default:o(()=>[a(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):B("",!0)]),default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(m(),b("div",L,[a(c,{subtype:"info"},{default:o(()=>e[2]||(e[2]=[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[2]})])):(m(),b("div",I,[Object.keys(i.configuredMqttBridges).length===0?(m(),M(c,{key:0,subtype:"info"},{default:o(()=>e[3]||(e[3]=[s(" Es wurde noch keine MQTT-Brücke konfiguriert. ",-1)])),_:1,__:[3]})):B("",!0),(m(!0),b(V,null,E(i.configuredMqttBridges,(l,r)=>(m(),b("form",{key:r,name:"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(r)},[a(k,{title:l.name,collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(()=>[a(w,{class:"bg-danger clickable",onClick:n=>i.removeMqttBridgeModal(r,n)},{default:o(()=>[a(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"])]),footer:o(()=>[a(U,{"form-name":"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(r),"hide-defaults":!0,onSave:n=>t.$emit("save",[r]),onReset:n=>t.$emit("reset",[r])},null,8,["form-name","onSave","onReset"])]),default:o(()=>[a(p,{title:"Bezeichnung",subtype:"text",required:"",pattern:"[A-Za-z0-9]+","model-value":l.name,"onUpdate:modelValue":n=>t.updateState(r,n,"name")},{help:o(()=>[...e[4]||(e[4]=[s(" Die Bezeichnung darf nur aus Buchstaben ohne Umlaute und Zahlen bestehen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(d,{title:"Brücke aktivieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":l.active,"onUpdate:modelValue":n=>t.updateState(r,n,"active")},null,8,["model-value","onUpdate:modelValue"]),e[14]||(e[14]=g("hr",null,null,-1)),a(_,null,{default:o(()=>[...e[5]||(e[5]=[s(" Einstellungen zur Verbindung ",-1)])]),_:1,__:[5]}),a(p,{title:"Entfernter Server",subtype:"host",required:"","model-value":l.remote.host,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.host")},null,8,["model-value","onUpdate:modelValue"]),a(S,{title:"Entfernter Port",required:"",min:1,max:65535,"model-value":l.remote.port,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.port")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Benutzername",subtype:"user",required:"",pattern:"[a-zA-Z0-9_\\-+.]+","model-value":l.remote.username,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.username")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Passwort",subtype:"password",required:"","model-value":l.remote.password,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.password")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Präfix",subtype:"text",pattern:"[A-Za-z0-9_\\-]+(\\/[A-Za-z0-9_\\-]+)?\\/","model-value":l.remote.prefix,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.prefix")},{help:o(()=>[...e[6]||(e[6]=[s(' Das Präfix darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. Optional kann mit einem Schrägstrich "/" eine Topic-Struktur abgebildet werden. Am Ende des Präfixes muss ein Schrägstrich "/" stehen. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(p,{title:"Client ID",subtype:"text",required:"",pattern:"[A-Za-z0-9_\\-]+","model-value":l.remote.client_id,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.client_id")},{help:o(()=>[...e[7]||(e[7]=[s(" Die Client ID darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(d,{title:"MQTT Protokoll",required:"required",buttons:[{buttonValue:"mqttv31",text:"v3.1"},{buttonValue:"mqttv311",text:"v3.1.1"}],"model-value":l.remote.protocol,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.protocol")},null,8,["model-value","onUpdate:modelValue"]),a(d,{title:"TLS Version",buttons:[{buttonValue:"auto",text:"Automatisch",class:"btn-outline-success"},{buttonValue:"tlsv1.0",text:"v1.0",class:"btn-outline-warning"},{buttonValue:"tlsv1.1",text:"v1.1",class:"btn-outline-warning"},{buttonValue:"tlsv1.2",text:"v1.2"}],"model-value":l.remote.tls_version,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.tls_version")},{help:o(()=>[...e[8]||(e[8]=[s(' In der Einstellung "Automatisch" wird die Version zwischen Client und Server ausgehandelt. Wenn erforderlich, kann eine spezielle Version erzwungen werden. Versionen kleiner 1.2 gelten als veraltet und sollten nicht mehr verwendet werden. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(d,{title:"Brücke signalisieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l.remote.try_private,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.try_private")},{help:o(()=>[...e[9]||(e[9]=[s(" Aktiviert eine proprietäre Protokoll-Erweiterung des Mosquitto Brokers, welche dem entfernten Broker signalisiert, dass es sich um eine MQTT Brücke handelt. Ergibt bessere Leistung mit Mosquitto-Brokern, ist jedoch inkompatibel mit vielen anderen MQTT-Brokern. Daher bitte nur aktivieren, wenn der Ziel-Broker sicher ein Mosquitto-Broker ist. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),e[15]||(e[15]=g("hr",null,null,-1)),a(_,null,{default:o(()=>[...e[10]||(e[10]=[s(" Datenübertragung ",-1)])]),_:1,__:[10]}),a(d,{title:"Alle Statusdaten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l.data_transfer.status,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.status")},{help:o(()=>[...e[11]||(e[11]=[s(" Wenn aktiviert, werden alle Statusdaten (z.B. Ladezustand, Leistung, Spannungen, Ströme, etc.) der angeschlossenen Komponenten und Ladepunkte übertragen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(d,{title:"Datenserien für Diagramme",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l.data_transfer.graph,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.graph")},{help:o(()=>[...e[12]||(e[12]=[s(" Wenn aktiviert, werden alle Datenserien für die Diagramme (z.B. Leistung über Zeit) der angeschlossenen Komponenten und Ladepunkte übertragen. Dies sind deutlich mehr Daten als bei den Statusdaten allein.",-1),g("br",null,null,-1),s(" Diese Einstellung sollte nur aktiviert werden, wenn die Daten auch tatsächlich benötigt und interpretiert werden können. In der Regel werden die Daten nur für die Web- und Display-Themes benötigt und können daher bei einer MQTT-Brücke deaktiviert bleiben. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),a(d,{title:"Fernkonfiguration ermöglichen",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l.data_transfer.configuration,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.configuration")},{help:o(()=>[...e[13]||(e[13]=[s(' Wenn aktiviert, können über die MQTT-Brücke auch Konfigurationsänderungen (z.B. Ladeleistung, Zeitsteuerungen, etc.) an die openWB über die Topics "openWB/set/*" gesendet werden. Dies sollte nur aktiviert werden, wenn der entfernte MQTT-Server und alle Nutzer, welche darauf Zugriff haben, absolut vertrauenswürdig sind. Ansonsten besteht die Gefahr, dass unbefugte Nutzer die Konfiguration der openWB verändern und z.B. den Ladevorgang manipulieren. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2,__:[14,15]},1032,["title"])],8,N))),128))]))]),_:1})])],64)}const J=W(Q,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/MqttBridgeConfig.vue"]]);export{J as default}; diff --git a/web/settings/assets/OpenwbIoPattern-573b772f.js b/web/settings/assets/OpenwbIoPattern-573b772f.js new file mode 100644 index 0000000000..c3e18391fe --- /dev/null +++ b/web/settings/assets/OpenwbIoPattern-573b772f.js @@ -0,0 +1 @@ +import{l as T,n as M,o as q,p as D,q as y,ab as C,d as O,O as A,f as I,a as z,F as E}from"./vendor-fortawesome-fc4b3a41.js";import{_ as B,u as _,l as a,m as l,A as i,F as P,z as d,N as f,M as g,G as c,E as k,q as x,y as h,K as N,p as S,B as V,x as j}from"./vendor-50125810.js";T.add(M,q,D,y,C,O,A,I,z);const p={undefined:{value:void 0,icon:["fas","question"],iconClass:"text-secondary",title:"Nicht relevant",nextValue:!0},true:{value:!0,icon:["fas","square"],iconClass:"",title:"Geschlossen",nextValue:!1},false:{value:!1,icon:["far","square"],iconClass:"",title:"Offen",nextValue:void 0}},H={name:"IoActionContactPattern",components:{FontAwesomeIcon:E},inheritAttrs:!1,props:{contacts:{type:Object,required:!0},modelValue:{type:Array,required:!0},title:{type:String,required:!1,default:"Eingangsmuster"},actionTitle:{type:String,required:!1,default:"Verhalten"},enableAddDelete:{type:Boolean,default:!0},minPatterns:{type:Number,default:1},maxPatterns:{type:Number,default:10},showCheckPattern:{type:Boolean,required:!1,default:!0}},emits:["update:modelValue"],data(){return{showTestPattern:!1,testPattern:{...this.contacts}}},computed:{value:{get(){return this.modelValue},set(s){this.$emit("update:modelValue",s)}},numContacts(){return Object.keys(this.contacts).length},addPatternDisabled(){return this.value.length>=this.maxPatterns},addPatternTooltip(){return this.addPatternDisabled?this.maxPatterns===1?"Es kann maximal ein Muster definiert werden":`Es können maximal ${this.maxPatterns} Muster definiert werden`:"Muster hinzufügen"},deletePatternDisabled(){return this.value.length<=this.minPatterns},deletePatternTooltip(){return this.deletePatternDisabled?this.minPatterns===1?"Es muss mindestens ein Muster definiert sein":`Es müssen mindestens ${this.minPatterns} Muster definiert sein`:"Muster löschen"}},watch:{contacts(){this.testPattern={...this.contacts}}},mounted(){for(;this.value.lengththis.testPattern[e]===void 0?!0:this.value[s].matrix[e]===this.testPattern[e])},deletePattern(s){delete this.value.splice(s,1)},addPattern(){this.value.push({matrix:{},value:null})}}},F={class:"w-100 mb-2"},Q=["span"],G=["colspan"],L={key:0,rowspan:"2",class:"contact-header"},U=["colspan"],W={key:0},J={key:0,class:"text-center"},R={key:1},X={key:0},Y=["colspan"],Z={key:1,class:"bg-info"},K=["colspan"];function $(s,e,r,ee,u,n){const m=_("font-awesome-icon"),w=_("openwb-base-click-button"),v=_("openwb-base-button-group-input");return a(),l(f,null,[i("table",F,[i("colgroup",null,[i("col",{span:n.numContacts,class:"bg-white",style:{border:"1px solid #dee2e6"}},null,8,Q)]),i("thead",null,[i("tr",null,[i("th",{colspan:n.numContacts},P(r.title),9,G),u.showTestPattern?(a(),l("th",L,[...e[6]||(e[6]=[i("div",null,"Prüfergebnis",-1)])])):d("",!0),i("th",{colspan:r.enableAddDelete?2:1},null,8,U)]),i("tr",null,[(a(!0),l(f,null,g(Object.keys(r.contacts),t=>(a(),l("th",{key:t,class:"contact-header"},[i("div",null,P(t),1)]))),128)),i("th",null,P(r.actionTitle),1),r.enableAddDelete?(a(),l("th",W,[c(w,{class:"bg-success text-white",tooltip:n.addPatternTooltip,disabled:n.addPatternDisabled,onClick:e[0]||(e[0]=t=>n.addPattern())},{default:k(()=>[c(m,{icon:["fas","plus"]})]),_:1},8,["tooltip","disabled"])])):d("",!0)])]),i("tbody",null,[(a(!0),l(f,null,g(n.value,(t,b)=>(a(),l("tr",{key:b},[(a(!0),l(f,null,g(Object.keys(r.contacts),o=>(a(),l("td",{key:o,class:"text-center"},[c(m,{title:n.getTitle(t.matrix[o]),icon:n.getIcon(t.matrix[o]),class:x([n.getIconClass(t.matrix[o]),"fa-fw clickable"]),size:"2x",transform:t.matrix[o]==null?"shrink-6":null,mask:t.matrix[o]==null?["fas","square"]:null,onClick:h(te=>n.toggleContact(b,o),["stop","prevent"]),onMousedown:e[1]||(e[1]=h(()=>{},["stop","prevent"])),onMouseup:e[2]||(e[2]=h(()=>{},["stop","prevent"]))},null,8,["title","icon","class","transform","mask","onClick"])]))),128)),u.showTestPattern?(a(),l("td",J,[c(m,{title:"Muster passt",icon:["fas","check-circle"],class:x(["text-success fa-fw",{hidden:!n.patternMatch(b)}])},null,8,["class"])])):d("",!0),i("td",N({ref_for:!0},s.$attrs),[S(s.$slots,"default",{pattern:t},()=>[V(P(t.value),1)],!0)],16),r.enableAddDelete?(a(),l("td",R,[c(w,{class:"bg-danger text-white",tooltip:n.deletePatternTooltip,disabled:n.deletePatternDisabled,onClick:o=>n.deletePattern(b)},{default:k(()=>[c(m,{icon:["fas","trash"]})]),_:1},8,["tooltip","disabled","onClick"])])):d("",!0)]))),128)),u.showTestPattern?(a(),l("tr",X,[(a(!0),l(f,null,g(Object.keys(r.contacts),t=>(a(),l("td",{key:t,class:"pt-4"},"   "))),128)),i("td",{colspan:r.enableAddDelete?3:2},null,8,Y)])):d("",!0),u.showTestPattern?(a(),l("tr",Z,[(a(!0),l(f,null,g(Object.keys(r.contacts),t=>(a(),l("td",{key:t,class:"text-center text-body"},[c(m,{title:n.getTitle(u.testPattern[t]),icon:n.getIcon(u.testPattern[t]),class:x([n.getIconClass(u.testPattern[t]),"fa-fw clickable"]),size:"2x",transform:u.testPattern[t]==null?"shrink-6":null,mask:u.testPattern[t]==null?["fas","square"]:null,onClick:h(b=>n.toggleTestPattern(t),["stop","prevent"]),onMousedown:e[3]||(e[3]=h(()=>{},["stop","prevent"])),onMouseup:e[4]||(e[4]=h(()=>{},["stop","prevent"]))},null,8,["title","icon","class","transform","mask","onClick"])]))),128)),i("td",{class:"pl-2",colspan:r.enableAddDelete?3:2}," Prüfmuster ",8,K)])):d("",!0)])]),r.showCheckPattern?(a(),j(v,{key:0,modelValue:u.showTestPattern,"onUpdate:modelValue":e[5]||(e[5]=t=>u.showTestPattern=t),title:"Prüfmuster",buttons:[{buttonValue:!1,text:"Verbergen"},{buttonValue:!0,text:"Anzeigen"}]},{help:k(()=>[...e[7]||(e[7]=[V(' Das Prüfmuster ist eine Hilfe um zu testen, ob die Eingangsmuster zum gewünschten Verhalten passen. Ein grüner Haken in der Spalte "Prüfergebnis" zeigt an, dass das Eingangsmuster zu dem Prüfmuster passt. Eingangsmuster mit unterschiedlichem Verhalten dürfen nicht gleichzeitig passen, da sonst das Verhalten nicht eindeutig ist. ',-1)])]),_:1},8,["modelValue"])):d("",!0)],64)}const ae=B(H,[["render",$],["__scopeId","data-v-3624c649"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoPattern.vue"]]);export{ae as O}; diff --git a/web/settings/assets/OpenwbIoPattern-66bb2793.js b/web/settings/assets/OpenwbIoPattern-66bb2793.js deleted file mode 100644 index 2f262fc01f..0000000000 --- a/web/settings/assets/OpenwbIoPattern-66bb2793.js +++ /dev/null @@ -1 +0,0 @@ -import{l as T,n as M,o as q,p as D,q as y,ab as C,d as O,O as A,f as I,a as z,F as E}from"./vendor-fortawesome-a02b6813.js";import{_ as B,u as _,l as a,m as l,A as i,F as P,z as d,N as f,M as g,G as c,E as k,q as x,y as h,K as N,p as S,B as V,x as j}from"./vendor-25d394b4.js";T.add(M,q,D,y,C,O,A,I,z);const p={undefined:{value:void 0,icon:["fas","question"],iconClass:"text-secondary",title:"Nicht relevant",nextValue:!0},true:{value:!0,icon:["fas","square"],iconClass:"",title:"Geschlossen",nextValue:!1},false:{value:!1,icon:["far","square"],iconClass:"",title:"Offen",nextValue:void 0}},H={name:"IoActionContactPattern",components:{FontAwesomeIcon:E},inheritAttrs:!1,props:{contacts:{type:Object,required:!0},modelValue:{type:Array,required:!0},title:{type:String,required:!1,default:"Eingangsmuster"},actionTitle:{type:String,required:!1,default:"Verhalten"},enableAddDelete:{type:Boolean,default:!0},minPatterns:{type:Number,default:1},maxPatterns:{type:Number,default:10},showCheckPattern:{type:Boolean,required:!1,default:!0}},emits:["update:modelValue"],data(){return{showTestPattern:!1,testPattern:{...this.contacts}}},computed:{value:{get(){return this.modelValue},set(s){this.$emit("update:modelValue",s)}},numContacts(){return Object.keys(this.contacts).length},addPatternDisabled(){return this.value.length>=this.maxPatterns},addPatternTooltip(){return this.addPatternDisabled?this.maxPatterns===1?"Es kann maximal ein Muster definiert werden":`Es können maximal ${this.maxPatterns} Muster definiert werden`:"Muster hinzufügen"},deletePatternDisabled(){return this.value.length<=this.minPatterns},deletePatternTooltip(){return this.deletePatternDisabled?this.minPatterns===1?"Es muss mindestens ein Muster definiert sein":`Es müssen mindestens ${this.minPatterns} Muster definiert sein`:"Muster löschen"}},watch:{contacts(){this.testPattern={...this.contacts}}},mounted(){for(;this.value.lengththis.testPattern[e]===void 0?!0:this.value[s].matrix[e]===this.testPattern[e])},deletePattern(s){delete this.value.splice(s,1)},addPattern(){this.value.push({matrix:{},value:null})}}},F={class:"w-100 mb-2"},Q=["span"],G=["colspan"],L={key:0,rowspan:"2",class:"contact-header"},U=["colspan"],W={key:0},J={key:0,class:"text-center"},R={key:1},X={key:0},Y=["colspan"],Z={key:1,class:"bg-info"},K=["colspan"];function $(s,e,r,ee,u,n){const m=_("font-awesome-icon"),w=_("openwb-base-click-button"),v=_("openwb-base-button-group-input");return a(),l(f,null,[i("table",F,[i("colgroup",null,[i("col",{span:n.numContacts,class:"bg-white",style:{border:"1px solid #dee2e6"}},null,8,Q)]),i("thead",null,[i("tr",null,[i("th",{colspan:n.numContacts},P(r.title),9,G),u.showTestPattern?(a(),l("th",L,e[6]||(e[6]=[i("div",null,"Prüfergebnis",-1)]))):d("",!0),i("th",{colspan:r.enableAddDelete?2:1},null,8,U)]),i("tr",null,[(a(!0),l(f,null,g(Object.keys(r.contacts),t=>(a(),l("th",{key:t,class:"contact-header"},[i("div",null,P(t),1)]))),128)),i("th",null,P(r.actionTitle),1),r.enableAddDelete?(a(),l("th",W,[c(w,{class:"bg-success text-white",tooltip:n.addPatternTooltip,disabled:n.addPatternDisabled,onClick:e[0]||(e[0]=t=>n.addPattern())},{default:k(()=>[c(m,{icon:["fas","plus"]})]),_:1},8,["tooltip","disabled"])])):d("",!0)])]),i("tbody",null,[(a(!0),l(f,null,g(n.value,(t,b)=>(a(),l("tr",{key:b},[(a(!0),l(f,null,g(Object.keys(r.contacts),o=>(a(),l("td",{key:o,class:"text-center"},[c(m,{title:n.getTitle(t.matrix[o]),icon:n.getIcon(t.matrix[o]),class:x([n.getIconClass(t.matrix[o]),"fa-fw clickable"]),size:"2x",transform:t.matrix[o]==null?"shrink-6":null,mask:t.matrix[o]==null?["fas","square"]:null,onClick:h(te=>n.toggleContact(b,o),["stop","prevent"]),onMousedown:e[1]||(e[1]=h(()=>{},["stop","prevent"])),onMouseup:e[2]||(e[2]=h(()=>{},["stop","prevent"]))},null,8,["title","icon","class","transform","mask","onClick"])]))),128)),u.showTestPattern?(a(),l("td",J,[c(m,{title:"Muster passt",icon:["fas","check-circle"],class:x(["text-success fa-fw",{hidden:!n.patternMatch(b)}])},null,8,["class"])])):d("",!0),i("td",N({ref_for:!0},s.$attrs),[S(s.$slots,"default",{pattern:t},()=>[V(P(t.value),1)],!0)],16),r.enableAddDelete?(a(),l("td",R,[c(w,{class:"bg-danger text-white",tooltip:n.deletePatternTooltip,disabled:n.deletePatternDisabled,onClick:o=>n.deletePattern(b)},{default:k(()=>[c(m,{icon:["fas","trash"]})]),_:2},1032,["tooltip","disabled","onClick"])])):d("",!0)]))),128)),u.showTestPattern?(a(),l("tr",X,[(a(!0),l(f,null,g(Object.keys(r.contacts),t=>(a(),l("td",{key:t,class:"pt-4"},"   "))),128)),i("td",{colspan:r.enableAddDelete?3:2},null,8,Y)])):d("",!0),u.showTestPattern?(a(),l("tr",Z,[(a(!0),l(f,null,g(Object.keys(r.contacts),t=>(a(),l("td",{key:t,class:"text-center text-body"},[c(m,{title:n.getTitle(u.testPattern[t]),icon:n.getIcon(u.testPattern[t]),class:x([n.getIconClass(u.testPattern[t]),"fa-fw clickable"]),size:"2x",transform:u.testPattern[t]==null?"shrink-6":null,mask:u.testPattern[t]==null?["fas","square"]:null,onClick:h(b=>n.toggleTestPattern(t),["stop","prevent"]),onMousedown:e[3]||(e[3]=h(()=>{},["stop","prevent"])),onMouseup:e[4]||(e[4]=h(()=>{},["stop","prevent"]))},null,8,["title","icon","class","transform","mask","onClick"])]))),128)),i("td",{class:"pl-2",colspan:r.enableAddDelete?3:2}," Prüfmuster ",8,K)])):d("",!0)])]),r.showCheckPattern?(a(),j(v,{key:0,modelValue:u.showTestPattern,"onUpdate:modelValue":e[5]||(e[5]=t=>u.showTestPattern=t),title:"Prüfmuster",buttons:[{buttonValue:!1,text:"Verbergen"},{buttonValue:!0,text:"Anzeigen"}]},{help:k(()=>e[7]||(e[7]=[V(' Das Prüfmuster ist eine Hilfe um zu testen, ob die Eingangsmuster zum gewünschten Verhalten passen. Ein grüner Haken in der Spalte "Prüfergebnis" zeigt an, dass das Eingangsmuster zu dem Prüfmuster passt. Eingangsmuster mit unterschiedlichem Verhalten dürfen nicht gleichzeitig passen, da sonst das Verhalten nicht eindeutig ist. ',-1)])),_:1},8,["modelValue"])):d("",!0)],64)}const ae=B(H,[["render",$],["__scopeId","data-v-3624c649"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoPattern.vue"]]);export{ae as O}; diff --git a/web/settings/assets/OpenwbIoSinglePattern-14df64f6.js b/web/settings/assets/OpenwbIoSinglePattern-67be81d3.js similarity index 97% rename from web/settings/assets/OpenwbIoSinglePattern-14df64f6.js rename to web/settings/assets/OpenwbIoSinglePattern-67be81d3.js index b3cc054a78..7b57bba7c9 100644 --- a/web/settings/assets/OpenwbIoSinglePattern-14df64f6.js +++ b/web/settings/assets/OpenwbIoSinglePattern-67be81d3.js @@ -1 +1 @@ -import{_ as m,u as i,l,m as p,G as f,E as r,B as s,F as u,x as g,z as h,N as b}from"./vendor-25d394b4.js";const v={name:"IoActionSinglePattern",inheritAttrs:!1,props:{modelValue:{type:Array,required:!0},contacts:{type:Object,required:!0},contactType:{type:String,required:!1,default:"input",validator:e=>["input","output"].includes(e)},title:{type:String,required:!1,default:void 0}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},contactTitle(){return this.title!==void 0?this.title:this.contactType==="input"?"Eingang":"Ausgang"},contactHelpText(){return this.contactType==="input"?"Bitte den Eingang auswählen, auf welchen reagiert werden soll. Es kann nur ein Eingang ausgewählt werden.":"Bitte den Ausgang auswählen, welcher geschaltet werden soll. Es kann nur ein Ausgang ausgewählt werden."},normalModeHelpText(){return this.contactType==="input"?"Bitte Einstellen, ob der Eingang für den normalen Betrieb (nicht aktiv, nicht gedimmt etc.) geschlossen (NC) oder geöffnet (NO) ist.":"Bitte Einstellen, ob der Ausgang für den normalen Betrieb (nicht aktiv, nicht gedimmt etc.) geschlossen (NC) oder geöffnet (NO) ist."},definedContact:{get(){return this.value!==void 0&&Object.keys(this.value[0].matrix).length!==0?Object.keys(this.value[0].matrix)[0]:null},set(e){if(Object.keys(this.value[0].matrix).length===0){this.value=[{value:!0,matrix:{[e]:!0}},{value:!1,matrix:{[e]:!1}}];return}this.value=[{value:!0,matrix:{[e]:this.definedNormalMode}},{value:!1,matrix:{[e]:!this.definedNormalMode}}]}},definedNormalMode:{get(){return Object.values(this.value[0].matrix)[0]},set(e){this.value=[{value:!0,matrix:{[this.definedContact]:e}},{value:!1,matrix:{[this.definedContact]:!e}}]}},contactOptions(){return Object.keys(this.contacts).map(e=>({value:e,text:e}))}}};function x(e,n,o,_,y,t){const d=i("openwb-base-select-input"),c=i("openwb-base-button-group-input");return l(),p(b,null,[f(d,{modelValue:t.definedContact,"onUpdate:modelValue":n[0]||(n[0]=a=>t.definedContact=a),title:t.contactTitle,required:"","not-selected":"Bitte auswählen","empty-value":null,options:t.contactOptions},{help:r(()=>[s(u(t.contactHelpText),1)]),_:1},8,["modelValue","title","options"]),o.contactType==="input"?(l(),g(c,{key:0,modelValue:t.definedNormalMode,"onUpdate:modelValue":n[1]||(n[1]=a=>t.definedNormalMode=a),title:"Normaler Zustand",buttons:[{buttonValue:!1,text:"geschlossen (NC)"},{buttonValue:!0,text:"geöffnet (NO)"}],disabled:!t.definedContact,required:""},{help:r(()=>[s(u(t.normalModeHelpText),1)]),_:1},8,["modelValue","disabled"])):h("",!0)],64)}const w=m(v,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoSinglePattern.vue"]]);export{w as O}; +import{_ as m,u as i,l,m as p,G as f,E as r,B as s,F as u,x as g,z as h,N as b}from"./vendor-50125810.js";const v={name:"IoActionSinglePattern",inheritAttrs:!1,props:{modelValue:{type:Array,required:!0},contacts:{type:Object,required:!0},contactType:{type:String,required:!1,default:"input",validator:e=>["input","output"].includes(e)},title:{type:String,required:!1,default:void 0}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},contactTitle(){return this.title!==void 0?this.title:this.contactType==="input"?"Eingang":"Ausgang"},contactHelpText(){return this.contactType==="input"?"Bitte den Eingang auswählen, auf welchen reagiert werden soll. Es kann nur ein Eingang ausgewählt werden.":"Bitte den Ausgang auswählen, welcher geschaltet werden soll. Es kann nur ein Ausgang ausgewählt werden."},normalModeHelpText(){return this.contactType==="input"?"Bitte Einstellen, ob der Eingang für den normalen Betrieb (nicht aktiv, nicht gedimmt etc.) geschlossen (NC) oder geöffnet (NO) ist.":"Bitte Einstellen, ob der Ausgang für den normalen Betrieb (nicht aktiv, nicht gedimmt etc.) geschlossen (NC) oder geöffnet (NO) ist."},definedContact:{get(){return this.value!==void 0&&Object.keys(this.value[0].matrix).length!==0?Object.keys(this.value[0].matrix)[0]:null},set(e){if(Object.keys(this.value[0].matrix).length===0){this.value=[{value:!0,matrix:{[e]:!0}},{value:!1,matrix:{[e]:!1}}];return}this.value=[{value:!0,matrix:{[e]:this.definedNormalMode}},{value:!1,matrix:{[e]:!this.definedNormalMode}}]}},definedNormalMode:{get(){return Object.values(this.value[0].matrix)[0]},set(e){this.value=[{value:!0,matrix:{[this.definedContact]:e}},{value:!1,matrix:{[this.definedContact]:!e}}]}},contactOptions(){return Object.keys(this.contacts).map(e=>({value:e,text:e}))}}};function x(e,n,o,_,y,t){const d=i("openwb-base-select-input"),c=i("openwb-base-button-group-input");return l(),p(b,null,[f(d,{modelValue:t.definedContact,"onUpdate:modelValue":n[0]||(n[0]=a=>t.definedContact=a),title:t.contactTitle,required:"","not-selected":"Bitte auswählen","empty-value":null,options:t.contactOptions},{help:r(()=>[s(u(t.contactHelpText),1)]),_:1},8,["modelValue","title","options"]),o.contactType==="input"?(l(),g(c,{key:0,modelValue:t.definedNormalMode,"onUpdate:modelValue":n[1]||(n[1]=a=>t.definedNormalMode=a),title:"Normaler Zustand",buttons:[{buttonValue:!1,text:"geschlossen (NC)"},{buttonValue:!0,text:"geöffnet (NO)"}],disabled:!t.definedContact,required:""},{help:r(()=>[s(u(t.normalModeHelpText),1)]),_:1},8,["modelValue","disabled"])):h("",!0)],64)}const w=m(v,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoSinglePattern.vue"]]);export{w as O}; diff --git a/web/settings/assets/OpenwbSortableList-c7b5b151.js b/web/settings/assets/OpenwbSortableList-96f09c46.js similarity index 92% rename from web/settings/assets/OpenwbSortableList-c7b5b151.js rename to web/settings/assets/OpenwbSortableList-96f09c46.js index f22e687a2f..f09a447986 100644 --- a/web/settings/assets/OpenwbSortableList-c7b5b151.js +++ b/web/settings/assets/OpenwbSortableList-96f09c46.js @@ -1 +1 @@ -import{O as v}from"./index-8dd8e083.js";import{_,a5 as V,u as l,l as o,x as i,E as d,A as p,q as k,G as m,z as S,B as b,F as g,D as O,p as f,m as B}from"./vendor-25d394b4.js";import{l as L,ak as E,Q as N,_ as C,Z as q,Y as A,F as x}from"./vendor-fortawesome-a02b6813.js";L.add(E,N,C,q,A);const $={name:"OpenwbNestedList",components:{draggable:V,FontAwesomeIcon:x},props:{list:{type:Object,required:!1,default:void 0},labels:{type:Object,required:!1,default:void 0}},methods:{classes(e){var t="";switch(e.type){case"bat":t+="battery";break;case"cp":t+="charge-point";break;default:t+=e.type;break}return t},getElementLabel(e){return this.labels&&e in this.labels?this.labels[e]:e},getElementIcon(e){switch(e.type){case"bat":return["fas","car-battery"];case"counter":return["fas","gauge-high"];case"cp":return["fas","charging-station"];case"inverter":return["fas","solar-panel"];default:return}}}};function j(e,t,n,h,w,a){const r=l("font-awesome-icon"),c=l("openwb-nested-list",!0),u=l("draggable");return o(),i(u,{class:"dragArea w-100 mb-0",tag:"ul",list:n.list,group:{name:"g1"},"item-key":"id",handle:".handle"},{item:d(({element:s})=>[p("li",null,[p("div",{class:k(["element-titel",a.classes(s)])},[p("span",null,[m(r,{class:"handle",icon:["fas","arrows-alt"]}),a.getElementIcon(s)?(o(),i(r,{key:0,icon:a.getElementIcon(s)},null,8,["icon"])):S("",!0),b(" "+g(a.getElementLabel(s.id)),1)])],2),m(c,{modelValue:s.children,"onUpdate:modelValue":y=>s.children=y,labels:n.labels},null,8,["modelValue","onUpdate:modelValue","labels"])])]),_:1},8,["list"])}const D=_($,[["render",j],["__scopeId","data-v-82c9421a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbNestedList.vue"]]),F={name:"OpenwbSortableList",components:{OpenwbBaseSettingElement:v,OpenwbNestedList:D},props:{id:{type:String,required:!1,default:void 0},title:{type:String,required:!1,default:""},modelValue:{type:Array,required:!1,default:void 0},labels:{type:Object,default:void 0}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},I={key:1};function U(e,t,n,h,w,a){const r=l("openwb-nested-list"),c=l("openwb-base-setting-element");return o(),i(c,null,O({title:d(()=>[f(e.$slots,"title",{},()=>[b(g(n.title),1)])]),default:d(()=>[a.value!==void 0?(o(),i(r,{key:0,modelValue:a.value,"onUpdate:modelValue":t[0]||(t[0]=u=>a.value=u),labels:n.labels},null,8,["modelValue","labels"])):(o(),B("div",I,"Warte auf Daten..."))]),_:2},[e.$slots.help?{name:"help",fn:d(()=>[f(e.$slots,"help")]),key:"0"}:void 0]),1024)}const H=_(F,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbSortableList.vue"]]);export{H as S}; +import{O as v}from"./index-c94f8df4.js";import{_,a5 as V,u as l,l as o,x as i,E as d,A as p,q as k,G as m,z as S,B as b,F as g,D as O,p as f,m as B}from"./vendor-50125810.js";import{l as L,ak as E,Q as N,_ as C,Z as q,Y as A,F as x}from"./vendor-fortawesome-fc4b3a41.js";L.add(E,N,C,q,A);const $={name:"OpenwbNestedList",components:{draggable:V,FontAwesomeIcon:x},props:{list:{type:Object,required:!1,default:void 0},labels:{type:Object,required:!1,default:void 0}},methods:{classes(e){var t="";switch(e.type){case"bat":t+="battery";break;case"cp":t+="charge-point";break;default:t+=e.type;break}return t},getElementLabel(e){return this.labels&&e in this.labels?this.labels[e]:e},getElementIcon(e){switch(e.type){case"bat":return["fas","car-battery"];case"counter":return["fas","gauge-high"];case"cp":return["fas","charging-station"];case"inverter":return["fas","solar-panel"];default:return}}}};function j(e,t,n,h,w,a){const r=l("font-awesome-icon"),c=l("openwb-nested-list",!0),u=l("draggable");return o(),i(u,{class:"dragArea w-100 mb-0",tag:"ul",list:n.list,group:{name:"g1"},"item-key":"id",handle:".handle"},{item:d(({element:s})=>[p("li",null,[p("div",{class:k(["element-titel",a.classes(s)])},[p("span",null,[m(r,{class:"handle",icon:["fas","arrows-alt"]}),a.getElementIcon(s)?(o(),i(r,{key:0,icon:a.getElementIcon(s)},null,8,["icon"])):S("",!0),b(" "+g(a.getElementLabel(s.id)),1)])],2),m(c,{modelValue:s.children,"onUpdate:modelValue":y=>s.children=y,labels:n.labels},null,8,["modelValue","onUpdate:modelValue","labels"])])]),_:1},8,["list"])}const D=_($,[["render",j],["__scopeId","data-v-82c9421a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbNestedList.vue"]]),F={name:"OpenwbSortableList",components:{OpenwbBaseSettingElement:v,OpenwbNestedList:D},props:{id:{type:String,required:!1,default:void 0},title:{type:String,required:!1,default:""},modelValue:{type:Array,required:!1,default:void 0},labels:{type:Object,default:void 0}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},I={key:1};function U(e,t,n,h,w,a){const r=l("openwb-nested-list"),c=l("openwb-base-setting-element");return o(),i(c,null,O({title:d(()=>[f(e.$slots,"title",{},()=>[b(g(n.title),1)])]),default:d(()=>[a.value!==void 0?(o(),i(r,{key:0,modelValue:a.value,"onUpdate:modelValue":t[0]||(t[0]=u=>a.value=u),labels:n.labels},null,8,["modelValue","labels"])):(o(),B("div",I,"Warte auf Daten..."))]),_:2},[e.$slots.help?{name:"help",fn:d(()=>[f(e.$slots,"help")]),key:"0"}:void 0]),1024)}const H=_(F,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbSortableList.vue"]]);export{H as S}; diff --git a/web/settings/assets/OptionalComponents-855be104.js b/web/settings/assets/OptionalComponents-855be104.js new file mode 100644 index 0000000000..084b377b9d --- /dev/null +++ b/web/settings/assets/OptionalComponents-855be104.js @@ -0,0 +1 @@ +import{_ as T,C as $}from"./index-c94f8df4.js";import{_ as C}from"./dynamic-import-helper-be004503.js";import{l as O,a6 as S,a7 as V,F as E}from"./vendor-fortawesome-fc4b3a41.js";import{_ as g,u as l,l as p,m as d,x as _,E as o,B as a,F as y,G as n,A as m,a2 as q,a3 as N,N as z,z as c}from"./vendor-50125810.js";const M={props:{displayTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},j=g(M,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/DisplayThemeConfigMixin.vue"]]),A={name:"DisplayThemeFallback",mixins:[j]},F={class:"display-theme-fallback"},L={key:1};function P(t,e,s,v,w,u){const r=l("openwb-base-alert"),b=l("openwb-base-textarea");return p(),d("div",F,[Object.keys(t.displayTheme.configuration).length==0?(p(),_(r,{key:0,subtype:"info"},{default:o(()=>[a(' Das Display-Theme "'+y(t.displayTheme.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(p(),d("div",L,[n(r,{subtype:"warning"},{default:o(()=>[a(' Es wurde keine Konfigurationsseite für das Display-Theme "'+y(t.displayTheme.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(b,{title:"Konfiguration",subtype:"json","model-value":t.displayTheme.configuration,"onUpdate:modelValue":e[0]||(e[0]=f=>t.updateConfiguration(f,"configuration"))},{help:o(()=>[...e[1]||(e[1]=[a(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),n(r,{subtype:"info"},{default:o(()=>[m("pre",null,y(JSON.stringify(t.displayTheme.configuration,void 0,2)),1)]),_:1})]))])}const U=g(A,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeFallback.vue"]]);O.add(S,V);const x={name:"OpenwbDisplayThemeProxy",components:{FontAwesomeIcon:E},props:{displayTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{getDisplayThemeComponent(){return console.debug(`loading display theme: ${this.displayTheme.type}`),q({loader:()=>C(Object.assign({"./cards/displayTheme.vue":()=>T(()=>import("./displayTheme-1cde14a1.js"),["assets/displayTheme-1cde14a1.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/index-c94f8df4.js","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./colors/displayTheme.vue":()=>T(()=>import("./displayTheme-574a4f61.js"),["assets/displayTheme-574a4f61.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/index-c94f8df4.js","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.displayTheme.type}/displayTheme.vue`),errorComponent:U})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function I(t,e,s,v,w,u){const r=l("font-awesome-icon"),b=l("openwb-base-alert"),f=l("openwb-base-heading");return p(),d(z,null,[s.displayTheme.official?(p(),_(b,{key:0,subtype:"success"},{default:o(()=>[n(r,{icon:["fas","certificate"]}),a(' Das ausgewählte Display Theme "'+y(s.displayTheme.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(p(),_(b,{key:1,subtype:"info"},{default:o(()=>[n(r,{icon:["fas","people-group"]}),a(' Das ausgewählte Display Theme "'+y(s.displayTheme.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),n(f,null,{default:o(()=>[a(' Einstellungen für Display Theme "'+y(s.displayTheme.name)+'" ',1)]),_:1}),(p(),_(N(u.getDisplayThemeComponent()),{"display-theme":s.displayTheme,"onUpdate:configuration":e[0]||(e[0]=h=>u.updateConfiguration(h))},null,40,["display-theme"]))],64)}const R=g(x,[["render",I],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeProxy.vue"]]),H={name:"OpenwbOptionalComponentsView",components:{OpenwbDisplayThemeProxy:R},mixins:[$],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/optional/led/active","ToDo/optional/led/instant_blocked","ToDo/optional/led/pv_blocked","ToDo/optional/led/scheduled_blocked","ToDo/optional/led/standby_blocked","ToDo/optional/led/stop_blocked","ToDo/optional/led/instant","ToDo/optional/led/pv","ToDo/optional/led/scheduled","ToDo/optional/led/standby","ToDo/optional/led/stop","openWB/optional/int_display/active","openWB/optional/int_display/on_if_plugged_in","openWB/optional/int_display/only_local_charge_points","openWB/optional/int_display/pin_active","openWB/optional/int_display/pin_code","openWB/optional/int_display/rotation","openWB/optional/int_display/standby","openWB/optional/int_display/theme","openWB/optional/rfid/active","openWB/system/configurable/display_themes"]}},computed:{displayThemeList(){return this.$store.state.mqtt["openWB/system/configurable/display_themes"]},displayThemeGroupList(){var e;let t=[{label:"openWB",options:[]},{label:"Community",options:[]}];return(e=this.displayThemeList)==null||e.forEach(s=>{s.official===!0?t[0].options.push(s):t[1].options.push(s)}),t}},methods:{getDisplayThemeDefaults(t){const e=this.displayThemeList.find(s=>s.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for display theme type!",t),{})},updateSelectedDisplayTheme(t){this.updateState("openWB/optional/int_display/theme",this.getDisplayThemeDefaults(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},J={class:"optionalComponents"},G={name:"optionalComponentsForm"},K={key:0},Z={key:1},Q={key:2},X={key:0};function Y(t,e,s,v,w,u){const r=l("openwb-base-button-group-input"),b=l("openwb-base-heading"),f=l("openwb-base-range-input"),h=l("openwb-base-alert"),D=l("openwb-base-select-input"),B=l("openwb-display-theme-proxy"),W=l("openwb-base-card"),k=l("openwb-base-submit-buttons");return p(),d("div",J,[m("form",G,[n(W,{title:"Display (intern oder extern)"},{default:o(()=>[n(r,{title:"Integriertes Display","model-value":t.$store.state.mqtt["openWB/optional/int_display/active"],buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateState("openWB/optional/int_display/active",i))},{help:o(()=>[...e[9]||(e[9]=[a(' Je nach Bestellung kann die openWB mit oder ohne Display geliefert worden sein. Auch die Variante "Standalone" bietet beide Optionen. Bitte prüfe zuerst die Hardwareausstattung deiner openWB (z.B. Lieferschein). ',-1)])]),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/optional/int_display/active"]==!0?(p(),d("div",K,[n(r,{title:"Orientierung","model-value":t.$store.state.mqtt["openWB/optional/int_display/rotation"],buttons:[{buttonValue:0,text:"0°"},{buttonValue:90,text:"90°"},{buttonValue:180,text:"180°"},{buttonValue:270,text:"270°"}],"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateState("openWB/optional/int_display/rotation",i))},{help:o(()=>[...e[10]||(e[10]=[a(" Mit dieser Einstellung kann das Display im Uhrzeigersinn gedreht werden, falls erforderlich. Nach einer Änderung ist ein Neustart erforderlich!",-1),m("br",null,null,-1),a(" Diese Einstellung erfordert ein Raspberry Pi Display. Für eine openWB series2 mit integriertem Display muss 0° ausgewählt werden, für eine Standalone mit Display 180°. Anzeigen, welche über HDMI angeschlossen sind, werden nicht unterstützt. ",-1)])]),_:1},8,["model-value"]),e[13]||(e[13]=m("hr",null,null,-1)),n(b,null,{default:o(()=>[...e[11]||(e[11]=[a(" Display Standby ",-1)])]),_:1}),n(f,{title:"Ausschaltzeit",min:0,max:12,step:1,"model-value":t.$store.state.mqtt["openWB/optional/int_display/standby"],unit:"Sek",labels:[{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:30,value:30},{label:45,value:45},{label:"1 Min",value:60},{label:"1,5 Min",value:90},{label:"2 Min",value:120},{label:"3 Min",value:180},{label:"4 Min",value:240},{label:"5 Min",value:300},{label:"10 Min",value:600},{label:"Immer an",value:0}],"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateState("openWB/optional/int_display/standby",i))},{help:o(()=>[...e[12]||(e[12]=[a(" Hier kann eine Zeitspanne angegeben werden, nach der das Display ausgeschaltet wird. ",-1)])]),_:1},8,["model-value"])])):c("",!0),t.$store.state.mqtt["openWB/general/extern"]===!0?(p(),d("div",Z,[e[15]||(e[15]=m("hr",null,null,-1)),n(h,{subtype:"info"},{default:o(()=>[...e[14]||(e[14]=[a(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(p(),d("div",Q,[e[18]||(e[18]=m("hr",null,null,-1)),n(r,{title:"Ladepunkte auf secondary openWB","model-value":t.$store.state.mqtt["openWB/optional/int_display/only_local_charge_points"],buttons:[{buttonValue:!1,text:"Alle",class:"btn-outline-danger"},{buttonValue:!0,text:"Nur Lokale",class:"btn-outline-success"}],"onUpdate:modelValue":e[3]||(e[3]=i=>t.updateState("openWB/optional/int_display/only_local_charge_points",i))},{help:o(()=>[...e[16]||(e[16]=[a(" Hiermit kann festgelegt werden, ob an angebundenen secondary openWB alle oder nur die jeweils lokalen Ladepunkte angezeigt werden sollen. ",-1)])]),_:1},8,["model-value"]),e[19]||(e[19]=m("hr",null,null,-1)),t.$store.state.mqtt["openWB/optional/int_display/theme"]!==void 0?(p(),d("div",X,[n(D,{class:"mb-2",title:"Theme des Displays",groups:u.displayThemeGroupList,"model-value":t.$store.state.mqtt["openWB/optional/int_display/theme"].type,"onUpdate:modelValue":e[4]||(e[4]=i=>u.updateSelectedDisplayTheme(i))},{help:o(()=>[...e[17]||(e[17]=[a(" Hier können unterschiedliche Display-Anzeigen, s.g. Themes, ausgewählt werden. Die Anzahl der Themes wird sich mit zukünftigen Releases erhöhen. ",-1)])]),_:1},8,["groups","model-value"]),t.$store.state.mqtt["openWB/optional/int_display/theme"].type?(p(),_(B,{key:0,"display-theme":t.$store.state.mqtt["openWB/optional/int_display/theme"],"onUpdate:configuration":e[5]||(e[5]=i=>u.updateConfiguration("openWB/optional/int_display/theme",i))},null,8,["display-theme"])):c("",!0)])):c("",!0)]))]),_:1}),n(k,{"form-name":"optionalComponentsForm",onSave:e[6]||(e[6]=i=>t.$emit("save")),onReset:e[7]||(e[7]=i=>t.$emit("reset")),onDefaults:e[8]||(e[8]=i=>t.$emit("defaults"))})])])}const ee=g(H,[["render",Y],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/OptionalComponents.vue"]]),ae=Object.freeze(Object.defineProperty({__proto__:null,default:ee},Symbol.toStringTag,{value:"Module"}));export{j as D,ae as O}; diff --git a/web/settings/assets/OptionalComponents-a2c47c92.js b/web/settings/assets/OptionalComponents-a2c47c92.js deleted file mode 100644 index f6b499fae5..0000000000 --- a/web/settings/assets/OptionalComponents-a2c47c92.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as T,C as $}from"./index-8dd8e083.js";import{_ as C}from"./dynamic-import-helper-be004503.js";import{l as O,a6 as S,a7 as V,F as E}from"./vendor-fortawesome-a02b6813.js";import{_ as g,u as l,l as p,m as d,x as f,E as o,B as a,F as y,G as n,A as m,a2 as q,a3 as N,N as z,z as c}from"./vendor-25d394b4.js";const M={props:{displayTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},j=g(M,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/DisplayThemeConfigMixin.vue"]]),A={name:"DisplayThemeFallback",mixins:[j]},F={class:"display-theme-fallback"},L={key:1};function P(t,e,s,v,w,u){const r=l("openwb-base-alert"),b=l("openwb-base-textarea");return p(),d("div",F,[Object.keys(t.displayTheme.configuration).length==0?(p(),f(r,{key:0,subtype:"info"},{default:o(()=>[a(' Das Display-Theme "'+y(t.displayTheme.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(p(),d("div",L,[n(r,{subtype:"warning"},{default:o(()=>[a(' Es wurde keine Konfigurationsseite für das Display-Theme "'+y(t.displayTheme.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(b,{title:"Konfiguration",subtype:"json","model-value":t.displayTheme.configuration,"onUpdate:modelValue":e[0]||(e[0]=_=>t.updateConfiguration(_,"configuration"))},{help:o(()=>e[1]||(e[1]=[a(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),n(r,{subtype:"info"},{default:o(()=>[m("pre",null,y(JSON.stringify(t.displayTheme.configuration,void 0,2)),1)]),_:1})]))])}const U=g(A,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeFallback.vue"]]);O.add(S,V);const x={name:"OpenwbDisplayThemeProxy",components:{FontAwesomeIcon:E},props:{displayTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{getDisplayThemeComponent(){return console.debug(`loading display theme: ${this.displayTheme.type}`),q({loader:()=>C(Object.assign({"./cards/displayTheme.vue":()=>T(()=>import("./displayTheme-717a89a9.js"),["assets/displayTheme-717a89a9.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-8dd8e083.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./colors/displayTheme.vue":()=>T(()=>import("./displayTheme-cf89ddcd.js"),["assets/displayTheme-cf89ddcd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/index-8dd8e083.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.displayTheme.type}/displayTheme.vue`),errorComponent:U})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function I(t,e,s,v,w,u){const r=l("font-awesome-icon"),b=l("openwb-base-alert"),_=l("openwb-base-heading");return p(),d(z,null,[s.displayTheme.official?(p(),f(b,{key:0,subtype:"success"},{default:o(()=>[n(r,{icon:["fas","certificate"]}),a(' Das ausgewählte Display Theme "'+y(s.displayTheme.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(p(),f(b,{key:1,subtype:"info"},{default:o(()=>[n(r,{icon:["fas","people-group"]}),a(' Das ausgewählte Display Theme "'+y(s.displayTheme.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),n(_,null,{default:o(()=>[a(' Einstellungen für Display Theme "'+y(s.displayTheme.name)+'" ',1)]),_:1}),(p(),f(N(u.getDisplayThemeComponent()),{"display-theme":s.displayTheme,"onUpdate:configuration":e[0]||(e[0]=h=>u.updateConfiguration(h))},null,40,["display-theme"]))],64)}const R=g(x,[["render",I],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeProxy.vue"]]),H={name:"OpenwbOptionalComponentsView",components:{OpenwbDisplayThemeProxy:R},mixins:[$],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/optional/led/active","ToDo/optional/led/instant_blocked","ToDo/optional/led/pv_blocked","ToDo/optional/led/scheduled_blocked","ToDo/optional/led/standby_blocked","ToDo/optional/led/stop_blocked","ToDo/optional/led/instant","ToDo/optional/led/pv","ToDo/optional/led/scheduled","ToDo/optional/led/standby","ToDo/optional/led/stop","openWB/optional/int_display/active","openWB/optional/int_display/on_if_plugged_in","openWB/optional/int_display/only_local_charge_points","openWB/optional/int_display/pin_active","openWB/optional/int_display/pin_code","openWB/optional/int_display/rotation","openWB/optional/int_display/standby","openWB/optional/int_display/theme","openWB/optional/rfid/active","openWB/system/configurable/display_themes"]}},computed:{displayThemeList(){return this.$store.state.mqtt["openWB/system/configurable/display_themes"]},displayThemeGroupList(){var e;let t=[{label:"openWB",options:[]},{label:"Community",options:[]}];return(e=this.displayThemeList)==null||e.forEach(s=>{s.official===!0?t[0].options.push(s):t[1].options.push(s)}),t}},methods:{getDisplayThemeDefaults(t){const e=this.displayThemeList.find(s=>s.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for display theme type!",t),{})},updateSelectedDisplayTheme(t){this.updateState("openWB/optional/int_display/theme",this.getDisplayThemeDefaults(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},J={class:"optionalComponents"},G={name:"optionalComponentsForm"},K={key:0},Z={key:1},Q={key:2},X={key:0};function Y(t,e,s,v,w,u){const r=l("openwb-base-button-group-input"),b=l("openwb-base-heading"),_=l("openwb-base-range-input"),h=l("openwb-base-alert"),D=l("openwb-base-select-input"),B=l("openwb-display-theme-proxy"),W=l("openwb-base-card"),k=l("openwb-base-submit-buttons");return p(),d("div",J,[m("form",G,[n(W,{title:"Display (intern oder extern)"},{default:o(()=>[n(r,{title:"Integriertes Display","model-value":t.$store.state.mqtt["openWB/optional/int_display/active"],buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateState("openWB/optional/int_display/active",i))},{help:o(()=>e[9]||(e[9]=[a(' Je nach Bestellung kann die openWB mit oder ohne Display geliefert worden sein. Auch die Variante "Standalone" bietet beide Optionen. Bitte prüfe zuerst die Hardwareausstattung deiner openWB (z.B. Lieferschein). ',-1)])),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/optional/int_display/active"]==!0?(p(),d("div",K,[n(r,{title:"Orientierung","model-value":t.$store.state.mqtt["openWB/optional/int_display/rotation"],buttons:[{buttonValue:0,text:"0°"},{buttonValue:90,text:"90°"},{buttonValue:180,text:"180°"},{buttonValue:270,text:"270°"}],"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateState("openWB/optional/int_display/rotation",i))},{help:o(()=>e[10]||(e[10]=[a(" Mit dieser Einstellung kann das Display im Uhrzeigersinn gedreht werden, falls erforderlich. Nach einer Änderung ist ein Neustart erforderlich!",-1),m("br",null,null,-1),a(" Diese Einstellung erfordert ein Raspberry Pi Display. Für eine openWB series2 mit integriertem Display muss 0° ausgewählt werden, für eine Standalone mit Display 180°. Anzeigen, welche über HDMI angeschlossen sind, werden nicht unterstützt. ",-1)])),_:1},8,["model-value"]),e[13]||(e[13]=m("hr",null,null,-1)),n(b,null,{default:o(()=>e[11]||(e[11]=[a(" Display Standby ",-1)])),_:1,__:[11]}),n(_,{title:"Ausschaltzeit",min:0,max:12,step:1,"model-value":t.$store.state.mqtt["openWB/optional/int_display/standby"],unit:"Sek",labels:[{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:30,value:30},{label:45,value:45},{label:"1 Min",value:60},{label:"1,5 Min",value:90},{label:"2 Min",value:120},{label:"3 Min",value:180},{label:"4 Min",value:240},{label:"5 Min",value:300},{label:"10 Min",value:600},{label:"Immer an",value:0}],"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateState("openWB/optional/int_display/standby",i))},{help:o(()=>e[12]||(e[12]=[a(" Hier kann eine Zeitspanne angegeben werden, nach der das Display ausgeschaltet wird. ",-1)])),_:1},8,["model-value"])])):c("",!0),t.$store.state.mqtt["openWB/general/extern"]===!0?(p(),d("div",Z,[e[15]||(e[15]=m("hr",null,null,-1)),n(h,{subtype:"info"},{default:o(()=>e[14]||(e[14]=[a(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[14]})])):(p(),d("div",Q,[e[18]||(e[18]=m("hr",null,null,-1)),n(r,{title:"Ladepunkte auf secondary openWB","model-value":t.$store.state.mqtt["openWB/optional/int_display/only_local_charge_points"],buttons:[{buttonValue:!1,text:"Alle",class:"btn-outline-danger"},{buttonValue:!0,text:"Nur Lokale",class:"btn-outline-success"}],"onUpdate:modelValue":e[3]||(e[3]=i=>t.updateState("openWB/optional/int_display/only_local_charge_points",i))},{help:o(()=>e[16]||(e[16]=[a(" Hiermit kann festgelegt werden, ob an angebundenen secondary openWB alle oder nur die jeweils lokalen Ladepunkte angezeigt werden sollen. ",-1)])),_:1},8,["model-value"]),e[19]||(e[19]=m("hr",null,null,-1)),t.$store.state.mqtt["openWB/optional/int_display/theme"]!==void 0?(p(),d("div",X,[n(D,{class:"mb-2",title:"Theme des Displays",groups:u.displayThemeGroupList,"model-value":t.$store.state.mqtt["openWB/optional/int_display/theme"].type,"onUpdate:modelValue":e[4]||(e[4]=i=>u.updateSelectedDisplayTheme(i))},{help:o(()=>e[17]||(e[17]=[a(" Hier können unterschiedliche Display-Anzeigen, s.g. Themes, ausgewählt werden. Die Anzahl der Themes wird sich mit zukünftigen Releases erhöhen. ",-1)])),_:1},8,["groups","model-value"]),t.$store.state.mqtt["openWB/optional/int_display/theme"].type?(p(),f(B,{key:0,"display-theme":t.$store.state.mqtt["openWB/optional/int_display/theme"],"onUpdate:configuration":e[5]||(e[5]=i=>u.updateConfiguration("openWB/optional/int_display/theme",i))},null,8,["display-theme"])):c("",!0)])):c("",!0)]))]),_:1}),n(k,{"form-name":"optionalComponentsForm",onSave:e[6]||(e[6]=i=>t.$emit("save")),onReset:e[7]||(e[7]=i=>t.$emit("reset")),onDefaults:e[8]||(e[8]=i=>t.$emit("defaults"))})])])}const ee=g(H,[["render",Y],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/OptionalComponents.vue"]]),ae=Object.freeze(Object.defineProperty({__proto__:null,default:ee},Symbol.toStringTag,{value:"Module"}));export{j as D,ae as O}; diff --git a/web/settings/assets/PVChargeConfig-b6b84699.js b/web/settings/assets/PVChargeConfig-b6b84699.js deleted file mode 100644 index 1f62562507..0000000000 --- a/web/settings/assets/PVChargeConfig-b6b84699.js +++ /dev/null @@ -1 +0,0 @@ -import{C as S}from"./index-8dd8e083.js";import{l as B,_ as z,a8 as V,a9 as k,F as y}from"./vendor-fortawesome-a02b6813.js";import{_ as E,u as d,l as g,m as p,A as o,G as i,E as a,B as t,F as C,x as v,z as b}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";B.add(z,V,k);const q={name:"OpenwbPVChargeConfigView",components:{FontAwesomeIcon:y},mixins:[S],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/chargemode_config/pv_charging/control_range","openWB/general/chargemode_config/pv_charging/feed_in_yield","openWB/general/chargemode_config/pv_charging/switch_on_threshold","openWB/general/chargemode_config/pv_charging/switch_on_delay","openWB/general/chargemode_config/pv_charging/switch_off_threshold","openWB/general/chargemode_config/pv_charging/switch_off_delay","openWB/general/chargemode_config/pv_charging/phases_to_use","openWB/general/chargemode_config/pv_charging/bat_mode","openWB/general/chargemode_config/pv_charging/bat_power_reserve","openWB/general/chargemode_config/pv_charging/bat_power_reserve_active","openWB/general/chargemode_config/pv_charging/bat_power_discharge","openWB/general/chargemode_config/pv_charging/bat_power_discharge_active","openWB/general/chargemode_config/pv_charging/min_bat_soc"],calculatedControlMode:void 0}},computed:{controlMode:{get(){if(this.calculatedControlMode!==void 0)return this.calculatedControlMode;const n="openWB/general/chargemode_config/pv_charging/control_range";let e=this.$store.state.mqtt[n];var u="individual";return typeof e<"u"&&(e[0]===-230&&e[1]===0?u="export":e[0]===0&&e[1]===230?u="import":e[0]===-115&&e[1]===115?u="balanced":u="individual"),u},set(n){const e="openWB/general/chargemode_config/pv_charging/control_range";switch(this.calculatedControlMode=n,n){case"export":this.updateState(e,[-230,0]);break;case"import":this.updateState(e,[0,230]);break;case"balanced":this.updateState(e,[-115,115]);break}}},chargingSwitchRange:{get(){return this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_threshold"]+this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]}},batMode:{get(){return this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_mode"]},set(n){this.updateState("openWB/general/chargemode_config/pv_charging/bat_mode",n)}}},watch:{controlMode(n){this.calculatedControlMode=n}}},M={class:"pvChargeConfig"},L={name:"pvChargeConfigForm"},P={key:0},U={key:1},R={key:0},$={key:1},A={key:0};function F(n,e,u,D,N,s){const m=d("openwb-base-alert"),c=d("openwb-base-button-group-input"),l=d("openwb-base-number-input"),f=d("openwb-base-card"),h=d("font-awesome-icon"),w=d("openwb-base-range-input"),_=d("openwb-base-heading"),W=d("openwb-base-submit-buttons");return g(),p("div",M,[o("form",L,[i(f,{title:"Regelparameter"},{default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(g(),p("div",P,[i(m,{subtype:"info"},{default:a(()=>e[17]||(e[17]=[t(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[17]})])):(g(),p("div",U,[i(c,{modelValue:s.controlMode,"onUpdate:modelValue":e[0]||(e[0]=r=>s.controlMode=r),title:"Regelmodus",buttons:[{buttonValue:"export",text:"Einspeisung"},{buttonValue:"import",text:"Bezug"},{buttonValue:"balanced",text:"Ausgewogen"},{buttonValue:"individual",text:"Individuell"}]},{help:a(()=>e[18]||(e[18]=[t(" Die Ladeleistung kann nicht mit absoluter Genauigkeit eingestellt werden, sodass am EVU-Punkt nicht auf exakt 0W geregelt werden kann. Der Regelmodus legt fest, ob diese Differenz am EVU-Punkt (ca. 200-300W) zu geringem Netzbezug oder geringer Netzeinspeisung führen soll. Liegt die Leistung am EVU-Punkt innerhalb des Regelbereichs, wird nicht nachgeregelt.",-1),o("br",null,null,-1),t(" Bei Speichervorrang erzeugt die Regelung bei Bedarf unabhängig vom eingestellten Regelmodus Einspeisung, damit der Speicher seine Ladeleistung erhöht.",-1),o("br",null,null,-1),t(" Achtung: bei unlogischen Einstellungen kann die Regelung gestört werden! Im Zweifel bitte unsere vordefinierten Modi verwenden. ",-1)])),_:1},8,["modelValue"]),i(l,{disabled:s.controlMode!=="individual",readonly:s.controlMode!=="individual",title:"Minimum",step:.005,unit:"kW",required:"","model-value":Array.isArray(n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"])?n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"][0]/1e3:void 0,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/control_range",r*1e3,"0"))},{help:a(()=>e[19]||(e[19]=[t(" Untere Grenze des Regelbereichs. ",-1)])),_:1},8,["disabled","readonly","model-value"]),i(l,{disabled:s.controlMode!=="individual",readonly:s.controlMode!=="individual",title:"Maximum",step:.005,unit:"kW",required:"","model-value":Array.isArray(n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"])?n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"][1]/1e3:void 0,"onUpdate:modelValue":e[2]||(e[2]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/control_range",r*1e3,"1"))},{help:a(()=>e[20]||(e[20]=[t(" Obere Grenze des Regelbereichs. ",-1)])),_:1},8,["disabled","readonly","model-value"]),e[27]||(e[27]=o("hr",null,null,-1)),i(m,{subtype:s.chargingSwitchRange<1400?"danger":"info"},{default:a(()=>[t(" Die Differenzleistung zw. Ein- und Abschaltschwelle sollte mind. 1,4 kW (230V x 6A) betragen. (Konfiguriert: "+C((s.chargingSwitchRange/1e3).toLocaleString(void 0))+" kW) ",1)]),_:1},8,["subtype"]),i(l,{title:"Einschaltschwelle",min:0,step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_threshold"]/1e3,"onUpdate:modelValue":e[3]||(e[3]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_on_threshold",r*1e3))},{help:a(()=>e[21]||(e[21]=[t(" Wird der Regelbereich in Richtung Einspeisung um diese Leistung überschritten, so wird der Ladevorgang gestartet.",-1),o("br",null,null,-1),t(" Dieser Wert wird pro Phase genutzt und ist daher immer für eine Phase anzugeben. ",-1)])),_:1},8,["model-value"]),i(l,{title:"Wartezeit Ladestart & Phasenzuschaltung",min:0,step:1,unit:"s",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_delay"],"onUpdate:modelValue":e[4]||(e[4]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_on_delay",r))},{help:a(()=>e[22]||(e[22]=[t(" Die Einschaltschwelle muss für die hier angegebene Zeit dauerhaft überschritten werden, bevor ein Ladevorgang gestartet wird.",-1),o("br",null,null,-1),t(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird weiter geladen, wenn die Abschaltschwelle nicht unterschritten wird.",-1),o("br",null,null,-1),t(" Wenn die Pufferzeit zwischen zwei automatischen Phasenumschaltungen abgelaufen ist, wird die hier eingestellte Wartezeit abgewartet. Wenn die Pufferzeit zwischen zwei Umschaltungen noch nicht erreicht ist, wird die längere der beiden Zeiten abgewartet: entweder die verbleibende Pufferzeit oder die Wartezeit. ",-1)])),_:1},8,["model-value"]),e[28]||(e[28]=o("hr",null,null,-1)),i(m,{subtype:n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]/1e3>0?"danger":"info"},{default:a(()=>e[23]||(e[23]=[t(" Ist ein Speicher im System vorhanden, kann eine Abschaltschwelle größer Null zur Speicherentladung führen. (Siehe Fragezeichentext) ",-1)])),_:1,__:[23]},8,["subtype"]),i(l,{title:"Abschaltschwelle",step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]/1e3,"onUpdate:modelValue":e[5]||(e[5]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_off_threshold",r*1e3))},{help:a(()=>e[24]||(e[24]=[t(" Übersteigt der Netzbezug die Abschaltschwelle, wird die Ladung beendet. Eine Abschaltschwelle, die Netzbezug erlaubt, führt in einem System ohne steuerbaren Speicher zur Entladung des Speichers. Der Speicher wird dann auch über den eingestellten Mindest-SoC hinaus entladen (siehe Speicherbeachtung unten). ",-1)])),_:1},8,["model-value"]),i(l,{title:"Wartezeit Ladeende & Phasenreduktion",min:0,step:1,unit:"s",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_delay"],"onUpdate:modelValue":e[6]||(e[6]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_off_delay",r))},{help:a(()=>e[25]||(e[25]=[t(" Die Abschaltschwelle muss für die hier angegebene Zeit dauerhaft unterschritten werden, bevor ein Ladevorgang beendet wird.",-1),o("br",null,null,-1),t(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird die Ladung sofort beendet, wenn die Abschaltschwelle unterschritten wird.",-1),o("br",null,null,-1),t(" Wenn die Pufferzeit zwischen zwei automatischen Phasenumschaltungen abgelaufen ist, wird die hier eingestellte Wartezeit abgewartet. Wenn die Pufferzeit zwischen zwei Umschaltungen noch nicht erreicht ist, wird die längere der beiden Zeiten abgewartet: entweder die verbleibende Pufferzeit oder die Wartezeit. ",-1)])),_:1},8,["model-value"]),e[29]||(e[29]=o("hr",null,null,-1)),i(l,{title:"Regelpunkt Einspeisegrenze",min:0,step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/feed_in_yield"]/1e3,"onUpdate:modelValue":e[7]||(e[7]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/feed_in_yield",r*1e3))},{help:a(()=>e[26]||(e[26]=[t(" Ein Wert größer 0kW bewirkt, dass weniger PV-Leistung zum Laden benutzt wird.",-1),o("br",null,null,-1),t(" Die Nutzung dieser Option ergibt nur Sinn, wenn ein Wechselrichter mit separatem Smart-Meter am EVU-Punkt verbaut ist (nicht der originale Zähler des Versorgers!), welches eine dynamische Begrenzung der Einspeiseleistung am EVU-Punkt durch den PV-Wechselrichter bietet (bitte bei ev. Problemen immer vorab prüfen lassen).",-1),o("br",null,null,-1),t(' Ist eine Einspeiseleistungsreduzierung verbaut (in vielen älteren, privaten Einspeiseverträgen z.B. als 70% Regelung bekannt), wird mit Eingabe des Wertes "Regelpunkt Einspeisegrenze" ein eigenverbrauchsoptimiertes Fahrzeugladen mit PV-Überschussenergie möglich, die sonst abgeregelt werden würde (Nutzung der PV-Peaks).',-1),o("br",null,null,-1),t(' Wird in einem "Ladeprofil" die Option "Einspeisegrenze beachten" eingeschaltet, so wird der Regelpunkt auf diesen Wert verschoben und die Ladung startet erst, wenn der hinterlegte Wert "Regelpunkt Einspeisegrenze" überschritten wird.',-1),o("br",null,null,-1),t(" Zur optimalen Eigenverbrauchssteuerung sollte der Wert einige hundert Watt UNTER der im Wechselrichter hinterlegten EVU-Einspeiseleistungsgrenze liegen, damit openWB die Ladung freigibt, BEVOR der Wechselrichter begrenzt wird. ",-1)])),_:1},8,["model-value"])]))]),_:1}),i(f,{title:"Speicher-Beachtung"},{default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(g(),p("div",R,[i(m,{subtype:"info"},{default:a(()=>e[30]||(e[30]=[t(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[30]})])):(g(),p("div",$,[i(c,{modelValue:s.batMode,"onUpdate:modelValue":e[8]||(e[8]=r=>s.batMode=r),title:"Laden mit Überschuss",buttons:[{buttonValue:"ev_mode"},{buttonValue:"bat_mode"},{buttonValue:"min_soc_bat_mode"}]},{"label-ev_mode":a(()=>[i(h,{icon:["fas","car-side"]}),e[31]||(e[31]=t(" Fahrzeuge ",-1))]),"label-bat_mode":a(()=>[i(h,{icon:["fas","fa-car-battery"]}),e[32]||(e[32]=t(" Speicher ",-1))]),"label-min_soc_bat_mode":a(()=>[i(h,{icon:["fas","fa-battery-half"]}),e[33]||(e[33]=t(" Mindest-SoC des Speichers ",-1))]),help:a(()=>[e[40]||(e[40]=o("p",null,' Sofern ein Hausstromspeicher (im Folgenden "Speicher" genannt) im Energiesystem verbaut ist, kann dieser beim Fahrzeugladen mit berücksichtigt werden. Dies erfolgt passiv über die Berücksichtigung der Speicherleistungswerte und des Speicher-SoC. Eine aktive Speichersteuerung durch openWB ist aktuell mangels Speicherschnittstelle nicht möglich. ',-1)),o("p",null,[e[34]||(e[34]=t(' Bei Auswahl " ',-1)),i(h,{icon:["fas","car-side"]}),e[35]||(e[35]=t(' Fahrzeuge" wird der gesamte Überschuss in das EV geladen. Ist die maximale Ladeleistung der Fahrzeuge erreicht und es wird eingespeist, wird dieser Überschuss in den Speicher geladen. ',-1))]),o("p",null,[e[36]||(e[36]=t(' Bei Auswahl " ',-1)),i(h,{icon:["fas","fa-car-battery"]}),e[37]||(e[37]=t(' Speicher" wird der gesamte Überschuss in den Speicher geladen. Ist die maximale Ladeleistung des Speichers erreicht und es wird eingespeist, wird dieser Überschuss unter Beachtung der Einschaltschwelle in die Fahrzeuge geladen. ',-1))]),o("p",null,[e[38]||(e[38]=t(' Bei Auswahl " ',-1)),i(h,{icon:["fas","fa-battery-half"]}),e[39]||(e[39]=t(' Mindest-SoC des Speichers" wird der Überschuss bis zum Mindest-SoC in den Speicher geladen. Ist die maximale Ladeleistung des Speichers erreicht und es wird eingespeist, wird dieser Überschuss in die Fahrzeuge geladen. Wird der Mindest-SoC überschritten, wird der Überschuss ins Fahrzeug geladen. ',-1))])]),_:1},8,["modelValue"]),s.batMode==="min_soc_bat_mode"?(g(),p("div",A,[i(w,{title:"Mindest-SoC des Speichers",min:0,max:100,step:1,unit:"%",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"],"onUpdate:modelValue":e[9]||(e[9]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/min_bat_soc",r))},null,8,["model-value"]),i(_,null,{default:a(()=>e[41]||(e[41]=[t(" Speicher-SoC unterhalb Mindest-SoC ",-1)])),_:1,__:[41]}),i(c,{title:"Ladeleistung für Speicher reservieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"],"onUpdate:modelValue":e[10]||(e[10]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_reserve_active",r))},{help:a(()=>e[42]||(e[42]=[t(" ACHTUNG: Der hier eingestellte Wert darf die maximale Ladeleistung des Speichers nicht überschreiten.",-1),o("br",null,null,-1),t(" Wird der Mindest-SoC des Speichers nicht erreicht, wird der Speicher mit der hier eingestellten Leistung geladen. Mit dem verbleibenden Überschuss werden die Fahrzeuge geladen. ",-1)])),_:1},8,["model-value"]),n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"]?(g(),v(l,{key:0,title:"Reserve Ladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve"]/1e3,"onUpdate:modelValue":e[11]||(e[11]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_reserve",r*1e3))},null,8,["model-value"])):b("",!0),i(_,null,{default:a(()=>e[43]||(e[43]=[t(" Speicher-SoC oberhalb Mindest-SoC ",-1)])),_:1,__:[43]}),i(c,{title:"Entladung des Speichers erlauben",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"],"onUpdate:modelValue":e[12]||(e[12]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_discharge_active",r))},{help:a(()=>e[44]||(e[44]=[t(" Wird der Mindest-SoC überschritten, wird der Überschuss ins Fahrzeug geladen und der Speicher mit der hier eingestellten Leistung in die Fahrzeuge entladen. Die Entladeleistung des Speichers wird dem Überschuss zum Erreichen der Einschaltschwelle hinzugerechnet. ",-1)])),_:1},8,["model-value"]),n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"]?(g(),v(l,{key:1,title:"Erlaubte Entladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge"]/1e3,"onUpdate:modelValue":e[13]||(e[13]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_discharge",r*1e3))},null,8,["model-value"])):b("",!0)])):b("",!0)]))]),_:1}),i(W,{"form-name":"pvChargeConfigForm",onSave:e[14]||(e[14]=r=>n.$emit("save")),onReset:e[15]||(e[15]=r=>n.$emit("reset")),onDefaults:e[16]||(e[16]=r=>n.$emit("defaults"))})])])}const K=E(q,[["render",F],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/PVChargeConfig.vue"]]);export{K as default}; diff --git a/web/settings/assets/PVChargeConfig-db3a459e.js b/web/settings/assets/PVChargeConfig-db3a459e.js new file mode 100644 index 0000000000..4a6bdc5853 --- /dev/null +++ b/web/settings/assets/PVChargeConfig-db3a459e.js @@ -0,0 +1 @@ +import{C as S}from"./index-c94f8df4.js";import{l as B,_ as z,a8 as V,a9 as k,F as y}from"./vendor-fortawesome-fc4b3a41.js";import{_ as E,u as d,l as g,m as p,A as o,G as i,E as a,B as t,F as C,x as v,z as b}from"./vendor-50125810.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";B.add(z,V,k);const q={name:"OpenwbPVChargeConfigView",components:{FontAwesomeIcon:y},mixins:[S],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/chargemode_config/pv_charging/control_range","openWB/general/chargemode_config/pv_charging/feed_in_yield","openWB/general/chargemode_config/pv_charging/switch_on_threshold","openWB/general/chargemode_config/pv_charging/switch_on_delay","openWB/general/chargemode_config/pv_charging/switch_off_threshold","openWB/general/chargemode_config/pv_charging/switch_off_delay","openWB/general/chargemode_config/pv_charging/phases_to_use","openWB/general/chargemode_config/pv_charging/bat_mode","openWB/general/chargemode_config/pv_charging/bat_power_reserve","openWB/general/chargemode_config/pv_charging/bat_power_reserve_active","openWB/general/chargemode_config/pv_charging/bat_power_discharge","openWB/general/chargemode_config/pv_charging/bat_power_discharge_active","openWB/general/chargemode_config/pv_charging/min_bat_soc"],calculatedControlMode:void 0}},computed:{controlMode:{get(){if(this.calculatedControlMode!==void 0)return this.calculatedControlMode;const n="openWB/general/chargemode_config/pv_charging/control_range";let e=this.$store.state.mqtt[n];var u="individual";return typeof e<"u"&&(e[0]===-230&&e[1]===0?u="export":e[0]===0&&e[1]===230?u="import":e[0]===-115&&e[1]===115?u="balanced":u="individual"),u},set(n){const e="openWB/general/chargemode_config/pv_charging/control_range";switch(this.calculatedControlMode=n,n){case"export":this.updateState(e,[-230,0]);break;case"import":this.updateState(e,[0,230]);break;case"balanced":this.updateState(e,[-115,115]);break}}},chargingSwitchRange:{get(){return this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_threshold"]+this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]}},batMode:{get(){return this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_mode"]},set(n){this.updateState("openWB/general/chargemode_config/pv_charging/bat_mode",n)}}},watch:{controlMode(n){this.calculatedControlMode=n}}},M={class:"pvChargeConfig"},L={name:"pvChargeConfigForm"},P={key:0},U={key:1},R={key:0},$={key:1},A={key:0};function F(n,e,u,D,N,s){const m=d("openwb-base-alert"),c=d("openwb-base-button-group-input"),l=d("openwb-base-number-input"),f=d("openwb-base-card"),h=d("font-awesome-icon"),w=d("openwb-base-range-input"),_=d("openwb-base-heading"),W=d("openwb-base-submit-buttons");return g(),p("div",M,[o("form",L,[i(f,{title:"Regelparameter"},{default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(g(),p("div",P,[i(m,{subtype:"info"},{default:a(()=>[...e[17]||(e[17]=[t(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(g(),p("div",U,[i(c,{modelValue:s.controlMode,"onUpdate:modelValue":e[0]||(e[0]=r=>s.controlMode=r),title:"Regelmodus",buttons:[{buttonValue:"export",text:"Einspeisung"},{buttonValue:"import",text:"Bezug"},{buttonValue:"balanced",text:"Ausgewogen"},{buttonValue:"individual",text:"Individuell"}]},{help:a(()=>[...e[18]||(e[18]=[t(" Die Ladeleistung kann nicht mit absoluter Genauigkeit eingestellt werden, sodass am EVU-Punkt nicht auf exakt 0W geregelt werden kann. Der Regelmodus legt fest, ob diese Differenz am EVU-Punkt (ca. 200-300W) zu geringem Netzbezug oder geringer Netzeinspeisung führen soll. Liegt die Leistung am EVU-Punkt innerhalb des Regelbereichs, wird nicht nachgeregelt.",-1),o("br",null,null,-1),t(" Bei Speichervorrang erzeugt die Regelung bei Bedarf unabhängig vom eingestellten Regelmodus Einspeisung, damit der Speicher seine Ladeleistung erhöht.",-1),o("br",null,null,-1),t(" Achtung: bei unlogischen Einstellungen kann die Regelung gestört werden! Im Zweifel bitte unsere vordefinierten Modi verwenden. ",-1)])]),_:1},8,["modelValue"]),i(l,{disabled:s.controlMode!=="individual",readonly:s.controlMode!=="individual",title:"Minimum",step:.005,unit:"kW",required:"","model-value":Array.isArray(n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"])?n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"][0]/1e3:void 0,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/control_range",r*1e3,"0"))},{help:a(()=>[...e[19]||(e[19]=[t(" Untere Grenze des Regelbereichs. ",-1)])]),_:1},8,["disabled","readonly","model-value"]),i(l,{disabled:s.controlMode!=="individual",readonly:s.controlMode!=="individual",title:"Maximum",step:.005,unit:"kW",required:"","model-value":Array.isArray(n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"])?n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"][1]/1e3:void 0,"onUpdate:modelValue":e[2]||(e[2]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/control_range",r*1e3,"1"))},{help:a(()=>[...e[20]||(e[20]=[t(" Obere Grenze des Regelbereichs. ",-1)])]),_:1},8,["disabled","readonly","model-value"]),e[27]||(e[27]=o("hr",null,null,-1)),i(m,{subtype:s.chargingSwitchRange<1400?"danger":"info"},{default:a(()=>[t(" Die Differenzleistung zw. Ein- und Abschaltschwelle sollte mind. 1,4 kW (230V x 6A) betragen. (Konfiguriert: "+C((s.chargingSwitchRange/1e3).toLocaleString(void 0))+" kW) ",1)]),_:1},8,["subtype"]),i(l,{title:"Einschaltschwelle",min:0,step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_threshold"]/1e3,"onUpdate:modelValue":e[3]||(e[3]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_on_threshold",r*1e3))},{help:a(()=>[...e[21]||(e[21]=[t(" Wird der Regelbereich in Richtung Einspeisung um diese Leistung überschritten, so wird der Ladevorgang gestartet.",-1),o("br",null,null,-1),t(" Dieser Wert wird pro Phase genutzt und ist daher immer für eine Phase anzugeben. ",-1)])]),_:1},8,["model-value"]),i(l,{title:"Wartezeit Ladestart & Phasenzuschaltung",min:0,step:1,unit:"s",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_delay"],"onUpdate:modelValue":e[4]||(e[4]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_on_delay",r))},{help:a(()=>[...e[22]||(e[22]=[t(" Die Einschaltschwelle muss für die hier angegebene Zeit dauerhaft überschritten werden, bevor ein Ladevorgang gestartet wird.",-1),o("br",null,null,-1),t(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird weiter geladen, wenn die Abschaltschwelle nicht unterschritten wird.",-1),o("br",null,null,-1),t(" Wenn die Pufferzeit zwischen zwei automatischen Phasenumschaltungen abgelaufen ist, wird die hier eingestellte Wartezeit abgewartet. Wenn die Pufferzeit zwischen zwei Umschaltungen noch nicht erreicht ist, wird die längere der beiden Zeiten abgewartet: entweder die verbleibende Pufferzeit oder die Wartezeit. ",-1)])]),_:1},8,["model-value"]),e[28]||(e[28]=o("hr",null,null,-1)),i(m,{subtype:n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]/1e3>0?"danger":"info"},{default:a(()=>[...e[23]||(e[23]=[t(" Ist ein Speicher im System vorhanden, kann eine Abschaltschwelle größer Null zur Speicherentladung führen. (Siehe Fragezeichentext) ",-1)])]),_:1},8,["subtype"]),i(l,{title:"Abschaltschwelle",step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]/1e3,"onUpdate:modelValue":e[5]||(e[5]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_off_threshold",r*1e3))},{help:a(()=>[...e[24]||(e[24]=[t(" Übersteigt der Netzbezug die Abschaltschwelle, wird die Ladung beendet. Eine Abschaltschwelle, die Netzbezug erlaubt, führt in einem System ohne steuerbaren Speicher zur Entladung des Speichers. Der Speicher wird dann auch über den eingestellten Mindest-SoC hinaus entladen (siehe Speicherbeachtung unten). ",-1)])]),_:1},8,["model-value"]),i(l,{title:"Wartezeit Ladeende & Phasenreduktion",min:0,step:1,unit:"s",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_delay"],"onUpdate:modelValue":e[6]||(e[6]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_off_delay",r))},{help:a(()=>[...e[25]||(e[25]=[t(" Die Abschaltschwelle muss für die hier angegebene Zeit dauerhaft unterschritten werden, bevor ein Ladevorgang beendet wird.",-1),o("br",null,null,-1),t(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird die Ladung sofort beendet, wenn die Abschaltschwelle unterschritten wird.",-1),o("br",null,null,-1),t(" Wenn die Pufferzeit zwischen zwei automatischen Phasenumschaltungen abgelaufen ist, wird die hier eingestellte Wartezeit abgewartet. Wenn die Pufferzeit zwischen zwei Umschaltungen noch nicht erreicht ist, wird die längere der beiden Zeiten abgewartet: entweder die verbleibende Pufferzeit oder die Wartezeit. ",-1)])]),_:1},8,["model-value"]),e[29]||(e[29]=o("hr",null,null,-1)),i(l,{title:"Regelpunkt Einspeisegrenze",min:0,step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/feed_in_yield"]/1e3,"onUpdate:modelValue":e[7]||(e[7]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/feed_in_yield",r*1e3))},{help:a(()=>[...e[26]||(e[26]=[t(" Ein Wert größer 0kW bewirkt, dass weniger PV-Leistung zum Laden benutzt wird.",-1),o("br",null,null,-1),t(" Die Nutzung dieser Option ergibt nur Sinn, wenn ein Wechselrichter mit separatem Smart-Meter am EVU-Punkt verbaut ist (nicht der originale Zähler des Versorgers!), welches eine dynamische Begrenzung der Einspeiseleistung am EVU-Punkt durch den PV-Wechselrichter bietet (bitte bei ev. Problemen immer vorab prüfen lassen).",-1),o("br",null,null,-1),t(' Ist eine Einspeiseleistungsreduzierung verbaut (in vielen älteren, privaten Einspeiseverträgen z.B. als 70% Regelung bekannt), wird mit Eingabe des Wertes "Regelpunkt Einspeisegrenze" ein eigenverbrauchsoptimiertes Fahrzeugladen mit PV-Überschussenergie möglich, die sonst abgeregelt werden würde (Nutzung der PV-Peaks).',-1),o("br",null,null,-1),t(' Wird in einem "Ladeprofil" die Option "Einspeisegrenze beachten" eingeschaltet, so wird der Regelpunkt auf diesen Wert verschoben und die Ladung startet erst, wenn der hinterlegte Wert "Regelpunkt Einspeisegrenze" überschritten wird.',-1),o("br",null,null,-1),t(" Zur optimalen Eigenverbrauchssteuerung sollte der Wert einige hundert Watt UNTER der im Wechselrichter hinterlegten EVU-Einspeiseleistungsgrenze liegen, damit openWB die Ladung freigibt, BEVOR der Wechselrichter begrenzt wird. ",-1)])]),_:1},8,["model-value"])]))]),_:1}),i(f,{title:"Speicher-Beachtung"},{default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(g(),p("div",R,[i(m,{subtype:"info"},{default:a(()=>[...e[30]||(e[30]=[t(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(g(),p("div",$,[i(c,{modelValue:s.batMode,"onUpdate:modelValue":e[8]||(e[8]=r=>s.batMode=r),title:"Laden mit Überschuss",buttons:[{buttonValue:"ev_mode"},{buttonValue:"bat_mode"},{buttonValue:"min_soc_bat_mode"}]},{"label-ev_mode":a(()=>[i(h,{icon:["fas","car-side"]}),e[31]||(e[31]=t(" Fahrzeuge ",-1))]),"label-bat_mode":a(()=>[i(h,{icon:["fas","fa-car-battery"]}),e[32]||(e[32]=t(" Speicher ",-1))]),"label-min_soc_bat_mode":a(()=>[i(h,{icon:["fas","fa-battery-half"]}),e[33]||(e[33]=t(" Mindest-SoC des Speichers ",-1))]),help:a(()=>[e[40]||(e[40]=o("p",null,' Sofern ein Hausstromspeicher (im Folgenden "Speicher" genannt) im Energiesystem verbaut ist, kann dieser beim Fahrzeugladen mit berücksichtigt werden. Dies erfolgt passiv über die Berücksichtigung der Speicherleistungswerte und des Speicher-SoC. Eine aktive Speichersteuerung durch openWB ist aktuell mangels Speicherschnittstelle nicht möglich. ',-1)),o("p",null,[e[34]||(e[34]=t(' Bei Auswahl " ',-1)),i(h,{icon:["fas","car-side"]}),e[35]||(e[35]=t(' Fahrzeuge" wird der gesamte Überschuss in das EV geladen. Ist die maximale Ladeleistung der Fahrzeuge erreicht und es wird eingespeist, wird dieser Überschuss in den Speicher geladen. ',-1))]),o("p",null,[e[36]||(e[36]=t(' Bei Auswahl " ',-1)),i(h,{icon:["fas","fa-car-battery"]}),e[37]||(e[37]=t(' Speicher" wird der gesamte Überschuss in den Speicher geladen. Ist die maximale Ladeleistung des Speichers erreicht und es wird eingespeist, wird dieser Überschuss unter Beachtung der Einschaltschwelle in die Fahrzeuge geladen. ',-1))]),o("p",null,[e[38]||(e[38]=t(' Bei Auswahl " ',-1)),i(h,{icon:["fas","fa-battery-half"]}),e[39]||(e[39]=t(' Mindest-SoC des Speichers" wird der Überschuss bis zum Mindest-SoC in den Speicher geladen. Ist die maximale Ladeleistung des Speichers erreicht und es wird eingespeist, wird dieser Überschuss in die Fahrzeuge geladen. Wird der Mindest-SoC überschritten, wird der Überschuss ins Fahrzeug geladen. ',-1))])]),_:1},8,["modelValue"]),s.batMode==="min_soc_bat_mode"?(g(),p("div",A,[i(w,{title:"Mindest-SoC des Speichers",min:0,max:100,step:1,unit:"%",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"],"onUpdate:modelValue":e[9]||(e[9]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/min_bat_soc",r))},null,8,["model-value"]),i(_,null,{default:a(()=>[...e[41]||(e[41]=[t(" Speicher-SoC unterhalb Mindest-SoC ",-1)])]),_:1}),i(c,{title:"Ladeleistung für Speicher reservieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"],"onUpdate:modelValue":e[10]||(e[10]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_reserve_active",r))},{help:a(()=>[...e[42]||(e[42]=[t(" ACHTUNG: Der hier eingestellte Wert darf die maximale Ladeleistung des Speichers nicht überschreiten.",-1),o("br",null,null,-1),t(" Wird der Mindest-SoC des Speichers nicht erreicht, wird der Speicher mit der hier eingestellten Leistung geladen. Mit dem verbleibenden Überschuss werden die Fahrzeuge geladen. ",-1)])]),_:1},8,["model-value"]),n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"]?(g(),v(l,{key:0,title:"Reserve Ladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve"]/1e3,"onUpdate:modelValue":e[11]||(e[11]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_reserve",r*1e3))},null,8,["model-value"])):b("",!0),i(_,null,{default:a(()=>[...e[43]||(e[43]=[t(" Speicher-SoC oberhalb Mindest-SoC ",-1)])]),_:1}),i(c,{title:"Entladung des Speichers erlauben",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"],"onUpdate:modelValue":e[12]||(e[12]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_discharge_active",r))},{help:a(()=>[...e[44]||(e[44]=[t(" Wird der Mindest-SoC überschritten, wird der Überschuss ins Fahrzeug geladen und der Speicher mit der hier eingestellten Leistung in die Fahrzeuge entladen. Die Entladeleistung des Speichers wird dem Überschuss zum Erreichen der Einschaltschwelle hinzugerechnet. ",-1)])]),_:1},8,["model-value"]),n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"]?(g(),v(l,{key:1,title:"Erlaubte Entladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge"]/1e3,"onUpdate:modelValue":e[13]||(e[13]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_discharge",r*1e3))},null,8,["model-value"])):b("",!0)])):b("",!0)]))]),_:1}),i(W,{"form-name":"pvChargeConfigForm",onSave:e[14]||(e[14]=r=>n.$emit("save")),onReset:e[15]||(e[15]=r=>n.$emit("reset")),onDefaults:e[16]||(e[16]=r=>n.$emit("defaults"))})])])}const K=E(q,[["render",F],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/PVChargeConfig.vue"]]);export{K as default}; diff --git a/web/settings/assets/Status-76832ed9.js b/web/settings/assets/Status-76832ed9.js deleted file mode 100644 index f760e5a9c0..0000000000 --- a/web/settings/assets/Status-76832ed9.js +++ /dev/null @@ -1 +0,0 @@ -import{C as k}from"./index-8dd8e083.js";import{l as C,O as z,P as V,c as M,f as G,F as B,Q as A,R as Z,S as H,T as R,U as F,V as K,W as Q,X as U,Y as J,Z as P,_ as I,$ as X,n as Y,o as tt,p as et,q as st,a0 as ot,a1 as at}from"./vendor-fortawesome-a02b6813.js";import{_ as w,u as n,l as i,x as m,D as O,E as r,A as t,m as h,G as c,B as g,F as a,z as T,p as S,q as rt,M as x,N as W}from"./vendor-25d394b4.js";import{C as it,p as nt,a as ct,L as lt,b as dt,P as pt,c as ut,T as mt,i as gt,d as ht,e as _t}from"./vendor-chartjs-94a826eb.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./vendor-luxon-cc86f6dc.js";C.add(z,V,M,G);const bt={name:"StatusCard",components:{FontAwesomeIcon:B},props:{subtype:{type:String,required:!0},state:{type:Number,required:!1,default:0},stateMessage:{type:String,required:!1,default:void 0},componentId:{type:Number,required:!1,default:void 0}},computed:{stateClass(){switch(this.state){case 0:return"success";case 1:return"warning";case 2:return"danger";default:return"dark"}},stateIcon(){switch(this.state){case 0:return["fas","check-circle"];case 1:return["fas","exclamation-triangle"];case 2:return["fas","times-circle"];default:return["fas","question-circle"]}},stateLabel(){switch(this.state){case 0:return"OK";case 1:return"Warnung";case 2:return"Fehler";default:return"Unbekannt"}}}},ft={class:"container"},vt={class:"row justify-content-end"},yt={key:0,class:"col px-0"},Tt={style:{"white-space":"pre-wrap"}},wt={key:1,class:"col col-auto pr-0"},xt={class:"text-right"};function Wt(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-avatar"),p=n("openwb-base-alert"),q=n("openwb-base-card");return i(),m(q,{subtype:l.subtype,collapsible:!0,collapsed:!0},O({header:r(()=>[S(s.$slots,"header-left")]),actions:r(()=>[S(s.$slots,"header-right"),c(d,{class:rt(["ml-2",`bg-${e.stateClass}`]),title:e.stateLabel},{default:r(()=>[c(u,{icon:e.stateIcon},null,8,["icon"])]),_:1},8,["class","title"])]),default:r(()=>[S(s.$slots,"default")]),_:2},[l.componentId!==void 0||l.stateMessage?{name:"footer",fn:r(()=>[t("div",ft,[t("div",vt,[l.stateMessage?(i(),h("div",yt,[c(p,{subtype:e.stateClass},{default:r(()=>[c(u,{icon:e.stateIcon},null,8,["icon"]),o[0]||(o[0]=g(" Modulmeldung: ",-1)),t("span",Tt,a(l.stateMessage),1)]),_:1,__:[0]},8,["subtype"])])):T("",!0),l.componentId!==void 0?(i(),h("div",wt,[t("div",xt,"ID: "+a(l.componentId),1)])):T("",!0)])])]),key:"0"}:void 0]),1032,["subtype"])}const N=w(bt,[["render",Wt],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/StatusCard.vue"]]);C.add(A);const kt={name:"ChargePointSumCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/chargepoint/get/power","openWB/chargepoint/get/imported","openWB/chargepoint/get/exported","openWB/chargepoint/get/daily_imported","openWB/chargepoint/get/daily_exported"]}},computed:{baseTopic:{get(){return"openWB/chargepoint"}}}},Ct={class:"text-right"},Bt={class:"row"},Nt={class:"col text-right text-monospace"},qt={class:"row"},$t={class:"col-4 text-right text-monospace"},St={class:"col-4 text-right text-monospace"},At={class:"row"},Pt={class:"col-4 text-right text-monospace"},It={class:"col-4 text-right text-monospace"};function Ot(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"primary"},{"header-left":r(()=>[c(u,{icon:["fas","charging-station"]}),o[0]||(o[0]=g(" Alle Ladepunkte ",-1))]),"header-right":r(()=>[t("span",Ct,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1)]),default:r(()=>[c(d,{subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row py-2"},[t("div",{class:"col font-weight-bold"},"Ladevorgang"),t("div",{class:"col text-right"},"Leistung")],-1)),t("div",Bt,[t("div",Nt,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001)),1)])]),_:1,__:[1]}),c(d,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Zählerstände"},{default:r(()=>[o[4]||(o[4]=t("div",{class:"row justify-content-end"},[t("div",{class:"col-4 text-right"},"Geladen"),t("div",{class:"col-4 text-right"},"Entladen")],-1)),t("div",qt,[o[2]||(o[2]=t("div",{class:"col text-right"},"Heute",-1)),t("div",$t,a(s.formatNumberTopic(e.baseTopic+"/get/daily_imported",3,3,.001)+" kWh"),1),t("div",St,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001)+" kWh"),1)]),t("div",At,[o[3]||(o[3]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Pt,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001)+" kWh"),1),t("div",It,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001)+" kWh"),1)])]),_:1,__:[4]})]),_:1})}const Lt=w(kt,[["render",Ot],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ChargePointSumCard.vue"]]);C.add(A,Z,H,R,F,K,Q,U);const jt={name:"ChargePointCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{installedChargePointKey:{type:String,required:!0},installedChargePoint:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/chargepoint/${this.installedChargePoint.id}/get/+`,`openWB/chargepoint/${this.installedChargePoint.id}/get/connected_vehicle/info`,`openWB/chargepoint/${this.installedChargePoint.id}/set/+`,`openWB/internal_chargepoint/${this.installedChargePoint.id}/data/phases_to_use`]}},computed:{chargePointIndex:{get(){return this.installedChargePoint.id}},baseTopic:{get(){return"openWB/chargepoint/"+this.chargePointIndex}},chargingStatus:{get(){let s=this.$store.state.mqtt[this.baseTopic+"/get/plug_state"],o=this.$store.state.mqtt[this.baseTopic+"/get/charge_state"];return s==1&&o==1?{icon:["fas","plug-circle-bolt"],text:"Fahrzeug angesteckt, Ladevorgang aktiv"}:s==1?{icon:["fas","plug-circle-check"],text:"Fahrzeug angesteckt, kein Ladevorgang aktiv"}:{icon:["fas","plug-circle-minus"],text:"Kein Fahrzeug angesteckt"}}}}},Dt={class:"row py-2"},Et={class:"col text-right"},zt={style:{"white-space":"pre-wrap"}},Vt={class:"row"},Mt={class:"col text-right text-monospace"},Gt={class:"col text-right text-monospace"},Zt={class:"row"},Ht={key:0,class:"col text-right text-monospace"},Rt={key:1,class:"col text-right text-monospace"},Ft={class:"col text-right text-monospace"},Kt={class:"row"},Qt={class:"col-4 text-right text-monospace"},Ut={class:"col-4 text-right text-monospace"},Jt={class:"row"},Xt={class:"col-4 text-right text-monospace"},Yt={class:"col-4 text-right text-monospace"},te={class:"row"},ee={class:"col text-right text-monospace"},se={class:"col text-right text-monospace"},oe={class:"col text-right text-monospace"},ae={class:"row"},re={class:"col text-right text-monospace"},ie={class:"col text-right text-monospace"},ne={class:"col text-right text-monospace"},ce={class:"row"},le={class:"col text-right text-monospace"},de={class:"col text-right text-monospace"},pe={class:"col text-right text-monospace"},ue={class:"row"},me={class:"col text-right text-monospace"},ge={class:"col text-right text-monospace"},he={class:"col text-right text-monospace"},_e={class:"row"},be={class:"col text-center text-monospace"};function fe(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-alert"),p=n("openwb-base-card"),q=n("status-card");return i(),m(q,{subtype:"primary","component-id":e.chargePointIndex,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","charging-station"]}),g(" "+a(l.installedChargePoint.name),1)]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:r(()=>[c(p,{subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",Dt,[o[0]||(o[0]=t("div",{class:"col col-auto font-weight-bold"},"Status",-1)),t("div",Et,[c(u,{icon:e.chargingStatus.icon,title:e.chargingStatus.text},null,8,["icon","title"]),g(" "+a(e.chargingStatus.text),1)])]),c(d,{subtype:"info"},{default:r(()=>[o[1]||(o[1]=g(" Statusmeldung: ",-1)),t("span",zt,a(s.$store.state.mqtt[e.baseTopic+"/get/state_str"]),1)]),_:1,__:[1]}),t("div",null," max. Ladeleistung: "+a((s.max_power=s.formatNumberTopic(e.baseTopic+"/get/max_evse_current",0))=="-"?s.max_power:Math.floor(s.max_power*3*230/1e3))+" kW ",1)]),_:1}),c(p,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Ladevorgang"},{default:r(()=>[o[2]||(o[2]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Ladestrom Vorgabe"),t("div",{class:"col text-right"},"Leistung")],-1)),t("div",Vt,[t("div",Mt,a(s.formatNumberTopic(e.baseTopic+"/set/current",2))+" A",1),t("div",Gt,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1)]),o[3]||(o[3]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Phasen Vorgabe"),t("div",{class:"col text-right"},"Phasen Aktuell")],-1)),t("div",Zt,[s.$store.state.mqtt["openWB/general/extern"]===!0?(i(),h("div",Ht,a(s.formatNumberTopic("openWB/internal_chargepoint/"+e.chargePointIndex+"/data/phases_to_use")),1)):(i(),h("div",Rt,a(s.formatNumberTopic(e.baseTopic+"/set/phases_to_use")),1)),t("div",Ft,a(s.formatNumberTopic(e.baseTopic+"/get/phases_in_use")),1)])]),_:1,__:[2,3]}),c(p,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Zählerstände"},{default:r(()=>[o[6]||(o[6]=t("div",{class:"row justify-content-end"},[t("div",{class:"col-4 text-right"},"Geladen"),t("div",{class:"col-4 text-right"},"Entladen")],-1)),t("div",Kt,[o[4]||(o[4]=t("div",{class:"col text-right"},"Heute",-1)),t("div",Qt,a(s.formatNumberTopic(e.baseTopic+"/get/daily_imported",3,3,.001))+" kWh ",1),t("div",Ut,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1)]),t("div",Jt,[o[5]||(o[5]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Xt,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001))+" kWh ",1),t("div",Yt,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1,__:[6]}),c(p,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Werte pro Phase"},{default:r(()=>[t("div",te,[o[7]||(o[7]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Spannung [V]",-1)),t("div",ee,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[0]),1),t("div",se,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[1]),1),t("div",oe,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[2]),1)]),t("div",ae,[o[8]||(o[8]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Strom [A]",-1)),t("div",re,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[0]),1),t("div",ie,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[1]),1),t("div",ne,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[2]),1)]),t("div",ce,[o[9]||(o[9]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Wirkleistung [kW]",-1)),t("div",le,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[0]),1),t("div",de,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[1]),1),t("div",pe,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[2]),1)]),t("div",ue,[o[10]||(o[10]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Leistungsfaktor",-1)),t("div",me,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[0]),1),t("div",ge,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[1]),1),t("div",he,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[2]),1)]),t("div",_e,[o[11]||(o[11]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Netzfrequenz",-1)),t("div",be,a(s.formatNumberTopic(e.baseTopic+"/get/frequency",3))+" Hz ",1)])]),_:1})]),_:1},8,["component-id","state","state-message"])}const ve=w(jt,[["render",fe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ChargePointCard.vue"]]);C.add(J);const ye={name:"CounterCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{counter:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/counter/${this.counter.id}/get/+`]}},computed:{baseTopic:{get(){return"openWB/counter/"+this.counter.id}}}},Te={class:"row"},we={class:"col text-right text-monospace pl-0"},xe={class:"col text-right text-monospace pl-0"},We={class:"row"},ke={class:"col text-right text-monospace pl-0"},Ce={class:"col text-right text-monospace pl-0"},Be={class:"row"},Ne={class:"col"},qe={class:"row"},$e={class:"col text-right text-monospace pl-0"},Se={class:"col text-right text-monospace pl-0"},Ae={class:"col text-right text-monospace pl-0"},Pe={class:"row"},Ie={class:"col"},Oe={class:"row"},Le={class:"col text-right text-monospace pl-0"},je={class:"col text-right text-monospace pl-0"},De={class:"col text-right text-monospace pl-0"},Ee={class:"row"},ze={class:"col"},Ve={class:"row"},Me={class:"col text-right text-monospace pl-0"},Ge={class:"col text-right text-monospace pl-0"},Ze={class:"col text-right text-monospace pl-0"},He={class:"row"},Re={class:"col"},Fe={class:"row"},Ke={class:"col text-right text-monospace pl-0"},Qe={class:"col text-right text-monospace pl-0"},Ue={class:"col text-right text-monospace pl-0"};function Je(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"danger","component-id":l.counter.id,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","gauge-high"]}),g(" "+a(l.counter.name),1)]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Leistung"),t("div",{class:"col-6 text-right"},"Netzfrequenz")],-1)),t("div",Te,[t("div",we,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001)+" kW"),1),t("div",xe,a(s.formatNumberTopic(e.baseTopic+"/get/frequency",3)+" Hz"),1)])]),_:1,__:[0]}),c(d,{title:"Zählerstände",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Export"),t("div",{class:"col-6 text-right"},"Import")],-1)),t("div",We,[t("div",ke,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001)+" kWh"),1),t("div",Ce,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001)+" kWh"),1)])]),_:1,__:[1]}),c(d,{title:"Werte pro Phase",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",Be,[o[2]||(o[2]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Spannung [V]",-1)),t("div",Ne,[t("div",qe,[t("div",$e,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[0]),1),t("div",Se,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[1]),1),t("div",Ae,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[2]),1)])])]),t("div",Pe,[o[3]||(o[3]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Strom [A]",-1)),t("div",Ie,[t("div",Oe,[t("div",Le,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[0]),1),t("div",je,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[1]),1),t("div",De,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[2]),1)])])]),t("div",Ee,[o[4]||(o[4]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Wirkleistung [kW]",-1)),t("div",ze,[t("div",Ve,[t("div",Me,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[0]),1),t("div",Ge,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[1]),1),t("div",Ze,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[2]),1)])])]),t("div",He,[o[5]||(o[5]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Leistungsfaktor",-1)),t("div",Re,[t("div",Fe,[t("div",Ke,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[0]),1),t("div",Qe,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[1]),1),t("div",Ue,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[2]),1)])])])]),_:1})]),_:1},8,["component-id","state","state-message"])}const Xe=w(ye,[["render",Je],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/CounterCard.vue"]]);C.add(P);const Ye={name:"InverterSumCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/pv/get/+"]}},computed:{baseTopic:{get(){return"openWB/pv"}}}},ts={class:"row"},es={class:"col text-right text-monospace"},ss={class:"col text-right text-monospace"},os={class:"row"},as={class:"col text-right text-monospace"},rs={class:"col text-right text-monospace"},is={class:"col text-right text-monospace"};function ns(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"success",state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","solar-panel"]}),o[0]||(o[0]=g(" Alle Wechselrichter ",-1))]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Leistung"),t("div",{class:"col text-right"},"Zählerstand")],-1)),t("div",ts,[t("div",es,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",ss,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1,__:[1]}),c(d,{title:"Erträge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[2]||(o[2]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Heute"),t("div",{class:"col text-right"},"Monat"),t("div",{class:"col text-right"},"Jahr")],-1)),t("div",os,[t("div",as,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1),t("div",rs,a(s.formatNumberTopic(e.baseTopic+"/get/monthly_exported",1,1,.001))+" kWh ",1),t("div",is,a(s.formatNumberTopic(e.baseTopic+"/get/yearly_exported",0,0,.001))+" kWh ",1)])]),_:1,__:[2]})]),_:1},8,["state","state-message"])}const cs=w(Ye,[["render",ns],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/InverterSumCard.vue"]]);C.add(P);const ls={name:"InverterCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{inverter:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/pv/${this.inverter.id}/get/+`]}},computed:{baseTopic:{get(){return"openWB/pv/"+this.inverter.id}}}},ds={class:"row"},ps={class:"col text-right text-monospace"},us={class:"col text-right text-monospace"},ms={class:"row"},gs={class:"col text-right text-monospace"},hs={class:"col text-right text-monospace"},_s={class:"col text-right text-monospace"},bs={class:"row"},fs={class:"col"},vs={class:"row"},ys={class:"col text-right text-monospace pl-0"},Ts={class:"col text-right text-monospace pl-0"},ws={class:"col text-right text-monospace pl-0"};function xs(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"success","component-id":l.inverter.id,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","solar-panel"]}),g(" "+a(l.inverter.name),1)]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Leistung"),t("div",{class:"col text-right"},"Zählerstand")],-1)),t("div",ds,[t("div",ps,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",us,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1,__:[0]}),c(d,{title:"Erträge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Heute"),t("div",{class:"col text-right"},"Monat"),t("div",{class:"col text-right"},"Jahr")],-1)),t("div",ms,[t("div",gs,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1),t("div",hs,a(s.formatNumberTopic(e.baseTopic+"/get/monthly_exported",1,1,.001))+" kWh ",1),t("div",_s,a(s.formatNumberTopic(e.baseTopic+"/get/yearly_exported",0,0,.001))+" kWh ",1)])]),_:1,__:[1]}),c(d,{title:"Werte pro Phase",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",bs,[o[2]||(o[2]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Strom [A]",-1)),t("div",fs,[t("div",vs,[t("div",ys,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[0]),1),t("div",Ts,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[1]),1),t("div",ws,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[2]),1)])])])]),_:1})]),_:1},8,["component-id","state","state-message"])}const Ws=w(ls,[["render",xs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/InverterCard.vue"]]);C.add(I);const ks={name:"BatterySumCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/bat/get/+"]}},computed:{baseTopic:{get(){return"openWB/bat"}}}},Cs={class:"row"},Bs={class:"col text-right text-monospace pl-0"},Ns={class:"col text-right text-monospace pl-0"},qs={class:"row"},$s={class:"col text-right text-monospace"},Ss={class:"col text-right text-monospace"},As={class:"row"},Ps={class:"col text-right text-monospace"},Is={class:"col text-right text-monospace"};function Os(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"warning",state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","car-battery"]}),o[0]||(o[0]=g(" Alle Speicher ",-1))]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",1,1,.001))+" kW / "+a(s.$store.state.mqtt[e.baseTopic+"/get/soc"])+" % ",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Leistung"),t("div",{class:"col-6 text-right"},"Ladestand")],-1)),t("div",Cs,[t("div",Bs,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",Ns,a(s.$store.state.mqtt[e.baseTopic+"/get/soc"])+" %",1)])]),_:1,__:[1]}),c(d,{title:"Zählerstände",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[4]||(o[4]=t("div",{class:"row"},[t("div",{class:"col"}),t("div",{class:"col text-right"},"Geladen"),t("div",{class:"col text-right"},"Entladen")],-1)),t("div",qs,[o[2]||(o[2]=t("div",{class:"col text-right"},"Heute",-1)),t("div",$s,a(s.formatNumberTopic(e.baseTopic+"/get/daily_imported",3,3,.001))+" kWh ",1),t("div",Ss,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1)]),t("div",As,[o[3]||(o[3]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Ps,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001))+" kWh ",1),t("div",Is,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1,__:[4]})]),_:1},8,["state","state-message"])}const Ls=w(ks,[["render",Os],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/BatterySumCard.vue"]]);C.add(I);const js={name:"BatteryCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{battery:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/bat/${this.battery.id}/get/+`]}},computed:{baseTopic:{get(){return"openWB/bat/"+this.battery.id}}}},Ds={class:"row"},Es={class:"col text-right text-monospace pl-0"},zs={class:"col text-right text-monospace pl-0"},Vs={class:"row"},Ms={class:"col text-right text-monospace"},Gs={class:"col text-right text-monospace"},Zs={class:"row"},Hs={class:"col text-right text-monospace"},Rs={class:"col text-right text-monospace"},Fs={class:"row"},Ks={class:"col"},Qs={class:"row"},Us={class:"col text-right text-monospace pl-0"},Js={class:"col text-right text-monospace pl-0"},Xs={class:"col text-right text-monospace pl-0"};function Ys(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"warning","component-id":l.battery.id,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","car-battery"]}),g(" "+a(l.battery.name),1)]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",1,1,.001))+" kW / "+a(s.$store.state.mqtt[e.baseTopic+"/get/soc"])+" % ",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Leistung"),t("div",{class:"col-6 text-right"},"Ladestand")],-1)),t("div",Ds,[t("div",Es,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",zs,a(s.$store.state.mqtt[e.baseTopic+"/get/soc"])+" %",1)])]),_:1,__:[0]}),c(d,{title:"Zählerstände",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[3]||(o[3]=t("div",{class:"row"},[t("div",{class:"col"}),t("div",{class:"col text-right"},"Geladen"),t("div",{class:"col text-right"},"Entladen")],-1)),t("div",Vs,[o[1]||(o[1]=t("div",{class:"col text-right"},"Heute",-1)),t("div",Ms,a(s.formatNumberTopic(e.baseTopic+"/get/daily_imported",3,3,.001))+" kWh ",1),t("div",Gs,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1)]),t("div",Zs,[o[2]||(o[2]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Hs,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001))+" kWh ",1),t("div",Rs,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1,__:[3]}),c(d,{title:"Werte pro Phase",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",Fs,[o[4]||(o[4]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Strom [A]",-1)),t("div",Ks,[t("div",Qs,[t("div",Us,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[0]),1),t("div",Js,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[1]),1),t("div",Xs,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[2]),1)])])])]),_:1})]),_:1},8,["component-id","state","state-message"])}const to=w(js,[["render",Ys],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/BatteryCard.vue"]]);C.add(X,Y,tt,et,st);const eo={name:"IoDeviceCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{ioDevice:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/io/states/${this.ioDevice.id}/get/+`,"openWB/io/action/+/config","openWB/io/action/+/timestamp"],state:{true:{icon:["fas","square"],title:"Geschlossen",actionTitle:"Aktiv"},false:{icon:["far","square"],title:"Offen",actionTitle:"Inaktiv"}}}},computed:{baseTopic(){return`openWB/io/states/${this.ioDevice.id}`},hasDigitalInputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/digital_input`]||{}).length>0},hasDigitalOutputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/digital_output`]||{}).length>0},hasAnalogInputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/analog_input`]||{}).length>0},hasAnalogOutputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/analog_output`]||{}).length>0},digitalInputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/digital_input`]},digitalOutputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/digital_output`]},analogInputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/analog_input`]},analogOutputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/analog_output`]},ioActionConfigs(){return Object.fromEntries(Object.entries(this.getWildcardTopics("openWB/io/action/+/config")).filter(([,s])=>s.configuration.io_device===this.ioDevice.id))},ioActionState(){return s=>{const o=this.$store.state.mqtt[`openWB/io/action/${s}/timestamp`];return o&&new Date(o*1e3).toLocaleString()}}},methods:{getIcon(s){return this.state[s].icon},getTitle(s){return this.state[s].title},getActionTitle(s){return this.state[s].actionTitle}}},so={class:"col-auto"},oo={class:"col text-right"},ao={class:"row"},ro={class:"row"},io={class:"row"},no={class:"row"};function co(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-alert"),p=n("openwb-base-card"),q=n("status-card");return i(),m(q,{subtype:"secondary",state:s.$store.state.mqtt[`${e.baseTopic}/get/fault_state`],"state-message":s.$store.state.mqtt[`${e.baseTopic}/get/fault_str`],"component-id":l.ioDevice.id},{"header-left":r(()=>[c(u,{icon:["fas","tower-broadcast"]}),g(" "+a(l.ioDevice.name),1)]),default:r(()=>[c(p,{title:"Zugehörige Aktionen",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[Object.keys(e.ioActionConfigs).length===0?(i(),m(d,{key:0,subtype:"info",class:"mb-2"},{default:r(()=>o[0]||(o[0]=[g(" Es wurden noch keine Aktionen erstellt, welche dieses IO-Gerät als Signalquelle verwenden. ",-1)])),_:1,__:[0]})):(i(!0),h(W,{key:1},x(e.ioActionConfigs,(b,f)=>(i(),h("div",{key:f,class:"row"},[t("div",so,[c(u,{title:e.getActionTitle(![void 0,null].includes(e.ioActionState(b.id))),icon:e.getIcon(![void 0,null].includes(e.ioActionState(b.id))),class:"fa-fw"},null,8,["title","icon"]),g(" "+a(b.name),1)]),t("div",oo,a(e.ioActionState(b.id)),1)]))),128))]),_:1}),e.hasDigitalInputs?(i(),m(p,{key:0,title:"Digitale Eingänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",ao,[(i(!0),h(W,null,x(e.digitalInputStates,(b,f)=>(i(),h("div",{key:f,class:"col io-state"},[g(a(f)+": ",1),c(u,{title:e.getTitle(b),icon:e.getIcon(b),class:"fa-fw"},null,8,["title","icon"])]))),128))])]),_:1})):T("",!0),e.hasDigitalOutputs?(i(),m(p,{key:1,title:"Digitale Ausgänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",ro,[(i(!0),h(W,null,x(e.digitalOutputStates,(b,f)=>(i(),h("div",{key:f,class:"col io-state"},[g(a(f)+": ",1),c(u,{title:e.getActionTitle(b),icon:e.getIcon(b),class:"fa-fw"},null,8,["title","icon"])]))),128))])]),_:1})):T("",!0),e.hasAnalogInputs?(i(),m(p,{key:2,title:"Analoge Eingänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",io,[(i(!0),h(W,null,x(e.analogInputStates,(b,f)=>(i(),h("div",{key:f,class:"col io-state"},a(f)+": "+a(b),1))),128))])]),_:1})):T("",!0),e.hasAnalogOutputs?(i(),m(p,{key:3,title:"Analoge Ausgänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",no,[(i(!0),h(W,null,x(e.analogOutputStates,(b,f)=>(i(),h("div",{key:f,class:"col io-state"},a(f)+": "+a(b),1))),128))])]),_:1})):T("",!0)]),_:1},8,["state","state-message","component-id"])}const lo=w(eo,[["render",co],["__scopeId","data-v-356761d0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/IoDeviceCard.vue"]]);C.add(ot);const po={name:"VehicleCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{vehicleKey:{type:String,required:!0},vehicleName:{type:String,default:""}},data(){return{mqttTopicsToSubscribe:["openWB/vehicle/+/get/+"]}},computed:{vehicleIndex:{get(){return parseInt(this.vehicleKey.match(/(?:\/)(\d+)(?=\/)/)[1])}},soc:{get(){return this.formatNumberTopic(this.baseTopic+"/get/soc")}},socTimestamp:{get(){return this.$store.state.mqtt[this.baseTopic+"/get/soc_timestamp"]!==void 0?new Date(this.$store.state.mqtt[this.baseTopic+"/get/soc_timestamp"]*1e3).toLocaleString():"-"}},socRange:{get(){return this.$store.state.mqtt[this.baseTopic+"/get/range"]!==void 0?Math.round(this.$store.state.mqtt[this.baseTopic+"/get/range"]):0}},baseTopic:{get(){return"openWB/vehicle/"+this.vehicleIndex}}}},uo={class:"row"},mo={class:"col text-right text-monospace"},go={class:"col text-right text-monospace"},ho={class:"col text-right text-monospace"};function _o(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"info","component-id":e.vehicleIndex,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},O({"header-left":r(()=>[c(u,{icon:["fas","car"]}),g(" "+a(l.vehicleName),1)]),default:r(()=>[c(d,{title:"Fahrzeugdaten",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col pr-0 text-right"},"Ladestand"),t("div",{class:"col pr-0 text-right"},"Reichweite"),t("div",{class:"col pr-0 text-right"},"Letzter Zeitstempel")],-1)),t("div",uo,[t("div",mo,a(e.soc)+" %",1),t("div",go,a(e.socRange)+" km",1),t("div",ho,a(e.socTimestamp),1)])]),_:1,__:[0]})]),_:2},[e.soc!="-"?{name:"header-right",fn:r(()=>[g(a(e.soc)+" % ",1)]),key:"0"}:void 0]),1032,["component-id","state","state-message"])}const bo=w(po,[["render",_o],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/VehicleCard.vue"]]);C.add(at);it.register(nt,ct,lt,dt,pt,ut,mt,gt,ht);const fo={name:"ElectricityTariffCard",components:{StatusCard:N,FontAwesomeIcon:B,ChartjsLine:_t},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/optional/et/provider","openWB/optional/et/get/fault_state","openWB/optional/et/get/fault_str","openWB/optional/et/get/prices"],chartDatasets:{datasets:[{label:"Stromtarif",unit:"ct/kWh",type:"line",stepped:!0,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:void 0,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:"price"}}]},chartOptions:{plugins:{title:{display:!1},tooltip:{enabled:!0},legend:{display:!1}},elements:{point:{radius:2}},responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{x:{type:"time",time:{unit:"hour",text:"Zeit",maxTicksLimit:24},display:!0,title:{display:!0,text:"Uhrzeit"},ticks:{font:{size:12},maxTicksLimit:0},grid:{}},y:{position:"left",type:"linear",display:"auto",title:{font:{size:12},display:!0,text:"Preis [ct/kWh]"},grid:{},ticks:{font:{size:12},stepSize:.01,maxTicksLimit:11}}}}}},computed:{electricityTariffConfigured(){const s=this.$store.state.mqtt["openWB/optional/et/provider"];return s!==void 0?s.type!==null:!1},chartDataRead(){return this.chartDataObject.datasets[0].data!=null},chartDataObject(){if(this.$store.state.mqtt["openWB/optional/et/get/prices"]){var s=this.$store.state.mqtt["openWB/optional/et/get/prices"],o=[];for(const[y,e]of Object.entries(s))o.push({timestamp:y*1e3,price:e*1e5});const _=o.slice(-1)[0];o.push({timestamp:_.timestamp+(60*60-1)*1e3,price:_.price})}const l=this.chartDatasets;return l.datasets[0].data=o,l},currentPrice(){return this.chartDataObject.datasets[0].data===void 0||this.chartDataObject.datasets[0].data.length===0?this.formatNumber(0,2):this.formatNumber(this.chartDataObject.datasets[0].data[0].price||0,2)},baseTopic:{get(){return"openWB/optional/et"}}}},vo={class:"openwb-chart"};function yo(s,o,l,_,y,e){const u=n("font-awesome-icon"),d=n("chartjs-line"),p=n("openwb-base-card"),q=n("status-card");return e.electricityTariffConfigured?(i(),m(q,{key:0,subtype:"secondary",state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","ranking-star"]}),o[0]||(o[0]=g(" Variabler Stromtarif ",-1))]),"header-right":r(()=>[g(a(e.currentPrice)+" ct/kWh",1)]),default:r(()=>[c(p,{title:"Anbieter: "+s.$store.state.mqtt[e.baseTopic+"/provider"].name,subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",vo,[e.chartDataRead?(i(),m(d,{key:0,ref:"myChart",data:e.chartDataObject,options:y.chartOptions},null,8,["data","options"])):T("",!0)])]),_:1},8,["title"])]),_:1},8,["state","state-message"])):T("",!0)}const To=w(fo,[["render",yo],["__scopeId","data-v-f4769d2f"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ElectricityTariffCard.vue"]]);const wo={name:"OpenwbStatusView",components:{ChargePointSumCard:Lt,ChargePointCard:ve,CounterCard:Xe,InverterSumCard:cs,InverterCard:Ws,BatterySumCard:Ls,BatteryCard:to,IoDeviceCard:lo,VehicleCard:bo,ElectricityTariffCard:To},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/device/+/component/+/config","openWB/system/io/+/config","openWB/vehicle/+/name","openWB/chargepoint/+/config"]}},computed:{installedChargePoints:{get(){let s=this.getWildcardTopics("openWB/chargepoint/+/config"),o={};for(const[l,_]of Object.entries(s))(_.type==="internal_openwb"||this.$store.state.mqtt["openWB/general/extern"]===!1)&&(o[l]=_);return o}},numChargePointsInstalled:{get(){return Object.keys(this.installedChargePoints).length}},counterConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"counter")}},ioDeviceConfigs:{get(){return this.getWildcardTopics("openWB/system/io/+/config")}},numInvertersInstalled:{get(){return Object.keys(this.inverterConfigs).length}},inverterConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"inverter")}},numBatteriesInstalled:{get(){return Object.keys(this.batteryConfigs).length}},batteryConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"bat")}},vehicleNames:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.getWildcardTopics("openWB/vehicle/+/name")}}},methods:{filterComponentsByType(s,o){return Object.keys(s).filter(l=>s[l].type.includes(o)).reduce((l,_)=>({...l,[_]:s[_]}),{})}}},xo={class:"status"};function Wo(s,o,l,_,y,e){const u=n("charge-point-sum-card"),d=n("charge-point-card"),p=n("counter-card"),q=n("inverter-sum-card"),b=n("inverter-card"),f=n("battery-sum-card"),L=n("battery-card"),j=n("vehicle-card"),D=n("io-device-card"),E=n("electricity-tariff-card");return i(),h("div",xo,[e.numChargePointsInstalled>1&&s.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m(u,{key:0})):T("",!0),(i(!0),h(W,null,x(e.installedChargePoints,(v,$)=>(i(),m(d,{key:$,"installed-charge-point":v,"installed-charge-point-key":$},null,8,["installed-charge-point","installed-charge-point-key"]))),128)),(i(!0),h(W,null,x(e.counterConfigs,v=>(i(),m(p,{key:v.id,counter:v},null,8,["counter"]))),128)),e.numInvertersInstalled>1&&s.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m(q,{key:1})):T("",!0),(i(!0),h(W,null,x(e.inverterConfigs,v=>(i(),m(b,{key:v.id,inverter:v},null,8,["inverter"]))),128)),e.numBatteriesInstalled>1&&s.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m(f,{key:2})):T("",!0),(i(!0),h(W,null,x(e.batteryConfigs,v=>(i(),m(L,{key:v.id,battery:v},null,8,["battery"]))),128)),(i(!0),h(W,null,x(e.vehicleNames,(v,$)=>(i(),m(j,{key:$,"vehicle-key":$,"vehicle-name":v},null,8,["vehicle-key","vehicle-name"]))),128)),(i(!0),h(W,null,x(e.ioDeviceConfigs,v=>(i(),m(D,{key:v.id,"io-device":v},null,8,["io-device"]))),128)),s.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m(E,{key:3})):T("",!0)])}const Io=w(wo,[["render",Wo],["__scopeId","data-v-051028a3"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Status.vue"]]);export{Io as default}; diff --git a/web/settings/assets/Status-b23f7e03.js b/web/settings/assets/Status-b23f7e03.js new file mode 100644 index 0000000000..e3638fdc66 --- /dev/null +++ b/web/settings/assets/Status-b23f7e03.js @@ -0,0 +1 @@ +import{C as k}from"./index-c94f8df4.js";import{l as C,O as z,P as V,c as M,f as G,F as B,Q as A,R as Z,S as H,T as R,U as F,V as K,W as Q,X as U,Y as J,Z as P,_ as I,$ as X,n as Y,o as tt,p as et,q as st,a0 as ot,a1 as at}from"./vendor-fortawesome-fc4b3a41.js";import{_ as w,u as n,l as i,x as m,D as O,E as r,A as t,m as h,G as c,B as g,F as a,z as T,p as S,q as rt,M as x,N as W}from"./vendor-50125810.js";import{C as it,p as nt,a as ct,L as lt,b as dt,P as pt,c as ut,T as mt,i as gt,d as ht,e as bt}from"./vendor-chartjs-6bace15d.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./vendor-luxon-cc86f6dc.js";C.add(z,V,M,G);const _t={name:"StatusCard",components:{FontAwesomeIcon:B},props:{subtype:{type:String,required:!0},state:{type:Number,required:!1,default:0},stateMessage:{type:String,required:!1,default:void 0},componentId:{type:Number,required:!1,default:void 0}},computed:{stateClass(){switch(this.state){case 0:return"success";case 1:return"warning";case 2:return"danger";default:return"dark"}},stateIcon(){switch(this.state){case 0:return["fas","check-circle"];case 1:return["fas","exclamation-triangle"];case 2:return["fas","times-circle"];default:return["fas","question-circle"]}},stateLabel(){switch(this.state){case 0:return"OK";case 1:return"Warnung";case 2:return"Fehler";default:return"Unbekannt"}}}},ft={class:"container"},vt={class:"row justify-content-end"},yt={key:0,class:"col px-0"},Tt={style:{"white-space":"pre-wrap"}},wt={key:1,class:"col col-auto pr-0"},xt={class:"text-right"};function Wt(s,o,l,b,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-avatar"),p=n("openwb-base-alert"),q=n("openwb-base-card");return i(),m(q,{subtype:l.subtype,collapsible:!0,collapsed:!0},O({header:r(()=>[S(s.$slots,"header-left")]),actions:r(()=>[S(s.$slots,"header-right"),c(d,{class:rt(["ml-2",`bg-${e.stateClass}`]),title:e.stateLabel},{default:r(()=>[c(u,{icon:e.stateIcon},null,8,["icon"])]),_:1},8,["class","title"])]),default:r(()=>[S(s.$slots,"default")]),_:2},[l.componentId!==void 0||l.stateMessage?{name:"footer",fn:r(()=>[t("div",ft,[t("div",vt,[l.stateMessage?(i(),h("div",yt,[c(p,{subtype:e.stateClass},{default:r(()=>[c(u,{icon:e.stateIcon},null,8,["icon"]),o[0]||(o[0]=g(" Modulmeldung: ",-1)),t("span",Tt,a(l.stateMessage),1)]),_:1},8,["subtype"])])):T("",!0),l.componentId!==void 0?(i(),h("div",wt,[t("div",xt,"ID: "+a(l.componentId),1)])):T("",!0)])])]),key:"0"}:void 0]),1032,["subtype"])}const N=w(_t,[["render",Wt],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/StatusCard.vue"]]);C.add(A);const kt={name:"ChargePointSumCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/chargepoint/get/power","openWB/chargepoint/get/imported","openWB/chargepoint/get/exported","openWB/chargepoint/get/daily_imported","openWB/chargepoint/get/daily_exported"]}},computed:{baseTopic:{get(){return"openWB/chargepoint"}}}},Ct={class:"text-right"},Bt={class:"row"},Nt={class:"col text-right text-monospace"},qt={class:"row"},$t={class:"col-4 text-right text-monospace"},St={class:"col-4 text-right text-monospace"},At={class:"row"},Pt={class:"col-4 text-right text-monospace"},It={class:"col-4 text-right text-monospace"};function Ot(s,o,l,b,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"primary"},{"header-left":r(()=>[c(u,{icon:["fas","charging-station"]}),o[0]||(o[0]=g(" Alle Ladepunkte ",-1))]),"header-right":r(()=>[t("span",Ct,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1)]),default:r(()=>[c(d,{subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row py-2"},[t("div",{class:"col font-weight-bold"},"Ladevorgang"),t("div",{class:"col text-right"},"Leistung")],-1)),t("div",Bt,[t("div",Nt,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001)),1)])]),_:1}),c(d,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Zählerstände"},{default:r(()=>[o[4]||(o[4]=t("div",{class:"row justify-content-end"},[t("div",{class:"col-4 text-right"},"Geladen"),t("div",{class:"col-4 text-right"},"Entladen")],-1)),t("div",qt,[o[2]||(o[2]=t("div",{class:"col text-right"},"Heute",-1)),t("div",$t,a(s.formatNumberTopic(e.baseTopic+"/get/daily_imported",3,3,.001)+" kWh"),1),t("div",St,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001)+" kWh"),1)]),t("div",At,[o[3]||(o[3]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Pt,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001)+" kWh"),1),t("div",It,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001)+" kWh"),1)])]),_:1})]),_:1})}const Lt=w(kt,[["render",Ot],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ChargePointSumCard.vue"]]);C.add(A,Z,H,R,F,K,Q,U);const jt={name:"ChargePointCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{installedChargePointKey:{type:String,required:!0},installedChargePoint:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/chargepoint/${this.installedChargePoint.id}/get/+`,`openWB/chargepoint/${this.installedChargePoint.id}/get/connected_vehicle/info`,`openWB/chargepoint/${this.installedChargePoint.id}/set/+`,`openWB/internal_chargepoint/${this.installedChargePoint.id}/data/phases_to_use`]}},computed:{chargePointIndex:{get(){return this.installedChargePoint.id}},baseTopic:{get(){return"openWB/chargepoint/"+this.chargePointIndex}},chargingStatus:{get(){let s=this.$store.state.mqtt[this.baseTopic+"/get/plug_state"],o=this.$store.state.mqtt[this.baseTopic+"/get/charge_state"];return s==1&&o==1?{icon:["fas","plug-circle-bolt"],text:"Fahrzeug angesteckt, Ladevorgang aktiv"}:s==1?{icon:["fas","plug-circle-check"],text:"Fahrzeug angesteckt, kein Ladevorgang aktiv"}:{icon:["fas","plug-circle-minus"],text:"Kein Fahrzeug angesteckt"}}}}},Dt={class:"row py-2"},Et={class:"col text-right"},zt={style:{"white-space":"pre-wrap"}},Vt={class:"row"},Mt={class:"col text-right text-monospace"},Gt={class:"col text-right text-monospace"},Zt={class:"row"},Ht={key:0,class:"col text-right text-monospace"},Rt={key:1,class:"col text-right text-monospace"},Ft={class:"col text-right text-monospace"},Kt={class:"row"},Qt={class:"col-4 text-right text-monospace"},Ut={class:"col-4 text-right text-monospace"},Jt={class:"row"},Xt={class:"col-4 text-right text-monospace"},Yt={class:"col-4 text-right text-monospace"},te={class:"row"},ee={class:"col text-right text-monospace"},se={class:"col text-right text-monospace"},oe={class:"col text-right text-monospace"},ae={class:"row"},re={class:"col text-right text-monospace"},ie={class:"col text-right text-monospace"},ne={class:"col text-right text-monospace"},ce={class:"row"},le={class:"col text-right text-monospace"},de={class:"col text-right text-monospace"},pe={class:"col text-right text-monospace"},ue={class:"row"},me={class:"col text-right text-monospace"},ge={class:"col text-right text-monospace"},he={class:"col text-right text-monospace"},be={class:"row"},_e={class:"col text-center text-monospace"};function fe(s,o,l,b,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-alert"),p=n("openwb-base-card"),q=n("status-card");return i(),m(q,{subtype:"primary","component-id":e.chargePointIndex,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","charging-station"]}),g(" "+a(l.installedChargePoint.name),1)]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:r(()=>[c(p,{subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",Dt,[o[0]||(o[0]=t("div",{class:"col col-auto font-weight-bold"},"Status",-1)),t("div",Et,[c(u,{icon:e.chargingStatus.icon,title:e.chargingStatus.text},null,8,["icon","title"]),g(" "+a(e.chargingStatus.text),1)])]),c(d,{subtype:"info"},{default:r(()=>[o[1]||(o[1]=g(" Statusmeldung: ",-1)),t("span",zt,a(s.$store.state.mqtt[e.baseTopic+"/get/state_str"]),1)]),_:1}),t("div",null," max. Ladeleistung: "+a((s.max_power=s.formatNumberTopic(e.baseTopic+"/get/max_evse_current",0))=="-"?s.max_power:Math.floor(s.max_power*3*230/1e3))+" kW ",1)]),_:1}),c(p,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Ladevorgang"},{default:r(()=>[o[2]||(o[2]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Ladestrom Vorgabe"),t("div",{class:"col text-right"},"Leistung")],-1)),t("div",Vt,[t("div",Mt,a(s.formatNumberTopic(e.baseTopic+"/set/current",2))+" A",1),t("div",Gt,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1)]),o[3]||(o[3]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Phasen Vorgabe"),t("div",{class:"col text-right"},"Phasen Aktuell")],-1)),t("div",Zt,[s.$store.state.mqtt["openWB/general/extern"]===!0?(i(),h("div",Ht,a(s.formatNumberTopic("openWB/internal_chargepoint/"+e.chargePointIndex+"/data/phases_to_use")),1)):(i(),h("div",Rt,a(s.formatNumberTopic(e.baseTopic+"/set/phases_to_use")),1)),t("div",Ft,a(s.formatNumberTopic(e.baseTopic+"/get/phases_in_use")),1)])]),_:1}),c(p,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Zählerstände"},{default:r(()=>[o[6]||(o[6]=t("div",{class:"row justify-content-end"},[t("div",{class:"col-4 text-right"},"Geladen"),t("div",{class:"col-4 text-right"},"Entladen")],-1)),t("div",Kt,[o[4]||(o[4]=t("div",{class:"col text-right"},"Heute",-1)),t("div",Qt,a(s.formatNumberTopic(e.baseTopic+"/get/daily_imported",3,3,.001))+" kWh ",1),t("div",Ut,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1)]),t("div",Jt,[o[5]||(o[5]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Xt,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001))+" kWh ",1),t("div",Yt,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1}),c(p,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Werte pro Phase"},{default:r(()=>[t("div",te,[o[7]||(o[7]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Spannung [V]",-1)),t("div",ee,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[0]),1),t("div",se,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[1]),1),t("div",oe,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[2]),1)]),t("div",ae,[o[8]||(o[8]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Strom [A]",-1)),t("div",re,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[0]),1),t("div",ie,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[1]),1),t("div",ne,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[2]),1)]),t("div",ce,[o[9]||(o[9]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Wirkleistung [kW]",-1)),t("div",le,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[0]),1),t("div",de,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[1]),1),t("div",pe,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[2]),1)]),t("div",ue,[o[10]||(o[10]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Leistungsfaktor",-1)),t("div",me,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[0]),1),t("div",ge,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[1]),1),t("div",he,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[2]),1)]),t("div",be,[o[11]||(o[11]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Netzfrequenz",-1)),t("div",_e,a(s.formatNumberTopic(e.baseTopic+"/get/frequency",3))+" Hz ",1)])]),_:1})]),_:1},8,["component-id","state","state-message"])}const ve=w(jt,[["render",fe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ChargePointCard.vue"]]);C.add(J);const ye={name:"CounterCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{counter:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/counter/${this.counter.id}/get/+`]}},computed:{baseTopic:{get(){return"openWB/counter/"+this.counter.id}}}},Te={class:"row"},we={class:"col text-right text-monospace pl-0"},xe={class:"col text-right text-monospace pl-0"},We={class:"row"},ke={class:"col text-right text-monospace pl-0"},Ce={class:"col text-right text-monospace pl-0"},Be={class:"row"},Ne={class:"col"},qe={class:"row"},$e={class:"col text-right text-monospace pl-0"},Se={class:"col text-right text-monospace pl-0"},Ae={class:"col text-right text-monospace pl-0"},Pe={class:"row"},Ie={class:"col"},Oe={class:"row"},Le={class:"col text-right text-monospace pl-0"},je={class:"col text-right text-monospace pl-0"},De={class:"col text-right text-monospace pl-0"},Ee={class:"row"},ze={class:"col"},Ve={class:"row"},Me={class:"col text-right text-monospace pl-0"},Ge={class:"col text-right text-monospace pl-0"},Ze={class:"col text-right text-monospace pl-0"},He={class:"row"},Re={class:"col"},Fe={class:"row"},Ke={class:"col text-right text-monospace pl-0"},Qe={class:"col text-right text-monospace pl-0"},Ue={class:"col text-right text-monospace pl-0"};function Je(s,o,l,b,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"danger","component-id":l.counter.id,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","gauge-high"]}),g(" "+a(l.counter.name),1)]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Leistung"),t("div",{class:"col-6 text-right"},"Netzfrequenz")],-1)),t("div",Te,[t("div",we,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001)+" kW"),1),t("div",xe,a(s.formatNumberTopic(e.baseTopic+"/get/frequency",3)+" Hz"),1)])]),_:1}),c(d,{title:"Zählerstände",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Export"),t("div",{class:"col-6 text-right"},"Import")],-1)),t("div",We,[t("div",ke,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001)+" kWh"),1),t("div",Ce,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001)+" kWh"),1)])]),_:1}),c(d,{title:"Werte pro Phase",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",Be,[o[2]||(o[2]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Spannung [V]",-1)),t("div",Ne,[t("div",qe,[t("div",$e,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[0]),1),t("div",Se,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[1]),1),t("div",Ae,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/voltages",1)[2]),1)])])]),t("div",Pe,[o[3]||(o[3]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Strom [A]",-1)),t("div",Ie,[t("div",Oe,[t("div",Le,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[0]),1),t("div",je,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[1]),1),t("div",De,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[2]),1)])])]),t("div",Ee,[o[4]||(o[4]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Wirkleistung [kW]",-1)),t("div",ze,[t("div",Ve,[t("div",Me,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[0]),1),t("div",Ge,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[1]),1),t("div",Ze,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/powers",3,3,.001)[2]),1)])])]),t("div",He,[o[5]||(o[5]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Leistungsfaktor",-1)),t("div",Re,[t("div",Fe,[t("div",Ke,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[0]),1),t("div",Qe,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[1]),1),t("div",Ue,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/power_factors",2)[2]),1)])])])]),_:1})]),_:1},8,["component-id","state","state-message"])}const Xe=w(ye,[["render",Je],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/CounterCard.vue"]]);C.add(P);const Ye={name:"InverterSumCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/pv/get/+"]}},computed:{baseTopic:{get(){return"openWB/pv"}}}},ts={class:"row"},es={class:"col text-right text-monospace"},ss={class:"col text-right text-monospace"},os={class:"row"},as={class:"col text-right text-monospace"},rs={class:"col text-right text-monospace"},is={class:"col text-right text-monospace"};function ns(s,o,l,b,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"success",state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","solar-panel"]}),o[0]||(o[0]=g(" Alle Wechselrichter ",-1))]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Leistung"),t("div",{class:"col text-right"},"Zählerstand")],-1)),t("div",ts,[t("div",es,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",ss,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1}),c(d,{title:"Erträge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[2]||(o[2]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Heute"),t("div",{class:"col text-right"},"Monat"),t("div",{class:"col text-right"},"Jahr")],-1)),t("div",os,[t("div",as,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1),t("div",rs,a(s.formatNumberTopic(e.baseTopic+"/get/monthly_exported",1,1,.001))+" kWh ",1),t("div",is,a(s.formatNumberTopic(e.baseTopic+"/get/yearly_exported",0,0,.001))+" kWh ",1)])]),_:1})]),_:1},8,["state","state-message"])}const cs=w(Ye,[["render",ns],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/InverterSumCard.vue"]]);C.add(P);const ls={name:"InverterCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{inverter:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/pv/${this.inverter.id}/get/+`]}},computed:{baseTopic:{get(){return"openWB/pv/"+this.inverter.id}}}},ds={class:"row"},ps={class:"col text-right text-monospace"},us={class:"col text-right text-monospace"},ms={class:"row"},gs={class:"col text-right text-monospace"},hs={class:"col text-right text-monospace"},bs={class:"col text-right text-monospace"},_s={class:"row"},fs={class:"col"},vs={class:"row"},ys={class:"col text-right text-monospace pl-0"},Ts={class:"col text-right text-monospace pl-0"},ws={class:"col text-right text-monospace pl-0"};function xs(s,o,l,b,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"success","component-id":l.inverter.id,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","solar-panel"]}),g(" "+a(l.inverter.name),1)]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Leistung"),t("div",{class:"col text-right"},"Zählerstand")],-1)),t("div",ds,[t("div",ps,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",us,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1}),c(d,{title:"Erträge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Heute"),t("div",{class:"col text-right"},"Monat"),t("div",{class:"col text-right"},"Jahr")],-1)),t("div",ms,[t("div",gs,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1),t("div",hs,a(s.formatNumberTopic(e.baseTopic+"/get/monthly_exported",1,1,.001))+" kWh ",1),t("div",bs,a(s.formatNumberTopic(e.baseTopic+"/get/yearly_exported",0,0,.001))+" kWh ",1)])]),_:1}),c(d,{title:"Werte pro Phase",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",_s,[o[2]||(o[2]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Strom [A]",-1)),t("div",fs,[t("div",vs,[t("div",ys,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[0]),1),t("div",Ts,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[1]),1),t("div",ws,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[2]),1)])])])]),_:1})]),_:1},8,["component-id","state","state-message"])}const Ws=w(ls,[["render",xs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/InverterCard.vue"]]);C.add(I);const ks={name:"BatterySumCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/bat/get/+"]}},computed:{baseTopic:{get(){return"openWB/bat"}}}},Cs={class:"row"},Bs={class:"col text-right text-monospace pl-0"},Ns={class:"col text-right text-monospace pl-0"},qs={class:"row"},$s={class:"col text-right text-monospace"},Ss={class:"col text-right text-monospace"},As={class:"row"},Ps={class:"col text-right text-monospace"},Is={class:"col text-right text-monospace"};function Os(s,o,l,b,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"warning",state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","car-battery"]}),o[0]||(o[0]=g(" Alle Speicher ",-1))]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",1,1,.001))+" kW / "+a(s.$store.state.mqtt[e.baseTopic+"/get/soc"])+" % ",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Leistung"),t("div",{class:"col-6 text-right"},"Ladestand")],-1)),t("div",Cs,[t("div",Bs,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",Ns,a(s.$store.state.mqtt[e.baseTopic+"/get/soc"])+" %",1)])]),_:1}),c(d,{title:"Zählerstände",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[4]||(o[4]=t("div",{class:"row"},[t("div",{class:"col"}),t("div",{class:"col text-right"},"Geladen"),t("div",{class:"col text-right"},"Entladen")],-1)),t("div",qs,[o[2]||(o[2]=t("div",{class:"col text-right"},"Heute",-1)),t("div",$s,a(s.formatNumberTopic(e.baseTopic+"/get/daily_imported",3,3,.001))+" kWh ",1),t("div",Ss,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1)]),t("div",As,[o[3]||(o[3]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Ps,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001))+" kWh ",1),t("div",Is,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1})]),_:1},8,["state","state-message"])}const Ls=w(ks,[["render",Os],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/BatterySumCard.vue"]]);C.add(I);const js={name:"BatteryCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{battery:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/bat/${this.battery.id}/get/+`]}},computed:{baseTopic:{get(){return"openWB/bat/"+this.battery.id}}}},Ds={class:"row"},Es={class:"col text-right text-monospace pl-0"},zs={class:"col text-right text-monospace pl-0"},Vs={class:"row"},Ms={class:"col text-right text-monospace"},Gs={class:"col text-right text-monospace"},Zs={class:"row"},Hs={class:"col text-right text-monospace"},Rs={class:"col text-right text-monospace"},Fs={class:"row"},Ks={class:"col"},Qs={class:"row"},Us={class:"col text-right text-monospace pl-0"},Js={class:"col text-right text-monospace pl-0"},Xs={class:"col text-right text-monospace pl-0"};function Ys(s,o,l,b,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"warning","component-id":l.battery.id,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","car-battery"]}),g(" "+a(l.battery.name),1)]),"header-right":r(()=>[g(a(s.formatNumberTopic(e.baseTopic+"/get/power",1,1,.001))+" kW / "+a(s.$store.state.mqtt[e.baseTopic+"/get/soc"])+" % ",1)]),default:r(()=>[c(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Leistung"),t("div",{class:"col-6 text-right"},"Ladestand")],-1)),t("div",Ds,[t("div",Es,a(s.formatNumberTopic(e.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",zs,a(s.$store.state.mqtt[e.baseTopic+"/get/soc"])+" %",1)])]),_:1}),c(d,{title:"Zählerstände",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[3]||(o[3]=t("div",{class:"row"},[t("div",{class:"col"}),t("div",{class:"col text-right"},"Geladen"),t("div",{class:"col text-right"},"Entladen")],-1)),t("div",Vs,[o[1]||(o[1]=t("div",{class:"col text-right"},"Heute",-1)),t("div",Ms,a(s.formatNumberTopic(e.baseTopic+"/get/daily_imported",3,3,.001))+" kWh ",1),t("div",Gs,a(s.formatNumberTopic(e.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1)]),t("div",Zs,[o[2]||(o[2]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Hs,a(s.formatNumberTopic(e.baseTopic+"/get/imported",3,3,.001))+" kWh ",1),t("div",Rs,a(s.formatNumberTopic(e.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1}),c(d,{title:"Werte pro Phase",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",Fs,[o[4]||(o[4]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Strom [A]",-1)),t("div",Ks,[t("div",Qs,[t("div",Us,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[0]),1),t("div",Js,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[1]),1),t("div",Xs,a(s.formatPhaseArrayNumberTopic(e.baseTopic+"/get/currents",2)[2]),1)])])])]),_:1})]),_:1},8,["component-id","state","state-message"])}const to=w(js,[["render",Ys],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/BatteryCard.vue"]]);C.add(X,Y,tt,et,st);const eo={name:"IoDeviceCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{ioDevice:{type:Object,required:!0}},data(){return{mqttTopicsToSubscribe:[`openWB/io/states/${this.ioDevice.id}/get/+`,"openWB/io/action/+/config","openWB/io/action/+/timestamp"],state:{true:{icon:["fas","square"],title:"Geschlossen",actionTitle:"Aktiv"},false:{icon:["far","square"],title:"Offen",actionTitle:"Inaktiv"}}}},computed:{baseTopic(){return`openWB/io/states/${this.ioDevice.id}`},hasDigitalInputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/digital_input`]||{}).length>0},hasDigitalOutputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/digital_output`]||{}).length>0},hasAnalogInputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/analog_input`]||{}).length>0},hasAnalogOutputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/analog_output`]||{}).length>0},digitalInputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/digital_input`]},digitalOutputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/digital_output`]},analogInputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/analog_input`]},analogOutputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/analog_output`]},ioActionConfigs(){return Object.fromEntries(Object.entries(this.getWildcardTopics("openWB/io/action/+/config")).filter(([,s])=>s.configuration.io_device===this.ioDevice.id))},ioActionState(){return s=>{const o=this.$store.state.mqtt[`openWB/io/action/${s}/timestamp`];return o&&new Date(o*1e3).toLocaleString()}}},methods:{getIcon(s){return this.state[s].icon},getTitle(s){return this.state[s].title},getActionTitle(s){return this.state[s].actionTitle}}},so={class:"col-auto"},oo={class:"col text-right"},ao={class:"row"},ro={class:"row"},io={class:"row"},no={class:"row"};function co(s,o,l,b,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-alert"),p=n("openwb-base-card"),q=n("status-card");return i(),m(q,{subtype:"secondary",state:s.$store.state.mqtt[`${e.baseTopic}/get/fault_state`],"state-message":s.$store.state.mqtt[`${e.baseTopic}/get/fault_str`],"component-id":l.ioDevice.id},{"header-left":r(()=>[c(u,{icon:["fas","tower-broadcast"]}),g(" "+a(l.ioDevice.name),1)]),default:r(()=>[c(p,{title:"Zugehörige Aktionen",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[Object.keys(e.ioActionConfigs).length===0?(i(),m(d,{key:0,subtype:"info",class:"mb-2"},{default:r(()=>[...o[0]||(o[0]=[g(" Es wurden noch keine Aktionen erstellt, welche dieses IO-Gerät als Signalquelle verwenden. ",-1)])]),_:1})):(i(!0),h(W,{key:1},x(e.ioActionConfigs,(_,f)=>(i(),h("div",{key:f,class:"row"},[t("div",so,[c(u,{title:e.getActionTitle(![void 0,null].includes(e.ioActionState(_.id))),icon:e.getIcon(![void 0,null].includes(e.ioActionState(_.id))),class:"fa-fw"},null,8,["title","icon"]),g(" "+a(_.name),1)]),t("div",oo,a(e.ioActionState(_.id)),1)]))),128))]),_:1}),e.hasDigitalInputs?(i(),m(p,{key:0,title:"Digitale Eingänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",ao,[(i(!0),h(W,null,x(e.digitalInputStates,(_,f)=>(i(),h("div",{key:f,class:"col io-state"},[g(a(f)+": ",1),c(u,{title:e.getTitle(_),icon:e.getIcon(_),class:"fa-fw"},null,8,["title","icon"])]))),128))])]),_:1})):T("",!0),e.hasDigitalOutputs?(i(),m(p,{key:1,title:"Digitale Ausgänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",ro,[(i(!0),h(W,null,x(e.digitalOutputStates,(_,f)=>(i(),h("div",{key:f,class:"col io-state"},[g(a(f)+": ",1),c(u,{title:e.getActionTitle(_),icon:e.getIcon(_),class:"fa-fw"},null,8,["title","icon"])]))),128))])]),_:1})):T("",!0),e.hasAnalogInputs?(i(),m(p,{key:2,title:"Analoge Eingänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",io,[(i(!0),h(W,null,x(e.analogInputStates,(_,f)=>(i(),h("div",{key:f,class:"col io-state"},a(f)+": "+a(_),1))),128))])]),_:1})):T("",!0),e.hasAnalogOutputs?(i(),m(p,{key:3,title:"Analoge Ausgänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",no,[(i(!0),h(W,null,x(e.analogOutputStates,(_,f)=>(i(),h("div",{key:f,class:"col io-state"},a(f)+": "+a(_),1))),128))])]),_:1})):T("",!0)]),_:1},8,["state","state-message","component-id"])}const lo=w(eo,[["render",co],["__scopeId","data-v-356761d0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/IoDeviceCard.vue"]]);C.add(ot);const po={name:"VehicleCard",components:{StatusCard:N,FontAwesomeIcon:B},mixins:[k],props:{vehicleKey:{type:String,required:!0},vehicleName:{type:String,default:""}},data(){return{mqttTopicsToSubscribe:["openWB/vehicle/+/get/+"]}},computed:{vehicleIndex:{get(){return parseInt(this.vehicleKey.match(/(?:\/)(\d+)(?=\/)/)[1])}},soc:{get(){return this.formatNumberTopic(this.baseTopic+"/get/soc")}},socTimestamp:{get(){return this.$store.state.mqtt[this.baseTopic+"/get/soc_timestamp"]!==void 0?new Date(this.$store.state.mqtt[this.baseTopic+"/get/soc_timestamp"]*1e3).toLocaleString():"-"}},socRange:{get(){return this.$store.state.mqtt[this.baseTopic+"/get/range"]!==void 0?Math.round(this.$store.state.mqtt[this.baseTopic+"/get/range"]):0}},baseTopic:{get(){return"openWB/vehicle/"+this.vehicleIndex}}}},uo={class:"row"},mo={class:"col text-right text-monospace"},go={class:"col text-right text-monospace"},ho={class:"col text-right text-monospace"};function bo(s,o,l,b,y,e){const u=n("font-awesome-icon"),d=n("openwb-base-card"),p=n("status-card");return i(),m(p,{subtype:"info","component-id":e.vehicleIndex,state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},O({"header-left":r(()=>[c(u,{icon:["fas","car"]}),g(" "+a(l.vehicleName),1)]),default:r(()=>[c(d,{title:"Fahrzeugdaten",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col pr-0 text-right"},"Ladestand"),t("div",{class:"col pr-0 text-right"},"Reichweite"),t("div",{class:"col pr-0 text-right"},"Letzter Zeitstempel")],-1)),t("div",uo,[t("div",mo,a(e.soc)+" %",1),t("div",go,a(e.socRange)+" km",1),t("div",ho,a(e.socTimestamp),1)])]),_:1})]),_:2},[e.soc!="-"?{name:"header-right",fn:r(()=>[g(a(e.soc)+" % ",1)]),key:"0"}:void 0]),1032,["component-id","state","state-message"])}const _o=w(po,[["render",bo],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/VehicleCard.vue"]]);C.add(at);it.register(nt,ct,lt,dt,pt,ut,mt,gt,ht);const fo={name:"ElectricityTariffCard",components:{StatusCard:N,FontAwesomeIcon:B,ChartjsLine:bt},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/optional/et/provider","openWB/optional/et/get/fault_state","openWB/optional/et/get/fault_str","openWB/optional/et/get/prices"],chartDatasets:{datasets:[{label:"Stromtarif",unit:"ct/kWh",type:"line",stepped:!0,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:void 0,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:"price"}}]},chartOptions:{plugins:{title:{display:!1},tooltip:{enabled:!0},legend:{display:!1}},elements:{point:{radius:2}},responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{x:{type:"time",time:{unit:"hour",text:"Zeit",maxTicksLimit:24},display:!0,title:{display:!0,text:"Uhrzeit"},ticks:{font:{size:12},maxTicksLimit:0},grid:{}},y:{position:"left",type:"linear",display:"auto",title:{font:{size:12},display:!0,text:"Preis [ct/kWh]"},grid:{},ticks:{font:{size:12},stepSize:.01,maxTicksLimit:11}}}}}},computed:{electricityTariffConfigured(){const s=this.$store.state.mqtt["openWB/optional/et/provider"];return s!==void 0?s.type!==null:!1},chartDataRead(){return this.chartDataObject.datasets[0].data!=null},chartDataObject(){if(this.$store.state.mqtt["openWB/optional/et/get/prices"]){var s=this.$store.state.mqtt["openWB/optional/et/get/prices"],o=[];for(const[y,e]of Object.entries(s))o.push({timestamp:y*1e3,price:e*1e5});const b=o.slice(-1)[0];o.push({timestamp:b.timestamp+(60*60-1)*1e3,price:b.price})}const l=this.chartDatasets;return l.datasets[0].data=o,l},currentPrice(){return this.chartDataObject.datasets[0].data===void 0||this.chartDataObject.datasets[0].data.length===0?this.formatNumber(0,2):this.formatNumber(this.chartDataObject.datasets[0].data[0].price||0,2)},baseTopic:{get(){return"openWB/optional/et"}}}},vo={class:"openwb-chart"};function yo(s,o,l,b,y,e){const u=n("font-awesome-icon"),d=n("chartjs-line"),p=n("openwb-base-card"),q=n("status-card");return e.electricityTariffConfigured?(i(),m(q,{key:0,subtype:"secondary",state:s.$store.state.mqtt[e.baseTopic+"/get/fault_state"],"state-message":s.$store.state.mqtt[e.baseTopic+"/get/fault_str"]},{"header-left":r(()=>[c(u,{icon:["fas","ranking-star"]}),o[0]||(o[0]=g(" Variabler Stromtarif ",-1))]),"header-right":r(()=>[g(a(e.currentPrice)+" ct/kWh",1)]),default:r(()=>[c(p,{title:"Anbieter: "+s.$store.state.mqtt[e.baseTopic+"/provider"].name,subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:r(()=>[t("div",vo,[e.chartDataRead?(i(),m(d,{key:0,ref:"myChart",data:e.chartDataObject,options:y.chartOptions},null,8,["data","options"])):T("",!0)])]),_:1},8,["title"])]),_:1},8,["state","state-message"])):T("",!0)}const To=w(fo,[["render",yo],["__scopeId","data-v-f4769d2f"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ElectricityTariffCard.vue"]]);const wo={name:"OpenwbStatusView",components:{ChargePointSumCard:Lt,ChargePointCard:ve,CounterCard:Xe,InverterSumCard:cs,InverterCard:Ws,BatterySumCard:Ls,BatteryCard:to,IoDeviceCard:lo,VehicleCard:_o,ElectricityTariffCard:To},mixins:[k],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/device/+/component/+/config","openWB/system/io/+/config","openWB/vehicle/+/name","openWB/chargepoint/+/config"]}},computed:{installedChargePoints:{get(){let s=this.getWildcardTopics("openWB/chargepoint/+/config"),o={};for(const[l,b]of Object.entries(s))(b.type==="internal_openwb"||this.$store.state.mqtt["openWB/general/extern"]===!1)&&(o[l]=b);return o}},numChargePointsInstalled:{get(){return Object.keys(this.installedChargePoints).length}},counterConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"counter")}},ioDeviceConfigs:{get(){return this.getWildcardTopics("openWB/system/io/+/config")}},numInvertersInstalled:{get(){return Object.keys(this.inverterConfigs).length}},inverterConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"inverter")}},numBatteriesInstalled:{get(){return Object.keys(this.batteryConfigs).length}},batteryConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"bat")}},vehicleNames:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.getWildcardTopics("openWB/vehicle/+/name")}}},methods:{filterComponentsByType(s,o){return Object.keys(s).filter(l=>s[l].type.includes(o)).reduce((l,b)=>({...l,[b]:s[b]}),{})}}},xo={class:"status"};function Wo(s,o,l,b,y,e){const u=n("charge-point-sum-card"),d=n("charge-point-card"),p=n("counter-card"),q=n("inverter-sum-card"),_=n("inverter-card"),f=n("battery-sum-card"),L=n("battery-card"),j=n("vehicle-card"),D=n("io-device-card"),E=n("electricity-tariff-card");return i(),h("div",xo,[e.numChargePointsInstalled>1&&s.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m(u,{key:0})):T("",!0),(i(!0),h(W,null,x(e.installedChargePoints,(v,$)=>(i(),m(d,{key:$,"installed-charge-point":v,"installed-charge-point-key":$},null,8,["installed-charge-point","installed-charge-point-key"]))),128)),(i(!0),h(W,null,x(e.counterConfigs,v=>(i(),m(p,{key:v.id,counter:v},null,8,["counter"]))),128)),e.numInvertersInstalled>1&&s.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m(q,{key:1})):T("",!0),(i(!0),h(W,null,x(e.inverterConfigs,v=>(i(),m(_,{key:v.id,inverter:v},null,8,["inverter"]))),128)),e.numBatteriesInstalled>1&&s.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m(f,{key:2})):T("",!0),(i(!0),h(W,null,x(e.batteryConfigs,v=>(i(),m(L,{key:v.id,battery:v},null,8,["battery"]))),128)),(i(!0),h(W,null,x(e.vehicleNames,(v,$)=>(i(),m(j,{key:$,"vehicle-key":$,"vehicle-name":v},null,8,["vehicle-key","vehicle-name"]))),128)),(i(!0),h(W,null,x(e.ioDeviceConfigs,v=>(i(),m(D,{key:v.id,"io-device":v},null,8,["io-device"]))),128)),s.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m(E,{key:3})):T("",!0)])}const Io=w(wo,[["render",Wo],["__scopeId","data-v-051028a3"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Status.vue"]]);export{Io as default}; diff --git a/web/settings/assets/Support-028921f1.js b/web/settings/assets/Support-028921f1.js new file mode 100644 index 0000000000..e1b90fe48e --- /dev/null +++ b/web/settings/assets/Support-028921f1.js @@ -0,0 +1,3 @@ +import{l as D,g as V,F as W}from"./vendor-fortawesome-fc4b3a41.js";import{C as A}from"./index-c94f8df4.js";import{_ as z,u,l as f,m as c,A as r,x as k,E as s,G as o,D as C,z as w,B as n,q as F}from"./vendor-50125810.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";D.add(V);const _={name:"OpenwbSupportView",components:{FontAwesomeIcon:W},mixins:[A],emits:["sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/dataprotection_acknowledged","openWB/system/serial_number","openWB/system/device/+/config","openWB/system/device/+/component/+/config","openWB/vehicle/+/name","openWB/vehicle/+/info"],email:void 0,components:void 0,vehicles:void 0,message:void 0,enableSendDebugButton:!0}},computed:{debugData(){return{email:this.email,serialNumber:this.$store.state.mqtt["openWB/system/serial_number"],installedComponents:this.installedComponents,vehicles:this.vehicleInfo,message:this.message}},installedComponents(){var b,p;if(this.components!==void 0)return this.components;let i="";const e=this.getWildcardTopics("openWB/system/device/+/component/+/config");for(const t of Object.values(e)){const a=t.id,d=((b=t.info)==null?void 0:b.manufacturer)||"N/A",m=((p=t.info)==null?void 0:p.model)||"N/A";i+=`(${a}) Hersteller: ${d}, Modell: ${m} +`}return i.trim()},vehicleInfo(){if(this.vehicles!==void 0)return this.vehicles;let i="";const e=this.getWildcardTopics("openWB/vehicle/+/info");for(const[b,p]of Object.entries(e)){const t=parseInt(b.split("/")[2]);if(t!==0){const a=p.manufacturer||"N/A",d=p.model||"N/A";i+=`(${t}) Hersteller: ${a}, Modell: ${d} +`}}return i.trim()}},methods:{sendDebugMessage(){if(document.forms.supportForm.reportValidity())this.$emit("sendCommand",{command:"sendDebug",data:this.debugData}),this.enableSendDebugButton=!1;else{console.warn("form invalid");return}}}},x={class:"support"},q={name:"supportForm"},I={key:1},N={key:0},T={class:"row justify-content-center"};function M(i,e,b,p,t,a){const d=u("router-link"),m=u("openwb-base-alert"),v=u("FontAwesomeIcon"),h=u("openwb-base-text-input"),g=u("openwb-base-textarea"),y=u("openwb-base-click-button"),B=u("openwb-base-card"),S=u("font-awesome-icon");return f(),c("div",x,[r("form",q,[i.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(f(),k(m,{key:0,subtype:"danger"},{default:s(()=>[e[6]||(e[6]=n(" Du musst der ",-1)),o(d,{to:"/System/LegalSettings"},{default:s(()=>[...e[5]||(e[5]=[n(" Datenschutzerklärung ",-1)])]),_:1}),e[7]||(e[7]=n(" zustimmen, um einen Systembericht senden zu können. ",-1))]),_:1})):(f(),c("div",I,[o(m,{subtype:"success"},{default:s(()=>[e[9]||(e[9]=n(" Du hast der ",-1)),o(d,{to:"/System/LegalSettings"},{default:s(()=>[...e[8]||(e[8]=[n(" Datenschutzerklärung ",-1)])]),_:1}),e[10]||(e[10]=n(" zugestimmt und kannst Systemberichte senden. ",-1))]),_:1}),o(B,{title:"Systembericht"},C({default:s(()=>[i.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?(f(),c("div",N,[o(m,{subtype:"danger"},{default:s(()=>[...e[11]||(e[11]=[n(' Vergewissere Dich, dass mindestens die aktuelle "Release" Version installiert ist. ',-1)])]),_:1}),o(m,{subtype:"info"},{default:s(()=>[r("ul",null,[r("li",null,[e[12]||(e[12]=n(" Lies bitte den Hilfetext, der durch Klick auf das ",-1)),o(v,{icon:["far","question-circle"]}),e[13]||(e[13]=n(" angezeigt wird. Nimm das Wiki zur Hilfe. ",-1))]),e[14]||(e[14]=r("li",null," Stelle beim Absenden des Berichtes die Fehlerkonditionen her. Lädt ein Fahrzeug nicht, sollte es angeschlossen und nicht voll geladen sein. Ist PV laden betroffen, sollte die Sonne auch scheinen. Der Systembericht muss dann versendet werden, wenn der Fehler aktuell vorliegt. ",-1)),e[15]||(e[15]=r("li",null," Stelle sicher, dass der richtige Lademodus gewählt ist und im Falle von nicht ladenden Fahrzeugen, dass der Ladepunkt auch entsperrt wurde. ",-1)),e[16]||(e[16]=r("li",null," Das Auslesen der Systemkonfiguration erfolgt direkt nach den Klick auf Absenden und kann einige Zeit in Anspruch nehmen. Du erhältst ca. 15 bis 30 Minuten nach Versand des Systemberichtes von uns automatisch eine E-Mail mit der Ticketnummer unter der die Anfrage bei uns registriert wurde. Wir melden uns bei Dir. Bitte kontrolliere daher immer auch den Spam Ordner auf eingehende Nachrichten. Erhältst Du trotzdem keine Ticketnummer, ist das Versenden des Systemberichtes vermutlich fehlgeschlagen. ",-1))])]),_:1}),o(h,{modelValue:t.email,"onUpdate:modelValue":e[0]||(e[0]=l=>t.email=l),title:"E-Mail",required:"",subtype:"email"},{help:s(()=>[...e[17]||(e[17]=[n(" Deine E-Mail-Adresse, an die der Support Dir antwortet. ",-1)])]),_:1},8,["modelValue"]),o(h,{title:"openWB Seriennummer",required:"","model-value":i.$store.state.mqtt["openWB/system/serial_number"],"onUpdate:modelValue":e[1]||(e[1]=l=>i.updateState("openWB/system/serial_number",l))},{help:s(()=>[...e[18]||(e[18]=[n(" Die Seriennummer der openWB findest Du außen am, bei älteren Installationen innen im Gehäuse. Du kannst uns aber auch eine Bestellnummer oder Rechnungsnummer übermitteln. Das Gehäuse muss nicht extra geöffnet werden!",-1),r("br",null,null,-1),n(" Bei einer gekauften openWB wird die Seriennummer automatisch ermittelt. ",-1)])]),_:1},8,["model-value"]),o(g,{title:"Verwendete Komponenten",required:"",minlength:"3",maxlength:"500","model-value":a.installedComponents,"onUpdate:modelValue":e[2]||(e[2]=l=>t.components=l)},{help:s(()=>[e[20]||(e[20]=n(" Gib hier möglichst detailliert an, welche Anlagenkomponenten (EVU, PV, Speicher) angebunden sind.",-1)),e[21]||(e[21]=r("br",null,null,-1)),o(d,{to:"/HardwareInstallation"},{default:s(()=>[...e[19]||(e[19]=[n(" Die Angaben können auch direkt in der Konfiguration der Komponenten dauerhaft gespeichert werden. ",-1)])]),_:1})]),_:1},8,["model-value"]),o(g,{title:"Fahrzeuge",required:"",minlength:"3",maxlength:"500","model-value":a.vehicleInfo,"onUpdate:modelValue":e[3]||(e[3]=l=>t.vehicles=l)},{help:s(()=>[e[23]||(e[23]=n(" Gib hier an, welche Fahrzeuge geladen (Hersteller, Modell, Baujahr).",-1)),e[24]||(e[24]=r("br",null,null,-1)),o(d,{to:"/VehicleConfiguration"},{default:s(()=>[...e[22]||(e[22]=[n(" Die Angaben können auch direkt in der Konfiguration der Fahrzeuge dauerhaft gespeichert werden. ",-1)])]),_:1})]),_:1},8,["model-value"]),o(g,{modelValue:t.message,"onUpdate:modelValue":e[4]||(e[4]=l=>t.message=l),title:"Problembeschreibung",required:"",minlength:"20",maxlength:"500"},null,8,["modelValue"])])):w("",!0)]),_:2},[i.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:s(()=>[r("div",T,[o(y,{class:F(["col-4",t.enableSendDebugButton?"btn-success":"btn-outline-success"]),disabled:!t.enableSendDebugButton,onButtonClicked:a.sendDebugMessage},{default:s(()=>[...e[25]||(e[25]=[n(" Absenden ",-1)])]),_:1},8,["class","disabled","onButtonClicked"])])]),key:"0"}:void 0]),1024),t.enableSendDebugButton?w("",!0):(f(),k(m,{key:0,subtype:"success"},{default:s(()=>[e[26]||(e[26]=n(" Die Daten für den Fehlerbericht werden im Hintergrund zusammengestellt. Du kannst diese Seite jetzt verlassen. ",-1)),o(S,{icon:["fas","check"]})]),_:1}))]))])])}const $=z(_,[["render",M],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Support.vue"]]);export{$ as default}; diff --git a/web/settings/assets/Support-25ac4d94.js b/web/settings/assets/Support-25ac4d94.js deleted file mode 100644 index d7019ad7da..0000000000 --- a/web/settings/assets/Support-25ac4d94.js +++ /dev/null @@ -1,3 +0,0 @@ -import{l as S,g as D,F as V}from"./vendor-fortawesome-a02b6813.js";import{C as W}from"./index-8dd8e083.js";import{_ as A,u,l as f,m as c,A as r,x as k,E as s,G as o,D as z,z as w,B as n,q as C}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";S.add(D);const F={name:"OpenwbSupportView",components:{FontAwesomeIcon:V},mixins:[W],emits:["sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/dataprotection_acknowledged","openWB/system/serial_number","openWB/system/device/+/config","openWB/system/device/+/component/+/config","openWB/vehicle/+/name","openWB/vehicle/+/info"],email:void 0,components:void 0,vehicles:void 0,message:void 0,enableSendDebugButton:!0}},computed:{debugData(){return{email:this.email,serialNumber:this.$store.state.mqtt["openWB/system/serial_number"],installedComponents:this.installedComponents,vehicles:this.vehicleInfo,message:this.message}},installedComponents(){var b,p;if(this.components!==void 0)return this.components;let i="";const e=this.getWildcardTopics("openWB/system/device/+/component/+/config");for(const t of Object.values(e)){const a=t.id,d=((b=t.info)==null?void 0:b.manufacturer)||"N/A",m=((p=t.info)==null?void 0:p.model)||"N/A";i+=`(${a}) Hersteller: ${d}, Modell: ${m} -`}return i.trim()},vehicleInfo(){if(this.vehicles!==void 0)return this.vehicles;let i="";const e=this.getWildcardTopics("openWB/vehicle/+/info");for(const[b,p]of Object.entries(e)){const t=parseInt(b.split("/")[2]);if(t!==0){const a=p.manufacturer||"N/A",d=p.model||"N/A";i+=`(${t}) Hersteller: ${a}, Modell: ${d} -`}}return i.trim()}},methods:{sendDebugMessage(){if(document.forms.supportForm.reportValidity())this.$emit("sendCommand",{command:"sendDebug",data:this.debugData}),this.enableSendDebugButton=!1;else{console.warn("form invalid");return}}}},x={class:"support"},q={name:"supportForm"},I={key:1},N={key:0},T={class:"row justify-content-center"};function M(i,e,b,p,t,a){const d=u("router-link"),m=u("openwb-base-alert"),v=u("FontAwesomeIcon"),h=u("openwb-base-text-input"),g=u("openwb-base-textarea"),y=u("openwb-base-click-button"),B=u("openwb-base-card"),_=u("font-awesome-icon");return f(),c("div",x,[r("form",q,[i.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(f(),k(m,{key:0,subtype:"danger"},{default:s(()=>[e[6]||(e[6]=n(" Du musst der ",-1)),o(d,{to:"/System/LegalSettings"},{default:s(()=>e[5]||(e[5]=[n(" Datenschutzerklärung ",-1)])),_:1,__:[5]}),e[7]||(e[7]=n(" zustimmen, um einen Systembericht senden zu können. ",-1))]),_:1,__:[6,7]})):(f(),c("div",I,[o(m,{subtype:"success"},{default:s(()=>[e[9]||(e[9]=n(" Du hast der ",-1)),o(d,{to:"/System/LegalSettings"},{default:s(()=>e[8]||(e[8]=[n(" Datenschutzerklärung ",-1)])),_:1,__:[8]}),e[10]||(e[10]=n(" zugestimmt und kannst Systemberichte senden. ",-1))]),_:1,__:[9,10]}),o(B,{title:"Systembericht"},z({default:s(()=>[i.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?(f(),c("div",N,[o(m,{subtype:"danger"},{default:s(()=>e[11]||(e[11]=[n(' Vergewissere Dich, dass mindestens die aktuelle "Release" Version installiert ist. ',-1)])),_:1,__:[11]}),o(m,{subtype:"info"},{default:s(()=>[r("ul",null,[r("li",null,[e[12]||(e[12]=n(" Lies bitte den Hilfetext, der durch Klick auf das ",-1)),o(v,{icon:["far","question-circle"]}),e[13]||(e[13]=n(" angezeigt wird. Nimm das Wiki zur Hilfe. ",-1))]),e[14]||(e[14]=r("li",null," Stelle beim Absenden des Berichtes die Fehlerkonditionen her. Lädt ein Fahrzeug nicht, sollte es angeschlossen und nicht voll geladen sein. Ist PV laden betroffen, sollte die Sonne auch scheinen. Der Systembericht muss dann versendet werden, wenn der Fehler aktuell vorliegt. ",-1)),e[15]||(e[15]=r("li",null," Stelle sicher, dass der richtige Lademodus gewählt ist und im Falle von nicht ladenden Fahrzeugen, dass der Ladepunkt auch entsperrt wurde. ",-1)),e[16]||(e[16]=r("li",null," Das Auslesen der Systemkonfiguration erfolgt direkt nach den Klick auf Absenden und kann einige Zeit in Anspruch nehmen. Du erhältst ca. 15 bis 30 Minuten nach Versand des Systemberichtes von uns automatisch eine E-Mail mit der Ticketnummer unter der die Anfrage bei uns registriert wurde. Wir melden uns bei Dir. Bitte kontrolliere daher immer auch den Spam Ordner auf eingehende Nachrichten. Erhältst Du trotzdem keine Ticketnummer, ist das Versenden des Systemberichtes vermutlich fehlgeschlagen. ",-1))])]),_:1}),o(h,{modelValue:t.email,"onUpdate:modelValue":e[0]||(e[0]=l=>t.email=l),title:"E-Mail",required:"",subtype:"email"},{help:s(()=>e[17]||(e[17]=[n(" Deine E-Mail-Adresse, an die der Support Dir antwortet. ",-1)])),_:1},8,["modelValue"]),o(h,{title:"openWB Seriennummer",required:"","model-value":i.$store.state.mqtt["openWB/system/serial_number"],"onUpdate:modelValue":e[1]||(e[1]=l=>i.updateState("openWB/system/serial_number",l))},{help:s(()=>e[18]||(e[18]=[n(" Die Seriennummer der openWB findest Du außen am, bei älteren Installationen innen im Gehäuse. Du kannst uns aber auch eine Bestellnummer oder Rechnungsnummer übermitteln. Das Gehäuse muss nicht extra geöffnet werden!",-1),r("br",null,null,-1),n(" Bei einer gekauften openWB wird die Seriennummer automatisch ermittelt. ",-1)])),_:1},8,["model-value"]),o(g,{title:"Verwendete Komponenten",required:"",minlength:"3",maxlength:"500","model-value":a.installedComponents,"onUpdate:modelValue":e[2]||(e[2]=l=>t.components=l)},{help:s(()=>[e[20]||(e[20]=n(" Gib hier möglichst detailliert an, welche Anlagenkomponenten (EVU, PV, Speicher) angebunden sind.",-1)),e[21]||(e[21]=r("br",null,null,-1)),o(d,{to:"/HardwareInstallation"},{default:s(()=>e[19]||(e[19]=[n(" Die Angaben können auch direkt in der Konfiguration der Komponenten dauerhaft gespeichert werden. ",-1)])),_:1,__:[19]})]),_:1},8,["model-value"]),o(g,{title:"Fahrzeuge",required:"",minlength:"3",maxlength:"500","model-value":a.vehicleInfo,"onUpdate:modelValue":e[3]||(e[3]=l=>t.vehicles=l)},{help:s(()=>[e[23]||(e[23]=n(" Gib hier an, welche Fahrzeuge geladen (Hersteller, Modell, Baujahr).",-1)),e[24]||(e[24]=r("br",null,null,-1)),o(d,{to:"/VehicleConfiguration"},{default:s(()=>e[22]||(e[22]=[n(" Die Angaben können auch direkt in der Konfiguration der Fahrzeuge dauerhaft gespeichert werden. ",-1)])),_:1,__:[22]})]),_:1},8,["model-value"]),o(g,{modelValue:t.message,"onUpdate:modelValue":e[4]||(e[4]=l=>t.message=l),title:"Problembeschreibung",required:"",minlength:"20",maxlength:"500"},null,8,["modelValue"])])):w("",!0)]),_:2},[i.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:s(()=>[r("div",T,[o(y,{class:C(["col-4",t.enableSendDebugButton?"btn-success":"btn-outline-success"]),disabled:!t.enableSendDebugButton,onButtonClicked:a.sendDebugMessage},{default:s(()=>e[25]||(e[25]=[n(" Absenden ",-1)])),_:1,__:[25]},8,["class","disabled","onButtonClicked"])])]),key:"0"}:void 0]),1024),t.enableSendDebugButton?w("",!0):(f(),k(m,{key:0,subtype:"success"},{default:s(()=>[e[26]||(e[26]=n(" Die Daten für den Fehlerbericht werden im Hintergrund zusammengestellt. Du kannst diese Seite jetzt verlassen. ",-1)),o(_,{icon:["fas","check"]})]),_:1,__:[26]}))]))])])}const $=A(F,[["render",M],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Support.vue"]]);export{$ as default}; diff --git a/web/settings/assets/System-5e2d0137.js b/web/settings/assets/System-5e2d0137.js new file mode 100644 index 0000000000..0d92b79366 --- /dev/null +++ b/web/settings/assets/System-5e2d0137.js @@ -0,0 +1 @@ +import{l as z,ar as E,u as U,af as x,a3 as L,as as F,F as j}from"./vendor-fortawesome-fc4b3a41.js";import{C as D}from"./index-c94f8df4.js";import{_ as R,u as g,l as p,m as y,x as B,E as i,z as h,G as r,A as a,q as W,N as V,M as A,F as k,B as l}from"./vendor-50125810.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";z.add(E,U,x,L,F);const T={name:"OpenwbSystemView",components:{FontAwesomeIcon:j},mixins:[D],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/system/optionBackup","openWB/system/secondary_auto_update","openWB/system/current_commit","openWB/system/current_branch_commit","openWB/system/current_missing_commits","openWB/system/available_branches","openWB/system/current_branch","openWB/system/version","openWB/system/serial_number","openWB/system/ip_address","openWB/system/mac_address","openWB/chargepoint/+/get/version","openWB/chargepoint/+/get/current_branch","openWB/chargepoint/+/config","openWB/general/extern"],warningAcknowledged:!1,selectedTag:"*HEAD*"}},computed:{externalChargepoints:{get(){let t=this.getWildcardTopics("openWB/chargepoint/+/config"),e={};for(const[u,c]of Object.entries(t))c.type==="external_openwb"&&(e[u]=c);return e}},updateAvailable(){return this.$store.state.mqtt["openWB/system/current_branch_commit"]&&this.$store.state.mqtt["openWB/system/current_branch_commit"]!=this.$store.state.mqtt["openWB/system/current_commit"]},releaseChangeValid(){return this.$store.state.mqtt["openWB/system/current_branch"]in this.$store.state.mqtt["openWB/system/available_branches"]&&"tags"in this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]]&&this.selectedTag in this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]].tags},branchGroups(){const t="Release",e="Beta",u="master",c=[t,e],b=(d,f)=>d.value==f.value?0:d.value==t?-1:f.value==t?1:d.value==e?-1:f.value==e?1:d.value==u?-1:f.value==u||d.value>f.value?1:d.value{const m=d=>{const f=d.split("-"),v=f[0].split(".");let w=[];return f.length>1?w=f[1].split("."):w=["release","0"],{semver:v,suffix:w}},o=m(c.value),n=m(b.value);if(o.semver[0]=="*HEAD*")return-1;if(n.semver[0]=="*HEAD*")return 1;if(o.semver[0]>n.semver[0])return-1;if(o.semver[0]n.semver[1])return-1;if(o.semver[1]n.semver[2])return-1;if(o.semver[2]n.suffix[1])return-1;if(o.suffix[1]n.suffix[1])return-1;if(o.suffix[1]n.suffix[1])return-1;if(o.suffix[1]n.suffix[1])return-1;if(o.suffix[1]t[u].type.includes(e)).reduce((u,c)=>({...u,[c]:t[c]}),{})}}},I={class:"system"},P={key:1},N={name:"versionInfoForm"},O={class:"missing-commits"},Z={class:"row justify-content-center"},G={class:"col-md-4 d-flex py-1 justify-content-center"},H={class:"col-md-4 d-flex py-1 justify-content-center"},J={key:3},M={key:0},K={class:"table table-striped"},Q={key:0,name:"powerForm"},X={class:"row justify-content-center"},Y={class:"col-md-4 d-flex py-1 justify-content-center"},ee={class:"col-md-4 d-flex py-1 justify-content-center"},te={key:1,name:"releaseChangeForm"},se={class:"row justify-content-center"},ne={class:"col-md-4 d-flex py-1 justify-content-center"};function re(t,e,u,c,b,m){const o=g("openwb-base-button-group-input"),n=g("openwb-base-alert"),d=g("openwb-base-text-input"),f=g("openwb-base-card"),v=g("font-awesome-icon"),w=g("openwb-base-click-button"),q=g("openwb-base-heading"),S=g("openwb-base-submit-buttons"),C=g("router-link"),_=g("openwb-base-select-input");return p(),y("div",I,[u.installAssistantActive?h("",!0):(p(),B(n,{key:0,subtype:"danger"},{default:i(()=>[e[18]||(e[18]=a("h2",null,"Achtung!",-1)),e[19]||(e[19]=a("p",null," Vor allen Aktionen auf dieser Seite ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)),r(o,{modelValue:b.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=s=>b.warningAcknowledged=s),title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"])]),_:1})),b.warningAcknowledged||u.installAssistantActive?(p(),y("div",P,[r(f,{title:"System Information",subtype:"info",collapsible:!0,collapsed:!0},{default:i(()=>[r(d,{modelValue:t.$store.state.mqtt["openWB/system/serial_number"],"onUpdate:modelValue":e[1]||(e[1]=s=>t.$store.state.mqtt["openWB/system/serial_number"]=s),title:"Seriennummer",readonly:""},null,8,["modelValue"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/ip_address"],"onUpdate:modelValue":e[2]||(e[2]=s=>t.$store.state.mqtt["openWB/system/ip_address"]=s),title:"IP-Adresse",readonly:""},null,8,["modelValue"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/mac_address"],"onUpdate:modelValue":e[3]||(e[3]=s=>t.$store.state.mqtt["openWB/system/mac_address"]=s),title:"MAC-Adresse",readonly:""},null,8,["modelValue"])]),_:1}),r(f,{title:"Versions-Informationen / Aktualisierung",subtype:"success",collapsible:!0,collapsed:!u.installAssistantActive},{default:i(()=>[a("form",N,[r(d,{modelValue:t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[4]||(e[4]=s=>t.$store.state.mqtt["openWB/system/current_branch"]=s),title:"Entwicklungszweig",readonly:""},null,8,["modelValue"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/version"],"onUpdate:modelValue":e[5]||(e[5]=s=>t.$store.state.mqtt["openWB/system/version"]=s),title:"Bezeichnung",readonly:""},null,8,["modelValue"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/current_commit"],"onUpdate:modelValue":e[6]||(e[6]=s=>t.$store.state.mqtt["openWB/system/current_commit"]=s),title:"installierte Version",readonly:"",class:W(m.updateAvailable?"text-danger":"text-success")},null,8,["modelValue","class"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/current_branch_commit"],"onUpdate:modelValue":e[7]||(e[7]=s=>t.$store.state.mqtt["openWB/system/current_branch_commit"]=s),title:"aktuellste Version",readonly:""},null,8,["modelValue"]),m.updateAvailable?(p(),B(f,{key:0,title:"Änderungen",subtype:"info",collapsible:!0,collapsed:!0},{default:i(()=>[a("ul",O,[(p(!0),y(V,null,A(t.$store.state.mqtt["openWB/system/current_missing_commits"],(s,$)=>(p(),y("li",{key:$},k(s),1))),128))])]),_:1})):h("",!0),u.installAssistantActive?h("",!0):(p(),B(n,{key:1,subtype:"danger"},{default:i(()=>[...e[20]||(e[20]=[l(" Nach einem Update wird die Ladestation direkt neu gestartet! Es werden alle eventuell vorhandenen lokalen Änderungen am Programmcode mit dem Update verworfen! ",-1)])]),_:1})),t.$store.state.mqtt["openWB/system/current_branch"]!="Release"&&!u.installAssistantActive?(p(),B(n,{key:2,subtype:"danger"},{default:i(()=>[...e[21]||(e[21]=[l(' Du bist nicht auf dem für den normalen Gebrauch empfohlenen Entwicklungszweig "Release". Wir empfehlen, auf diesen Zweig zu wechseln, sobald dort eine neue Version verfügbar ist.',-1),a("br",null,null,-1),l(" Bevor ein Update angestoßen wird, sollte immer eine Sicherung erstellt werden! Es kann zwar wieder auf eine ältere Version gewechselt werden, jedoch ist nicht sichergestellt, dass es dabei keine Probleme gibt. Gerade wenn das Datenformat in der neuen Version angepasst wurde, wird eine ältere damit Fehler produzieren. ",-1)])]),_:1})):h("",!0),a("div",Z,[a("div",G,[r(w,{class:"btn-info",onButtonClicked:e[8]||(e[8]=s=>m.sendSystemCommand("systemFetchVersions"))},{default:i(()=>[e[22]||(e[22]=l(" Informationen aktualisieren ",-1)),r(v,{icon:["fas","download"]})]),_:1})]),a("div",H,[r(w,{class:W(m.updateAvailable?"btn-success clickable":"btn-outline-success"),disabled:!m.updateAvailable,onButtonClicked:e[9]||(e[9]=s=>m.systemUpdate())},{default:i(()=>[e[23]||(e[23]=l(" Update ",-1)),r(v,{icon:["fas","arrow-alt-circle-up"]})]),_:1},8,["class","disabled"])])]),t.$store.state.mqtt["openWB/general/extern"]!=!0&&!u.installAssistantActive?(p(),y("div",J,[e[28]||(e[28]=a("hr",null,null,-1)),r(q,null,{default:i(()=>[...e[24]||(e[24]=[l("Automatisches Update von Secondary openWBs",-1)])]),_:1}),r(n,{subtype:"info"},{default:i(()=>[...e[25]||(e[25]=[l(' Die automatische Updatefunktion für Secondary openWBs ist nur verfügbar, wenn sich die Primary openWB auf dem Entwicklungszweig "Release" befindet. Das Update wird nur auf Secondary openWBs durchgeführt, welche sich ebenfalls auf dem Entwicklungszweig "Release" befinden. Ist die dort installierte Releaseversion zu alt, muss ein einmaliges Update auf die aktuelle Version manuell auf der betroffenen openWB durchgeführt werden. ',-1)])]),_:1}),t.$store.state.mqtt["openWB/system/current_branch"]=="Release"?(p(),y("div",M,[r(o,{title:"Secondary openWBs automatisch mit der Primary updaten",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/system/secondary_auto_update"],"onUpdate:modelValue":e[10]||(e[10]=s=>t.updateState("openWB/system/secondary_auto_update",s))},{help:i(()=>[...e[26]||(e[26]=[l(' Diese Option ist nur auf dem Entwicklungszweig "Release" verfügbar. Ist diese Option aktiviert, dann werden Secondary openWBs, welche sich ebenfalls auf dem Entwicklungszweig "Release" befinden gleichzeitig mit der Primary openWB aktualisiert. ',-1)])]),_:1},8,["model-value"]),a("table",K,[e[27]||(e[27]=a("thead",null,[a("tr",null,[a("th",null,"Secondary"),a("th",null,"Software-Status"),a("th",null,"IP-Adresse")])],-1)),a("tbody",null,[(p(!0),y(V,null,A(m.externalChargepoints,s=>(p(),y("tr",{key:s.id},[a("td",null,k(s.name),1),a("td",null,k(t.$store.state.mqtt["openWB/chargepoint/"+s.id+"/get/current_branch"]===void 0?"Version zu alt oder openWB ist nicht erreichbar. Bitte manuell updaten bzw. prüfen.":t.$store.state.mqtt["openWB/chargepoint/"+s.id+"/get/current_branch"]!="Release"?"Secondary ist nicht auf dem Release-Zweig. Bitte manuell updaten.":t.$store.state.mqtt["openWB/chargepoint/"+s.id+"/get/current_branch"]+" "+t.$store.state.mqtt["openWB/chargepoint/"+s.id+"/get/version"]),1),a("td",null,k(s.configuration.ip_address),1)]))),128))])]),r(S,{"form-name":"versionInfoForm","hide-defaults":!0,onSave:e[11]||(e[11]=s=>t.$emit("save")),onReset:e[12]||(e[12]=s=>t.$emit("reset"))})])):h("",!0)])):h("",!0)])]),_:1},8,["collapsed"]),u.installAssistantActive?h("",!0):(p(),y("form",Q,[r(f,{title:"Betrieb",collapsible:!0,collapsed:!0},{footer:i(()=>[a("div",X,[a("div",Y,[r(w,{class:"btn-warning",onButtonClicked:e[13]||(e[13]=s=>m.sendSystemCommand("systemReboot"))},{default:i(()=>[e[35]||(e[35]=l(" Neustart ",-1)),r(v,{icon:["fas","undo"]})]),_:1})]),a("div",ee,[r(w,{class:"btn-danger",onButtonClicked:e[14]||(e[14]=s=>m.sendSystemCommand("systemShutdown"))},{default:i(()=>[e[36]||(e[36]=l(" Ausschalten ",-1)),r(v,{icon:["fas","power-off"]})]),_:1})])])]),default:i(()=>[r(n,{subtype:"danger"},{default:i(()=>[...e[29]||(e[29]=[l(" Wenn die Ladestation ausgeschaltet wird, muss sie komplett spannungsfrei geschaltet werden. Erst beim erneuten Zuschalten der Spannung fährt das System wieder hoch. ",-1)])]),_:1}),r(n,{subtype:"info"},{default:i(()=>[e[31]||(e[31]=l(" Ein Neustart löscht wichtige Protokolle, die bei der Fehlersuche helfen können. ",-1)),e[32]||(e[32]=a("br",null,null,-1)),e[33]||(e[33]=l("Tipp: Erstelle stattdessen zuerst einen ",-1)),r(C,{to:"/System/Support"},{default:i(()=>[...e[30]||(e[30]=[l(" Systembericht ",-1)])]),_:1}),e[34]||(e[34]=l(" – das hilft oft mehr und bewahrt alle relevanten Logs. ",-1))]),_:1})]),_:1})])),u.installAssistantActive?h("",!0):(p(),y("form",te,[r(f,{title:"Entwicklungszweig",subtype:"danger",collapsible:!0,collapsed:!0},{footer:i(()=>[a("div",se,[a("div",ne,[r(w,{class:W(m.releaseChangeValid?"btn-danger clickable":"btn-outline-danger"),disabled:!m.releaseChangeValid,onButtonClicked:e[17]||(e[17]=s=>m.switchBranch())},{default:i(()=>[r(v,{icon:["fas","skull-crossbones"]}),e[39]||(e[39]=l(" Branch und Tag wechseln ",-1)),r(v,{icon:["fas","skull-crossbones"]})]),_:1},8,["class","disabled"])])])]),default:i(()=>[r(n,{subtype:"danger"},{default:i(()=>[...e[37]||(e[37]=[l(" Nach einem Wechsel wird die Ladestation direkt neu gestartet! Es werden alle lokalen Änderungen mit dem Wechsel verworfen! ",-1)])]),_:1}),r(n,{subtype:"warning"},{default:i(()=>[...e[38]||(e[38]=[l(" Bevor auf einen neuen Entwicklungszweig gewechselt wird sollte immer eine Sicherung erstellt werden! Es kann zwar wieder auf eine ältere Version gewechselt werden, jedoch ist nicht sichergestellt, dass es dabei keine Probleme gibt. Gerade wenn das Datenformat in der neuen Version angepasst wurde, wird eine ältere damit Fehler produzieren.",-1),a("br",null,null,-1),l(' Für den normalen Betrieb wird der Zweig "Release" empfohlen. Der Softwarestand wurde ausgiebig getestet, sodass ein Fehlverhalten relativ unwahrscheinlich ist.',-1),a("br",null,null,-1),l(' Der "Beta" Zweig beinhaltet Vorabversionen, bei denen die Entwicklung soweit abgeschlossen ist. Die enthaltenen Anpassungen wurden rudimentär getestet, können aber durchaus noch Fehler enthalten.',-1),a("br",null,null,-1),l(' Die aktuelle Softwareentwicklung findet im Zweig "master" statt. Die enthaltenen Anpassungen sind teilweise noch nicht getestet und enthalten potentiell Fehler.',-1),a("br",null,null,-1),l(' Einträge, die mit "feature" beginnen, sind experimentelle Entwicklungszweige, die nicht für den allgemeinen Gebrauch gedacht sind. ',-1)])]),_:1}),r(_,{title:"Entwicklungszweig",groups:m.branchGroups,"model-value":t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[15]||(e[15]=s=>t.updateState("openWB/system/current_branch",s))},null,8,["groups","model-value"]),r(_,{modelValue:b.selectedTag,"onUpdate:modelValue":e[16]||(e[16]=s=>b.selectedTag=s),title:"Tag",options:m.branchTagOptions},null,8,["modelValue","options"])]),_:1})]))])):h("",!0)])}const fe=R(T,[["render",re],["__scopeId","data-v-059847f6"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/System.vue"]]);export{fe as default}; diff --git a/web/settings/assets/System-9f60a387.js b/web/settings/assets/System-9f60a387.js deleted file mode 100644 index 38845d1c91..0000000000 --- a/web/settings/assets/System-9f60a387.js +++ /dev/null @@ -1 +0,0 @@ -import{l as z,ar as E,u as U,af as x,a3 as L,as as F,F as j}from"./vendor-fortawesome-a02b6813.js";import{C as D}from"./index-8dd8e083.js";import{_ as R,u as g,l as p,m as y,x as _,E as i,z as h,G as r,A as a,q as k,N as V,M as A,F as B,B as l}from"./vendor-25d394b4.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";z.add(E,U,x,L,F);const T={name:"OpenwbSystemView",components:{FontAwesomeIcon:j},mixins:[D],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/system/optionBackup","openWB/system/secondary_auto_update","openWB/system/current_commit","openWB/system/current_branch_commit","openWB/system/current_missing_commits","openWB/system/available_branches","openWB/system/current_branch","openWB/system/version","openWB/system/serial_number","openWB/system/ip_address","openWB/system/mac_address","openWB/chargepoint/+/get/version","openWB/chargepoint/+/get/current_branch","openWB/chargepoint/+/config","openWB/general/extern"],warningAcknowledged:!1,selectedTag:"*HEAD*"}},computed:{externalChargepoints:{get(){let t=this.getWildcardTopics("openWB/chargepoint/+/config"),e={};for(const[u,c]of Object.entries(t))c.type==="external_openwb"&&(e[u]=c);return e}},updateAvailable(){return this.$store.state.mqtt["openWB/system/current_branch_commit"]&&this.$store.state.mqtt["openWB/system/current_branch_commit"]!=this.$store.state.mqtt["openWB/system/current_commit"]},releaseChangeValid(){return this.$store.state.mqtt["openWB/system/current_branch"]in this.$store.state.mqtt["openWB/system/available_branches"]&&"tags"in this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]]&&this.selectedTag in this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]].tags},branchGroups(){const t="Release",e="Beta",u="master",c=[t,e],b=(d,f)=>d.value==f.value?0:d.value==t?-1:f.value==t?1:d.value==e?-1:f.value==e?1:d.value==u?-1:f.value==u||d.value>f.value?1:d.value{const m=d=>{const f=d.split("-"),v=f[0].split(".");let w=[];return f.length>1?w=f[1].split("."):w=["release","0"],{semver:v,suffix:w}},o=m(c.value),n=m(b.value);if(o.semver[0]=="*HEAD*")return-1;if(n.semver[0]=="*HEAD*")return 1;if(o.semver[0]>n.semver[0])return-1;if(o.semver[0]n.semver[1])return-1;if(o.semver[1]n.semver[2])return-1;if(o.semver[2]n.suffix[1])return-1;if(o.suffix[1]n.suffix[1])return-1;if(o.suffix[1]n.suffix[1])return-1;if(o.suffix[1]n.suffix[1])return-1;if(o.suffix[1]t[u].type.includes(e)).reduce((u,c)=>({...u,[c]:t[c]}),{})}}},I={class:"system"},P={key:1},N={name:"versionInfoForm"},O={class:"missing-commits"},Z={class:"row justify-content-center"},G={class:"col-md-4 d-flex py-1 justify-content-center"},H={class:"col-md-4 d-flex py-1 justify-content-center"},J={key:3},M={key:0},K={class:"table table-striped"},Q={key:0,name:"powerForm"},X={class:"row justify-content-center"},Y={class:"col-md-4 d-flex py-1 justify-content-center"},ee={class:"col-md-4 d-flex py-1 justify-content-center"},te={key:1,name:"releaseChangeForm"},se={class:"row justify-content-center"},ne={class:"col-md-4 d-flex py-1 justify-content-center"};function re(t,e,u,c,b,m){const o=g("openwb-base-button-group-input"),n=g("openwb-base-alert"),d=g("openwb-base-text-input"),f=g("openwb-base-card"),v=g("font-awesome-icon"),w=g("openwb-base-click-button"),q=g("openwb-base-heading"),S=g("openwb-base-submit-buttons"),C=g("router-link"),W=g("openwb-base-select-input");return p(),y("div",I,[u.installAssistantActive?h("",!0):(p(),_(n,{key:0,subtype:"danger"},{default:i(()=>[e[18]||(e[18]=a("h2",null,"Achtung!",-1)),e[19]||(e[19]=a("p",null," Vor allen Aktionen auf dieser Seite ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)),r(o,{modelValue:b.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=s=>b.warningAcknowledged=s),title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"])]),_:1,__:[18,19]})),b.warningAcknowledged||u.installAssistantActive?(p(),y("div",P,[r(f,{title:"System Information",subtype:"info",collapsible:!0,collapsed:!0},{default:i(()=>[r(d,{modelValue:t.$store.state.mqtt["openWB/system/serial_number"],"onUpdate:modelValue":e[1]||(e[1]=s=>t.$store.state.mqtt["openWB/system/serial_number"]=s),title:"Seriennummer",readonly:""},null,8,["modelValue"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/ip_address"],"onUpdate:modelValue":e[2]||(e[2]=s=>t.$store.state.mqtt["openWB/system/ip_address"]=s),title:"IP-Adresse",readonly:""},null,8,["modelValue"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/mac_address"],"onUpdate:modelValue":e[3]||(e[3]=s=>t.$store.state.mqtt["openWB/system/mac_address"]=s),title:"MAC-Adresse",readonly:""},null,8,["modelValue"])]),_:1}),r(f,{title:"Versions-Informationen / Aktualisierung",subtype:"success",collapsible:!0,collapsed:!u.installAssistantActive},{default:i(()=>[a("form",N,[r(d,{modelValue:t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[4]||(e[4]=s=>t.$store.state.mqtt["openWB/system/current_branch"]=s),title:"Entwicklungszweig",readonly:""},null,8,["modelValue"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/version"],"onUpdate:modelValue":e[5]||(e[5]=s=>t.$store.state.mqtt["openWB/system/version"]=s),title:"Bezeichnung",readonly:""},null,8,["modelValue"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/current_commit"],"onUpdate:modelValue":e[6]||(e[6]=s=>t.$store.state.mqtt["openWB/system/current_commit"]=s),title:"installierte Version",readonly:"",class:k(m.updateAvailable?"text-danger":"text-success")},null,8,["modelValue","class"]),r(d,{modelValue:t.$store.state.mqtt["openWB/system/current_branch_commit"],"onUpdate:modelValue":e[7]||(e[7]=s=>t.$store.state.mqtt["openWB/system/current_branch_commit"]=s),title:"aktuellste Version",readonly:""},null,8,["modelValue"]),m.updateAvailable?(p(),_(f,{key:0,title:"Änderungen",subtype:"info",collapsible:!0,collapsed:!0},{default:i(()=>[a("ul",O,[(p(!0),y(V,null,A(t.$store.state.mqtt["openWB/system/current_missing_commits"],(s,$)=>(p(),y("li",{key:$},B(s),1))),128))])]),_:1})):h("",!0),u.installAssistantActive?h("",!0):(p(),_(n,{key:1,subtype:"danger"},{default:i(()=>e[20]||(e[20]=[l(" Nach einem Update wird die Ladestation direkt neu gestartet! Es werden alle eventuell vorhandenen lokalen Änderungen am Programmcode mit dem Update verworfen! ",-1)])),_:1,__:[20]})),t.$store.state.mqtt["openWB/system/current_branch"]!="Release"&&!u.installAssistantActive?(p(),_(n,{key:2,subtype:"danger"},{default:i(()=>e[21]||(e[21]=[l(' Du bist nicht auf dem für den normalen Gebrauch empfohlenen Entwicklungszweig "Release". Wir empfehlen, auf diesen Zweig zu wechseln, sobald dort eine neue Version verfügbar ist.',-1),a("br",null,null,-1),l(" Bevor ein Update angestoßen wird, sollte immer eine Sicherung erstellt werden! Es kann zwar wieder auf eine ältere Version gewechselt werden, jedoch ist nicht sichergestellt, dass es dabei keine Probleme gibt. Gerade wenn das Datenformat in der neuen Version angepasst wurde, wird eine ältere damit Fehler produzieren. ",-1)])),_:1,__:[21]})):h("",!0),a("div",Z,[a("div",G,[r(w,{class:"btn-info",onButtonClicked:e[8]||(e[8]=s=>m.sendSystemCommand("systemFetchVersions"))},{default:i(()=>[e[22]||(e[22]=l(" Informationen aktualisieren ",-1)),r(v,{icon:["fas","download"]})]),_:1,__:[22]})]),a("div",H,[r(w,{class:k(m.updateAvailable?"btn-success clickable":"btn-outline-success"),disabled:!m.updateAvailable,onButtonClicked:e[9]||(e[9]=s=>m.systemUpdate())},{default:i(()=>[e[23]||(e[23]=l(" Update ",-1)),r(v,{icon:["fas","arrow-alt-circle-up"]})]),_:1,__:[23]},8,["class","disabled"])])]),t.$store.state.mqtt["openWB/general/extern"]!=!0&&!u.installAssistantActive?(p(),y("div",J,[e[28]||(e[28]=a("hr",null,null,-1)),r(q,null,{default:i(()=>e[24]||(e[24]=[l("Automatisches Update von Secondary openWBs",-1)])),_:1,__:[24]}),r(n,{subtype:"info"},{default:i(()=>e[25]||(e[25]=[l(' Die automatische Updatefunktion für Secondary openWBs ist nur verfügbar, wenn sich die Primary openWB auf dem Entwicklungszweig "Release" befindet. Das Update wird nur auf Secondary openWBs durchgeführt, welche sich ebenfalls auf dem Entwicklungszweig "Release" befinden. Ist die dort installierte Releaseversion zu alt, muss ein einmaliges Update auf die aktuelle Version manuell auf der betroffenen openWB durchgeführt werden. ',-1)])),_:1,__:[25]}),t.$store.state.mqtt["openWB/system/current_branch"]=="Release"?(p(),y("div",M,[r(o,{title:"Secondary openWBs automatisch mit der Primary updaten",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/system/secondary_auto_update"],"onUpdate:modelValue":e[10]||(e[10]=s=>t.updateState("openWB/system/secondary_auto_update",s))},{help:i(()=>e[26]||(e[26]=[l(' Diese Option ist nur auf dem Entwicklungszweig "Release" verfügbar. Ist diese Option aktiviert, dann werden Secondary openWBs, welche sich ebenfalls auf dem Entwicklungszweig "Release" befinden gleichzeitig mit der Primary openWB aktualisiert. ',-1)])),_:1},8,["model-value"]),a("table",K,[e[27]||(e[27]=a("thead",null,[a("tr",null,[a("th",null,"Secondary"),a("th",null,"Software-Status"),a("th",null,"IP-Adresse")])],-1)),a("tbody",null,[(p(!0),y(V,null,A(m.externalChargepoints,s=>(p(),y("tr",{key:s.id},[a("td",null,B(s.name),1),a("td",null,B(t.$store.state.mqtt["openWB/chargepoint/"+s.id+"/get/current_branch"]===void 0?"Version zu alt oder openWB ist nicht erreichbar. Bitte manuell updaten bzw. prüfen.":t.$store.state.mqtt["openWB/chargepoint/"+s.id+"/get/current_branch"]!="Release"?"Secondary ist nicht auf dem Release-Zweig. Bitte manuell updaten.":t.$store.state.mqtt["openWB/chargepoint/"+s.id+"/get/current_branch"]+" "+t.$store.state.mqtt["openWB/chargepoint/"+s.id+"/get/version"]),1),a("td",null,B(s.configuration.ip_address),1)]))),128))])]),r(S,{"form-name":"versionInfoForm","hide-defaults":!0,onSave:e[11]||(e[11]=s=>t.$emit("save")),onReset:e[12]||(e[12]=s=>t.$emit("reset"))})])):h("",!0)])):h("",!0)])]),_:1},8,["collapsed"]),u.installAssistantActive?h("",!0):(p(),y("form",Q,[r(f,{title:"Betrieb",collapsible:!0,collapsed:!0},{footer:i(()=>[a("div",X,[a("div",Y,[r(w,{class:"btn-warning",onButtonClicked:e[13]||(e[13]=s=>m.sendSystemCommand("systemReboot"))},{default:i(()=>[e[35]||(e[35]=l(" Neustart ",-1)),r(v,{icon:["fas","undo"]})]),_:1,__:[35]})]),a("div",ee,[r(w,{class:"btn-danger",onButtonClicked:e[14]||(e[14]=s=>m.sendSystemCommand("systemShutdown"))},{default:i(()=>[e[36]||(e[36]=l(" Ausschalten ",-1)),r(v,{icon:["fas","power-off"]})]),_:1,__:[36]})])])]),default:i(()=>[r(n,{subtype:"danger"},{default:i(()=>e[29]||(e[29]=[l(" Wenn die Ladestation ausgeschaltet wird, muss sie komplett spannungsfrei geschaltet werden. Erst beim erneuten Zuschalten der Spannung fährt das System wieder hoch. ",-1)])),_:1,__:[29]}),r(n,{subtype:"info"},{default:i(()=>[e[31]||(e[31]=l(" Ein Neustart löscht wichtige Protokolle, die bei der Fehlersuche helfen können. ",-1)),e[32]||(e[32]=a("br",null,null,-1)),e[33]||(e[33]=l("Tipp: Erstelle stattdessen zuerst einen ",-1)),r(C,{to:"/System/Support"},{default:i(()=>e[30]||(e[30]=[l(" Systembericht ",-1)])),_:1,__:[30]}),e[34]||(e[34]=l(" – das hilft oft mehr und bewahrt alle relevanten Logs. ",-1))]),_:1,__:[31,32,33,34]})]),_:1})])),u.installAssistantActive?h("",!0):(p(),y("form",te,[r(f,{title:"Entwicklungszweig",subtype:"danger",collapsible:!0,collapsed:!0},{footer:i(()=>[a("div",se,[a("div",ne,[r(w,{class:k(m.releaseChangeValid?"btn-danger clickable":"btn-outline-danger"),disabled:!m.releaseChangeValid,onButtonClicked:e[17]||(e[17]=s=>m.switchBranch())},{default:i(()=>[r(v,{icon:["fas","skull-crossbones"]}),e[39]||(e[39]=l(" Branch und Tag wechseln ",-1)),r(v,{icon:["fas","skull-crossbones"]})]),_:1,__:[39]},8,["class","disabled"])])])]),default:i(()=>[r(n,{subtype:"danger"},{default:i(()=>e[37]||(e[37]=[l(" Nach einem Wechsel wird die Ladestation direkt neu gestartet! Es werden alle lokalen Änderungen mit dem Wechsel verworfen! ",-1)])),_:1,__:[37]}),r(n,{subtype:"warning"},{default:i(()=>e[38]||(e[38]=[l(" Bevor auf einen neuen Entwicklungszweig gewechselt wird sollte immer eine Sicherung erstellt werden! Es kann zwar wieder auf eine ältere Version gewechselt werden, jedoch ist nicht sichergestellt, dass es dabei keine Probleme gibt. Gerade wenn das Datenformat in der neuen Version angepasst wurde, wird eine ältere damit Fehler produzieren.",-1),a("br",null,null,-1),l(' Für den normalen Betrieb wird der Zweig "Release" empfohlen. Der Softwarestand wurde ausgiebig getestet, sodass ein Fehlverhalten relativ unwahrscheinlich ist.',-1),a("br",null,null,-1),l(' Der "Beta" Zweig beinhaltet Vorabversionen, bei denen die Entwicklung soweit abgeschlossen ist. Die enthaltenen Anpassungen wurden rudimentär getestet, können aber durchaus noch Fehler enthalten.',-1),a("br",null,null,-1),l(' Die aktuelle Softwareentwicklung findet im Zweig "master" statt. Die enthaltenen Anpassungen sind teilweise noch nicht getestet und enthalten potentiell Fehler.',-1),a("br",null,null,-1),l(' Einträge, die mit "feature" beginnen, sind experimentelle Entwicklungszweige, die nicht für den allgemeinen Gebrauch gedacht sind. ',-1)])),_:1,__:[38]}),r(W,{title:"Entwicklungszweig",groups:m.branchGroups,"model-value":t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[15]||(e[15]=s=>t.updateState("openWB/system/current_branch",s))},null,8,["groups","model-value"]),r(W,{modelValue:b.selectedTag,"onUpdate:modelValue":e[16]||(e[16]=s=>b.selectedTag=s),title:"Tag",options:m.branchTagOptions},null,8,["modelValue","options"])]),_:1})]))])):h("",!0)])}const fe=R(T,[["render",re],["__scopeId","data-v-059847f6"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/System.vue"]]);export{fe as default}; diff --git a/web/settings/assets/TestingStore-3a739645.js b/web/settings/assets/TestingStore-3a739645.js deleted file mode 100644 index 0eb95f8f85..0000000000 --- a/web/settings/assets/TestingStore-3a739645.js +++ /dev/null @@ -1 +0,0 @@ -import{C as B}from"./index-8dd8e083.js";import{S as O}from"./OpenwbSortableList-c7b5b151.js";import{_ as T,u,l as D,m as Z,A as s,G as o,E as n,B as a,F as S}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const N={name:"OpenwbTestingStoreView",components:{SortableList:O},mixins:[B],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:[]}}},G={class:"testingStore"},L={name:"testingStoreForm"};function j(t,e,A,F,J,W){const b=u("OpenwbBaseHeading"),E=u("OpenwbBaseSettingElement"),$=u("openwb-base-button-input"),v=u("openwb-base-button-group-input"),i=u("openwb-base-card"),f=u("openwb-base-color-picker"),p=u("openwb-base-text-input"),r=u("openwb-base-number-input"),x=u("openwb-base-textarea"),g=u("openwb-base-range-input"),m=u("openwb-base-select-input"),w=u("openwb-base-heading"),V=u("openwb-base-checkbox-input"),y=u("openwb-base-array-input"),k=u("openwb-base-copy-to-clipboard"),d=u("openwb-base-alert"),U=u("sortable-list"),z=u("openwb-base-submit-buttons");return D(),Z("div",G,[s("form",L,[o(i,{title:"Elemente mit BaseSettingElement"},{default:n(()=>[o(b,null,{default:n(()=>e[31]||(e[31]=[a(" Basiselement ",-1)])),_:1,__:[31]}),o(E,null,{title:n(()=>e[32]||(e[32]=[s("span",{style:{"font-style":"italic"}},[a(" Styled "),s("span",{style:{"font-weight":"bold"}},"Title"),a(" Slot ")],-1)])),help:n(()=>e[33]||(e[33]=[a(" Basis-Element für alle weiteren Elemente. Das ist ein ",-1),s("a",{href:"test"},"Link",-1),a(". ",-1)])),_:1}),o(b,null,{default:n(()=>e[34]||(e[34]=[a(" Abgeleitete Elemente ",-1)])),_:1,__:[34]}),o($,{title:"Button Input","button-text":"Klick mich",subtype:"info"},{help:n(()=>e[35]||(e[35]=[a(" Einfacher Click-Button für Aktionen. ",-1)])),_:1}),o(v,{title:"Button Group Input",buttons:[{buttonValue:1,text:"Eins"},{buttonValue:2,text:"Zwei"}],"model-value":t.$store.state.examples.buttonGroup1,"onUpdate:modelValue":e[0]||(e[0]=l=>t.updateState("buttonGroup1",l))},{help:n(()=>e[36]||(e[36]=[a(" Button-Group Element zur Auswahl weniger Optionen. Bei vielen Optionen besser ein Dropdown verwenden. ",-1),s("a",{href:"test"},"Link",-1),a(". ",-1)])),_:1},8,["model-value"])]),_:1}),o(i,{title:"Einfache Eingabefelder"},{default:n(()=>[o(p,{title:"1. Text","model-value":t.$store.state.examples.text1,"onUpdate:modelValue":e[2]||(e[2]=l=>t.updateState("text1",l))},{help:n(()=>e[37]||(e[37]=[a(" Einfacher Text",-1),s("br",null,null,-1),a(' Diese Komponente hat einen Slot "append" für zusätzliche Elemente, die rechts vom Eingabefeld angezeigt werden sollen. Das ist hier z.B. ein Farbauswahl-Element. Die Farbe kann zurückgesetzt werden, weil eine Standardfarbe gesetzt ist. Das ist hier z.B. rot (#ff0000). ',-1)])),append:n(()=>[o(f,{class:"p-1","model-value":t.$store.state.examples.color1,"default-color":"#ff0000","onUpdate:modelValue":e[1]||(e[1]=l=>t.updateState("color1",l))},null,8,["model-value"])]),_:1},8,["model-value"]),o(p,{title:"2. Text (E-Mail)",subtype:"email","model-value":t.$store.state.examples.text2,"onUpdate:modelValue":e[3]||(e[3]=l=>t.updateState("text2",l))},{help:n(()=>e[38]||(e[38]=[a(" Eingabefeld für E-Mailadressen ",-1)])),_:1},8,["model-value"]),o(p,{title:"3. Text (Host)",subtype:"host","model-value":t.$store.state.examples.text3,"onUpdate:modelValue":e[4]||(e[4]=l=>t.updateState("text3",l))},{help:n(()=>e[39]||(e[39]=[a(" Eingabefeld für Hosts (IP oder Namen) ",-1)])),_:1},8,["model-value"]),o(p,{title:"4. Text (URL)",subtype:"url","model-value":t.$store.state.examples.text4,"onUpdate:modelValue":e[5]||(e[5]=l=>t.updateState("text4",l))},{help:n(()=>e[40]||(e[40]=[a(" Eingabefeld für URLs ",-1)])),_:1},8,["model-value"]),o(p,{title:"5. Text (User)",subtype:"user","model-value":t.$store.state.examples.text5,"onUpdate:modelValue":e[6]||(e[6]=l=>t.updateState("text5",l))},{help:n(()=>e[41]||(e[41]=[a(" Eingabefeld für Benutzernamen ",-1)])),_:1},8,["model-value"]),o(p,{title:"6. Text (Time)",subtype:"time","model-value":t.$store.state.examples.text6,"onUpdate:modelValue":e[7]||(e[7]=l=>t.updateState("text6",l))},{help:n(()=>e[42]||(e[42]=[a(" Eingabefeld für Zeiten ",-1)])),_:1},8,["model-value"]),o(p,{title:"7. Text (Date)",subtype:"date","model-value":t.$store.state.examples.text7,"onUpdate:modelValue":e[8]||(e[8]=l=>t.updateState("text7",l))},{help:n(()=>e[43]||(e[43]=[a(" Eingabefeld für ein Datum ",-1)])),_:1},8,["model-value"]),e[49]||(e[49]=s("hr",null,null,-1)),o(r,{title:"1. Zahl",min:5,max:9,step:2,unit:"kW","model-value":t.$store.state.examples.number1,"onUpdate:modelValue":e[10]||(e[10]=l=>t.updateState("number1",l))},{help:n(()=>e[44]||(e[44]=[a(" Zahl mit Einheit.",-1),s("br",null,null,-1),a(' Diese Komponente hat einen Slot "append" für zusätzliche Elemente, die rechts vom Eingabefeld angezeigt werden sollen. Das ist hier z.B. ein Farbauswahl-Element. Ohne Standardfarbe kann die Farbe nicht zurückgesetzt werden. ',-1)])),append:n(()=>[o(f,{class:"p-1","model-value":t.$store.state.examples.color2,"onUpdate:modelValue":e[9]||(e[9]=l=>t.updateState("color2",l))},null,8,["model-value"])]),_:1},8,["model-value"]),o(r,{title:"2. Zahl",min:10,max:32,step:2,"model-value":t.$store.state.examples.number2,"onUpdate:modelValue":e[11]||(e[11]=l=>t.updateState("number2",l))},{help:n(()=>e[45]||(e[45]=[a(" Eingabefeld für Zahlen ohne Einheit ",-1)])),_:1},8,["model-value"]),o(r,{title:"3. Zahl",min:-30,max:30,step:.01,precision:2,unit:"ct/kWh","model-value":t.$store.state.examples.number3*1e5,"onUpdate:modelValue":e[12]||(e[12]=l=>t.updateState("number3",parseFloat((l/1e5).toFixed(7))))},{help:n(()=>e[46]||(e[46]=[a(" Eingabefeld für Zahlen mit Einheit und Nachkommastellen",-1),s("br",null,null,-1),a(' Zusätzlich zum optionalen Parameter "step" sollte immer auch "precision" gesetzt sein, um unvermeidbare Darstellungsfehler zu vermeiden.',-1),s("br",null,null,-1),a(" Wenn der dargestellte Wert eine andere Genauigkeit/Einheit als der Wert im Backend hat (z.B. €/Wh <-> ct/kWh), dann ist bei der Umrechnung darauf zu achten, dass es nicht erneut zu Ungenauigkeiten bei Dezimalzahlen kommt. ",-1)])),_:1},8,["model-value"]),o(p,{title:"1. Passwort",subtype:"password","model-value":t.$store.state.examples.password1,"onUpdate:modelValue":e[13]||(e[13]=l=>t.updateState("password1",l))},{help:n(()=>e[47]||(e[47]=[a(" Das Passwort kann per Klick auf das Auge angezeigt werden. ",-1)])),_:1},8,["model-value"]),e[50]||(e[50]=s("hr",null,null,-1)),o(x,{title:"1. Textarea",maxlength:"50","model-value":t.$store.state.examples.textarea1,"onUpdate:modelValue":e[14]||(e[14]=l=>t.updateState("textarea1",l))},{help:n(()=>e[48]||(e[48]=[a(" Textarea mit maximaler Länge von 50 Zeichen. ",-1)])),_:1},8,["model-value"])]),_:1,__:[49,50]}),o(i,{title:"Spezielle Elemente"},{default:n(()=>[o(g,{title:"1. Range",min:6,max:32,step:1,unit:"A","model-value":t.$store.state.examples.range1,"onUpdate:modelValue":e[15]||(e[15]=l=>t.updateState("range1",l))},{help:n(()=>e[51]||(e[51]=[a(" Range ohne spezielle Labels ",-1)])),_:1},8,["model-value"]),o(g,{title:"2. Range",min:0,max:11,step:1,unit:"A",labels:[{label:"Aus",value:0},{label:6,value:6},{label:7,value:7},{label:8,value:8},{label:9,value:9},{label:10,value:10},{label:11,value:11},{label:12,value:12},{label:13,value:13},{label:14,value:14},{label:15,value:15},{label:16,value:16}],"model-value":t.$store.state.examples.range2,"onUpdate:modelValue":e[16]||(e[16]=l=>t.updateState("range2",l))},{help:n(()=>e[52]||(e[52]=[a(" Range mit speziellen Labels ",-1)])),_:1},8,["model-value"]),e[58]||(e[58]=s("hr",null,null,-1)),o(m,{title:"1. Select","not-selected":"Bitte auswählen",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}],"model-value":t.$store.state.examples.select1,"onUpdate:modelValue":e[17]||(e[17]=l=>t.updateState("select1",l))},{help:n(()=>e[53]||(e[53]=[a(" Select mit einfachen Optionen ",-1)])),_:1},8,["model-value"]),o(m,{title:"2. Select",groups:[{label:"Gruppe 1 (Number)",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}]},{label:"Gruppe 2 (String)",options:[{value:"three",text:"Drei"},{value:"four",text:"Vier"}]}],"not-selected":"Bitte auswählen","add-button":!0,"model-value":t.$store.state.examples.select2,"onUpdate:modelValue":e[18]||(e[18]=l=>t.updateState("select2",l)),"onInput:add":e[19]||(e[19]=l=>t.alert("add button pressed"))},{help:n(()=>e[54]||(e[54]=[a(" Select mit Gruppen und Add-Button. ",-1)])),_:1},8,["model-value"]),e[59]||(e[59]=s("hr",null,null,-1)),o(v,{title:"1. Button-Group",buttons:[{buttonValue:1,text:"Eins"},{buttonValue:2,text:"Zwei"}],"model-value":t.$store.state.examples.buttonGroup1,"onUpdate:modelValue":e[20]||(e[20]=l=>t.updateState("buttonGroup1",l))},{help:n(()=>e[55]||(e[55]=[a(" Hilfetext ",-1)])),_:1},8,["model-value"]),o(w,null,{default:n(()=>[e[56]||(e[56]=a(" Select Element ohne Label: ",-1)),o(m,{class:"mb-1","not-selected":"Bitte auswählen",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}],"model-value":t.$store.state.examples.select1,"onUpdate:modelValue":e[21]||(e[21]=l=>t.updateState("select1",l))},null,8,["model-value"])]),_:1,__:[56]}),e[60]||(e[60]=s("hr",null,null,-1)),o(V,{title:"1. Checkbox","model-value":t.$store.state.examples.checkbox1,"onUpdate:modelValue":e[22]||(e[22]=l=>t.updateState("checkbox1",l))},{help:n(()=>e[57]||(e[57]=[a(" Hilfetext ",-1)])),_:1},8,["model-value"])]),_:1,__:[58,59,60]}),o(i,{title:"JSON Gruppe"},{default:n(()=>[o(p,{title:"JSON 1",subtype:"json","model-value":t.$store.state.examples.json1,"onUpdate:modelValue":e[23]||(e[23]=l=>t.updateState("json1",l))},{help:n(()=>e[61]||(e[61]=[a(" JSON Objekt ",-1)])),_:1},8,["model-value"]),o(p,{title:"JSON 1 Text","model-value":t.$store.state.examples.json1.text,"onUpdate:modelValue":e[24]||(e[24]=l=>t.updateState("json1",l,"text"))},{help:n(()=>e[62]||(e[62]=[a(" Text im JSON Objekt ",-1)])),_:1},8,["model-value"]),o(r,{title:"JSON 1 Zahl","model-value":t.$store.state.examples.json1.number,"onUpdate:modelValue":e[25]||(e[25]=l=>t.updateState("json1",l,"number"))},{help:n(()=>e[63]||(e[63]=[a(" Zahl im JSON Objekt ",-1)])),_:1},8,["model-value"]),o(y,{title:"Tag Array","model-value":t.$store.state.examples.tags,"onUpdate:modelValue":e[26]||(e[26]=l=>t.updateState("tags",l))},{help:n(()=>[s("pre",null,S(JSON.stringify(t.$store.state.examples.tags,void 0,2)),1)]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Meldungen"},{header:n(()=>e[64]||(e[64]=[s("span",{style:{"text-decoration":"underline","font-style":"italic"}},[a(" Styled "),s("span",{style:{"font-weight":"initial"}},"Header"),a(" Slot ")],-1)])),default:n(()=>[o(w,null,{help:n(()=>e[65]||(e[65]=[a(" Es sind auch Hilfetexte im #help Slot möglich. ",-1),s("a",{href:"test"},"Link",-1)])),default:n(()=>[e[66]||(e[66]=a(" Das ist eine Überschrift ",-1))]),_:1,__:[66]}),o(d,null,{default:n(()=>[e[68]||(e[68]=a(" Meldung ohne speziellen Subtype. ",-1)),o(k,null,{default:n(()=>e[67]||(e[67]=[a("Kopiere mich!",-1)])),_:1,__:[67]})]),_:1,__:[68]}),o(d,{subtype:"info"},{default:n(()=>e[69]||(e[69]=[a(" Infomeldung ",-1)])),_:1,__:[69]}),o(d,{subtype:"warning"},{default:n(()=>e[70]||(e[70]=[a(" Warnmeldung ",-1)])),_:1,__:[70]}),o(d,{subtype:"danger"},{default:n(()=>e[71]||(e[71]=[a(" Fehlermeldung ",-1)])),_:1,__:[71]})]),_:1}),o(i,{title:"Listen"},{default:n(()=>[o(U,{modelValue:t.$store.state.examples.hierarchy1,"onUpdate:modelValue":e[27]||(e[27]=l=>t.$store.state.examples.hierarchy1=l),title:"Liste 1",labels:t.$store.state.examples.hierarchy1Labels},{help:n(()=>[s("pre",null,S(JSON.stringify(t.$store.state.examples.hierarchy1,void 0,2)),1)]),_:1},8,["modelValue","labels"])]),_:1}),o(z,{"form-name":"testingStoreForm",onSave:e[28]||(e[28]=l=>t.$emit("save")),onReset:e[29]||(e[29]=l=>t.$emit("reset")),onDefaults:e[30]||(e[30]=l=>t.$emit("defaults"))})])])}const Q=T(N,[["render",j],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/TestingStore.vue"]]);export{Q as default}; diff --git a/web/settings/assets/TestingStore-4c4aaf29.js b/web/settings/assets/TestingStore-4c4aaf29.js new file mode 100644 index 0000000000..5cf5f3a4e0 --- /dev/null +++ b/web/settings/assets/TestingStore-4c4aaf29.js @@ -0,0 +1 @@ +import{C as B}from"./index-c94f8df4.js";import{S as O}from"./OpenwbSortableList-96f09c46.js";import{_ as T,u,l as D,m as Z,A as s,G as o,E as n,B as a,F as S}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";const N={name:"OpenwbTestingStoreView",components:{SortableList:O},mixins:[B],emits:["save","reset","defaults"],data(){return{mqttTopicsToSubscribe:[]}}},G={class:"testingStore"},L={name:"testingStoreForm"};function j(t,e,A,F,J,W){const b=u("OpenwbBaseHeading"),E=u("OpenwbBaseSettingElement"),$=u("openwb-base-button-input"),v=u("openwb-base-button-group-input"),i=u("openwb-base-card"),f=u("openwb-base-color-picker"),p=u("openwb-base-text-input"),r=u("openwb-base-number-input"),x=u("openwb-base-textarea"),g=u("openwb-base-range-input"),m=u("openwb-base-select-input"),w=u("openwb-base-heading"),V=u("openwb-base-checkbox-input"),y=u("openwb-base-array-input"),k=u("openwb-base-copy-to-clipboard"),d=u("openwb-base-alert"),U=u("sortable-list"),z=u("openwb-base-submit-buttons");return D(),Z("div",G,[s("form",L,[o(i,{title:"Elemente mit BaseSettingElement"},{default:n(()=>[o(b,null,{default:n(()=>[...e[31]||(e[31]=[a(" Basiselement ",-1)])]),_:1}),o(E,null,{title:n(()=>[...e[32]||(e[32]=[s("span",{style:{"font-style":"italic"}},[a(" Styled "),s("span",{style:{"font-weight":"bold"}},"Title"),a(" Slot ")],-1)])]),help:n(()=>[...e[33]||(e[33]=[a(" Basis-Element für alle weiteren Elemente. Das ist ein ",-1),s("a",{href:"test"},"Link",-1),a(". ",-1)])]),_:1}),o(b,null,{default:n(()=>[...e[34]||(e[34]=[a(" Abgeleitete Elemente ",-1)])]),_:1}),o($,{title:"Button Input","button-text":"Klick mich",subtype:"info"},{help:n(()=>[...e[35]||(e[35]=[a(" Einfacher Click-Button für Aktionen. ",-1)])]),_:1}),o(v,{title:"Button Group Input",buttons:[{buttonValue:1,text:"Eins"},{buttonValue:2,text:"Zwei"}],"model-value":t.$store.state.examples.buttonGroup1,"onUpdate:modelValue":e[0]||(e[0]=l=>t.updateState("buttonGroup1",l))},{help:n(()=>[...e[36]||(e[36]=[a(" Button-Group Element zur Auswahl weniger Optionen. Bei vielen Optionen besser ein Dropdown verwenden. ",-1),s("a",{href:"test"},"Link",-1),a(". ",-1)])]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Einfache Eingabefelder"},{default:n(()=>[o(p,{title:"1. Text","model-value":t.$store.state.examples.text1,"onUpdate:modelValue":e[2]||(e[2]=l=>t.updateState("text1",l))},{help:n(()=>[...e[37]||(e[37]=[a(" Einfacher Text",-1),s("br",null,null,-1),a(' Diese Komponente hat einen Slot "append" für zusätzliche Elemente, die rechts vom Eingabefeld angezeigt werden sollen. Das ist hier z.B. ein Farbauswahl-Element. Die Farbe kann zurückgesetzt werden, weil eine Standardfarbe gesetzt ist. Das ist hier z.B. rot (#ff0000). ',-1)])]),append:n(()=>[o(f,{class:"p-1","model-value":t.$store.state.examples.color1,"default-color":"#ff0000","onUpdate:modelValue":e[1]||(e[1]=l=>t.updateState("color1",l))},null,8,["model-value"])]),_:1},8,["model-value"]),o(p,{title:"2. Text (E-Mail)",subtype:"email","model-value":t.$store.state.examples.text2,"onUpdate:modelValue":e[3]||(e[3]=l=>t.updateState("text2",l))},{help:n(()=>[...e[38]||(e[38]=[a(" Eingabefeld für E-Mailadressen ",-1)])]),_:1},8,["model-value"]),o(p,{title:"3. Text (Host)",subtype:"host","model-value":t.$store.state.examples.text3,"onUpdate:modelValue":e[4]||(e[4]=l=>t.updateState("text3",l))},{help:n(()=>[...e[39]||(e[39]=[a(" Eingabefeld für Hosts (IP oder Namen) ",-1)])]),_:1},8,["model-value"]),o(p,{title:"4. Text (URL)",subtype:"url","model-value":t.$store.state.examples.text4,"onUpdate:modelValue":e[5]||(e[5]=l=>t.updateState("text4",l))},{help:n(()=>[...e[40]||(e[40]=[a(" Eingabefeld für URLs ",-1)])]),_:1},8,["model-value"]),o(p,{title:"5. Text (User)",subtype:"user","model-value":t.$store.state.examples.text5,"onUpdate:modelValue":e[6]||(e[6]=l=>t.updateState("text5",l))},{help:n(()=>[...e[41]||(e[41]=[a(" Eingabefeld für Benutzernamen ",-1)])]),_:1},8,["model-value"]),o(p,{title:"6. Text (Time)",subtype:"time","model-value":t.$store.state.examples.text6,"onUpdate:modelValue":e[7]||(e[7]=l=>t.updateState("text6",l))},{help:n(()=>[...e[42]||(e[42]=[a(" Eingabefeld für Zeiten ",-1)])]),_:1},8,["model-value"]),o(p,{title:"7. Text (Date)",subtype:"date","model-value":t.$store.state.examples.text7,"onUpdate:modelValue":e[8]||(e[8]=l=>t.updateState("text7",l))},{help:n(()=>[...e[43]||(e[43]=[a(" Eingabefeld für ein Datum ",-1)])]),_:1},8,["model-value"]),e[49]||(e[49]=s("hr",null,null,-1)),o(r,{title:"1. Zahl",min:5,max:9,step:2,unit:"kW","model-value":t.$store.state.examples.number1,"onUpdate:modelValue":e[10]||(e[10]=l=>t.updateState("number1",l))},{help:n(()=>[...e[44]||(e[44]=[a(" Zahl mit Einheit.",-1),s("br",null,null,-1),a(' Diese Komponente hat einen Slot "append" für zusätzliche Elemente, die rechts vom Eingabefeld angezeigt werden sollen. Das ist hier z.B. ein Farbauswahl-Element. Ohne Standardfarbe kann die Farbe nicht zurückgesetzt werden. ',-1)])]),append:n(()=>[o(f,{class:"p-1","model-value":t.$store.state.examples.color2,"onUpdate:modelValue":e[9]||(e[9]=l=>t.updateState("color2",l))},null,8,["model-value"])]),_:1},8,["model-value"]),o(r,{title:"2. Zahl",min:10,max:32,step:2,"model-value":t.$store.state.examples.number2,"onUpdate:modelValue":e[11]||(e[11]=l=>t.updateState("number2",l))},{help:n(()=>[...e[45]||(e[45]=[a(" Eingabefeld für Zahlen ohne Einheit ",-1)])]),_:1},8,["model-value"]),o(r,{title:"3. Zahl",min:-30,max:30,step:.01,precision:2,unit:"ct/kWh","model-value":t.$store.state.examples.number3*1e5,"onUpdate:modelValue":e[12]||(e[12]=l=>t.updateState("number3",parseFloat((l/1e5).toFixed(7))))},{help:n(()=>[...e[46]||(e[46]=[a(" Eingabefeld für Zahlen mit Einheit und Nachkommastellen",-1),s("br",null,null,-1),a(' Zusätzlich zum optionalen Parameter "step" sollte immer auch "precision" gesetzt sein, um unvermeidbare Darstellungsfehler zu vermeiden.',-1),s("br",null,null,-1),a(" Wenn der dargestellte Wert eine andere Genauigkeit/Einheit als der Wert im Backend hat (z.B. €/Wh <-> ct/kWh), dann ist bei der Umrechnung darauf zu achten, dass es nicht erneut zu Ungenauigkeiten bei Dezimalzahlen kommt. ",-1)])]),_:1},8,["model-value"]),o(p,{title:"1. Passwort",subtype:"password","model-value":t.$store.state.examples.password1,"onUpdate:modelValue":e[13]||(e[13]=l=>t.updateState("password1",l))},{help:n(()=>[...e[47]||(e[47]=[a(" Das Passwort kann per Klick auf das Auge angezeigt werden. ",-1)])]),_:1},8,["model-value"]),e[50]||(e[50]=s("hr",null,null,-1)),o(x,{title:"1. Textarea",maxlength:"50","model-value":t.$store.state.examples.textarea1,"onUpdate:modelValue":e[14]||(e[14]=l=>t.updateState("textarea1",l))},{help:n(()=>[...e[48]||(e[48]=[a(" Textarea mit maximaler Länge von 50 Zeichen. ",-1)])]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Spezielle Elemente"},{default:n(()=>[o(g,{title:"1. Range",min:6,max:32,step:1,unit:"A","model-value":t.$store.state.examples.range1,"onUpdate:modelValue":e[15]||(e[15]=l=>t.updateState("range1",l))},{help:n(()=>[...e[51]||(e[51]=[a(" Range ohne spezielle Labels ",-1)])]),_:1},8,["model-value"]),o(g,{title:"2. Range",min:0,max:11,step:1,unit:"A",labels:[{label:"Aus",value:0},{label:6,value:6},{label:7,value:7},{label:8,value:8},{label:9,value:9},{label:10,value:10},{label:11,value:11},{label:12,value:12},{label:13,value:13},{label:14,value:14},{label:15,value:15},{label:16,value:16}],"model-value":t.$store.state.examples.range2,"onUpdate:modelValue":e[16]||(e[16]=l=>t.updateState("range2",l))},{help:n(()=>[...e[52]||(e[52]=[a(" Range mit speziellen Labels ",-1)])]),_:1},8,["model-value"]),e[58]||(e[58]=s("hr",null,null,-1)),o(m,{title:"1. Select","not-selected":"Bitte auswählen",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}],"model-value":t.$store.state.examples.select1,"onUpdate:modelValue":e[17]||(e[17]=l=>t.updateState("select1",l))},{help:n(()=>[...e[53]||(e[53]=[a(" Select mit einfachen Optionen ",-1)])]),_:1},8,["model-value"]),o(m,{title:"2. Select",groups:[{label:"Gruppe 1 (Number)",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}]},{label:"Gruppe 2 (String)",options:[{value:"three",text:"Drei"},{value:"four",text:"Vier"}]}],"not-selected":"Bitte auswählen","add-button":!0,"model-value":t.$store.state.examples.select2,"onUpdate:modelValue":e[18]||(e[18]=l=>t.updateState("select2",l)),"onInput:add":e[19]||(e[19]=l=>t.alert("add button pressed"))},{help:n(()=>[...e[54]||(e[54]=[a(" Select mit Gruppen und Add-Button. ",-1)])]),_:1},8,["model-value"]),e[59]||(e[59]=s("hr",null,null,-1)),o(v,{title:"1. Button-Group",buttons:[{buttonValue:1,text:"Eins"},{buttonValue:2,text:"Zwei"}],"model-value":t.$store.state.examples.buttonGroup1,"onUpdate:modelValue":e[20]||(e[20]=l=>t.updateState("buttonGroup1",l))},{help:n(()=>[...e[55]||(e[55]=[a(" Hilfetext ",-1)])]),_:1},8,["model-value"]),o(w,null,{default:n(()=>[e[56]||(e[56]=a(" Select Element ohne Label: ",-1)),o(m,{class:"mb-1","not-selected":"Bitte auswählen",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}],"model-value":t.$store.state.examples.select1,"onUpdate:modelValue":e[21]||(e[21]=l=>t.updateState("select1",l))},null,8,["model-value"])]),_:1}),e[60]||(e[60]=s("hr",null,null,-1)),o(V,{title:"1. Checkbox","model-value":t.$store.state.examples.checkbox1,"onUpdate:modelValue":e[22]||(e[22]=l=>t.updateState("checkbox1",l))},{help:n(()=>[...e[57]||(e[57]=[a(" Hilfetext ",-1)])]),_:1},8,["model-value"])]),_:1}),o(i,{title:"JSON Gruppe"},{default:n(()=>[o(p,{title:"JSON 1",subtype:"json","model-value":t.$store.state.examples.json1,"onUpdate:modelValue":e[23]||(e[23]=l=>t.updateState("json1",l))},{help:n(()=>[...e[61]||(e[61]=[a(" JSON Objekt ",-1)])]),_:1},8,["model-value"]),o(p,{title:"JSON 1 Text","model-value":t.$store.state.examples.json1.text,"onUpdate:modelValue":e[24]||(e[24]=l=>t.updateState("json1",l,"text"))},{help:n(()=>[...e[62]||(e[62]=[a(" Text im JSON Objekt ",-1)])]),_:1},8,["model-value"]),o(r,{title:"JSON 1 Zahl","model-value":t.$store.state.examples.json1.number,"onUpdate:modelValue":e[25]||(e[25]=l=>t.updateState("json1",l,"number"))},{help:n(()=>[...e[63]||(e[63]=[a(" Zahl im JSON Objekt ",-1)])]),_:1},8,["model-value"]),o(y,{title:"Tag Array","model-value":t.$store.state.examples.tags,"onUpdate:modelValue":e[26]||(e[26]=l=>t.updateState("tags",l))},{help:n(()=>[s("pre",null,S(JSON.stringify(t.$store.state.examples.tags,void 0,2)),1)]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Meldungen"},{header:n(()=>[...e[64]||(e[64]=[s("span",{style:{"text-decoration":"underline","font-style":"italic"}},[a(" Styled "),s("span",{style:{"font-weight":"initial"}},"Header"),a(" Slot ")],-1)])]),default:n(()=>[o(w,null,{help:n(()=>[...e[65]||(e[65]=[a(" Es sind auch Hilfetexte im #help Slot möglich. ",-1),s("a",{href:"test"},"Link",-1)])]),default:n(()=>[e[66]||(e[66]=a(" Das ist eine Überschrift ",-1))]),_:1}),o(d,null,{default:n(()=>[e[68]||(e[68]=a(" Meldung ohne speziellen Subtype. ",-1)),o(k,null,{default:n(()=>[...e[67]||(e[67]=[a("Kopiere mich!",-1)])]),_:1})]),_:1}),o(d,{subtype:"info"},{default:n(()=>[...e[69]||(e[69]=[a(" Infomeldung ",-1)])]),_:1}),o(d,{subtype:"warning"},{default:n(()=>[...e[70]||(e[70]=[a(" Warnmeldung ",-1)])]),_:1}),o(d,{subtype:"danger"},{default:n(()=>[...e[71]||(e[71]=[a(" Fehlermeldung ",-1)])]),_:1})]),_:1}),o(i,{title:"Listen"},{default:n(()=>[o(U,{modelValue:t.$store.state.examples.hierarchy1,"onUpdate:modelValue":e[27]||(e[27]=l=>t.$store.state.examples.hierarchy1=l),title:"Liste 1",labels:t.$store.state.examples.hierarchy1Labels},{help:n(()=>[s("pre",null,S(JSON.stringify(t.$store.state.examples.hierarchy1,void 0,2)),1)]),_:1},8,["modelValue","labels"])]),_:1}),o(z,{"form-name":"testingStoreForm",onSave:e[28]||(e[28]=l=>t.$emit("save")),onReset:e[29]||(e[29]=l=>t.$emit("reset")),onDefaults:e[30]||(e[30]=l=>t.$emit("defaults"))})])])}const Q=T(N,[["render",j],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/TestingStore.vue"]]);export{Q as default}; diff --git a/web/settings/assets/VehicleConfig-890c7977.js b/web/settings/assets/VehicleConfig-890c7977.js new file mode 100644 index 0000000000..6542799333 --- /dev/null +++ b/web/settings/assets/VehicleConfig-890c7977.js @@ -0,0 +1 @@ +import{l as x,a6 as ae,a7 as ie,F as O,_ as R,S as I,E as H,G as j,an as J,am as G,ap as ue,aq as re,ah as $,al as Q,ab as X,d as de,a0 as oe,ao as se,R as me,M as ge}from"./vendor-fortawesome-fc4b3a41.js";import{_ as k,C as Y}from"./index-c94f8df4.js";import{_ as pe}from"./dynamic-import-helper-be004503.js";import{_ as q,u as b,l as o,m as p,x as c,E as a,B as i,F as w,G as l,A as g,a2 as he,a3 as ce,N as W,q as ee,y as B,z as m,M as D,D as Z}from"./vendor-50125810.js";const be={props:{vehicleId:{required:!0,type:Number},vehicle:{required:!0,type:Object}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},fe=q(be,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/VehicleConfigMixin.vue"]]),ve={name:"VehicleConfigFallback",mixins:[fe]},_e={class:"vehicle-fallback"},Ve={key:1};function ke(n,e,f,U,y,t){const E=b("openwb-base-alert"),h=b("openwb-base-textarea");return o(),p("div",_e,[Object.keys(n.vehicle.configuration).length==0?(o(),c(E,{key:0,subtype:"info"},{default:a(()=>[i(' Der Fahrzeug-Typ "'+w(n.vehicle.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(o(),p("div",Ve,[l(E,{subtype:"warning"},{default:a(()=>[i(' Es wurde keine Konfigurationsseite für den Fahrzeug-Typ "'+w(n.vehicle.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),l(h,{title:"Konfiguration",subtype:"json","model-value":n.vehicle.configuration,"onUpdate:modelValue":e[0]||(e[0]=z=>n.updateConfiguration(z,"configuration"))},{help:a(()=>[...e[1]||(e[1]=[i(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),l(E,{subtype:"info"},{default:a(()=>[g("pre",null,w(JSON.stringify(n.vehicle.configuration,void 0,2)),1)]),_:1})]))])}const we=q(ve,[["render",ke],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleConfigFallback.vue"]]);x.add(ae,ie);const ze={name:"OpenwbVehicleProxy",components:{FontAwesomeIcon:O},props:{vehicleId:{type:Number,required:!0},vehicle:{type:Object,required:!0}},emits:["update:configuration"],methods:{getVehicleComponent(){return console.debug(`loading vehicle: ${this.vehicle.type}`),he({loader:()=>pe(Object.assign({"./aiways/vehicle.vue":()=>k(()=>import("./vehicle-c0ccdce1.js"),["assets/vehicle-c0ccdce1.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./bmwbc/vehicle.vue":()=>k(()=>import("./vehicle-11bc2552.js"),["assets/vehicle-11bc2552.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./cupra/vehicle.vue":()=>k(()=>import("./vehicle-8a029fa4.js"),["assets/vehicle-8a029fa4.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./evcc/vehicle.vue":()=>k(()=>import("./vehicle-377b2545.js"),["assets/vehicle-377b2545.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./evnotify/vehicle.vue":()=>k(()=>import("./vehicle-151eb75d.js"),["assets/vehicle-151eb75d.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./http/vehicle.vue":()=>k(()=>import("./vehicle-e357d4e3.js"),["assets/vehicle-e357d4e3.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./json/vehicle.vue":()=>k(()=>import("./vehicle-7c8da79e.js"),["assets/vehicle-7c8da79e.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kia/vehicle.vue":()=>k(()=>import("./vehicle-c13da273.js"),["assets/vehicle-c13da273.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./leaf/vehicle.vue":()=>k(()=>import("./vehicle-2f3715ab.js"),["assets/vehicle-2f3715ab.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./manual/vehicle.vue":()=>k(()=>import("./vehicle-ae2c6386.js"),["assets/vehicle-ae2c6386.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mercedeseq/vehicle.vue":()=>k(()=>import("./vehicle-a7b64348.js"),["assets/vehicle-a7b64348.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mqtt/vehicle.vue":()=>k(()=>import("./vehicle-2fbbd65b.js"),["assets/vehicle-2fbbd65b.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./ovms/vehicle.vue":()=>k(()=>import("./vehicle-0f781a6d.js"),["assets/vehicle-0f781a6d.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./psa/vehicle.vue":()=>k(()=>import("./vehicle-25a4898c.js"),["assets/vehicle-25a4898c.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./psacc/vehicle.vue":()=>k(()=>import("./vehicle-45b245c8.js"),["assets/vehicle-45b245c8.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./renault/vehicle.vue":()=>k(()=>import("./vehicle-32689279.js"),["assets/vehicle-32689279.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./skoda/vehicle.vue":()=>k(()=>import("./vehicle-2a399b60.js"),["assets/vehicle-2a399b60.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smarthello/vehicle.vue":()=>k(()=>import("./vehicle-2e28fc2a.js"),["assets/vehicle-2e28fc2a.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/vehicle.vue":()=>k(()=>import("./vehicle-31ef3978.js"),["assets/vehicle-31ef3978.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-axios-1a87d4ae.js","assets/index-c94f8df4.js","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tronity/vehicle.vue":()=>k(()=>import("./vehicle-902f8abd.js"),["assets/vehicle-902f8abd.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./vwid/vehicle.vue":()=>k(()=>import("./vehicle-d60d851d.js"),["assets/vehicle-d60d851d.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/index-c94f8df4.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.vehicle.type}/vehicle.vue`),errorComponent:we})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function Ce(n,e,f,U,y,t){const E=b("font-awesome-icon"),h=b("openwb-base-alert"),z=b("openwb-base-heading");return o(),p(W,null,[f.vehicle.official?(o(),c(h,{key:0,subtype:"info"},{default:a(()=>[l(E,{icon:["fas","certificate"]}),i(' Das ausgewählte Fahrzeug-Modul "'+w(f.vehicle.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(o(),c(h,{key:1,subtype:"info"},{default:a(()=>[l(E,{icon:["fas","people-group"]}),i(' Das ausgewählte Fahrzeug-Modul "'+w(f.vehicle.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),l(z,null,{default:a(()=>[i(' Einstellungen für SoC-Modul "'+w(f.vehicle.name)+'" ',1)]),_:1}),(o(),c(ce(t.getVehicleComponent()),{"vehicle-id":f.vehicleId,vehicle:f.vehicle,"onUpdate:configuration":e[0]||(e[0]=V=>t.updateConfiguration(V))},null,40,["vehicle-id","vehicle"]))],64)}const Se=q(ze,[["render",Ce],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleProxy.vue"]]);x.add(R,I,H,j,J,G,ue,re,$,Q,X);const ye={name:"VehicleScheduledChargingPlan",components:{FontAwesomeIcon:O},mixins:[Y],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0},dcChargingEnabled:{type:Boolean,default:!1}},emits:["update:modelValue","sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/optional/et/provider"],showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addChargeTemplateSchedulePlan",data:{template:this.templateId,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplateSchedulePlan",data:{template:this.templateId,plan:this.modelValue.id}})}}},Ee={key:0},Ae={key:1},Ue={key:2},Le={key:3},Pe={key:4},We={key:5},Fe={key:1},Be={key:4},Me={key:7};function Te(n,e,f,U,y,t){const E=b("openwb-base-modal-dialog"),h=b("font-awesome-icon"),z=b("openwb-base-avatar"),V=b("openwb-base-text-input"),C=b("openwb-base-button-group-input"),F=b("openwb-base-range-input"),S=b("openwb-base-number-input"),M=b("openwb-base-alert"),v=b("openwb-base-card");return o(),p(W,null,[l(E,{show:y.showRemoveModal,title:"Zielladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:a(()=>[i(' Wollen Sie den Zielladen Zeitplan "'+w(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l(v,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:a(s=>[s.collapsed==!0?(o(),p("span",{key:0,class:ee(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=B(_=>t.plan.active=!t.plan.active,["stop"]))},[t.plan.limit.selected=="soc"?(o(),p("span",Ee,[l(h,{icon:["fas","car-battery"]}),i(" "+w(t.plan.limit.soc_scheduled)+"% ",1),l(h,{icon:["fas",t.plan.bidi_charging_enabled?"right-left":"right-long"]},null,8,["icon"]),i(" "+w(t.plan.limit.soc_limit)+"% ",1)])):m("",!0),t.plan.limit.selected=="amount"?(o(),p("span",Ae,[l(h,{icon:["fas","bolt"]}),i(" "+w(t.plan.limit.amount/1e3)+"kWh ",1)])):m("",!0),l(h,{icon:["fas","clock"]}),i(" "+w(t.plan.time)+" ",1),t.plan.frequency.selected=="once"?(o(),p("span",Ue,[l(h,{icon:["fas","calendar-day"]}),i(" "+w(n.formatDate(t.plan.frequency.once)),1)])):m("",!0),t.plan.frequency.selected=="daily"?(o(),p("span",Le,[l(h,{icon:["fas","calendar-week"]})])):m("",!0),t.plan.frequency.selected=="weekly"?(o(),p("span",Pe,[l(h,{icon:["fas","calendar-alt"]})])):m("",!0),t.plan.et_active?(o(),p("span",We,[l(h,{icon:["fas","coins"]})])):m("",!0)],2)):m("",!0),s.collapsed==!1?(o(),p("span",Fe,[l(z,{class:"bg-success clickable ml-1",title:"Zielladen-Plan duplizieren",onClick:e[1]||(e[1]=B(_=>t.copyPlan(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1}),l(z,{class:"bg-danger clickable ml-1",title:"Zielladen-Plan löschen",onClick:e[2]||(e[2]=B(_=>t.removePlanModal(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1})])):m("",!0)]),default:a(()=>[l(V,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=s=>t.plan.name=s),title:"Bezeichnung"},null,8,["modelValue"]),l(C,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=s=>t.plan.active=s),title:"Zeitpunkt aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),l(V,{modelValue:t.plan.time,"onUpdate:modelValue":e[5]||(e[5]=s=>t.plan.time=s),title:"Ziel-Uhrzeit",subtype:"time"},{help:a(()=>[...e[19]||(e[19]=[i(" Hier ist die gewünschte Uhrzeit einzustellen, zu welcher das Fahrzeug den gewünschten SoC bzw. die zu ladende Energiemenge BEREITS ERREICHT haben soll. ",-1)])]),_:1},8,["modelValue"]),l(C,{modelValue:t.plan.limit.selected,"onUpdate:modelValue":e[6]||(e[6]=s=>t.plan.limit.selected=s),title:"Ziel",buttons:[{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}]},{help:a(()=>[...e[20]||(e[20]=[i(" Bestimmt die Art der Grenze für den Ladevorgang. ",-1)])]),_:1},8,["modelValue"]),t.plan.limit.selected=="soc"?(o(),c(F,{key:0,modelValue:t.plan.limit.soc_scheduled,"onUpdate:modelValue":e[7]||(e[7]=s=>t.plan.limit.soc_scheduled=s),title:"Fahrzeug-SoC zum Zielzeitpunkt",min:5,max:100,step:5,unit:"%"},{help:a(()=>[...e[21]||(e[21]=[i(" SoC, der zum angegebenen Zeitpunkt erreicht werden soll (Ziel-SoC). ",-1)])]),_:1},8,["modelValue"])):m("",!0),t.plan.limit.selected=="soc"?(o(),c(F,{key:1,modelValue:t.plan.limit.soc_limit,"onUpdate:modelValue":e[8]||(e[8]=s=>t.plan.limit.soc_limit=s),title:"Fahrzeug-SoC mit Überschuss",min:5,max:100,step:5,unit:"%"},{help:a(()=>[...e[22]||(e[22]=[i(" Nach Erreichen des Ziel-SoCs wird mit Überschuss weiter geladen, bis das SoC-Limit erreicht wird. Sobald das SoC-Limit erreicht wurde, findet keine Ladung mehr mit Überschuss statt! ",-1)])]),_:1},8,["modelValue"])):m("",!0),t.plan.limit.selected=="amount"?(o(),c(S,{key:2,title:"Ziel-Energie",unit:"kWh",min:1,step:.5,"model-value":t.plan.limit.amount/1e3,"onUpdate:modelValue":e[9]||(e[9]=s=>t.plan.limit.amount=s*1e3)},{help:a(()=>[...e[23]||(e[23]=[i(" Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zielladen schon ausgewählt ist, neu gezählt. ",-1)])]),_:1},8,["model-value"])):m("",!0),e[31]||(e[31]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[10]||(e[10]=s=>t.plan.frequency.selected=s),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(o(),c(V,{key:3,modelValue:t.plan.frequency.once,"onUpdate:modelValue":e[11]||(e[11]=s=>t.plan.frequency.once=s),title:"Datum",subtype:"date"},null,8,["modelValue"])):m("",!0),t.plan.frequency.selected=="weekly"?(o(),p("div",Be,[(o(!0),p(W,null,D(n.weekdays,(s,_)=>(o(),c(C,{key:_,modelValue:t.plan.frequency.weekly[_],"onUpdate:modelValue":N=>t.plan.frequency.weekly[_]=N,title:s,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):m("",!0),e[32]||(e[32]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.et_active,"onUpdate:modelValue":e[12]||(e[12]=s=>t.plan.et_active=s),title:"Strompreisbasiert Laden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),t.plan.et_active==!0&&(!n.$store.state.mqtt["openWB/optional/et/provider"]||!n.$store.state.mqtt["openWB/optional/et/provider"].type)?(o(),c(M,{key:5,subtype:"danger"},{default:a(()=>[...e[24]||(e[24]=[i(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. ",-1)])]),_:1})):m("",!0),l(C,{modelValue:t.plan.phases_to_use,"onUpdate:modelValue":e[13]||(e[13]=s=>t.plan.phases_to_use=s),title:"Anzahl Phasen Zielladen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}]},{help:a(()=>[...e[25]||(e[25]=[i(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zielladen" mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um das Ziel zu erreichen. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])]),_:1},8,["modelValue"]),l(C,{modelValue:t.plan.phases_to_use_pv,"onUpdate:modelValue":e[14]||(e[14]=s=>t.plan.phases_to_use_pv=s),title:"Anzahl Phasen bei PV-Überschuss",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}]},{help:a(()=>[...e[26]||(e[26]=[i(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zielladen" bei Laden mit PV-Überschuss mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um das Ziel zu erreichen. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])]),_:1},8,["modelValue"]),l(F,{modelValue:t.plan.current,"onUpdate:modelValue":e[15]||(e[15]=s=>t.plan.current=s),title:`Ladestrom${f.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A"},{help:a(()=>[...e[27]||(e[27]=[i(" Mit dieser Stromstärke wird der Zeitpunkt berechnet, wann die Ladung mit Netzbezug gestartet werden muss. Wird der Ziel-SoC nicht zum angegebenen Termin erreicht, weil z.B. das Auto erst später angesteckt wurde, wird auch mit einer höheren Stromstärke geladen. Um etwas Puffer zu haben, empfiehlt es sich, etwas weniger als die Maximalstromstärke des Fahrzeugs zu wählen. ",-1)])]),_:1},8,["modelValue","title"]),f.dcChargingEnabled===!0?(o(),c(S,{key:6,title:"Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(t.plan.dc_current),"onUpdate:modelValue":e[16]||(e[16]=s=>t.plan.dc_current=n.dc_power2ac_current(s))},null,8,["model-value"])):m("",!0),t.plan.limit.selected=="soc"?(o(),p("div",Me,[e[30]||(e[30]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.bidi_charging_enabled,"onUpdate:modelValue":e[17]||(e[17]=s=>t.plan.bidi_charging_enabled=s),title:"Bidirektionales Überschussladen bei kompatiblem Ladepunkt&Fahrzeug",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},{help:a(()=>[...e[28]||(e[28]=[i(" Wenn Ladepunkt und Fahrzeug bidirektionales Laden unterstützen, wird bis zum Fahrzug-SoC zum Zielzeitpunkt wie gewohnt mit Zielladen geladen. Ist der eingestellte SoC erreicht, wird eine Nullpunktausregelung gemacht, dh das Auto wird so ge- und entladen, dass möglichst weder Bezug noch Einspeisung entsteht. Der SoC wird dabei immer zwischen Fahrzeug-SoC zum Zielzeitpunkt und Fahrzeug-SoC mit Überschuss gehalten. ",-1),g("br",null,null,-1),i(" Unterstützen das Fahrzeug und/oder der Ladepunkt kein bidirektionales Laden, hat diese Einstellung keine Auswirkung. ",-1)])]),_:1},8,["modelValue"]),t.plan.bidi_charging_enabled===!0?(o(),c(M,{key:0,subtype:"info"},{default:a(()=>[...e[29]||(e[29]=[i(" Die Norm IEC 61851-1 und ISO 15118 benötigen als Parameter eine Stromstärke und die Phasenzahl. Die Norm ISO 15118-20, die das bidirektionale Laden definiert, benötigt als Parameter eine Ladeleistung. Die Phasenzahl legt das Fahrzeug fest. Wenn Fahrzeug und Ladepunkt bidirektionales Laden nach ISO 15118-20 unterstützen, wird die eingestellte Ladeleistung verwendet. Unterstützen das Fahrzeug und/oder der Ladepunkt die Norm nicht, wird der Ladestrom und die vorgegebene Phasenzahl angewendet. ",-1)])]),_:1})):m("",!0),t.plan.bidi_charging_enabled===!0?(o(),c(S,{key:1,title:"Ladeleistung",min:1,max:22,step:.5,unit:"kW","model-value":t.plan.bidi_power/1e3,"onUpdate:modelValue":e[18]||(e[18]=s=>n.updateState(n.templateKey,s*1e3,"plan.bidi_power"))},null,8,["model-value"])):m("",!0)])):m("",!0)]),_:1},8,["title"])],64)}const De=q(ye,[["render",Te],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ChargeTemplateScheduledChargingPlan.vue"]]);x.add(R,I,H,j,J,G,Q,X);const qe={name:"ChargeTemplateTimeChargingPlan",components:{FontAwesomeIcon:O},mixins:[Y],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0},dcChargingEnabled:{type:Boolean,default:!1}},emits:["update:modelValue","sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/optional/dc_charging"],showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addChargeTemplateTimeChargingPlan",data:{template:this.templateId,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplateTimeChargingPlan",data:{template:this.templateId,plan:this.modelValue.id}})}}},Ze={key:0},xe={key:1},Oe={key:2},Ne={key:3},Re={key:4},Ie={key:1},He={key:3};function je(n,e,f,U,y,t){const E=b("openwb-base-modal-dialog"),h=b("font-awesome-icon"),z=b("openwb-base-avatar"),V=b("openwb-base-text-input"),C=b("openwb-base-button-group-input"),F=b("openwb-base-range-input"),S=b("openwb-base-number-input"),M=b("openwb-base-card");return o(),p(W,null,[l(E,{show:y.showRemoveModal,title:"Zeitladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:a(()=>[i(' Wollen Sie den Zeitladen Zeitplan "'+w(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l(M,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:a(v=>[v.collapsed==!0?(o(),p("span",{key:0,class:ee(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=B(s=>t.plan.active=!t.plan.active,["stop"]))},[t.plan.limit.selected=="soc"?(o(),p("span",Ze,[l(h,{icon:["fas","car-battery"]}),i(" "+w(t.plan.limit.soc)+"% ",1)])):m("",!0),t.plan.limit.selected=="amount"?(o(),p("span",xe,[l(h,{icon:["fas","bolt"]}),i(" "+w(t.plan.limit.amount/1e3)+"kWh ",1)])):m("",!0),l(h,{icon:["fas","clock"]}),i(" "+w(t.plan.time[0])+" - "+w(t.plan.time[1])+" ",1),t.plan.frequency.selected=="once"?(o(),p("span",Oe,[l(h,{icon:["fas","calendar-day"]}),i(" "+w(n.formatDate(t.plan.frequency.once[0])==n.formatDate(t.plan.frequency.once[1])?n.formatDate(t.plan.frequency.once[0]):n.formatDate(t.plan.frequency.once[0])+" - "+n.formatDate(t.plan.frequency.once[1])),1)])):m("",!0),t.plan.frequency.selected=="daily"?(o(),p("span",Ne,[l(h,{icon:["fas","calendar-week"]})])):m("",!0),t.plan.frequency.selected=="weekly"?(o(),p("span",Re,[l(h,{icon:["fas","calendar-alt"]})])):m("",!0)],2)):m("",!0),v.collapsed==!1?(o(),p("span",Ie,[l(z,{class:"bg-success clickable",title:"Zeitladen-Plan duplizieren",onClick:e[1]||(e[1]=B(s=>t.copyPlan(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1}),l(z,{class:"bg-danger clickable ml-1",title:"Zeitladen-Plan löschen",onClick:e[2]||(e[2]=B(s=>t.removePlanModal(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1})])):m("",!0)]),default:a(()=>[l(V,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=v=>t.plan.name=v),title:"Bezeichnung"},null,8,["modelValue"]),l(C,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=v=>t.plan.active=v),title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),l(F,{modelValue:t.plan.current,"onUpdate:modelValue":e[5]||(e[5]=v=>t.plan.current=v),title:`Ladestrom${f.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A"},null,8,["modelValue","title"]),f.dcChargingEnabled===!0?(o(),c(S,{key:0,title:"Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(t.plan.dc_current),"onUpdate:modelValue":e[6]||(e[6]=v=>t.plan.dc_current=n.dc_power2ac_current(v))},null,8,["model-value"])):m("",!0),l(C,{modelValue:t.plan.limit.selected,"onUpdate:modelValue":e[7]||(e[7]=v=>t.plan.limit.selected=v),title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}]},{help:a(()=>[...e[16]||(e[16]=[i(" Bestimmt die Art der Grenze für den Ladevorgang. ",-1)])]),_:1},8,["modelValue"]),l(F,{modelValue:t.plan.limit.soc,"onUpdate:modelValue":e[8]||(e[8]=v=>t.plan.limit.soc=v),title:"Ziel-SoC für das Fahrzeug",min:5,max:100,step:5,unit:"%"},{help:a(()=>[...e[17]||(e[17]=[i(" Ladestand des Akku (State of Charge, SoC), bis zu welchem maximal geladen werden soll. ",-1)])]),_:1},8,["modelValue"]),l(S,{title:"Ziel-Energie",unit:"kWh",min:1,step:.5,"model-value":t.plan.limit.amount/1e3,"onUpdate:modelValue":e[9]||(e[9]=v=>t.plan.limit.amount=v*1e3)},{help:a(()=>[...e[18]||(e[18]=[i(" Maximal zu ladende Energie innerhalb des Zeitfensters. Eignet sich immer dann wenn kein SoC zur Verfügung steht. Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zeitladen schon aktiv ist, neu gezählt. ",-1)])]),_:1},8,["model-value"]),e[20]||(e[20]=g("hr",null,null,-1)),l(V,{modelValue:t.plan.time[0],"onUpdate:modelValue":e[10]||(e[10]=v=>t.plan.time[0]=v),title:"Zeitpunkt des Ladebeginns",subtype:"time"},null,8,["modelValue"]),l(V,{modelValue:t.plan.time[1],"onUpdate:modelValue":e[11]||(e[11]=v=>t.plan.time[1]=v),title:"Zeitpunkt des Ladeendes",subtype:"time"},null,8,["modelValue"]),l(C,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[12]||(e[12]=v=>t.plan.frequency.selected=v),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(o(),c(V,{key:1,modelValue:t.plan.frequency.once[0],"onUpdate:modelValue":e[13]||(e[13]=v=>t.plan.frequency.once[0]=v),title:"Gültig ab",subtype:"date"},null,8,["modelValue"])):m("",!0),t.plan.frequency.selected=="once"?(o(),c(V,{key:2,modelValue:t.plan.frequency.once[1],"onUpdate:modelValue":e[14]||(e[14]=v=>t.plan.frequency.once[1]=v),title:"Gültig bis",subtype:"date",min:t.plan.frequency.once[0]},null,8,["modelValue","min"])):m("",!0),t.plan.frequency.selected=="weekly"?(o(),p("div",He,[(o(!0),p(W,null,D(n.weekdays,(v,s)=>(o(),c(C,{key:s,modelValue:t.plan.frequency.weekly[s],"onUpdate:modelValue":_=>t.plan.frequency.weekly[s]=_,title:v,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):m("",!0),e[21]||(e[21]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.phases_to_use,"onUpdate:modelValue":e[15]||(e[15]=v=>t.plan.phases_to_use=v),title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}]},{help:a(()=>[...e[19]||(e[19]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])]),_:1},8,["modelValue"])]),_:1},8,["title"])],64)}const Je=q(qe,[["render",je],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ChargeTemplateTimeChargingPlan.vue"]]);x.add(de,X,j,G,J,H,R,I,oe,se,me,$,Q);const Ge={name:"OpenwbVehicleConfigView",components:{FontAwesomeIcon:O,FontAwesomeLayers:ge,OpenwbVehicleProxy:Se,ChargeTemplateScheduledChargingPlan:De,ChargeTemplateTimeChargingPlan:Je},mixins:[Y],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/optional/dc_charging","openWB/optional/et/provider","openWB/optional/rfid/active","openWB/vehicle/template/ev_template/+","openWB/vehicle/template/charge_template/+","openWB/vehicle/template/charge_template/+/chargemode/scheduled_charging/plans/+","openWB/vehicle/template/charge_template/+/time_charging/plans/+","openWB/vehicle/+/name","openWB/vehicle/+/info","openWB/vehicle/+/charge_template","openWB/vehicle/+/ev_template","openWB/vehicle/+/tag_id","openWB/system/configurable/soc_modules","openWB/vehicle/+/soc_module/general_config","openWB/vehicle/+/soc_module/config"],showVehicleModal:!1,modalVehicleIndex:void 0,showEvTemplateModal:!1,modalEvTemplateIndex:void 0,showChargeTemplateModal:!1,modalChargeTemplateIndex:void 0}},computed:{dcChargingEnabled:{get(){return this.$store.state.mqtt["openWB/optional/dc_charging"]}},vehicleIndexes:{get(){return this.getWildcardIndexList("openWB/vehicle/+/name")}},evTemplates:{get(){return this.getWildcardTopics("openWB/vehicle/template/ev_template/+")}},evTemplateList:{get(){let n=[];return Object.keys(this.evTemplates).forEach(e=>{let f=parseInt(e.match(/([0-9]+)$/g)[0]),U=this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+f].name;n.push({value:f,text:U})}),n}},chargeTemplates:{get(){return this.getWildcardTopics("openWB/vehicle/template/charge_template/+")}},chargeTemplateList:{get(){let n=[];return Object.keys(this.chargeTemplates).forEach(e=>{let f=parseInt(e.match(/([0-9]+)$/g)[0]),U=this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+f].name;n.push({value:f,text:U})}),n}},socModuleList:{get(){return this.$store.state.mqtt["openWB/system/configurable/soc_modules"]}}},methods:{updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)},addVehicle(n){n.stopPropagation(),this.$emit("sendCommand",{command:"addVehicle",data:{}})},removeVehicleModal(n,e){n.stopPropagation(),this.modalVehicleIndex=e,this.showVehicleModal=!0},removeVehicle(n,e){this.showVehicleModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeVehicle",data:{id:e}})},getVehicleName(n){return this.$store.state.mqtt["openWB/vehicle/"+n+"/name"]?this.$store.state.mqtt["openWB/vehicle/"+n+"/name"]:"Fahrzeug "+n},getSocDefaultConfiguration(n){const e=this.socModuleList.find(f=>f.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for soc type!",n),{})},updateSelectedSocModule(n,e){this.updateState("openWB/vehicle/"+n+"/soc_module/config",e,"type"),this.updateState("openWB/vehicle/"+n+"/soc_module/config",this.getSocDefaultConfiguration(e))},addEvTemplate(n,e){n.stopPropagation();let f={};e&&e.match(/([^/]+)$/)&&(f.copy=parseInt(e.match(/([^/]+)$/)[0])),this.$emit("sendCommand",{command:"addEvTemplate",data:f})},removeEvTemplateModal(n,e){n.stopPropagation(),this.modalEvTemplateIndex=parseInt(e.match(/([^/]+)$/)[0]),this.showEvTemplateModal=!0},removeEvTemplate(n,e){this.showEvTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeEvTemplate",data:{id:e}})},getEvTemplateName(n){return this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+n]?this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+n].name:"Fahrzeug-Profil "+n},addChargeTemplate(n,e){n.stopPropagation();let f={};e&&e.match(/([^/]+)$/)&&(f.copy=parseInt(e.match(/([^/]+)$/)[0])),this.$emit("sendCommand",{command:"addChargeTemplate",data:f})},removeChargeTemplateModal(n,e){this.modalChargeTemplateIndex=e,this.showChargeTemplateModal=!0},removeChargeTemplate(n,e){this.showChargeTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplate",data:{id:e}})},getChargeTemplateName(n){return this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+n]?this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+n].name:"Lade-Profil "+n},addChargeTemplateSchedulePlan(n){this.$emit("sendCommand",{command:"addChargeTemplateSchedulePlan",data:{template:n}})},addChargeTemplateTimeChargingPlan(n){this.$emit("sendCommand",{command:"addChargeTemplateTimeChargingPlan",data:{template:n}})},openActiveChargeModeCard(n,e){this.$nextTick(()=>{["instant_charging","pv_charging","eco_charging","scheduled_charging"].forEach(U=>{const y=`card-${n}-${U}`,t=this.$refs[y],E=Array.isArray(t)?t[0]:t;E&&(E.isCollapsed=U!==e)})})}}},Qe={class:"vehicleConfig"},Xe={name:"vehicleConfigForm"},Ye={key:0},Ke={key:1},$e={key:2},en={key:0},nn={key:0},tn={key:1},ln={key:1},an={key:3},un={key:0},rn={key:1},dn={key:0},on={key:1},sn={key:0},mn={key:0},gn={key:3},pn={key:0},hn={key:1},cn={key:0},bn={key:1};function fn(n,e,f,U,y,t){const E=b("openwb-base-modal-dialog"),h=b("font-awesome-icon"),z=b("openwb-base-avatar"),V=b("openwb-base-alert"),C=b("openwb-base-text-input"),F=b("openwb-base-select-input"),S=b("openwb-base-heading"),M=b("router-link"),v=b("openwb-base-array-input"),s=b("openwb-base-button-group-input"),_=b("openwb-base-number-input"),N=b("openwb-vehicle-proxy"),L=b("openwb-base-card"),K=b("font-awesome-layers"),P=b("openwb-base-range-input"),ne=b("charge-template-scheduled-charging-plan"),te=b("charge-template-time-charging-plan"),le=b("openwb-base-submit-buttons");return o(),p(W,null,[l(E,{show:y.showVehicleModal,title:"Fahrzeug löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=r=>t.removeVehicle(r,y.modalVehicleIndex))},{default:a(()=>[i(' Wollen Sie das Fahrzeug "'+w(t.getVehicleName(y.modalVehicleIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),l(E,{show:y.showEvTemplateModal,title:"Fahrzeug-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=r=>t.removeEvTemplate(r,y.modalEvTemplateIndex))},{default:a(()=>[i(' Wollen Sie das Fahrzeug-Profil "'+w(t.getEvTemplateName(y.modalEvTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),l(E,{show:y.showChargeTemplateModal,title:"Lade-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[2]||(e[2]=r=>t.removeChargeTemplate(r,y.modalChargeTemplateIndex))},{default:a(()=>[i(' Wollen Sie das Lade-Profil "'+w(t.getChargeTemplateName(y.modalChargeTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),g("div",Qe,[g("form",Xe,[l(L,{subtype:"info",collapsible:!0,collapsed:n.$route.params.section!="vehicle"},{header:a(()=>[l(h,{icon:["fas","car"]}),e[8]||(e[8]=i(" Fahrzeuge ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(o(),c(z,{key:0,class:"bg-success clickable",title:"Neues Fahrzeug hinzufügen",onClick:t.addVehicle},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(o(),p("div",Ye,[l(V,{subtype:"info"},{default:a(()=>[...e[9]||(e[9]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(o(),p("div",Ke,[(o(!0),p(W,null,D(t.vehicleIndexes,r=>(o(),c(L,{key:r,title:t.getVehicleName(r),collapsible:!0,collapsed:!(n.$route.params.section=="vehicle"&&parseInt(n.$route.params.section_index)==r),subtype:"info"},Z({default:a(()=>[l(C,{title:"Bezeichnung","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/name"],disabled:r===0,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/name",d)},Z({_:2},[r===0?{name:"help",fn:a(()=>[e[10]||(e[10]=i(" Das Standard-Fahrzeug kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),r!==0?(o(),c(C,{key:0,title:"Fahrzeughersteller ","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/info"].manufacturer,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/info",d,"manufacturer")},{help:a(()=>[...e[11]||(e[11]=[i(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):m("",!0),r!==0?(o(),c(C,{key:1,title:"Fahrzeugmodell","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/info"].model,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/info",d,"model")},{help:a(()=>[...e[12]||(e[12]=[i(" Optional: zusätzliche Information für den Systembericht.",-1),g("br",null,null,-1),i(" Nach Möglichkeit auch Angabe des Baujahres, da es durchaus beim Verhalten des Fahrzeugs Unterschiede geben kann. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):m("",!0),l(V,{subtype:"info"},{default:a(()=>[...e[13]||(e[13]=[i(" Ein anderes Fahrzeug-Profil wird erst NACH dem Abstecken übernommen, da es sonst durch die Änderung bestimmter Einstellungen im laufenden Ladevorgang zu Widersprüchen kommen kann. ",-1)])]),_:1}),l(F,{title:"Fahrzeug-Profil",options:t.evTemplateList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/ev_template"],"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/ev_template",d)},null,8,["options","model-value","onUpdate:modelValue"]),l(F,{title:"Lade-Profil",options:t.chargeTemplateList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/charge_template"],"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/charge_template",d)},null,8,["options","model-value","onUpdate:modelValue"]),e[32]||(e[32]=g("hr",null,null,-1)),f.installAssistantActive?m("",!0):(o(),p("div",$e,[l(S,null,{default:a(()=>[...e[14]||(e[14]=[i(" Fahrzeugzuordnung per ID-Tags ",-1)])]),_:1}),n.$store.state.mqtt["openWB/vehicle/"+r+"/tag_id"].length>0?(o(),p("div",en,[l(V,{subtype:"info"},{default:a(()=>[e[16]||(e[16]=i(" Einstellungen zur Fahrzeugzuordnung finden sich unter ",-1)),l(M,{to:"/IdentificationConfig"},{default:a(()=>[...e[15]||(e[15]=[i(" Einstellungen - Identifikation ",-1)])]),_:1}),e[17]||(e[17]=i(". ",-1)),n.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(o(),p("div",nn," Aktuell ist die Option in den Einstellungen deaktiviert. ")):(o(),p("div",tn," Die Option ist aktiv. Das Fahrzeug lässt sich per ID-Tag automatisch einem Ladepunkt zuordnen. ")),e[18]||(e[18]=i(" Dem Fahrzeug sind folgende ID-Tags zugeordnet: ",-1))]),_:1}),l(v,{title:"Zugeordnete ID-Tags","no-elements-message":"Keine keine ID-Tags zugeordnet.","no-input":!0,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/tag_id"]},null,8,["model-value"])])):(o(),p("div",ln,[l(V,{subtype:"info"},{default:a(()=>[e[20]||(e[20]=i(" Einstellungen zur Fahrzeugzuordnung finden sich unter ",-1)),l(M,{to:"/IdentificationConfig"},{default:a(()=>[...e[19]||(e[19]=[i(" Einstellungen - Identifikation ",-1)])]),_:1}),e[21]||(e[21]=i(".",-1)),e[22]||(e[22]=g("br",null,null,-1)),e[23]||(e[23]=i(" Dem Fahrzeug sind aktuell keine ID-Tags zum Entsperren zugeordnet. ",-1))]),_:1})])),e[24]||(e[24]=g("hr",null,null,-1))])),l(F,{class:"mb-2",title:"SoC-Modul des Fahrzeugs",options:t.socModuleList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/config"].type,"onUpdate:modelValue":d=>t.updateSelectedSocModule(r,d)},{help:a(()=>[...e[25]||(e[25]=[i(" Mit einem SoC-Modul kann der Ladestand des Fahrzeugs ermittelt und geregelt werden. Z.B. lassen sich unabhängig vom Fahrzeug bestimmte SoC-Werte einstellen, um den Fahrzeugakku zu schonen. Aktuell werden die SoC-Werte mittels der App-Zugangsdaten aus dem Herstellerserver des Fahrzeuges ausgelesen. Zukünftig soll auch eine direkte SoC-Auslesung aus dem Fahrzeug möglich werden (openWB Pro).",-1),g("br",null,null,-1),i(" Die SoC-Abfrage erfolgt automatisch beim Anstecken des Fahrzeuges und zusätzlich über einstellbare Abfrageintervalle während des Ladens und Nichtladens. Die Abfrage kann auch manuell durch Klick auf den Reload-Pfeil auf der Hauptseite ausgelöst werden.",-1),g("br",null,null,-1),i(" Wenn eine Abfrage fehlschlägt, wird noch drei weitere Male im Abstand von 5 Minuten versucht, den SoC abzufragen. Wenn dies nicht erfolgreich ist, wird der SoC auf 0% gesetzt um zu vermeiden, dass ein Auto beim SoC-basierten Laden nicht geladen wird. Die Abfrage erfolgt dann wieder in den oben genannten Intervallen.",-1),g("br",null,null,-1),i(" Da aktuell die SoC-Abfragen über Onlineserver der Fahrzeughersteller laufen, ist infolge möglicher Umstellungen/Wartungen keine 100%-ig sichere SoC-Abfrage garantiert. Auch kann es zu SoC-Abweichungen infolge von zeitlicher Verzögerungen kommen. Hilfestellung erfolgt primär im openWB-Forum. ",-1)])]),_:1},8,["options","model-value","onUpdate:modelValue"]),n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/config"].type?(o(),p("div",an,[l(s,{title:"SoC direkt aus Fahrzeug auslesen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"].use_soc_from_cp,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",d,"use_soc_from_cp")},{help:a(()=>[...e[26]||(e[26]=[i(" Wenn Ladepunkt und Fahrzeug das direkte Auslesen des SoCs über das Ladekabel unterstützen, wird der SoC nach dem Anstecken aus dem Fahrzeug ausgelesen und während der Ladung berechnet. Das direkte Auslesen des SoC aus dem Fahrzeug ist aktuell nur mit einer openWB Pro möglich. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(S,null,{help:a(()=>[...e[27]||(e[27]=[i(" Einige Hersteller begrenzen die möglichen Abfragen. Sobald ein gewisses Limit in einem Zeitraum überschritten wird, werden weitere Anfragen blockiert. Die Zeitintervalle sollten daher nicht zu klein gewählt werden. ",-1)])]),default:a(()=>[e[28]||(e[28]=i(" Aktualisierung der Fahrzeugdaten ",-1))]),_:1}),l(_,{title:"Während der Ladung",unit:"Min.",min:1,max:30,required:"","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"].request_interval_charging/60,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",d*60,"request_interval_charging")},{help:a(()=>[...e[29]||(e[29]=[i(" Der Ladestand des Fahrzeugs (SoC) wird bei einem laufenden Ladevorgang in dem hier eingestellten Intervall in Minuten abgefragt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Ohne laufende Ladung",unit:"Min.",min:5,required:"","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"].request_interval_not_charging/60,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",d*60,"request_interval_not_charging")},{help:a(()=>[...e[30]||(e[30]=[i(" Der Ladestand des Fahrzeugs (SoC) wird in dem hier eingestellten Intervall in Minuten abgefragt, falls kein Ladevorgang aktiv ist. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Nur aktualisieren wenn angesteckt",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"].request_only_plugged,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",d,"request_only_plugged")},{help:a(()=>[...e[31]||(e[31]=[i(' Wird hier "Ja" ausgewählt, dann wird der Ladestand des Fahrzeugs nur abgefragt, wenn das Ladekabel angesteckt ist. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(N,{"vehicle-id":r,vehicle:n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/config"],"onUpdate:configuration":d=>t.updateConfiguration("openWB/vehicle/"+r+"/soc_module/config",d)},null,8,["vehicle-id","vehicle","onUpdate:configuration"])])):m("",!0)]),_:2},[r!==0?{name:"actions",fn:a(d=>[d.collapsed?m("",!0):(o(),c(z,{key:0,class:"bg-danger clickable",title:"Fahrzeug löschen",onClick:u=>t.removeVehicleModal(u,r)},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),key:"0"}:void 0]),1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),e[93]||(e[93]=g("hr",{class:"border-secondary"},null,-1)),l(S,null,{default:a(()=>[...e[33]||(e[33]=[i("Profile",-1)])]),_:1}),l(L,{collapsible:!0,collapsed:!0},{header:a(()=>[l(K,{class:"fa-lg"},{default:a(()=>[l(h,{icon:["far","file"]}),l(h,{icon:["fas","car"],transform:"shrink-8"})]),_:1}),e[34]||(e[34]=i(" Fahrzeug-Profile ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(o(),c(z,{key:0,class:"bg-success clickable",title:"Neues Fahrzeug-Profil hinzufügen",onClick:t.addEvTemplate},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(o(),p("div",un,[l(V,{subtype:"info"},{default:a(()=>[...e[35]||(e[35]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(o(),p("div",rn,[l(V,{subtype:"info"},{default:a(()=>[...e[36]||(e[36]=[i(" Ein anderes Fahrzeug-Profil wird erst ",-1),g("span",{class:"text-uppercase font-weight-bold"}," nach dem Abstecken ",-1),i(" übernommen, da es sonst durch die Änderung bestimmter Einstellungen im laufenden Ladevorgang zu Widersprüchen kommen kann. ",-1)])]),_:1}),(o(!0),p(W,null,D(t.evTemplates,(r,d)=>(o(),c(L,{key:d,title:r.name?r.name:d,collapsible:!0,collapsed:!0},Z({default:a(()=>[l(C,{title:"Bezeichnung","model-value":r.name,disabled:d.endsWith("/0"),"onUpdate:modelValue":u=>n.updateState(d,u,"name")},Z({_:2},[d.endsWith("/0")?{name:"help",fn:a(()=>[e[37]||(e[37]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),l(S,null,{default:a(()=>[...e[38]||(e[38]=[i(" Angaben zur Batterie ",-1)])]),_:1}),l(_,{title:"Kapazität der Batterie",unit:"kWh",min:1,step:1,required:"","model-value":r.battery_capacity/1e3,"onUpdate:modelValue":u=>n.updateState(d,u*1e3,"battery_capacity")},{help:a(()=>[...e[39]||(e[39]=[i(" Angabe der Netto-Kapazität der Fahrzeugbatterie. Dient zur Berechnung des manuellen SoC und der geladenen Reichweite. Die Netto-Kapazität unterscheidet sich meist von den Angaben der Fahrzeughersteller. So besitzt ein Tesla Model S 90 z. B. nur ca. 83kWh und nicht die durch die Typenbezeichnung suggerierten 90kWh. Andere Hersteller begrenzen die nutzbare Kapazität absichtlich, um eine höhere Lebensdauer der Akkus zu erreichen. Gängig sind eine Drosselung auf 90% der angegebenen Brutto-Kapazität. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),f.installAssistantActive?m("",!0):(o(),p("div",dn,[l(_,{title:"Wirkungsgrad der Ladeelektronik",unit:"%",min:1,max:100,required:"","model-value":r.efficiency,"onUpdate:modelValue":u=>n.updateState(d,u,"efficiency")},{help:a(()=>[...e[40]||(e[40]=[i(" Durch Verluste in der Ladeelektronik (z. B. Umwandlung Wechselspannung in Gleichspannung) gelangt nicht die komplette Energie, welche durch den Zähler in der Wallbox gemessen wird, in den Akku des Fahrzeugs. Der anzugebende Wert liegt bei gängigen Fahrzeugen im Bereich 90-95%. Eine Ausnahme stellt der Zoe dar, dessen Chameleon-Lader je nach Modellversion und freigegebener Leistung der Wallbox teilweise nur auf ca. 50% kommt.",-1),g("br",null,null,-1),i(" Liegen die Angaben der Wallbox und des Fahrzeugs nach der Ladung mehrere Prozent auseinander, dann kann mit dieser Einstellung eine Feinabstimmung erfolgen: ",-1),g("br",null,null,-1),i(" SoC an der Wallbox zu hoch: Wirkungsgrad um ein paar Prozent reduzieren",-1),g("br",null,null,-1),i(" SoC an der Wallbox zu gering: Wirkungsgrad um ein paar Prozent erhöhen",-1),g("br",null,null,-1)])]),_:1},8,["model-value","onUpdate:modelValue"])])),l(_,{title:"Durchschnittsverbrauch",unit:"kWh / 100km",min:1,step:.1,required:"","model-value":r.average_consump/1e3,"onUpdate:modelValue":u=>n.updateState(d,u*1e3,"average_consump")},null,8,["model-value","onUpdate:modelValue"]),l(s,{title:"Bidirektionales Laden",buttons:[{buttonValue:!1,text:"Nicht unterstützt",class:"btn-outline-danger"},{buttonValue:!0,text:"AC nach ISO15118-20",class:"btn-outline-success"}],"model-value":r.bidi,"onUpdate:modelValue":u=>n.updateState(d,u,"bidi")},{help:a(()=>[...e[41]||(e[41]=[i(' Für bidirektionales Laden wird eine openWB Pro benötigt. Die openWB Pro muss auf den Modus "Bidi" gestellt werden.',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(o(),p("div",on,[l(S,null,{default:a(()=>[...e[42]||(e[42]=[i(" Angaben zur Ladeleistung (DC) ",-1)])]),_:1}),l(_,{title:"Mindestleistung",min:0,unit:"kW","model-value":n.ac_current2dc_power(r.dc_min_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"dc_min_current")},null,8,["model-value","onUpdate:modelValue"]),l(_,{title:"Maximalleistung",unit:"kW","model-value":n.ac_current2dc_power(r.dc_max_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"dc_max_current")},null,8,["model-value","onUpdate:modelValue"])])):m("",!0),l(S,null,{default:a(()=>[e[43]||(e[43]=i(" Angaben zum Ladestrom ",-1)),t.dcChargingEnabled===!0?(o(),p("span",sn," (AC) ")):m("",!0)]),_:1}),l(P,{title:"Mindeststrom",min:6,max:16,step:1,unit:"A","model-value":r.min_current,"onUpdate:modelValue":u=>n.updateState(d,u,"min_current")},null,8,["model-value","onUpdate:modelValue"]),l(P,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":r.max_current_single_phase,"onUpdate:modelValue":u=>n.updateState(d,u,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),l(P,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":r.max_current_multi_phases,"onUpdate:modelValue":u=>n.updateState(d,u,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"]),l(_,{title:"Erlaubte Stromabweichung",step:.1,min:0,max:5,unit:"A","model-value":r.nominal_difference,"onUpdate:modelValue":u=>n.updateState(d,u,"nominal_difference")},{help:a(()=>[...e[44]||(e[44]=[i(" In manchen Lademodi, z.B. bei der automatischen Phasenumschaltung, wird geprüft, ob das Fahrzeug mit der vorgegebenen Stromstärke lädt. Manche Fahrzeuge laden nicht exakt mit der vorgegebenen Stromstärke. Die erlaubte Abweichung kann hier eingestellt werden. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(S,null,{default:a(()=>[e[45]||(e[45]=i(" Angaben zur Handhabung von Phasen ",-1)),t.dcChargingEnabled===!0?(o(),p("span",mn," (AC) ")):m("",!0)]),_:1}),l(s,{title:"Unterstützte Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":r.max_phases,"onUpdate:modelValue":u=>n.updateState(d,u,"max_phases")},{help:a(()=>[...e[46]||(e[46]=[i(" Anzahl der Phasen, die der Fahrzeuglader (s.g. OBC - OnboardCharger) verwendet. Plugin-Hybride nutzen meist nur eine Phase, reine E-Autos meist 3, manche nur 2 Phasen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"CP-Unterbrechung",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.control_pilot_interruption,"onUpdate:modelValue":u=>n.updateState(d,u,"control_pilot_interruption")},{help:a(()=>[...e[47]||(e[47]=[i(' Erläuterung siehe "Konfiguration - Ladepunkte" -> Hardware-Optionen ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),r.control_pilot_interruption?(o(),c(_,{key:2,title:"Dauer der CP-Unterbrechung",min:4,step:1,unit:"s","model-value":r.control_pilot_interruption_duration,"onUpdate:modelValue":u=>n.updateState(d,u,"control_pilot_interruption_duration")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Phasenumschaltung blockieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.prevent_phase_switch,"onUpdate:modelValue":u=>n.updateState(d,u,"prevent_phase_switch")},{help:a(()=>[...e[48]||(e[48]=[i(' Erläuterung zu 1p3p siehe "Ladeeinstellungen" ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Ladung aktiv halten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.prevent_charge_stop,"onUpdate:modelValue":u=>n.updateState(d,u,"prevent_charge_stop")},{help:a(()=>[...e[49]||(e[49]=[i(" Der Ladevorgang wird in den Lademodi PV- und Zielladen nach Ladebeginn nicht unterbrochen, selbst wenn nicht mehr genug Überschuss vorhanden ist. Diese Einstellung sollte bei Fahrzeugen aktiviert werden, die nach einer Ladungsunterbrechung keine Ladung mehr starten. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Pause bei Phasenumschaltung",unit:"s",min:2,step:1,required:"","model-value":r.phase_switch_pause,"onUpdate:modelValue":u=>n.updateState(d,u,"phase_switch_pause")},null,8,["model-value","onUpdate:modelValue"]),f.installAssistantActive?m("",!0):(o(),p("div",gn,[l(_,{title:"Mindestzeit zwischen Umschaltungen",unit:"s",min:2,step:1,required:"","model-value":r.keep_charge_active_duration,"onUpdate:modelValue":u=>n.updateState(d,u,"keep_charge_active_duration")},{help:a(()=>[...e[50]||(e[50]=[i(" Manche Fahrzeuge benötigen nach der Umschaltung einige Zeit, bis sie mit der vorgegebenen Phasenzahl laden. In dieser Zeit wird keine neue Phasenumschaltung angestoßen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]))]),_:2},[n.$store.state.mqtt["openWB/general/extern"]===!1?{name:"actions",fn:a(u=>[u.collapsed?m("",!0):(o(),c(z,{key:0,class:"bg-success clickable",title:"Fahrzeug-Profil duplizieren",onClick:A=>t.addEvTemplate(A,d)},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1},8,["onClick"])),!u.collapsed&&!d.endsWith("/0")?(o(),c(z,{key:1,class:"bg-danger clickable ml-1",title:"Fahrzeug-Profil löschen",onClick:A=>t.removeEvTemplateModal(A,d)},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1},8,["onClick"])):m("",!0)]),key:"0"}:void 0]),1032,["title"]))),128))]))]),_:1}),l(L,{collapsible:!0,collapsed:n.$route.params.section!="charge_template"},{header:a(()=>[l(K,{class:"fa-lg"},{default:a(()=>[l(h,{icon:["far","file"]}),l(h,{icon:["fas","plug"],transform:"shrink-8"})]),_:1}),e[51]||(e[51]=i(" Lade-Profile ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(o(),c(z,{key:0,class:"bg-success clickable",title:"Neues Lade-Profil hinzufügen",onClick:t.addChargeTemplate},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(o(),p("div",pn,[l(V,{subtype:"info"},{default:a(()=>[...e[52]||(e[52]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(o(),p("div",hn,[(o(!0),p(W,null,D(t.chargeTemplates,(r,d)=>(o(),c(L,{key:d,title:r.name?r.name:d,collapsible:!0,collapsed:!(n.$route.params.section=="charge_template"&&parseInt(n.$route.params.section_index)==r.id)},{actions:a(u=>[u.collapsed?m("",!0):(o(),c(z,{key:0,class:"bg-success clickable",title:"Lade-Profil duplizieren",onClick:A=>t.addChargeTemplate(A,d)},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1},8,["onClick"])),!u.collapsed&&!d.endsWith("/0")?(o(),c(z,{key:1,class:"bg-danger clickable ml-1",title:"Lade-Profil löschen",onClick:B(A=>t.removeChargeTemplateModal(A,r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[l(C,{title:"Bezeichnung","model-value":r.name,disabled:d.endsWith("/0"),"onUpdate:modelValue":u=>n.updateState(d,u,"name")},Z({_:2},[d.endsWith("/0")?{name:"help",fn:a(()=>[e[53]||(e[53]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),l(S,null,{default:a(()=>[...e[54]||(e[54]=[i(" Allgemeine Optionen ",-1)])]),_:1}),l(s,{title:"Aktiver Lademodus",buttons:[{buttonValue:"instant_charging",text:"Sofort",class:"btn-outline-danger"},{buttonValue:"pv_charging",text:"PV",class:"btn-outline-success"},{buttonValue:"scheduled_charging",text:"Ziel",class:"btn-outline-primary"},{buttonValue:"eco_charging",text:"Eco",class:"btn-outline-secondary"},{buttonValue:"stop",text:"Stop",class:"btn-outline-dark"}],"model-value":r.chargemode.selected,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.selected"),onButtonClick:u=>t.openActiveChargeModeCard(d,u)},{help:a(()=>[...e[55]||(e[55]=[i(" Diese Einstellung entspricht dem gewählten Lademodus auf der Hauptseite und ist aktiv, wenn ein zugehöriges Fahrzeug angesteckt ist.",-1),g("br",null,null,-1),i(" Die zur Verfügung stehende Leistung wird intern anhand folgender Prioritätenliste auf die Fahrzeuge bzw. Ladepunkte verteilt:",-1),g("br",null,null,-1),g("ol",null,[g("li",null,"Ziel (Sofortladen) mit Priorität"),g("li",null,"Ziel (Sofortladen)"),g("li",null,"Zeit mit Priorität"),g("li",null,"Zeit"),g("li",null,"Sofort mit Priorität"),g("li",null,"Sofort"),g("li",null,"Eco (Min-Anteil) mit Priorität"),g("li",null,"Eco (Min-Anteil)"),g("li",null,"PV (Min-Anteil) mit Priorität"),g("li",null,"PV (Min-Anteil)"),g("li",null,"Ziel (PV) mit Priorität"),g("li",null,"Ziel (PV)"),g("li",null,"Eco (PV-Anteil) mit Priorität"),g("li",null,"Eco (PV-Anteil)"),g("li",null,"PV (PV-Anteil) mit Priorität"),g("li",null,"PV (PV-Anteil)"),g("li",null,"Bidi-Entladen ohne Priorität"),g("li",null,"Bidi-Entladen mit Priorität")],-1)])]),_:1},8,["model-value","onUpdate:modelValue","onButtonClick"]),f.installAssistantActive?m("",!0):(o(),p("div",cn,[l(s,{title:"Priorität",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.prio,"onUpdate:modelValue":u=>n.updateState(d,u,"prio")},{help:a(()=>[...e[56]||(e[56]=[i(" Die Ladefreigabe mit dem jeweils eingestellten Mindeststrom erfolgt für alle Fahrzeuge, soweit die verfügbare Leistung ausreicht. Fahrzeuge mit Priorität werden bevorzugt mit mehr Leistung geladen, falls verfügbar. Erst wenn alle priorisierten Fahrzeuge die maximale Ladeleistung bekommen und noch zusätzlicher Überschuss vorhanden ist, wird auch für Fahrzeuge ohne Priorität mehr Leistung freigegeben. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Standard nach Abstecken",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.load_default,"onUpdate:modelValue":u=>n.updateState(d,u,"load_default")},{help:a(()=>[...e[57]||(e[57]=[i(" Falls diese Option aktiviert ist, wird der betroffene Ladepunkt nach dem Abstecken auf das Standard Fahrzeug zurückgesetzt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),e[59]||(e[59]=g("hr",null,null,-1)),l(S,null,{default:a(()=>[...e[58]||(e[58]=[i("Einstellungen der Lademodi",-1)])]),_:1})])),l(L,{ref_for:!0,ref:`card-${d}-instant_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[60]||(e[60]=[i(" Sofort ",-1)])]),default:a(()=>[l(P,{title:`Soll-Ladestrom${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":r.chargemode.instant_charging.current,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.instant_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(o(),c(_,{key:0,title:"Soll-Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.instant_charging.dc_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"chargemode.instant_charging.dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":r.chargemode.instant_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.instant_charging.phases_to_use")},{help:a(()=>[...e[61]||(e[61]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (s.g. 1p3p). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":r.chargemode.instant_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.instant_charging.limit.selected")},{help:a(()=>[...e[62]||(e[62]=[i(" Sofortladen kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(P,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":r.chargemode.instant_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.instant_charging.limit.soc")},{help:a(()=>[...e[63]||(e[63]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":r.chargemode.instant_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(d,u*1e3,"chargemode.instant_charging.limit.amount")},{help:a(()=>[...e[64]||(e[64]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1536),l(L,{ref_for:!0,ref:`card-${d}-pv_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[65]||(e[65]=[i(" PV ",-1)])]),default:a(()=>[l(P,{title:`Minimaler Dauerstrom${t.dcChargingEnabled?" (AC)":""}`,min:0,max:11,step:1,unit:"A",labels:[{label:"Aus",value:0},{label:6,value:6},{label:7,value:7},{label:8,value:8},{label:9,value:9},{label:10,value:10},{label:11,value:11},{label:12,value:12},{label:13,value:13},{label:14,value:14},{label:15,value:15},{label:16,value:16}],"model-value":r.chargemode.pv_charging.min_current,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.pv_charging.min_current")},{help:a(()=>[...e[66]||(e[66]=[i(' Hier kann eine Stromstärke eingestellt werden, mit dem unabhängig vom vorhandenen Überschuss durchgeladen wird. Hierdurch wird z.B. an Tagen mit häufigem Sonne/Wolken-Wechsel oder mit nur wenig PV-Ertrag ein Laden ohne Unterbrechung ermöglicht. Folglich kann auch Netzbezug für das Fahrzeugladen entstehen, weshalb der niedrigste Stromwert empfohlen wird. Diese Einstellung entspricht weitestgehend dem Lademodus "Min+PV" der Version 1.x. ',-1)])]),_:1},8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(o(),c(_,{key:0,title:"Minimale Dauerleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.pv_charging.dc_min_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"chargemode.pv_charging.dc_min_current")},{help:a(()=>[...e[67]||(e[67]=[i(" Hier kann eine Leistung eingestellt werden, mit dem unabhängig vom vorhandenen Überschuss durchgeladen wird. Hierdurch wird z.B. an Tagen mit häufigem Sonne/Wolken-Wechsel oder mit nur wenig PV-Ertrag ein Laden ohne Unterbrechung ermöglicht. Folglich kann auch Netzbezug für das Fahrzeugladen entstehen, weshalb der niedrigste Leistungswert empfohlen wird. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":r.chargemode.pv_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.pv_charging.phases_to_use")},{help:a(()=>[...e[68]||(e[68]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um den verfügbaren Überschuss in die Fahrzeuge zu laden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":r.chargemode.pv_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.pv_charging.limit.selected")},{help:a(()=>[...e[69]||(e[69]=[i(" PV kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(P,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":r.chargemode.pv_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.pv_charging.limit.soc")},{help:a(()=>[...e[70]||(e[70]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":r.chargemode.pv_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(d,u*1e3,"chargemode.pv_charging.limit.amount")},{help:a(()=>[...e[71]||(e[71]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(P,{title:"Mindest-SoC für das Fahrzeug",min:0,max:19,step:1,unit:"%",labels:[{label:"Aus",value:0},{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:20,value:20},{label:25,value:25},{label:30,value:30},{label:35,value:35},{label:40,value:40},{label:45,value:45},{label:50,value:50},{label:55,value:55},{label:60,value:60},{label:65,value:65},{label:70,value:70},{label:75,value:75},{label:80,value:80},{label:85,value:85},{label:90,value:90},{label:95,value:95}],"model-value":r.chargemode.pv_charging.min_soc,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.pv_charging.min_soc")},{help:a(()=>[...e[72]||(e[72]=[i(' Liegt der Fahrzeug-Ladestand (SoC) unter dem hier eingestellten Wert, dann wird bis zum Erreichen dieses Wertes mit dem eingestellten "Mindest-SoC-Strom" geladen. Dies dient der Sicherstellung eines "Mindest-SoC" - z.B. für eine immer abzudeckende Fahrzeugreichweite - auch wenn kein oder zu wenig Überschuss verfügbar ist (=> Laden mit anteilig Netzstrom). Nach dem Erreichen des "Mindest-SoC" wird bei verfügbarem Überschuss geladen.',-1),g("br",null,null,-1),i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(P,{title:`Mindest-SoC-Strom${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":r.chargemode.pv_charging.min_soc_current,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.pv_charging.min_soc_current")},{help:a(()=>[...e[73]||(e[73]=[i(' Wird der oben eingestellte "Mindest-SoC" des Fahrzeuges unterschritten, dann wird unabhängig vom Überschuss ein Ladevorgang mit dem hier festgelegten "Mindest-SoC-Strom" initiiert (ggf. mit anteilig Netzbezug). ',-1)])]),_:1},8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(o(),c(_,{key:1,title:"Mindest-SoC-Leistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.pv_charging.dc_min_soc_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"chargemode.pv_charging.dc_min_soc_current")},{help:a(()=>[...e[74]||(e[74]=[i(' Wird der oben eingestellte "Mindest-SoC" des Fahrzeuges unterschritten, dann wird unabhängig vom Überschuss ein Ladevorgang mit der hier festgelegten "Mindest-SoC-Leistung" initiiert (ggf. mit anteilig Netzbezug). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen Mindest-SoC",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":r.chargemode.pv_charging.phases_to_use_min_soc,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.pv_charging.phases_to_use_min_soc")},{help:a(()=>[...e[75]||(e[75]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Einspeisegrenze beachten",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.chargemode.pv_charging.feed_in_limit,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.pv_charging.feed_in_limit")},{help:a(()=>[...e[76]||(e[76]=[i(' Erläuterung siehe "Ladeeinstellungen" -> "PV-Laden" -> "Regelparameter" -> "Regelpunkt Einspeisegrenze" ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1536),l(L,{ref_for:!0,ref:`card-${d}-scheduled_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[77]||(e[77]=[i(" Ziel ",-1)])]),default:a(()=>[l(S,null,{actions:a(()=>[l(z,{class:"bg-success clickable",title:"Neuen Zielladen-Plan hinzufügen",onClick:B(u=>t.addChargeTemplateSchedulePlan(r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),help:a(()=>[...e[78]||(e[78]=[i(' Im Lademodus "Zielladen" wird der Ladestrom so angepasst, dass das Fahrzeug zum angegebenen Zeitpunkt den eingestellten SoC bzw. die einzuladende Energiemenge erreicht. Anhand des vorgegebenen Ladestroms wird der Zeitpunkt berechnet, an dem die Ladung spätestens starten muss.',-1),g("br",null,null,-1),i(' Ist der berechnete Zeitpunkt des Ladestarts noch nicht erreicht, wird mit Überschuss geladen. Auch nach Erreichen des Ziel-SoCs wird mit Überschuss geladen, solange bis das "SoC-Limit für das Fahrzeug" erreicht wird.',-1),g("br",null,null,-1),i(" Es wird nach den Vorgaben des Zeitplans geladen, dessen Zieltermin am nächsten liegt. Ist der Zielzeitpunkt vorbei, wird solange geladen bis, das Ziel erreicht oder das Auto abgesteckt wird. Wenn der Ziel-Termin des nächsten Plans innerhalb der nächsten 12 Stunden liegt, wird auf den nächsten Plan umgeschaltet. ",-1)])]),default:a(()=>[e[79]||(e[79]=i(" Zielladepläne ",-1))]),_:2},1024),r.chargemode.scheduled_charging.plans.length==0?(o(),c(V,{key:0,subtype:"info"},{default:a(()=>[...e[80]||(e[80]=[i(" Es wurden noch keine Pläne für das Zielladen angelegt. ",-1)])]),_:1})):m("",!0),(o(!0),p(W,null,D(r.chargemode.scheduled_charging.plans,(u,A)=>(o(),c(ne,{key:A,"model-value":u,"template-id":r.id,"dc-charging-enabled":t.dcChargingEnabled,"onUpdate:modelValue":T=>n.updateState(d,T,`chargemode.scheduled_charging.plans.${A}`),onSendCommand:e[3]||(e[3]=T=>n.$emit("sendCommand",T))},null,8,["model-value","template-id","dc-charging-enabled","onUpdate:modelValue"]))),128))]),_:2},1536),l(L,{ref_for:!0,ref:`card-${d}-eco_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[81]||(e[81]=[i(" Eco ",-1)])]),default:a(()=>[l(S,null,{help:a(()=>[...e[82]||(e[82]=[i(" Im Eco-Modus wird eine Preisgrenze vorgegeben. Wenn der Strompreis unter dieser Grenze liegt, wird mit dem eingestellten Ladestrom geladen und -falls vorhanden- zusätzlich mit dem Überschuss. Wenn die Preisgrenze überschritten wird, wird nur mit Überschuss geladen, wenn dieser vorhanden ist. ",-1)])]),default:a(()=>[e[83]||(e[83]=i("Arbeitsweise von Eco ",-1))]),_:1}),l(P,{title:`Minimaler Dauerstrom unter der Preisgrenze${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":r.chargemode.eco_charging.current,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.eco_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(o(),c(_,{key:0,title:"Minimale Dauerleistung unter der Preisgrenze (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.eco_charging.dc_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"chargemode.eco_charging.dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":r.chargemode.eco_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.eco_charging.phases_to_use")},{help:a(()=>[...e[84]||(e[84]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um den verfügbaren Überschuss in die Fahrzeuge zu laden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":r.chargemode.eco_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.eco_charging.limit.selected")},{help:a(()=>[...e[85]||(e[85]=[i(" Eco kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(P,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":r.chargemode.eco_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.eco_charging.limit.soc")},{help:a(()=>[...e[86]||(e[86]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":r.chargemode.eco_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(d,u*1e3,"chargemode.eco_charging.limit.amount")},{help:a(()=>[...e[87]||(e[87]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),!n.$store.state.mqtt["openWB/optional/et/provider"]||!n.$store.state.mqtt["openWB/optional/et/provider"].type?(o(),c(V,{key:1,subtype:"warning"},{default:a(()=>[...e[88]||(e[88]=[i(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. Ohne Strompreis-Anbieter wird im Modus Eco nur geladen, wenn Überschuss vorhanden ist. ",-1)])]),_:1})):m("",!0),l(_,{title:"Preisgrenze für strompreisbasiertes Laden",min:"-80",max:"80",step:"0.01",precision:2,unit:"ct/kWh","model-value":r.chargemode.eco_charging.max_price*1e5,"onUpdate:modelValue":u=>n.updateState(d,parseFloat((u/1e5).toFixed(7)),"chargemode.eco_charging.max_price")},null,8,["model-value","onUpdate:modelValue"])]),_:2},1536),f.installAssistantActive?m("",!0):(o(),p("div",bn,[e[92]||(e[92]=g("hr",null,null,-1)),l(s,{title:"Zeitladen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.time_charging.active,"onUpdate:modelValue":u=>n.updateState(d,u,"time_charging.active")},{help:a(()=>[...e[89]||(e[89]=[g("p",null,' Der Lademodus Zeit kann parallel zu einem der anderen Lademodi aktiviert werden. Die Auswahl des Lademodus, der in der Regelung genutzt wird, erfolgt anhand der Übersicht in der Hilfe bei "Aktiver Lademodus". Wenn kein Zeitplan aktiv ist oder das Limit des Zeitplans erreicht wurde, wird der Lademodus verwendet, der bei "Aktiver Lademodus" ausgewählt ist. ',-1),g("p",null," Mit einem Zeitplan kann ein klar abgegrenzter Zeitbereich zum Fahrzeugladen definiert werden. Dies wird häufig genutzt, um einem Fahrzeug kurz vor der Abfahrt Strom anzubieten, damit dessen Vorklimatisierung nicht aus dem Fahrzeugakku, sondern aus der openWB bezogen wird (Enteisung, Vorwärmung, Abkühlung). Nicht von der Vorklimatisierung benötigter Strom erhöht dabei den Fahrzeug-SoC. Um das Stromnetz am Morgen nicht unnötig zu strapazieren, sollte eine moderate Stromvorgabe und ein beschränkter Zeitbereich vorgegeben werden (z.B. max. 10A; 30min - in Übereinstimmung mit den Fahrzeug-App-Vorklimatisierungsvorgaben). ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(L,{ref_for:!0,ref:`card-${d}-scheduled_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[90]||(e[90]=[i(" Zeitladen-Pläne ",-1)])]),actions:a(()=>[l(z,{class:"bg-success clickable",title:"Neuen Zeitladen-Plan hinzufügen",onClick:B(u=>t.addChargeTemplateTimeChargingPlan(r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:a(()=>[(r.time_charging.plans??[]).length==0?(o(),c(V,{key:0,subtype:"info"},{default:a(()=>[...e[91]||(e[91]=[i(" Es wurden noch keine Pläne für das Zeitladen angelegt. ",-1)])]),_:1})):m("",!0),(o(!0),p(W,null,D(r.time_charging.plans??[],(u,A)=>(o(),c(te,{key:A,"model-value":u,"template-id":r.id,"dc-charging-enabled":t.dcChargingEnabled,"onUpdate:modelValue":T=>n.updateState(d,T,`time_charging.plans.${A}`),onSendCommand:e[4]||(e[4]=T=>n.$emit("sendCommand",T))},null,8,["model-value","template-id","dc-charging-enabled","onUpdate:modelValue"]))),128))]),_:2},1536)]))]),_:2},1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),l(le,{"form-name":"vehicleConfigForm",onSave:e[5]||(e[5]=r=>n.$emit("save")),onReset:e[6]||(e[6]=r=>n.$emit("reset")),onDefaults:e[7]||(e[7]=r=>n.$emit("defaults"))})])])],64)}const vn=q(Ge,[["render",fn],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/VehicleConfig.vue"]]),zn=Object.freeze(Object.defineProperty({__proto__:null,default:vn},Symbol.toStringTag,{value:"Module"}));export{fe as V,vn as a,zn as b}; diff --git a/web/settings/assets/VehicleConfig-c6e5b45b.js b/web/settings/assets/VehicleConfig-c6e5b45b.js deleted file mode 100644 index c1cb7e5b02..0000000000 --- a/web/settings/assets/VehicleConfig-c6e5b45b.js +++ /dev/null @@ -1 +0,0 @@ -import{l as x,a6 as ae,a7 as ie,F as O,_ as R,S as I,E as H,G as j,an as J,am as G,ap as ue,aq as re,ah as $,al as Q,ab as X,d as de,a0 as oe,ao as se,R as me,M as ge}from"./vendor-fortawesome-a02b6813.js";import{_ as k,C as Y}from"./index-8dd8e083.js";import{_ as pe}from"./dynamic-import-helper-be004503.js";import{_ as q,u as b,l as o,m as p,x as c,E as a,B as i,F as w,G as l,A as g,a2 as he,a3 as ce,N as W,q as ee,y as B,z as m,M as D,D as Z}from"./vendor-25d394b4.js";const be={props:{vehicleId:{required:!0,type:Number},vehicle:{required:!0,type:Object}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},fe=q(be,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/VehicleConfigMixin.vue"]]),ve={name:"VehicleConfigFallback",mixins:[fe]},_e={class:"vehicle-fallback"},Ve={key:1};function ke(n,e,f,U,y,t){const E=b("openwb-base-alert"),h=b("openwb-base-textarea");return o(),p("div",_e,[Object.keys(n.vehicle.configuration).length==0?(o(),c(E,{key:0,subtype:"info"},{default:a(()=>[i(' Der Fahrzeug-Typ "'+w(n.vehicle.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(o(),p("div",Ve,[l(E,{subtype:"warning"},{default:a(()=>[i(' Es wurde keine Konfigurationsseite für den Fahrzeug-Typ "'+w(n.vehicle.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),l(h,{title:"Konfiguration",subtype:"json","model-value":n.vehicle.configuration,"onUpdate:modelValue":e[0]||(e[0]=z=>n.updateConfiguration(z,"configuration"))},{help:a(()=>e[1]||(e[1]=[i(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ",-1)])),_:1},8,["model-value"]),l(E,{subtype:"info"},{default:a(()=>[g("pre",null,w(JSON.stringify(n.vehicle.configuration,void 0,2)),1)]),_:1})]))])}const we=q(ve,[["render",ke],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleConfigFallback.vue"]]);x.add(ae,ie);const ze={name:"OpenwbVehicleProxy",components:{FontAwesomeIcon:O},props:{vehicleId:{type:Number,required:!0},vehicle:{type:Object,required:!0}},emits:["update:configuration"],methods:{getVehicleComponent(){return console.debug(`loading vehicle: ${this.vehicle.type}`),he({loader:()=>pe(Object.assign({"./aiways/vehicle.vue":()=>k(()=>import("./vehicle-8289a840.js"),["assets/vehicle-8289a840.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./bmwbc/vehicle.vue":()=>k(()=>import("./vehicle-da3e8433.js"),["assets/vehicle-da3e8433.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./cupra/vehicle.vue":()=>k(()=>import("./vehicle-98b9fcdb.js"),["assets/vehicle-98b9fcdb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./evcc/vehicle.vue":()=>k(()=>import("./vehicle-673ea579.js"),["assets/vehicle-673ea579.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./evnotify/vehicle.vue":()=>k(()=>import("./vehicle-16754a95.js"),["assets/vehicle-16754a95.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./http/vehicle.vue":()=>k(()=>import("./vehicle-e0cbc84a.js"),["assets/vehicle-e0cbc84a.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./json/vehicle.vue":()=>k(()=>import("./vehicle-4a5ca121.js"),["assets/vehicle-4a5ca121.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./kia/vehicle.vue":()=>k(()=>import("./vehicle-fbca4a35.js"),["assets/vehicle-fbca4a35.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./leaf/vehicle.vue":()=>k(()=>import("./vehicle-3896a2ec.js"),["assets/vehicle-3896a2ec.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./manual/vehicle.vue":()=>k(()=>import("./vehicle-70e7db8e.js"),["assets/vehicle-70e7db8e.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mercedeseq/vehicle.vue":()=>k(()=>import("./vehicle-3cb9cb75.js"),["assets/vehicle-3cb9cb75.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./mqtt/vehicle.vue":()=>k(()=>import("./vehicle-fe38074f.js"),["assets/vehicle-fe38074f.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./ovms/vehicle.vue":()=>k(()=>import("./vehicle-f2b05f39.js"),["assets/vehicle-f2b05f39.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./psa/vehicle.vue":()=>k(()=>import("./vehicle-b82069af.js"),["assets/vehicle-b82069af.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./psacc/vehicle.vue":()=>k(()=>import("./vehicle-9efbb8ea.js"),["assets/vehicle-9efbb8ea.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./renault/vehicle.vue":()=>k(()=>import("./vehicle-38543ffd.js"),["assets/vehicle-38543ffd.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./skoda/vehicle.vue":()=>k(()=>import("./vehicle-9505d809.js"),["assets/vehicle-9505d809.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./smarthello/vehicle.vue":()=>k(()=>import("./vehicle-65e3046c.js"),["assets/vehicle-65e3046c.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tesla/vehicle.vue":()=>k(()=>import("./vehicle-e45de3aa.js"),["assets/vehicle-e45de3aa.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-axios-ac33d60c.js","assets/index-8dd8e083.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./tronity/vehicle.vue":()=>k(()=>import("./vehicle-04c99766.js"),["assets/vehicle-04c99766.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"]),"./vwid/vehicle.vue":()=>k(()=>import("./vehicle-8c0aaa75.js"),["assets/vehicle-8c0aaa75.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/index-8dd8e083.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/index-322df0b0.css","assets/dynamic-import-helper-be004503.js"])}),`./${this.vehicle.type}/vehicle.vue`),errorComponent:we})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function Ce(n,e,f,U,y,t){const E=b("font-awesome-icon"),h=b("openwb-base-alert"),z=b("openwb-base-heading");return o(),p(W,null,[f.vehicle.official?(o(),c(h,{key:0,subtype:"info"},{default:a(()=>[l(E,{icon:["fas","certificate"]}),i(' Das ausgewählte Fahrzeug-Modul "'+w(f.vehicle.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(o(),c(h,{key:1,subtype:"info"},{default:a(()=>[l(E,{icon:["fas","people-group"]}),i(' Das ausgewählte Fahrzeug-Modul "'+w(f.vehicle.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),l(z,null,{default:a(()=>[i(' Einstellungen für SoC-Modul "'+w(f.vehicle.name)+'" ',1)]),_:1}),(o(),c(ce(t.getVehicleComponent()),{"vehicle-id":f.vehicleId,vehicle:f.vehicle,"onUpdate:configuration":e[0]||(e[0]=V=>t.updateConfiguration(V))},null,40,["vehicle-id","vehicle"]))],64)}const Se=q(ze,[["render",Ce],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleProxy.vue"]]);x.add(R,I,H,j,J,G,ue,re,$,Q,X);const ye={name:"VehicleScheduledChargingPlan",components:{FontAwesomeIcon:O},mixins:[Y],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0},dcChargingEnabled:{type:Boolean,default:!1}},emits:["update:modelValue","sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/optional/et/provider"],showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addChargeTemplateSchedulePlan",data:{template:this.templateId,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplateSchedulePlan",data:{template:this.templateId,plan:this.modelValue.id}})}}},Ee={key:0},Ae={key:1},Ue={key:2},Le={key:3},Pe={key:4},We={key:5},Fe={key:1},Be={key:4},Me={key:7};function Te(n,e,f,U,y,t){const E=b("openwb-base-modal-dialog"),h=b("font-awesome-icon"),z=b("openwb-base-avatar"),V=b("openwb-base-text-input"),C=b("openwb-base-button-group-input"),F=b("openwb-base-range-input"),S=b("openwb-base-number-input"),M=b("openwb-base-alert"),v=b("openwb-base-card");return o(),p(W,null,[l(E,{show:y.showRemoveModal,title:"Zielladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:a(()=>[i(' Wollen Sie den Zielladen Zeitplan "'+w(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l(v,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:a(s=>[s.collapsed==!0?(o(),p("span",{key:0,class:ee(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=B(_=>t.plan.active=!t.plan.active,["stop"]))},[t.plan.limit.selected=="soc"?(o(),p("span",Ee,[l(h,{icon:["fas","car-battery"]}),i(" "+w(t.plan.limit.soc_scheduled)+"% ",1),l(h,{icon:["fas",t.plan.bidi_charging_enabled?"right-left":"right-long"]},null,8,["icon"]),i(" "+w(t.plan.limit.soc_limit)+"% ",1)])):m("",!0),t.plan.limit.selected=="amount"?(o(),p("span",Ae,[l(h,{icon:["fas","bolt"]}),i(" "+w(t.plan.limit.amount/1e3)+"kWh ",1)])):m("",!0),l(h,{icon:["fas","clock"]}),i(" "+w(t.plan.time)+" ",1),t.plan.frequency.selected=="once"?(o(),p("span",Ue,[l(h,{icon:["fas","calendar-day"]}),i(" "+w(n.formatDate(t.plan.frequency.once)),1)])):m("",!0),t.plan.frequency.selected=="daily"?(o(),p("span",Le,[l(h,{icon:["fas","calendar-week"]})])):m("",!0),t.plan.frequency.selected=="weekly"?(o(),p("span",Pe,[l(h,{icon:["fas","calendar-alt"]})])):m("",!0),t.plan.et_active?(o(),p("span",We,[l(h,{icon:["fas","coins"]})])):m("",!0)],2)):m("",!0),s.collapsed==!1?(o(),p("span",Fe,[l(z,{class:"bg-success clickable ml-1",title:"Zielladen-Plan duplizieren",onClick:e[1]||(e[1]=B(_=>t.copyPlan(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1}),l(z,{class:"bg-danger clickable ml-1",title:"Zielladen-Plan löschen",onClick:e[2]||(e[2]=B(_=>t.removePlanModal(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1})])):m("",!0)]),default:a(()=>[l(V,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=s=>t.plan.name=s),title:"Bezeichnung"},null,8,["modelValue"]),l(C,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=s=>t.plan.active=s),title:"Zeitpunkt aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),l(V,{modelValue:t.plan.time,"onUpdate:modelValue":e[5]||(e[5]=s=>t.plan.time=s),title:"Ziel-Uhrzeit",subtype:"time"},{help:a(()=>e[19]||(e[19]=[i(" Hier ist die gewünschte Uhrzeit einzustellen, zu welcher das Fahrzeug den gewünschten SoC bzw. die zu ladende Energiemenge BEREITS ERREICHT haben soll. ",-1)])),_:1},8,["modelValue"]),l(C,{modelValue:t.plan.limit.selected,"onUpdate:modelValue":e[6]||(e[6]=s=>t.plan.limit.selected=s),title:"Ziel",buttons:[{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}]},{help:a(()=>e[20]||(e[20]=[i(" Bestimmt die Art der Grenze für den Ladevorgang. ",-1)])),_:1},8,["modelValue"]),t.plan.limit.selected=="soc"?(o(),c(F,{key:0,modelValue:t.plan.limit.soc_scheduled,"onUpdate:modelValue":e[7]||(e[7]=s=>t.plan.limit.soc_scheduled=s),title:"Fahrzeug-SoC zum Zielzeitpunkt",min:5,max:100,step:5,unit:"%"},{help:a(()=>e[21]||(e[21]=[i(" SoC, der zum angegebenen Zeitpunkt erreicht werden soll (Ziel-SoC). ",-1)])),_:1},8,["modelValue"])):m("",!0),t.plan.limit.selected=="soc"?(o(),c(F,{key:1,modelValue:t.plan.limit.soc_limit,"onUpdate:modelValue":e[8]||(e[8]=s=>t.plan.limit.soc_limit=s),title:"Fahrzeug-SoC mit Überschuss",min:5,max:100,step:5,unit:"%"},{help:a(()=>e[22]||(e[22]=[i(" Nach Erreichen des Ziel-SoCs wird mit Überschuss weiter geladen, bis das SoC-Limit erreicht wird. Sobald das SoC-Limit erreicht wurde, findet keine Ladung mehr mit Überschuss statt! ",-1)])),_:1},8,["modelValue"])):m("",!0),t.plan.limit.selected=="amount"?(o(),c(S,{key:2,title:"Ziel-Energie",unit:"kWh",min:1,step:.5,"model-value":t.plan.limit.amount/1e3,"onUpdate:modelValue":e[9]||(e[9]=s=>t.plan.limit.amount=s*1e3)},{help:a(()=>e[23]||(e[23]=[i(" Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zielladen schon ausgewählt ist, neu gezählt. ",-1)])),_:1},8,["model-value"])):m("",!0),e[31]||(e[31]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[10]||(e[10]=s=>t.plan.frequency.selected=s),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(o(),c(V,{key:3,modelValue:t.plan.frequency.once,"onUpdate:modelValue":e[11]||(e[11]=s=>t.plan.frequency.once=s),title:"Datum",subtype:"date"},null,8,["modelValue"])):m("",!0),t.plan.frequency.selected=="weekly"?(o(),p("div",Be,[(o(!0),p(W,null,D(n.weekdays,(s,_)=>(o(),c(C,{key:_,modelValue:t.plan.frequency.weekly[_],"onUpdate:modelValue":N=>t.plan.frequency.weekly[_]=N,title:s,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):m("",!0),e[32]||(e[32]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.et_active,"onUpdate:modelValue":e[12]||(e[12]=s=>t.plan.et_active=s),title:"Strompreisbasiert Laden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),t.plan.et_active==!0&&(!n.$store.state.mqtt["openWB/optional/et/provider"]||!n.$store.state.mqtt["openWB/optional/et/provider"].type)?(o(),c(M,{key:5,subtype:"danger"},{default:a(()=>e[24]||(e[24]=[i(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. ",-1)])),_:1,__:[24]})):m("",!0),l(C,{modelValue:t.plan.phases_to_use,"onUpdate:modelValue":e[13]||(e[13]=s=>t.plan.phases_to_use=s),title:"Anzahl Phasen Zielladen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}]},{help:a(()=>e[25]||(e[25]=[i(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zielladen" mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um das Ziel zu erreichen. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])),_:1},8,["modelValue"]),l(C,{modelValue:t.plan.phases_to_use_pv,"onUpdate:modelValue":e[14]||(e[14]=s=>t.plan.phases_to_use_pv=s),title:"Anzahl Phasen bei PV-Überschuss",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}]},{help:a(()=>e[26]||(e[26]=[i(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zielladen" bei Laden mit PV-Überschuss mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um das Ziel zu erreichen. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])),_:1},8,["modelValue"]),l(F,{modelValue:t.plan.current,"onUpdate:modelValue":e[15]||(e[15]=s=>t.plan.current=s),title:`Ladestrom${f.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A"},{help:a(()=>e[27]||(e[27]=[i(" Mit dieser Stromstärke wird der Zeitpunkt berechnet, wann die Ladung mit Netzbezug gestartet werden muss. Wird der Ziel-SoC nicht zum angegebenen Termin erreicht, weil z.B. das Auto erst später angesteckt wurde, wird auch mit einer höheren Stromstärke geladen. Um etwas Puffer zu haben, empfiehlt es sich, etwas weniger als die Maximalstromstärke des Fahrzeugs zu wählen. ",-1)])),_:1},8,["modelValue","title"]),f.dcChargingEnabled===!0?(o(),c(S,{key:6,title:"Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(t.plan.dc_current),"onUpdate:modelValue":e[16]||(e[16]=s=>t.plan.dc_current=n.dc_power2ac_current(s))},null,8,["model-value"])):m("",!0),t.plan.limit.selected=="soc"?(o(),p("div",Me,[e[30]||(e[30]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.bidi_charging_enabled,"onUpdate:modelValue":e[17]||(e[17]=s=>t.plan.bidi_charging_enabled=s),title:"Bidirektionales Überschussladen bei kompatiblem Ladepunkt&Fahrzeug",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},{help:a(()=>e[28]||(e[28]=[i(" Wenn Ladepunkt und Fahrzeug bidirektionales Laden unterstützen, wird bis zum Fahrzug-SoC zum Zielzeitpunkt wie gewohnt mit Zielladen geladen. Ist der eingestellte SoC erreicht, wird eine Nullpunktausregelung gemacht, dh das Auto wird so ge- und entladen, dass möglichst weder Bezug noch Einspeisung entsteht. Der SoC wird dabei immer zwischen Fahrzeug-SoC zum Zielzeitpunkt und Fahrzeug-SoC mit Überschuss gehalten. ",-1),g("br",null,null,-1),i(" Unterstützen das Fahrzeug und/oder der Ladepunkt kein bidirektionales Laden, hat diese Einstellung keine Auswirkung. ",-1)])),_:1},8,["modelValue"]),t.plan.bidi_charging_enabled===!0?(o(),c(M,{key:0,subtype:"info"},{default:a(()=>e[29]||(e[29]=[i(" Die Norm IEC 61851-1 und ISO 15118 benötigen als Parameter eine Stromstärke und die Phasenzahl. Die Norm ISO 15118-20, die das bidirektionale Laden definiert, benötigt als Parameter eine Ladeleistung. Die Phasenzahl legt das Fahrzeug fest. Wenn Fahrzeug und Ladepunkt bidirektionales Laden nach ISO 15118-20 unterstützen, wird die eingestellte Ladeleistung verwendet. Unterstützen das Fahrzeug und/oder der Ladepunkt die Norm nicht, wird der Ladestrom und die vorgegebene Phasenzahl angewendet. ",-1)])),_:1,__:[29]})):m("",!0),t.plan.bidi_charging_enabled===!0?(o(),c(S,{key:1,title:"Ladeleistung",min:1,max:22,step:.5,unit:"kW","model-value":t.plan.bidi_power/1e3,"onUpdate:modelValue":e[18]||(e[18]=s=>n.updateState(n.templateKey,s*1e3,"plan.bidi_power"))},null,8,["model-value"])):m("",!0)])):m("",!0)]),_:1,__:[31,32]},8,["title"])],64)}const De=q(ye,[["render",Te],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ChargeTemplateScheduledChargingPlan.vue"]]);x.add(R,I,H,j,J,G,Q,X);const qe={name:"ChargeTemplateTimeChargingPlan",components:{FontAwesomeIcon:O},mixins:[Y],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0},dcChargingEnabled:{type:Boolean,default:!1}},emits:["update:modelValue","sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/optional/dc_charging"],showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addChargeTemplateTimeChargingPlan",data:{template:this.templateId,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplateTimeChargingPlan",data:{template:this.templateId,plan:this.modelValue.id}})}}},Ze={key:0},xe={key:1},Oe={key:2},Ne={key:3},Re={key:4},Ie={key:1},He={key:3};function je(n,e,f,U,y,t){const E=b("openwb-base-modal-dialog"),h=b("font-awesome-icon"),z=b("openwb-base-avatar"),V=b("openwb-base-text-input"),C=b("openwb-base-button-group-input"),F=b("openwb-base-range-input"),S=b("openwb-base-number-input"),M=b("openwb-base-card");return o(),p(W,null,[l(E,{show:y.showRemoveModal,title:"Zeitladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:a(()=>[i(' Wollen Sie den Zeitladen Zeitplan "'+w(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l(M,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:a(v=>[v.collapsed==!0?(o(),p("span",{key:0,class:ee(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=B(s=>t.plan.active=!t.plan.active,["stop"]))},[t.plan.limit.selected=="soc"?(o(),p("span",Ze,[l(h,{icon:["fas","car-battery"]}),i(" "+w(t.plan.limit.soc)+"% ",1)])):m("",!0),t.plan.limit.selected=="amount"?(o(),p("span",xe,[l(h,{icon:["fas","bolt"]}),i(" "+w(t.plan.limit.amount/1e3)+"kWh ",1)])):m("",!0),l(h,{icon:["fas","clock"]}),i(" "+w(t.plan.time[0])+" - "+w(t.plan.time[1])+" ",1),t.plan.frequency.selected=="once"?(o(),p("span",Oe,[l(h,{icon:["fas","calendar-day"]}),i(" "+w(n.formatDate(t.plan.frequency.once[0])==n.formatDate(t.plan.frequency.once[1])?n.formatDate(t.plan.frequency.once[0]):n.formatDate(t.plan.frequency.once[0])+" - "+n.formatDate(t.plan.frequency.once[1])),1)])):m("",!0),t.plan.frequency.selected=="daily"?(o(),p("span",Ne,[l(h,{icon:["fas","calendar-week"]})])):m("",!0),t.plan.frequency.selected=="weekly"?(o(),p("span",Re,[l(h,{icon:["fas","calendar-alt"]})])):m("",!0)],2)):m("",!0),v.collapsed==!1?(o(),p("span",Ie,[l(z,{class:"bg-success clickable",title:"Zeitladen-Plan duplizieren",onClick:e[1]||(e[1]=B(s=>t.copyPlan(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1}),l(z,{class:"bg-danger clickable ml-1",title:"Zeitladen-Plan löschen",onClick:e[2]||(e[2]=B(s=>t.removePlanModal(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1})])):m("",!0)]),default:a(()=>[l(V,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=v=>t.plan.name=v),title:"Bezeichnung"},null,8,["modelValue"]),l(C,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=v=>t.plan.active=v),title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),l(F,{modelValue:t.plan.current,"onUpdate:modelValue":e[5]||(e[5]=v=>t.plan.current=v),title:`Ladestrom${f.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A"},null,8,["modelValue","title"]),f.dcChargingEnabled===!0?(o(),c(S,{key:0,title:"Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(t.plan.dc_current),"onUpdate:modelValue":e[6]||(e[6]=v=>t.plan.dc_current=n.dc_power2ac_current(v))},null,8,["model-value"])):m("",!0),l(C,{modelValue:t.plan.limit.selected,"onUpdate:modelValue":e[7]||(e[7]=v=>t.plan.limit.selected=v),title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}]},{help:a(()=>e[16]||(e[16]=[i(" Bestimmt die Art der Grenze für den Ladevorgang. ",-1)])),_:1},8,["modelValue"]),l(F,{modelValue:t.plan.limit.soc,"onUpdate:modelValue":e[8]||(e[8]=v=>t.plan.limit.soc=v),title:"Ziel-SoC für das Fahrzeug",min:5,max:100,step:5,unit:"%"},{help:a(()=>e[17]||(e[17]=[i(" Ladestand des Akku (State of Charge, SoC), bis zu welchem maximal geladen werden soll. ",-1)])),_:1},8,["modelValue"]),l(S,{title:"Ziel-Energie",unit:"kWh",min:1,step:.5,"model-value":t.plan.limit.amount/1e3,"onUpdate:modelValue":e[9]||(e[9]=v=>t.plan.limit.amount=v*1e3)},{help:a(()=>e[18]||(e[18]=[i(" Maximal zu ladende Energie innerhalb des Zeitfensters. Eignet sich immer dann wenn kein SoC zur Verfügung steht. Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zeitladen schon aktiv ist, neu gezählt. ",-1)])),_:1},8,["model-value"]),e[20]||(e[20]=g("hr",null,null,-1)),l(V,{modelValue:t.plan.time[0],"onUpdate:modelValue":e[10]||(e[10]=v=>t.plan.time[0]=v),title:"Zeitpunkt des Ladebeginns",subtype:"time"},null,8,["modelValue"]),l(V,{modelValue:t.plan.time[1],"onUpdate:modelValue":e[11]||(e[11]=v=>t.plan.time[1]=v),title:"Zeitpunkt des Ladeendes",subtype:"time"},null,8,["modelValue"]),l(C,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[12]||(e[12]=v=>t.plan.frequency.selected=v),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(o(),c(V,{key:1,modelValue:t.plan.frequency.once[0],"onUpdate:modelValue":e[13]||(e[13]=v=>t.plan.frequency.once[0]=v),title:"Gültig ab",subtype:"date"},null,8,["modelValue"])):m("",!0),t.plan.frequency.selected=="once"?(o(),c(V,{key:2,modelValue:t.plan.frequency.once[1],"onUpdate:modelValue":e[14]||(e[14]=v=>t.plan.frequency.once[1]=v),title:"Gültig bis",subtype:"date",min:t.plan.frequency.once[0]},null,8,["modelValue","min"])):m("",!0),t.plan.frequency.selected=="weekly"?(o(),p("div",He,[(o(!0),p(W,null,D(n.weekdays,(v,s)=>(o(),c(C,{key:s,modelValue:t.plan.frequency.weekly[s],"onUpdate:modelValue":_=>t.plan.frequency.weekly[s]=_,title:v,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):m("",!0),e[21]||(e[21]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.phases_to_use,"onUpdate:modelValue":e[15]||(e[15]=v=>t.plan.phases_to_use=v),title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}]},{help:a(()=>e[19]||(e[19]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])),_:1},8,["modelValue"])]),_:1,__:[20,21]},8,["title"])],64)}const Je=q(qe,[["render",je],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ChargeTemplateTimeChargingPlan.vue"]]);x.add(de,X,j,G,J,H,R,I,oe,se,me,$,Q);const Ge={name:"OpenwbVehicleConfigView",components:{FontAwesomeIcon:O,FontAwesomeLayers:ge,OpenwbVehicleProxy:Se,ChargeTemplateScheduledChargingPlan:De,ChargeTemplateTimeChargingPlan:Je},mixins:[Y],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/optional/dc_charging","openWB/optional/et/provider","openWB/optional/rfid/active","openWB/vehicle/template/ev_template/+","openWB/vehicle/template/charge_template/+","openWB/vehicle/template/charge_template/+/chargemode/scheduled_charging/plans/+","openWB/vehicle/template/charge_template/+/time_charging/plans/+","openWB/vehicle/+/name","openWB/vehicle/+/info","openWB/vehicle/+/charge_template","openWB/vehicle/+/ev_template","openWB/vehicle/+/tag_id","openWB/system/configurable/soc_modules","openWB/vehicle/+/soc_module/general_config","openWB/vehicle/+/soc_module/config"],showVehicleModal:!1,modalVehicleIndex:void 0,showEvTemplateModal:!1,modalEvTemplateIndex:void 0,showChargeTemplateModal:!1,modalChargeTemplateIndex:void 0}},computed:{dcChargingEnabled:{get(){return this.$store.state.mqtt["openWB/optional/dc_charging"]}},vehicleIndexes:{get(){return this.getWildcardIndexList("openWB/vehicle/+/name")}},evTemplates:{get(){return this.getWildcardTopics("openWB/vehicle/template/ev_template/+")}},evTemplateList:{get(){let n=[];return Object.keys(this.evTemplates).forEach(e=>{let f=parseInt(e.match(/([0-9]+)$/g)[0]),U=this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+f].name;n.push({value:f,text:U})}),n}},chargeTemplates:{get(){return this.getWildcardTopics("openWB/vehicle/template/charge_template/+")}},chargeTemplateList:{get(){let n=[];return Object.keys(this.chargeTemplates).forEach(e=>{let f=parseInt(e.match(/([0-9]+)$/g)[0]),U=this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+f].name;n.push({value:f,text:U})}),n}},socModuleList:{get(){return this.$store.state.mqtt["openWB/system/configurable/soc_modules"]}}},methods:{updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)},addVehicle(n){n.stopPropagation(),this.$emit("sendCommand",{command:"addVehicle",data:{}})},removeVehicleModal(n,e){n.stopPropagation(),this.modalVehicleIndex=e,this.showVehicleModal=!0},removeVehicle(n,e){this.showVehicleModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeVehicle",data:{id:e}})},getVehicleName(n){return this.$store.state.mqtt["openWB/vehicle/"+n+"/name"]?this.$store.state.mqtt["openWB/vehicle/"+n+"/name"]:"Fahrzeug "+n},getSocDefaultConfiguration(n){const e=this.socModuleList.find(f=>f.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for soc type!",n),{})},updateSelectedSocModule(n,e){this.updateState("openWB/vehicle/"+n+"/soc_module/config",e,"type"),this.updateState("openWB/vehicle/"+n+"/soc_module/config",this.getSocDefaultConfiguration(e))},addEvTemplate(n,e){n.stopPropagation();let f={};e&&e.match(/([^/]+)$/)&&(f.copy=parseInt(e.match(/([^/]+)$/)[0])),this.$emit("sendCommand",{command:"addEvTemplate",data:f})},removeEvTemplateModal(n,e){n.stopPropagation(),this.modalEvTemplateIndex=parseInt(e.match(/([^/]+)$/)[0]),this.showEvTemplateModal=!0},removeEvTemplate(n,e){this.showEvTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeEvTemplate",data:{id:e}})},getEvTemplateName(n){return this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+n]?this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+n].name:"Fahrzeug-Profil "+n},addChargeTemplate(n,e){n.stopPropagation();let f={};e&&e.match(/([^/]+)$/)&&(f.copy=parseInt(e.match(/([^/]+)$/)[0])),this.$emit("sendCommand",{command:"addChargeTemplate",data:f})},removeChargeTemplateModal(n,e){this.modalChargeTemplateIndex=e,this.showChargeTemplateModal=!0},removeChargeTemplate(n,e){this.showChargeTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplate",data:{id:e}})},getChargeTemplateName(n){return this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+n]?this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+n].name:"Lade-Profil "+n},addChargeTemplateSchedulePlan(n){this.$emit("sendCommand",{command:"addChargeTemplateSchedulePlan",data:{template:n}})},addChargeTemplateTimeChargingPlan(n){this.$emit("sendCommand",{command:"addChargeTemplateTimeChargingPlan",data:{template:n}})},openActiveChargeModeCard(n,e){this.$nextTick(()=>{["instant_charging","pv_charging","eco_charging","scheduled_charging"].forEach(U=>{const y=`card-${n}-${U}`,t=this.$refs[y],E=Array.isArray(t)?t[0]:t;E&&(E.isCollapsed=U!==e)})})}}},Qe={class:"vehicleConfig"},Xe={name:"vehicleConfigForm"},Ye={key:0},Ke={key:1},$e={key:2},en={key:0},nn={key:0},tn={key:1},ln={key:1},an={key:3},un={key:0},rn={key:1},dn={key:0},on={key:1},sn={key:0},mn={key:0},gn={key:3},pn={key:0},hn={key:1},cn={key:0},bn={key:1};function fn(n,e,f,U,y,t){const E=b("openwb-base-modal-dialog"),h=b("font-awesome-icon"),z=b("openwb-base-avatar"),V=b("openwb-base-alert"),C=b("openwb-base-text-input"),F=b("openwb-base-select-input"),S=b("openwb-base-heading"),M=b("router-link"),v=b("openwb-base-array-input"),s=b("openwb-base-button-group-input"),_=b("openwb-base-number-input"),N=b("openwb-vehicle-proxy"),L=b("openwb-base-card"),K=b("font-awesome-layers"),P=b("openwb-base-range-input"),ne=b("charge-template-scheduled-charging-plan"),te=b("charge-template-time-charging-plan"),le=b("openwb-base-submit-buttons");return o(),p(W,null,[l(E,{show:y.showVehicleModal,title:"Fahrzeug löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=r=>t.removeVehicle(r,y.modalVehicleIndex))},{default:a(()=>[i(' Wollen Sie das Fahrzeug "'+w(t.getVehicleName(y.modalVehicleIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),l(E,{show:y.showEvTemplateModal,title:"Fahrzeug-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=r=>t.removeEvTemplate(r,y.modalEvTemplateIndex))},{default:a(()=>[i(' Wollen Sie das Fahrzeug-Profil "'+w(t.getEvTemplateName(y.modalEvTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),l(E,{show:y.showChargeTemplateModal,title:"Lade-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[2]||(e[2]=r=>t.removeChargeTemplate(r,y.modalChargeTemplateIndex))},{default:a(()=>[i(' Wollen Sie das Lade-Profil "'+w(t.getChargeTemplateName(y.modalChargeTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),g("div",Qe,[g("form",Xe,[l(L,{subtype:"info",collapsible:!0,collapsed:n.$route.params.section!="vehicle"},{header:a(()=>[l(h,{icon:["fas","car"]}),e[8]||(e[8]=i(" Fahrzeuge ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(o(),c(z,{key:0,class:"bg-success clickable",title:"Neues Fahrzeug hinzufügen",onClick:t.addVehicle},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(o(),p("div",Ye,[l(V,{subtype:"info"},{default:a(()=>e[9]||(e[9]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[9]})])):(o(),p("div",Ke,[(o(!0),p(W,null,D(t.vehicleIndexes,r=>(o(),c(L,{key:r,title:t.getVehicleName(r),collapsible:!0,collapsed:!(n.$route.params.section=="vehicle"&&parseInt(n.$route.params.section_index)==r),subtype:"info"},Z({default:a(()=>[l(C,{title:"Bezeichnung","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/name"],disabled:r===0,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/name",d)},Z({_:2},[r===0?{name:"help",fn:a(()=>[e[10]||(e[10]=i(" Das Standard-Fahrzeug kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),r!==0?(o(),c(C,{key:0,title:"Fahrzeughersteller ","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/info"].manufacturer,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/info",d,"manufacturer")},{help:a(()=>[...e[11]||(e[11]=[i(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),r!==0?(o(),c(C,{key:1,title:"Fahrzeugmodell","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/info"].model,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/info",d,"model")},{help:a(()=>[...e[12]||(e[12]=[i(" Optional: zusätzliche Information für den Systembericht.",-1),g("br",null,null,-1),i(" Nach Möglichkeit auch Angabe des Baujahres, da es durchaus beim Verhalten des Fahrzeugs Unterschiede geben kann. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),l(V,{subtype:"info"},{default:a(()=>[...e[13]||(e[13]=[i(" Ein anderes Fahrzeug-Profil wird erst NACH dem Abstecken übernommen, da es sonst durch die Änderung bestimmter Einstellungen im laufenden Ladevorgang zu Widersprüchen kommen kann. ",-1)])]),_:1,__:[13]}),l(F,{title:"Fahrzeug-Profil",options:t.evTemplateList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/ev_template"],"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/ev_template",d)},null,8,["options","model-value","onUpdate:modelValue"]),l(F,{title:"Lade-Profil",options:t.chargeTemplateList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/charge_template"],"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/charge_template",d)},null,8,["options","model-value","onUpdate:modelValue"]),e[32]||(e[32]=g("hr",null,null,-1)),f.installAssistantActive?m("",!0):(o(),p("div",$e,[l(S,null,{default:a(()=>[...e[14]||(e[14]=[i(" Fahrzeugzuordnung per ID-Tags ",-1)])]),_:1,__:[14]}),n.$store.state.mqtt["openWB/vehicle/"+r+"/tag_id"].length>0?(o(),p("div",en,[l(V,{subtype:"info"},{default:a(()=>[e[16]||(e[16]=i(" Einstellungen zur Fahrzeugzuordnung finden sich unter ",-1)),l(M,{to:"/IdentificationConfig"},{default:a(()=>[...e[15]||(e[15]=[i(" Einstellungen - Identifikation ",-1)])]),_:1,__:[15]}),e[17]||(e[17]=i(". ",-1)),n.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(o(),p("div",nn," Aktuell ist die Option in den Einstellungen deaktiviert. ")):(o(),p("div",tn," Die Option ist aktiv. Das Fahrzeug lässt sich per ID-Tag automatisch einem Ladepunkt zuordnen. ")),e[18]||(e[18]=i(" Dem Fahrzeug sind folgende ID-Tags zugeordnet: ",-1))]),_:1,__:[16,17,18]}),l(v,{title:"Zugeordnete ID-Tags","no-elements-message":"Keine keine ID-Tags zugeordnet.","no-input":!0,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/tag_id"]},null,8,["model-value"])])):(o(),p("div",ln,[l(V,{subtype:"info"},{default:a(()=>[e[20]||(e[20]=i(" Einstellungen zur Fahrzeugzuordnung finden sich unter ",-1)),l(M,{to:"/IdentificationConfig"},{default:a(()=>[...e[19]||(e[19]=[i(" Einstellungen - Identifikation ",-1)])]),_:1,__:[19]}),e[21]||(e[21]=i(".",-1)),e[22]||(e[22]=g("br",null,null,-1)),e[23]||(e[23]=i(" Dem Fahrzeug sind aktuell keine ID-Tags zum Entsperren zugeordnet. ",-1))]),_:1,__:[20,21,22,23]})])),e[24]||(e[24]=g("hr",null,null,-1))])),l(F,{class:"mb-2",title:"SoC-Modul des Fahrzeugs",options:t.socModuleList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/config"].type,"onUpdate:modelValue":d=>t.updateSelectedSocModule(r,d)},{help:a(()=>[...e[25]||(e[25]=[i(" Mit einem SoC-Modul kann der Ladestand des Fahrzeugs ermittelt und geregelt werden. Z.B. lassen sich unabhängig vom Fahrzeug bestimmte SoC-Werte einstellen, um den Fahrzeugakku zu schonen. Aktuell werden die SoC-Werte mittels der App-Zugangsdaten aus dem Herstellerserver des Fahrzeuges ausgelesen. Zukünftig soll auch eine direkte SoC-Auslesung aus dem Fahrzeug möglich werden (openWB Pro).",-1),g("br",null,null,-1),i(" Die SoC-Abfrage erfolgt automatisch beim Anstecken des Fahrzeuges und zusätzlich über einstellbare Abfrageintervalle während des Ladens und Nichtladens. Die Abfrage kann auch manuell durch Klick auf den Reload-Pfeil auf der Hauptseite ausgelöst werden.",-1),g("br",null,null,-1),i(" Wenn eine Abfrage fehlschlägt, wird noch drei weitere Male im Abstand von 5 Minuten versucht, den SoC abzufragen. Wenn dies nicht erfolgreich ist, wird der SoC auf 0% gesetzt um zu vermeiden, dass ein Auto beim SoC-basierten Laden nicht geladen wird. Die Abfrage erfolgt dann wieder in den oben genannten Intervallen.",-1),g("br",null,null,-1),i(" Da aktuell die SoC-Abfragen über Onlineserver der Fahrzeughersteller laufen, ist infolge möglicher Umstellungen/Wartungen keine 100%-ig sichere SoC-Abfrage garantiert. Auch kann es zu SoC-Abweichungen infolge von zeitlicher Verzögerungen kommen. Hilfestellung erfolgt primär im openWB-Forum. ",-1)])]),_:2},1032,["options","model-value","onUpdate:modelValue"]),n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/config"].type?(o(),p("div",an,[l(s,{title:"SoC direkt aus Fahrzeug auslesen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"].use_soc_from_cp,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",d,"use_soc_from_cp")},{help:a(()=>[...e[26]||(e[26]=[i(" Wenn Ladepunkt und Fahrzeug das direkte Auslesen des SoCs über das Ladekabel unterstützen, wird der SoC nach dem Anstecken aus dem Fahrzeug ausgelesen und während der Ladung berechnet. Das direkte Auslesen des SoC aus dem Fahrzeug ist aktuell nur mit einer openWB Pro möglich. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(S,null,{help:a(()=>[...e[27]||(e[27]=[i(" Einige Hersteller begrenzen die möglichen Abfragen. Sobald ein gewisses Limit in einem Zeitraum überschritten wird, werden weitere Anfragen blockiert. Die Zeitintervalle sollten daher nicht zu klein gewählt werden. ",-1)])]),default:a(()=>[e[28]||(e[28]=i(" Aktualisierung der Fahrzeugdaten ",-1))]),_:1,__:[28]}),l(_,{title:"Während der Ladung",unit:"Min.",min:1,max:30,required:"","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"].request_interval_charging/60,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",d*60,"request_interval_charging")},{help:a(()=>[...e[29]||(e[29]=[i(" Der Ladestand des Fahrzeugs (SoC) wird bei einem laufenden Ladevorgang in dem hier eingestellten Intervall in Minuten abgefragt. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(_,{title:"Ohne laufende Ladung",unit:"Min.",min:5,required:"","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"].request_interval_not_charging/60,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",d*60,"request_interval_not_charging")},{help:a(()=>[...e[30]||(e[30]=[i(" Der Ladestand des Fahrzeugs (SoC) wird in dem hier eingestellten Intervall in Minuten abgefragt, falls kein Ladevorgang aktiv ist. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Nur aktualisieren wenn angesteckt",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"].request_only_plugged,"onUpdate:modelValue":d=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",d,"request_only_plugged")},{help:a(()=>[...e[31]||(e[31]=[i(' Wird hier "Ja" ausgewählt, dann wird der Ladestand des Fahrzeugs nur abgefragt, wenn das Ladekabel angesteckt ist. ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(N,{"vehicle-id":r,vehicle:n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/config"],"onUpdate:configuration":d=>t.updateConfiguration("openWB/vehicle/"+r+"/soc_module/config",d)},null,8,["vehicle-id","vehicle","onUpdate:configuration"])])):m("",!0)]),_:2},[r!==0?{name:"actions",fn:a(d=>[d.collapsed?m("",!0):(o(),c(z,{key:0,class:"bg-danger clickable",title:"Fahrzeug löschen",onClick:u=>t.removeVehicleModal(u,r)},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),key:"0"}:void 0]),1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),e[93]||(e[93]=g("hr",{class:"border-secondary"},null,-1)),l(S,null,{default:a(()=>e[33]||(e[33]=[i("Profile",-1)])),_:1,__:[33]}),l(L,{collapsible:!0,collapsed:!0},{header:a(()=>[l(K,{class:"fa-lg"},{default:a(()=>[l(h,{icon:["far","file"]}),l(h,{icon:["fas","car"],transform:"shrink-8"})]),_:1}),e[34]||(e[34]=i(" Fahrzeug-Profile ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(o(),c(z,{key:0,class:"bg-success clickable",title:"Neues Fahrzeug-Profil hinzufügen",onClick:t.addEvTemplate},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(o(),p("div",un,[l(V,{subtype:"info"},{default:a(()=>e[35]||(e[35]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[35]})])):(o(),p("div",rn,[l(V,{subtype:"info"},{default:a(()=>e[36]||(e[36]=[i(" Ein anderes Fahrzeug-Profil wird erst ",-1),g("span",{class:"text-uppercase font-weight-bold"}," nach dem Abstecken ",-1),i(" übernommen, da es sonst durch die Änderung bestimmter Einstellungen im laufenden Ladevorgang zu Widersprüchen kommen kann. ",-1)])),_:1,__:[36]}),(o(!0),p(W,null,D(t.evTemplates,(r,d)=>(o(),c(L,{key:d,title:r.name?r.name:d,collapsible:!0,collapsed:!0},Z({default:a(()=>[l(C,{title:"Bezeichnung","model-value":r.name,disabled:d.endsWith("/0"),"onUpdate:modelValue":u=>n.updateState(d,u,"name")},Z({_:2},[d.endsWith("/0")?{name:"help",fn:a(()=>[e[37]||(e[37]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),l(S,null,{default:a(()=>[...e[38]||(e[38]=[i(" Angaben zur Batterie ",-1)])]),_:1,__:[38]}),l(_,{title:"Kapazität der Batterie",unit:"kWh",min:1,step:1,required:"","model-value":r.battery_capacity/1e3,"onUpdate:modelValue":u=>n.updateState(d,u*1e3,"battery_capacity")},{help:a(()=>[...e[39]||(e[39]=[i(" Angabe der Netto-Kapazität der Fahrzeugbatterie. Dient zur Berechnung des manuellen SoC und der geladenen Reichweite. Die Netto-Kapazität unterscheidet sich meist von den Angaben der Fahrzeughersteller. So besitzt ein Tesla Model S 90 z. B. nur ca. 83kWh und nicht die durch die Typenbezeichnung suggerierten 90kWh. Andere Hersteller begrenzen die nutzbare Kapazität absichtlich, um eine höhere Lebensdauer der Akkus zu erreichen. Gängig sind eine Drosselung auf 90% der angegebenen Brutto-Kapazität. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),f.installAssistantActive?m("",!0):(o(),p("div",dn,[l(_,{title:"Wirkungsgrad der Ladeelektronik",unit:"%",min:1,max:100,required:"","model-value":r.efficiency,"onUpdate:modelValue":u=>n.updateState(d,u,"efficiency")},{help:a(()=>[...e[40]||(e[40]=[i(" Durch Verluste in der Ladeelektronik (z. B. Umwandlung Wechselspannung in Gleichspannung) gelangt nicht die komplette Energie, welche durch den Zähler in der Wallbox gemessen wird, in den Akku des Fahrzeugs. Der anzugebende Wert liegt bei gängigen Fahrzeugen im Bereich 90-95%. Eine Ausnahme stellt der Zoe dar, dessen Chameleon-Lader je nach Modellversion und freigegebener Leistung der Wallbox teilweise nur auf ca. 50% kommt.",-1),g("br",null,null,-1),i(" Liegen die Angaben der Wallbox und des Fahrzeugs nach der Ladung mehrere Prozent auseinander, dann kann mit dieser Einstellung eine Feinabstimmung erfolgen: ",-1),g("br",null,null,-1),i(" SoC an der Wallbox zu hoch: Wirkungsgrad um ein paar Prozent reduzieren",-1),g("br",null,null,-1),i(" SoC an der Wallbox zu gering: Wirkungsgrad um ein paar Prozent erhöhen",-1),g("br",null,null,-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])])),l(_,{title:"Durchschnittsverbrauch",unit:"kWh / 100km",min:1,step:.1,required:"","model-value":r.average_consump/1e3,"onUpdate:modelValue":u=>n.updateState(d,u*1e3,"average_consump")},null,8,["model-value","onUpdate:modelValue"]),l(s,{title:"Bidirektionales Laden",buttons:[{buttonValue:!1,text:"Nicht unterstützt",class:"btn-outline-danger"},{buttonValue:!0,text:"AC nach ISO15118-20",class:"btn-outline-success"}],"model-value":r.bidi,"onUpdate:modelValue":u=>n.updateState(d,u,"bidi")},{help:a(()=>[...e[41]||(e[41]=[i(' Für bidirektionales Laden wird eine openWB Pro benötigt. Die openWB Pro muss auf den Modus "Bidi" gestellt werden.',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(o(),p("div",on,[l(S,null,{default:a(()=>[...e[42]||(e[42]=[i(" Angaben zur Ladeleistung (DC) ",-1)])]),_:1,__:[42]}),l(_,{title:"Mindestleistung",min:0,unit:"kW","model-value":n.ac_current2dc_power(r.dc_min_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"dc_min_current")},null,8,["model-value","onUpdate:modelValue"]),l(_,{title:"Maximalleistung",unit:"kW","model-value":n.ac_current2dc_power(r.dc_max_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"dc_max_current")},null,8,["model-value","onUpdate:modelValue"])])):m("",!0),l(S,null,{default:a(()=>[e[43]||(e[43]=i(" Angaben zum Ladestrom ",-1)),t.dcChargingEnabled===!0?(o(),p("span",sn," (AC) ")):m("",!0)]),_:1,__:[43]}),l(P,{title:"Mindeststrom",min:6,max:16,step:1,unit:"A","model-value":r.min_current,"onUpdate:modelValue":u=>n.updateState(d,u,"min_current")},null,8,["model-value","onUpdate:modelValue"]),l(P,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":r.max_current_single_phase,"onUpdate:modelValue":u=>n.updateState(d,u,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),l(P,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":r.max_current_multi_phases,"onUpdate:modelValue":u=>n.updateState(d,u,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"]),l(_,{title:"Erlaubte Stromabweichung",step:.1,min:0,max:5,unit:"A","model-value":r.nominal_difference,"onUpdate:modelValue":u=>n.updateState(d,u,"nominal_difference")},{help:a(()=>[...e[44]||(e[44]=[i(" In manchen Lademodi, z.B. bei der automatischen Phasenumschaltung, wird geprüft, ob das Fahrzeug mit der vorgegebenen Stromstärke lädt. Manche Fahrzeuge laden nicht exakt mit der vorgegebenen Stromstärke. Die erlaubte Abweichung kann hier eingestellt werden. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(S,null,{default:a(()=>[e[45]||(e[45]=i(" Angaben zur Handhabung von Phasen ",-1)),t.dcChargingEnabled===!0?(o(),p("span",mn," (AC) ")):m("",!0)]),_:1,__:[45]}),l(s,{title:"Unterstützte Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":r.max_phases,"onUpdate:modelValue":u=>n.updateState(d,u,"max_phases")},{help:a(()=>[...e[46]||(e[46]=[i(" Anzahl der Phasen, die der Fahrzeuglader (s.g. OBC - OnboardCharger) verwendet. Plugin-Hybride nutzen meist nur eine Phase, reine E-Autos meist 3, manche nur 2 Phasen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"CP-Unterbrechung",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.control_pilot_interruption,"onUpdate:modelValue":u=>n.updateState(d,u,"control_pilot_interruption")},{help:a(()=>[...e[47]||(e[47]=[i(' Erläuterung siehe "Konfiguration - Ladepunkte" -> Hardware-Optionen ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),r.control_pilot_interruption?(o(),c(_,{key:2,title:"Dauer der CP-Unterbrechung",min:4,step:1,unit:"s","model-value":r.control_pilot_interruption_duration,"onUpdate:modelValue":u=>n.updateState(d,u,"control_pilot_interruption_duration")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Phasenumschaltung blockieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.prevent_phase_switch,"onUpdate:modelValue":u=>n.updateState(d,u,"prevent_phase_switch")},{help:a(()=>[...e[48]||(e[48]=[i(' Erläuterung zu 1p3p siehe "Ladeeinstellungen" ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Ladung aktiv halten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.prevent_charge_stop,"onUpdate:modelValue":u=>n.updateState(d,u,"prevent_charge_stop")},{help:a(()=>[...e[49]||(e[49]=[i(" Der Ladevorgang wird in den Lademodi PV- und Zielladen nach Ladebeginn nicht unterbrochen, selbst wenn nicht mehr genug Überschuss vorhanden ist. Diese Einstellung sollte bei Fahrzeugen aktiviert werden, die nach einer Ladungsunterbrechung keine Ladung mehr starten. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(_,{title:"Pause bei Phasenumschaltung",unit:"s",min:2,step:1,required:"","model-value":r.phase_switch_pause,"onUpdate:modelValue":u=>n.updateState(d,u,"phase_switch_pause")},null,8,["model-value","onUpdate:modelValue"]),f.installAssistantActive?m("",!0):(o(),p("div",gn,[l(_,{title:"Mindestzeit zwischen Umschaltungen",unit:"s",min:2,step:1,required:"","model-value":r.keep_charge_active_duration,"onUpdate:modelValue":u=>n.updateState(d,u,"keep_charge_active_duration")},{help:a(()=>[...e[50]||(e[50]=[i(" Manche Fahrzeuge benötigen nach der Umschaltung einige Zeit, bis sie mit der vorgegebenen Phasenzahl laden. In dieser Zeit wird keine neue Phasenumschaltung angestoßen. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]))]),_:2},[n.$store.state.mqtt["openWB/general/extern"]===!1?{name:"actions",fn:a(u=>[u.collapsed?m("",!0):(o(),c(z,{key:0,class:"bg-success clickable",title:"Fahrzeug-Profil duplizieren",onClick:A=>t.addEvTemplate(A,d)},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:2},1032,["onClick"])),!u.collapsed&&!d.endsWith("/0")?(o(),c(z,{key:1,class:"bg-danger clickable ml-1",title:"Fahrzeug-Profil löschen",onClick:A=>t.removeEvTemplateModal(A,d)},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"])):m("",!0)]),key:"0"}:void 0]),1032,["title"]))),128))]))]),_:1}),l(L,{collapsible:!0,collapsed:n.$route.params.section!="charge_template"},{header:a(()=>[l(K,{class:"fa-lg"},{default:a(()=>[l(h,{icon:["far","file"]}),l(h,{icon:["fas","plug"],transform:"shrink-8"})]),_:1}),e[51]||(e[51]=i(" Lade-Profile ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(o(),c(z,{key:0,class:"bg-success clickable",title:"Neues Lade-Profil hinzufügen",onClick:t.addChargeTemplate},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(o(),p("div",pn,[l(V,{subtype:"info"},{default:a(()=>e[52]||(e[52]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])),_:1,__:[52]})])):(o(),p("div",hn,[(o(!0),p(W,null,D(t.chargeTemplates,(r,d)=>(o(),c(L,{key:d,title:r.name?r.name:d,collapsible:!0,collapsed:!(n.$route.params.section=="charge_template"&&parseInt(n.$route.params.section_index)==r.id)},{actions:a(u=>[u.collapsed?m("",!0):(o(),c(z,{key:0,class:"bg-success clickable",title:"Lade-Profil duplizieren",onClick:A=>t.addChargeTemplate(A,d)},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:2},1032,["onClick"])),!u.collapsed&&!d.endsWith("/0")?(o(),c(z,{key:1,class:"bg-danger clickable ml-1",title:"Lade-Profil löschen",onClick:B(A=>t.removeChargeTemplateModal(A,r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:2},1032,["onClick"])):m("",!0)]),default:a(()=>[l(C,{title:"Bezeichnung","model-value":r.name,disabled:d.endsWith("/0"),"onUpdate:modelValue":u=>n.updateState(d,u,"name")},Z({_:2},[d.endsWith("/0")?{name:"help",fn:a(()=>[e[53]||(e[53]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),l(S,null,{default:a(()=>[...e[54]||(e[54]=[i(" Allgemeine Optionen ",-1)])]),_:1,__:[54]}),l(s,{title:"Aktiver Lademodus",buttons:[{buttonValue:"instant_charging",text:"Sofort",class:"btn-outline-danger"},{buttonValue:"pv_charging",text:"PV",class:"btn-outline-success"},{buttonValue:"scheduled_charging",text:"Ziel",class:"btn-outline-primary"},{buttonValue:"eco_charging",text:"Eco",class:"btn-outline-secondary"},{buttonValue:"stop",text:"Stop",class:"btn-outline-dark"}],"model-value":r.chargemode.selected,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.selected"),onButtonClick:u=>t.openActiveChargeModeCard(d,u)},{help:a(()=>[...e[55]||(e[55]=[i(" Diese Einstellung entspricht dem gewählten Lademodus auf der Hauptseite und ist aktiv, wenn ein zugehöriges Fahrzeug angesteckt ist.",-1),g("br",null,null,-1),i(" Die zur Verfügung stehende Leistung wird intern anhand folgender Prioritätenliste auf die Fahrzeuge bzw. Ladepunkte verteilt:",-1),g("br",null,null,-1),g("ol",null,[g("li",null,"Ziel (Sofortladen) mit Priorität"),g("li",null,"Ziel (Sofortladen)"),g("li",null,"Zeit mit Priorität"),g("li",null,"Zeit"),g("li",null,"Sofort mit Priorität"),g("li",null,"Sofort"),g("li",null,"Eco (Min-Anteil) mit Priorität"),g("li",null,"Eco (Min-Anteil)"),g("li",null,"PV (Min-Anteil) mit Priorität"),g("li",null,"PV (Min-Anteil)"),g("li",null,"Ziel (PV) mit Priorität"),g("li",null,"Ziel (PV)"),g("li",null,"Eco (PV-Anteil) mit Priorität"),g("li",null,"Eco (PV-Anteil)"),g("li",null,"PV (PV-Anteil) mit Priorität"),g("li",null,"PV (PV-Anteil)"),g("li",null,"Bidi-Entladen ohne Priorität"),g("li",null,"Bidi-Entladen mit Priorität")],-1)])]),_:2},1032,["model-value","onUpdate:modelValue","onButtonClick"]),f.installAssistantActive?m("",!0):(o(),p("div",cn,[l(s,{title:"Priorität",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.prio,"onUpdate:modelValue":u=>n.updateState(d,u,"prio")},{help:a(()=>[...e[56]||(e[56]=[i(" Die Ladefreigabe mit dem jeweils eingestellten Mindeststrom erfolgt für alle Fahrzeuge, soweit die verfügbare Leistung ausreicht. Fahrzeuge mit Priorität werden bevorzugt mit mehr Leistung geladen, falls verfügbar. Erst wenn alle priorisierten Fahrzeuge die maximale Ladeleistung bekommen und noch zusätzlicher Überschuss vorhanden ist, wird auch für Fahrzeuge ohne Priorität mehr Leistung freigegeben. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Standard nach Abstecken",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.load_default,"onUpdate:modelValue":u=>n.updateState(d,u,"load_default")},{help:a(()=>[...e[57]||(e[57]=[i(" Falls diese Option aktiviert ist, wird der betroffene Ladepunkt nach dem Abstecken auf das Standard Fahrzeug zurückgesetzt. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),e[59]||(e[59]=g("hr",null,null,-1)),l(S,null,{default:a(()=>[...e[58]||(e[58]=[i("Einstellungen der Lademodi",-1)])]),_:1,__:[58]})])),l(L,{ref_for:!0,ref:`card-${d}-instant_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[60]||(e[60]=[i(" Sofort ",-1)])]),default:a(()=>[l(P,{title:`Soll-Ladestrom${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":r.chargemode.instant_charging.current,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.instant_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(o(),c(_,{key:0,title:"Soll-Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.instant_charging.dc_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"chargemode.instant_charging.dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":r.chargemode.instant_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.instant_charging.phases_to_use")},{help:a(()=>[...e[61]||(e[61]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (s.g. 1p3p). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":r.chargemode.instant_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.instant_charging.limit.selected")},{help:a(()=>[...e[62]||(e[62]=[i(" Sofortladen kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(P,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":r.chargemode.instant_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.instant_charging.limit.soc")},{help:a(()=>[...e[63]||(e[63]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":r.chargemode.instant_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(d,u*1e3,"chargemode.instant_charging.limit.amount")},{help:a(()=>[...e[64]||(e[64]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1536),l(L,{ref_for:!0,ref:`card-${d}-pv_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[65]||(e[65]=[i(" PV ",-1)])]),default:a(()=>[l(P,{title:`Minimaler Dauerstrom${t.dcChargingEnabled?" (AC)":""}`,min:0,max:11,step:1,unit:"A",labels:[{label:"Aus",value:0},{label:6,value:6},{label:7,value:7},{label:8,value:8},{label:9,value:9},{label:10,value:10},{label:11,value:11},{label:12,value:12},{label:13,value:13},{label:14,value:14},{label:15,value:15},{label:16,value:16}],"model-value":r.chargemode.pv_charging.min_current,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.pv_charging.min_current")},{help:a(()=>[...e[66]||(e[66]=[i(' Hier kann eine Stromstärke eingestellt werden, mit dem unabhängig vom vorhandenen Überschuss durchgeladen wird. Hierdurch wird z.B. an Tagen mit häufigem Sonne/Wolken-Wechsel oder mit nur wenig PV-Ertrag ein Laden ohne Unterbrechung ermöglicht. Folglich kann auch Netzbezug für das Fahrzeugladen entstehen, weshalb der niedrigste Stromwert empfohlen wird. Diese Einstellung entspricht weitestgehend dem Lademodus "Min+PV" der Version 1.x. ',-1)])]),_:2},1032,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(o(),c(_,{key:0,title:"Minimale Dauerleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.pv_charging.dc_min_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"chargemode.pv_charging.dc_min_current")},{help:a(()=>[...e[67]||(e[67]=[i(" Hier kann eine Leistung eingestellt werden, mit dem unabhängig vom vorhandenen Überschuss durchgeladen wird. Hierdurch wird z.B. an Tagen mit häufigem Sonne/Wolken-Wechsel oder mit nur wenig PV-Ertrag ein Laden ohne Unterbrechung ermöglicht. Folglich kann auch Netzbezug für das Fahrzeugladen entstehen, weshalb der niedrigste Leistungswert empfohlen wird. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":r.chargemode.pv_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.pv_charging.phases_to_use")},{help:a(()=>[...e[68]||(e[68]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um den verfügbaren Überschuss in die Fahrzeuge zu laden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":r.chargemode.pv_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.pv_charging.limit.selected")},{help:a(()=>[...e[69]||(e[69]=[i(" PV kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(P,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":r.chargemode.pv_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.pv_charging.limit.soc")},{help:a(()=>[...e[70]||(e[70]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":r.chargemode.pv_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(d,u*1e3,"chargemode.pv_charging.limit.amount")},{help:a(()=>[...e[71]||(e[71]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(P,{title:"Mindest-SoC für das Fahrzeug",min:0,max:19,step:1,unit:"%",labels:[{label:"Aus",value:0},{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:20,value:20},{label:25,value:25},{label:30,value:30},{label:35,value:35},{label:40,value:40},{label:45,value:45},{label:50,value:50},{label:55,value:55},{label:60,value:60},{label:65,value:65},{label:70,value:70},{label:75,value:75},{label:80,value:80},{label:85,value:85},{label:90,value:90},{label:95,value:95}],"model-value":r.chargemode.pv_charging.min_soc,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.pv_charging.min_soc")},{help:a(()=>[...e[72]||(e[72]=[i(' Liegt der Fahrzeug-Ladestand (SoC) unter dem hier eingestellten Wert, dann wird bis zum Erreichen dieses Wertes mit dem eingestellten "Mindest-SoC-Strom" geladen. Dies dient der Sicherstellung eines "Mindest-SoC" - z.B. für eine immer abzudeckende Fahrzeugreichweite - auch wenn kein oder zu wenig Überschuss verfügbar ist (=> Laden mit anteilig Netzstrom). Nach dem Erreichen des "Mindest-SoC" wird bei verfügbarem Überschuss geladen.',-1),g("br",null,null,-1),i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(P,{title:`Mindest-SoC-Strom${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":r.chargemode.pv_charging.min_soc_current,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.pv_charging.min_soc_current")},{help:a(()=>[...e[73]||(e[73]=[i(' Wird der oben eingestellte "Mindest-SoC" des Fahrzeuges unterschritten, dann wird unabhängig vom Überschuss ein Ladevorgang mit dem hier festgelegten "Mindest-SoC-Strom" initiiert (ggf. mit anteilig Netzbezug). ',-1)])]),_:2},1032,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(o(),c(_,{key:1,title:"Mindest-SoC-Leistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.pv_charging.dc_min_soc_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"chargemode.pv_charging.dc_min_soc_current")},{help:a(()=>[...e[74]||(e[74]=[i(' Wird der oben eingestellte "Mindest-SoC" des Fahrzeuges unterschritten, dann wird unabhängig vom Überschuss ein Ladevorgang mit der hier festgelegten "Mindest-SoC-Leistung" initiiert (ggf. mit anteilig Netzbezug). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen Mindest-SoC",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":r.chargemode.pv_charging.phases_to_use_min_soc,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.pv_charging.phases_to_use_min_soc")},{help:a(()=>[...e[75]||(e[75]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Einspeisegrenze beachten",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.chargemode.pv_charging.feed_in_limit,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.pv_charging.feed_in_limit")},{help:a(()=>[...e[76]||(e[76]=[i(' Erläuterung siehe "Ladeeinstellungen" -> "PV-Laden" -> "Regelparameter" -> "Regelpunkt Einspeisegrenze" ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1536),l(L,{ref_for:!0,ref:`card-${d}-scheduled_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[77]||(e[77]=[i(" Ziel ",-1)])]),default:a(()=>[l(S,null,{actions:a(()=>[l(z,{class:"bg-success clickable",title:"Neuen Zielladen-Plan hinzufügen",onClick:B(u=>t.addChargeTemplateSchedulePlan(r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:2},1032,["onClick"])]),help:a(()=>[...e[78]||(e[78]=[i(' Im Lademodus "Zielladen" wird der Ladestrom so angepasst, dass das Fahrzeug zum angegebenen Zeitpunkt den eingestellten SoC bzw. die einzuladende Energiemenge erreicht. Anhand des vorgegebenen Ladestroms wird der Zeitpunkt berechnet, an dem die Ladung spätestens starten muss.',-1),g("br",null,null,-1),i(' Ist der berechnete Zeitpunkt des Ladestarts noch nicht erreicht, wird mit Überschuss geladen. Auch nach Erreichen des Ziel-SoCs wird mit Überschuss geladen, solange bis das "SoC-Limit für das Fahrzeug" erreicht wird.',-1),g("br",null,null,-1),i(" Es wird nach den Vorgaben des Zeitplans geladen, dessen Zieltermin am nächsten liegt. Ist der Zielzeitpunkt vorbei, wird solange geladen bis, das Ziel erreicht oder das Auto abgesteckt wird. Wenn der Ziel-Termin des nächsten Plans innerhalb der nächsten 12 Stunden liegt, wird auf den nächsten Plan umgeschaltet. ",-1)])]),default:a(()=>[e[79]||(e[79]=i(" Zielladepläne ",-1))]),_:2,__:[79]},1024),r.chargemode.scheduled_charging.plans.length==0?(o(),c(V,{key:0,subtype:"info"},{default:a(()=>[...e[80]||(e[80]=[i(" Es wurden noch keine Pläne für das Zielladen angelegt. ",-1)])]),_:1,__:[80]})):m("",!0),(o(!0),p(W,null,D(r.chargemode.scheduled_charging.plans,(u,A)=>(o(),c(ne,{key:A,"model-value":u,"template-id":r.id,"dc-charging-enabled":t.dcChargingEnabled,"onUpdate:modelValue":T=>n.updateState(d,T,`chargemode.scheduled_charging.plans.${A}`),onSendCommand:e[3]||(e[3]=T=>n.$emit("sendCommand",T))},null,8,["model-value","template-id","dc-charging-enabled","onUpdate:modelValue"]))),128))]),_:2},1536),l(L,{ref_for:!0,ref:`card-${d}-eco_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[81]||(e[81]=[i(" Eco ",-1)])]),default:a(()=>[l(S,null,{help:a(()=>[...e[82]||(e[82]=[i(" Im Eco-Modus wird eine Preisgrenze vorgegeben. Wenn der Strompreis unter dieser Grenze liegt, wird mit dem eingestellten Ladestrom geladen und -falls vorhanden- zusätzlich mit dem Überschuss. Wenn die Preisgrenze überschritten wird, wird nur mit Überschuss geladen, wenn dieser vorhanden ist. ",-1)])]),default:a(()=>[e[83]||(e[83]=i("Arbeitsweise von Eco ",-1))]),_:1,__:[83]}),l(P,{title:`Minimaler Dauerstrom unter der Preisgrenze${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":r.chargemode.eco_charging.current,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.eco_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(o(),c(_,{key:0,title:"Minimale Dauerleistung unter der Preisgrenze (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.eco_charging.dc_current),"onUpdate:modelValue":u=>n.updateState(d,n.dc_power2ac_current(u),"chargemode.eco_charging.dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":r.chargemode.eco_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.eco_charging.phases_to_use")},{help:a(()=>[...e[84]||(e[84]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um den verfügbaren Überschuss in die Fahrzeuge zu laden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":r.chargemode.eco_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.eco_charging.limit.selected")},{help:a(()=>[...e[85]||(e[85]=[i(" Eco kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(P,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":r.chargemode.eco_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(d,u,"chargemode.eco_charging.limit.soc")},{help:a(()=>[...e[86]||(e[86]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":r.chargemode.eco_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(d,u*1e3,"chargemode.eco_charging.limit.amount")},{help:a(()=>[...e[87]||(e[87]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),!n.$store.state.mqtt["openWB/optional/et/provider"]||!n.$store.state.mqtt["openWB/optional/et/provider"].type?(o(),c(V,{key:1,subtype:"warning"},{default:a(()=>[...e[88]||(e[88]=[i(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. Ohne Strompreis-Anbieter wird im Modus Eco nur geladen, wenn Überschuss vorhanden ist. ",-1)])]),_:1,__:[88]})):m("",!0),l(_,{title:"Preisgrenze für strompreisbasiertes Laden",min:"-80",max:"80",step:"0.01",precision:2,unit:"ct/kWh","model-value":r.chargemode.eco_charging.max_price*1e5,"onUpdate:modelValue":u=>n.updateState(d,parseFloat((u/1e5).toFixed(7)),"chargemode.eco_charging.max_price")},null,8,["model-value","onUpdate:modelValue"])]),_:2},1536),f.installAssistantActive?m("",!0):(o(),p("div",bn,[e[92]||(e[92]=g("hr",null,null,-1)),l(s,{title:"Zeitladen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.time_charging.active,"onUpdate:modelValue":u=>n.updateState(d,u,"time_charging.active")},{help:a(()=>[...e[89]||(e[89]=[g("p",null,' Der Lademodus Zeit kann parallel zu einem der anderen Lademodi aktiviert werden. Die Auswahl des Lademodus, der in der Regelung genutzt wird, erfolgt anhand der Übersicht in der Hilfe bei "Aktiver Lademodus". Wenn kein Zeitplan aktiv ist oder das Limit des Zeitplans erreicht wurde, wird der Lademodus verwendet, der bei "Aktiver Lademodus" ausgewählt ist. ',-1),g("p",null," Mit einem Zeitplan kann ein klar abgegrenzter Zeitbereich zum Fahrzeugladen definiert werden. Dies wird häufig genutzt, um einem Fahrzeug kurz vor der Abfahrt Strom anzubieten, damit dessen Vorklimatisierung nicht aus dem Fahrzeugakku, sondern aus der openWB bezogen wird (Enteisung, Vorwärmung, Abkühlung). Nicht von der Vorklimatisierung benötigter Strom erhöht dabei den Fahrzeug-SoC. Um das Stromnetz am Morgen nicht unnötig zu strapazieren, sollte eine moderate Stromvorgabe und ein beschränkter Zeitbereich vorgegeben werden (z.B. max. 10A; 30min - in Übereinstimmung mit den Fahrzeug-App-Vorklimatisierungsvorgaben). ",-1)])]),_:2},1032,["model-value","onUpdate:modelValue"]),l(L,{ref_for:!0,ref:`card-${d}-scheduled_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[90]||(e[90]=[i(" Zeitladen-Pläne ",-1)])]),actions:a(()=>[l(z,{class:"bg-success clickable",title:"Neuen Zeitladen-Plan hinzufügen",onClick:B(u=>t.addChargeTemplateTimeChargingPlan(r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:2},1032,["onClick"])]),default:a(()=>[(r.time_charging.plans??[]).length==0?(o(),c(V,{key:0,subtype:"info"},{default:a(()=>[...e[91]||(e[91]=[i(" Es wurden noch keine Pläne für das Zeitladen angelegt. ",-1)])]),_:1,__:[91]})):m("",!0),(o(!0),p(W,null,D(r.time_charging.plans??[],(u,A)=>(o(),c(te,{key:A,"model-value":u,"template-id":r.id,"dc-charging-enabled":t.dcChargingEnabled,"onUpdate:modelValue":T=>n.updateState(d,T,`time_charging.plans.${A}`),onSendCommand:e[4]||(e[4]=T=>n.$emit("sendCommand",T))},null,8,["model-value","template-id","dc-charging-enabled","onUpdate:modelValue"]))),128))]),_:2},1536)]))]),_:2},1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),l(le,{"form-name":"vehicleConfigForm",onSave:e[5]||(e[5]=r=>n.$emit("save")),onReset:e[6]||(e[6]=r=>n.$emit("reset")),onDefaults:e[7]||(e[7]=r=>n.$emit("defaults"))})])])],64)}const vn=q(Ge,[["render",fn],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/VehicleConfig.vue"]]),zn=Object.freeze(Object.defineProperty({__proto__:null,default:vn},Symbol.toStringTag,{value:"Module"}));export{fe as V,vn as a,zn as b}; diff --git a/web/settings/assets/backup_cloud-0a9a4a8d.js b/web/settings/assets/backup_cloud-0a9a4a8d.js deleted file mode 100644 index ca5ec488cb..0000000000 --- a/web/settings/assets/backup_cloud-0a9a4a8d.js +++ /dev/null @@ -1 +0,0 @@ -import{B as c}from"./DataManagement-52054445.js";import{_ as m,u as a,l as b,m as f,G as t,E as r,B as n,A as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"BackupCloudOneDrive",mixins:[c]},v={class:"backup-cloud-one-drive"};function k(o,e,h,w,B,_){const d=a("openwb-base-alert"),u=a("openwb-base-text-input"),p=a("openwb-base-heading"),l=a("openwb-base-button-input");return b(),f("div",v,[t(d,{subtype:"info"},{default:r(()=>e[3]||(e[3]=[n(" Zum Abruf der Zugangsberechtigung bitte die Konfiguration speichern, dann die Schritte 1-4 durchführen und danach die Konfiguration erneut speichern. ",-1),i("br",null,null,-1),n(" Auth Code und URL werden nur einmal benötigt werden nach erfolgreicher Autorisierung wieder gelöscht. ",-1)])),_:1,__:[3]}),t(u,{title:"Backupverzeichnis in OneDrive",subtype:"text",required:"",pattern:"^/(.*/)*","model-value":o.backupCloud.configuration.backuppath,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.backuppath"))},{help:r(()=>e[4]||(e[4]=[n(" In diesem Verzeichnis werden die Backupdateien erstellt. Bitte den Pfad mit / beenden. ",-1),i("br",null,null,-1),n(" Beispiel: /openWB/Backup/ ",-1)])),_:1},8,["model-value"]),t(u,{title:"Anmeldedaten auf openWB gespeichert",readonly:"","model-value":o.backupCloud.configuration.persistent_tokencache?"Ja":"Nein"},null,8,["model-value"]),t(p,null,{default:r(()=>e[5]||(e[5]=[n(" Zugang zu OneDrive für diese openWB autorisieren ",-1)])),_:1,__:[5]}),t(l,{title:"1. Anmeldeanforderung erstellen","button-text":"Autorisierungs-Code anfordern",subtype:"success",onButtonClicked:e[1]||(e[1]=s=>o.sendSystemCommand("requestMSALAuthCode",{}))},{help:r(()=>e[6]||(e[6]=[n(" Es werden Zugangstokens für OneDrive angefordert. Diese werden nur lokal auf dieser openWB gespeichert. Genutzt wird Device Flow mit public application.",-1),i("br",null,null,-1),n(" Weitere Infos:",-1),i("br",null,null,-1),i("a",{href:"https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code",target:"_blank",rel:"noopener noreferrer"},"https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code",-1),i("a",{href:"https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-client-applications",target:"_blank",rel:"noopener noreferrer"},"https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-client-applications",-1)])),_:1}),t(u,{title:"2. Diesen Code kopieren",subtype:"text",readonly:"","model-value":o.backupCloud.configuration.authcode},null,8,["model-value"]),t(u,{title:"3. Anmelde-URL aufrufen",subtype:"url",readonly:"","model-value":o.backupCloud.configuration.authurl},{help:r(()=>e[7]||(e[7]=[n(" Diese URL im Browser öffnen und den Code eingeben. Dies erzeugt die notwendigen Zugangsberechtigung für diese openWB. ",-1)])),_:1},8,["model-value"]),t(l,{title:"4. Token abrufen und speichern","button-text":"Autorisierungs-Token abrufen",subtype:"success",onButtonClicked:e[2]||(e[2]=s=>o.sendSystemCommand("retrieveMSALTokens",{}))},{help:r(()=>e[8]||(e[8]=[n(" Zugangstoken wird abgerufen und gespeichert, damit das Backup durchgeführt werden kann. Zugangstoken werden nur lokal auf dieser openWB gespeichert. ",-1)])),_:1})])}const L=m(g,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/onedrive/backup_cloud.vue"]]);export{L as default}; diff --git a/web/settings/assets/backup_cloud-23b13a1c.js b/web/settings/assets/backup_cloud-23b13a1c.js new file mode 100644 index 0000000000..b6980447d4 --- /dev/null +++ b/web/settings/assets/backup_cloud-23b13a1c.js @@ -0,0 +1 @@ +import{B as r}from"./DataManagement-e6d61b39.js";import{_ as i,u as s,l as p,m as d,G as t,E as m,B as a,A as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const b={name:"BackupCloudSamba",mixins:[r]},f={class:"backup-cloud-samba"};function g(o,e,v,C,c,k){const u=s("openwb-base-text-input");return p(),d("div",f,[t(u,{title:"Server",subtype:"host",required:"","model-value":o.backupCloud.configuration.smb_server,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.smb_server"))},null,8,["model-value"]),t(u,{title:"Freigabe",required:"","model-value":o.backupCloud.configuration.smb_share,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.smb_share"))},null,8,["model-value"]),t(u,{title:"Unterordner (optional)","model-value":o.backupCloud.configuration.smb_path,pattern:'(^\\/$)|(^([^\\\\:"\\|*?<>]+\\/)+$)',required:"","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.smb_path"))},{help:m(()=>[...e[5]||(e[5]=[a(" Jeder Unterordner muss mit / enden.",-1),l("br",null,null,-1),a(' Die Zeichen \\:"|*?<> sind verboten!',-1),l("br",null,null,-1),a(" Beispiel 1: openwb/ ",-1),l("br",null,null,-1),a(" Beispiel 2: openwb/lp2/ ",-1)])]),_:1},8,["model-value"]),t(u,{title:"Benutzer",subtype:"user","model-value":o.backupCloud.configuration.smb_user,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.smb_user"))},null,8,["model-value"]),t(u,{title:"Kennwort",subtype:"password","model-value":o.backupCloud.configuration.smb_password,"onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.smb_password"))},null,8,["model-value"])])}const E=i(b,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/samba/backup_cloud.vue"]]);export{E as default}; diff --git a/web/settings/assets/backup_cloud-5420b416.js b/web/settings/assets/backup_cloud-5420b416.js deleted file mode 100644 index 5e4dd7f193..0000000000 --- a/web/settings/assets/backup_cloud-5420b416.js +++ /dev/null @@ -1 +0,0 @@ -import{B as a}from"./DataManagement-52054445.js";import{_ as s,u as r,l,m as i,G as n,E as d,B as p}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"BackupCloudNextCloud",mixins:[a]},c={class:"backup-cloud-next-cloud"};function f(o,e,b,k,C,g){const u=r("openwb-base-text-input");return l(),i("div",c,[n(u,{title:"Cloud-URL",subtype:"url",required:"","model-value":o.backupCloud.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},{help:d(()=>e[3]||(e[3]=[p(" Die Cloud-URL wird in der Form 'https://nextcloud-url' und Benutzername im Eingabefeld oder mit Zugangstoken erwartet. Die URL kann je nach NextCloud Installation so 'https://nextcloud-url/s/user_token' oder so 'https://nextcloud-url/index.php/s/user_token' aussehen. ",-1)])),_:1},8,["model-value"]),n(u,{title:"Benutzername",subtype:"user","model-value":o.backupCloud.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(u,{title:"Passwort",subtype:"password","model-value":o.backupCloud.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const y=s(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/nextcloud/backup_cloud.vue"]]);export{y as default}; diff --git a/web/settings/assets/backup_cloud-66a4543e.js b/web/settings/assets/backup_cloud-66a4543e.js deleted file mode 100644 index 8238c20794..0000000000 --- a/web/settings/assets/backup_cloud-66a4543e.js +++ /dev/null @@ -1 +0,0 @@ -import{B as r}from"./DataManagement-52054445.js";import{_ as p,u,l as i,m as l,G as d,E as c,B as o,A as n}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"BackupCloudNfs",mixins:[r]},f={class:"backup-cloud-nfs"};function _(t,e,b,k,v,B){const a=u("openwb-base-text-input");return i(),l("div",f,[d(a,{title:"Pfad zum NFS Share",pattern:"^([^/: ]+):(\\/[^/: ]+)+$",required:"","model-value":t.backupCloud.configuration.nfs_share,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.nfs_share"))},{help:c(()=>e[1]||(e[1]=[o(" 1. IP basierter Pfad: 1.2.3.4:/pfad/zum/nfs-share",-1),n("br",null,null,-1),o(" 2. Host (FQDN) basierter Pfad: backupserver.domain.net:/pfad/zum/nfs-share",-1),n("br",null,null,-1),o(" Bitte entgegen der Syntax das Protokoll nicht davor schreiben. Falsch wäre, “nfs://” davor zu setzen. ",-1)])),_:1},8,["model-value"])])}const V=p(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/nfs/backup_cloud.vue"]]);export{V as default}; diff --git a/web/settings/assets/backup_cloud-72a22a71.js b/web/settings/assets/backup_cloud-72a22a71.js new file mode 100644 index 0000000000..3af6f11477 --- /dev/null +++ b/web/settings/assets/backup_cloud-72a22a71.js @@ -0,0 +1 @@ +import{B as r}from"./DataManagement-e6d61b39.js";import{_ as p,u,l as i,m as l,G as d,E as c,B as o,A as n}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const m={name:"BackupCloudNfs",mixins:[r]},f={class:"backup-cloud-nfs"};function _(t,e,b,k,v,B){const a=u("openwb-base-text-input");return i(),l("div",f,[d(a,{title:"Pfad zum NFS Share",pattern:"^([^/: ]+):(\\/[^/: ]+)+$",required:"","model-value":t.backupCloud.configuration.nfs_share,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.nfs_share"))},{help:c(()=>[...e[1]||(e[1]=[o(" 1. IP basierter Pfad: 1.2.3.4:/pfad/zum/nfs-share",-1),n("br",null,null,-1),o(" 2. Host (FQDN) basierter Pfad: backupserver.domain.net:/pfad/zum/nfs-share",-1),n("br",null,null,-1),o(" Bitte entgegen der Syntax das Protokoll nicht davor schreiben. Falsch wäre, “nfs://” davor zu setzen. ",-1)])]),_:1},8,["model-value"])])}const V=p(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/nfs/backup_cloud.vue"]]);export{V as default}; diff --git a/web/settings/assets/backup_cloud-bfc3a02f.js b/web/settings/assets/backup_cloud-bfc3a02f.js new file mode 100644 index 0000000000..14d2bad4ed --- /dev/null +++ b/web/settings/assets/backup_cloud-bfc3a02f.js @@ -0,0 +1 @@ +import{B as a}from"./DataManagement-e6d61b39.js";import{_ as s,u as r,l,m as i,G as n,E as d,B as p}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const m={name:"BackupCloudNextCloud",mixins:[a]},c={class:"backup-cloud-next-cloud"};function f(o,e,b,k,C,g){const u=r("openwb-base-text-input");return l(),i("div",c,[n(u,{title:"Cloud-URL",subtype:"url",required:"","model-value":o.backupCloud.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},{help:d(()=>[...e[3]||(e[3]=[p(" Die Cloud-URL wird in der Form 'https://nextcloud-url' und Benutzername im Eingabefeld oder mit Zugangstoken erwartet. Die URL kann je nach NextCloud Installation so 'https://nextcloud-url/s/user_token' oder so 'https://nextcloud-url/index.php/s/user_token' aussehen. ",-1)])]),_:1},8,["model-value"]),n(u,{title:"Benutzername",subtype:"user","model-value":o.backupCloud.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(u,{title:"Passwort",subtype:"password","model-value":o.backupCloud.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const y=s(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/nextcloud/backup_cloud.vue"]]);export{y as default}; diff --git a/web/settings/assets/backup_cloud-e3708975.js b/web/settings/assets/backup_cloud-e3708975.js deleted file mode 100644 index ae9b434941..0000000000 --- a/web/settings/assets/backup_cloud-e3708975.js +++ /dev/null @@ -1 +0,0 @@ -import{B as r}from"./DataManagement-52054445.js";import{_ as i,u as s,l as p,m as d,G as t,E as m,B as a,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"BackupCloudSamba",mixins:[r]},f={class:"backup-cloud-samba"};function g(o,e,v,C,c,k){const u=s("openwb-base-text-input");return p(),d("div",f,[t(u,{title:"Server",subtype:"host",required:"","model-value":o.backupCloud.configuration.smb_server,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.smb_server"))},null,8,["model-value"]),t(u,{title:"Freigabe",required:"","model-value":o.backupCloud.configuration.smb_share,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.smb_share"))},null,8,["model-value"]),t(u,{title:"Unterordner (optional)","model-value":o.backupCloud.configuration.smb_path,pattern:'(^\\/$)|(^([^\\\\:"\\|*?<>]+\\/)+$)',required:"","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.smb_path"))},{help:m(()=>e[5]||(e[5]=[a(" Jeder Unterordner muss mit / enden.",-1),l("br",null,null,-1),a(' Die Zeichen \\:"|*?<> sind verboten!',-1),l("br",null,null,-1),a(" Beispiel 1: openwb/ ",-1),l("br",null,null,-1),a(" Beispiel 2: openwb/lp2/ ",-1)])),_:1},8,["model-value"]),t(u,{title:"Benutzer",subtype:"user","model-value":o.backupCloud.configuration.smb_user,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.smb_user"))},null,8,["model-value"]),t(u,{title:"Kennwort",subtype:"password","model-value":o.backupCloud.configuration.smb_password,"onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.smb_password"))},null,8,["model-value"])])}const E=i(b,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/samba/backup_cloud.vue"]]);export{E as default}; diff --git a/web/settings/assets/backup_cloud-fc511ccc.js b/web/settings/assets/backup_cloud-fc511ccc.js new file mode 100644 index 0000000000..a8c110e6e9 --- /dev/null +++ b/web/settings/assets/backup_cloud-fc511ccc.js @@ -0,0 +1 @@ +import{B as c}from"./DataManagement-e6d61b39.js";import{_ as m,u as a,l as b,m as f,G as t,E as r,B as n,A as i}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const g={name:"BackupCloudOneDrive",mixins:[c]},v={class:"backup-cloud-one-drive"};function k(o,e,h,w,B,C){const d=a("openwb-base-alert"),u=a("openwb-base-text-input"),p=a("openwb-base-heading"),l=a("openwb-base-button-input");return b(),f("div",v,[t(d,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[n(" Zum Abruf der Zugangsberechtigung bitte die Konfiguration speichern, dann die Schritte 1-4 durchführen und danach die Konfiguration erneut speichern. ",-1),i("br",null,null,-1),n(" Auth Code und URL werden nur einmal benötigt werden nach erfolgreicher Autorisierung wieder gelöscht. ",-1)])]),_:1}),t(u,{title:"Backupverzeichnis in OneDrive",subtype:"text",required:"",pattern:"^/(.*/)*","model-value":o.backupCloud.configuration.backuppath,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.backuppath"))},{help:r(()=>[...e[4]||(e[4]=[n(" In diesem Verzeichnis werden die Backupdateien erstellt. Bitte den Pfad mit / beenden. ",-1),i("br",null,null,-1),n(" Beispiel: /openWB/Backup/ ",-1)])]),_:1},8,["model-value"]),t(u,{title:"Anmeldedaten auf openWB gespeichert",readonly:"","model-value":o.backupCloud.configuration.persistent_tokencache?"Ja":"Nein"},null,8,["model-value"]),t(p,null,{default:r(()=>[...e[5]||(e[5]=[n(" Zugang zu OneDrive für diese openWB autorisieren ",-1)])]),_:1}),t(l,{title:"1. Anmeldeanforderung erstellen","button-text":"Autorisierungs-Code anfordern",subtype:"success",onButtonClicked:e[1]||(e[1]=s=>o.sendSystemCommand("requestMSALAuthCode",{}))},{help:r(()=>[...e[6]||(e[6]=[n(" Es werden Zugangstokens für OneDrive angefordert. Diese werden nur lokal auf dieser openWB gespeichert. Genutzt wird Device Flow mit public application.",-1),i("br",null,null,-1),n(" Weitere Infos:",-1),i("br",null,null,-1),i("a",{href:"https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code",target:"_blank",rel:"noopener noreferrer"},"https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code",-1),i("a",{href:"https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-client-applications",target:"_blank",rel:"noopener noreferrer"},"https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-client-applications",-1)])]),_:1}),t(u,{title:"2. Diesen Code kopieren",subtype:"text",readonly:"","model-value":o.backupCloud.configuration.authcode},null,8,["model-value"]),t(u,{title:"3. Anmelde-URL aufrufen",subtype:"url",readonly:"","model-value":o.backupCloud.configuration.authurl},{help:r(()=>[...e[7]||(e[7]=[n(" Diese URL im Browser öffnen und den Code eingeben. Dies erzeugt die notwendigen Zugangsberechtigung für diese openWB. ",-1)])]),_:1},8,["model-value"]),t(l,{title:"4. Token abrufen und speichern","button-text":"Autorisierungs-Token abrufen",subtype:"success",onButtonClicked:e[2]||(e[2]=s=>o.sendSystemCommand("retrieveMSALTokens",{}))},{help:r(()=>[...e[8]||(e[8]=[n(" Zugangstoken wird abgerufen und gespeichert, damit das Backup durchgeführt werden kann. Zugangstoken werden nur lokal auf dieser openWB gespeichert. ",-1)])]),_:1})])}const L=m(g,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/onedrive/backup_cloud.vue"]]);export{L as default}; diff --git a/web/settings/assets/bat-01a2f194.js b/web/settings/assets/bat-01a2f194.js deleted file mode 100644 index 9dc7e29f05..0000000000 --- a/web/settings/assets/bat-01a2f194.js +++ /dev/null @@ -1 +0,0 @@ -import{C as a}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as t,l as m,m as u,G as n,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceStuderBat",mixins:[a]},c={class:"device-studer-bat"};function b(o,e,f,v,g,w){const i=t("openwb-base-heading"),s=t("openwb-base-number-input");return m(),u("div",c,[n(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Studer Batteriespeicher ",-1)])),_:1,__:[1]}),n(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const M=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/bat.vue"]]);export{M as default}; diff --git a/web/settings/assets/bat-02c96333.js b/web/settings/assets/bat-02c96333.js deleted file mode 100644 index 1fa06c6915..0000000000 --- a/web/settings/assets/bat-02c96333.js +++ /dev/null @@ -1 +0,0 @@ -import{C as s}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as t,l as p,m as u,G as n,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceHuaweiSmartLoggerBat",mixins:[s]},c={class:"device-huawei-smart-logger-bat"};function b(o,e,g,f,w,v){const i=t("openwb-base-heading"),a=t("openwb-base-number-input");return p(),u("div",c,[n(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Batteriespeicher ",-1)])),_:1,__:[1]}),n(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const H=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/bat.vue"]]);export{H as default}; diff --git a/web/settings/assets/bat-0303c661.js b/web/settings/assets/bat-0303c661.js new file mode 100644 index 0000000000..6c07728ab8 --- /dev/null +++ b/web/settings/assets/bat-0303c661.js @@ -0,0 +1 @@ +import{C as a}from"./HardwareInstallation-8066ca79.js";import{_ as p,u as n,l as m,m as u,G as t,E as d,B as c}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceVictronBat",mixins:[a]},_={class:"device-victron-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[c(" Einstellungen für Victron Batteriespeicher ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const M=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/bat.vue"]]);export{M as default}; diff --git a/web/settings/assets/bat-18693c33.js b/web/settings/assets/bat-18693c33.js deleted file mode 100644 index dd96c9b0e9..0000000000 --- a/web/settings/assets/bat-18693c33.js +++ /dev/null @@ -1 +0,0 @@ -import{C as a}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as n,l as m,m as u,G as t,E as d,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceVictronBat",mixins:[a]},_={class:"device-victron-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>e[1]||(e[1]=[c(" Einstellungen für Victron Batteriespeicher ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const M=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/bat.vue"]]);export{M as default}; diff --git a/web/settings/assets/bat-1ad29484.js b/web/settings/assets/bat-1ad29484.js deleted file mode 100644 index 77cfc3a8eb..0000000000 --- a/web/settings/assets/bat-1ad29484.js +++ /dev/null @@ -1 +0,0 @@ -import{C as b}from"./HardwareInstallation-be759b0c.js";import{_ as g,u,l as f,m as B,G as l,E as i,B as t,A as n,F as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const k={name:"DeviceMqttBat",mixins:[b]},w={class:"device-mqtt-bat"};function v(o,e,W,z,x,E){const p=u("openwb-base-heading"),s=u("openwb-base-copy-to-clipboard"),d=u("openwb-base-alert"),a=u("openwb-base-button-group-input");return f(),B("div",w,[l(p,null,{default:i(()=>e[1]||(e[1]=[t(" Einstellungen für MQTT Batteriespeicher ",-1)])),_:1,__:[1]}),l(d,{subtype:"info"},{default:i(()=>[e[27]||(e[27]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),n("ul",null,[n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/power ",1)]),_:1}),e[2]||(e[2]=n("br",null,null,-1)),e[3]||(e[3]=t(" Speicherleistung in Watt, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, positiv Ladung, negativ Entladung",-1)),e[4]||(e[4]=n("br",null,null,-1)),e[5]||(e[5]=t(" Beispiel: ",-1)),e[6]||(e[6]=n("span",{class:"text-info"},"-123",-1))]),n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/soc ",1)]),_:1}),e[7]||(e[7]=n("br",null,null,-1)),e[8]||(e[8]=t(" Ladestand des Speichers, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, gültige Werte 0 bis 100",-1)),e[9]||(e[9]=n("br",null,null,-1)),e[10]||(e[10]=t(" Beispiel: ",-1)),e[11]||(e[11]=n("span",{class:"text-info"},"95",-1))])]),e[28]||(e[28]=t(" Falls keine Werte für die Zählerstände übermittelt werden, berechnet openWB die Zählerstände anhand der Leistung. ",-1)),n("ul",null,[n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/imported ",1)]),_:1}),e[12]||(e[12]=n("br",null,null,-1)),e[13]||(e[13]=t(" Geladene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[14]||(e[14]=n("br",null,null,-1)),e[15]||(e[15]=t(" Beispiel: ",-1)),e[16]||(e[16]=n("span",{class:"text-info"},"123.45",-1))]),n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/exported ",1)]),_:1}),e[17]||(e[17]=n("br",null,null,-1)),e[18]||(e[18]=t(" Entladene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[19]||(e[19]=n("br",null,null,-1)),e[20]||(e[20]=t(" Beispiel: ",-1)),e[21]||(e[21]=n("span",{class:"text-info"},"123.45",-1))])]),e[29]||(e[29]=t(" Ströme je Phase sind optional, jedoch für phasenbasiertes Lastmanagement in Verbindung mit einem virtuellen Zähler unbedingt erforderlich. Ansonsten erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung an diesem Zähler: ",-1)),n("ul",null,[n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/currents ",1)]),_:1}),e[22]||(e[22]=n("br",null,null,-1)),e[23]||(e[23]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),e[24]||(e[24]=n("br",null,null,-1)),e[25]||(e[25]=t(" Beispiel: ",-1)),e[26]||(e[26]=n("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])])]),_:1,__:[27,28,29]}),l(p,null,{default:i(()=>e[30]||(e[30]=[t(" Optionale Einstellungen ",-1)])),_:1,__:[30]}),l(d,{subtype:"info"},{default:i(()=>[e[36]||(e[36]=t(' Wenn der Speicher die aktive Steuerung durch openWB unterstützt, kann die Option "Speicherleistung steuerbar" auf "Ja" gesetzt werden. Der Modus, um die Speicher-Entladung ins Fahrzeug zu steuern, kann in den übergreifenden Ladeeinstellungen gesetzt werden. Über folgendes Topic wird dem Speicher die Entladeleistung mitgeteilt. ',-1)),n("ul",null,[n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/set/power_limit ",1)]),_:1}),e[31]||(e[31]=n("br",null,null,-1)),e[32]||(e[32]=t(" Entladeleistung in Watt (Float), die im Speicher gesetzt werden muss.",-1)),e[33]||(e[33]=n("br",null,null,-1)),e[34]||(e[34]=t(" Beispiel: ",-1)),e[35]||(e[35]=n("span",{class:"text-info"},"123.0",-1))])])]),_:1,__:[36]}),l(a,{title:"Speicherleistung steuerbar",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":o.component.configuration.power_limit_controllable,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.power_limit_controllable"))},null,8,["model-value"])])}const C=g(k,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/bat.vue"]]);export{C as default}; diff --git a/web/settings/assets/bat-1e5462e4.js b/web/settings/assets/bat-1e5462e4.js deleted file mode 100644 index 53bb47e09d..0000000000 --- a/web/settings/assets/bat-1e5462e4.js +++ /dev/null @@ -1 +0,0 @@ -import{C as a}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceFroniusBat",mixins:[a]},c={class:"device-fronius-bat"};function f(o,e,b,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",c,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Fronius Batteriespeicher ",-1)])),_:1,__:[1]}),t(r,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":o.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.meter_id"))},null,8,["model-value"])])}const F=p(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/bat.vue"]]);export{F as default}; diff --git a/web/settings/assets/bat-1ede89b7.js b/web/settings/assets/bat-1ede89b7.js new file mode 100644 index 0000000000..0c12b64002 --- /dev/null +++ b/web/settings/assets/bat-1ede89b7.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-8066ca79.js";import{_ as r,u as o,l,m,G as n,E as u,B as c}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbBatkitBat",mixins:[p]},_={class:"device-openwb-batkit-bat"};function b(t,e,f,v,w,B){const i=o("openwb-base-heading"),s=o("openwb-base-select-input");return l(),m("div",_,[n(i,null,{default:u(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Batteriespeicher ",-1)])]),_:1}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=a=>t.updateConfiguration(a,"configuration.version"))},null,8,["model-value"])])}const $=r(d,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_bat_kit/bat.vue"]]);export{$ as default}; diff --git a/web/settings/assets/bat-24ebfa6e.js b/web/settings/assets/bat-24ebfa6e.js deleted file mode 100644 index 5da2afb0a0..0000000000 --- a/web/settings/assets/bat-24ebfa6e.js +++ /dev/null @@ -1 +0,0 @@ -import{C as l}from"./HardwareInstallation-be759b0c.js";import{_ as r,u as t,l as u,m,G as i,E as d,B as b}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOpenwbFlexBat",mixins:[l]},_={class:"device-openwb-flex-bat"};function f(o,e,v,w,g,x){const a=t("openwb-base-heading"),p=t("openwb-base-select-input"),s=t("openwb-base-number-input");return u(),m("div",_,[i(a,null,{default:d(()=>e[2]||(e[2]=[b(" Einstellungen für openWB-Flex Batteriespeicher ",-1)])),_:1,__:[2]}),i(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"]),i(s,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.id"))},null,8,["model-value"])])}const k=r(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/bat.vue"]]);export{k as default}; diff --git a/web/settings/assets/bat-2e0391d4.js b/web/settings/assets/bat-2e0391d4.js deleted file mode 100644 index 9e9ba43de9..0000000000 --- a/web/settings/assets/bat-2e0391d4.js +++ /dev/null @@ -1 +0,0 @@ -import{C as r}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as o,l as m,m as u,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSunnyIslandBat",mixins:[r]},c={class:"device-sunnyisland-bat"};function b(n,e,f,v,g,w){const s=o("openwb-base-heading"),i=o("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Sunny Island Batteriespeicher ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const k=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_island/bat.vue"]]);export{k as default}; diff --git a/web/settings/assets/bat-2eb6e306.js b/web/settings/assets/bat-2eb6e306.js new file mode 100644 index 0000000000..2a0df22fb2 --- /dev/null +++ b/web/settings/assets/bat-2eb6e306.js @@ -0,0 +1 @@ +import{C as u}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as d,l as p,m as g,G as l,E as i,B as n,A as a}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const h={name:"DeviceHttpBat",mixins:[u]},b={class:"device-http-bat"};function f(t,e,w,v,k,S){const s=d("openwb-base-heading"),o=d("openwb-base-text-input");return p(),g("div",b,[l(s,null,{default:i(()=>[...e[7]||(e[7]=[n(" Einstellungen für Http Batteriespeicher ",-1)])]),_:1}),l(o,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.power_path"))},{help:i(()=>[...e[8]||(e[8]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Ladestand",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.soc_path,"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateConfiguration(r,"configuration.soc_path"))},{help:i(()=>[...e[9]||(e[9]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen Ladestand (SoC) in Prozent darstellt. ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 1",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l1_path,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateConfiguration(r,"configuration.current_l1_path"))},{help:i(()=>[...e[10]||(e[10]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 1. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 2",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l2_path,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateConfiguration(r,"configuration.current_l2_path"))},{help:i(()=>[...e[11]||(e[11]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 2. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 3",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l3_path,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateConfiguration(r,"configuration.current_l3_path"))},{help:i(()=>[...e[12]||(e[12]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 3. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Zählerstand laden",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.imported_path,"onUpdate:modelValue":e[5]||(e[5]=r=>t.updateConfiguration(r,"configuration.imported_path"))},{help:i(()=>[...e[13]||(e[13]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt. ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Zählerstand entladen",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[6]||(e[6]=r=>t.updateConfiguration(r,"configuration.exported_path"))},{help:i(()=>[...e[14]||(e[14]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"])])}const _=m(h,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/bat.vue"]]);export{_ as default}; diff --git a/web/settings/assets/bat-313da7a3.js b/web/settings/assets/bat-313da7a3.js deleted file mode 100644 index d07be7ec85..0000000000 --- a/web/settings/assets/bat-313da7a3.js +++ /dev/null @@ -1 +0,0 @@ -import{C as r}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as n,l as m,m as d,G as t,E as u,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceDeyeBat",mixins:[r]},c={class:"device-deye-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),d("div",c,[t(i,null,{default:u(()=>e[1]||(e[1]=[l(" Einstellungen für Deye Batteriespeicher ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const k=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/bat.vue"]]);export{k as default}; diff --git a/web/settings/assets/bat-3690aea0.js b/web/settings/assets/bat-3690aea0.js new file mode 100644 index 0000000000..12e307d182 --- /dev/null +++ b/web/settings/assets/bat-3690aea0.js @@ -0,0 +1 @@ +import{C as r}from"./HardwareInstallation-8066ca79.js";import{_ as p,u as o,l as m,m as u,G as t,E as d,B as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSunnyIslandBat",mixins:[r]},c={class:"device-sunnyisland-bat"};function b(n,e,f,v,g,w){const s=o("openwb-base-heading"),i=o("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Sunny Island Batteriespeicher ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const k=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_island/bat.vue"]]);export{k as default}; diff --git a/web/settings/assets/bat-381c4030.js b/web/settings/assets/bat-381c4030.js deleted file mode 100644 index f6e0eb95c8..0000000000 --- a/web/settings/assets/bat-381c4030.js +++ /dev/null @@ -1 +0,0 @@ -import{C as r}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as n,l as m,m as l,G as t,E as u,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolisBat",mixins:[r]},c={class:"device-solis-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",c,[t(i,null,{default:u(()=>e[1]||(e[1]=[d(" Einstellungen für Solis Batteriespeicher ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const M=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/bat.vue"]]);export{M as default}; diff --git a/web/settings/assets/bat-3af7a3ce.js b/web/settings/assets/bat-3af7a3ce.js new file mode 100644 index 0000000000..a4dff0d429 --- /dev/null +++ b/web/settings/assets/bat-3af7a3ce.js @@ -0,0 +1 @@ +import{C as a}from"./HardwareInstallation-8066ca79.js";import{_ as d,u as p,l as t,m as u,x as i,E as o,B as r}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSonnenbatterieBat",mixins:[a]},m={class:"device-sonnenbatterie-bat"};function f(s,e,v,b,l,g){const n=p("openwb-base-alert");return t(),u("div",m,[s.device.configuration.variant===3?(t(),i(n,{key:0,subtype:"info"},{default:o(()=>[...e[0]||(e[0]=[r(" Die Batterie lässt sich aktiv durch openWB steuern, da die JSON-API v2 verwendet wird. Dazu muss zwingend ein gültiges API-Token eingetragen sein. ",-1)])]),_:1})):(t(),i(n,{key:1,subtype:"info"},{default:o(()=>[...e[1]||(e[1]=[r(" Die Batterie kann nicht aktiv durch openWB gesteuert werden, da die konfigurierte Datenverbindung dies nicht unterstützt. Es wird für die aktive Steuerung zwingend die 'JSON-API v2' benötigt. ",-1)])]),_:1}))])}const z=d(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/bat.vue"]]);export{z as default}; diff --git a/web/settings/assets/bat-410d986a.js b/web/settings/assets/bat-410d986a.js new file mode 100644 index 0000000000..dcb4f6431a --- /dev/null +++ b/web/settings/assets/bat-410d986a.js @@ -0,0 +1 @@ +import{C as r}from"./HardwareInstallation-8066ca79.js";import{_ as p,u as o,l as m,m as u,G as t,E as l,B as c}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceFemsBat",mixins:[r]},f={class:"device-fems-bat"};function _(n,e,b,v,g,C){const i=o("openwb-base-heading"),s=o("openwb-base-number-input");return m(),u("div",f,[t(i,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für openEMS, Fenecon FEMS, CENTURIO 10, Kaco Hy-Control Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Anzahl der verbauten Speicher",required:"",min:1,max:2,"model-value":n.component.configuration.num,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.num"))},null,8,["model-value"])])}const S=p(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/fems/bat.vue"]]);export{S as default}; diff --git a/web/settings/assets/bat-460cfbf5.js b/web/settings/assets/bat-460cfbf5.js new file mode 100644 index 0000000000..e7b895d849 --- /dev/null +++ b/web/settings/assets/bat-460cfbf5.js @@ -0,0 +1 @@ +import{C as m}from"./HardwareInstallation-8066ca79.js";import{_ as d,u as n,l,m as u,G as t,E as i,B as a}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceGoodWeBat",mixins:[m]},c={class:"device-goodwe-bat"};function b(o,e,f,g,w,x){const r=n("openwb-base-heading"),s=n("openwb-base-number-input");return l(),u("div",c,[t(r,null,{default:i(()=>[...e[1]||(e[1]=[a(" Einstellungen für GoodWe Batteriespeicher ",-1)])]),_:1}),t(s,{title:"GoodWe-Batterie-Index","model-value":o.component.configuration.battery_index,min:"1",max:"2","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.battery_index"))},{help:i(()=>[...e[2]||(e[2]=[a(" Wenn eine zweite Batterie am Wechselrichter angeschlossen ist, hier den Index 2 eintagen. Im Normalfall immer 1 eintragen. ",-1)])]),_:1},8,["model-value"])])}const N=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/good_we/bat.vue"]]);export{N as default}; diff --git a/web/settings/assets/bat-4a5e2d78.js b/web/settings/assets/bat-4a5e2d78.js new file mode 100644 index 0000000000..fc350db920 --- /dev/null +++ b/web/settings/assets/bat-4a5e2d78.js @@ -0,0 +1 @@ +import{C as a}from"./HardwareInstallation-8066ca79.js";import{_ as p,u as t,l as m,m as u,G as n,E as d,B as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceStuderBat",mixins:[a]},_={class:"device-studer-bat"};function b(o,e,f,v,g,w){const i=t("openwb-base-heading"),s=t("openwb-base-number-input");return m(),u("div",_,[n(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Studer Batteriespeicher ",-1)])]),_:1}),n(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const M=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/bat.vue"]]);export{M as default}; diff --git a/web/settings/assets/bat-5276ac71.js b/web/settings/assets/bat-5276ac71.js deleted file mode 100644 index bf382de37a..0000000000 --- a/web/settings/assets/bat-5276ac71.js +++ /dev/null @@ -1 +0,0 @@ -import{C as r}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as t,l as p,m as l,G as n,E as u,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolarmaxBat",mixins:[r]},_={class:"device-solarmax-bat"};function b(o,e,f,x,v,g){const a=t("openwb-base-alert"),s=t("openwb-base-number-input");return p(),l("div",_,[n(a,{subtype:"info"},{default:u(()=>e[1]||(e[1]=[d(" Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Batteriespeicher sind Teil eines Hybridsystems. Daher muss auch eine Komponente Wechselrichter angelegt werden. ",-1)])),_:1,__:[1]}),n(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const $=m(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/bat.vue"]]);export{$ as default}; diff --git a/web/settings/assets/bat-536ad2ed.js b/web/settings/assets/bat-536ad2ed.js new file mode 100644 index 0000000000..69483328ba --- /dev/null +++ b/web/settings/assets/bat-536ad2ed.js @@ -0,0 +1 @@ +import{C as r}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as t,l as p,m as l,G as n,E as u,B as d}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolarmaxBat",mixins:[r]},b={class:"device-solarmax-bat"};function _(o,e,f,x,v,g){const a=t("openwb-base-alert"),s=t("openwb-base-number-input");return p(),l("div",b,[n(a,{subtype:"info"},{default:u(()=>[...e[1]||(e[1]=[d(" Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Batteriespeicher sind Teil eines Hybridsystems. Daher muss auch eine Komponente Wechselrichter angelegt werden. ",-1)])]),_:1}),n(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const $=m(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/bat.vue"]]);export{$ as default}; diff --git a/web/settings/assets/bat-5ab2250c.js b/web/settings/assets/bat-5ab2250c.js new file mode 100644 index 0000000000..3860dc367f --- /dev/null +++ b/web/settings/assets/bat-5ab2250c.js @@ -0,0 +1 @@ +import{C as m}from"./HardwareInstallation-8066ca79.js";import{_ as l,u as t,l as d,m as c,G as i,E as a,B as s}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceMTecBat",mixins:[m]},_={class:"device-mtec-bat"};function f(o,e,v,g,w,B){const p=t("openwb-base-heading"),r=t("openwb-base-select-input"),u=t("openwb-base-number-input");return d(),c("div",_,[i(p,null,{default:a(()=>[...e[2]||(e[2]=[s(" Einstellungen für M-Tec Batteriespeicher ",-1)])]),_:1}),i(r,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:2,text:"Gen 2"},{value:3,text:"Gen 3"}],"model-value":o.component.configuration.generation,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.generation"))},null,8,["model-value"]),i(u,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},{help:a(()=>[...e[3]||(e[3]=[s(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])]),_:1},8,["model-value"])])}const k=l(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/bat.vue"]]);export{k as default}; diff --git a/web/settings/assets/bat-5c9d3bae.js b/web/settings/assets/bat-5c9d3bae.js deleted file mode 100644 index bacfeea6df..0000000000 --- a/web/settings/assets/bat-5c9d3bae.js +++ /dev/null @@ -1 +0,0 @@ -import{C as r}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as n,l as m,m as u,G as t,E as d,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceSunnyBoyBat",mixins:[r]},b={class:"device-sunnyboy-bat"};function c(o,e,f,v,g,y){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",b,[t(i,null,{default:d(()=>e[1]||(e[1]=[_(" Einstellungen für SMA Sunny Boy/Tripower Batteriespeicher ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const h=p(l,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/bat.vue"]]);export{h as default}; diff --git a/web/settings/assets/bat-60e92443.js b/web/settings/assets/bat-60e92443.js new file mode 100644 index 0000000000..7aafb64027 --- /dev/null +++ b/web/settings/assets/bat-60e92443.js @@ -0,0 +1 @@ +import{C as l}from"./HardwareInstallation-8066ca79.js";import{_ as r,u as t,l as u,m,G as i,E as d,B as b}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOpenwbFlexBat",mixins:[l]},f={class:"device-openwb-flex-bat"};function _(o,e,v,w,g,x){const a=t("openwb-base-heading"),p=t("openwb-base-select-input"),s=t("openwb-base-number-input");return u(),m("div",f,[i(a,null,{default:d(()=>[...e[2]||(e[2]=[b(" Einstellungen für openWB-Flex Batteriespeicher ",-1)])]),_:1}),i(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"]),i(s,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.id"))},null,8,["model-value"])])}const k=r(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/bat.vue"]]);export{k as default}; diff --git a/web/settings/assets/bat-63b2083d.js b/web/settings/assets/bat-63b2083d.js new file mode 100644 index 0000000000..8e2298d2d5 --- /dev/null +++ b/web/settings/assets/bat-63b2083d.js @@ -0,0 +1 @@ +import{C as a}from"./HardwareInstallation-8066ca79.js";import{_ as p,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceFroniusBat",mixins:[a]},_={class:"device-fronius-bat"};function f(o,e,b,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Fronius Batteriespeicher ",-1)])]),_:1}),t(r,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":o.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.meter_id"))},null,8,["model-value"])])}const F=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/bat.vue"]]);export{F as default}; diff --git a/web/settings/assets/bat-6b538fb2.js b/web/settings/assets/bat-6b538fb2.js new file mode 100644 index 0000000000..1c6e029664 --- /dev/null +++ b/web/settings/assets/bat-6b538fb2.js @@ -0,0 +1 @@ +import{C as r}from"./HardwareInstallation-8066ca79.js";import{_ as p,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceFoxEssBat",mixins:[r]},c={class:"device-fox_ess-bat"};function b(o,e,f,x,v,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für FoxEss Batteriespeicher ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const F=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/bat.vue"]]);export{F as default}; diff --git a/web/settings/assets/bat-6f26d004.js b/web/settings/assets/bat-6f26d004.js new file mode 100644 index 0000000000..61fb4efe5c --- /dev/null +++ b/web/settings/assets/bat-6f26d004.js @@ -0,0 +1 @@ +import{C as s}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as t,l as p,m as u,G as n,E as d,B as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceHuaweiSmartLoggerBat",mixins:[s]},c={class:"device-huawei-smart-logger-bat"};function b(o,e,g,f,w,v){const i=t("openwb-base-heading"),a=t("openwb-base-number-input");return p(),u("div",c,[n(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Batteriespeicher ",-1)])]),_:1}),n(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const H=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/bat.vue"]]);export{H as default}; diff --git a/web/settings/assets/bat-74a30937.js b/web/settings/assets/bat-74a30937.js deleted file mode 100644 index 47d7a8ec78..0000000000 --- a/web/settings/assets/bat-74a30937.js +++ /dev/null @@ -1 +0,0 @@ -import{C as m}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as n,l,m as _,G as t,E as i,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceGoodWeBat",mixins:[m]},c={class:"device-goodwe-bat"};function b(o,e,f,g,w,x){const r=n("openwb-base-heading"),s=n("openwb-base-number-input");return l(),_("div",c,[t(r,null,{default:i(()=>e[1]||(e[1]=[a(" Einstellungen für GoodWe Batteriespeicher ",-1)])),_:1,__:[1]}),t(s,{title:"GoodWe-Batterie-Index","model-value":o.component.configuration.battery_index,min:"1",max:"2","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.battery_index"))},{help:i(()=>e[2]||(e[2]=[a(" Wenn eine zweite Batterie am Wechselrichter angeschlossen ist, hier den Index 2 eintagen. Im Normalfall immer 1 eintragen. ",-1)])),_:1},8,["model-value"])])}const N=d(u,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/good_we/bat.vue"]]);export{N as default}; diff --git a/web/settings/assets/bat-84dc10cd.js b/web/settings/assets/bat-84dc10cd.js new file mode 100644 index 0000000000..08cfd49145 --- /dev/null +++ b/web/settings/assets/bat-84dc10cd.js @@ -0,0 +1 @@ +import{C as a}from"./HardwareInstallation-8066ca79.js";import{_ as r,u as o,l,m as u,G as n,E as m,B as c}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbEvukitBat",mixins:[a]},_={class:"device-openwb-evukit-bat"};function v(t,e,b,f,w,g){const i=o("openwb-base-heading"),s=o("openwb-base-select-input");return l(),u("div",_,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Batteriespeicher ",-1)])]),_:1}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.version"))},null,8,["model-value"])])}const $=r(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/bat.vue"]]);export{$ as default}; diff --git a/web/settings/assets/bat-9f789e09.js b/web/settings/assets/bat-9f789e09.js deleted file mode 100644 index 5bffd3eb4c..0000000000 --- a/web/settings/assets/bat-9f789e09.js +++ /dev/null @@ -1 +0,0 @@ -import{C as a}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as p,l as t,m as u,x as i,E as o,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSonnenbatterieBat",mixins:[a]},m={class:"device-sonnenbatterie-bat"};function _(s,e,f,v,b,l){const n=p("openwb-base-alert");return t(),u("div",m,[s.device.configuration.variant===3?(t(),i(n,{key:0,subtype:"info"},{default:o(()=>e[0]||(e[0]=[r(" Die Batterie lässt sich aktiv durch openWB steuern, da die JSON-API v2 verwendet wird. Dazu muss zwingend ein gültiges API-Token eingetragen sein. ",-1)])),_:1,__:[0]})):(t(),i(n,{key:1,subtype:"info"},{default:o(()=>e[1]||(e[1]=[r(" Die Batterie kann nicht aktiv durch openWB gesteuert werden, da die konfigurierte Datenverbindung dies nicht unterstützt. Es wird für die aktive Steuerung zwingend die 'JSON-API v2' benötigt. ",-1)])),_:1,__:[1]}))])}const z=d(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/bat.vue"]]);export{z as default}; diff --git a/web/settings/assets/bat-b27a9158.js b/web/settings/assets/bat-b27a9158.js new file mode 100644 index 0000000000..50c8f062d1 --- /dev/null +++ b/web/settings/assets/bat-b27a9158.js @@ -0,0 +1 @@ +import{C as r}from"./HardwareInstallation-8066ca79.js";import{_ as p,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSunnyBoyBat",mixins:[r]},b={class:"device-sunnyboy-bat"};function c(o,e,f,v,g,y){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",b,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für SMA Sunny Boy/Tripower Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const h=p(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/bat.vue"]]);export{h as default}; diff --git a/web/settings/assets/bat-b6ca0c1a.js b/web/settings/assets/bat-b6ca0c1a.js new file mode 100644 index 0000000000..6344ee7535 --- /dev/null +++ b/web/settings/assets/bat-b6ca0c1a.js @@ -0,0 +1 @@ +import{C as m}from"./HardwareInstallation-8066ca79.js";import{_ as d,u as a,l as p,m as u,G as t,E as r,B as s}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSolaredgeBat",mixins:[m]},b={class:"device-solaredge-bat"};function f(o,e,_,c,v,x){const l=a("openwb-base-heading"),i=a("openwb-base-number-input");return p(),u("div",b,[t(l,null,{default:r(()=>[...e[2]||(e[2]=[s(" Einstellungen für SolarEdge Batteriespeicher ",-1)])]),_:1}),t(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),t(i,{title:"SolarEdge-Batterie-Index","model-value":o.component.configuration.battery_index,min:"1",max:"2","onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.battery_index"))},{help:r(()=>[...e[3]||(e[3]=[s(" Wenn eine zweite Batterie am Wechselrichter angeschlossen ist, hier den Index 2 eintagen. Im Normalfall immer 1 eintragen. ",-1)])]),_:1},8,["model-value"])])}const N=d(g,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/bat.vue"]]);export{N as default}; diff --git a/web/settings/assets/bat-bdf83b40.js b/web/settings/assets/bat-bdf83b40.js new file mode 100644 index 0000000000..493ec62ee4 --- /dev/null +++ b/web/settings/assets/bat-bdf83b40.js @@ -0,0 +1 @@ +import{C as r}from"./HardwareInstallation-8066ca79.js";import{_ as p,u as n,l as m,m as d,G as t,E as u,B as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceDeyeBat",mixins:[r]},_={class:"device-deye-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),d("div",_,[t(i,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für Deye Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const k=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/bat.vue"]]);export{k as default}; diff --git a/web/settings/assets/bat-be5c48ce.js b/web/settings/assets/bat-be5c48ce.js deleted file mode 100644 index 42e3b471ac..0000000000 --- a/web/settings/assets/bat-be5c48ce.js +++ /dev/null @@ -1 +0,0 @@ -import{C as u}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as d,l as p,m as g,G as l,E as i,B as n,A as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const h={name:"DeviceHttpBat",mixins:[u]},b={class:"device-http-bat"};function f(t,e,w,v,k,S){const s=d("openwb-base-heading"),o=d("openwb-base-text-input");return p(),g("div",b,[l(s,null,{default:i(()=>e[7]||(e[7]=[n(" Einstellungen für Http Batteriespeicher ",-1)])),_:1,__:[7]}),l(o,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.power_path"))},{help:i(()=>e[8]||(e[8]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Ladestand",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.soc_path,"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateConfiguration(r,"configuration.soc_path"))},{help:i(()=>e[9]||(e[9]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen Ladestand (SoC) in Prozent darstellt. ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 1",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l1_path,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateConfiguration(r,"configuration.current_l1_path"))},{help:i(()=>e[10]||(e[10]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 1. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 2",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l2_path,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateConfiguration(r,"configuration.current_l2_path"))},{help:i(()=>e[11]||(e[11]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 2. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 3",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l3_path,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateConfiguration(r,"configuration.current_l3_path"))},{help:i(()=>e[12]||(e[12]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 3. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Zählerstand laden",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.imported_path,"onUpdate:modelValue":e[5]||(e[5]=r=>t.updateConfiguration(r,"configuration.imported_path"))},{help:i(()=>e[13]||(e[13]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt. ",-1)])),_:1},8,["model-value"]),l(o,{title:"Pfad für Zählerstand entladen",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[6]||(e[6]=r=>t.updateConfiguration(r,"configuration.exported_path"))},{help:i(()=>e[14]||(e[14]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"])])}const C=m(h,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/bat.vue"]]);export{C as default}; diff --git a/web/settings/assets/bat-bef81950.js b/web/settings/assets/bat-bef81950.js new file mode 100644 index 0000000000..09f71be3b7 --- /dev/null +++ b/web/settings/assets/bat-bef81950.js @@ -0,0 +1 @@ +import{C as r}from"./HardwareInstallation-8066ca79.js";import{_ as p,u as n,l as m,m as l,G as t,E as u,B as d}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolisBat",mixins:[r]},_={class:"device-solis-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",_,[t(i,null,{default:u(()=>[...e[1]||(e[1]=[d(" Einstellungen für Solis Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const M=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/bat.vue"]]);export{M as default}; diff --git a/web/settings/assets/bat-caa2d54a.js b/web/settings/assets/bat-caa2d54a.js deleted file mode 100644 index 61380e7cbd..0000000000 --- a/web/settings/assets/bat-caa2d54a.js +++ /dev/null @@ -1 +0,0 @@ -import{C as r}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as o,l as m,m as u,G as t,E as l,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceFemsBat",mixins:[r]},_={class:"device-fems-bat"};function f(n,e,b,v,g,C){const i=o("openwb-base-heading"),s=o("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:l(()=>e[1]||(e[1]=[c(" Einstellungen für openEMS, Fenecon FEMS, CENTURIO 10, Kaco Hy-Control Batteriespeicher ",-1)])),_:1,__:[1]}),t(s,{title:"Anzahl der verbauten Speicher",required:"",min:1,max:2,"model-value":n.component.configuration.num,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.num"))},null,8,["model-value"])])}const S=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/fems/bat.vue"]]);export{S as default}; diff --git a/web/settings/assets/bat-d270e7cf.js b/web/settings/assets/bat-d270e7cf.js new file mode 100644 index 0000000000..ce419b2de2 --- /dev/null +++ b/web/settings/assets/bat-d270e7cf.js @@ -0,0 +1 @@ +import{C as b}from"./HardwareInstallation-8066ca79.js";import{_ as g,u,l as f,m as B,G as l,E as i,B as t,A as n,F as r}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const k={name:"DeviceMqttBat",mixins:[b]},w={class:"device-mqtt-bat"};function v(o,e,W,z,x,E){const p=u("openwb-base-heading"),s=u("openwb-base-copy-to-clipboard"),d=u("openwb-base-alert"),a=u("openwb-base-button-group-input");return f(),B("div",w,[l(p,null,{default:i(()=>[...e[1]||(e[1]=[t(" Einstellungen für MQTT Batteriespeicher ",-1)])]),_:1}),l(d,{subtype:"info"},{default:i(()=>[e[27]||(e[27]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),n("ul",null,[n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/power ",1)]),_:1}),e[2]||(e[2]=n("br",null,null,-1)),e[3]||(e[3]=t(" Speicherleistung in Watt, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, positiv Ladung, negativ Entladung",-1)),e[4]||(e[4]=n("br",null,null,-1)),e[5]||(e[5]=t(" Beispiel: ",-1)),e[6]||(e[6]=n("span",{class:"text-info"},"-123",-1))]),n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/soc ",1)]),_:1}),e[7]||(e[7]=n("br",null,null,-1)),e[8]||(e[8]=t(" Ladestand des Speichers, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, gültige Werte 0 bis 100",-1)),e[9]||(e[9]=n("br",null,null,-1)),e[10]||(e[10]=t(" Beispiel: ",-1)),e[11]||(e[11]=n("span",{class:"text-info"},"95",-1))])]),e[28]||(e[28]=t(" Falls keine Werte für die Zählerstände übermittelt werden, berechnet openWB die Zählerstände anhand der Leistung. ",-1)),n("ul",null,[n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/imported ",1)]),_:1}),e[12]||(e[12]=n("br",null,null,-1)),e[13]||(e[13]=t(" Geladene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[14]||(e[14]=n("br",null,null,-1)),e[15]||(e[15]=t(" Beispiel: ",-1)),e[16]||(e[16]=n("span",{class:"text-info"},"123.45",-1))]),n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/exported ",1)]),_:1}),e[17]||(e[17]=n("br",null,null,-1)),e[18]||(e[18]=t(" Entladene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[19]||(e[19]=n("br",null,null,-1)),e[20]||(e[20]=t(" Beispiel: ",-1)),e[21]||(e[21]=n("span",{class:"text-info"},"123.45",-1))])]),e[29]||(e[29]=t(" Ströme je Phase sind optional, jedoch für phasenbasiertes Lastmanagement in Verbindung mit einem virtuellen Zähler unbedingt erforderlich. Ansonsten erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung an diesem Zähler: ",-1)),n("ul",null,[n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/get/currents ",1)]),_:1}),e[22]||(e[22]=n("br",null,null,-1)),e[23]||(e[23]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),e[24]||(e[24]=n("br",null,null,-1)),e[25]||(e[25]=t(" Beispiel: ",-1)),e[26]||(e[26]=n("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])])]),_:1}),l(p,null,{default:i(()=>[...e[30]||(e[30]=[t(" Optionale Einstellungen ",-1)])]),_:1}),l(d,{subtype:"info"},{default:i(()=>[e[36]||(e[36]=t(' Wenn der Speicher die aktive Steuerung durch openWB unterstützt, kann die Option "Speicherleistung steuerbar" auf "Ja" gesetzt werden. Der Modus, um die Speicher-Entladung ins Fahrzeug zu steuern, kann in den übergreifenden Ladeeinstellungen gesetzt werden. Über folgendes Topic wird dem Speicher die Entladeleistung mitgeteilt. ',-1)),n("ul",null,[n("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/bat/"+r(o.component.id)+"/set/power_limit ",1)]),_:1}),e[31]||(e[31]=n("br",null,null,-1)),e[32]||(e[32]=t(" Entladeleistung in Watt (Float), die im Speicher gesetzt werden muss.",-1)),e[33]||(e[33]=n("br",null,null,-1)),e[34]||(e[34]=t(" Beispiel: ",-1)),e[35]||(e[35]=n("span",{class:"text-info"},"123.0",-1))])])]),_:1}),l(a,{title:"Speicherleistung steuerbar",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":o.component.configuration.power_limit_controllable,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.power_limit_controllable"))},null,8,["model-value"])])}const C=g(k,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/bat.vue"]]);export{C as default}; diff --git a/web/settings/assets/bat-d365c2cb.js b/web/settings/assets/bat-d365c2cb.js deleted file mode 100644 index 83ba35bb6f..0000000000 --- a/web/settings/assets/bat-d365c2cb.js +++ /dev/null @@ -1 +0,0 @@ -import{C as m}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as a,l as p,m as u,G as t,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSolaredgeBat",mixins:[m]},b={class:"device-solaredge-bat"};function f(o,e,_,c,v,x){const l=a("openwb-base-heading"),i=a("openwb-base-number-input");return p(),u("div",b,[t(l,null,{default:r(()=>e[2]||(e[2]=[s(" Einstellungen für SolarEdge Batteriespeicher ",-1)])),_:1,__:[2]}),t(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),t(i,{title:"SolarEdge-Batterie-Index","model-value":o.component.configuration.battery_index,min:"1",max:"2","onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.battery_index"))},{help:r(()=>e[3]||(e[3]=[s(" Wenn eine zweite Batterie am Wechselrichter angeschlossen ist, hier den Index 2 eintagen. Im Normalfall immer 1 eintragen. ",-1)])),_:1},8,["model-value"])])}const N=d(g,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/bat.vue"]]);export{N as default}; diff --git a/web/settings/assets/bat-dfe36bde.js b/web/settings/assets/bat-dfe36bde.js new file mode 100644 index 0000000000..959a2e1dd8 --- /dev/null +++ b/web/settings/assets/bat-dfe36bde.js @@ -0,0 +1 @@ +import{C as m}from"./HardwareInstallation-8066ca79.js";import{_ as d,u as n,l as u,m as l,G as t,E as i,B as s}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSigenergyBat",mixins:[m]},b={class:"device-sigenergy-bat"};function _(o,e,c,f,v,w){const r=n("openwb-base-heading"),a=n("openwb-base-number-input");return u(),l("div",b,[t(r,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für Sigenergy Batteriespeicher ",-1)])]),_:1}),t(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[s(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])]),_:1},8,["model-value"])])}const V=d(g,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/bat.vue"]]);export{V as default}; diff --git a/web/settings/assets/bat-e176c2ff.js b/web/settings/assets/bat-e176c2ff.js deleted file mode 100644 index fdc1419798..0000000000 --- a/web/settings/assets/bat-e176c2ff.js +++ /dev/null @@ -1 +0,0 @@ -import{C as m}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as n,l as u,m as l,G as t,E as i,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSigenergyBat",mixins:[m]},_={class:"device-sigenergy-bat"};function b(o,e,c,f,v,w){const r=n("openwb-base-heading"),a=n("openwb-base-number-input");return u(),l("div",_,[t(r,null,{default:i(()=>e[1]||(e[1]=[s(" Einstellungen für Sigenergy Batteriespeicher ",-1)])),_:1,__:[1]}),t(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>e[2]||(e[2]=[s(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])),_:1},8,["model-value"])])}const V=d(g,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/bat.vue"]]);export{V as default}; diff --git a/web/settings/assets/bat-e326742a.js b/web/settings/assets/bat-e326742a.js deleted file mode 100644 index 5e990c6fdb..0000000000 --- a/web/settings/assets/bat-e326742a.js +++ /dev/null @@ -1 +0,0 @@ -import{C as a}from"./HardwareInstallation-be759b0c.js";import{_ as r,u as o,l,m as u,G as n,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbEvukitBat",mixins:[a]},_={class:"device-openwb-evukit-bat"};function v(t,e,b,f,w,g){const i=o("openwb-base-heading"),s=o("openwb-base-select-input");return l(),u("div",_,[n(i,null,{default:m(()=>e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Batteriespeicher ",-1)])),_:1,__:[1]}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.version"))},null,8,["model-value"])])}const $=r(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/bat.vue"]]);export{$ as default}; diff --git a/web/settings/assets/bat-e4f98942.js b/web/settings/assets/bat-e4f98942.js deleted file mode 100644 index 0c310c49d5..0000000000 --- a/web/settings/assets/bat-e4f98942.js +++ /dev/null @@ -1 +0,0 @@ -import{C as m}from"./HardwareInstallation-be759b0c.js";import{_ as l,u as t,l as d,m as c,G as i,E as a,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceMTecBat",mixins:[m]},_={class:"device-mtec-bat"};function f(o,e,v,g,w,B){const p=t("openwb-base-heading"),r=t("openwb-base-select-input"),u=t("openwb-base-number-input");return d(),c("div",_,[i(p,null,{default:a(()=>e[2]||(e[2]=[s(" Einstellungen für M-Tec Batteriespeicher ",-1)])),_:1,__:[2]}),i(r,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:2,text:"Gen 2"},{value:3,text:"Gen 3"}],"model-value":o.component.configuration.generation,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.generation"))},null,8,["model-value"]),i(u,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},{help:a(()=>e[3]||(e[3]=[s(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])),_:1},8,["model-value"])])}const k=l(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/bat.vue"]]);export{k as default}; diff --git a/web/settings/assets/bat-e77edf27.js b/web/settings/assets/bat-e77edf27.js new file mode 100644 index 0000000000..9adac50fb2 --- /dev/null +++ b/web/settings/assets/bat-e77edf27.js @@ -0,0 +1 @@ +import{C as d}from"./HardwareInstallation-8066ca79.js";import{_ as s,u as a,l as p,m,G as o,E as l,B as i,A as f}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceJsonBat",mixins:[d]},b={class:"device-json-bat"};function v(t,e,w,j,q,C){const u=a("openwb-base-heading"),r=a("openwb-base-text-input");return p(),m("div",b,[o(u,null,{default:l(()=>[...e[7]||(e[7]=[i(" Einstellungen für JSON Batteriespeicher ",-1)])]),_:1}),o(r,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":t.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.jq_power"))},{help:l(()=>[...e[8]||(e[8]=[i(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),f("br",null,null,-1),i(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt (positiv Ladung, negativ Entladung) darstellt. ",-1)])]),_:1},8,["model-value"]),o(r,{title:"Abfrage für Ladestand",subtype:"text",required:"","model-value":t.component.configuration.jq_soc,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.jq_soc"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":t.component.configuration.jq_current_l1,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.jq_current_l1"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":t.component.configuration.jq_current_l2,"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateConfiguration(n,"configuration.jq_current_l2"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":t.component.configuration.jq_current_l3,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateConfiguration(n,"configuration.jq_current_l3"))},null,8,["model-value"]),o(r,{title:"Abfrage für Zählerstand Ladung",subtype:"text","model-value":t.component.configuration.jq_imported,"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.jq_imported"))},{help:l(()=>[...e[9]||(e[9]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"]),o(r,{title:"Abfrage für Zählerstand Entladung",subtype:"text","model-value":t.component.configuration.jq_exported,"onUpdate:modelValue":e[6]||(e[6]=n=>t.updateConfiguration(n,"configuration.jq_exported"))},{help:l(()=>[...e[10]||(e[10]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"])])}const E=s(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/bat.vue"]]);export{E as default}; diff --git a/web/settings/assets/bat-e9ec040d.js b/web/settings/assets/bat-e9ec040d.js deleted file mode 100644 index 69f94bd337..0000000000 --- a/web/settings/assets/bat-e9ec040d.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as r,u as o,l,m,G as n,E as u,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbBatkitBat",mixins:[p]},_={class:"device-openwb-batkit-bat"};function b(t,e,f,v,w,B){const i=o("openwb-base-heading"),s=o("openwb-base-select-input");return l(),m("div",_,[n(i,null,{default:u(()=>e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Batteriespeicher ",-1)])),_:1,__:[1]}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=a=>t.updateConfiguration(a,"configuration.version"))},null,8,["model-value"])])}const $=r(d,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_bat_kit/bat.vue"]]);export{$ as default}; diff --git a/web/settings/assets/bat-efda0fab.js b/web/settings/assets/bat-efda0fab.js deleted file mode 100644 index 77d5e9847a..0000000000 --- a/web/settings/assets/bat-efda0fab.js +++ /dev/null @@ -1 +0,0 @@ -import{C as d}from"./HardwareInstallation-be759b0c.js";import{_ as s,u as a,l as p,m,G as o,E as l,B as i,A as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceJsonBat",mixins:[d]},b={class:"device-json-bat"};function v(t,e,w,j,q,C){const u=a("openwb-base-heading"),r=a("openwb-base-text-input");return p(),m("div",b,[o(u,null,{default:l(()=>e[7]||(e[7]=[i(" Einstellungen für JSON Batteriespeicher ",-1)])),_:1,__:[7]}),o(r,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":t.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.jq_power"))},{help:l(()=>e[8]||(e[8]=[i(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),f("br",null,null,-1),i(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt (positiv Ladung, negativ Entladung) darstellt. ",-1)])),_:1},8,["model-value"]),o(r,{title:"Abfrage für Ladestand",subtype:"text",required:"","model-value":t.component.configuration.jq_soc,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.jq_soc"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":t.component.configuration.jq_current_l1,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.jq_current_l1"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":t.component.configuration.jq_current_l2,"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateConfiguration(n,"configuration.jq_current_l2"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":t.component.configuration.jq_current_l3,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateConfiguration(n,"configuration.jq_current_l3"))},null,8,["model-value"]),o(r,{title:"Abfrage für Zählerstand Ladung",subtype:"text","model-value":t.component.configuration.jq_imported,"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.jq_imported"))},{help:l(()=>e[9]||(e[9]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])),_:1},8,["model-value"]),o(r,{title:"Abfrage für Zählerstand Entladung",subtype:"text","model-value":t.component.configuration.jq_exported,"onUpdate:modelValue":e[6]||(e[6]=n=>t.updateConfiguration(n,"configuration.jq_exported"))},{help:l(()=>e[10]||(e[10]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])),_:1},8,["model-value"])])}const E=s(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/bat.vue"]]);export{E as default}; diff --git a/web/settings/assets/bat-f72ba579.js b/web/settings/assets/bat-f72ba579.js deleted file mode 100644 index 86e4e000ec..0000000000 --- a/web/settings/assets/bat-f72ba579.js +++ /dev/null @@ -1 +0,0 @@ -import{C as r}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as n,l as m,m as u,G as t,E as d,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceFoxEssBat",mixins:[r]},c={class:"device-fox_ess-bat"};function b(o,e,f,x,v,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>e[1]||(e[1]=[_(" Einstellungen für FoxEss Batteriespeicher ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const F=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/bat.vue"]]);export{F as default}; diff --git a/web/settings/assets/bat_smart_energy-43f3b393.js b/web/settings/assets/bat_smart_energy-43f3b393.js new file mode 100644 index 0000000000..c38dfcf31f --- /dev/null +++ b/web/settings/assets/bat_smart_energy-43f3b393.js @@ -0,0 +1 @@ +import{C as a}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as o,l as p,m as u,G as t,E as d,B as _}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceSunnyBoyBatSmartEnergy",mixins:[a]},b={class:"device-sunnyboy-bat-smart-energy"};function c(n,e,f,g,y,v){const s=o("openwb-base-heading"),r=o("openwb-base-number-input");return p(),u("div",b,[t(s,null,{default:d(()=>[...e[1]||(e[1]=[_(" Einstellungen für SMA Sunny Boy Smart Energy Batteriespeicher ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const h=m(l,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/bat_smart_energy.vue"]]);export{h as default}; diff --git a/web/settings/assets/bat_smart_energy-af221efd.js b/web/settings/assets/bat_smart_energy-af221efd.js deleted file mode 100644 index b10cbb872a..0000000000 --- a/web/settings/assets/bat_smart_energy-af221efd.js +++ /dev/null @@ -1 +0,0 @@ -import{C as a}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as o,l as p,m as u,G as t,E as _,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceSunnyBoyBatSmartEnergy",mixins:[a]},b={class:"device-sunnyboy-bat-smart-energy"};function c(n,e,f,g,y,v){const s=o("openwb-base-heading"),r=o("openwb-base-number-input");return p(),u("div",b,[t(s,null,{default:_(()=>e[1]||(e[1]=[d(" Einstellungen für SMA Sunny Boy Smart Energy Batteriespeicher ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const h=m(l,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/bat_smart_energy.vue"]]);export{h as default}; diff --git a/web/settings/assets/chargePoint-04f787ef.js b/web/settings/assets/chargePoint-04f787ef.js deleted file mode 100644 index 3d57960eee..0000000000 --- a/web/settings/assets/chargePoint-04f787ef.js +++ /dev/null @@ -1 +0,0 @@ -import{C as s}from"./ChargePointInstallation-7e22d920.js";import{_ as p,u as n,l as u,m,G as i,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"ChargePointSmartwb",mixins:[s]},b={class:"charge-point-smartwb"};function c(t,e,f,_,w,v){const r=n("openwb-base-text-input"),a=n("openwb-base-number-input");return u(),m("div",b,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Wartezeit",required:"",min:2,max:10,unit:"s","model-value":t.chargePoint.configuration.timeout,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.timeout"))},{help:d(()=>e[2]||(e[2]=[l(" Zeitangabe in Sekunden, für die auf eine Antwort des Ladepunktes gewartet wird. Wird diese Zeit überschritten, so wird von einer Kommunikationsstörung ausgegangen. ",-1)])),_:1},8,["model-value"])])}const q=p(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/smartwb/chargePoint.vue"]]);export{q as default}; diff --git a/web/settings/assets/chargePoint-15ecf598.js b/web/settings/assets/chargePoint-15ecf598.js new file mode 100644 index 0000000000..7b79c588c8 --- /dev/null +++ b/web/settings/assets/chargePoint-15ecf598.js @@ -0,0 +1 @@ +import{C as d}from"./ChargePointInstallation-f32d3e54.js";import{_ as g,u as p,l as a,m,G as l,E as i,B as e,A as t,F as r}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const b={name:"ChargePointMqtt",mixins:[d]},f={class:"charge-point-mqtt"};function k(o,n,B,w,v,W){const u=p("openwb-base-alert"),s=p("openwb-base-copy-to-clipboard");return a(),m("div",f,[l(u,{subtype:"danger"},{default:i(()=>[...n[0]||(n[0]=[e(" Dieser Ladepunkt-Typ darf nur in Kombination mit dem Simulator zur Fehleranalyse genutzt werden. Eine andere Verwendung ist laut den Nutzungsbedingungen untersagt. ",-1)])]),_:1}),l(u,{subtype:"info"},{default:i(()=>[n[72]||(n[72]=e(" Das MQTT Modul stellt keine aktive Verbindung her, sondern erwartet, dass die Daten von speziellen Topics im Broker gelesen bzw. geschrieben werden. Alle Daten werden als gültiges JSON gesendet und auch so erwartet! Zahlen mit Nachkommastellen (Float) verwenden einen Punkt als Dezimaltrenner (internationales Format).",-1)),n[73]||(n[73]=t("br",null,null,-1)),n[74]||(n[74]=e(" Ab Version 2.1.8 wurden die Topics überarbeitet. Die bisherigen Topics openWB/set/chargepoint/id/get/... und openWB/chargepoint/set/... bleiben aus Gründen der Abwärtskompatibilität weiterhin nutzbar. Wir empfehlen, auf die neuen Topics umzusteigen. Dies ermöglicht die Beseitigung von Einschränkungen, wie z. B. die fehlende Verrechnung bei Hybrid-Systemen oder die Berechnung fehlender Werte, wie der Phasen-Leistung aus Spannung und Stromstärken. ",-1)),t("ol",null,[t("li",null,[n[11]||(n[11]=e(" von openWB gesendete Topics ",-1)),t("ul",null,[t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/mqtt/chargepoint/"+r(o.chargePoint.id)+"/set/current ",1)]),_:1}),n[1]||(n[1]=t("br",null,null,-1)),n[2]||(n[2]=e(" Sollwert des Ladestroms, mit Nachkommastellen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[3]||(n[3]=t("br",null,null,-1)),n[4]||(n[4]=e(" Beispiel: ",-1)),n[5]||(n[5]=t("span",{class:"text-info"},"12.34",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/mqtt/chargepoint/"+r(o.chargePoint.id)+"/set/phases_to_use ",1)]),_:1}),n[6]||(n[6]=t("br",null,null,-1)),n[7]||(n[7]=e(" Sollwert für die Anzahl Phasen als Ganzzahl (Integer). Mögliche Werte: 1 oder 3",-1)),n[8]||(n[8]=t("br",null,null,-1)),n[9]||(n[9]=e(" Beispiel: ",-1)),n[10]||(n[10]=t("span",{class:"text-info"},"1",-1))])])]),t("li",null,[n[37]||(n[37]=e(" von openWB zwingend erwartete Topics ",-1)),t("ul",null,[t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/currents ",1)]),_:1}),n[12]||(n[12]=t("br",null,null,-1)),n[13]||(n[13]=e(" Aktuelle Phasenströme des Ladepunktes, Array mit drei Zahlen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[14]||(n[14]=t("br",null,null,-1)),n[15]||(n[15]=e(" Beispiel: ",-1)),n[16]||(n[16]=t("span",{class:"text-info"},"[6.78,6.89,6.94]",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/power ",1)]),_:1}),n[17]||(n[17]=t("br",null,null,-1)),n[18]||(n[18]=e(" Leistung in Watt, mit Nachkommastellen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[19]||(n[19]=t("br",null,null,-1)),n[20]||(n[20]=e(" Beispiel: ",-1)),n[21]||(n[21]=t("span",{class:"text-info"},"123.45",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/plug_state ",1)]),_:1}),n[22]||(n[22]=t("br",null,null,-1)),n[23]||(n[23]=e(" Zeigt an, ob aktuell ein Fahrzeug angesteckt ist, Wahrheitswert (Bool).",-1)),n[24]||(n[24]=t("br",null,null,-1)),n[25]||(n[25]=e(" Beispiel: ",-1)),n[26]||(n[26]=t("span",{class:"text-info"},"true",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/charge_state ",1)]),_:1}),n[27]||(n[27]=t("br",null,null,-1)),n[28]||(n[28]=e(" Zeigt an, ob ein Ladevorgang aktiv ist, Wahrheitswert (Bool).",-1)),n[29]||(n[29]=t("br",null,null,-1)),n[30]||(n[30]=e(" Beispiel: ",-1)),n[31]||(n[31]=t("span",{class:"text-info"},"true",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/phases_in_use ",1)]),_:1}),n[32]||(n[32]=t("br",null,null,-1)),n[33]||(n[33]=e(" Anzahl der Phasen, mit denen geladen wird, Ganzzahl (Integer). Mögliche Werte: 0 bis 3",-1)),n[34]||(n[34]=t("br",null,null,-1)),n[35]||(n[35]=e(" Beispiel: ",-1)),n[36]||(n[36]=t("span",{class:"text-info"},"3",-1))])])]),t("li",null,[n[71]||(n[71]=e(" optionale Topics ",-1)),t("ul",null,[t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/imported ",1)]),_:1}),n[38]||(n[38]=t("br",null,null,-1)),n[39]||(n[39]=e(" Geladene Energie in Wh, mit Nachkommastellen (Float), nur positiv",-1)),n[40]||(n[40]=t("br",null,null,-1)),n[41]||(n[41]=e(" Wird dieses Topic nicht vom Ladepunkt gesendet, so wird intern ein Zählerstand anhand der Leistung simuliert.",-1)),n[42]||(n[42]=t("br",null,null,-1)),n[43]||(n[43]=e(" Beispiel: ",-1)),n[44]||(n[44]=t("span",{class:"text-info"},"123.45",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/exported ",1)]),_:1}),n[45]||(n[45]=t("br",null,null,-1)),n[46]||(n[46]=e(" Entladene Energie in Wh, mit Nachkommastellen (Float), nur positiv",-1)),n[47]||(n[47]=t("br",null,null,-1)),n[48]||(n[48]=e(" Wird dieses Topic nicht vom Ladepunkt gesendet, so wird intern ein Zählerstand anhand der Leistung simuliert.",-1)),n[49]||(n[49]=t("br",null,null,-1)),n[50]||(n[50]=e(" Beispiel: ",-1)),n[51]||(n[51]=t("span",{class:"text-info"},"123.45",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/voltages ",1)]),_:1}),n[52]||(n[52]=t("br",null,null,-1)),n[53]||(n[53]=e(" Aktuelle Phasenspannungen des Ladepunktes, Array mit drei Zahlen (Float), nur positiv.",-1)),n[54]||(n[54]=t("br",null,null,-1)),n[55]||(n[55]=e(" Die Spannungen werden nicht verarbeitet, sondern lediglich im Status angezeigt.",-1)),n[56]||(n[56]=t("br",null,null,-1)),n[57]||(n[57]=e(" Beispiel: ",-1)),n[58]||(n[58]=t("span",{class:"text-info"},"[230.12,231.08,232.54]",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/power_factors ",1)]),_:1}),n[59]||(n[59]=t("br",null,null,-1)),n[60]||(n[60]=e(" Aktuelle Leistungsfaktoren des Ladepunktes, Array mit drei Zahlen (Float), Wertebereich von -1 bis 1.",-1)),n[61]||(n[61]=t("br",null,null,-1)),n[62]||(n[62]=e(" Die Leistungsfaktoren werden nicht verarbeitet, sondern lediglich im Status angezeigt.",-1)),n[63]||(n[63]=t("br",null,null,-1)),n[64]||(n[64]=e(" Beispiel: ",-1)),n[65]||(n[65]=t("span",{class:"text-info"},"[-0.87,0.96,1.0]",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/rfid_tag ",1)]),_:1}),n[66]||(n[66]=t("br",null,null,-1)),n[67]||(n[67]=e(" Eine Zeichenfolge, die einen eingelesenen Tag für openWB repräsentiert.",-1)),n[68]||(n[68]=t("br",null,null,-1)),n[69]||(n[69]=e(" Beispiel: ",-1)),n[70]||(n[70]=t("span",{class:"text-info"},'"123654"',-1))])])])])]),_:1})])}const S=g(b,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/mqtt/chargePoint.vue"]]);export{S as default}; diff --git a/web/settings/assets/chargePoint-1623ec0b.js b/web/settings/assets/chargePoint-1623ec0b.js new file mode 100644 index 0000000000..281b3230a0 --- /dev/null +++ b/web/settings/assets/chargePoint-1623ec0b.js @@ -0,0 +1 @@ +import{C as p}from"./ChargePointInstallation-f32d3e54.js";import{_ as s,u as t,l as u,m,G as i,E as d,B as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"ChargePointSatellite",mixins:[p]},c={class:"charge-point-openwb-satellite"};function g(n,e,f,b,h,w){const r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),m("div",c,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":n.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o-1,"configuration.duo_num"))},{help:d(()=>[...e[2]||(e[2]=[l(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ',-1)])]),_:1},8,["model-value"])])}const N=s(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_series2_satellit/chargePoint.vue"]]);export{N as default}; diff --git a/web/settings/assets/chargePoint-d206a228.js b/web/settings/assets/chargePoint-1b76c4e2.js similarity index 59% rename from web/settings/assets/chargePoint-d206a228.js rename to web/settings/assets/chargePoint-1b76c4e2.js index 447ecb3244..1550ca1656 100644 --- a/web/settings/assets/chargePoint-d206a228.js +++ b/web/settings/assets/chargePoint-1b76c4e2.js @@ -1 +1 @@ -import{C as r}from"./ChargePointInstallation-7e22d920.js";import{_ as i,u as a,l as p,m as s,G as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"ChargePointOpenwbDcAdapter",mixins:[r]},m={class:"charge-point-openwb-dc-adapter"};function u(e,o,_,l,f,g){const t=a("openwb-base-text-input");return p(),s("div",m,[d(t,{title:"IP oder Hostname",subtype:"host",required:"","model-value":e.chargePoint.configuration.ip_address,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])])}const k=i(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_dc_adapter/chargePoint.vue"]]);export{k as default}; +import{C as r}from"./ChargePointInstallation-f32d3e54.js";import{_ as i,u as a,l as p,m as s,G as d}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"ChargePointOpenwbDcAdapter",mixins:[r]},m={class:"charge-point-openwb-dc-adapter"};function u(e,o,_,l,f,g){const t=a("openwb-base-text-input");return p(),s("div",m,[d(t,{title:"IP oder Hostname",subtype:"host",required:"","model-value":e.chargePoint.configuration.ip_address,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])])}const k=i(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_dc_adapter/chargePoint.vue"]]);export{k as default}; diff --git a/web/settings/assets/chargePoint-5ae09ebd.js b/web/settings/assets/chargePoint-298a41ae.js similarity index 59% rename from web/settings/assets/chargePoint-5ae09ebd.js rename to web/settings/assets/chargePoint-298a41ae.js index da5e3befd2..a09cd4e252 100644 --- a/web/settings/assets/chargePoint-5ae09ebd.js +++ b/web/settings/assets/chargePoint-298a41ae.js @@ -1 +1 @@ -import{C as r}from"./ChargePointInstallation-7e22d920.js";import{_ as i,u as p,l as s,m as a,G as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"ChargePointOpenwbPro",mixins:[r]},d={class:"charge-point-openwb-pro"};function u(o,e,_,l,f,g){const t=p("openwb-base-text-input");return s(),a("div",d,[m(t,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])])}const k=i(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_pro/chargePoint.vue"]]);export{k as default}; +import{C as r}from"./ChargePointInstallation-f32d3e54.js";import{_ as i,u as p,l as s,m as a,G as m}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"ChargePointOpenwbPro",mixins:[r]},d={class:"charge-point-openwb-pro"};function u(o,e,_,l,f,g){const t=p("openwb-base-text-input");return s(),a("div",d,[m(t,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])])}const k=i(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_pro/chargePoint.vue"]]);export{k as default}; diff --git a/web/settings/assets/chargePoint-b9360c52.js b/web/settings/assets/chargePoint-3bc810fe.js similarity index 63% rename from web/settings/assets/chargePoint-b9360c52.js rename to web/settings/assets/chargePoint-3bc810fe.js index 69ed09e4ed..216a58e9c6 100644 --- a/web/settings/assets/chargePoint-b9360c52.js +++ b/web/settings/assets/chargePoint-3bc810fe.js @@ -1 +1 @@ -import{C as u}from"./ChargePointInstallation-7e22d920.js";import{_ as p,u as t,l as i,m as d,G as m,x as l,E as c,B as g,z as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"ChargePointInternalOpenwb",mixins:[u],methods:{updateMode(e){["series","socket","pro_plus"].includes(e)&&this.updateConfiguration(0,"configuration.duo_num"),this.updateConfiguration(e,"configuration.mode")}}},b={class:"charge-point-internal-openwb"};function h(e,o,B,v,w,a){const r=t("openwb-base-select-input"),s=t("openwb-base-number-input");return i(),d("div",b,[m(r,{title:"Bauart","not-selected":"Bitte auswählen",required:"",options:[{value:"series",text:"openWB series1/2 in den Varianten custom, standard & standard+"},{value:"duo",text:"openWB series1/2 Duo"},{value:"socket",text:"openWB series1/2 Buchse"},{value:"pro_plus",text:"openWB Pro+"}],"model-value":e.chargePoint.configuration.mode,"onUpdate:modelValue":o[0]||(o[0]=n=>a.updateMode(n))},null,8,["model-value"]),e.chargePoint.configuration.mode=="duo"?(i(),l(s,{key:0,title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":e.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n-1,"configuration.duo_num"))},{help:c(()=>o[2]||(o[2]=[g(' Bei einer openWB Duo können mit "1" oder "2" die beiden enthaltenen Ladepunkte angesprochen werden. ',-1)])),_:1},8,["model-value"])):_("",!0)])}const q=p(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/internal_openwb/chargePoint.vue"]]);export{q as default}; +import{C as u}from"./ChargePointInstallation-f32d3e54.js";import{_ as p,u as t,l as i,m as d,G as m,x as l,E as c,B as g,z as _}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const f={name:"ChargePointInternalOpenwb",mixins:[u],methods:{updateMode(e){["series","socket","pro_plus"].includes(e)&&this.updateConfiguration(0,"configuration.duo_num"),this.updateConfiguration(e,"configuration.mode")}}},b={class:"charge-point-internal-openwb"};function h(e,o,B,v,w,a){const r=t("openwb-base-select-input"),s=t("openwb-base-number-input");return i(),d("div",b,[m(r,{title:"Bauart","not-selected":"Bitte auswählen",required:"",options:[{value:"series",text:"openWB series1/2 in den Varianten custom, standard & standard+"},{value:"duo",text:"openWB series1/2 Duo"},{value:"socket",text:"openWB series1/2 Buchse"},{value:"pro_plus",text:"openWB Pro+"}],"model-value":e.chargePoint.configuration.mode,"onUpdate:modelValue":o[0]||(o[0]=n=>a.updateMode(n))},null,8,["model-value"]),e.chargePoint.configuration.mode=="duo"?(i(),l(s,{key:0,title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":e.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n-1,"configuration.duo_num"))},{help:c(()=>[...o[2]||(o[2]=[g(' Bei einer openWB Duo können mit "1" oder "2" die beiden enthaltenen Ladepunkte angesprochen werden. ',-1)])]),_:1},8,["model-value"])):_("",!0)])}const q=p(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/internal_openwb/chargePoint.vue"]]);export{q as default}; diff --git a/web/settings/assets/chargePoint-49f400c4.js b/web/settings/assets/chargePoint-49f400c4.js new file mode 100644 index 0000000000..d7c4288e42 --- /dev/null +++ b/web/settings/assets/chargePoint-49f400c4.js @@ -0,0 +1 @@ +import{C as p}from"./ChargePointInstallation-f32d3e54.js";import{_ as s,u as t,l as u,m,G as i,E as d,B as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"ChargePointExternalOpenwb",mixins:[p]},c={class:"charge-point-external-openwb"};function g(n,e,b,f,h,w){const r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),m("div",c,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":n.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o-1,"configuration.duo_num"))},{help:d(()=>[...e[2]||(e[2]=[l(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ',-1)])]),_:1},8,["model-value"])])}const E=s(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/external_openwb/chargePoint.vue"]]);export{E as default}; diff --git a/web/settings/assets/chargePoint-5d28cfe6.js b/web/settings/assets/chargePoint-5d28cfe6.js deleted file mode 100644 index 270c8e8d06..0000000000 --- a/web/settings/assets/chargePoint-5d28cfe6.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./ChargePointInstallation-7e22d920.js";import{_ as s,u as t,l as u,m,G as i,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"ChargePointExternalOpenwb",mixins:[p]},c={class:"charge-point-external-openwb"};function g(n,e,b,f,h,w){const r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),m("div",c,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":n.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o-1,"configuration.duo_num"))},{help:d(()=>e[2]||(e[2]=[l(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ',-1)])),_:1},8,["model-value"])])}const E=s(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/external_openwb/chargePoint.vue"]]);export{E as default}; diff --git a/web/settings/assets/chargePoint-8808c043.js b/web/settings/assets/chargePoint-8808c043.js deleted file mode 100644 index 888ce89ec3..0000000000 --- a/web/settings/assets/chargePoint-8808c043.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./ChargePointInstallation-7e22d920.js";import{_ as s,u as t,l as u,m,G as i,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"ChargePointSatellite",mixins:[p]},c={class:"charge-point-openwb-satellite"};function g(n,e,f,b,h,w){const r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),m("div",c,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":n.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o-1,"configuration.duo_num"))},{help:d(()=>e[2]||(e[2]=[l(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ',-1)])),_:1},8,["model-value"])])}const N=s(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_series2_satellit/chargePoint.vue"]]);export{N as default}; diff --git a/web/settings/assets/chargePoint-9bb6ac88.js b/web/settings/assets/chargePoint-9bb6ac88.js new file mode 100644 index 0000000000..8219da152e --- /dev/null +++ b/web/settings/assets/chargePoint-9bb6ac88.js @@ -0,0 +1 @@ +import{C as s}from"./ChargePointInstallation-f32d3e54.js";import{_ as p,u as n,l as u,m,G as i,E as d,B as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const g={name:"ChargePointSmartwb",mixins:[s]},b={class:"charge-point-smartwb"};function c(t,e,f,_,w,v){const r=n("openwb-base-text-input"),a=n("openwb-base-number-input");return u(),m("div",b,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Wartezeit",required:"",min:2,max:10,unit:"s","model-value":t.chargePoint.configuration.timeout,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.timeout"))},{help:d(()=>[...e[2]||(e[2]=[l(" Zeitangabe in Sekunden, für die auf eine Antwort des Ladepunktes gewartet wird. Wird diese Zeit überschritten, so wird von einer Kommunikationsstörung ausgegangen. ",-1)])]),_:1},8,["model-value"])])}const q=p(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/smartwb/chargePoint.vue"]]);export{q as default}; diff --git a/web/settings/assets/chargePoint-c7a2ef8c.js b/web/settings/assets/chargePoint-c7a2ef8c.js deleted file mode 100644 index b93411cd3f..0000000000 --- a/web/settings/assets/chargePoint-c7a2ef8c.js +++ /dev/null @@ -1 +0,0 @@ -import{C as d}from"./ChargePointInstallation-7e22d920.js";import{_ as g,u as p,l as a,m,G as l,E as i,B as e,A as t,F as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"ChargePointMqtt",mixins:[d]},f={class:"charge-point-mqtt"};function k(o,n,B,w,v,W){const u=p("openwb-base-alert"),s=p("openwb-base-copy-to-clipboard");return a(),m("div",f,[l(u,{subtype:"danger"},{default:i(()=>n[0]||(n[0]=[e(" Dieser Ladepunkt-Typ darf nur in Kombination mit dem Simulator zur Fehleranalyse genutzt werden. Eine andere Verwendung ist laut den Nutzungsbedingungen untersagt. ",-1)])),_:1,__:[0]}),l(u,{subtype:"info"},{default:i(()=>[n[72]||(n[72]=e(" Das MQTT Modul stellt keine aktive Verbindung her, sondern erwartet, dass die Daten von speziellen Topics im Broker gelesen bzw. geschrieben werden. Alle Daten werden als gültiges JSON gesendet und auch so erwartet! Zahlen mit Nachkommastellen (Float) verwenden einen Punkt als Dezimaltrenner (internationales Format).",-1)),n[73]||(n[73]=t("br",null,null,-1)),n[74]||(n[74]=e(" Ab Version 2.1.8 wurden die Topics überarbeitet. Die bisherigen Topics openWB/set/chargepoint/id/get/... und openWB/chargepoint/set/... bleiben aus Gründen der Abwärtskompatibilität weiterhin nutzbar. Wir empfehlen, auf die neuen Topics umzusteigen. Dies ermöglicht die Beseitigung von Einschränkungen, wie z. B. die fehlende Verrechnung bei Hybrid-Systemen oder die Berechnung fehlender Werte, wie der Phasen-Leistung aus Spannung und Stromstärken. ",-1)),t("ol",null,[t("li",null,[n[11]||(n[11]=e(" von openWB gesendete Topics ",-1)),t("ul",null,[t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/mqtt/chargepoint/"+r(o.chargePoint.id)+"/set/current ",1)]),_:1}),n[1]||(n[1]=t("br",null,null,-1)),n[2]||(n[2]=e(" Sollwert des Ladestroms, mit Nachkommastellen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[3]||(n[3]=t("br",null,null,-1)),n[4]||(n[4]=e(" Beispiel: ",-1)),n[5]||(n[5]=t("span",{class:"text-info"},"12.34",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/mqtt/chargepoint/"+r(o.chargePoint.id)+"/set/phases_to_use ",1)]),_:1}),n[6]||(n[6]=t("br",null,null,-1)),n[7]||(n[7]=e(" Sollwert für die Anzahl Phasen als Ganzzahl (Integer). Mögliche Werte: 1 oder 3",-1)),n[8]||(n[8]=t("br",null,null,-1)),n[9]||(n[9]=e(" Beispiel: ",-1)),n[10]||(n[10]=t("span",{class:"text-info"},"1",-1))])])]),t("li",null,[n[37]||(n[37]=e(" von openWB zwingend erwartete Topics ",-1)),t("ul",null,[t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/currents ",1)]),_:1}),n[12]||(n[12]=t("br",null,null,-1)),n[13]||(n[13]=e(" Aktuelle Phasenströme des Ladepunktes, Array mit drei Zahlen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[14]||(n[14]=t("br",null,null,-1)),n[15]||(n[15]=e(" Beispiel: ",-1)),n[16]||(n[16]=t("span",{class:"text-info"},"[6.78,6.89,6.94]",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/power ",1)]),_:1}),n[17]||(n[17]=t("br",null,null,-1)),n[18]||(n[18]=e(" Leistung in Watt, mit Nachkommastellen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[19]||(n[19]=t("br",null,null,-1)),n[20]||(n[20]=e(" Beispiel: ",-1)),n[21]||(n[21]=t("span",{class:"text-info"},"123.45",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/plug_state ",1)]),_:1}),n[22]||(n[22]=t("br",null,null,-1)),n[23]||(n[23]=e(" Zeigt an, ob aktuell ein Fahrzeug angesteckt ist, Wahrheitswert (Bool).",-1)),n[24]||(n[24]=t("br",null,null,-1)),n[25]||(n[25]=e(" Beispiel: ",-1)),n[26]||(n[26]=t("span",{class:"text-info"},"true",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/charge_state ",1)]),_:1}),n[27]||(n[27]=t("br",null,null,-1)),n[28]||(n[28]=e(" Zeigt an, ob ein Ladevorgang aktiv ist, Wahrheitswert (Bool).",-1)),n[29]||(n[29]=t("br",null,null,-1)),n[30]||(n[30]=e(" Beispiel: ",-1)),n[31]||(n[31]=t("span",{class:"text-info"},"true",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/phases_in_use ",1)]),_:1}),n[32]||(n[32]=t("br",null,null,-1)),n[33]||(n[33]=e(" Anzahl der Phasen, mit denen geladen wird, Ganzzahl (Integer). Mögliche Werte: 0 bis 3",-1)),n[34]||(n[34]=t("br",null,null,-1)),n[35]||(n[35]=e(" Beispiel: ",-1)),n[36]||(n[36]=t("span",{class:"text-info"},"3",-1))])])]),t("li",null,[n[71]||(n[71]=e(" optionale Topics ",-1)),t("ul",null,[t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/imported ",1)]),_:1}),n[38]||(n[38]=t("br",null,null,-1)),n[39]||(n[39]=e(" Geladene Energie in Wh, mit Nachkommastellen (Float), nur positiv",-1)),n[40]||(n[40]=t("br",null,null,-1)),n[41]||(n[41]=e(" Wird dieses Topic nicht vom Ladepunkt gesendet, so wird intern ein Zählerstand anhand der Leistung simuliert.",-1)),n[42]||(n[42]=t("br",null,null,-1)),n[43]||(n[43]=e(" Beispiel: ",-1)),n[44]||(n[44]=t("span",{class:"text-info"},"123.45",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/exported ",1)]),_:1}),n[45]||(n[45]=t("br",null,null,-1)),n[46]||(n[46]=e(" Entladene Energie in Wh, mit Nachkommastellen (Float), nur positiv",-1)),n[47]||(n[47]=t("br",null,null,-1)),n[48]||(n[48]=e(" Wird dieses Topic nicht vom Ladepunkt gesendet, so wird intern ein Zählerstand anhand der Leistung simuliert.",-1)),n[49]||(n[49]=t("br",null,null,-1)),n[50]||(n[50]=e(" Beispiel: ",-1)),n[51]||(n[51]=t("span",{class:"text-info"},"123.45",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/voltages ",1)]),_:1}),n[52]||(n[52]=t("br",null,null,-1)),n[53]||(n[53]=e(" Aktuelle Phasenspannungen des Ladepunktes, Array mit drei Zahlen (Float), nur positiv.",-1)),n[54]||(n[54]=t("br",null,null,-1)),n[55]||(n[55]=e(" Die Spannungen werden nicht verarbeitet, sondern lediglich im Status angezeigt.",-1)),n[56]||(n[56]=t("br",null,null,-1)),n[57]||(n[57]=e(" Beispiel: ",-1)),n[58]||(n[58]=t("span",{class:"text-info"},"[230.12,231.08,232.54]",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/power_factors ",1)]),_:1}),n[59]||(n[59]=t("br",null,null,-1)),n[60]||(n[60]=e(" Aktuelle Leistungsfaktoren des Ladepunktes, Array mit drei Zahlen (Float), Wertebereich von -1 bis 1.",-1)),n[61]||(n[61]=t("br",null,null,-1)),n[62]||(n[62]=e(" Die Leistungsfaktoren werden nicht verarbeitet, sondern lediglich im Status angezeigt.",-1)),n[63]||(n[63]=t("br",null,null,-1)),n[64]||(n[64]=e(" Beispiel: ",-1)),n[65]||(n[65]=t("span",{class:"text-info"},"[-0.87,0.96,1.0]",-1))]),t("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[e(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/rfid_tag ",1)]),_:1}),n[66]||(n[66]=t("br",null,null,-1)),n[67]||(n[67]=e(" Eine Zeichenfolge, die einen eingelesenen Tag für openWB repräsentiert.",-1)),n[68]||(n[68]=t("br",null,null,-1)),n[69]||(n[69]=e(" Beispiel: ",-1)),n[70]||(n[70]=t("span",{class:"text-info"},'"123654"',-1))])])])])]),_:1,__:[72,73,74]})])}const S=g(b,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/mqtt/chargePoint.vue"]]);export{S as default}; diff --git a/web/settings/assets/commands-6baac453.js b/web/settings/assets/commands-55f6367a.js similarity index 59% rename from web/settings/assets/commands-6baac453.js rename to web/settings/assets/commands-55f6367a.js index 8fde82d11d..0902d58b84 100644 --- a/web/settings/assets/commands-6baac453.js +++ b/web/settings/assets/commands-55f6367a.js @@ -1 +1 @@ -import{a as g}from"./ChargePointInstallation-7e22d920.js";import{_ as h,u,l as a,m as c,G as d,E as r,B as i,x as _,F as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"ChargePointCommandsInternalOpenwb",mixins:[g],computed:{mode(){switch(this.chargePoint.configuration.mode){case"series":return"openWB series1/2 custom, standard & standard+";case"duo":return"openWB series1/2 Duo";case"socket":return"openWB series1/2 Buchse";case"pro_plus":return"openWB Pro+";default:return this.chargePoint.configuration.mode}}},methods:{async triggerUpdate(){let n=new FormData;n.append("command","update_pro_plus");const t="Die Aktualisierung der openWB Pro+ wird gestartet...";this.$root.postClientMessage(t,"info"),console.debug(location),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/charge_points/internal_openwb/commands.php",n,{timeout:5e3}).then(()=>{const e="Die Aktualisierung der openWB Pro+ wurde erfolgreich gestartet.";this.$root.postClientMessage(e,"success")}).catch(e=>{var s="Aktualisierung fehlgeschlagen!
";e.response?(console.error(e.response.status,e.response.data),s+=e.response.status+": "+e.response.data):e.request?(console.error(e.request),s+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",e.message),s+="Es ist ein unbekannter Fehler aufgetreten."),this.$root.postClientMessage(s,"danger")})},openSettings(){window.open("http://"+location.hostname+":8080","_blank")}}},b={class:"charge-point-commands-internal-openwb"},k={key:0};function B(n,t,e,s,w,o){const p=u("openwb-base-button-input"),m=u("openwb-base-alert");return a(),c("div",b,[n.chargePoint.configuration.mode=="pro_plus"?(a(),c("div",k,[d(p,{title:"Ladepunkt aktualisieren","button-text":"Update anfordern",subtype:"success",onButtonClicked:o.triggerUpdate},{help:r(()=>t[0]||(t[0]=[i(" Hier können Sie die Aktualisierung der openWB Pro anstoßen. Bitte stellen Sie sicher, dass kein Fahrzeug angesteckt ist. ",-1)])),_:1},8,["onButtonClicked"]),d(p,{title:"Einstellungen öffnen","button-text":"Zu den Einstellungen",subtype:"success",onButtonClicked:o.openSettings},{help:r(()=>t[1]||(t[1]=[i(" Mit diesem Befehl können Sie die Einstellungen der openWB Pro in einem neuen Browser-Tab oder -Fenster öffnen. ",-1)])),_:1},8,["onButtonClicked"])])):(a(),_(m,{key:1,subtype:"secondary"},{default:r(()=>[i(' Der Ladepunkt-Typ "'+l(n.chargePoint.type)+'" bietet für die Bauart "'+l(o.mode)+'" keine Befehle an. ',1)]),_:1}))])}const S=h(f,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/internal_openwb/commands.vue"]]);export{S as default}; +import{a as g}from"./ChargePointInstallation-f32d3e54.js";import{_ as h,u,l as a,m as c,G as d,E as r,B as i,x as _,F as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const f={name:"ChargePointCommandsInternalOpenwb",mixins:[g],computed:{mode(){switch(this.chargePoint.configuration.mode){case"series":return"openWB series1/2 custom, standard & standard+";case"duo":return"openWB series1/2 Duo";case"socket":return"openWB series1/2 Buchse";case"pro_plus":return"openWB Pro+";default:return this.chargePoint.configuration.mode}}},methods:{async triggerUpdate(){let n=new FormData;n.append("command","update_pro_plus");const t="Die Aktualisierung der openWB Pro+ wird gestartet...";this.$root.postClientMessage(t,"info"),console.debug(location),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/charge_points/internal_openwb/commands.php",n,{timeout:5e3}).then(()=>{const e="Die Aktualisierung der openWB Pro+ wurde erfolgreich gestartet.";this.$root.postClientMessage(e,"success")}).catch(e=>{var s="Aktualisierung fehlgeschlagen!
";e.response?(console.error(e.response.status,e.response.data),s+=e.response.status+": "+e.response.data):e.request?(console.error(e.request),s+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",e.message),s+="Es ist ein unbekannter Fehler aufgetreten."),this.$root.postClientMessage(s,"danger")})},openSettings(){window.open("http://"+location.hostname+":8080","_blank")}}},b={class:"charge-point-commands-internal-openwb"},k={key:0};function B(n,t,e,s,w,o){const p=u("openwb-base-button-input"),m=u("openwb-base-alert");return a(),c("div",b,[n.chargePoint.configuration.mode=="pro_plus"?(a(),c("div",k,[d(p,{title:"Ladepunkt aktualisieren","button-text":"Update anfordern",subtype:"success",onButtonClicked:o.triggerUpdate},{help:r(()=>[...t[0]||(t[0]=[i(" Hier können Sie die Aktualisierung der openWB Pro anstoßen. Bitte stellen Sie sicher, dass kein Fahrzeug angesteckt ist. ",-1)])]),_:1},8,["onButtonClicked"]),d(p,{title:"Einstellungen öffnen","button-text":"Zu den Einstellungen",subtype:"success",onButtonClicked:o.openSettings},{help:r(()=>[...t[1]||(t[1]=[i(" Mit diesem Befehl können Sie die Einstellungen der openWB Pro in einem neuen Browser-Tab oder -Fenster öffnen. ",-1)])]),_:1},8,["onButtonClicked"])])):(a(),_(m,{key:1,subtype:"secondary"},{default:r(()=>[i(' Der Ladepunkt-Typ "'+l(n.chargePoint.type)+'" bietet für die Bauart "'+l(o.mode)+'" keine Befehle an. ',1)]),_:1}))])}const S=h(f,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/internal_openwb/commands.vue"]]);export{S as default}; diff --git a/web/settings/assets/commands-c6ddc747.js b/web/settings/assets/commands-8f629639.js similarity index 54% rename from web/settings/assets/commands-c6ddc747.js rename to web/settings/assets/commands-8f629639.js index 65ec38b7d6..2e30fbbdec 100644 --- a/web/settings/assets/commands-c6ddc747.js +++ b/web/settings/assets/commands-8f629639.js @@ -1 +1 @@ -import{a as d}from"./ChargePointInstallation-7e22d920.js";import{_ as u,u as c,l,m as g,G as a,E as r,B as p}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"ChargePointCommandsOpenwbPro",mixins:[d],methods:{async triggerUpdate(){let t=new FormData;t.append("command","update"),t.append("data",'{"ip_address":"'+this.chargePoint.configuration.ip_address+'"}');const n="Die Aktualisierung der openWB Pro wird gestartet...";this.$root.postClientMessage(n,"info"),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/charge_points/openwb_pro/commands.php",t,{timeout:5e3}).then(()=>{const e="Die Aktualisierung der openWB Pro wurde erfolgreich gestartet.";this.$root.postClientMessage(e,"success")}).catch(e=>{var s="Aktualisierung fehlgeschlagen!
";e.response?(console.error(e.response.status,e.response.data),s+=e.response.status+": "+e.response.data):e.request?(console.error(e.request),s+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",e.message),s+="Es ist ein unbekannter Fehler aufgetreten."),this.$root.postClientMessage(s,"danger")})},openSettings(){window.open("http://"+this.chargePoint.configuration.ip_address,"_blank")}}},h={class:"charge-point-commands-openwb-pro"};function f(t,n,e,s,b,o){const i=c("openwb-base-button-input");return l(),g("div",h,[a(i,{title:"Ladepunkt aktualisieren","button-text":"Update anfordern",subtype:"success",disabled:t.chargePoint.configuration.ip_address==null,onButtonClicked:o.triggerUpdate},{help:r(()=>n[0]||(n[0]=[p(" Mit diesem Befehl können Sie die Aktualisierung der openWB Pro anstoßen. Bitte beachten Sie, dass kein Fahrzeug angesteckt ist. ",-1)])),_:1},8,["disabled","onButtonClicked"]),a(i,{title:"Einstellungen öffnen","button-text":"Zu den Einstellungen",subtype:"success",disabled:t.chargePoint.configuration.ip_address==null,onButtonClicked:o.openSettings},{help:r(()=>n[1]||(n[1]=[p(" Mit diesem Befehl können Sie die Einstellungen der openWB Pro in einem neuen Browser-Tab oder -Fenster öffnen. ",-1)])),_:1},8,["disabled","onButtonClicked"])])}const v=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_pro/commands.vue"]]);export{v as default}; +import{a as d}from"./ChargePointInstallation-f32d3e54.js";import{_ as u,u as c,l,m as g,G as a,E as r,B as p}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const m={name:"ChargePointCommandsOpenwbPro",mixins:[d],methods:{async triggerUpdate(){let t=new FormData;t.append("command","update"),t.append("data",'{"ip_address":"'+this.chargePoint.configuration.ip_address+'"}');const n="Die Aktualisierung der openWB Pro wird gestartet...";this.$root.postClientMessage(n,"info"),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/charge_points/openwb_pro/commands.php",t,{timeout:5e3}).then(()=>{const e="Die Aktualisierung der openWB Pro wurde erfolgreich gestartet.";this.$root.postClientMessage(e,"success")}).catch(e=>{var s="Aktualisierung fehlgeschlagen!
";e.response?(console.error(e.response.status,e.response.data),s+=e.response.status+": "+e.response.data):e.request?(console.error(e.request),s+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",e.message),s+="Es ist ein unbekannter Fehler aufgetreten."),this.$root.postClientMessage(s,"danger")})},openSettings(){window.open("http://"+this.chargePoint.configuration.ip_address,"_blank")}}},h={class:"charge-point-commands-openwb-pro"};function f(t,n,e,s,b,o){const i=c("openwb-base-button-input");return l(),g("div",h,[a(i,{title:"Ladepunkt aktualisieren","button-text":"Update anfordern",subtype:"success",disabled:t.chargePoint.configuration.ip_address==null,onButtonClicked:o.triggerUpdate},{help:r(()=>[...n[0]||(n[0]=[p(" Mit diesem Befehl können Sie die Aktualisierung der openWB Pro anstoßen. Bitte beachten Sie, dass kein Fahrzeug angesteckt ist. ",-1)])]),_:1},8,["disabled","onButtonClicked"]),a(i,{title:"Einstellungen öffnen","button-text":"Zu den Einstellungen",subtype:"success",disabled:t.chargePoint.configuration.ip_address==null,onButtonClicked:o.openSettings},{help:r(()=>[...n[1]||(n[1]=[p(" Mit diesem Befehl können Sie die Einstellungen der openWB Pro in einem neuen Browser-Tab oder -Fenster öffnen. ",-1)])]),_:1},8,["disabled","onButtonClicked"])])}const v=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_pro/commands.vue"]]);export{v as default}; diff --git a/web/settings/assets/consumption_counter-1c9b3251.js b/web/settings/assets/consumption_counter-1c9b3251.js deleted file mode 100644 index 0704e98ee2..0000000000 --- a/web/settings/assets/consumption_counter-1c9b3251.js +++ /dev/null @@ -1 +0,0 @@ -import{C as d}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as o,l as b,m as c,G as t,E as s,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceOpenwbFlexConsumptionCounter",mixins:[d]},f={class:"device-openwb-flex-consumption-counter"};function g(n,e,w,v,B,x){const l=o("openwb-base-heading"),u=o("openwb-base-alert"),p=o("openwb-base-select-input"),a=o("openwb-base-number-input");return b(),c("div",f,[t(l,null,{default:s(()=>e[2]||(e[2]=[r(" Einstellungen für openWB-Flex Verbrauchszähler ",-1)])),_:1,__:[2]}),t(u,{subtype:"info"},{default:s(()=>e[3]||(e[3]=[r(" Bei saldierenden Zählern (B23) werden die Zählerstände für Einspeisung und Bezug aus dem Zähler ausgelesen. Bei Zählern, die nicht saldierend arbeiten (SDM120, SDM630, SDM72D-M), wird der Zählerstand für den Bezug aus dem Zähler ausgelesen. Eine Messung der Einspeisung ist nicht möglich. ",-1)])),_:1,__:[3]}),t(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:"sdm120",text:"SDM120"},{value:"sdm630",text:"SDM630/SDM72D-M"},{value:"b23",text:"B23"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.version"))},null,8,["model-value"]),t(a,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":n.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.id"))},null,8,["model-value"])])}const z=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/consumption_counter.vue"]]);export{z as default}; diff --git a/web/settings/assets/consumption_counter-4f8ba92c.js b/web/settings/assets/consumption_counter-4f8ba92c.js new file mode 100644 index 0000000000..2d1286a8e5 --- /dev/null +++ b/web/settings/assets/consumption_counter-4f8ba92c.js @@ -0,0 +1 @@ +import{C as d}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as o,l as b,m as c,G as t,E as s,B as r}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceOpenwbFlexConsumptionCounter",mixins:[d]},f={class:"device-openwb-flex-consumption-counter"};function g(n,e,w,v,B,x){const l=o("openwb-base-heading"),u=o("openwb-base-alert"),p=o("openwb-base-select-input"),a=o("openwb-base-number-input");return b(),c("div",f,[t(l,null,{default:s(()=>[...e[2]||(e[2]=[r(" Einstellungen für openWB-Flex Verbrauchszähler ",-1)])]),_:1}),t(u,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[r(" Bei saldierenden Zählern (B23) werden die Zählerstände für Einspeisung und Bezug aus dem Zähler ausgelesen. Bei Zählern, die nicht saldierend arbeiten (SDM120, SDM630, SDM72D-M), wird der Zählerstand für den Bezug aus dem Zähler ausgelesen. Eine Messung der Einspeisung ist nicht möglich. ",-1)])]),_:1}),t(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:"sdm120",text:"SDM120"},{value:"sdm630",text:"SDM630/SDM72D-M"},{value:"b23",text:"B23"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.version"))},null,8,["model-value"]),t(a,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":n.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.id"))},null,8,["model-value"])])}const z=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/consumption_counter.vue"]]);export{z as default}; diff --git a/web/settings/assets/counter-01d8e9a4.js b/web/settings/assets/counter-01d8e9a4.js deleted file mode 100644 index c8696db17b..0000000000 --- a/web/settings/assets/counter-01d8e9a4.js +++ /dev/null @@ -1 +0,0 @@ -import{C as r}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as t,l,m as u,G as n,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbEvukitCounter",mixins:[r]},_={class:"device-openwb-evukit-counter"};function v(o,e,f,b,w,x){const i=t("openwb-base-heading"),s=t("openwb-base-select-input");return l(),u("div",_,[n(i,null,{default:m(()=>e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Zähler ",-1)])),_:1,__:[1]}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:3,text:"B23"},{value:1,text:"Lovato"},{value:0,text:"MPM3PM"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.version"))},null,8,["model-value"])])}const $=a(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/counter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/counter-1346ff10.js b/web/settings/assets/counter-1346ff10.js deleted file mode 100644 index 070935af13..0000000000 --- a/web/settings/assets/counter-1346ff10.js +++ /dev/null @@ -1 +0,0 @@ -import{C as d}from"./HardwareInstallation-be759b0c.js";import{_ as a,u,l as f,m as g,G as l,E as o,B as t,A as e,F as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceMqttCounter",mixins:[d]},B={class:"device-mqtt-counter"};function k(i,n,z,x,W,v){const p=u("openwb-base-heading"),s=u("openwb-base-copy-to-clipboard"),m=u("openwb-base-alert");return f(),g("div",B,[l(p,null,{default:o(()=>n[0]||(n[0]=[t(" Einstellungen für MQTT Zähler ",-1)])),_:1,__:[0]}),l(m,{subtype:"info"},{default:o(()=>[n[41]||(n[41]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/power ",1)]),_:1}),n[1]||(n[1]=e("br",null,null,-1)),n[2]||(n[2]=t(" Bezugsleistung in Watt, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, positiv Bezug, negativ Einspeisung",-1)),n[3]||(n[3]=e("br",null,null,-1)),n[4]||(n[4]=t(" Beispiel: ",-1)),n[5]||(n[5]=e("span",{class:"text-info"},"-123.45",-1))])]),n[42]||(n[42]=t(" Falls keine Werte für die Zählerstände übermittelt werden, berechnet openWB die Zählerstände anhand der Leistung. ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/imported ",1)]),_:1}),n[6]||(n[6]=e("br",null,null,-1)),n[7]||(n[7]=t(" Bezogene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),n[8]||(n[8]=e("br",null,null,-1)),n[9]||(n[9]=t(" Beispiel: ",-1)),n[10]||(n[10]=e("span",{class:"text-info"},"123.45",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/exported ",1)]),_:1}),n[11]||(n[11]=e("br",null,null,-1)),n[12]||(n[12]=t(" Eingespeiste Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),n[13]||(n[13]=e("br",null,null,-1)),n[14]||(n[14]=t(" Beispiel: ",-1)),n[15]||(n[15]=e("span",{class:"text-info"},"123.45",-1))])]),n[43]||(n[43]=t(" Ströme je Phase sind für phasenbasiertes Lastmanagement unbedingt erforderlich, sonst erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung am EVU-Punkt: ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/currents ",1)]),_:1}),n[16]||(n[16]=e("br",null,null,-1)),n[17]||(n[17]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),n[18]||(n[18]=e("br",null,null,-1)),n[19]||(n[19]=t(" Beispiel: ",-1)),n[20]||(n[20]=e("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])]),n[44]||(n[44]=t(" Die Netzfrequenz, Spannungen, Leistungen und Leistungsfaktoren jeder Phase werden ausschließlich zu Anzeigezwecken verwendet: ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/frequency ",1)]),_:1}),n[21]||(n[21]=e("br",null,null,-1)),n[22]||(n[22]=t(" Netzfrequenz in Hz, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen",-1)),n[23]||(n[23]=e("br",null,null,-1)),n[24]||(n[24]=t(" Beispiel: ",-1)),n[25]||(n[25]=e("span",{class:"text-info"},"50.12",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/voltages ",1)]),_:1}),n[26]||(n[26]=e("br",null,null,-1)),n[27]||(n[27]=t(" Array mit den Spannungen je Phase in Volt, mit Nachkommastellen (Float)",-1)),n[28]||(n[28]=e("br",null,null,-1)),n[29]||(n[29]=t(" Beispiel: ",-1)),n[30]||(n[30]=e("span",{class:"text-info"},"[222.2,223.3,222.3]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/powers ",1)]),_:1}),n[31]||(n[31]=e("br",null,null,-1)),n[32]||(n[32]=t(" Array mit den Leistungen je Phase in Watt, mit Nachkommastellen (Float)",-1)),n[33]||(n[33]=e("br",null,null,-1)),n[34]||(n[34]=t(" Beispiel: ",-1)),n[35]||(n[35]=e("span",{class:"text-info"},"[12.3,23.4,-12.3]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/power_factors ",1)]),_:1}),n[36]||(n[36]=e("br",null,null,-1)),n[37]||(n[37]=t(" Array mit den Leistungsfaktoren je Phase, mit Nachkommastellen (Float), Wertebereich -1 bis 1",-1)),n[38]||(n[38]=e("br",null,null,-1)),n[39]||(n[39]=t(" Beispiel: ",-1)),n[40]||(n[40]=e("span",{class:"text-info"},"[0.95,0.96,-0.95]",-1))])])]),_:1,__:[41,42,43,44]})])}const A=a(b,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/counter.vue"]]);export{A as default}; diff --git a/web/settings/assets/counter-165ce997.js b/web/settings/assets/counter-165ce997.js deleted file mode 100644 index 0767d56bf2..0000000000 --- a/web/settings/assets/counter-165ce997.js +++ /dev/null @@ -1 +0,0 @@ -import{C as d}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as n,l as u,m as c,G as r,E as i,B as o,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceDiscovergyCounter",mixins:[d]},f={class:"device-discovergy-counter"};function g(t,e,v,b,w,x){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return u(),c("div",f,[r(s,null,{default:i(()=>e[1]||(e[1]=[o(" Einstellungen für Discovergy Zähler ",-1)])),_:1,__:[1]}),r(a,{title:"Meter-ID",required:"","model-value":t.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.meter_id"))},{help:i(()=>e[2]||(e[2]=[o(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),l("a",{href:"https://api.discovergy.com/public/v1/meters",target:"_blank",rel:"noopener noreferrer"}," https://api.discovergy.com/public/v1/meters ",-1),o(" aufrufen und dort Benutzername und Passwort eingeben. Hier wird nun u.a. die ID des Zählers angezeigt. ",-1)])),_:1},8,["model-value"])])}const E=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-170c4e9b.js b/web/settings/assets/counter-170c4e9b.js new file mode 100644 index 0000000000..c9ee3769ca --- /dev/null +++ b/web/settings/assets/counter-170c4e9b.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-8066ca79.js";import{_ as u,u as n,l as a,m,G as t,E as d,B as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSunnyBoyCounter",mixins:[p]},_={class:"device-sunnyboy-counter"};function b(o,e,f,v,g,y){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return a(),m("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für SMA Sunny Boy/Tripower Zähler ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const h=u(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/counter.vue"]]);export{h as default}; diff --git a/web/settings/assets/counter-189db4df.js b/web/settings/assets/counter-189db4df.js deleted file mode 100644 index f63bc0636e..0000000000 --- a/web/settings/assets/counter-189db4df.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as t,l as _,m as c,G as o,E as s,B as l,A as n,F as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceShellyCounter",mixins:[p]},f={class:"device-shelly-counter"},h={class:"small"};function b(r,e,g,y,v,w){const i=t("openwb-base-heading"),a=t("openwb-base-alert");return _(),c("div",f,[o(i,null,{default:s(()=>[e[0]||(e[0]=l(" Einstellungen für Shelly Zähler ",-1)),n("span",h,"(Modul: "+u(r.$options.name)+")",1)]),_:1,__:[0]}),o(a,{subtype:"info"},{default:s(()=>e[1]||(e[1]=[n("span",{class:"text-danger"}," Als EVU-Zähler werden nur dreiphasige Shelly unterstützt (z.B. Shelly 3EM, Shelly Pro 3EM)",-1),n("br",null,null,-1),l(" Diese Komponente benötigt keine Einstellungen. ",-1)])),_:1,__:[1]})])}const D=m(d,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/shelly/shelly/counter.vue"]]);export{D as default}; diff --git a/web/settings/assets/counter-19c86db9.js b/web/settings/assets/counter-19c86db9.js new file mode 100644 index 0000000000..3b7fc31c60 --- /dev/null +++ b/web/settings/assets/counter-19c86db9.js @@ -0,0 +1 @@ +import{C as d}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as o,l as b,m as c,G as t,E as r,B as s}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceOpenwbFlexCounter",mixins:[d]},_={class:"device-openwb-flex-counter"};function v(n,e,w,g,M,x){const l=o("openwb-base-heading"),a=o("openwb-base-alert"),p=o("openwb-base-select-input"),u=o("openwb-base-number-input");return b(),c("div",_,[t(l,null,{default:r(()=>[...e[2]||(e[2]=[s(" Einstellungen für openWB-Flex Zähler ",-1)])]),_:1}),t(a,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[s(" Bei saldierenden Zählern (MPM3PM, B23) werden die Zählerstände für Einspeisung und Bezug aus dem Zähler ausgelesen. Bei Zählern, die nicht saldierend arbeiten (Lovato, SDM630, SDM72D-M), werden die Zählerstände von der openWB berechnet. ",-1)])]),_:1}),t(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:3,text:"B23"},{value:1,text:"Lovato"},{value:0,text:"MPM3PM"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.version"))},null,8,["model-value"]),t(u,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":n.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.id"))},null,8,["model-value"])])}const $=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/counter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/counter-1d22e45e.js b/web/settings/assets/counter-1d22e45e.js new file mode 100644 index 0000000000..9d0d606ed7 --- /dev/null +++ b/web/settings/assets/counter-1d22e45e.js @@ -0,0 +1 @@ +import{C as d}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as n,l as u,m as c,G as r,E as i,B as o,A as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceDiscovergyCounter",mixins:[d]},g={class:"device-discovergy-counter"};function _(t,e,v,b,w,x){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return u(),c("div",g,[r(s,null,{default:i(()=>[...e[1]||(e[1]=[o(" Einstellungen für Discovergy Zähler ",-1)])]),_:1}),r(a,{title:"Meter-ID",required:"","model-value":t.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.meter_id"))},{help:i(()=>[...e[2]||(e[2]=[o(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),l("a",{href:"https://api.discovergy.com/public/v1/meters",target:"_blank",rel:"noopener noreferrer"}," https://api.discovergy.com/public/v1/meters ",-1),o(" aufrufen und dort Benutzername und Passwort eingeben. Hier wird nun u.a. die ID des Zählers angezeigt. ",-1)])]),_:1},8,["model-value"])])}const E=m(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-1f565ee4.js b/web/settings/assets/counter-1f565ee4.js deleted file mode 100644 index 837a83d21e..0000000000 --- a/web/settings/assets/counter-1f565ee4.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as l,u as t,l as m,m as d,G as o,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceVirtualCounter",mixins:[p]},_={class:"device-virtual-counter"};function f(n,e,b,g,v,h){const s=t("openwb-base-heading"),a=t("openwb-base-number-input");return m(),d("div",_,[o(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für virtuelle Zähler ",-1)])),_:1,__:[1]}),o(a,{title:"Zusätzlicher Verbrauch",min:0,step:.05,unit:"kW",required:"","model-value":n.component.configuration.external_consumption/1e3,"onUpdate:modelValue":e[0]||(e[0]=u=>n.updateConfiguration(u*1e3,"configuration.external_consumption"))},{help:i(()=>e[2]||(e[2]=[r(" Die hier angegebene Leistung wird pauschal zu dem Leistungen der hinter dem Zähler liegenden Komponenten addiert. Damit lässt sich z. B. eine Reserve für nicht erfasste Verbraucher einstellen. ",-1)])),_:1},8,["model-value"])])}const E=l(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/virtual/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-21bc2bc2.js b/web/settings/assets/counter-21bc2bc2.js deleted file mode 100644 index 8e90d0f49a..0000000000 --- a/web/settings/assets/counter-21bc2bc2.js +++ /dev/null @@ -1 +0,0 @@ -import{C as s}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as n,l as m,m as u,G as t,E as l,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceAvmCounter",mixins:[s]},_={class:"device-avm-counter"};function f(o,e,v,b,x,g){const i=n("openwb-base-heading"),r=n("openwb-base-text-input");return m(),u("div",_,[t(i,null,{default:l(()=>e[1]||(e[1]=[c(" Einstellungen für AVM Fritz!Box Zähler ",-1)])),_:1,__:[1]}),t(r,{title:"Gerätename in der Fritz!Box",required:"","model-value":o.component.configuration.name,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.name"))},null,8,["model-value"])])}const A=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/avm/avm/counter.vue"]]);export{A as default}; diff --git a/web/settings/assets/counter-2438b11a.js b/web/settings/assets/counter-2438b11a.js deleted file mode 100644 index 6dd5e9f119..0000000000 --- a/web/settings/assets/counter-2438b11a.js +++ /dev/null @@ -1 +0,0 @@ -import{C as t}from"./HardwareInstallation-be759b0c.js";import{_ as n,u as r,l as s,m as a,G as i,E as p,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceCarloGavazziCounter",mixins:[t]},_={class:"device-carlo-gavazzi-counter"};function l(u,e,d,v,f,z){const o=r("openwb-base-alert");return s(),a("div",_,[i(o,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[c(" ModbusTCP muss aktiviert sein. ",-1)])),_:1,__:[0]})])}const G=n(m,[["render",l],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/carlo_gavazzi/carlo_gavazzi/counter.vue"]]);export{G as default}; diff --git a/web/settings/assets/counter-29be21bf.js b/web/settings/assets/counter-29be21bf.js new file mode 100644 index 0000000000..839a33c15a --- /dev/null +++ b/web/settings/assets/counter-29be21bf.js @@ -0,0 +1 @@ +import{C as o}from"./HardwareInstallation-8066ca79.js";import{_ as n,u as r,l as s,m as i,G as a,E as p,B as m}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceThermiaCounter",mixins:[o]},_={class:"device-thermia-counter"};function u(d,e,f,l,v,b){const t=r("openwb-base-alert");return s(),i("div",_,[a(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[m(" ModbusTCP muss aktiviert sein. ",-1)])]),_:1})])}const E=n(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/thermia/thermia/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-2aac942b.js b/web/settings/assets/counter-2aac942b.js deleted file mode 100644 index 1698abb7f5..0000000000 --- a/web/settings/assets/counter-2aac942b.js +++ /dev/null @@ -1 +0,0 @@ -import{C as o}from"./HardwareInstallation-be759b0c.js";import{_ as s,u as n,l as r,m as i,G as a,E as p,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceKostalSemCounter",mixins:[o]},l={class:"device-kostal-sem-counter"};function _(d,e,u,f,b,h){const t=n("openwb-base-alert");return r(),i("div",l,[a(t,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[c(" Diese Komponente ist nur richtig, wenn der Zähler NICHT direkt am Wechselrichter (Kostal Plenticore) angeschlossen ist und daher separat abgefragt werden muss. ",-1)])),_:1,__:[0]})])}const N=s(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_sem/counter.vue"]]);export{N as default}; diff --git a/web/settings/assets/counter-2abab92c.js b/web/settings/assets/counter-2abab92c.js new file mode 100644 index 0000000000..3dc678f3c5 --- /dev/null +++ b/web/settings/assets/counter-2abab92c.js @@ -0,0 +1 @@ +import{C as m}from"./HardwareInstallation-8066ca79.js";import{_ as d,u as r,l as p,m as f,G as n,E as s,B as a}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSolaredgeCounter",mixins:[m]},b={class:"device-solaredge-counter"};function c(o,e,_,v,w,C){const l=r("openwb-base-heading"),u=r("openwb-base-alert"),i=r("openwb-base-number-input");return p(),f("div",b,[n(l,null,{default:s(()=>[...e[2]||(e[2]=[a(" Einstellungen für SolarEdge Zähler ",-1)])]),_:1}),n(u,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[a(" Hierfür muss ein EVU-Zähler am SolarEdge Wechselrichter per Modbus angebunden sein. Der Zähler muss an erster Position im Wechselrichter konfiguriert sein. ",-1)])]),_:1}),n(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),n(i,{title:"SolarEdge-Meter-ID","model-value":o.component.configuration.meter_id,min:"1",max:"255",required:"","onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.meter_id"))},null,8,["model-value"])])}const M=d(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/counter.vue"]]);export{M as default}; diff --git a/web/settings/assets/counter-2b8e7c78.js b/web/settings/assets/counter-2b8e7c78.js new file mode 100644 index 0000000000..0a77012ebd --- /dev/null +++ b/web/settings/assets/counter-2b8e7c78.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-8066ca79.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceFoxEssCounter",mixins:[p]},c={class:"device-fox_ess-counter"};function f(o,e,b,x,v,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für FoxEss Zähler ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const F=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/counter.vue"]]);export{F as default}; diff --git a/web/settings/assets/counter-32894ee7.js b/web/settings/assets/counter-32894ee7.js deleted file mode 100644 index 8788662956..0000000000 --- a/web/settings/assets/counter-32894ee7.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOrnoCounter",mixins:[p]},_={class:"device-orno-counter"};function b(e,o,f,v,g,C){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",_,[t(r,null,{default:d(()=>o[1]||(o[1]=[l(" Einstellungen für Orno WE-514 Zähler ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":e.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[0]||(o[0]=s=>e.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const M=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/orno/orno/counter.vue"]]);export{M as default}; diff --git a/web/settings/assets/counter-332c42a7.js b/web/settings/assets/counter-332c42a7.js deleted file mode 100644 index 1015ec4739..0000000000 --- a/web/settings/assets/counter-332c42a7.js +++ /dev/null @@ -1 +0,0 @@ -import{C as o}from"./HardwareInstallation-be759b0c.js";import{_ as n,u as i,l as s,m as a,G as r,E as p,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceJanitzaBat",mixins:[o]},_={class:"device-janitza-counter"};function u(d,e,f,l,v,b){const t=i("openwb-base-alert");return s(),a("div",_,[r(t,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[c(' ModbusTCP muss im Janitza auf Port 502 aktiv und die ID auf "1" eingestellt sein. ',-1)])),_:1,__:[0]})])}const D=n(m,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/janitza/janitza/counter.vue"]]);export{D as default}; diff --git a/web/settings/assets/counter-37d67776.js b/web/settings/assets/counter-37d67776.js deleted file mode 100644 index bb023193b6..0000000000 --- a/web/settings/assets/counter-37d67776.js +++ /dev/null @@ -1 +0,0 @@ -import{C as m}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as o,l as d,m as l,G as t,E as i,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceEnphaseCounter",mixins:[m]},_={class:"device-enphase-counter"};function f(n,e,b,v,g,E){const p=o("openwb-base-heading"),r=o("openwb-base-number-input");return d(),l("div",_,[t(p,null,{default:i(()=>e[1]||(e[1]=[s(" Einstellungen für Enphase Envoy / IQ Gateway Zähler ",-1)])),_:1,__:[1]}),t(r,{title:"EID",required:"","model-value":n.component.configuration.eid,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.eid"))},{help:i(()=>e[2]||(e[2]=[s(' EID für "net-consumption" ',-1)])),_:1},8,["model-value"])])}const k=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/counter.vue"]]);export{k as default}; diff --git a/web/settings/assets/counter-3a72c8c9.js b/web/settings/assets/counter-3a72c8c9.js new file mode 100644 index 0000000000..e0b944ef54 --- /dev/null +++ b/web/settings/assets/counter-3a72c8c9.js @@ -0,0 +1 @@ +import{C as o}from"./HardwareInstallation-8066ca79.js";import{_ as s,u as n,l as r,m as i,G as a,E as p,B as c}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceKostalSemCounter",mixins:[o]},l={class:"device-kostal-sem-counter"};function d(_,e,u,f,b,h){const t=n("openwb-base-alert");return r(),i("div",l,[a(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[c(" Diese Komponente ist nur richtig, wenn der Zähler NICHT direkt am Wechselrichter (Kostal Plenticore) angeschlossen ist und daher separat abgefragt werden muss. ",-1)])]),_:1})])}const N=s(m,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_sem/counter.vue"]]);export{N as default}; diff --git a/web/settings/assets/counter-3c133de8.js b/web/settings/assets/counter-3c133de8.js deleted file mode 100644 index 65d6782434..0000000000 --- a/web/settings/assets/counter-3c133de8.js +++ /dev/null @@ -1 +0,0 @@ -import{C as a}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as n,l as d,m as c,G as t,E as i,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceMTecCounter",mixins:[a]},_={class:"device-mtec-counter"};function b(o,e,f,v,g,C){const r=n("openwb-base-heading"),m=n("openwb-base-number-input");return d(),c("div",_,[t(r,null,{default:i(()=>e[1]||(e[1]=[s(" Einstellungen für M-Tec Zähler ",-1)])),_:1,__:[1]}),t(m,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>e[2]||(e[2]=[s(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])),_:1},8,["model-value"])])}const k=u(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/counter.vue"]]);export{k as default}; diff --git a/web/settings/assets/counter-3ca7ffbd.js b/web/settings/assets/counter-3ca7ffbd.js new file mode 100644 index 0000000000..09a6016349 --- /dev/null +++ b/web/settings/assets/counter-3ca7ffbd.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-8066ca79.js";import{_ as l,u as t,l as m,m as d,G as o,E as i,B as r}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceVirtualCounter",mixins:[p]},_={class:"device-virtual-counter"};function f(n,e,b,g,v,h){const s=t("openwb-base-heading"),a=t("openwb-base-number-input");return m(),d("div",_,[o(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für virtuelle Zähler ",-1)])]),_:1}),o(a,{title:"Zusätzlicher Verbrauch",min:0,step:.05,unit:"kW",required:"","model-value":n.component.configuration.external_consumption/1e3,"onUpdate:modelValue":e[0]||(e[0]=u=>n.updateConfiguration(u*1e3,"configuration.external_consumption"))},{help:i(()=>[...e[2]||(e[2]=[r(" Die hier angegebene Leistung wird pauschal zu dem Leistungen der hinter dem Zähler liegenden Komponenten addiert. Damit lässt sich z. B. eine Reserve für nicht erfasste Verbraucher einstellen. ",-1)])]),_:1},8,["model-value"])])}const E=l(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/virtual/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-3e1bf7f1.js b/web/settings/assets/counter-3e1bf7f1.js deleted file mode 100644 index 2beeeb1c19..0000000000 --- a/web/settings/assets/counter-3e1bf7f1.js +++ /dev/null @@ -1 +0,0 @@ -import{C as t}from"./HardwareInstallation-be759b0c.js";import{_ as o,u as s,l as i,m as r,G as a,E as p,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSonnenbatterieCounter",mixins:[t]},_={class:"device-sonnenbatterie-counter"};function d(l,e,u,f,b,v){const n=s("openwb-base-alert");return i(),r("div",_,[a(n,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[m(" Mit diesem Modul ist kein phasenbasiertes Lastmanagement möglich, da keine Ströme der einzelnen Phasen gemessen werden. ",-1)])),_:1,__:[0]})])}const E=o(c,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-41e364f6.js b/web/settings/assets/counter-41e364f6.js new file mode 100644 index 0000000000..fcaec3756f --- /dev/null +++ b/web/settings/assets/counter-41e364f6.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-8066ca79.js";import{_ as a,u as t,l as m,m as l,G as i,E as d,B as c}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceVictronCounter",mixins:[p]},_={class:"device-victron-counter"};function f(o,e,g,v,C,V){const r=t("openwb-base-heading"),u=t("openwb-base-number-input"),s=t("openwb-base-button-group-input");return m(),l("div",_,[i(r,null,{default:d(()=>[...e[2]||(e[2]=[c(" Einstellungen für Victron Zähler ",-1)])]),_:1}),i(u,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(s,{title:"Messgerät",buttons:[{buttonValue:!1,text:"AC-In Victron GX"},{buttonValue:!0,text:"Energy Meter"}],"model-value":o.component.configuration.energy_meter,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.energy_meter"))},null,8,["model-value"])])}const G=a(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/counter.vue"]]);export{G as default}; diff --git a/web/settings/assets/counter-4829f82d.js b/web/settings/assets/counter-4829f82d.js new file mode 100644 index 0000000000..abe1bb5ad5 --- /dev/null +++ b/web/settings/assets/counter-4829f82d.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-8066ca79.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceDeyeCounter",mixins:[p]},_={class:"device-deye-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Deye Zähler ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const k=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/counter.vue"]]);export{k as default}; diff --git a/web/settings/assets/counter-4c3ca39c.js b/web/settings/assets/counter-4c3ca39c.js new file mode 100644 index 0000000000..97ed276824 --- /dev/null +++ b/web/settings/assets/counter-4c3ca39c.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-8066ca79.js";import{_ as u,u as t,l as a,m as l,G as n,E as m,B as d}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DevicePowerdogCounter",mixins:[p]},_={class:"device-powerdog-counter"};function b(e,o,f,g,v,w){const i=t("openwb-base-heading"),r=t("openwb-base-button-group-input");return a(),l("div",_,[n(i,null,{default:m(()=>[...o[1]||(o[1]=[d(" Einstellungen für Powerdog Zähler ",-1)])]),_:1}),n(r,{title:"Einbau-Position",buttons:[{buttonValue:!1,text:"Hausverbrauch"},{buttonValue:!0,text:"EVU-Punkt"}],"model-value":e.component.configuration.position_evu,"onUpdate:modelValue":o[0]||(o[0]=s=>e.updateConfiguration(s,"configuration.position_evu"))},null,8,["model-value"])])}const N=u(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/powerdog/counter.vue"]]);export{N as default}; diff --git a/web/settings/assets/counter-4eb55d38.js b/web/settings/assets/counter-4eb55d38.js new file mode 100644 index 0000000000..ccb8840bbc --- /dev/null +++ b/web/settings/assets/counter-4eb55d38.js @@ -0,0 +1 @@ +import{C as s}from"./HardwareInstallation-8066ca79.js";import{_ as p,u as n,l as m,m as u,G as t,E as l,B as c}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceAvmCounter",mixins:[s]},_={class:"device-avm-counter"};function f(o,e,v,b,x,g){const i=n("openwb-base-heading"),r=n("openwb-base-text-input");return m(),u("div",_,[t(i,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für AVM Fritz!Box Zähler ",-1)])]),_:1}),t(r,{title:"Gerätename in der Fritz!Box",required:"","model-value":o.component.configuration.name,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.name"))},null,8,["model-value"])])}const A=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/avm/avm/counter.vue"]]);export{A as default}; diff --git a/web/settings/assets/counter-57c49ae6.js b/web/settings/assets/counter-57c49ae6.js deleted file mode 100644 index 85699f4d8e..0000000000 --- a/web/settings/assets/counter-57c49ae6.js +++ /dev/null @@ -1 +0,0 @@ -import{C as r}from"./HardwareInstallation-be759b0c.js";import{_ as s,u as n,l as i,m as a,G as p,E as c,B as o,A as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceKostalPikoCounter",mixins:[r]},u={class:"device-kostal-piko-counter"};function _(d,e,f,b,h,k){const t=n("openwb-base-alert");return i(),a("div",u,[p(t,{subtype:"info"},{default:c(()=>e[0]||(e[0]=[o(" Wenn der Zähler im Hausverbrauchs-Zweig installiert ist, muss die Hierarchie wie im ",-1),m("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"},"Wiki für Hausverbrauchs-Zähler",-1),o(" beschrieben, angeordnet werden. ",-1)])),_:1,__:[0]})])}const $=s(l,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/counter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/counter-5cd5b153.js b/web/settings/assets/counter-5cd5b153.js new file mode 100644 index 0000000000..e80c4deaec --- /dev/null +++ b/web/settings/assets/counter-5cd5b153.js @@ -0,0 +1 @@ +import{C as u}from"./HardwareInstallation-8066ca79.js";import{_ as l,u as t,l as m,m as c,G as r,E as i,B as n,A as s}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const f={name:"DevicePowerfoxCounter",mixins:[u]},b={class:"device-powerfox-counter"};function g(o,e,w,_,x,h){const a=t("openwb-base-heading"),p=t("openwb-base-text-input");return m(),c("div",b,[r(a,null,{default:i(()=>[...e[1]||(e[1]=[n(" Einstellungen für Powerfox Zähler ",-1)])]),_:1}),r(p,{title:"ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=d=>o.updateConfiguration(d,"configuration.id"))},{help:i(()=>[...e[2]||(e[2]=[n(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),s("a",{href:"https://backend.powerfox.energy/api/2.0/my/all/devices",target:"_blank",rel:"noopener noreferrer"}," https://backend.powerfox.energy/api/2.0/my/all/devices ",-1),n(" aufrufen und dort Benutzername und Passwort eingeben. Die DeviceID ist exakt so einzutragen, wie in der Antwort des Servers. Das bedeutet insbesondere auch, die Groß-/Kleinschreibung ist zu beachten! In dem Feld ist nur die Zeichenfolge direkt hinter ",-1),s("span",{class:"font-weight-bold text-monospace",style:{display:"contents"}},' "DeviceID" ',-1),n(" ohne den Doppelpunkt und Anführungszeichen einzutragen. ",-1)])]),_:1},8,["model-value"])])}const V=l(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/counter.vue"]]);export{V as default}; diff --git a/web/settings/assets/counter-6e1d95d5.js b/web/settings/assets/counter-6e1d95d5.js deleted file mode 100644 index c8c8d5d232..0000000000 --- a/web/settings/assets/counter-6e1d95d5.js +++ /dev/null @@ -1 +0,0 @@ -import{C as m}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as n,l as d,m as l,G as t,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSigenergyCounter",mixins:[m]},_={class:"device-sigenergy-counter"};function c(o,e,b,f,v,C){const s=n("openwb-base-heading"),p=n("openwb-base-number-input");return d(),l("div",_,[t(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für Sigenergy Zähler ",-1)])),_:1,__:[1]}),t(p,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},{help:i(()=>e[2]||(e[2]=[r(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])),_:1},8,["model-value"])])}const V=u(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/counter.vue"]]);export{V as default}; diff --git a/web/settings/assets/counter-6eb3e0d5.js b/web/settings/assets/counter-6eb3e0d5.js new file mode 100644 index 0000000000..9842c39358 --- /dev/null +++ b/web/settings/assets/counter-6eb3e0d5.js @@ -0,0 +1 @@ +import{C as n}from"./HardwareInstallation-8066ca79.js";import{_ as s,u as a,l as i,m as l,G as m,E as p,A as e,B as r}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolarLogCounter",mixins:[n]},u={class:"device-solar_log-counter"};function d(_,o,g,h,f,b){const t=a("openwb-base-alert");return i(),l("div",u,[m(t,{subtype:"info"},{default:p(()=>[...o[0]||(o[0]=[e("span",{class:"text-danger"},[r(" Solar-Log Zähler geben keine Ströme aus, sodass nur ein Lastmanagement anhand der Gesamtleistung, aber nicht phasenbasiert möglich ist."),e("br")],-1),r(" Solar-Log Zähler sind Hausverbrauchs-Zähler. Um die Werte am EVU-Punkt zu ermitteln, muss ein virtueller Zähler konfiguriert werden. Eine Beispiel-Konfiguration mit Solar-Log Zähler findest Du im ",-1),e("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Z%C3%A4hler",target:"_blank",rel:"noopener noreferrer"}," Wiki für Hausverbrauchs-Zähler ",-1),r(". ",-1)])]),_:1})])}const E=s(c,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/solar_log/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-70b03053.js b/web/settings/assets/counter-70b03053.js deleted file mode 100644 index 8434e5d215..0000000000 --- a/web/settings/assets/counter-70b03053.js +++ /dev/null @@ -1 +0,0 @@ -import{C as r}from"./HardwareInstallation-be759b0c.js";import{_ as n,u as s,l as i,m as a,G as c,E as p,B as o,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceKostalPlenticoreCounter",mixins:[r]},u={class:"device-kostal-plenticore-counter"};function _(d,e,f,b,h,v){const t=s("openwb-base-alert");return i(),a("div",u,[c(t,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[o(" Wenn der Zähler im Hausverbrauchs-Zweig installiert ist, muss die Hierarchie wie im ",-1),l("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"},"Wiki für Hausverbrauchs-Zähler",-1),o(" beschrieben, angeordnet werden. ",-1)])),_:1,__:[0]})])}const $=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/counter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/counter-70de76b4.js b/web/settings/assets/counter-70de76b4.js deleted file mode 100644 index 868a284965..0000000000 --- a/web/settings/assets/counter-70de76b4.js +++ /dev/null @@ -1 +0,0 @@ -import{C as s}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as n,l as u,m as p,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceHuaweiSmartLoggerCounter",mixins:[s]},c={class:"device-huawei-smart-logger-counter"};function g(o,e,b,f,w,v){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return u(),p("div",c,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Zähler ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const H=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/counter.vue"]]);export{H as default}; diff --git a/web/settings/assets/counter-71ead754.js b/web/settings/assets/counter-71ead754.js new file mode 100644 index 0000000000..77ff3402b5 --- /dev/null +++ b/web/settings/assets/counter-71ead754.js @@ -0,0 +1 @@ +import{C as a}from"./HardwareInstallation-8066ca79.js";import{_ as u,u as n,l as d,m as c,G as t,E as i,B as s}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceMTecCounter",mixins:[a]},_={class:"device-mtec-counter"};function b(o,e,f,v,g,C){const r=n("openwb-base-heading"),m=n("openwb-base-number-input");return d(),c("div",_,[t(r,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für M-Tec Zähler ",-1)])]),_:1}),t(m,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[s(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])]),_:1},8,["model-value"])])}const k=u(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/counter.vue"]]);export{k as default}; diff --git a/web/settings/assets/counter-73f9d00b.js b/web/settings/assets/counter-73f9d00b.js new file mode 100644 index 0000000000..844a769bd0 --- /dev/null +++ b/web/settings/assets/counter-73f9d00b.js @@ -0,0 +1 @@ +import{C as a}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as t,l as p,m as u,G as n,E as l,B as d}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmartMeCounter",mixins:[a]},_={class:"device-smart-me-counter"};function f(o,e,b,v,g,x){const r=t("openwb-base-heading"),i=t("openwb-base-text-input");return p(),u("div",_,[n(r,null,{default:l(()=>[...e[1]||(e[1]=[d(" Einstellungen für smart-me Zähler ",-1)])]),_:1}),n(i,{title:"Geräte-ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const G=m(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/counter.vue"]]);export{G as default}; diff --git a/web/settings/assets/counter-7425f1bb.js b/web/settings/assets/counter-7425f1bb.js new file mode 100644 index 0000000000..71a52dcb0d --- /dev/null +++ b/web/settings/assets/counter-7425f1bb.js @@ -0,0 +1 @@ +import{C as m}from"./HardwareInstallation-8066ca79.js";import{_ as u,u as n,l as d,m as l,G as t,E as i,B as r}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSigenergyCounter",mixins:[m]},_={class:"device-sigenergy-counter"};function c(o,e,b,f,v,C){const s=n("openwb-base-heading"),p=n("openwb-base-number-input");return d(),l("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für Sigenergy Zähler ",-1)])]),_:1}),t(p,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[r(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])]),_:1},8,["model-value"])])}const V=u(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/counter.vue"]]);export{V as default}; diff --git a/web/settings/assets/counter-74a6b7f4.js b/web/settings/assets/counter-74a6b7f4.js new file mode 100644 index 0000000000..599d28157f --- /dev/null +++ b/web/settings/assets/counter-74a6b7f4.js @@ -0,0 +1 @@ +import{C as s}from"./HardwareInstallation-8066ca79.js";import{_ as d,u as r,l as m,m as g,G as t,E as l,B as u}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceVZLoggerCounter",mixins:[s]},_={class:"device-vzlogger-counter"};function c(n,e,b,v,w,Z){const a=r("openwb-base-heading"),p=r("openwb-base-alert"),i=r("openwb-base-number-input");return m(),g("div",_,[t(a,null,{default:l(()=>[...e[3]||(e[3]=[u(" Einstellungen für VZLogger Zähler ",-1)])]),_:1}),t(p,{subtype:"info"},{default:l(()=>[...e[4]||(e[4]=[u(' Bitte auf der Shell ausführen: "curl -s IPdesVZLogger:Port | jq .|cat -n" Zählen, in welcher Zeile der gesuchte Wert steht. Bei der ersten Zeile mit 1 anfangen zu zählen. ',-1)])]),_:1}),t(i,{title:"Zeile der Leistung",required:"",min:0,"model-value":n.component.configuration.line_power,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.line_power"))},null,8,["model-value"]),t(i,{title:"Zeile der Einspeisung",min:0,"model-value":n.component.configuration.line_exported,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.line_exported"))},null,8,["model-value"]),t(i,{title:"Zeile des Bezugs",min:0,"model-value":n.component.configuration.line_imported,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.line_imported"))},null,8,["model-value"])])}const U=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/counter.vue"]]);export{U as default}; diff --git a/web/settings/assets/counter-74f24773.js b/web/settings/assets/counter-74f24773.js new file mode 100644 index 0000000000..478c932645 --- /dev/null +++ b/web/settings/assets/counter-74f24773.js @@ -0,0 +1 @@ +import{C as d}from"./HardwareInstallation-8066ca79.js";import{_ as a,u,l as f,m as g,G as l,E as o,B as t,A as e,F as r}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceMqttCounter",mixins:[d]},B={class:"device-mqtt-counter"};function k(i,n,z,x,W,v){const p=u("openwb-base-heading"),s=u("openwb-base-copy-to-clipboard"),m=u("openwb-base-alert");return f(),g("div",B,[l(p,null,{default:o(()=>[...n[0]||(n[0]=[t(" Einstellungen für MQTT Zähler ",-1)])]),_:1}),l(m,{subtype:"info"},{default:o(()=>[n[41]||(n[41]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/power ",1)]),_:1}),n[1]||(n[1]=e("br",null,null,-1)),n[2]||(n[2]=t(" Bezugsleistung in Watt, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, positiv Bezug, negativ Einspeisung",-1)),n[3]||(n[3]=e("br",null,null,-1)),n[4]||(n[4]=t(" Beispiel: ",-1)),n[5]||(n[5]=e("span",{class:"text-info"},"-123.45",-1))])]),n[42]||(n[42]=t(" Falls keine Werte für die Zählerstände übermittelt werden, berechnet openWB die Zählerstände anhand der Leistung. ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/imported ",1)]),_:1}),n[6]||(n[6]=e("br",null,null,-1)),n[7]||(n[7]=t(" Bezogene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),n[8]||(n[8]=e("br",null,null,-1)),n[9]||(n[9]=t(" Beispiel: ",-1)),n[10]||(n[10]=e("span",{class:"text-info"},"123.45",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/exported ",1)]),_:1}),n[11]||(n[11]=e("br",null,null,-1)),n[12]||(n[12]=t(" Eingespeiste Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),n[13]||(n[13]=e("br",null,null,-1)),n[14]||(n[14]=t(" Beispiel: ",-1)),n[15]||(n[15]=e("span",{class:"text-info"},"123.45",-1))])]),n[43]||(n[43]=t(" Ströme je Phase sind für phasenbasiertes Lastmanagement unbedingt erforderlich, sonst erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung am EVU-Punkt: ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/currents ",1)]),_:1}),n[16]||(n[16]=e("br",null,null,-1)),n[17]||(n[17]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),n[18]||(n[18]=e("br",null,null,-1)),n[19]||(n[19]=t(" Beispiel: ",-1)),n[20]||(n[20]=e("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])]),n[44]||(n[44]=t(" Die Netzfrequenz, Spannungen, Leistungen und Leistungsfaktoren jeder Phase werden ausschließlich zu Anzeigezwecken verwendet: ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/frequency ",1)]),_:1}),n[21]||(n[21]=e("br",null,null,-1)),n[22]||(n[22]=t(" Netzfrequenz in Hz, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen",-1)),n[23]||(n[23]=e("br",null,null,-1)),n[24]||(n[24]=t(" Beispiel: ",-1)),n[25]||(n[25]=e("span",{class:"text-info"},"50.12",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/voltages ",1)]),_:1}),n[26]||(n[26]=e("br",null,null,-1)),n[27]||(n[27]=t(" Array mit den Spannungen je Phase in Volt, mit Nachkommastellen (Float)",-1)),n[28]||(n[28]=e("br",null,null,-1)),n[29]||(n[29]=t(" Beispiel: ",-1)),n[30]||(n[30]=e("span",{class:"text-info"},"[222.2,223.3,222.3]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/powers ",1)]),_:1}),n[31]||(n[31]=e("br",null,null,-1)),n[32]||(n[32]=t(" Array mit den Leistungen je Phase in Watt, mit Nachkommastellen (Float)",-1)),n[33]||(n[33]=e("br",null,null,-1)),n[34]||(n[34]=t(" Beispiel: ",-1)),n[35]||(n[35]=e("span",{class:"text-info"},"[12.3,23.4,-12.3]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/counter/"+r(i.component.id)+"/get/power_factors ",1)]),_:1}),n[36]||(n[36]=e("br",null,null,-1)),n[37]||(n[37]=t(" Array mit den Leistungsfaktoren je Phase, mit Nachkommastellen (Float), Wertebereich -1 bis 1",-1)),n[38]||(n[38]=e("br",null,null,-1)),n[39]||(n[39]=t(" Beispiel: ",-1)),n[40]||(n[40]=e("span",{class:"text-info"},"[0.95,0.96,-0.95]",-1))])])]),_:1})])}const A=a(b,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/counter.vue"]]);export{A as default}; diff --git a/web/settings/assets/counter-76544a83.js b/web/settings/assets/counter-76544a83.js deleted file mode 100644 index 61bf2389cf..0000000000 --- a/web/settings/assets/counter-76544a83.js +++ /dev/null @@ -1 +0,0 @@ -import{C as u}from"./HardwareInstallation-be759b0c.js";import{_ as l,u as t,l as m,m as c,G as r,E as i,B as n,A as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DevicePowerfoxCounter",mixins:[u]},_={class:"device-powerfox-counter"};function b(o,e,g,w,x,h){const a=t("openwb-base-heading"),p=t("openwb-base-text-input");return m(),c("div",_,[r(a,null,{default:i(()=>e[1]||(e[1]=[n(" Einstellungen für Powerfox Zähler ",-1)])),_:1,__:[1]}),r(p,{title:"ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=d=>o.updateConfiguration(d,"configuration.id"))},{help:i(()=>e[2]||(e[2]=[n(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),s("a",{href:"https://backend.powerfox.energy/api/2.0/my/all/devices",target:"_blank",rel:"noopener noreferrer"}," https://backend.powerfox.energy/api/2.0/my/all/devices ",-1),n(" aufrufen und dort Benutzername und Passwort eingeben. Die DeviceID ist exakt so einzutragen, wie in der Antwort des Servers. Das bedeutet insbesondere auch, die Groß-/Kleinschreibung ist zu beachten! In dem Feld ist nur die Zeichenfolge direkt hinter ",-1),s("span",{class:"font-weight-bold text-monospace",style:{display:"contents"}},' "DeviceID" ',-1),n(" ohne den Doppelpunkt und Anführungszeichen einzutragen. ",-1)])),_:1},8,["model-value"])])}const V=l(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/counter.vue"]]);export{V as default}; diff --git a/web/settings/assets/counter-7d49c7a6.js b/web/settings/assets/counter-7d49c7a6.js new file mode 100644 index 0000000000..c55f46d9b4 --- /dev/null +++ b/web/settings/assets/counter-7d49c7a6.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-8066ca79.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOrnoCounter",mixins:[p]},_={class:"device-orno-counter"};function b(e,o,f,v,g,C){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",_,[t(r,null,{default:d(()=>[...o[1]||(o[1]=[l(" Einstellungen für Orno WE-514 Zähler ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":e.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[0]||(o[0]=s=>e.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const M=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/orno/orno/counter.vue"]]);export{M as default}; diff --git a/web/settings/assets/counter-81dd5705.js b/web/settings/assets/counter-81dd5705.js deleted file mode 100644 index 243afaf849..0000000000 --- a/web/settings/assets/counter-81dd5705.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as n,l as m,m as u,G as t,E as l,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolisCounter",mixins:[p]},_={class:"device-solis-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:l(()=>e[1]||(e[1]=[d(" Einstellungen für Solis Zähler ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const M=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/counter.vue"]]);export{M as default}; diff --git a/web/settings/assets/counter-8237c33b.js b/web/settings/assets/counter-8237c33b.js new file mode 100644 index 0000000000..ff2e2bbe8c --- /dev/null +++ b/web/settings/assets/counter-8237c33b.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-8066ca79.js";import{_ as u,u as t,l,m as d,G as r,E as i,B as n,A as c}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSmahmCounter",mixins:[p]},f={class:"device-smahm-counter"};function b(o,e,g,v,M,h){const s=t("openwb-base-heading"),a=t("openwb-base-number-input");return l(),d("div",f,[r(s,null,{default:i(()=>[...e[1]||(e[1]=[n(" Einstellungen für SMA-HM/EM Zähler ",-1)])]),_:1}),r(a,{title:"Seriennummer","model-value":o.component.configuration.serials,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.serials"))},{help:i(()=>[...e[2]||(e[2]=[n(" Eine Seriennummer ist nur erforderlich, wenn mehrere SMA HomeManager in Betrieb sind.",-1),c("br",null,null,-1),n(" Funktioniert auch mit Energy Meter anstatt Home Manager. ",-1)])]),_:1},8,["model-value"])])}const A=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_shm/counter.vue"]]);export{A as default}; diff --git a/web/settings/assets/counter-8725308d.js b/web/settings/assets/counter-8725308d.js deleted file mode 100644 index 6ceda9c896..0000000000 --- a/web/settings/assets/counter-8725308d.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as t,l,m as d,G as r,E as i,B as n,A as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSmahmCounter",mixins:[p]},f={class:"device-smahm-counter"};function b(o,e,g,v,M,h){const s=t("openwb-base-heading"),a=t("openwb-base-number-input");return l(),d("div",f,[r(s,null,{default:i(()=>e[1]||(e[1]=[n(" Einstellungen für SMA-HM/EM Zähler ",-1)])),_:1,__:[1]}),r(a,{title:"Seriennummer","model-value":o.component.configuration.serials,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.serials"))},{help:i(()=>e[2]||(e[2]=[n(" Eine Seriennummer ist nur erforderlich, wenn mehrere SMA HomeManager in Betrieb sind.",-1),c("br",null,null,-1),n(" Funktioniert auch mit Energy Meter anstatt Home Manager. ",-1)])),_:1},8,["model-value"])])}const A=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_shm/counter.vue"]]);export{A as default}; diff --git a/web/settings/assets/counter-8950294b.js b/web/settings/assets/counter-8950294b.js deleted file mode 100644 index 5e25c2c141..0000000000 --- a/web/settings/assets/counter-8950294b.js +++ /dev/null @@ -1 +0,0 @@ -import{C as d}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as o,l as b,m as _,G as t,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOpenwbFlexCounter",mixins:[d]},f={class:"device-openwb-flex-counter"};function v(n,e,w,g,M,x){const l=o("openwb-base-heading"),a=o("openwb-base-alert"),p=o("openwb-base-select-input"),u=o("openwb-base-number-input");return b(),_("div",f,[t(l,null,{default:r(()=>e[2]||(e[2]=[s(" Einstellungen für openWB-Flex Zähler ",-1)])),_:1,__:[2]}),t(a,{subtype:"info"},{default:r(()=>e[3]||(e[3]=[s(" Bei saldierenden Zählern (MPM3PM, B23) werden die Zählerstände für Einspeisung und Bezug aus dem Zähler ausgelesen. Bei Zählern, die nicht saldierend arbeiten (Lovato, SDM630, SDM72D-M), werden die Zählerstände von der openWB berechnet. ",-1)])),_:1,__:[3]}),t(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:3,text:"B23"},{value:1,text:"Lovato"},{value:0,text:"MPM3PM"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.version"))},null,8,["model-value"]),t(u,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":n.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.id"))},null,8,["model-value"])])}const $=m(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/counter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/counter-92b65758.js b/web/settings/assets/counter-92b65758.js new file mode 100644 index 0000000000..9ee3f64d06 --- /dev/null +++ b/web/settings/assets/counter-92b65758.js @@ -0,0 +1 @@ +import{C as r}from"./HardwareInstallation-8066ca79.js";import{_ as s,u as n,l as i,m as a,G as p,E as c,B as o,A as m}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceKostalPikoCounter",mixins:[r]},u={class:"device-kostal-piko-counter"};function _(d,e,f,b,h,k){const t=n("openwb-base-alert");return i(),a("div",u,[p(t,{subtype:"info"},{default:c(()=>[...e[0]||(e[0]=[o(" Wenn der Zähler im Hausverbrauchs-Zweig installiert ist, muss die Hierarchie wie im ",-1),m("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"},"Wiki für Hausverbrauchs-Zähler",-1),o(" beschrieben, angeordnet werden. ",-1)])]),_:1})])}const $=s(l,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/counter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/counter-955b7de4.js b/web/settings/assets/counter-955b7de4.js new file mode 100644 index 0000000000..a442ae8b58 --- /dev/null +++ b/web/settings/assets/counter-955b7de4.js @@ -0,0 +1 @@ +import{C as r}from"./HardwareInstallation-8066ca79.js";import{_ as n,u as s,l as i,m as a,G as c,E as p,B as o,A as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceKostalPlenticoreCounter",mixins:[r]},u={class:"device-kostal-plenticore-counter"};function _(d,e,f,b,h,v){const t=s("openwb-base-alert");return i(),a("div",u,[c(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[o(" Wenn der Zähler im Hausverbrauchs-Zweig installiert ist, muss die Hierarchie wie im ",-1),l("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"},"Wiki für Hausverbrauchs-Zähler",-1),o(" beschrieben, angeordnet werden. ",-1)])]),_:1})])}const $=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/counter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/counter-9a7cb966.js b/web/settings/assets/counter-9a7cb966.js new file mode 100644 index 0000000000..8d4d7cbf7f --- /dev/null +++ b/web/settings/assets/counter-9a7cb966.js @@ -0,0 +1 @@ +import{C as m}from"./HardwareInstallation-8066ca79.js";import{_ as u,u as o,l as d,m as l,G as t,E as i,B as s}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceEnphaseCounter",mixins:[m]},_={class:"device-enphase-counter"};function f(n,e,b,v,g,E){const p=o("openwb-base-heading"),r=o("openwb-base-number-input");return d(),l("div",_,[t(p,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für Enphase Envoy / IQ Gateway Zähler ",-1)])]),_:1}),t(r,{title:"EID",required:"","model-value":n.component.configuration.eid,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.eid"))},{help:i(()=>[...e[2]||(e[2]=[s(' EID für "net-consumption" ',-1)])]),_:1},8,["model-value"])])}const k=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/counter.vue"]]);export{k as default}; diff --git a/web/settings/assets/counter-a4bd8bd6.js b/web/settings/assets/counter-a4bd8bd6.js new file mode 100644 index 0000000000..d5339b8550 --- /dev/null +++ b/web/settings/assets/counter-a4bd8bd6.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-8066ca79.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceNibeCounter",mixins:[p]},b={class:"device-nibe-counter"};function _(o,e,f,v,g,C){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",b,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Nibe Zähler ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=a(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/nibe/nibe/counter.vue"]]);export{D as default}; diff --git a/web/settings/assets/counter-aa5bda67.js b/web/settings/assets/counter-aa5bda67.js deleted file mode 100644 index 2220b9d4ca..0000000000 --- a/web/settings/assets/counter-aa5bda67.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as t,l as m,m as l,G as i,E as d,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceVictronCounter",mixins:[p]},b={class:"device-victron-counter"};function f(o,e,g,v,C,V){const r=t("openwb-base-heading"),u=t("openwb-base-number-input"),s=t("openwb-base-button-group-input");return m(),l("div",b,[i(r,null,{default:d(()=>e[2]||(e[2]=[c(" Einstellungen für Victron Zähler ",-1)])),_:1,__:[2]}),i(u,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(s,{title:"Messgerät",buttons:[{buttonValue:!1,text:"AC-In Victron GX"},{buttonValue:!0,text:"Energy Meter"}],"model-value":o.component.configuration.energy_meter,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.energy_meter"))},null,8,["model-value"])])}const G=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/counter.vue"]]);export{G as default}; diff --git a/web/settings/assets/counter-ac45f9c2.js b/web/settings/assets/counter-ac45f9c2.js deleted file mode 100644 index 8d244af38e..0000000000 --- a/web/settings/assets/counter-ac45f9c2.js +++ /dev/null @@ -1 +0,0 @@ -import{C as s}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as r,l as m,m as g,G as t,E as l,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceVZLoggerCounter",mixins:[s]},_={class:"device-vzlogger-counter"};function c(n,e,b,v,w,Z){const a=r("openwb-base-heading"),p=r("openwb-base-alert"),i=r("openwb-base-number-input");return m(),g("div",_,[t(a,null,{default:l(()=>e[3]||(e[3]=[u(" Einstellungen für VZLogger Zähler ",-1)])),_:1,__:[3]}),t(p,{subtype:"info"},{default:l(()=>e[4]||(e[4]=[u(' Bitte auf der Shell ausführen: "curl -s IPdesVZLogger:Port | jq .|cat -n" Zählen, in welcher Zeile der gesuchte Wert steht. Bei der ersten Zeile mit 1 anfangen zu zählen. ',-1)])),_:1,__:[4]}),t(i,{title:"Zeile der Leistung",required:"",min:0,"model-value":n.component.configuration.line_power,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.line_power"))},null,8,["model-value"]),t(i,{title:"Zeile der Einspeisung",min:0,"model-value":n.component.configuration.line_exported,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.line_exported"))},null,8,["model-value"]),t(i,{title:"Zeile des Bezugs",min:0,"model-value":n.component.configuration.line_imported,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.line_imported"))},null,8,["model-value"])])}const U=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/counter.vue"]]);export{U as default}; diff --git a/web/settings/assets/counter-aeecbad9.js b/web/settings/assets/counter-aeecbad9.js new file mode 100644 index 0000000000..11c5f99acf --- /dev/null +++ b/web/settings/assets/counter-aeecbad9.js @@ -0,0 +1 @@ +import{C as t}from"./HardwareInstallation-8066ca79.js";import{_ as o,u as s,l as i,m as r,G as a,E as p,B as m}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSonnenbatterieCounter",mixins:[t]},d={class:"device-sonnenbatterie-counter"};function _(l,e,u,f,b,v){const n=s("openwb-base-alert");return i(),r("div",d,[a(n,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[m(" Mit diesem Modul ist kein phasenbasiertes Lastmanagement möglich, da keine Ströme der einzelnen Phasen gemessen werden. ",-1)])]),_:1})])}const E=o(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-b24acc4a.js b/web/settings/assets/counter-b24acc4a.js new file mode 100644 index 0000000000..dd170a88dc --- /dev/null +++ b/web/settings/assets/counter-b24acc4a.js @@ -0,0 +1 @@ +import{C as s}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as n,l as u,m as p,G as t,E as d,B as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceHuaweiSmartLoggerCounter",mixins:[s]},_={class:"device-huawei-smart-logger-counter"};function g(o,e,b,f,w,v){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return u(),p("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Zähler ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const H=m(c,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/counter.vue"]]);export{H as default}; diff --git a/web/settings/assets/counter-c21587d3.js b/web/settings/assets/counter-c21587d3.js deleted file mode 100644 index 6570742705..0000000000 --- a/web/settings/assets/counter-c21587d3.js +++ /dev/null @@ -1 +0,0 @@ -import{C as o}from"./HardwareInstallation-be759b0c.js";import{_ as n,u as r,l as s,m as i,G as a,E as p,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceThermiaCounter",mixins:[o]},_={class:"device-thermia-counter"};function u(d,e,f,l,v,b){const t=r("openwb-base-alert");return s(),i("div",_,[a(t,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[m(" ModbusTCP muss aktiviert sein. ",-1)])),_:1,__:[0]})])}const E=n(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/thermia/thermia/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-c7ccca56.js b/web/settings/assets/counter-c7ccca56.js deleted file mode 100644 index b674746759..0000000000 --- a/web/settings/assets/counter-c7ccca56.js +++ /dev/null @@ -1 +0,0 @@ -import{C as n}from"./HardwareInstallation-be759b0c.js";import{_ as s,u as a,l as i,m as l,G as m,E as p,A as e,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolarLogCounter",mixins:[n]},u={class:"device-solar_log-counter"};function _(d,o,g,h,f,b){const t=a("openwb-base-alert");return i(),l("div",u,[m(t,{subtype:"info"},{default:p(()=>o[0]||(o[0]=[e("span",{class:"text-danger"},[r(" Solar-Log Zähler geben keine Ströme aus, sodass nur ein Lastmanagement anhand der Gesamtleistung, aber nicht phasenbasiert möglich ist."),e("br")],-1),r(" Solar-Log Zähler sind Hausverbrauchs-Zähler. Um die Werte am EVU-Punkt zu ermitteln, muss ein virtueller Zähler konfiguriert werden. Eine Beispiel-Konfiguration mit Solar-Log Zähler findest Du im ",-1),e("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Z%C3%A4hler",target:"_blank",rel:"noopener noreferrer"}," Wiki für Hausverbrauchs-Zähler ",-1),r(". ",-1)])),_:1,__:[0]})])}const E=s(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/solar_log/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-c8857016.js b/web/settings/assets/counter-c8857016.js new file mode 100644 index 0000000000..64071fe54e --- /dev/null +++ b/web/settings/assets/counter-c8857016.js @@ -0,0 +1 @@ +import{C as o}from"./HardwareInstallation-8066ca79.js";import{_ as n,u as i,l as s,m as a,G as r,E as p,B as c}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceJanitzaBat",mixins:[o]},u={class:"device-janitza-counter"};function _(d,e,f,l,v,b){const t=i("openwb-base-alert");return s(),a("div",u,[r(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[c(' ModbusTCP muss im Janitza auf Port 502 aktiv und die ID auf "1" eingestellt sein. ',-1)])]),_:1})])}const D=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/janitza/janitza/counter.vue"]]);export{D as default}; diff --git a/web/settings/assets/counter-c8a85756.js b/web/settings/assets/counter-c8a85756.js new file mode 100644 index 0000000000..9b4ae16e0b --- /dev/null +++ b/web/settings/assets/counter-c8a85756.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-8066ca79.js";import{_ as a,u as n,l as m,m as u,G as t,E as l,B as d}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolisCounter",mixins:[p]},_={class:"device-solis-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:l(()=>[...e[1]||(e[1]=[d(" Einstellungen für Solis Zähler ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const M=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/counter.vue"]]);export{M as default}; diff --git a/web/settings/assets/counter-cb484254.js b/web/settings/assets/counter-cb484254.js new file mode 100644 index 0000000000..a328fee2b1 --- /dev/null +++ b/web/settings/assets/counter-cb484254.js @@ -0,0 +1 @@ +import{C as r}from"./HardwareInstallation-8066ca79.js";import{_ as a,u as t,l,m as u,G as n,E as m,B as c}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbEvukitCounter",mixins:[r]},v={class:"device-openwb-evukit-counter"};function _(o,e,f,b,w,x){const i=t("openwb-base-heading"),s=t("openwb-base-select-input");return l(),u("div",v,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Zähler ",-1)])]),_:1}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:3,text:"B23"},{value:1,text:"Lovato"},{value:0,text:"MPM3PM"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.version"))},null,8,["model-value"])])}const $=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/counter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/counter-d5daca07.js b/web/settings/assets/counter-d5daca07.js new file mode 100644 index 0000000000..ee14882229 --- /dev/null +++ b/web/settings/assets/counter-d5daca07.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as t,l as c,m as u,G as o,E as s,B as l,A as n,F as d}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceShellyCounter",mixins:[p]},f={class:"device-shelly-counter"},h={class:"small"};function b(r,e,g,y,v,w){const i=t("openwb-base-heading"),a=t("openwb-base-alert");return c(),u("div",f,[o(i,null,{default:s(()=>[e[0]||(e[0]=l(" Einstellungen für Shelly Zähler ",-1)),n("span",h,"(Modul: "+d(r.$options.name)+")",1)]),_:1}),o(a,{subtype:"info"},{default:s(()=>[...e[1]||(e[1]=[n("span",{class:"text-danger"}," Als EVU-Zähler werden nur dreiphasige Shelly unterstützt (z.B. Shelly 3EM, Shelly Pro 3EM)",-1),n("br",null,null,-1),l(" Diese Komponente benötigt keine Einstellungen. ",-1)])]),_:1})])}const D=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/shelly/shelly/counter.vue"]]);export{D as default}; diff --git a/web/settings/assets/counter-d72adf8c.js b/web/settings/assets/counter-d72adf8c.js deleted file mode 100644 index 1396a272ae..0000000000 --- a/web/settings/assets/counter-d72adf8c.js +++ /dev/null @@ -1 +0,0 @@ -import{C as u}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as s,l as p,m as g,G as i,E as a,B as n,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const h={name:"DeviceHttpCounter",mixins:[u]},b={class:"device-http-counter"};function f(t,e,w,v,k,S){const d=s("openwb-base-heading"),o=s("openwb-base-text-input");return p(),g("div",b,[i(d,null,{default:a(()=>e[6]||(e[6]=[n(" Einstellungen für Http Zähler ",-1)])),_:1,__:[6]}),i(o,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.power_path"))},{help:a(()=>e[7]||(e[7]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])),_:1},8,["model-value"]),i(o,{title:"Pfad für Zählerstand Bezug",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.imported_path,"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateConfiguration(r,"configuration.imported_path"))},{help:a(()=>e[8]||(e[8]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])),_:1},8,["model-value"]),i(o,{title:"Pfad für Zählerstand Einspeisung",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateConfiguration(r,"configuration.exported_path"))},{help:a(()=>e[9]||(e[9]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 1",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l1_path,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateConfiguration(r,"configuration.current_l1_path"))},{help:a(()=>e[10]||(e[10]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 1. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 2",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l2_path,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateConfiguration(r,"configuration.current_l2_path"))},{help:a(()=>e[11]||(e[11]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 2. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 3",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l3_path,"onUpdate:modelValue":e[5]||(e[5]=r=>t.updateConfiguration(r,"configuration.current_l3_path"))},{help:a(()=>e[12]||(e[12]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 3. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])),_:1},8,["model-value"])])}const F=m(h,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/counter.vue"]]);export{F as default}; diff --git a/web/settings/assets/counter-d73a3f9b.js b/web/settings/assets/counter-d73a3f9b.js deleted file mode 100644 index 26ebfb6dd9..0000000000 --- a/web/settings/assets/counter-d73a3f9b.js +++ /dev/null @@ -1 +0,0 @@ -import{C as a}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as t,l as p,m as u,G as n,E as l,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmartMeCounter",mixins:[a]},_={class:"device-smart-me-counter"};function f(o,e,b,v,g,x){const r=t("openwb-base-heading"),i=t("openwb-base-text-input");return p(),u("div",_,[n(r,null,{default:l(()=>e[1]||(e[1]=[d(" Einstellungen für smart-me Zähler ",-1)])),_:1,__:[1]}),n(i,{title:"Geräte-ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const G=m(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/counter.vue"]]);export{G as default}; diff --git a/web/settings/assets/counter-de159ac4.js b/web/settings/assets/counter-de159ac4.js new file mode 100644 index 0000000000..32b3fb8a7e --- /dev/null +++ b/web/settings/assets/counter-de159ac4.js @@ -0,0 +1 @@ +import{C as u}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as s,l as p,m as g,G as i,E as a,B as n,A as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const h={name:"DeviceHttpCounter",mixins:[u]},b={class:"device-http-counter"};function f(t,e,w,v,k,S){const d=s("openwb-base-heading"),o=s("openwb-base-text-input");return p(),g("div",b,[i(d,null,{default:a(()=>[...e[6]||(e[6]=[n(" Einstellungen für Http Zähler ",-1)])]),_:1}),i(o,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.power_path"))},{help:a(()=>[...e[7]||(e[7]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Zählerstand Bezug",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.imported_path,"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateConfiguration(r,"configuration.imported_path"))},{help:a(()=>[...e[8]||(e[8]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Zählerstand Einspeisung",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateConfiguration(r,"configuration.exported_path"))},{help:a(()=>[...e[9]||(e[9]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 1",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l1_path,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateConfiguration(r,"configuration.current_l1_path"))},{help:a(()=>[...e[10]||(e[10]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 1. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 2",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l2_path,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateConfiguration(r,"configuration.current_l2_path"))},{help:a(()=>[...e[11]||(e[11]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 2. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 3",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l3_path,"onUpdate:modelValue":e[5]||(e[5]=r=>t.updateConfiguration(r,"configuration.current_l3_path"))},{help:a(()=>[...e[12]||(e[12]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 3. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"])])}const F=m(h,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/counter.vue"]]);export{F as default}; diff --git a/web/settings/assets/counter-e48f1cfa.js b/web/settings/assets/counter-e48f1cfa.js deleted file mode 100644 index 6cd1837b83..0000000000 --- a/web/settings/assets/counter-e48f1cfa.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceNibeCounter",mixins:[p]},_={class:"device-nibe-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Nibe Zähler ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/nibe/nibe/counter.vue"]]);export{D as default}; diff --git a/web/settings/assets/counter-e7edbb39.js b/web/settings/assets/counter-e7edbb39.js new file mode 100644 index 0000000000..fba3eb7cee --- /dev/null +++ b/web/settings/assets/counter-e7edbb39.js @@ -0,0 +1 @@ +import{C as n}from"./HardwareInstallation-8066ca79.js";import{_ as o,u as s,l as r,m as a,G as i,E as m,B as p}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceTeslaCounter",mixins:[n]},l={class:"device-tesla-counter"};function _(d,e,u,f,v,x){const t=s("openwb-base-alert");return r(),a("div",l,[i(t,{subtype:"info"},{default:m(()=>[...e[0]||(e[0]=[p(" Je nach Firmware-Version ist nur ein Lastmanagement anhand der Gesamtleistung möglich, da nicht alle Firmware-Versionen Phasenströme liefern. ",-1)])]),_:1})])}const E=o(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/tesla/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-eadf5e57.js b/web/settings/assets/counter-eadf5e57.js deleted file mode 100644 index 63e87ba791..0000000000 --- a/web/settings/assets/counter-eadf5e57.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceFoxEssCounter",mixins:[p]},c={class:"device-fox_ess-counter"};function f(o,e,b,x,v,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>e[1]||(e[1]=[_(" Einstellungen für FoxEss Zähler ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const F=a(l,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/counter.vue"]]);export{F as default}; diff --git a/web/settings/assets/counter-f02f171d.js b/web/settings/assets/counter-f02f171d.js deleted file mode 100644 index d06d7a975d..0000000000 --- a/web/settings/assets/counter-f02f171d.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as t,l as a,m as l,G as n,E as m,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DevicePowerdogCounter",mixins:[p]},_={class:"device-powerdog-counter"};function b(e,o,f,g,v,w){const i=t("openwb-base-heading"),r=t("openwb-base-button-group-input");return a(),l("div",_,[n(i,null,{default:m(()=>o[1]||(o[1]=[d(" Einstellungen für Powerdog Zähler ",-1)])),_:1,__:[1]}),n(r,{title:"Einbau-Position",buttons:[{buttonValue:!1,text:"Hausverbrauch"},{buttonValue:!0,text:"EVU-Punkt"}],"model-value":e.component.configuration.position_evu,"onUpdate:modelValue":o[0]||(o[0]=s=>e.updateConfiguration(s,"configuration.position_evu"))},null,8,["model-value"])])}const N=u(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/powerdog/counter.vue"]]);export{N as default}; diff --git a/web/settings/assets/counter-f2628932.js b/web/settings/assets/counter-f2628932.js deleted file mode 100644 index b8c44eb67d..0000000000 --- a/web/settings/assets/counter-f2628932.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as n,l as a,m,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSunnyBoyCounter",mixins:[p]},c={class:"device-sunnyboy-counter"};function b(o,e,f,v,g,y){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return a(),m("div",c,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für SMA Sunny Boy/Tripower Zähler ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const h=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/counter.vue"]]);export{h as default}; diff --git a/web/settings/assets/counter-f47d34d5.js b/web/settings/assets/counter-f47d34d5.js new file mode 100644 index 0000000000..da1fe4b34f --- /dev/null +++ b/web/settings/assets/counter-f47d34d5.js @@ -0,0 +1 @@ +import{C as t}from"./HardwareInstallation-8066ca79.js";import{_ as n,u as r,l as s,m as a,G as i,E as p,B as c}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceCarloGavazziCounter",mixins:[t]},_={class:"device-carlo-gavazzi-counter"};function l(u,e,d,v,f,z){const o=r("openwb-base-alert");return s(),a("div",_,[i(o,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[c(" ModbusTCP muss aktiviert sein. ",-1)])]),_:1})])}const G=n(m,[["render",l],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/carlo_gavazzi/carlo_gavazzi/counter.vue"]]);export{G as default}; diff --git a/web/settings/assets/counter-f5251d3f.js b/web/settings/assets/counter-f5251d3f.js new file mode 100644 index 0000000000..67506c56c4 --- /dev/null +++ b/web/settings/assets/counter-f5251d3f.js @@ -0,0 +1 @@ +import{C as s}from"./HardwareInstallation-8066ca79.js";import{_ as p,u,l as f,m,G as t,E as r,B as a,A as g}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceJsonCounter",mixins:[s]},v={class:"device-json-counter"};function w(o,e,j,q,P,C){const i=u("openwb-base-heading"),l=u("openwb-base-text-input"),d=u("openwb-base-alert");return f(),m("div",v,[t(i,null,{default:r(()=>[...e[15]||(e[15]=[a(" Einstellungen für JSON Zähler ",-1)])]),_:1}),t(l,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":o.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.jq_power"))},{help:r(()=>[...e[16]||(e[16]=[a(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),g("br",null,null,-1),a(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])]),_:1},8,["model-value"]),t(l,{title:"Abfrage für Zählerstand Bezug",subtype:"text","model-value":o.component.configuration.jq_imported,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.jq_imported"))},{help:r(()=>[...e[17]||(e[17]=[a(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"]),t(l,{title:"Abfrage für Zählerstand Einspeisung",subtype:"text","model-value":o.component.configuration.jq_exported,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.jq_exported"))},{help:r(()=>[...e[18]||(e[18]=[a(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"]),t(d,{subtype:"info"},{default:r(()=>[...e[19]||(e[19]=[a(" Werden sowohl Leistung als auch Strom auf den Einzelphasen leer gelassen, erfolgt das Lastmanagement am EVU-Punkt nur anhand der Gesamtleistung am EVU-Punkt. Wird der Zähler als Zwischenzähler verwendet, wird in diesem Fall kein Lastmanagement durchgeführt. ",-1)])]),_:1}),t(l,{title:"Abfrage für Leistung auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_power_l1,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.jq_power_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistung auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_power_l2,"onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.jq_power_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistung auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_power_l3,"onUpdate:modelValue":e[5]||(e[5]=n=>o.updateConfiguration(n,"configuration.jq_power_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_power_factor_l1,"onUpdate:modelValue":e[6]||(e[6]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_power_factor_l2,"onUpdate:modelValue":e[7]||(e[7]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_power_factor_l3,"onUpdate:modelValue":e[8]||(e[8]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_current_l1,"onUpdate:modelValue":e[9]||(e[9]=n=>o.updateConfiguration(n,"configuration.jq_current_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_current_l2,"onUpdate:modelValue":e[10]||(e[10]=n=>o.updateConfiguration(n,"configuration.jq_current_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_current_l3,"onUpdate:modelValue":e[11]||(e[11]=n=>o.updateConfiguration(n,"configuration.jq_current_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_voltage_l1,"onUpdate:modelValue":e[12]||(e[12]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_voltage_l2,"onUpdate:modelValue":e[13]||(e[13]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_voltage_l3,"onUpdate:modelValue":e[14]||(e[14]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l3"))},null,8,["model-value"])])}const E=p(b,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-f54ee4df.js b/web/settings/assets/counter-f54ee4df.js deleted file mode 100644 index 57d3278e05..0000000000 --- a/web/settings/assets/counter-f54ee4df.js +++ /dev/null @@ -1 +0,0 @@ -import{C as m}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as r,l as p,m as _,G as n,E as s,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolaredgeCounter",mixins:[m]},g={class:"device-solaredge-counter"};function b(o,e,c,v,w,C){const l=r("openwb-base-heading"),u=r("openwb-base-alert"),i=r("openwb-base-number-input");return p(),_("div",g,[n(l,null,{default:s(()=>e[2]||(e[2]=[a(" Einstellungen für SolarEdge Zähler ",-1)])),_:1,__:[2]}),n(u,{subtype:"info"},{default:s(()=>e[3]||(e[3]=[a(" Hierfür muss ein EVU-Zähler am SolarEdge Wechselrichter per Modbus angebunden sein. Der Zähler muss an erster Position im Wechselrichter konfiguriert sein. ",-1)])),_:1,__:[3]}),n(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),n(i,{title:"SolarEdge-Meter-ID","model-value":o.component.configuration.meter_id,min:"1",max:"255",required:"","onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.meter_id"))},null,8,["model-value"])])}const M=d(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/counter.vue"]]);export{M as default}; diff --git a/web/settings/assets/counter-f8e5fc32.js b/web/settings/assets/counter-f8e5fc32.js deleted file mode 100644 index 98d4d021e2..0000000000 --- a/web/settings/assets/counter-f8e5fc32.js +++ /dev/null @@ -1 +0,0 @@ -import{C as s}from"./HardwareInstallation-be759b0c.js";import{_ as p,u,l as f,m,G as t,E as r,B as a,A as g}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceJsonCounter",mixins:[s]},v={class:"device-json-counter"};function w(o,e,j,q,_,P){const i=u("openwb-base-heading"),l=u("openwb-base-text-input"),d=u("openwb-base-alert");return f(),m("div",v,[t(i,null,{default:r(()=>e[15]||(e[15]=[a(" Einstellungen für JSON Zähler ",-1)])),_:1,__:[15]}),t(l,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":o.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.jq_power"))},{help:r(()=>e[16]||(e[16]=[a(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),g("br",null,null,-1),a(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])),_:1},8,["model-value"]),t(l,{title:"Abfrage für Zählerstand Bezug",subtype:"text","model-value":o.component.configuration.jq_imported,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.jq_imported"))},{help:r(()=>e[17]||(e[17]=[a(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])),_:1},8,["model-value"]),t(l,{title:"Abfrage für Zählerstand Einspeisung",subtype:"text","model-value":o.component.configuration.jq_exported,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.jq_exported"))},{help:r(()=>e[18]||(e[18]=[a(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])),_:1},8,["model-value"]),t(d,{subtype:"info"},{default:r(()=>e[19]||(e[19]=[a(" Werden sowohl Leistung als auch Strom auf den Einzelphasen leer gelassen, erfolgt das Lastmanagement am EVU-Punkt nur anhand der Gesamtleistung am EVU-Punkt. Wird der Zähler als Zwischenzähler verwendet, wird in diesem Fall kein Lastmanagement durchgeführt. ",-1)])),_:1,__:[19]}),t(l,{title:"Abfrage für Leistung auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_power_l1,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.jq_power_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistung auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_power_l2,"onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.jq_power_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistung auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_power_l3,"onUpdate:modelValue":e[5]||(e[5]=n=>o.updateConfiguration(n,"configuration.jq_power_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_power_factor_l1,"onUpdate:modelValue":e[6]||(e[6]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_power_factor_l2,"onUpdate:modelValue":e[7]||(e[7]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_power_factor_l3,"onUpdate:modelValue":e[8]||(e[8]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_current_l1,"onUpdate:modelValue":e[9]||(e[9]=n=>o.updateConfiguration(n,"configuration.jq_current_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_current_l2,"onUpdate:modelValue":e[10]||(e[10]=n=>o.updateConfiguration(n,"configuration.jq_current_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_current_l3,"onUpdate:modelValue":e[11]||(e[11]=n=>o.updateConfiguration(n,"configuration.jq_current_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_voltage_l1,"onUpdate:modelValue":e[12]||(e[12]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_voltage_l2,"onUpdate:modelValue":e[13]||(e[13]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_voltage_l3,"onUpdate:modelValue":e[14]||(e[14]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l3"))},null,8,["model-value"])])}const E=p(b,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-fdd1cfe4.js b/web/settings/assets/counter-fdd1cfe4.js deleted file mode 100644 index ca0640adef..0000000000 --- a/web/settings/assets/counter-fdd1cfe4.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceDeyeCounter",mixins:[p]},_={class:"device-deye-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Deye Zähler ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const k=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/counter.vue"]]);export{k as default}; diff --git a/web/settings/assets/counter-fdeb4506.js b/web/settings/assets/counter-fdeb4506.js deleted file mode 100644 index 2138858349..0000000000 --- a/web/settings/assets/counter-fdeb4506.js +++ /dev/null @@ -1 +0,0 @@ -import{C as n}from"./HardwareInstallation-be759b0c.js";import{_ as o,u as s,l as r,m as a,G as i,E as m,B as p}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceTeslaCounter",mixins:[n]},l={class:"device-tesla-counter"};function _(d,e,u,f,v,x){const t=s("openwb-base-alert");return r(),a("div",l,[i(t,{subtype:"info"},{default:m(()=>e[0]||(e[0]=[p(" Je nach Firmware-Version ist nur ein Lastmanagement anhand der Gesamtleistung möglich, da nicht alle Firmware-Versionen Phasenströme liefern. ",-1)])),_:1,__:[0]})])}const E=o(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/tesla/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter_consumption-06ae199e.js b/web/settings/assets/counter_consumption-06ae199e.js deleted file mode 100644 index 8c3d0fe236..0000000000 --- a/web/settings/assets/counter_consumption-06ae199e.js +++ /dev/null @@ -1 +0,0 @@ -import{C as s}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as p,l as u,m as d,G as t,E as o,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceSonnenbatterieCounterConsumption",mixins:[s]},m={class:"device-sonnenbatterie-counter-consumption"};function c(i,e,_,f,b,v){const n=p("openwb-base-alert");return u(),d("div",m,[t(n,{subtype:"info"},{default:o(()=>e[0]||(e[0]=[r(" Diese Komponente liest die Daten des Verbrauchszählers der Sonnenbatterie aus, nicht die EVU-Daten! Es ist ggf. ein virtueller Zähler als EVU-Zähler zu konfigurieren, falls kein anderer Zähler vorhanden ist und ausgelesen werden kann. ",-1)])),_:1,__:[0]}),t(n,{subtype:i.device.configuration.variant!==3?"danger":"info"},{default:o(()=>e[1]||(e[1]=[r(" Diese Komponente kann nur in Verbindung mit der JSON-API v2 verwendet werden, da die anderen Schnittstellen die Daten nicht zur Verfügung stellen. ",-1)])),_:1,__:[1]},8,["subtype"])])}const B=a(l,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/counter_consumption.vue"]]);export{B as default}; diff --git a/web/settings/assets/counter_consumption-901cf616.js b/web/settings/assets/counter_consumption-901cf616.js new file mode 100644 index 0000000000..e68aba3937 --- /dev/null +++ b/web/settings/assets/counter_consumption-901cf616.js @@ -0,0 +1 @@ +import{C as s}from"./HardwareInstallation-8066ca79.js";import{_ as a,u as p,l as u,m as d,G as t,E as o,B as r}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceSonnenbatterieCounterConsumption",mixins:[s]},m={class:"device-sonnenbatterie-counter-consumption"};function c(i,e,f,_,b,v){const n=p("openwb-base-alert");return u(),d("div",m,[t(n,{subtype:"info"},{default:o(()=>[...e[0]||(e[0]=[r(" Diese Komponente liest die Daten des Verbrauchszählers der Sonnenbatterie aus, nicht die EVU-Daten! Es ist ggf. ein virtueller Zähler als EVU-Zähler zu konfigurieren, falls kein anderer Zähler vorhanden ist und ausgelesen werden kann. ",-1)])]),_:1}),t(n,{subtype:i.device.configuration.variant!==3?"danger":"info"},{default:o(()=>[...e[1]||(e[1]=[r(" Diese Komponente kann nur in Verbindung mit der JSON-API v2 verwendet werden, da die anderen Schnittstellen die Daten nicht zur Verfügung stellen. ",-1)])]),_:1},8,["subtype"])])}const B=a(l,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/counter_consumption.vue"]]);export{B as default}; diff --git a/web/settings/assets/counter_sm-c036b032.js b/web/settings/assets/counter_sm-c036b032.js new file mode 100644 index 0000000000..161aa6ecd6 --- /dev/null +++ b/web/settings/assets/counter_sm-c036b032.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-8066ca79.js";import{_ as f,u as i,l as g,m as c,G as o,E as a,B as t,A as l,F as b}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceFroniusCounterSM",mixins:[p],computed:{meterRealtimeUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetMeterRealtimeData.cgi?Scope=System`}}}},v={class:"device-fronius-counter-sm"},w=["href"];function D(n,e,M,S,h,s){const m=i("openwb-base-heading"),d=i("openwb-base-select-input"),u=i("openwb-base-number-input");return g(),c("div",v,[o(m,null,{default:a(()=>[...e[2]||(e[2]=[t(" Einstellungen für Fronius SmartMeter ",-1)])]),_:1}),o(d,{title:"Kompatibilitätsmodus","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Aus"},{value:1,text:"Variante 1"},{value:2,text:"Variante 2"}],"model-value":n.component.configuration.variant,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.variant"))},{help:a(()=>[...e[3]||(e[3]=[t(" Gegebenenfalls auch für alte Modelle nach einem Softwareupdate erforderlich. Fronius hat derzeit keine Konsistente Schnittstelle. Speziell beim Gen24 kann Variante 1 oder 2 erforderlich sein. Nach speichern sollten nach etwa 10-20 Sekunden Daten angezeigt werden. Ist dies nicht der Fall die andere Variante ausprobieren. ",-1)])]),_:1},8,["model-value"]),o(u,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":n.component.configuration.meter_id,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateConfiguration(r,"configuration.meter_id"))},{help:a(()=>[e[4]||(e[4]=t(" Die Meter ID des SmartMeters. Diese ist normalerweise 1. Bei mehreren SmartMetern im System kann es notwendig sein, die Meter ID zu ändern. Zur Ermittlung kann der folgende Link verwendet werden. Die Meter ID kann den zurückgegebenen JSON Daten entnommen werden. ",-1)),l("a",{href:s.meterRealtimeUrl,target:"_blank",rel:"noopener noreferrer"},b(s.meterRealtimeUrl),9,w),e[5]||(e[5]=l("br",null,null,-1)),e[6]||(e[6]=t(' Im Abschnitt "Body" -> "Data" werden die installierten SmartMeter mit aktuellen Messwerten angezeigt. Die Meter ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Messwerten. ',-1))]),_:1},8,["model-value"])])}const U=f(_,[["render",D],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/counter_sm.vue"]]);export{U as default}; diff --git a/web/settings/assets/counter_sm-e0173218.js b/web/settings/assets/counter_sm-e0173218.js deleted file mode 100644 index 7f66c990c0..0000000000 --- a/web/settings/assets/counter_sm-e0173218.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as f,u as i,l as g,m as c,G as o,E as a,B as t,A as l,F as b}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceFroniusCounterSM",mixins:[p],computed:{meterRealtimeUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetMeterRealtimeData.cgi?Scope=System`}}}},v={class:"device-fronius-counter-sm"},w=["href"];function D(n,e,M,S,h,s){const m=i("openwb-base-heading"),d=i("openwb-base-select-input"),u=i("openwb-base-number-input");return g(),c("div",v,[o(m,null,{default:a(()=>e[2]||(e[2]=[t(" Einstellungen für Fronius SmartMeter ",-1)])),_:1,__:[2]}),o(d,{title:"Kompatibilitätsmodus","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Aus"},{value:1,text:"Variante 1"},{value:2,text:"Variante 2"}],"model-value":n.component.configuration.variant,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.variant"))},{help:a(()=>e[3]||(e[3]=[t(" Gegebenenfalls auch für alte Modelle nach einem Softwareupdate erforderlich. Fronius hat derzeit keine Konsistente Schnittstelle. Speziell beim Gen24 kann Variante 1 oder 2 erforderlich sein. Nach speichern sollten nach etwa 10-20 Sekunden Daten angezeigt werden. Ist dies nicht der Fall die andere Variante ausprobieren. ",-1)])),_:1},8,["model-value"]),o(u,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":n.component.configuration.meter_id,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateConfiguration(r,"configuration.meter_id"))},{help:a(()=>[e[4]||(e[4]=t(" Die Meter ID des SmartMeters. Diese ist normalerweise 1. Bei mehreren SmartMetern im System kann es notwendig sein, die Meter ID zu ändern. Zur Ermittlung kann der folgende Link verwendet werden. Die Meter ID kann den zurückgegebenen JSON Daten entnommen werden. ",-1)),l("a",{href:s.meterRealtimeUrl,target:"_blank",rel:"noopener noreferrer"},b(s.meterRealtimeUrl),9,w),e[5]||(e[5]=l("br",null,null,-1)),e[6]||(e[6]=t(' Im Abschnitt "Body" -> "Data" werden die installierten SmartMeter mit aktuellen Messwerten angezeigt. Die Meter ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Messwerten. ',-1))]),_:1},8,["model-value"])])}const U=f(_,[["render",D],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/counter_sm.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-022cb7a5.js b/web/settings/assets/device-022cb7a5.js deleted file mode 100644 index 56be867c55..0000000000 --- a/web/settings/assets/device-022cb7a5.js +++ /dev/null @@ -1 +0,0 @@ -import{D as r}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as i,l as u,m as p,G as t,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceQCells",mixins:[r]},_={class:"device-qcells"};function b(o,e,v,g,w,C){const l=i("openwb-base-heading"),a=i("openwb-base-text-input"),s=i("openwb-base-number-input");return u(),p("div",_,[t(l,null,{default:m(()=>e[3]||(e[3]=[c(" Einstellungen für QCells ESS ",-1)])),_:1,__:[3]}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=d(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/qcells/qcells/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-026ba885.js b/web/settings/assets/device-026ba885.js deleted file mode 100644 index 6cd0104863..0000000000 --- a/web/settings/assets/device-026ba885.js +++ /dev/null @@ -1 +0,0 @@ -import{D as d}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as i,l as p,m as l,G as t,E as m,B as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSofar",mixins:[d]},b={class:"device-sofar"};function v(o,e,c,g,w,C){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",b,[t(r,null,{default:m(()=>e[3]||(e[3]=[f("Einstellungen für Sofar",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=u(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sofar/sofar/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-04198354.js b/web/settings/assets/device-04198354.js deleted file mode 100644 index c06f615e23..0000000000 --- a/web/settings/assets/device-04198354.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as t,l as m,m as d,G as n,E as l,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmartfox",mixins:[a]},_={class:"device-smartfox"};function f(o,e,v,x,b,g){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return m(),d("div",_,[n(i,null,{default:l(()=>e[1]||(e[1]=[u(" Einstellungen für Smartfox ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const N=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smartfox/smartfox/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-0553aec2.js b/web/settings/assets/device-0553aec2.js new file mode 100644 index 0000000000..fac75b5915 --- /dev/null +++ b/web/settings/assets/device-0553aec2.js @@ -0,0 +1 @@ +import{D as p}from"./HardwareInstallation-8066ca79.js";import{_ as u,u as n,l as m,m as _,G as a,E as i,B as r}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolarwatt",mixins:[p]},v={class:"device-solarwatt"};function c(t,e,w,b,g,x){const s=n("openwb-base-heading"),l=n("openwb-base-text-input"),d=n("openwb-base-select-input");return m(),_("div",v,[a(s,null,{default:i(()=>[...e[2]||(e[2]=[r(" Einstellungen für Solarwatt/My Reserve ",-1)])]),_:1}),a(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),a(d,{title:"Abrufmethode","not-selected":"Bitte auswählen",options:[{value:0,text:"Gateway"},{value:1,text:"Energy Manager"}],"model-value":t.device.configuration.energy_manager,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.energy_manager"))},{help:i(()=>[...e[3]||(e[3]=[r(" Wenn beide Abrufmethoden verwendet werden sollen, muss für jede Methode ein Gerät erstellt werden. ",-1)])]),_:1},8,["model-value"])])}const G=u(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_watt/solar_watt/device.vue"]]);export{G as default}; diff --git a/web/settings/assets/device-05904d00.js b/web/settings/assets/device-05904d00.js deleted file mode 100644 index 5b419543f9..0000000000 --- a/web/settings/assets/device-05904d00.js +++ /dev/null @@ -1 +0,0 @@ -import{D as r}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as t,l as d,m as l,G as n,E as c,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceKostalSteca",mixins:[r]},_={class:"device-kostal-steca"};function f(o,e,v,b,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),l("div",_,[n(s,null,{default:c(()=>e[1]||(e[1]=[m(" Einstellungen für Kostal Piko MP oder Steca Grid Coolcept ",-1)])),_:1,__:[1]}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const h=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_steca/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-063b8544.js b/web/settings/assets/device-063b8544.js new file mode 100644 index 0000000000..8f8e17364f --- /dev/null +++ b/web/settings/assets/device-063b8544.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-8066ca79.js";import{_ as d,u as t,l,m as p,G as i,E as s,B as n,A as m}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceMqtt",mixins:[a]},c={class:"device-mqtt"};function b(g,e,_,f,h,v){const r=t("openwb-base-heading"),o=t("openwb-base-alert");return l(),p("div",c,[i(r,null,{default:s(()=>[...e[0]||(e[0]=[n("Einstellungen für MQTT",-1)])]),_:1}),i(o,{subtype:"info"},{default:s(()=>[...e[1]||(e[1]=[n(" Das MQTT Modul stellt keine aktive Verbindung her, sondern erwartet, dass die Daten an die angegebenen Topics im Broker gesendet werden. Alle Daten sind als gültiges JSON zu senden! Zahlen mit Nachkommastellen (Float) müssen einen Punkt als Dezimaltrenner verwenden (internationales Format). ",-1),m("br",null,null,-1),n(" Ab Version 2.1.8 wurden die Topics überarbeitet. Die bisherigen Topics openWB/set/bat/id/get/..., openWB/set/counter/id/get/... und openWB/set/pv/id/get/... bleiben aus Gründen der Abwärtskompatibilität weiterhin nutzbar. Wir empfehlen, auf die neuen Topics umzusteigen. Dies ermöglicht die Beseitigung von Einschränkungen, wie z. B. die fehlende Verrechnung bei Hybrid-Systemen oder die Berechnung fehlender Werte, wie der Phasen-Leistung aus Spannung und Stromstärken. ",-1)])]),_:1})])}const M=d(u,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/device.vue"]]);export{M as default}; diff --git a/web/settings/assets/device-07a65d9a.js b/web/settings/assets/device-07a65d9a.js deleted file mode 100644 index a8aa3617fe..0000000000 --- a/web/settings/assets/device-07a65d9a.js +++ /dev/null @@ -1 +0,0 @@ -import{D as r}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as i,l as d,m as u,G as t,E as l,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSunways",mixins:[r]},f={class:"device-sunways"};function _(o,e,v,w,b,g){const a=i("openwb-base-heading"),s=i("openwb-base-text-input");return d(),u("div",f,[t(a,null,{default:l(()=>e[2]||(e[2]=[m(" Einstellungen für Sunways ",-1)])),_:1,__:[2]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const q=p(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sunways/sunways/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-095d94ba.js b/web/settings/assets/device-095d94ba.js new file mode 100644 index 0000000000..4b190c407c --- /dev/null +++ b/web/settings/assets/device-095d94ba.js @@ -0,0 +1 @@ +import{D as u}from"./HardwareInstallation-8066ca79.js";import{_ as l,u as n,l as m,m as b,G as t,E as s,B as c,A as _}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceDeye",mixins:[u]},v={class:"device-deye"};function g(o,e,w,y,x,C){const r=n("openwb-base-heading"),a=n("openwb-base-alert"),p=n("openwb-base-text-input"),d=n("openwb-base-number-input");return m(),b("div",v,[t(r,null,{default:s(()=>[...e[2]||(e[2]=[c("Einstellungen für Deye",-1)])]),_:1}),t(a,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[_("span",{class:"text-danger"}," Deye Wechselrichter verfügen über keine Modbus-TCP Schnittstelle. Für die Auslesung wird ein RS485/LAN-Adapter benötigt. ",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const q=l(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-0a2a87db.js b/web/settings/assets/device-0a2a87db.js new file mode 100644 index 0000000000..c6ee1832ea --- /dev/null +++ b/web/settings/assets/device-0a2a87db.js @@ -0,0 +1 @@ +import{D as g}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as s,l as p,m as k,G as l,E as u,B as t,A as n,F as a,x as A,z as w}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSonnenbatterie",mixins:[g],computed:{linkRestApi1(){return"http://"+this.device.configuration.ip_address+":7979/rest/devices/battery"},linkRestApi2(){return"http://"+this.device.configuration.ip_address+":7979/rest/devices/battery/M05"},linkJsonApi1(){return"http://"+this.device.configuration.ip_address+"/api/v1/status"},linkJsonApi2(){return"http://"+this.device.configuration.ip_address+"/api/v2/status"}}},B={class:"device-sonnenbatterie"},I=["href"],S=["href"],P=["href"],J=["href"];function z(i,e,R,C,D,r){const v=s("openwb-base-heading"),f=s("openwb-base-alert"),d=s("openwb-base-text-input"),b=s("openwb-base-select-input");return p(),k("div",B,[l(v,null,{default:u(()=>[...e[3]||(e[3]=[t(" Einstellungen für SonnenBatterie ",-1)])]),_:1}),l(f,{subtype:"info"},{default:u(()=>[...e[4]||(e[4]=[t(' Die Leistung steht nur in den Varianten "Rest-API 2" und "JSON-API" zur Verfügung.',-1),n("br",null,null,-1),t(" Die aktive Steuerung des Speichers durch openWB ist nur mit der JSON-API v2 möglich. ",-1)])]),_:1}),l(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),l(b,{title:"Datenverbindung",required:"","not-selected":"Bitte auswählen",options:[{value:0,text:"Rest-API 1 (z.B. ECO 4)"},{value:2,text:"Rest-API 2 (z.B. ECO 6)"},{value:1,text:"JSON-API v1(z.B. ECO 8 oder 10)"},{value:3,text:"JSON-API v2(z.B. ECO 8 oder 10)"}],"model-value":i.device.configuration.variant,"onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o,"configuration.variant"))},{help:u(()=>[e[5]||(e[5]=t(" Je nach SonnenBatterie muss die richtige Datenverbindung ausgewählt werden. Folgende URLs werden zum Abruf der Daten genutzt und können auch manuell über einen Browser abgefragt werden, um die richtige Einstellung zu finden:",-1)),e[6]||(e[6]=n("br",null,null,-1)),e[7]||(e[7]=t(" Rest-API 1: ",-1)),n("a",{href:r.linkRestApi1,target:"_blank",rel:"noopener noreferrer"},a(r.linkRestApi1),9,I),e[8]||(e[8]=n("br",null,null,-1)),e[9]||(e[9]=t(" Rest-API 2: ",-1)),n("a",{href:r.linkRestApi2,target:"_blank",rel:"noopener noreferrer"},a(r.linkRestApi2),9,S),e[10]||(e[10]=n("br",null,null,-1)),e[11]||(e[11]=t(" JSON-API v1: ",-1)),n("a",{href:r.linkJsonApi1,target:"_blank",rel:"noopener noreferrer"},a(r.linkJsonApi1),9,P),e[12]||(e[12]=n("br",null,null,-1)),e[13]||(e[13]=t(" JSON-API v2: ",-1)),n("a",{href:r.linkJsonApi2,target:"_blank",rel:"noopener noreferrer"},a(r.linkJsonApi2),9,J),e[14]||(e[14]=n("br",null,null,-1))]),_:1},8,["model-value"]),i.device.configuration.variant===3?(p(),A(d,{key:0,title:"API-Token",subtype:"password",required:"","model-value":i.device.configuration.api_v2_token,"onUpdate:modelValue":e[2]||(e[2]=o=>i.updateConfiguration(o,"configuration.api_v2_token"))},{help:u(()=>[...e[15]||(e[15]=[t(' API-Token für JSON-API v2. Dieses Token wird benötigt, um detaillierte Daten auszulesen und den Speicher aktiv zu steuern (optional). Es kann in der Weboberfläche der SonnenBatterie unter "Software-Integration" erstellt werden.',-1),n("br",null,null,-1),t(' Für die aktive Steuerung durch openWB ist ebenfalls die "Write API" zu aktivieren! ',-1)])]),_:1},8,["model-value"])):w("",!0)])}const T=m(_,[["render",z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/device.vue"]]);export{T as default}; diff --git a/web/settings/assets/device-0bd3c0be.js b/web/settings/assets/device-0bd3c0be.js deleted file mode 100644 index b18e11ebf0..0000000000 --- a/web/settings/assets/device-0bd3c0be.js +++ /dev/null @@ -1 +0,0 @@ -import{D as d}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as i,l,m as u,G as n,E as a,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceFems",mixins:[d]},c={class:"device-fems"};function v(o,e,_,b,g,w){const p=i("openwb-base-heading"),s=i("openwb-base-text-input");return l(),u("div",c,[n(p,null,{default:a(()=>e[2]||(e[2]=[r(" Einstellungen für openEMS, Fenecon FEMS, CENTURIO 10, Kaco Hy-Control ",-1)])),_:1,__:[2]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},{help:a(()=>e[3]||(e[3]=[r(" Bei Nutzung von Fenecon FEMS ist das Passwort im Normalfall user, bei Kaco mit Hy-Control ist das Passwort meist admin. ",-1)])),_:1},8,["model-value"])])}const V=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/fems/device.vue"]]);export{V as default}; diff --git a/web/settings/assets/device-0ff1683d.js b/web/settings/assets/device-0ff1683d.js deleted file mode 100644 index 1c780c5235..0000000000 --- a/web/settings/assets/device-0ff1683d.js +++ /dev/null @@ -1 +0,0 @@ -import{D as p}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as n,l as m,m as d,G as i,E as l,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceHuaweiSmartLogger",mixins:[p]},g={class:"device-huawei-smart-logger"};function f(o,e,b,v,w,x){const r=n("openwb-base-heading"),a=n("openwb-base-text-input"),s=n("openwb-base-number-input");return m(),d("div",g,[i(r,null,{default:l(()=>e[2]||(e[2]=[_(" Einstellungen für Huawei SmartLogger ",-1)])),_:1,__:[2]}),i(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const q=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-115ca373.js b/web/settings/assets/device-115ca373.js deleted file mode 100644 index b981abe945..0000000000 --- a/web/settings/assets/device-115ca373.js +++ /dev/null @@ -1 +0,0 @@ -import{D as m}from"./HardwareInstallation-be759b0c.js";import{_ as l,u as i,l as _,m as b,G as t,E as r,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSiemens",mixins:[m]},v={class:"device-siemens"};function c(o,e,g,w,C,x){const p=i("openwb-base-heading"),d=i("openwb-base-alert"),u=i("openwb-base-text-input"),s=i("openwb-base-number-input");return _(),b("div",v,[t(p,null,{default:r(()=>e[3]||(e[3]=[a(" Einstellungen für Siemens ",-1)])),_:1,__:[3]}),t(d,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[a(" Im Siemens-Speicher muss die Schnittstelle openWB gewählt werden. ",-1)])),_:1,__:[4]}),t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const k=l(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/siemens/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-11bf5d7f.js b/web/settings/assets/device-11bf5d7f.js new file mode 100644 index 0000000000..0d5cdf7a2e --- /dev/null +++ b/web/settings/assets/device-11bf5d7f.js @@ -0,0 +1 @@ +import{D as d}from"./HardwareInstallation-8066ca79.js";import{_ as u,u as t,l,m as p,G as i,E as m,B as v}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceCarloGavazzi",mixins:[d]},f={class:"device-carlo-gavazzi"};function _(o,e,b,g,z,w){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return l(),p("div",f,[i(r,null,{default:m(()=>[...e[3]||(e[3]=[v(" Einstellungen für Carlo Gavazzi ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/carlo_gavazzi/carlo_gavazzi/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-13333def.js b/web/settings/assets/device-13333def.js new file mode 100644 index 0000000000..a21326ba35 --- /dev/null +++ b/web/settings/assets/device-13333def.js @@ -0,0 +1 @@ +import{D as p}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as i,l as g,m as b,G as t,E as r,B as s}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolax",mixins:[p]},v={class:"device-solax"};function c(n,e,_,w,x,G){const l=i("openwb-base-heading"),d=i("openwb-base-text-input"),a=i("openwb-base-number-input"),u=i("openwb-base-select-input");return g(),b("div",v,[t(l,null,{default:r(()=>[...e[4]||(e[4]=[s(" Einstellungen für Solax ",-1)])]),_:1}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",min:1,max:65535,placeholder:502,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},{help:r(()=>[...e[5]||(e[5]=[s(" Standardmäßig ist der Port 502. Dieser sollte nur geändert werden, wenn der Solax Wechselrichter auf einen anderen Port konfiguriert wurde. ",-1)])]),_:1},8,["model-value"]),t(a,{title:"Modbus-ID",required:"",min:0,max:255,"model-value":n.device.configuration.modbus_id,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},{help:r(()=>[...e[6]||(e[6]=[s(" Laut der Schnittstellenbeschreibung ist die ID bei Solax ab Werk auf 1 gesetzt. Entgegen der Beschreibung ist meist für Gen4 eine ID größer als 2 eingestellt. Bei Gen3 sogar (gegen jeglicher Modbus Standards) eine 0. ",-1)])]),_:1},8,["model-value"]),t(u,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:"g2",text:"Gen 2"},{value:"g3",text:"Gen 3 & Gen4"},{value:"g4",text:"Gen 4 Boost & Gen 4 Mini"}],"model-value":n.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.version"))},null,8,["model-value"])])}const P=m(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solax/solax/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-14c83532.js b/web/settings/assets/device-14c83532.js deleted file mode 100644 index 5dd108d788..0000000000 --- a/web/settings/assets/device-14c83532.js +++ /dev/null @@ -1 +0,0 @@ -import{D as p}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as o,l as d,m as l,G as t,E as m,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceBenning",mixins:[p]},_={class:"device-benning"};function f(n,e,b,g,v,x){const i=o("openwb-base-heading"),s=o("openwb-base-text-input");return d(),l("div",_,[t(i,null,{default:m(()=>e[1]||(e[1]=[u("Einstellungen für Benning",-1)])),_:1,__:[1]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.url"))},null,8,["model-value"])])}const N=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/benning/benning/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-160ed507.js b/web/settings/assets/device-160ed507.js deleted file mode 100644 index d4a805f006..0000000000 --- a/web/settings/assets/device-160ed507.js +++ /dev/null @@ -1 +0,0 @@ -import{D as u}from"./HardwareInstallation-be759b0c.js";import{_ as l,u as n,l as m,m as _,G as t,E as s,B as b,A as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceDeye",mixins:[u]},v={class:"device-deye"};function g(o,e,w,y,x,C){const r=n("openwb-base-heading"),a=n("openwb-base-alert"),p=n("openwb-base-text-input"),d=n("openwb-base-number-input");return m(),_("div",v,[t(r,null,{default:s(()=>e[2]||(e[2]=[b("Einstellungen für Deye",-1)])),_:1,__:[2]}),t(a,{subtype:"info"},{default:s(()=>e[3]||(e[3]=[c("span",{class:"text-danger"}," Deye Wechselrichter verfügen über keine Modbus-TCP Schnittstelle. Für die Auslesung wird ein RS485/LAN-Adapter benötigt. ",-1)])),_:1,__:[3]}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const q=l(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-18f8c834.js b/web/settings/assets/device-18f8c834.js deleted file mode 100644 index bc3e6c3be0..0000000000 --- a/web/settings/assets/device-18f8c834.js +++ /dev/null @@ -1 +0,0 @@ -import{D as u}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as r,l as d,m,G as i,E as s,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceKostalPikoOld",mixins:[u]},v={class:"device-kostal-piko-old"};function c(o,e,g,b,w,k){const a=r("openwb-base-heading"),n=r("openwb-base-text-input");return d(),m("div",v,[i(a,null,{default:s(()=>e[3]||(e[3]=[l(" Einstellungen für Kostal Piko (alte Generation) ",-1)])),_:1,__:[3]}),i(n,{title:"URL",subtype:"url",required:"","model-value":o.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.url"))},{help:s(()=>e[4]||(e[4]=[l(' Es wird eine komplette URL inklusive Protokoll erwartet. Normalerweise ist der Wechselrichter über "http://IP" zu erreichen. ',-1)])),_:1},8,["model-value"]),i(n,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),i(n,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const x=p(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko_old/device.vue"]]);export{x as default}; diff --git a/web/settings/assets/device-1cc93638.js b/web/settings/assets/device-1cc93638.js new file mode 100644 index 0000000000..88e8199423 --- /dev/null +++ b/web/settings/assets/device-1cc93638.js @@ -0,0 +1 @@ +import{D as p}from"./HardwareInstallation-8066ca79.js";import{_ as a,u as t,l as m,m as d,G as n,E as l,B as u}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceMystrom",mixins:[p]},_={class:"device-mystrom"};function f(o,e,v,b,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return m(),d("div",_,[n(s,null,{default:l(()=>[...e[1]||(e[1]=[u("Einstellungen für mystrom",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const k=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mystrom/mystrom/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-1ecd0e84.js b/web/settings/assets/device-1ecd0e84.js new file mode 100644 index 0000000000..07768f49c0 --- /dev/null +++ b/web/settings/assets/device-1ecd0e84.js @@ -0,0 +1 @@ +import{D as p}from"./HardwareInstallation-8066ca79.js";import{_ as d,u as t,l as u,m as l,G as i,E as m,B as _}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSunnyIsland",mixins:[p]},f={class:"device-sunnyisland"};function b(n,e,v,g,w,x){const s=t("openwb-base-heading"),a=t("openwb-base-text-input"),r=t("openwb-base-number-input");return u(),l("div",f,[i(s,null,{default:m(()=>[...e[2]||(e[2]=[_(" Einstellungen für Sunny Island ",-1)])]),_:1}),i(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"])])}const q=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_island/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-2251901f.js b/web/settings/assets/device-2251901f.js deleted file mode 100644 index e5692e3f56..0000000000 --- a/web/settings/assets/device-2251901f.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceVictron",mixins:[a]},v={class:"device-victron"};function f(o,e,b,g,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",v,[i(r,null,{default:l(()=>e[2]||(e[2]=[c(" Einstellungen für Victron ",-1)])),_:1,__:[2]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const P=d(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-23990b21.js b/web/settings/assets/device-23990b21.js new file mode 100644 index 0000000000..d89f512c93 --- /dev/null +++ b/web/settings/assets/device-23990b21.js @@ -0,0 +1 @@ +import{D as p}from"./HardwareInstallation-8066ca79.js";import{_ as u,u as n,l as m,m as d,G as i,E as l,B as _}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceHuaweiSmartLogger",mixins:[p]},g={class:"device-huawei-smart-logger"};function f(o,e,b,v,w,x){const r=n("openwb-base-heading"),a=n("openwb-base-text-input"),s=n("openwb-base-number-input");return m(),d("div",g,[i(r,null,{default:l(()=>[...e[2]||(e[2]=[_(" Einstellungen für Huawei SmartLogger ",-1)])]),_:1}),i(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const q=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-24f54dcc.js b/web/settings/assets/device-24f54dcc.js deleted file mode 100644 index e67c973cb8..0000000000 --- a/web/settings/assets/device-24f54dcc.js +++ /dev/null @@ -1 +0,0 @@ -import{D as r}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as t,l as d,m as l,G as s,E as u,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceYouless",mixins:[r]},_={class:"device-youless"};function f(o,e,v,b,g,x){const n=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),l("div",_,[s(n,null,{default:u(()=>e[1]||(e[1]=[m(" Einstellungen für Youless ",-1)])),_:1,__:[1]}),s(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.ip_address"))},null,8,["model-value"])])}const k=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/youless/youless/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-25d2441f.js b/web/settings/assets/device-25d2441f.js new file mode 100644 index 0000000000..6d5ec231cb --- /dev/null +++ b/web/settings/assets/device-25d2441f.js @@ -0,0 +1 @@ +import{D as p}from"./HardwareInstallation-8066ca79.js";import{_ as a,u as o,l as d,m as l,G as t,E as m,B as u}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceBenning",mixins:[p]},_={class:"device-benning"};function f(n,e,b,g,v,x){const i=o("openwb-base-heading"),s=o("openwb-base-text-input");return d(),l("div",_,[t(i,null,{default:m(()=>[...e[1]||(e[1]=[u("Einstellungen für Benning",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.url"))},null,8,["model-value"])])}const N=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/benning/benning/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-2671fef8.js b/web/settings/assets/device-2671fef8.js deleted file mode 100644 index caf3423065..0000000000 --- a/web/settings/assets/device-2671fef8.js +++ /dev/null @@ -1 +0,0 @@ -import{D as p}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as i,l as b,m as _,G as t,E as s,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceElgris",mixins:[p]},g={class:"device-elgris"};function v(o,e,c,w,C,D){const u=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),_("div",g,[t(u,null,{default:s(()=>e[3]||(e[3]=[a(" Einstellungen für Elgris",-1)])),_:1,__:[3]}),t(d,{subtype:"info"},{default:s(()=>e[4]||(e[4]=[a(" Der Zähler ist auf Modbus-ID 1 und Port 502 vorkonfiguriert. ",-1)])),_:1,__:[4]}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const P=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/elgris/elgris/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-28e1a264.js b/web/settings/assets/device-28e1a264.js new file mode 100644 index 0000000000..1de20918f4 --- /dev/null +++ b/web/settings/assets/device-28e1a264.js @@ -0,0 +1 @@ +import{D as r}from"./HardwareInstallation-8066ca79.js";import{_ as a,u as t,l as d,m as u,G as n,E as l,B as m}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOpenDTU",mixins:[r]},_={class:"device-opendtu"};function f(o,e,v,b,g,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),u("div",_,[n(i,null,{default:l(()=>[...e[1]||(e[1]=[m("Einstellungen für OpenDTU",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.url"))},null,8,["model-value"])])}const h=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/opendtu/opendtu/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-2a2b2695.js b/web/settings/assets/device-2a2b2695.js new file mode 100644 index 0000000000..dd5c8b9ccd --- /dev/null +++ b/web/settings/assets/device-2a2b2695.js @@ -0,0 +1 @@ +import{D as u}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as o,l as b,m as c,G as t,E as s,B as r,A as f}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSolarEdge",mixins:[u]},_={class:"device-solaredge"};function v(n,e,w,B,h,S){const a=o("openwb-base-heading"),d=o("openwb-base-alert"),p=o("openwb-base-text-input"),l=o("openwb-base-number-input");return b(),c("div",_,[t(a,null,{default:s(()=>[...e[2]||(e[2]=[r(" Einstellungen für SolarEdge ",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[r(" ModbusTCP muss im Wechselrichter aktiviert werden und der Wechselrichter per LAN angebunden sein.",-1),f("br",null,null,-1),r(" SolarEdge lässt nur eine ModbusTCP-Verbindung zu. Wenn Sie mit einem weiteren SmartHome-System, wie z.B. ioBroker oder openHAB, den SolarEdge-Wechselrichter abfragen, kann dies die Abfrage durch die openWB stören oder verhindern. ",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(l,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.port"))},{help:s(()=>[...e[4]||(e[4]=[r(" Je nach Produktionsdatum und Softwareversion ist 502 oder 1502 ab Werk eingestellt. Bitte im Wechselrichter überprüfen. ",-1)])]),_:1},8,["model-value"])])}const $=m(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-2b1ae0bb.js b/web/settings/assets/device-2b1ae0bb.js new file mode 100644 index 0000000000..a85af10ef0 --- /dev/null +++ b/web/settings/assets/device-2b1ae0bb.js @@ -0,0 +1 @@ +import{D as u}from"./HardwareInstallation-8066ca79.js";import{_ as d,u as i,l as p,m as l,G as t,E as m,B as _}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceZCS",mixins:[u]},f={class:"device-azzurro_zcs"};function b(o,e,v,g,z,w){const a=i("openwb-base-heading"),s=i("openwb-base-text-input"),r=i("openwb-base-number-input");return p(),l("div",f,[t(a,null,{default:m(()=>[...e[3]||(e[3]=[_(" Einstellungen für Azzurro ZCS ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const k=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/azzurro_zcs/azzurro_zcs/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-2c55f22c.js b/web/settings/assets/device-2c55f22c.js deleted file mode 100644 index b2fc1c2c0c..0000000000 --- a/web/settings/assets/device-2c55f22c.js +++ /dev/null @@ -1 +0,0 @@ -import{D as m}from"./HardwareInstallation-be759b0c.js";import{_ as v,u as t,l as b,m as f,G as i,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceGoodWe",mixins:[m]},_={class:"device-goodwe"};function w(o,e,W,c,D,V){const l=t("openwb-base-heading"),a=t("openwb-base-alert"),p=t("openwb-base-text-input"),d=t("openwb-base-number-input"),u=t("openwb-base-select-input");return b(),f("div",_,[i(l,null,{default:r(()=>e[5]||(e[5]=[s("Einstellungen für GoodWe",-1)])),_:1,__:[5]}),i(a,{subtype:"info"},{default:r(()=>e[6]||(e[6]=[s(" GoodWe-Wechselrichter verfügen über 3 Dongle: Den WiFi-Dongle, das Wifi-Lan-Kit und das Wifi-Lan-Kit 2.0. Die Einbindung über dieses Modul ist nur mit den Wifi-Lan-Kits möglich. Welches Kit benötigt wird ist vom Wechselrichter abhängig und kann bei GoodWe erfragt werden. ",-1)])),_:1,__:[6]}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(d,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(u,{title:"API-Version","not-selected":"Bitte auswählen",options:[{value:"v_1_7",text:"v1.7"},{value:"v_1_1",text:"v1.0/ v1.1"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.version"))},{help:r(()=>e[7]||(e[7]=[s(" Die Wahl der API-Version beeinflusst die Auslesung der Speicherleistung und der Import/ Export Werte des Zählers. ",-1)])),_:1},8,["model-value"]),i(u,{title:"Firmware","not-selected":"Bitte auswählen",options:[{value:8,text:"ARM < 9.0"},{value:9,text:"ARM ab 9.0"}],"model-value":o.device.configuration.firmware,required:"","onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.firmware"))},{help:r(()=>e[8]||(e[8]=[s(" Die Auswahl der Firmware-Version beeinflusst die Auslesung der Wirkleistung und der Phasenströme des Zählers. ",-1)])),_:1},8,["model-value"])])}const M=v(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/good_we/device.vue"]]);export{M as default}; diff --git a/web/settings/assets/device-2f6474c4.js b/web/settings/assets/device-2f6474c4.js deleted file mode 100644 index c619836359..0000000000 --- a/web/settings/assets/device-2f6474c4.js +++ /dev/null @@ -1 +0,0 @@ -import{D as p}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as t,l,m as d,G as i,E as u,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolarmax",mixins:[p]},f={class:"device-solarmax"};function b(o,e,v,g,x,w){const a=t("openwb-base-heading"),r=t("openwb-base-text-input"),s=t("openwb-base-number-input");return l(),d("div",f,[i(a,null,{default:u(()=>e[2]||(e[2]=[_(" Einstellungen für Solarmax ",-1)])),_:1,__:[2]}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const P=m(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-30bde472.js b/web/settings/assets/device-30bde472.js deleted file mode 100644 index 66df93bf20..0000000000 --- a/web/settings/assets/device-30bde472.js +++ /dev/null @@ -1 +0,0 @@ -import{D as u}from"./HardwareInstallation-be759b0c.js";import{_ as l,u as i,l as p,m as d,G as t,E as m,B as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolarView",mixins:[u]},_={class:"device-solar-view"};function c(o,e,b,g,w,V){const a=i("openwb-base-heading"),s=i("openwb-base-text-input"),r=i("openwb-base-number-input");return p(),d("div",_,[t(a,null,{default:m(()=>e[3]||(e[3]=[v(" Einstellungen für SolarView ",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Timeout",required:"","model-value":o.device.configuration.timeout,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.timeout"))},null,8,["model-value"])])}const N=l(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/solar_view/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-318bb1e3.js b/web/settings/assets/device-318bb1e3.js new file mode 100644 index 0000000000..d9ad1fb59b --- /dev/null +++ b/web/settings/assets/device-318bb1e3.js @@ -0,0 +1 @@ +import{D as l}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as n,l as b,m as _,G as t,E as r,B as s}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSunnyBoy",mixins:[l]},f={class:"device-sunnyboy"};function v(o,e,w,g,y,x){const a=n("openwb-base-heading"),p=n("openwb-base-alert"),d=n("openwb-base-text-input"),u=n("openwb-base-number-input");return b(),_("div",f,[t(a,null,{default:r(()=>[...e[2]||(e[2]=[s(" Einstellungen für SMA Sunny Boy/Tripower ",-1)])]),_:1}),t(p,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[s(' ModbusTCP muss entweder direkt am Wechselrichter, per Sunny Portal oder über das Tool "Sunny Explorer" aktiviert werden. Dies ist standardmäßig deaktiviert. ',-1)])]),_:1}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const $=m(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-35f7717e.js b/web/settings/assets/device-35f7717e.js deleted file mode 100644 index 14813c29ce..0000000000 --- a/web/settings/assets/device-35f7717e.js +++ /dev/null @@ -1 +0,0 @@ -import{D as d}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as i,l as p,m as l,G as t,E as m,B as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceJanitza",mixins:[d]},b={class:"device-janitza"};function v(o,e,c,g,w,C){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",b,[t(r,null,{default:m(()=>e[3]||(e[3]=[f(" Einstellungen für Janitza ",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/janitza/janitza/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-37a05407.js b/web/settings/assets/device-37a05407.js deleted file mode 100644 index 2979152abd..0000000000 --- a/web/settings/assets/device-37a05407.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as n,l as m,m as u,G as i,E as l,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceMTec",mixins:[a]},f={class:"device-mtec"};function b(o,e,v,g,w,x){const s=n("openwb-base-heading"),r=n("openwb-base-text-input"),p=n("openwb-base-number-input");return m(),u("div",f,[i(s,null,{default:l(()=>e[2]||(e[2]=[c("Einstellungen für M-Tec",-1)])),_:1,__:[2]}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const q=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-3a96f207.js b/web/settings/assets/device-3a96f207.js deleted file mode 100644 index a43c608d6d..0000000000 --- a/web/settings/assets/device-3a96f207.js +++ /dev/null @@ -1 +0,0 @@ -import{D as r}from"./HardwareInstallation-be759b0c.js";import{_ as l,u as n,l as u,m as d,G as a,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceTasmota",mixins:[r]},v={class:"device-tasmota"};function f(t,e,b,g,w,x){const i=n("openwb-base-heading"),s=n("openwb-base-text-input"),p=n("openwb-base-select-input");return u(),d("div",v,[a(i,null,{default:m(()=>e[2]||(e[2]=[c("Einstellungen für Tasmota",-1)])),_:1,__:[2]}),a(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),a(p,{title:"Phase","not-selected":"Bitte auswählen",options:[{value:1,text:"1"},{value:2,text:"2"},{value:3,text:"3"}],"model-value":t.device.configuration.phase,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.phase"))},null,8,["model-value"])])}const q=l(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tasmota/tasmota/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-3ae4b0dc.js b/web/settings/assets/device-3ae4b0dc.js new file mode 100644 index 0000000000..3223b0b762 --- /dev/null +++ b/web/settings/assets/device-3ae4b0dc.js @@ -0,0 +1 @@ +import{D as p}from"./HardwareInstallation-8066ca79.js";import{_ as a,u as t,l as d,m as c,G as n,E as m,B as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceRCT",mixins:[p]},_={class:"device-rct"};function f(o,e,v,b,g,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),c("div",_,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[l(" Einstellungen für RCT ",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const k=a(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/rct/rct/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-3c0ce676.js b/web/settings/assets/device-3c0ce676.js new file mode 100644 index 0000000000..cb54ae8ab8 --- /dev/null +++ b/web/settings/assets/device-3c0ce676.js @@ -0,0 +1 @@ +import{D as u}from"./HardwareInstallation-8066ca79.js";import{_ as p,u as r,l as d,m,G as i,E as s,B as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceKostalPikoOld",mixins:[u]},v={class:"device-kostal-piko-old"};function c(o,e,g,b,w,k){const a=r("openwb-base-heading"),n=r("openwb-base-text-input");return d(),m("div",v,[i(a,null,{default:s(()=>[...e[3]||(e[3]=[l(" Einstellungen für Kostal Piko (alte Generation) ",-1)])]),_:1}),i(n,{title:"URL",subtype:"url",required:"","model-value":o.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.url"))},{help:s(()=>[...e[4]||(e[4]=[l(' Es wird eine komplette URL inklusive Protokoll erwartet. Normalerweise ist der Wechselrichter über "http://IP" zu erreichen. ',-1)])]),_:1},8,["model-value"]),i(n,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),i(n,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const x=p(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko_old/device.vue"]]);export{x as default}; diff --git a/web/settings/assets/device-3c6d5af6.js b/web/settings/assets/device-3c6d5af6.js deleted file mode 100644 index 68c476a229..0000000000 --- a/web/settings/assets/device-3c6d5af6.js +++ /dev/null @@ -1 +0,0 @@ -import{D as m}from"./HardwareInstallation-be759b0c.js";import{_ as l,u as i,l as _,m as b,G as t,E as r,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSiemensSentron",mixins:[m]},v={class:"device-siemens-sentron"};function c(n,e,g,w,C,x){const u=i("openwb-base-heading"),p=i("openwb-base-alert"),d=i("openwb-base-text-input"),s=i("openwb-base-number-input");return _(),b("div",v,[t(u,null,{default:r(()=>e[3]||(e[3]=[a(" Einstellungen für Siemens Sentron ",-1)])),_:1,__:[3]}),t(p,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[a(' Derzeit werden nur Messgeräte vom Typ "7KM PAC2200" mit Ethernet-Schnittstelle unterstützt. ',-1)])),_:1,__:[4]}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},null,8,["model-value"])])}const P=l(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/siemens_sentron/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-3ee6aa79.js b/web/settings/assets/device-3ee6aa79.js new file mode 100644 index 0000000000..7edacb3fc5 --- /dev/null +++ b/web/settings/assets/device-3ee6aa79.js @@ -0,0 +1 @@ +import{D as m}from"./HardwareInstallation-8066ca79.js";import{_ as u,u as s,l as p,m as l,G as t,E as r,B as a}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceLG",mixins:[m]},f={class:"device-lg"};function c(n,e,v,b,_,w){const d=s("openwb-base-heading"),o=s("openwb-base-text-input");return p(),l("div",f,[t(d,null,{default:r(()=>[...e[2]||(e[2]=[a(" Einstellungen für LG ESS V1.0 ",-1)])]),_:1}),t(o,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(o,{title:"Passwort",subtype:"password",required:"","model-value":n.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.password"))},{help:r(()=>[...e[3]||(e[3]=[a(' Passwort, um sich in den LG ESS V1.0 einzuloggen. Das Passwort ist standardmäßig die Registrierungsnummer, die sich auf einem Aufkleber auf dem PCS (dem Hybridwechselrichter und Batteriemanagementsystem) befindet. Alternativ findet man die Registrierungsnummer in der App unter dem Menüpunkt "Systeminformationen". Mit der Registrierungsnummer kann man sich dann in der Rolle "installer" einloggen. ',-1)])]),_:1},8,["model-value"])])}const h=u(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/lg/lg/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-3f7b60bf.js b/web/settings/assets/device-3f7b60bf.js new file mode 100644 index 0000000000..053278b19f --- /dev/null +++ b/web/settings/assets/device-3f7b60bf.js @@ -0,0 +1 @@ +import{D as p}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as t,l,m as d,G as i,E as u,B as c}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolarmax",mixins:[p]},f={class:"device-solarmax"};function b(o,e,v,g,x,w){const a=t("openwb-base-heading"),r=t("openwb-base-text-input"),s=t("openwb-base-number-input");return l(),d("div",f,[i(a,null,{default:u(()=>[...e[2]||(e[2]=[c(" Einstellungen für Solarmax ",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const P=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-400899e6.js b/web/settings/assets/device-400899e6.js new file mode 100644 index 0000000000..53557d9b81 --- /dev/null +++ b/web/settings/assets/device-400899e6.js @@ -0,0 +1 @@ +import{D as m}from"./HardwareInstallation-8066ca79.js";import{_ as v,u as t,l as i,m as f,G as a,E as c,B as b,x as u,z as r}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceAlphaess",mixins:[m]},_={class:"device-alphaess"};function w(e,o,V,C,B,E){const d=t("openwb-base-heading"),s=t("openwb-base-select-input"),p=t("openwb-base-text-input"),l=t("openwb-base-number-input");return i(),f("div",_,[a(d,null,{default:c(()=>[...o[5]||(o[5]=[b(" Einstellungen für Alpha ESS ",-1)])]),_:1}),a(s,{title:"Ausleseart","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Alpha ESS-Kit"},{value:1,text:"Hi 5/10"}],"model-value":e.device.configuration.source,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.source"))},null,8,["model-value"]),e.device.configuration.source==1?(i(),u(p,{key:0,title:"IP oder Hostname",subtype:"host",required:"","model-value":e.device.configuration.ip_address,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])):r("",!0),e.device.configuration.source==1?(i(),u(l,{key:1,title:"Port",required:"",min:1,max:65535,"model-value":e.device.configuration.port,"onUpdate:modelValue":o[2]||(o[2]=n=>e.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])):r("",!0),e.device.configuration.source==1?(i(),u(l,{key:2,title:"Modbus ID",required:"","model-value":e.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[3]||(o[3]=n=>e.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])):r("",!0),a(s,{title:"Firmware Version","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"EMS älter als 1.23V"},{value:1,text:"EMS 1.23V oder neuer"}],"model-value":e.device.configuration.version,"onUpdate:modelValue":o[4]||(o[4]=n=>e.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const x=v(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/alpha_ess/alpha_ess/device.vue"]]);export{x as default}; diff --git a/web/settings/assets/device-4301268c.js b/web/settings/assets/device-4301268c.js new file mode 100644 index 0000000000..a479b0260a --- /dev/null +++ b/web/settings/assets/device-4301268c.js @@ -0,0 +1 @@ +import{D as s}from"./HardwareInstallation-8066ca79.js";import{_ as d,u as i,l as u,m,G as t,E as l,B as f}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceAmpere",mixins:[s]},v={class:"device-ampere"};function _(o,e,c,g,w,C){const a=i("openwb-base-heading"),p=i("openwb-base-text-input"),r=i("openwb-base-number-input");return u(),m("div",v,[t(a,null,{default:l(()=>[...e[3]||(e[3]=[f(" Einstellungen für Ampere Pro",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const k=d(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/ampere/ampere/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-431b8934.js b/web/settings/assets/device-431b8934.js new file mode 100644 index 0000000000..d29d2b368f --- /dev/null +++ b/web/settings/assets/device-431b8934.js @@ -0,0 +1 @@ +import{D as d}from"./HardwareInstallation-8066ca79.js";import{_ as u,u as i,l as p,m as l,G as t,E as m,B as v}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceVarta",mixins:[d]},b={class:"device-varta"};function _(o,e,c,g,w,V){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",b,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[v(" Einstellungen für Varta ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=u(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/varta/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-4359519d.js b/web/settings/assets/device-4359519d.js deleted file mode 100644 index 86498810ba..0000000000 --- a/web/settings/assets/device-4359519d.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as t,l,m as u,G as i,E as m,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceOpenwbFlex",mixins:[a]},c={class:"device-openwb-flex"};function f(o,e,v,w,g,x){const p=t("openwb-base-heading"),s=t("openwb-base-text-input"),r=t("openwb-base-number-input");return l(),u("div",c,[i(p,null,{default:m(()=>e[2]||(e[2]=[_(" Einstellungen für openWB-Flex ",-1)])),_:1,__:[2]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-44029622.js b/web/settings/assets/device-44029622.js new file mode 100644 index 0000000000..45ea1182c8 --- /dev/null +++ b/web/settings/assets/device-44029622.js @@ -0,0 +1 @@ +import{D as u}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as i,l as c,m as b,G as t,E as r,B as a}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceKostalPlenticore",mixins:[u]},_={class:"device-kostal-plenticore"};function v(o,e,g,w,C,E){const l=i("openwb-base-heading"),p=i("openwb-base-alert"),d=i("openwb-base-text-input"),s=i("openwb-base-number-input");return c(),b("div",_,[t(l,null,{default:r(()=>[...e[3]||(e[3]=[a(" Einstellungen für Kostal Plenticore ",-1)])]),_:1}),t(p,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[a(" Wenn am Kostal Plenticore-Wechselrichter ein EM300 oder Kostal Smart Energy Meter (KSEM) angeschlossen ist, muss eine Zähler-und eine Wechselrichter-Komponente angelegt werden. ",-1)])]),_:1}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const $=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-444877fe.js b/web/settings/assets/device-444877fe.js deleted file mode 100644 index 0736758830..0000000000 --- a/web/settings/assets/device-444877fe.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSigenergy",mixins:[a]},c={class:"device-sigenergy"};function f(o,e,b,v,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",c,[i(r,null,{default:l(()=>e[2]||(e[2]=[_("Einstellungen für Sigenergy",-1)])),_:1,__:[2]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(g,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-45750f00.js b/web/settings/assets/device-45750f00.js deleted file mode 100644 index 50a7823830..0000000000 --- a/web/settings/assets/device-45750f00.js +++ /dev/null @@ -1 +0,0 @@ -import{D as p}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as i,l as v,m as b,G as n,E as s,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceGrowatt",mixins:[p]},g={class:"device-growatt"};function _(o,e,c,w,V,C){const a=i("openwb-base-heading"),d=i("openwb-base-text-input"),r=i("openwb-base-number-input"),l=i("openwb-base-select-input");return v(),b("div",g,[n(a,null,{default:s(()=>e[4]||(e[4]=[u("Einstellungen für Growatt",-1)])),_:1,__:[4]}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"]),n(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),n(l,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"MAX",text:"MAX Series"},{value:"TL-X",text:"TL-X Inverter"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=t=>o.updateConfiguration(t,"configuration.version"))},{help:s(()=>e[5]||(e[5]=[u(" Die Wahl der API-Version beeinflusst die Auslesung der Speicherleistung und der Import/ Export Werte des Zählers. ",-1)])),_:1},8,["model-value"])])}const X=m(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/growatt/growatt/device.vue"]]);export{X as default}; diff --git a/web/settings/assets/device-46dae0da.js b/web/settings/assets/device-46dae0da.js new file mode 100644 index 0000000000..e7dac9adef --- /dev/null +++ b/web/settings/assets/device-46dae0da.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-8066ca79.js";import{_ as d,u as n,l as m,m as u,G as i,E as l,B as c}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceMTec",mixins:[a]},f={class:"device-mtec"};function b(o,e,v,g,w,x){const s=n("openwb-base-heading"),r=n("openwb-base-text-input"),p=n("openwb-base-number-input");return m(),u("div",f,[i(s,null,{default:l(()=>[...e[2]||(e[2]=[c("Einstellungen für M-Tec",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const q=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-46ed909c.js b/web/settings/assets/device-46ed909c.js deleted file mode 100644 index a8f425ba7d..0000000000 --- a/web/settings/assets/device-46ed909c.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as s,l as m,m as u,G as n,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmartMe",mixins:[a]},f={class:"device-smart-me"};function _(o,e,v,b,g,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return m(),u("div",f,[n(r,null,{default:d(()=>e[2]||(e[2]=[l(" Einstellungen für smart-me ",-1)])),_:1,__:[2]}),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const y=p(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/device.vue"]]);export{y as default}; diff --git a/web/settings/assets/device-4b1ba85f.js b/web/settings/assets/device-4b1ba85f.js deleted file mode 100644 index 2f6ee28d3b..0000000000 --- a/web/settings/assets/device-4b1ba85f.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as t,l,m as p,G as i,E as s,B as n,A as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceMqtt",mixins:[a]},c={class:"device-mqtt"};function b(g,e,_,f,h,v){const r=t("openwb-base-heading"),o=t("openwb-base-alert");return l(),p("div",c,[i(r,null,{default:s(()=>e[0]||(e[0]=[n("Einstellungen für MQTT",-1)])),_:1,__:[0]}),i(o,{subtype:"info"},{default:s(()=>e[1]||(e[1]=[n(" Das MQTT Modul stellt keine aktive Verbindung her, sondern erwartet, dass die Daten an die angegebenen Topics im Broker gesendet werden. Alle Daten sind als gültiges JSON zu senden! Zahlen mit Nachkommastellen (Float) müssen einen Punkt als Dezimaltrenner verwenden (internationales Format). ",-1),m("br",null,null,-1),n(" Ab Version 2.1.8 wurden die Topics überarbeitet. Die bisherigen Topics openWB/set/bat/id/get/..., openWB/set/counter/id/get/... und openWB/set/pv/id/get/... bleiben aus Gründen der Abwärtskompatibilität weiterhin nutzbar. Wir empfehlen, auf die neuen Topics umzusteigen. Dies ermöglicht die Beseitigung von Einschränkungen, wie z. B. die fehlende Verrechnung bei Hybrid-Systemen oder die Berechnung fehlender Werte, wie der Phasen-Leistung aus Spannung und Stromstärken. ",-1)])),_:1,__:[1]})])}const M=d(u,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/device.vue"]]);export{M as default}; diff --git a/web/settings/assets/device-4b49e69a.js b/web/settings/assets/device-4b49e69a.js deleted file mode 100644 index 8acac1a9c7..0000000000 --- a/web/settings/assets/device-4b49e69a.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOrno",mixins:[a]},f={class:"device-orno"};function b(o,e,v,g,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",f,[i(r,null,{default:l(()=>e[2]||(e[2]=[_("Einstellungen für Orno WE-514",-1)])),_:1,__:[2]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const O=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/orno/orno/device.vue"]]);export{O as default}; diff --git a/web/settings/assets/device-4bbfca01.js b/web/settings/assets/device-4bbfca01.js deleted file mode 100644 index 30d98b956c..0000000000 --- a/web/settings/assets/device-4bbfca01.js +++ /dev/null @@ -1 +0,0 @@ -import{D as u}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as n,l as _,m as c,G as o,E as l,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceShelly",mixins:[u]},v={class:"device-shelly"};function b(t,e,g,h,w,y){const r=n("openwb-base-heading"),a=n("openwb-base-alert"),p=n("openwb-base-text-input"),d=n("openwb-base-select-input");return _(),c("div",v,[o(r,null,{default:l(()=>e[2]||(e[2]=[s(" Einstellungen für Shelly ",-1)])),_:1,__:[2]}),o(a,{subtype:"info"},{default:l(()=>e[3]||(e[3]=[s(" Unterstützt werden theoretisch alle ein- und dreiphasigen Shelly der Generation 1-3. Getestete Modelle sind Shelly 1pm, 1pm plus, Pro Pro 3EM, Plug S. ",-1)])),_:1,__:[3]}),o(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),o(d,{title:"Vorzeichen invertieren","not-selected":"Bitte auswählen",options:[{value:-1,text:"ja"},{value:1,text:"nein"}],"model-value":t.device.configuration.factor,required:"","onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.factor"))},{help:l(()=>e[4]||(e[4]=[s(" Einige Shelly Modelle liefern die Leistung mit umgedrehtem Vorzeichen. Falls dies der Fall sein sollte, das Vorzeichen invertieren. ",-1)])),_:1},8,["model-value"])])}const $=m(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/shelly/shelly/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-4c47ea65.js b/web/settings/assets/device-4c47ea65.js deleted file mode 100644 index f89480392e..0000000000 --- a/web/settings/assets/device-4c47ea65.js +++ /dev/null @@ -1 +0,0 @@ -import{D as p}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as i,l as g,m as b,G as t,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolax",mixins:[p]},v={class:"device-solax"};function _(n,e,c,w,x,G){const l=i("openwb-base-heading"),d=i("openwb-base-text-input"),a=i("openwb-base-number-input"),u=i("openwb-base-select-input");return g(),b("div",v,[t(l,null,{default:r(()=>e[4]||(e[4]=[s(" Einstellungen für Solax ",-1)])),_:1,__:[4]}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",min:1,max:65535,placeholder:502,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},{help:r(()=>e[5]||(e[5]=[s(" Standardmäßig ist der Port 502. Dieser sollte nur geändert werden, wenn der Solax Wechselrichter auf einen anderen Port konfiguriert wurde. ",-1)])),_:1},8,["model-value"]),t(a,{title:"Modbus-ID",required:"",min:0,max:255,"model-value":n.device.configuration.modbus_id,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},{help:r(()=>e[6]||(e[6]=[s(" Laut der Schnittstellenbeschreibung ist die ID bei Solax ab Werk auf 1 gesetzt. Entgegen der Beschreibung ist meist für Gen4 eine ID größer als 2 eingestellt. Bei Gen3 sogar (gegen jeglicher Modbus Standards) eine 0. ",-1)])),_:1},8,["model-value"]),t(u,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:"g2",text:"Gen 2"},{value:"g3",text:"Gen 3 & Gen4"},{value:"g4",text:"Gen 4 Boost & Gen 4 Mini"}],"model-value":n.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.version"))},null,8,["model-value"])])}const P=m(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solax/solax/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-4ce19f90.js b/web/settings/assets/device-4ce19f90.js new file mode 100644 index 0000000000..510d289a40 --- /dev/null +++ b/web/settings/assets/device-4ce19f90.js @@ -0,0 +1 @@ +import{D as p}from"./HardwareInstallation-8066ca79.js";import{_ as d,u as i,l,m,G as t,E as v,B as b}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceUPower",mixins:[p]},c={class:"device-upower"};function _(o,e,g,w,C,U){const r=i("openwb-base-heading"),a=i("openwb-base-text-input"),u=i("openwb-base-number-input"),s=i("openwb-base-select-input");return l(),m("div",c,[t(r,null,{default:v(()=>[...e[4]||(e[4]=[b("Einstellungen für UPower",-1)])]),_:1}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),t(s,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:"1",text:"Gen 1"},{value:"2",text:"Gen 2"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const k=d(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/upower/upower/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-50f7a9ff.js b/web/settings/assets/device-50f7a9ff.js new file mode 100644 index 0000000000..1c3bb1661c --- /dev/null +++ b/web/settings/assets/device-50f7a9ff.js @@ -0,0 +1 @@ +import{D as u}from"./HardwareInstallation-8066ca79.js";import{_ as l,u as i,l as p,m as d,G as t,E as m,B as v}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolarView",mixins:[u]},_={class:"device-solar-view"};function c(o,e,b,g,w,V){const a=i("openwb-base-heading"),s=i("openwb-base-text-input"),r=i("openwb-base-number-input");return p(),d("div",_,[t(a,null,{default:m(()=>[...e[3]||(e[3]=[v(" Einstellungen für SolarView ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Timeout",required:"","model-value":o.device.configuration.timeout,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.timeout"))},null,8,["model-value"])])}const N=l(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/solar_view/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-52049b98.js b/web/settings/assets/device-52049b98.js deleted file mode 100644 index f728e6ff63..0000000000 --- a/web/settings/assets/device-52049b98.js +++ /dev/null @@ -1 +0,0 @@ -import{D as g}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as s,l as p,m as k,G as l,E as u,B as t,A as n,F as a,x as A,z as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const w={name:"DeviceSonnenbatterie",mixins:[g],computed:{linkRestApi1(){return"http://"+this.device.configuration.ip_address+":7979/rest/devices/battery"},linkRestApi2(){return"http://"+this.device.configuration.ip_address+":7979/rest/devices/battery/M05"},linkJsonApi1(){return"http://"+this.device.configuration.ip_address+"/api/v1/status"},linkJsonApi2(){return"http://"+this.device.configuration.ip_address+"/api/v2/status"}}},B={class:"device-sonnenbatterie"},I=["href"],S=["href"],P=["href"],J=["href"];function z(i,e,R,C,D,r){const v=s("openwb-base-heading"),f=s("openwb-base-alert"),d=s("openwb-base-text-input"),b=s("openwb-base-select-input");return p(),k("div",B,[l(v,null,{default:u(()=>e[3]||(e[3]=[t(" Einstellungen für SonnenBatterie ",-1)])),_:1,__:[3]}),l(f,{subtype:"info"},{default:u(()=>e[4]||(e[4]=[t(' Die Leistung steht nur in den Varianten "Rest-API 2" und "JSON-API" zur Verfügung.',-1),n("br",null,null,-1),t(" Die aktive Steuerung des Speichers durch openWB ist nur mit der JSON-API v2 möglich. ",-1)])),_:1,__:[4]}),l(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),l(b,{title:"Datenverbindung",required:"","not-selected":"Bitte auswählen",options:[{value:0,text:"Rest-API 1 (z.B. ECO 4)"},{value:2,text:"Rest-API 2 (z.B. ECO 6)"},{value:1,text:"JSON-API v1(z.B. ECO 8 oder 10)"},{value:3,text:"JSON-API v2(z.B. ECO 8 oder 10)"}],"model-value":i.device.configuration.variant,"onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o,"configuration.variant"))},{help:u(()=>[e[5]||(e[5]=t(" Je nach SonnenBatterie muss die richtige Datenverbindung ausgewählt werden. Folgende URLs werden zum Abruf der Daten genutzt und können auch manuell über einen Browser abgefragt werden, um die richtige Einstellung zu finden:",-1)),e[6]||(e[6]=n("br",null,null,-1)),e[7]||(e[7]=t(" Rest-API 1: ",-1)),n("a",{href:r.linkRestApi1,target:"_blank",rel:"noopener noreferrer"},a(r.linkRestApi1),9,I),e[8]||(e[8]=n("br",null,null,-1)),e[9]||(e[9]=t(" Rest-API 2: ",-1)),n("a",{href:r.linkRestApi2,target:"_blank",rel:"noopener noreferrer"},a(r.linkRestApi2),9,S),e[10]||(e[10]=n("br",null,null,-1)),e[11]||(e[11]=t(" JSON-API v1: ",-1)),n("a",{href:r.linkJsonApi1,target:"_blank",rel:"noopener noreferrer"},a(r.linkJsonApi1),9,P),e[12]||(e[12]=n("br",null,null,-1)),e[13]||(e[13]=t(" JSON-API v2: ",-1)),n("a",{href:r.linkJsonApi2,target:"_blank",rel:"noopener noreferrer"},a(r.linkJsonApi2),9,J),e[14]||(e[14]=n("br",null,null,-1))]),_:1},8,["model-value"]),i.device.configuration.variant===3?(p(),A(d,{key:0,title:"API-Token",subtype:"password",required:"","model-value":i.device.configuration.api_v2_token,"onUpdate:modelValue":e[2]||(e[2]=o=>i.updateConfiguration(o,"configuration.api_v2_token"))},{help:u(()=>e[15]||(e[15]=[t(' API-Token für JSON-API v2. Dieses Token wird benötigt, um detaillierte Daten auszulesen und den Speicher aktiv zu steuern (optional). Es kann in der Weboberfläche der SonnenBatterie unter "Software-Integration" erstellt werden.',-1),n("br",null,null,-1),t(' Für die aktive Steuerung durch openWB ist ebenfalls die "Write API" zu aktivieren! ',-1)])),_:1},8,["model-value"])):_("",!0)])}const T=m(w,[["render",z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/device.vue"]]);export{T as default}; diff --git a/web/settings/assets/device-5343ce64.js b/web/settings/assets/device-5343ce64.js new file mode 100644 index 0000000000..d48bb7a701 --- /dev/null +++ b/web/settings/assets/device-5343ce64.js @@ -0,0 +1 @@ +import{D as r}from"./HardwareInstallation-8066ca79.js";import{_ as l,u as n,l as u,m as d,G as a,E as m,B as c}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceTasmota",mixins:[r]},v={class:"device-tasmota"};function f(t,e,b,g,w,x){const i=n("openwb-base-heading"),s=n("openwb-base-text-input"),p=n("openwb-base-select-input");return u(),d("div",v,[a(i,null,{default:m(()=>[...e[2]||(e[2]=[c("Einstellungen für Tasmota",-1)])]),_:1}),a(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),a(p,{title:"Phase","not-selected":"Bitte auswählen",options:[{value:1,text:"1"},{value:2,text:"2"},{value:3,text:"3"}],"model-value":t.device.configuration.phase,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.phase"))},null,8,["model-value"])])}const q=l(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tasmota/tasmota/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-54b2f204.js b/web/settings/assets/device-54b2f204.js deleted file mode 100644 index fdf8a2d124..0000000000 --- a/web/settings/assets/device-54b2f204.js +++ /dev/null @@ -1 +0,0 @@ -import{D as p}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as i,l as u,m as l,G as t,E as m,B as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSaxpower",mixins:[p]},b={class:"device-saxpower"};function v(o,e,c,g,w,x){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return u(),l("div",b,[t(r,null,{default:m(()=>e[3]||(e[3]=[f(" Einstellungen für Saxpower ",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=d(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/saxpower/saxpower/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-57c43c99.js b/web/settings/assets/device-57c43c99.js deleted file mode 100644 index 9954ec58b1..0000000000 --- a/web/settings/assets/device-57c43c99.js +++ /dev/null @@ -1 +0,0 @@ -import{D as p}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as i,l as b,m as _,G as t,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceAlgodue",mixins:[p]},v={class:"device-algodue"};function g(o,e,c,w,C,D){const a=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),u=i("openwb-base-number-input");return b(),_("div",v,[t(a,null,{default:r(()=>e[3]||(e[3]=[s(" Einstellungen für Algodue",-1)])),_:1,__:[3]}),t(d,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[s(" ModbusTCP muss aktiviert sein. Der Zähler ist auf Modbus-ID 1 und Port 502 vorkonfiguriert. ",-1)])),_:1,__:[4]}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/algodue/algodue/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-585500cc.js b/web/settings/assets/device-585500cc.js deleted file mode 100644 index c8a1433b40..0000000000 --- a/web/settings/assets/device-585500cc.js +++ /dev/null @@ -1 +0,0 @@ -import{D as u}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as o,l as b,m as _,G as t,E as s,B as r,A as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolarEdge",mixins:[u]},g={class:"device-solaredge"};function v(n,e,w,B,h,S){const a=o("openwb-base-heading"),d=o("openwb-base-alert"),p=o("openwb-base-text-input"),l=o("openwb-base-number-input");return b(),_("div",g,[t(a,null,{default:s(()=>e[2]||(e[2]=[r(" Einstellungen für SolarEdge ",-1)])),_:1,__:[2]}),t(d,{subtype:"info"},{default:s(()=>e[3]||(e[3]=[r(" ModbusTCP muss im Wechselrichter aktiviert werden und der Wechselrichter per LAN angebunden sein.",-1),c("br",null,null,-1),r(" SolarEdge lässt nur eine ModbusTCP-Verbindung zu. Wenn Sie mit einem weiteren SmartHome-System, wie z.B. ioBroker oder openHAB, den SolarEdge-Wechselrichter abfragen, kann dies die Abfrage durch die openWB stören oder verhindern. ",-1)])),_:1,__:[3]}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(l,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.port"))},{help:s(()=>e[4]||(e[4]=[r(" Je nach Produktionsdatum und Softwareversion ist 502 oder 1502 ab Werk eingestellt. Bitte im Wechselrichter überprüfen. ",-1)])),_:1},8,["model-value"])])}const $=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-5c141e99.js b/web/settings/assets/device-5c141e99.js deleted file mode 100644 index 903d3b0307..0000000000 --- a/web/settings/assets/device-5c141e99.js +++ /dev/null @@ -1 +0,0 @@ -import{D as d}from"./HardwareInstallation-be759b0c.js";import{_ as l,u as o,l as u,m,G as i,E as r,B as t,A as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceHttp",mixins:[d]},f={class:"device-http"};function v(n,e,b,g,w,x){const s=o("openwb-base-heading"),p=o("openwb-base-text-input");return u(),m("div",f,[i(s,null,{default:r(()=>e[1]||(e[1]=[t(" Einstellungen für Http ",-1)])),_:1,__:[1]}),i(p,{title:"Server-URL",subtype:"url",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.url"))},{help:r(()=>e[2]||(e[2]=[t(" Hier sind die Verbindungsangaben für den Http-Server einzutragen. Der Pfad für die einzelnen Daten wird in der Komponente hinterlegt.",-1),c("br",null,null,-1),t(" Beispiel: http://mein.server:8080 ",-1)])),_:1},8,["model-value"])])}const k=l(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-5cab91ce.js b/web/settings/assets/device-5cab91ce.js new file mode 100644 index 0000000000..fe7b106494 --- /dev/null +++ b/web/settings/assets/device-5cab91ce.js @@ -0,0 +1 @@ +import{D as m}from"./HardwareInstallation-8066ca79.js";import{_ as l,u as i,l as b,m as f,G as t,E as r,B as a}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSiemensSentron",mixins:[m]},v={class:"device-siemens-sentron"};function c(n,e,g,w,C,x){const u=i("openwb-base-heading"),p=i("openwb-base-alert"),d=i("openwb-base-text-input"),s=i("openwb-base-number-input");return b(),f("div",v,[t(u,null,{default:r(()=>[...e[3]||(e[3]=[a(" Einstellungen für Siemens Sentron ",-1)])]),_:1}),t(p,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[a(' Derzeit werden nur Messgeräte vom Typ "7KM PAC2200" mit Ethernet-Schnittstelle unterstützt. ',-1)])]),_:1}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},null,8,["model-value"])])}const P=l(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/siemens_sentron/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-6017ed76.js b/web/settings/assets/device-6017ed76.js deleted file mode 100644 index 3393e0b26f..0000000000 --- a/web/settings/assets/device-6017ed76.js +++ /dev/null @@ -1 +0,0 @@ -import{D as l}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as n,l as p,m as c,G as t,E as r,B as o,A as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceFronius",mixins:[l]},b={class:"device-fronius"};function g(i,e,v,h,w,S){const s=n("openwb-base-heading"),a=n("openwb-base-alert"),d=n("openwb-base-text-input");return p(),c("div",b,[t(s,null,{default:r(()=>e[1]||(e[1]=[o(" Einstellungen für Fronius ",-1)])),_:1,__:[1]}),t(a,{subtype:"info"},{default:r(()=>e[2]||(e[2]=[o(" Die Fronius API muss aktiviert sein.",-1),_("br",null,null,-1),o(" Sind nur Symos in Nutzung, welche über Fronius Solar Net / DATCOM miteinander verbunden sind, muss nur ein Gerät mit einer Komponente Wechselrichter angelegt werden. Sind aber z.B. Symo und Symo Hybrid im Einsatz, muss für jeden Wechselrichter ein Gerät mit einer Komponente Wechselrichter angelegt werden. Die Zähler-Komponente für das Smart-Meter wird in dem Gerät angelegt, dass den Wechselrichter enthält, an den das SmartMeter angeschlossen ist. ",-1)])),_:1,__:[2]}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=u=>i.updateConfiguration(u,"configuration.ip_address"))},null,8,["model-value"])])}const G=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/device.vue"]]);export{G as default}; diff --git a/web/settings/assets/device-60677da2.js b/web/settings/assets/device-60677da2.js new file mode 100644 index 0000000000..6f7f87b1d1 --- /dev/null +++ b/web/settings/assets/device-60677da2.js @@ -0,0 +1 @@ +import{D as p}from"./HardwareInstallation-8066ca79.js";import{_ as r,u as t,l as d,m,G as n,E as l,B as u}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmaWebbox",mixins:[p]},_={class:"device-sma-webbox"};function b(o,e,f,v,x,g){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),m("div",_,[n(i,null,{default:l(()=>[...e[1]||(e[1]=[u(" Einstellungen für SMA Webbox ",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const k=r(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_webbox/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-6081837f.js b/web/settings/assets/device-6081837f.js deleted file mode 100644 index 018514a8e3..0000000000 --- a/web/settings/assets/device-6081837f.js +++ /dev/null @@ -1 +0,0 @@ -import{D as l}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as n,l as _,m as b,G as t,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSunnyBoy",mixins:[l]},f={class:"device-sunnyboy"};function v(o,e,w,g,y,x){const a=n("openwb-base-heading"),p=n("openwb-base-alert"),d=n("openwb-base-text-input"),u=n("openwb-base-number-input");return _(),b("div",f,[t(a,null,{default:r(()=>e[2]||(e[2]=[s(" Einstellungen für SMA Sunny Boy/Tripower ",-1)])),_:1,__:[2]}),t(p,{subtype:"info"},{default:r(()=>e[3]||(e[3]=[s(' ModbusTCP muss entweder direkt am Wechselrichter, per Sunny Portal oder über das Tool "Sunny Explorer" aktiviert werden. Dies ist standardmäßig deaktiviert. ',-1)])),_:1,__:[3]}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const $=m(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-642a9f6f.js b/web/settings/assets/device-642a9f6f.js new file mode 100644 index 0000000000..9633cc8e20 --- /dev/null +++ b/web/settings/assets/device-642a9f6f.js @@ -0,0 +1 @@ +import{D as r}from"./HardwareInstallation-8066ca79.js";import{_ as d,u as i,l as u,m as p,G as t,E as m,B as c}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceQCells",mixins:[r]},b={class:"device-qcells"};function v(o,e,_,g,w,C){const l=i("openwb-base-heading"),a=i("openwb-base-text-input"),s=i("openwb-base-number-input");return u(),p("div",b,[t(l,null,{default:m(()=>[...e[3]||(e[3]=[c(" Einstellungen für QCells ESS ",-1)])]),_:1}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=d(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/qcells/qcells/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-659f1d77.js b/web/settings/assets/device-659f1d77.js new file mode 100644 index 0000000000..2e5396b863 --- /dev/null +++ b/web/settings/assets/device-659f1d77.js @@ -0,0 +1 @@ +import{D as s}from"./HardwareInstallation-8066ca79.js";import{_ as u,u as i,l as p,m as l,G as t,E as m,B as c}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceE3dc",mixins:[s]},b={class:"device-e3dc"};function v(o,e,_,g,w,C){const a=i("openwb-base-heading"),r=i("openwb-base-text-input"),d=i("openwb-base-number-input");return p(),l("div",b,[t(a,null,{default:m(()=>[...e[3]||(e[3]=[c(" Einstellungen für E3DC ",-1)])]),_:1}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.address"))},null,8,["model-value"]),t(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(d,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=u(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/e3dc/e3dc/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-65c6662e.js b/web/settings/assets/device-65c6662e.js new file mode 100644 index 0000000000..a97cfa39af --- /dev/null +++ b/web/settings/assets/device-65c6662e.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-8066ca79.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as c}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceVictron",mixins:[a]},v={class:"device-victron"};function f(o,e,b,g,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",v,[i(r,null,{default:l(()=>[...e[2]||(e[2]=[c(" Einstellungen für Victron ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const P=d(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-671bcffc.js b/web/settings/assets/device-671bcffc.js new file mode 100644 index 0000000000..33b0ec5b1e --- /dev/null +++ b/web/settings/assets/device-671bcffc.js @@ -0,0 +1 @@ +import{D as d}from"./HardwareInstallation-8066ca79.js";import{_ as u,u as i,l,m as p,G as t,E as m,B as f}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceKostalSEM",mixins:[d]},v={class:"device-kostal-sem"};function _(o,e,c,g,w,C){const s=i("openwb-base-heading"),r=i("openwb-base-text-input"),a=i("openwb-base-number-input");return l(),p("div",v,[t(s,null,{default:m(()=>[...e[3]||(e[3]=[f(" Einstellungen für Kostal Smart Energy Meter oder TQ EM 410 ",-1)])]),_:1}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_sem/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-6ea8eb37.js b/web/settings/assets/device-6ea8eb37.js deleted file mode 100644 index dce2cd4b48..0000000000 --- a/web/settings/assets/device-6ea8eb37.js +++ /dev/null @@ -1 +0,0 @@ -import{D as p}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as i,l,m,G as t,E as v,B as b}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceUPower",mixins:[p]},_={class:"device-upower"};function c(o,e,g,w,C,U){const r=i("openwb-base-heading"),a=i("openwb-base-text-input"),u=i("openwb-base-number-input"),s=i("openwb-base-select-input");return l(),m("div",_,[t(r,null,{default:v(()=>e[4]||(e[4]=[b("Einstellungen für UPower",-1)])),_:1,__:[4]}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),t(s,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:"1",text:"Gen 1"},{value:"2",text:"Gen 2"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const k=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/upower/upower/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-7163038e.js b/web/settings/assets/device-7163038e.js new file mode 100644 index 0000000000..420de878c6 --- /dev/null +++ b/web/settings/assets/device-7163038e.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-8066ca79.js";import{_ as d,u as n,l as u,m,G as i,E as l,B as c}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceStuder",mixins:[a]},f={class:"device-studer"};function b(o,e,v,g,w,x){const r=n("openwb-base-heading"),s=n("openwb-base-text-input"),p=n("openwb-base-number-input");return u(),m("div",f,[i(r,null,{default:l(()=>[...e[2]||(e[2]=[c(" Einstellungen für Studer ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const P=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-75b024ee.js b/web/settings/assets/device-75b024ee.js new file mode 100644 index 0000000000..fb6cd7968c --- /dev/null +++ b/web/settings/assets/device-75b024ee.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-8066ca79.js";import{_ as p,u as o,l as d,m,G as n,E as l,B as u}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceBatterX",mixins:[a]},_={class:"device-batterx"};function f(t,e,b,v,x,g){const i=o("openwb-base-heading"),s=o("openwb-base-text-input");return d(),m("div",_,[n(i,null,{default:l(()=>[...e[1]||(e[1]=[u(" Einstellungen für BatterX ",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const N=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/batterx/batterx/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-765526b8.js b/web/settings/assets/device-765526b8.js new file mode 100644 index 0000000000..b3d3752d4e --- /dev/null +++ b/web/settings/assets/device-765526b8.js @@ -0,0 +1 @@ +import{D as d}from"./HardwareInstallation-8066ca79.js";import{_ as u,u as t,l as p,m,G as i,E as l,B as f}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceThermia",mixins:[d]},v={class:"device-thermia"};function _(o,e,c,g,w,C){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return p(),m("div",v,[i(r,null,{default:l(()=>[...e[3]||(e[3]=[f(" Einstellungen für Thermia ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/thermia/thermia/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-77ab491f.js b/web/settings/assets/device-77ab491f.js deleted file mode 100644 index c1713e786c..0000000000 --- a/web/settings/assets/device-77ab491f.js +++ /dev/null @@ -1 +0,0 @@ -import{D as u}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as n,l,m as c,G as i,E as a,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceKaco",mixins:[u]},f={class:"device-kaco"};function b(o,e,v,g,w,x){const s=n("openwb-base-heading"),p=n("openwb-base-text-input"),d=n("openwb-base-number-input");return l(),c("div",f,[i(s,null,{default:a(()=>e[2]||(e[2]=[r(" Einstellungen für Kaco ",-1)])),_:1,__:[2]}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},{help:a(()=>e[3]||(e[3]=[r(" Der Standardport für Kaco ist 502. ",-1)])),_:1},8,["model-value"])])}const N=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_tx/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-78a44c29.js b/web/settings/assets/device-78a44c29.js new file mode 100644 index 0000000000..4b7b234ec8 --- /dev/null +++ b/web/settings/assets/device-78a44c29.js @@ -0,0 +1 @@ +import{D as m}from"./HardwareInstallation-8066ca79.js";import{_ as b,u as i,l as g,m as v,G as t,E as r,B as u}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSungrow",mixins:[m]},w={class:"device-sungrow"};function _(n,e,c,S,D,N){const s=i("openwb-base-heading"),d=i("openwb-base-alert"),a=i("openwb-base-text-input"),l=i("openwb-base-number-input"),p=i("openwb-base-select-input");return g(),v("div",w,[t(s,null,{default:r(()=>[...e[4]||(e[4]=[u(" Einstellungen für Sungrow ",-1)])]),_:1}),t(d,{subtype:"info"},{default:r(()=>[...e[5]||(e[5]=[u(" Bitte zur Fehlervermeidung die Firmware des Sungrow Wechselrichters und WiNet-S Dongles aktuell halten. ",-1)])]),_:1}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(l,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"]),t(l,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},null,8,["model-value"]),t(p,{title:"Version",options:[{value:0,text:"SH (Hybrid)"},{value:3,text:"SH (Hybrid) über WiNet-S Dongle"},{value:1,text:"SG (kein Hybrid)"},{value:2,text:"SG (kein Hybrid) über WiNet-S Dongle"}],"model-value":n.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.version"))},{help:r(()=>[...e[6]||(e[6]=[u(" Die Variante SH sollte möglichst über den internen LAN-Port genutzt werden (befindet sich am Wechselrichter hinter dem WiNet-S Dongle), da nur hier alle Werte vollständig ausgelesen werden können. Den WiNet-S Dongle zusätzlich ins Heimnetz (per LAN oder WLAN) einbinden, um iSolarCloud nutzen zu können. ",-1)])]),_:1},8,["model-value"])])}const h=b(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-7a7db35b.js b/web/settings/assets/device-7a7db35b.js deleted file mode 100644 index 0540084057..0000000000 --- a/web/settings/assets/device-7a7db35b.js +++ /dev/null @@ -1 +0,0 @@ -import{D as d}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as t,l,m as u,G as n,E as i,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceVZLogger",mixins:[d]},_={class:"device-vzlogger"};function c(o,e,v,f,b,w){const r=t("openwb-base-heading"),p=t("openwb-base-text-input");return l(),u("div",_,[n(r,null,{default:i(()=>e[1]||(e[1]=[s(" Einstellungen für VZLogger ",-1)])),_:1,__:[1]}),n(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},{help:i(()=>e[2]||(e[2]=[s(" Bei Angabe des Ports muss auch das Schema mit angegeben werden: http://ip:port ",-1)])),_:1},8,["model-value"])])}const k=m(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-7c75fb7c.js b/web/settings/assets/device-7c75fb7c.js deleted file mode 100644 index 1c917a7101..0000000000 --- a/web/settings/assets/device-7c75fb7c.js +++ /dev/null @@ -1 +0,0 @@ -import{D as l}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as t,l as d,m as u,G as i,E as s,B as o,A as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceJson",mixins:[l]},f={class:"device-json"};function b(n,e,v,g,w,x){const r=t("openwb-base-heading"),a=t("openwb-base-text-input");return d(),u("div",f,[i(r,null,{default:s(()=>e[1]||(e[1]=[o(" Einstellungen für JSON ",-1)])),_:1,__:[1]}),i(a,{title:"URL",subtype:"url",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=p=>n.updateConfiguration(p,"configuration.url"))},{help:s(()=>e[2]||(e[2]=[o(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen, optional einem Port und einem Pfad. Die Antwort muss ein json-Objekt sein.",-1),c("br",null,null,-1),o(" Beispiel: http://192.168.1.1:8080/json?data=1 ",-1)])),_:1},8,["model-value"])])}const $=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-7d03d320.js b/web/settings/assets/device-7d03d320.js deleted file mode 100644 index 4d9a264b98..0000000000 --- a/web/settings/assets/device-7d03d320.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as t,l as d,m as l,G as n,E as m,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceSolarWorld",mixins:[a]},c={class:"device-solar_world"};function f(o,e,v,b,w,g){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),l("div",c,[n(i,null,{default:m(()=>e[1]||(e[1]=[_(" Einstellungen für SolarWorld ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const k=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_world/solar_world/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-7def54a5.js b/web/settings/assets/device-7def54a5.js deleted file mode 100644 index be22032635..0000000000 --- a/web/settings/assets/device-7def54a5.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as t,l,m as d,G as n,E as m,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceSolarLog",mixins:[a]},c={class:"device-solar_log"};function f(o,e,g,v,b,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return l(),d("div",c,[n(i,null,{default:m(()=>e[1]||(e[1]=[_(" Einstellungen für Solar-Log ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const L=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/solar_log/device.vue"]]);export{L as default}; diff --git a/web/settings/assets/device-803b339a.js b/web/settings/assets/device-803b339a.js deleted file mode 100644 index f7b2fd0ea1..0000000000 --- a/web/settings/assets/device-803b339a.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceFoxEss",mixins:[a]},f={class:"device-fox_ess"};function b(o,e,v,g,x,w){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",f,[i(s,null,{default:l(()=>e[2]||(e[2]=[_("Einstellungen für FoxEss",-1)])),_:1,__:[2]}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-80cfaffc.js b/web/settings/assets/device-80cfaffc.js new file mode 100644 index 0000000000..c28061447f --- /dev/null +++ b/web/settings/assets/device-80cfaffc.js @@ -0,0 +1 @@ +import{D as p}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as i,l as b,m as f,G as t,E as r,B as s}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const v={name:"DeviceAlgodue",mixins:[p]},_={class:"device-algodue"};function g(o,e,c,w,C,D){const a=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),u=i("openwb-base-number-input");return b(),f("div",_,[t(a,null,{default:r(()=>[...e[3]||(e[3]=[s(" Einstellungen für Algodue",-1)])]),_:1}),t(d,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[s(" ModbusTCP muss aktiviert sein. Der Zähler ist auf Modbus-ID 1 und Port 502 vorkonfiguriert. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=m(v,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/algodue/algodue/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-85f57776.js b/web/settings/assets/device-85f57776.js deleted file mode 100644 index b04d1996f8..0000000000 --- a/web/settings/assets/device-85f57776.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as o,l as d,m,G as n,E as l,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceBatterX",mixins:[a]},_={class:"device-batterx"};function f(t,e,b,v,x,g){const i=o("openwb-base-heading"),s=o("openwb-base-text-input");return d(),m("div",_,[n(i,null,{default:l(()=>e[1]||(e[1]=[u(" Einstellungen für BatterX ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const N=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/batterx/batterx/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-8684e5fd.js b/web/settings/assets/device-8684e5fd.js new file mode 100644 index 0000000000..ed1c6ddaf8 --- /dev/null +++ b/web/settings/assets/device-8684e5fd.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-8066ca79.js";import{_ as p,u as t,l as m,m as d,G as n,E as l,B as u}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmartfox",mixins:[a]},f={class:"device-smartfox"};function _(o,e,v,x,b,g){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return m(),d("div",f,[n(i,null,{default:l(()=>[...e[1]||(e[1]=[u(" Einstellungen für Smartfox ",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const N=p(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smartfox/smartfox/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-86e0a461.js b/web/settings/assets/device-86e0a461.js deleted file mode 100644 index 5332b6adab..0000000000 --- a/web/settings/assets/device-86e0a461.js +++ /dev/null @@ -1 +0,0 @@ -import{D as r}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as t,l as d,m as u,G as n,E as l,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceOpenDTU",mixins:[r]},_={class:"device-opendtu"};function f(o,e,v,b,g,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),u("div",_,[n(i,null,{default:l(()=>e[1]||(e[1]=[m("Einstellungen für OpenDTU",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.url"))},null,8,["model-value"])])}const h=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/opendtu/opendtu/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-8739b2fb.js b/web/settings/assets/device-8739b2fb.js deleted file mode 100644 index fbce10b213..0000000000 --- a/web/settings/assets/device-8739b2fb.js +++ /dev/null @@ -1 +0,0 @@ -import{D as p}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as t,l as m,m as d,G as n,E as l,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceMystrom",mixins:[p]},_={class:"device-mystrom"};function f(o,e,v,b,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return m(),d("div",_,[n(s,null,{default:l(()=>e[1]||(e[1]=[u("Einstellungen für mystrom",-1)])),_:1,__:[1]}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const k=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mystrom/mystrom/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-8743d202.js b/web/settings/assets/device-8743d202.js new file mode 100644 index 0000000000..637373e5e9 --- /dev/null +++ b/web/settings/assets/device-8743d202.js @@ -0,0 +1 @@ +import{D as r}from"./HardwareInstallation-8066ca79.js";import{_ as p,u as t,l as d,m as l,G as n,E as c,B as m}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceKostalSteca",mixins:[r]},_={class:"device-kostal-steca"};function f(o,e,v,b,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),l("div",_,[n(s,null,{default:c(()=>[...e[1]||(e[1]=[m(" Einstellungen für Kostal Piko MP oder Steca Grid Coolcept ",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const h=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_steca/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-881b7363.js b/web/settings/assets/device-881b7363.js new file mode 100644 index 0000000000..38152fb381 --- /dev/null +++ b/web/settings/assets/device-881b7363.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-8066ca79.js";import{_ as d,u as t,l,m as u,G as i,E as m,B as _}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceOpenwbFlex",mixins:[a]},c={class:"device-openwb-flex"};function f(o,e,v,w,g,x){const p=t("openwb-base-heading"),s=t("openwb-base-text-input"),r=t("openwb-base-number-input");return l(),u("div",c,[i(p,null,{default:m(()=>[...e[2]||(e[2]=[_(" Einstellungen für openWB-Flex ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-88f4058a.js b/web/settings/assets/device-88f4058a.js new file mode 100644 index 0000000000..28ccc34fdb --- /dev/null +++ b/web/settings/assets/device-88f4058a.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-8066ca79.js";import{_ as p,u as t,l,m as d,G as n,E as m,B as u}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolarLog",mixins:[a]},c={class:"device-solar_log"};function f(o,e,g,v,b,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return l(),d("div",c,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solar-Log ",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const L=p(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/solar_log/device.vue"]]);export{L as default}; diff --git a/web/settings/assets/device-8ad316ba.js b/web/settings/assets/device-8ad316ba.js new file mode 100644 index 0000000000..b9ea668bdd --- /dev/null +++ b/web/settings/assets/device-8ad316ba.js @@ -0,0 +1 @@ +import{D as d}from"./HardwareInstallation-8066ca79.js";import{_ as u,u as i,l as p,m as l,G as t,E as m,B as f}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceSofar",mixins:[d]},v={class:"device-sofar"};function _(o,e,c,g,w,C){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",v,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[f("Einstellungen für Sofar",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=u(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sofar/sofar/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-8bca7e20.js b/web/settings/assets/device-8bca7e20.js new file mode 100644 index 0000000000..1431b88dfb --- /dev/null +++ b/web/settings/assets/device-8bca7e20.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-8066ca79.js";import{_ as p,u as s,l as d,m as u,G as n,E as l,B as m}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceDiscovergy",mixins:[a]},v={class:"device-discovergy"};function f(o,e,g,_,b,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return d(),u("div",v,[n(r,null,{default:l(()=>[...e[2]||(e[2]=[m(" Einstellungen für Discovergy ",-1)])]),_:1}),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const q=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-8ec43ff9.js b/web/settings/assets/device-8ec43ff9.js deleted file mode 100644 index 2e76676cf1..0000000000 --- a/web/settings/assets/device-8ec43ff9.js +++ /dev/null @@ -1 +0,0 @@ -import{D as p}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as t,l as d,m as c,G as n,E as m,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceRCT",mixins:[p]},_={class:"device-rct"};function f(o,e,v,b,g,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),c("div",_,[n(i,null,{default:m(()=>e[1]||(e[1]=[l(" Einstellungen für RCT ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const k=a(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/rct/rct/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-91624bc5.js b/web/settings/assets/device-91624bc5.js deleted file mode 100644 index 017f078cf7..0000000000 --- a/web/settings/assets/device-91624bc5.js +++ /dev/null @@ -1 +0,0 @@ -import{D as m}from"./HardwareInstallation-be759b0c.js";import{_ as b,u as i,l as g,m as v,G as t,E as r,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSungrow",mixins:[m]},_={class:"device-sungrow"};function w(n,e,c,S,D,N){const s=i("openwb-base-heading"),d=i("openwb-base-alert"),a=i("openwb-base-text-input"),l=i("openwb-base-number-input"),p=i("openwb-base-select-input");return g(),v("div",_,[t(s,null,{default:r(()=>e[4]||(e[4]=[u(" Einstellungen für Sungrow ",-1)])),_:1,__:[4]}),t(d,{subtype:"info"},{default:r(()=>e[5]||(e[5]=[u(" Bitte zur Fehlervermeidung die Firmware des Sungrow Wechselrichters und WiNet-S Dongles aktuell halten. ",-1)])),_:1,__:[5]}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(l,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"]),t(l,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},null,8,["model-value"]),t(p,{title:"Version",options:[{value:0,text:"SH (Hybrid)"},{value:3,text:"SH (Hybrid) über WiNet-S Dongle"},{value:1,text:"SG (kein Hybrid)"},{value:2,text:"SG (kein Hybrid) über WiNet-S Dongle"}],"model-value":n.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.version"))},{help:r(()=>e[6]||(e[6]=[u(" Die Variante SH sollte möglichst über den internen LAN-Port genutzt werden (befindet sich am Wechselrichter hinter dem WiNet-S Dongle), da nur hier alle Werte vollständig ausgelesen werden können. Den WiNet-S Dongle zusätzlich ins Heimnetz (per LAN oder WLAN) einbinden, um iSolarCloud nutzen zu können. ",-1)])),_:1},8,["model-value"])])}const h=b(f,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-91d8873a.js b/web/settings/assets/device-91d8873a.js deleted file mode 100644 index 48b275cd3f..0000000000 --- a/web/settings/assets/device-91d8873a.js +++ /dev/null @@ -1 +0,0 @@ -import{D as p}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as t,l as u,m as l,G as i,E as m,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSunnyIsland",mixins:[p]},f={class:"device-sunnyisland"};function b(n,e,v,g,w,x){const s=t("openwb-base-heading"),a=t("openwb-base-text-input"),r=t("openwb-base-number-input");return u(),l("div",f,[i(s,null,{default:m(()=>e[2]||(e[2]=[_(" Einstellungen für Sunny Island ",-1)])),_:1,__:[2]}),i(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"])])}const q=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_island/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-961232b3.js b/web/settings/assets/device-961232b3.js new file mode 100644 index 0000000000..68ba12e409 --- /dev/null +++ b/web/settings/assets/device-961232b3.js @@ -0,0 +1 @@ +import{D as p}from"./HardwareInstallation-8066ca79.js";import{_ as d,u as i,l as u,m as l,G as t,E as m,B as f}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceSaxpower",mixins:[p]},v={class:"device-saxpower"};function _(o,e,c,g,w,x){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return u(),l("div",v,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[f(" Einstellungen für Saxpower ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=d(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/saxpower/saxpower/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-9962b0b8.js b/web/settings/assets/device-9962b0b8.js deleted file mode 100644 index aa27872209..0000000000 --- a/web/settings/assets/device-9962b0b8.js +++ /dev/null @@ -1 +0,0 @@ -import{D as w}from"./HardwareInstallation-be759b0c.js";import{_ as c,u as t,l as s,m as f,G as r,E as a,B as o,x as d,z as l,A as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceHuawei",mixins:[w]},h={class:"device-huawei"};function k(n,e,D,H,C,B){const p=t("openwb-base-heading"),m=t("openwb-base-alert"),g=t("openwb-base-text-input"),u=t("openwb-base-number-input"),b=t("openwb-base-select-input");return s(),f("div",h,[r(p,null,{default:a(()=>e[4]||(e[4]=[o(" Einstellungen für Huawei ",-1)])),_:1,__:[4]}),r(m,{subtype:"info"},{default:a(()=>e[5]||(e[5]=[o(' Die Antwort der Huawei Wechselrichter benötigt sehr viel Zeit. Es wird empfohlen, dass Regelintervall der openWB auf "sehr langsam" zu stellen. Mit unserem Huawei-Kit können Huawei Wechselrichter auch in normaler Regelgeschwindigkeit abgefragt werden. ',-1)])),_:1,__:[5]}),n.device.configuration.type!="huawei_kit"?(s(),d(g,{key:0,title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"])):l("",!0),n.device.configuration.type!="huawei_kit"?(s(),d(u,{key:1,title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])):l("",!0),r(u,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=i=>n.updateConfiguration(i,"configuration.modbus_id"))},{help:a(()=>e[6]||(e[6]=[o(' Sind mehrere Huawei Wechselrichter als "Schwarm" verbunden, dann besitzt der Master vermutlich die ID "16". Über diese ID werden dann alle Daten in Summe zur Verfügung gestellt.',-1),v("br",null,null,-1),o(" Die IDs 1 bis 15 sind für einzelne Wechselrichter reserviert. ",-1)])),_:1},8,["model-value"]),r(b,{title:"Anbindung","not-selected":"Bitte auswählen",options:[{value:"s_dongle",text:"SDongle"},{value:"huawei_kit",text:"Huawei Kit"},{value:"modbus_rtu",text:"Modbus RTU (mit Modbus/TCP Adapter)"}],"model-value":n.device.configuration.type,required:"","onUpdate:modelValue":e[3]||(e[3]=i=>n.updateConfiguration(i,"configuration.type"))},{help:a(()=>e[7]||(e[7]=[o(' Die Anbindung über den Huawei SDongle erfordert die Regelgeschwindigkeit "sehr langsam". Alternativ kann Huawei auch mittels Modbus/TCP Adapter (z.B. Protoss oder Elfin) über den Modbus RTU Ausgang des Wechselrichters abgefragt werden. Hier gibt es keine Einschränkungen der Regelgeschwindigkeit. Eine gleichzeitige Nutzung von SDongle und Modbus RTU ist nicht möglich. ',-1)])),_:1},8,["model-value"])])}const S=c(_,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei/device.vue"]]);export{S as default}; diff --git a/web/settings/assets/device-99902fe5.js b/web/settings/assets/device-99902fe5.js new file mode 100644 index 0000000000..74297457b2 --- /dev/null +++ b/web/settings/assets/device-99902fe5.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-8066ca79.js";import{_ as d,u as s,l as u,m as p,G as t,E as l,B as m}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceBYD",mixins:[a]},v={class:"device-byd"};function b(o,e,c,g,_,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return u(),p("div",v,[t(r,null,{default:l(()=>[...e[3]||(e[3]=[m(" Einstellungen für BYD ",-1)])]),_:1}),t(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.user"))},null,8,["model-value"]),t(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const U=d(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/byd/byd/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-99cb2dcd.js b/web/settings/assets/device-99cb2dcd.js new file mode 100644 index 0000000000..c3cd309742 --- /dev/null +++ b/web/settings/assets/device-99cb2dcd.js @@ -0,0 +1 @@ +import{D as d}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as i,l,m as u,G as n,E as a,B as r}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceFems",mixins:[d]},c={class:"device-fems"};function v(o,e,_,b,g,w){const p=i("openwb-base-heading"),s=i("openwb-base-text-input");return l(),u("div",c,[n(p,null,{default:a(()=>[...e[2]||(e[2]=[r(" Einstellungen für openEMS, Fenecon FEMS, CENTURIO 10, Kaco Hy-Control ",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},{help:a(()=>[...e[3]||(e[3]=[r(" Bei Nutzung von Fenecon FEMS ist das Passwort im Normalfall user, bei Kaco mit Hy-Control ist das Passwort meist admin. ",-1)])]),_:1},8,["model-value"])])}const V=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/fems/device.vue"]]);export{V as default}; diff --git a/web/settings/assets/device-9dcf188a.js b/web/settings/assets/device-9dcf188a.js deleted file mode 100644 index fc2c64e797..0000000000 --- a/web/settings/assets/device-9dcf188a.js +++ /dev/null @@ -1 +0,0 @@ -import{D as d}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as i,l,m as p,G as t,E as m,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceKostalSEM",mixins:[d]},b={class:"device-kostal-sem"};function v(o,e,c,g,w,C){const s=i("openwb-base-heading"),r=i("openwb-base-text-input"),a=i("openwb-base-number-input");return l(),p("div",b,[t(s,null,{default:m(()=>e[3]||(e[3]=[_(" Einstellungen für Kostal Smart Energy Meter oder TQ EM 410 ",-1)])),_:1,__:[3]}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_sem/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-9f80ec42.js b/web/settings/assets/device-9f80ec42.js new file mode 100644 index 0000000000..241978d678 --- /dev/null +++ b/web/settings/assets/device-9f80ec42.js @@ -0,0 +1 @@ +import{D as r}from"./HardwareInstallation-8066ca79.js";import{_ as a,u as t,l as d,m as l,G as s,E as u,B as m}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceYouless",mixins:[r]},_={class:"device-youless"};function f(o,e,v,b,g,x){const n=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),l("div",_,[s(n,null,{default:u(()=>[...e[1]||(e[1]=[m(" Einstellungen für Youless ",-1)])]),_:1}),s(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.ip_address"))},null,8,["model-value"])])}const k=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/youless/youless/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-9fca3461.js b/web/settings/assets/device-9fca3461.js new file mode 100644 index 0000000000..01f4aa6ccd --- /dev/null +++ b/web/settings/assets/device-9fca3461.js @@ -0,0 +1 @@ +import{D as u}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as n,l,m as c,G as i,E as a,B as r}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceKaco",mixins:[u]},f={class:"device-kaco"};function b(o,e,v,g,w,x){const s=n("openwb-base-heading"),p=n("openwb-base-text-input"),d=n("openwb-base-number-input");return l(),c("div",f,[i(s,null,{default:a(()=>[...e[2]||(e[2]=[r(" Einstellungen für Kaco ",-1)])]),_:1}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},{help:a(()=>[...e[3]||(e[3]=[r(" Der Standardport für Kaco ist 502. ",-1)])]),_:1},8,["model-value"])])}const N=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_tx/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-9fec4861.js b/web/settings/assets/device-9fec4861.js deleted file mode 100644 index 213225e436..0000000000 --- a/web/settings/assets/device-9fec4861.js +++ /dev/null @@ -1 +0,0 @@ -import{D as p}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as t,l as d,m,G as i,E as c,B as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceSolis",mixins:[p]},_={class:"device-solis"};function f(o,e,g,w,h,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input"),l=t("openwb-base-select-input");return d(),m("div",_,[i(s,null,{default:c(()=>e[3]||(e[3]=[v("Einstellungen für Solis",-1)])),_:1,__:[3]}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(l,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"inverter",text:"Wechselrichter ohne Speicheranbindung"},{value:"hybrid",text:"Hybridwechselrichter RHI/S Serie"}],"model-value":o.device.configuration.version,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const U=u(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-a0f15220.js b/web/settings/assets/device-a0f15220.js deleted file mode 100644 index b2ae5cf177..0000000000 --- a/web/settings/assets/device-a0f15220.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as s,l as d,m as u,G as n,E as l,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceDiscovergy",mixins:[a]},v={class:"device-discovergy"};function f(o,e,g,_,b,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return d(),u("div",v,[n(r,null,{default:l(()=>e[2]||(e[2]=[m(" Einstellungen für Discovergy ",-1)])),_:1,__:[2]}),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const q=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-a36af1b2.js b/web/settings/assets/device-a36af1b2.js new file mode 100644 index 0000000000..420f609523 --- /dev/null +++ b/web/settings/assets/device-a36af1b2.js @@ -0,0 +1 @@ +import{D as d}from"./HardwareInstallation-8066ca79.js";import{_ as u,u as i,l as p,m as l,G as t,E as m,B as f}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceJanitza",mixins:[d]},v={class:"device-janitza"};function _(o,e,c,g,w,C){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",v,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[f(" Einstellungen für Janitza ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/janitza/janitza/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-a9d743f1.js b/web/settings/assets/device-a9d743f1.js new file mode 100644 index 0000000000..4cedc4e21d --- /dev/null +++ b/web/settings/assets/device-a9d743f1.js @@ -0,0 +1 @@ +import{D as p}from"./HardwareInstallation-8066ca79.js";import{_ as u,u as t,l as d,m,G as i,E as c,B as v}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceSolis",mixins:[p]},_={class:"device-solis"};function f(o,e,g,w,h,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input"),l=t("openwb-base-select-input");return d(),m("div",_,[i(s,null,{default:c(()=>[...e[3]||(e[3]=[v("Einstellungen für Solis",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(l,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"inverter",text:"Wechselrichter ohne Speicheranbindung"},{value:"hybrid",text:"Hybridwechselrichter RHI/S Serie"}],"model-value":o.device.configuration.version,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const U=u(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-aa389719.js b/web/settings/assets/device-aa389719.js new file mode 100644 index 0000000000..0a19ec2a37 --- /dev/null +++ b/web/settings/assets/device-aa389719.js @@ -0,0 +1 @@ +import{D as d}from"./HardwareInstallation-8066ca79.js";import{_ as u,u as t,l as c,m,G as o,E as s,B as i}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceKostalPiko",mixins:[d]},f={class:"device-kostal-piko"};function b(n,e,v,g,k,h){const a=t("openwb-base-heading"),r=t("openwb-base-alert"),p=t("openwb-base-text-input");return c(),m("div",f,[o(a,null,{default:s(()=>[...e[1]||(e[1]=[i(" Einstellungen für Kostal Piko ",-1)])]),_:1}),o(r,{subtype:"info"},{default:s(()=>[...e[2]||(e[2]=[i(" Der Wechselrichter liefert Werte nur, solange er auch PV-Leistung liefert. Nachts geht er in den Standby. Die Hausanschlussüberwachung ist nur aktiv, wenn der Wechselrichter auch aktiv ist. ",-1)])]),_:1}),o(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=l=>n.updateConfiguration(l,"configuration.ip_address"))},null,8,["model-value"])])}const y=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/device.vue"]]);export{y as default}; diff --git a/web/settings/assets/device-aab545a0.js b/web/settings/assets/device-aab545a0.js deleted file mode 100644 index 5dd644ad0b..0000000000 --- a/web/settings/assets/device-aab545a0.js +++ /dev/null @@ -1 +0,0 @@ -import{D as m}from"./HardwareInstallation-be759b0c.js";import{_ as v,u as t,l as i,m as f,G as a,E as c,B as b,x as u,z as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceAlphaess",mixins:[m]},_={class:"device-alphaess"};function w(e,o,V,C,B,E){const d=t("openwb-base-heading"),s=t("openwb-base-select-input"),p=t("openwb-base-text-input"),l=t("openwb-base-number-input");return i(),f("div",_,[a(d,null,{default:c(()=>o[5]||(o[5]=[b(" Einstellungen für Alpha ESS ",-1)])),_:1,__:[5]}),a(s,{title:"Ausleseart","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Alpha ESS-Kit"},{value:1,text:"Hi 5/10"}],"model-value":e.device.configuration.source,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.source"))},null,8,["model-value"]),e.device.configuration.source==1?(i(),u(p,{key:0,title:"IP oder Hostname",subtype:"host",required:"","model-value":e.device.configuration.ip_address,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])):r("",!0),e.device.configuration.source==1?(i(),u(l,{key:1,title:"Port",required:"",min:1,max:65535,"model-value":e.device.configuration.port,"onUpdate:modelValue":o[2]||(o[2]=n=>e.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])):r("",!0),e.device.configuration.source==1?(i(),u(l,{key:2,title:"Modbus ID",required:"","model-value":e.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[3]||(o[3]=n=>e.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])):r("",!0),a(s,{title:"Firmware Version","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"EMS älter als 1.23V"},{value:1,text:"EMS 1.23V oder neuer"}],"model-value":e.device.configuration.version,"onUpdate:modelValue":o[4]||(o[4]=n=>e.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const x=v(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/alpha_ess/alpha_ess/device.vue"]]);export{x as default}; diff --git a/web/settings/assets/device-ab579910.js b/web/settings/assets/device-ab579910.js deleted file mode 100644 index 694ba4a57e..0000000000 --- a/web/settings/assets/device-ab579910.js +++ /dev/null @@ -1 +0,0 @@ -import{D as f}from"./HardwareInstallation-be759b0c.js";import{_ as g,u as d,l as t,m as b,G as l,E as a,B as i,x as s,z as u,A as p}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const w={name:"DeviceEnphase",mixins:[f]},y={class:"device-enphase"};function k(n,e,V,c,E,h){const m=d("openwb-base-heading"),r=d("openwb-base-text-input"),v=d("openwb-base-select-input");return t(),b("div",y,[l(m,null,{default:a(()=>e[6]||(e[6]=[i(" Einstellungen für Enphase Envoy / IQ Gateway ",-1)])),_:1,__:[6]}),l(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.hostname,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.hostname"))},{help:a(()=>e[7]||(e[7]=[i(' Bitte geben Sie die IP-Adresse oder den Hostnamen des Enphase Envoy oder IQ Gateway an. Die Info finden Sie in Ihrem Router. Ab Werk ist der Hostname "envoy" oder "envoy.local". ',-1)])),_:1},8,["model-value"]),l(v,{title:"Version",required:"",options:[{value:1,text:"Firmware < 7.0"},{value:2,text:"Firmware ab 7.0"}],"model-value":n.device.configuration.version,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.version"))},{help:a(()=>e[8]||(e[8]=[i(" Bitte wählen Sie die Version des Enphase Envoy oder IQ Gateway aus. Die Version 1 ist für Geräte mit einer Firmware-Version unter 7.0, die Version 2 für Geräte mit einer Firmware-Version ab 7.0. Ein angebundener Speicher wird nur bei Version 2 unterstützt. ",-1)])),_:1},8,["model-value"]),n.device.configuration.version>1?(t(),s(r,{key:0,title:"Benutzer",subtype:"user","model-value":n.device.configuration.user,required:"","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.user"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(t(),s(r,{key:1,title:"Kennwort",subtype:"password","model-value":n.device.configuration.password,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.password"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(t(),s(r,{key:2,title:"Envoy Seriennummer","model-value":n.device.configuration.serial,required:"","onUpdate:modelValue":e[4]||(e[4]=o=>n.updateConfiguration(o,"configuration.serial"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(t(),s(r,{key:3,title:"Token",subtype:"password","model-value":n.device.configuration.token,required:"","onUpdate:modelValue":e[5]||(e[5]=o=>n.updateConfiguration(o,"configuration.token"))},{help:a(()=>e[9]||(e[9]=[i(" Wenn Benutzer, Kennwort und Seriennummer des Envoys angegeben werden, wird das Token automatisch beim Speichern abgerufen. Ebenfalls wird ein abgelaufenes Token (derzeit nach einem Jahr) automatisch erneuert.",-1),p("br",null,null,-1),i(" Wenn Sie ein Token manuell erstellen möchten, können Sie dies auf der ",-1),p("a",{href:"https://developer.enphase.com/docs/quickstart.html",target:"_blank",rel:"noopener"}," Enphase-Webseite ",-1),i(" erledigen. ",-1)])),_:1},8,["model-value"])):u("",!0)])}const T=g(w,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/device.vue"]]);export{T as default}; diff --git a/web/settings/assets/device-abd46e94.js b/web/settings/assets/device-abd46e94.js deleted file mode 100644 index 5e6915bf23..0000000000 --- a/web/settings/assets/device-abd46e94.js +++ /dev/null @@ -1 +0,0 @@ -import{D as u}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as i,l as _,m as c,G as t,E as r,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceKostalPlenticore",mixins:[u]},f={class:"device-kostal-plenticore"};function v(o,e,g,w,C,E){const l=i("openwb-base-heading"),p=i("openwb-base-alert"),d=i("openwb-base-text-input"),s=i("openwb-base-number-input");return _(),c("div",f,[t(l,null,{default:r(()=>e[3]||(e[3]=[a(" Einstellungen für Kostal Plenticore ",-1)])),_:1,__:[3]}),t(p,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[a(" Wenn am Kostal Plenticore-Wechselrichter ein EM300 oder Kostal Smart Energy Meter (KSEM) angeschlossen ist, muss eine Zähler-und eine Wechselrichter-Komponente angelegt werden. ",-1)])),_:1,__:[4]}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const $=m(b,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-ad31bc6c.js b/web/settings/assets/device-ad31bc6c.js deleted file mode 100644 index 7b00e76984..0000000000 --- a/web/settings/assets/device-ad31bc6c.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceNibe",mixins:[a]},c={class:"device-nibe"};function f(o,e,v,g,w,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",c,[i(s,null,{default:l(()=>e[2]||(e[2]=[_("Einstellungen für Nibe",-1)])),_:1,__:[2]}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const P=d(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/nibe/nibe/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-ae4f5ccf.js b/web/settings/assets/device-ae4f5ccf.js deleted file mode 100644 index dcff633259..0000000000 --- a/web/settings/assets/device-ae4f5ccf.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as s,l as u,m as p,G as t,E as l,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceBYD",mixins:[a]},v={class:"device-byd"};function b(o,e,c,g,_,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return u(),p("div",v,[t(r,null,{default:l(()=>e[3]||(e[3]=[m(" Einstellungen für BYD ",-1)])),_:1,__:[3]}),t(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.user"))},null,8,["model-value"]),t(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const U=d(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/byd/byd/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-b2f0a632.js b/web/settings/assets/device-b2f0a632.js deleted file mode 100644 index a4b017df8c..0000000000 --- a/web/settings/assets/device-b2f0a632.js +++ /dev/null @@ -1 +0,0 @@ -import{D as p}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as n,l as m,m as _,G as a,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSolarwatt",mixins:[p]},v={class:"device-solarwatt"};function c(t,e,w,b,g,x){const s=n("openwb-base-heading"),l=n("openwb-base-text-input"),d=n("openwb-base-select-input");return m(),_("div",v,[a(s,null,{default:i(()=>e[2]||(e[2]=[r(" Einstellungen für Solarwatt/My Reserve ",-1)])),_:1,__:[2]}),a(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),a(d,{title:"Abrufmethode","not-selected":"Bitte auswählen",options:[{value:0,text:"Gateway"},{value:1,text:"Energy Manager"}],"model-value":t.device.configuration.energy_manager,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.energy_manager"))},{help:i(()=>e[3]||(e[3]=[r(" Wenn beide Abrufmethoden verwendet werden sollen, muss für jede Methode ein Gerät erstellt werden. ",-1)])),_:1},8,["model-value"])])}const G=u(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_watt/solar_watt/device.vue"]]);export{G as default}; diff --git a/web/settings/assets/device-b3265f86.js b/web/settings/assets/device-b3265f86.js deleted file mode 100644 index ed8fde8cf3..0000000000 --- a/web/settings/assets/device-b3265f86.js +++ /dev/null @@ -1 +0,0 @@ -import{D as p}from"./HardwareInstallation-be759b0c.js";import{_ as r,u as t,l as d,m,G as n,E as l,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSmaWebbox",mixins:[p]},c={class:"device-sma-webbox"};function b(o,e,f,v,x,g){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),m("div",c,[n(i,null,{default:l(()=>e[1]||(e[1]=[u(" Einstellungen für SMA Webbox ",-1)])),_:1,__:[1]}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const k=r(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_webbox/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-b3818b6c.js b/web/settings/assets/device-b3818b6c.js deleted file mode 100644 index faa68b4df3..0000000000 --- a/web/settings/assets/device-b3818b6c.js +++ /dev/null @@ -1 +0,0 @@ -import{D as d}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as i,l as p,m as l,G as t,E as m,B as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceVarta",mixins:[d]},_={class:"device-varta"};function b(o,e,c,g,w,V){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",_,[t(r,null,{default:m(()=>e[3]||(e[3]=[v(" Einstellungen für Varta ",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=u(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/varta/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-b39daa3e.js b/web/settings/assets/device-b39daa3e.js new file mode 100644 index 0000000000..b8ffca5b9b --- /dev/null +++ b/web/settings/assets/device-b39daa3e.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-8066ca79.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as g}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSigenergy",mixins:[a]},_={class:"device-sigenergy"};function f(o,e,b,v,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",_,[i(r,null,{default:l(()=>[...e[2]||(e[2]=[g("Einstellungen für Sigenergy",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-b4339cb2.js b/web/settings/assets/device-b4339cb2.js new file mode 100644 index 0000000000..91dfa8d448 --- /dev/null +++ b/web/settings/assets/device-b4339cb2.js @@ -0,0 +1 @@ +import{D as r}from"./HardwareInstallation-8066ca79.js";import{_ as p,u as i,l as d,m as u,G as t,E as l,B as m}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSunways",mixins:[r]},f={class:"device-sunways"};function v(o,e,w,_,b,g){const a=i("openwb-base-heading"),s=i("openwb-base-text-input");return d(),u("div",f,[t(a,null,{default:l(()=>[...e[2]||(e[2]=[m(" Einstellungen für Sunways ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const q=p(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sunways/sunways/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-b63f7410.js b/web/settings/assets/device-b63f7410.js new file mode 100644 index 0000000000..3e0e1b5512 --- /dev/null +++ b/web/settings/assets/device-b63f7410.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-8066ca79.js";import{_ as p,u as s,l as m,m as u,G as n,E as d,B as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmartMe",mixins:[a]},f={class:"device-smart-me"};function v(o,e,_,b,g,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return m(),u("div",f,[n(r,null,{default:d(()=>[...e[2]||(e[2]=[l(" Einstellungen für smart-me ",-1)])]),_:1}),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const y=p(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/device.vue"]]);export{y as default}; diff --git a/web/settings/assets/device-b933a21c.js b/web/settings/assets/device-b933a21c.js deleted file mode 100644 index 402a1a3e9e..0000000000 --- a/web/settings/assets/device-b933a21c.js +++ /dev/null @@ -1 +0,0 @@ -import{D as s}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as i,l as p,m as l,G as t,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceE3dc",mixins:[s]},b={class:"device-e3dc"};function v(o,e,_,g,w,C){const a=i("openwb-base-heading"),r=i("openwb-base-text-input"),d=i("openwb-base-number-input");return p(),l("div",b,[t(a,null,{default:m(()=>e[3]||(e[3]=[c(" Einstellungen für E3DC ",-1)])),_:1,__:[3]}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.address"))},null,8,["model-value"]),t(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(d,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const I=u(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/e3dc/e3dc/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-b94aa2cd.js b/web/settings/assets/device-b94aa2cd.js deleted file mode 100644 index 14adbca3ef..0000000000 --- a/web/settings/assets/device-b94aa2cd.js +++ /dev/null @@ -1 +0,0 @@ -import{D as m}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as t,l,m as b,G as i,E as u,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceHuaweiEmma",mixins:[m]},_={class:"device-huawei-emma"};function v(o,e,g,w,c,C){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return l(),b("div",_,[i(r,null,{default:u(()=>e[3]||(e[3]=[d(" Einstellungen für Huawei EMMA ",-1)])),_:1,__:[3]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"0",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},{help:u(()=>e[4]||(e[4]=[d(" Huawei Emma nutzt entgegen der Modbus-Spezifikation standardmäßig die Modbus ID 0. ",-1)])),_:1},8,["model-value"])])}const q=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_emma/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-bb1ccbe7.js b/web/settings/assets/device-bb1ccbe7.js deleted file mode 100644 index b3c0ff7b17..0000000000 --- a/web/settings/assets/device-bb1ccbe7.js +++ /dev/null @@ -1 +0,0 @@ -import{D as l}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as i,l as b,m as _,G as t,E as s,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DevicePowerdog",mixins:[l]},v={class:"device-powerdog"};function g(o,e,c,w,C,x){const a=i("openwb-base-heading"),p=i("openwb-base-alert"),u=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),_("div",v,[t(a,null,{default:s(()=>e[3]||(e[3]=[d(" Einstellungen für Powerdog ",-1)])),_:1,__:[3]}),t(p,{subtype:"info"},{default:s(()=>e[4]||(e[4]=[d(" ModbusTCP muss aktiviert sein. ",-1)])),_:1,__:[4]}),t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/powerdog/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-bba31079.js b/web/settings/assets/device-bba31079.js deleted file mode 100644 index a9bde38396..0000000000 --- a/web/settings/assets/device-bba31079.js +++ /dev/null @@ -1 +0,0 @@ -import{D as u}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as i,l as p,m as l,G as t,E as m,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceZCS",mixins:[u]},f={class:"device-azzurro_zcs"};function b(o,e,v,g,z,w){const a=i("openwb-base-heading"),s=i("openwb-base-text-input"),r=i("openwb-base-number-input");return p(),l("div",f,[t(a,null,{default:m(()=>e[3]||(e[3]=[_(" Einstellungen für Azzurro ZCS ",-1)])),_:1,__:[3]}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const k=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/azzurro_zcs/azzurro_zcs/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-bd81fe78.js b/web/settings/assets/device-bd81fe78.js new file mode 100644 index 0000000000..3511ac79d8 --- /dev/null +++ b/web/settings/assets/device-bd81fe78.js @@ -0,0 +1 @@ +import{D as w}from"./HardwareInstallation-8066ca79.js";import{_ as c,u as t,l as s,m as f,G as r,E as a,B as o,x as d,z as l,A as v}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const h={name:"DeviceHuawei",mixins:[w]},_={class:"device-huawei"};function k(n,e,D,H,C,B){const p=t("openwb-base-heading"),m=t("openwb-base-alert"),g=t("openwb-base-text-input"),u=t("openwb-base-number-input"),b=t("openwb-base-select-input");return s(),f("div",_,[r(p,null,{default:a(()=>[...e[4]||(e[4]=[o(" Einstellungen für Huawei ",-1)])]),_:1}),r(m,{subtype:"info"},{default:a(()=>[...e[5]||(e[5]=[o(' Die Antwort der Huawei Wechselrichter benötigt sehr viel Zeit. Es wird empfohlen, dass Regelintervall der openWB auf "sehr langsam" zu stellen. Mit unserem Huawei-Kit können Huawei Wechselrichter auch in normaler Regelgeschwindigkeit abgefragt werden. ',-1)])]),_:1}),n.device.configuration.type!="huawei_kit"?(s(),d(g,{key:0,title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"])):l("",!0),n.device.configuration.type!="huawei_kit"?(s(),d(u,{key:1,title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])):l("",!0),r(u,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=i=>n.updateConfiguration(i,"configuration.modbus_id"))},{help:a(()=>[...e[6]||(e[6]=[o(' Sind mehrere Huawei Wechselrichter als "Schwarm" verbunden, dann besitzt der Master vermutlich die ID "16". Über diese ID werden dann alle Daten in Summe zur Verfügung gestellt.',-1),v("br",null,null,-1),o(" Die IDs 1 bis 15 sind für einzelne Wechselrichter reserviert. ",-1)])]),_:1},8,["model-value"]),r(b,{title:"Anbindung","not-selected":"Bitte auswählen",options:[{value:"s_dongle",text:"SDongle"},{value:"huawei_kit",text:"Huawei Kit"},{value:"modbus_rtu",text:"Modbus RTU (mit Modbus/TCP Adapter)"}],"model-value":n.device.configuration.type,required:"","onUpdate:modelValue":e[3]||(e[3]=i=>n.updateConfiguration(i,"configuration.type"))},{help:a(()=>[...e[7]||(e[7]=[o(' Die Anbindung über den Huawei SDongle erfordert die Regelgeschwindigkeit "sehr langsam". Alternativ kann Huawei auch mittels Modbus/TCP Adapter (z.B. Protoss oder Elfin) über den Modbus RTU Ausgang des Wechselrichters abgefragt werden. Hier gibt es keine Einschränkungen der Regelgeschwindigkeit. Eine gleichzeitige Nutzung von SDongle und Modbus RTU ist nicht möglich. ',-1)])]),_:1},8,["model-value"])])}const S=c(h,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei/device.vue"]]);export{S as default}; diff --git a/web/settings/assets/device-c04b431d.js b/web/settings/assets/device-c04b431d.js new file mode 100644 index 0000000000..1458f8f9c2 --- /dev/null +++ b/web/settings/assets/device-c04b431d.js @@ -0,0 +1 @@ +import{D as l}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as i,l as b,m as f,G as t,E as s,B as d}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"DevicePowerdog",mixins:[l]},v={class:"device-powerdog"};function g(o,e,c,w,C,x){const a=i("openwb-base-heading"),p=i("openwb-base-alert"),u=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),f("div",v,[t(a,null,{default:s(()=>[...e[3]||(e[3]=[d(" Einstellungen für Powerdog ",-1)])]),_:1}),t(p,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[d(" ModbusTCP muss aktiviert sein. ",-1)])]),_:1}),t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/powerdog/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-c21b61c6.js b/web/settings/assets/device-c21b61c6.js new file mode 100644 index 0000000000..360ef7a2d3 --- /dev/null +++ b/web/settings/assets/device-c21b61c6.js @@ -0,0 +1 @@ +import{D as l}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as t,l as d,m as u,G as i,E as s,B as o,A as c}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceJson",mixins:[l]},f={class:"device-json"};function b(n,e,v,g,w,x){const r=t("openwb-base-heading"),a=t("openwb-base-text-input");return d(),u("div",f,[i(r,null,{default:s(()=>[...e[1]||(e[1]=[o(" Einstellungen für JSON ",-1)])]),_:1}),i(a,{title:"URL",subtype:"url",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=p=>n.updateConfiguration(p,"configuration.url"))},{help:s(()=>[...e[2]||(e[2]=[o(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen, optional einem Port und einem Pfad. Die Antwort muss ein json-Objekt sein.",-1),c("br",null,null,-1),o(" Beispiel: http://192.168.1.1:8080/json?data=1 ",-1)])]),_:1},8,["model-value"])])}const $=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-c41d2ff7.js b/web/settings/assets/device-c41d2ff7.js new file mode 100644 index 0000000000..e710ed49c5 --- /dev/null +++ b/web/settings/assets/device-c41d2ff7.js @@ -0,0 +1 @@ +import{D as u}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as n,l as c,m as f,G as o,E as l,B as s}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceShelly",mixins:[u]},v={class:"device-shelly"};function b(t,e,g,h,w,y){const r=n("openwb-base-heading"),a=n("openwb-base-alert"),p=n("openwb-base-text-input"),d=n("openwb-base-select-input");return c(),f("div",v,[o(r,null,{default:l(()=>[...e[2]||(e[2]=[s(" Einstellungen für Shelly ",-1)])]),_:1}),o(a,{subtype:"info"},{default:l(()=>[...e[3]||(e[3]=[s(" Unterstützt werden theoretisch alle ein- und dreiphasigen Shelly der Generation 1-3. Getestete Modelle sind Shelly 1pm, 1pm plus, Pro Pro 3EM, Plug S. ",-1)])]),_:1}),o(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),o(d,{title:"Vorzeichen invertieren","not-selected":"Bitte auswählen",options:[{value:-1,text:"ja"},{value:1,text:"nein"}],"model-value":t.device.configuration.factor,required:"","onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.factor"))},{help:l(()=>[...e[4]||(e[4]=[s(" Einige Shelly Modelle liefern die Leistung mit umgedrehtem Vorzeichen. Falls dies der Fall sein sollte, das Vorzeichen invertieren. ",-1)])]),_:1},8,["model-value"])])}const $=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/shelly/shelly/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-c8921d75.js b/web/settings/assets/device-c8921d75.js deleted file mode 100644 index 89a501e9b3..0000000000 --- a/web/settings/assets/device-c8921d75.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as r,l as u,m as d,G as n,E as l,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DevicePowerfox",mixins:[a]},c={class:"device-powerfox"};function v(o,e,w,_,b,g){const s=r("openwb-base-heading"),i=r("openwb-base-text-input");return u(),d("div",c,[n(s,null,{default:l(()=>e[2]||(e[2]=[m(" Einstellungen für Powerfox ",-1)])),_:1,__:[2]}),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const q=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-ca171f86.js b/web/settings/assets/device-ca171f86.js new file mode 100644 index 0000000000..b4ddab7867 --- /dev/null +++ b/web/settings/assets/device-ca171f86.js @@ -0,0 +1 @@ +import{D as p}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as i,l as b,m as f,G as t,E as s,B as a}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceElgris",mixins:[p]},g={class:"device-elgris"};function v(o,e,c,w,C,D){const u=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),f("div",g,[t(u,null,{default:s(()=>[...e[3]||(e[3]=[a(" Einstellungen für Elgris",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[a(" Der Zähler ist auf Modbus-ID 1 und Port 502 vorkonfiguriert. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const P=m(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/elgris/elgris/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-ca2216bb.js b/web/settings/assets/device-ca2216bb.js new file mode 100644 index 0000000000..432a540715 --- /dev/null +++ b/web/settings/assets/device-ca2216bb.js @@ -0,0 +1 @@ +import{D as d}from"./HardwareInstallation-8066ca79.js";import{_ as l,u as o,l as u,m,G as i,E as r,B as t,A as c}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceHttp",mixins:[d]},v={class:"device-http"};function _(n,e,b,g,w,x){const s=o("openwb-base-heading"),p=o("openwb-base-text-input");return u(),m("div",v,[i(s,null,{default:r(()=>[...e[1]||(e[1]=[t(" Einstellungen für Http ",-1)])]),_:1}),i(p,{title:"Server-URL",subtype:"url",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.url"))},{help:r(()=>[...e[2]||(e[2]=[t(" Hier sind die Verbindungsangaben für den Http-Server einzutragen. Der Pfad für die einzelnen Daten wird in der Komponente hinterlegt.",-1),c("br",null,null,-1),t(" Beispiel: http://mein.server:8080 ",-1)])]),_:1},8,["model-value"])])}const k=l(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-cbf306be.js b/web/settings/assets/device-cbf306be.js deleted file mode 100644 index dcc357e5f4..0000000000 --- a/web/settings/assets/device-cbf306be.js +++ /dev/null @@ -1 +0,0 @@ -import{D as d}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as t,l as c,m as _,G as o,E as s,B as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceKostalPiko",mixins:[d]},f={class:"device-kostal-piko"};function b(n,e,v,g,k,h){const a=t("openwb-base-heading"),r=t("openwb-base-alert"),p=t("openwb-base-text-input");return c(),_("div",f,[o(a,null,{default:s(()=>e[1]||(e[1]=[i(" Einstellungen für Kostal Piko ",-1)])),_:1,__:[1]}),o(r,{subtype:"info"},{default:s(()=>e[2]||(e[2]=[i(" Der Wechselrichter liefert Werte nur, solange er auch PV-Leistung liefert. Nachts geht er in den Standby. Die Hausanschlussüberwachung ist nur aktiv, wenn der Wechselrichter auch aktiv ist. ",-1)])),_:1,__:[2]}),o(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=l=>n.updateConfiguration(l,"configuration.ip_address"))},null,8,["model-value"])])}const y=u(m,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/device.vue"]]);export{y as default}; diff --git a/web/settings/assets/device-cc5378a8.js b/web/settings/assets/device-cc5378a8.js new file mode 100644 index 0000000000..2d3ed91780 --- /dev/null +++ b/web/settings/assets/device-cc5378a8.js @@ -0,0 +1 @@ +import{D as p}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as i,l as v,m as b,G as n,E as s,B as u}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceGrowatt",mixins:[p]},g={class:"device-growatt"};function _(o,e,c,w,V,C){const a=i("openwb-base-heading"),d=i("openwb-base-text-input"),r=i("openwb-base-number-input"),l=i("openwb-base-select-input");return v(),b("div",g,[n(a,null,{default:s(()=>[...e[4]||(e[4]=[u("Einstellungen für Growatt",-1)])]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"]),n(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),n(l,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"MAX",text:"MAX Series"},{value:"TL-X",text:"TL-X Inverter"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=t=>o.updateConfiguration(t,"configuration.version"))},{help:s(()=>[...e[5]||(e[5]=[u(" Die Wahl der API-Version beeinflusst die Auslesung der Speicherleistung und der Import/ Export Werte des Zählers. ",-1)])]),_:1},8,["model-value"])])}const X=m(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/growatt/growatt/device.vue"]]);export{X as default}; diff --git a/web/settings/assets/device-d3c47c07.js b/web/settings/assets/device-d3c47c07.js new file mode 100644 index 0000000000..872e4385cf --- /dev/null +++ b/web/settings/assets/device-d3c47c07.js @@ -0,0 +1 @@ +import{D as m}from"./HardwareInstallation-8066ca79.js";import{_ as p,u as t,l,m as b,G as i,E as u,B as d}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceHuaweiEmma",mixins:[m]},v={class:"device-huawei-emma"};function _(o,e,g,w,c,C){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return l(),b("div",v,[i(r,null,{default:u(()=>[...e[3]||(e[3]=[d(" Einstellungen für Huawei EMMA ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"0",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},{help:u(()=>[...e[4]||(e[4]=[d(" Huawei Emma nutzt entgegen der Modbus-Spezifikation standardmäßig die Modbus ID 0. ",-1)])]),_:1},8,["model-value"])])}const q=p(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_emma/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-d450da5d.js b/web/settings/assets/device-d450da5d.js new file mode 100644 index 0000000000..6aa53f060d --- /dev/null +++ b/web/settings/assets/device-d450da5d.js @@ -0,0 +1 @@ +import{D as l}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as n,l as p,m as c,G as t,E as r,B as o,A as _}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceFronius",mixins:[l]},b={class:"device-fronius"};function g(i,e,v,h,w,S){const s=n("openwb-base-heading"),a=n("openwb-base-alert"),d=n("openwb-base-text-input");return p(),c("div",b,[t(s,null,{default:r(()=>[...e[1]||(e[1]=[o(" Einstellungen für Fronius ",-1)])]),_:1}),t(a,{subtype:"info"},{default:r(()=>[...e[2]||(e[2]=[o(" Die Fronius API muss aktiviert sein.",-1),_("br",null,null,-1),o(" Sind nur Symos in Nutzung, welche über Fronius Solar Net / DATCOM miteinander verbunden sind, muss nur ein Gerät mit einer Komponente Wechselrichter angelegt werden. Sind aber z.B. Symo und Symo Hybrid im Einsatz, muss für jeden Wechselrichter ein Gerät mit einer Komponente Wechselrichter angelegt werden. Die Zähler-Komponente für das Smart-Meter wird in dem Gerät angelegt, dass den Wechselrichter enthält, an den das SmartMeter angeschlossen ist. ",-1)])]),_:1}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=u=>i.updateConfiguration(u,"configuration.ip_address"))},null,8,["model-value"])])}const G=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/device.vue"]]);export{G as default}; diff --git a/web/settings/assets/device-d7f94b0d.js b/web/settings/assets/device-d7f94b0d.js deleted file mode 100644 index 7d30ef2fc1..0000000000 --- a/web/settings/assets/device-d7f94b0d.js +++ /dev/null @@ -1 +0,0 @@ -import{D as d}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as t,l,m as p,G as i,E as m,B as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceCarloGavazzi",mixins:[d]},c={class:"device-carlo-gavazzi"};function f(o,e,b,g,z,w){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return l(),p("div",c,[i(r,null,{default:m(()=>e[3]||(e[3]=[v(" Einstellungen für Carlo Gavazzi ",-1)])),_:1,__:[3]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/carlo_gavazzi/carlo_gavazzi/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-d8332f79.js b/web/settings/assets/device-d8332f79.js deleted file mode 100644 index 5c56d442ec..0000000000 --- a/web/settings/assets/device-d8332f79.js +++ /dev/null @@ -1 +0,0 @@ -import{D as r}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as s,l as d,m as p,G as n,E as l,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"DeviceAvm",mixins:[r]},f={class:"device-avm"};function c(o,e,g,_,b,w){const a=s("openwb-base-heading"),i=s("openwb-base-text-input");return d(),p("div",f,[n(a,null,{default:l(()=>e[3]||(e[3]=[m("Einstellungen für AVM Fritz!Box",-1)])),_:1,__:[3]}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const U=u(v,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/avm/avm/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-da0c44d0.js b/web/settings/assets/device-da0c44d0.js new file mode 100644 index 0000000000..cd6a7ff003 --- /dev/null +++ b/web/settings/assets/device-da0c44d0.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-8066ca79.js";import{_ as p,u as r,l as u,m as d,G as n,E as l,B as m}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const f={name:"DevicePowerfox",mixins:[a]},c={class:"device-powerfox"};function v(o,e,w,_,b,g){const s=r("openwb-base-heading"),i=r("openwb-base-text-input");return u(),d("div",c,[n(s,null,{default:l(()=>[...e[2]||(e[2]=[m(" Einstellungen für Powerfox ",-1)])]),_:1}),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const q=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-daf6231d.js b/web/settings/assets/device-daf6231d.js deleted file mode 100644 index 808100b3e1..0000000000 --- a/web/settings/assets/device-daf6231d.js +++ /dev/null @@ -1 +0,0 @@ -import{D as d}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as t,l as p,m,G as i,E as l,B as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceThermia",mixins:[d]},b={class:"device-thermia"};function v(o,e,c,g,w,C){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return p(),m("div",b,[i(r,null,{default:l(()=>e[3]||(e[3]=[f(" Einstellungen für Thermia ",-1)])),_:1,__:[3]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/thermia/thermia/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-dc52892c.js b/web/settings/assets/device-dc52892c.js new file mode 100644 index 0000000000..4c42a67d23 --- /dev/null +++ b/web/settings/assets/device-dc52892c.js @@ -0,0 +1 @@ +import{D as r}from"./HardwareInstallation-8066ca79.js";import{_ as u,u as s,l as d,m as p,G as n,E as l,B as m}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const v={name:"DeviceAvm",mixins:[r]},f={class:"device-avm"};function c(o,e,g,b,_,w){const a=s("openwb-base-heading"),i=s("openwb-base-text-input");return d(),p("div",f,[n(a,null,{default:l(()=>[...e[3]||(e[3]=[m("Einstellungen für AVM Fritz!Box",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const U=u(v,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/avm/avm/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-dc9ef32a.js b/web/settings/assets/device-dc9ef32a.js new file mode 100644 index 0000000000..3cb3252150 --- /dev/null +++ b/web/settings/assets/device-dc9ef32a.js @@ -0,0 +1 @@ +import{D as d}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as t,l,m as u,G as n,E as i,B as s}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceVZLogger",mixins:[d]},c={class:"device-vzlogger"};function _(o,e,v,f,b,w){const r=t("openwb-base-heading"),p=t("openwb-base-text-input");return l(),u("div",c,[n(r,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für VZLogger ",-1)])]),_:1}),n(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},{help:i(()=>[...e[2]||(e[2]=[s(" Bei Angabe des Ports muss auch das Schema mit angegeben werden: http://ip:port ",-1)])]),_:1},8,["model-value"])])}const k=m(g,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-dcaf1061.js b/web/settings/assets/device-dcaf1061.js deleted file mode 100644 index 8963f0bcbe..0000000000 --- a/web/settings/assets/device-dcaf1061.js +++ /dev/null @@ -1 +0,0 @@ -import{D as a}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as n,l as u,m,G as i,E as l,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceStuder",mixins:[a]},f={class:"device-studer"};function b(o,e,v,g,w,x){const r=n("openwb-base-heading"),s=n("openwb-base-text-input"),p=n("openwb-base-number-input");return u(),m("div",f,[i(r,null,{default:l(()=>e[2]||(e[2]=[_(" Einstellungen für Studer ",-1)])),_:1,__:[2]}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const P=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-e379eb65.js b/web/settings/assets/device-e379eb65.js deleted file mode 100644 index 4b78f310e3..0000000000 --- a/web/settings/assets/device-e379eb65.js +++ /dev/null @@ -1 +0,0 @@ -import{D as m}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as s,l as p,m as l,G as t,E as r,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceLG",mixins:[m]},f={class:"device-lg"};function c(n,e,v,_,b,w){const d=s("openwb-base-heading"),o=s("openwb-base-text-input");return p(),l("div",f,[t(d,null,{default:r(()=>e[2]||(e[2]=[a(" Einstellungen für LG ESS V1.0 ",-1)])),_:1,__:[2]}),t(o,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(o,{title:"Passwort",subtype:"password",required:"","model-value":n.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.password"))},{help:r(()=>e[3]||(e[3]=[a(' Passwort, um sich in den LG ESS V1.0 einzuloggen. Das Passwort ist standardmäßig die Registrierungsnummer, die sich auf einem Aufkleber auf dem PCS (dem Hybridwechselrichter und Batteriemanagementsystem) befindet. Alternativ findet man die Registrierungsnummer in der App unter dem Menüpunkt "Systeminformationen". Mit der Registrierungsnummer kann man sich dann in der Rolle "installer" einloggen. ',-1)])),_:1},8,["model-value"])])}const h=u(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/lg/lg/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-e470aa3a.js b/web/settings/assets/device-e470aa3a.js new file mode 100644 index 0000000000..9935733be0 --- /dev/null +++ b/web/settings/assets/device-e470aa3a.js @@ -0,0 +1 @@ +import{D as p}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as s,l as f,m as g,G as t,E as a,B as r,A as o}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const w={name:"DeviceTesla",mixins:[p]},b={class:"device-tesla"};function c(n,e,v,k,h,_){const d=s("openwb-base-heading"),u=s("openwb-base-alert"),l=s("openwb-base-text-input");return f(),g("div",b,[t(d,null,{default:a(()=>[...e[3]||(e[3]=[r(" Einstellungen für Tesla ",-1)])]),_:1}),t(u,{subtype:"danger"},{default:a(()=>[...e[4]||(e[4]=[o("span",{style:{"font-weight":"bold"}}," Tesla hat in der aktuellen Firmware-Version die lokale API der PowerWall abgeschaltet. ",-1),r("Daher ist es mit dieser Firmware nicht mehr möglich, die PowerWall direkt auszulesen. Wir prüfen aktuell den Zugriff über die Tesla-Server. Bis zur Umsetzung dieser Funktion ist es nicht möglich, die PowerWall lokal auszulesen.",-1),o("br",null,null,-1),o("span",{style:{"font-weight":"bold"}}," Wenn die lokale Abfrage bei Dir noch funktioniert, dann solltest Du die Firmware der PowerWall nicht aktualisieren! ",-1),o("br",null,null,-1),r(" Wir empfehlen, dass Du Tesla kontaktierst und Kritik an dieser Entscheidung mitteilst. Nur so können wir hoffen, dass Tesla die lokale API wieder aktiviert. Mit der Cloud-API kommt es zwangsläufig zu Verzögerungen (Latenzen), welche eine Regelung durch openWB erschweren. Weiterhin kommt es zu einem totalen Ausfall, wenn die Internetverbindung gestört ist. Aus diesen Gründen ist eine lokale API immer vorzuziehen. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(l,{title:"E-Mail",subtype:"email",required:"","model-value":n.device.configuration.email,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.email"))},null,8,["model-value"]),t(l,{title:"Passwort",subtype:"password",required:"","model-value":n.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=i=>n.updateConfiguration(i,"configuration.password"))},null,8,["model-value"])])}const y=m(w,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/tesla/device.vue"]]);export{y as default}; diff --git a/web/settings/assets/device-e5ec8653.js b/web/settings/assets/device-e5ec8653.js new file mode 100644 index 0000000000..d338cf1c32 --- /dev/null +++ b/web/settings/assets/device-e5ec8653.js @@ -0,0 +1 @@ +import{D as f}from"./HardwareInstallation-8066ca79.js";import{_ as g,u as d,l as t,m as b,G as l,E as a,B as i,x as s,z as u,A as p}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const w={name:"DeviceEnphase",mixins:[f]},y={class:"device-enphase"};function k(n,e,V,c,E,h){const m=d("openwb-base-heading"),r=d("openwb-base-text-input"),v=d("openwb-base-select-input");return t(),b("div",y,[l(m,null,{default:a(()=>[...e[6]||(e[6]=[i(" Einstellungen für Enphase Envoy / IQ Gateway ",-1)])]),_:1}),l(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.hostname,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.hostname"))},{help:a(()=>[...e[7]||(e[7]=[i(' Bitte geben Sie die IP-Adresse oder den Hostnamen des Enphase Envoy oder IQ Gateway an. Die Info finden Sie in Ihrem Router. Ab Werk ist der Hostname "envoy" oder "envoy.local". ',-1)])]),_:1},8,["model-value"]),l(v,{title:"Version",required:"",options:[{value:1,text:"Firmware < 7.0"},{value:2,text:"Firmware ab 7.0"}],"model-value":n.device.configuration.version,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.version"))},{help:a(()=>[...e[8]||(e[8]=[i(" Bitte wählen Sie die Version des Enphase Envoy oder IQ Gateway aus. Die Version 1 ist für Geräte mit einer Firmware-Version unter 7.0, die Version 2 für Geräte mit einer Firmware-Version ab 7.0. Ein angebundener Speicher wird nur bei Version 2 unterstützt. ",-1)])]),_:1},8,["model-value"]),n.device.configuration.version>1?(t(),s(r,{key:0,title:"Benutzer",subtype:"user","model-value":n.device.configuration.user,required:"","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.user"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(t(),s(r,{key:1,title:"Kennwort",subtype:"password","model-value":n.device.configuration.password,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.password"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(t(),s(r,{key:2,title:"Envoy Seriennummer","model-value":n.device.configuration.serial,required:"","onUpdate:modelValue":e[4]||(e[4]=o=>n.updateConfiguration(o,"configuration.serial"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(t(),s(r,{key:3,title:"Token",subtype:"password","model-value":n.device.configuration.token,required:"","onUpdate:modelValue":e[5]||(e[5]=o=>n.updateConfiguration(o,"configuration.token"))},{help:a(()=>[...e[9]||(e[9]=[i(" Wenn Benutzer, Kennwort und Seriennummer des Envoys angegeben werden, wird das Token automatisch beim Speichern abgerufen. Ebenfalls wird ein abgelaufenes Token (derzeit nach einem Jahr) automatisch erneuert.",-1),p("br",null,null,-1),i(" Wenn Sie ein Token manuell erstellen möchten, können Sie dies auf der ",-1),p("a",{href:"https://developer.enphase.com/docs/quickstart.html",target:"_blank",rel:"noopener"}," Enphase-Webseite ",-1),i(" erledigen. ",-1)])]),_:1},8,["model-value"])):u("",!0)])}const T=g(w,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/device.vue"]]);export{T as default}; diff --git a/web/settings/assets/device-e966116d.js b/web/settings/assets/device-e966116d.js new file mode 100644 index 0000000000..e35382fddc --- /dev/null +++ b/web/settings/assets/device-e966116d.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-8066ca79.js";import{_ as p,u as t,l as d,m as l,G as n,E as m,B as u}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolarWorld",mixins:[a]},c={class:"device-solar_world"};function f(o,e,v,b,w,g){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),l("div",c,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[u(" Einstellungen für SolarWorld ",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const k=p(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_world/solar_world/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-e99aa4c8.js b/web/settings/assets/device-e99aa4c8.js new file mode 100644 index 0000000000..ccf4214c15 --- /dev/null +++ b/web/settings/assets/device-e99aa4c8.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-8066ca79.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as c}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceOrno",mixins:[a]},f={class:"device-orno"};function b(o,e,v,g,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",f,[i(r,null,{default:l(()=>[...e[2]||(e[2]=[c("Einstellungen für Orno WE-514",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const O=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/orno/orno/device.vue"]]);export{O as default}; diff --git a/web/settings/assets/device-ea2ecac8.js b/web/settings/assets/device-ea2ecac8.js deleted file mode 100644 index d21218b1f4..0000000000 --- a/web/settings/assets/device-ea2ecac8.js +++ /dev/null @@ -1 +0,0 @@ -import{D as p}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as s,l as f,m as g,G as t,E as a,B as r,A as o}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const w={name:"DeviceTesla",mixins:[p]},b={class:"device-tesla"};function c(n,e,v,k,_,h){const d=s("openwb-base-heading"),u=s("openwb-base-alert"),l=s("openwb-base-text-input");return f(),g("div",b,[t(d,null,{default:a(()=>e[3]||(e[3]=[r(" Einstellungen für Tesla ",-1)])),_:1,__:[3]}),t(u,{subtype:"danger"},{default:a(()=>e[4]||(e[4]=[o("span",{style:{"font-weight":"bold"}}," Tesla hat in der aktuellen Firmware-Version die lokale API der PowerWall abgeschaltet. ",-1),r("Daher ist es mit dieser Firmware nicht mehr möglich, die PowerWall direkt auszulesen. Wir prüfen aktuell den Zugriff über die Tesla-Server. Bis zur Umsetzung dieser Funktion ist es nicht möglich, die PowerWall lokal auszulesen.",-1),o("br",null,null,-1),o("span",{style:{"font-weight":"bold"}}," Wenn die lokale Abfrage bei Dir noch funktioniert, dann solltest Du die Firmware der PowerWall nicht aktualisieren! ",-1),o("br",null,null,-1),r(" Wir empfehlen, dass Du Tesla kontaktierst und Kritik an dieser Entscheidung mitteilst. Nur so können wir hoffen, dass Tesla die lokale API wieder aktiviert. Mit der Cloud-API kommt es zwangsläufig zu Verzögerungen (Latenzen), welche eine Regelung durch openWB erschweren. Weiterhin kommt es zu einem totalen Ausfall, wenn die Internetverbindung gestört ist. Aus diesen Gründen ist eine lokale API immer vorzuziehen. ",-1)])),_:1,__:[4]}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(l,{title:"E-Mail",subtype:"email",required:"","model-value":n.device.configuration.email,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.email"))},null,8,["model-value"]),t(l,{title:"Passwort",subtype:"password",required:"","model-value":n.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=i=>n.updateConfiguration(i,"configuration.password"))},null,8,["model-value"])])}const y=m(w,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/tesla/device.vue"]]);export{y as default}; diff --git a/web/settings/assets/device-ee7a56fb.js b/web/settings/assets/device-ee7a56fb.js new file mode 100644 index 0000000000..e3ff49a400 --- /dev/null +++ b/web/settings/assets/device-ee7a56fb.js @@ -0,0 +1 @@ +import{D as m}from"./HardwareInstallation-8066ca79.js";import{_ as v,u as t,l as b,m as f,G as i,E as r,B as s}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceGoodWe",mixins:[m]},w={class:"device-goodwe"};function _(o,e,W,c,D,V){const l=t("openwb-base-heading"),a=t("openwb-base-alert"),p=t("openwb-base-text-input"),d=t("openwb-base-number-input"),u=t("openwb-base-select-input");return b(),f("div",w,[i(l,null,{default:r(()=>[...e[5]||(e[5]=[s("Einstellungen für GoodWe",-1)])]),_:1}),i(a,{subtype:"info"},{default:r(()=>[...e[6]||(e[6]=[s(" GoodWe-Wechselrichter verfügen über 3 Dongle: Den WiFi-Dongle, das Wifi-Lan-Kit und das Wifi-Lan-Kit 2.0. Die Einbindung über dieses Modul ist nur mit den Wifi-Lan-Kits möglich. Welches Kit benötigt wird ist vom Wechselrichter abhängig und kann bei GoodWe erfragt werden. ",-1)])]),_:1}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(d,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(u,{title:"API-Version","not-selected":"Bitte auswählen",options:[{value:"v_1_7",text:"v1.7"},{value:"v_1_1",text:"v1.0/ v1.1"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.version"))},{help:r(()=>[...e[7]||(e[7]=[s(" Die Wahl der API-Version beeinflusst die Auslesung der Speicherleistung und der Import/ Export Werte des Zählers. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"Firmware","not-selected":"Bitte auswählen",options:[{value:8,text:"ARM < 9.0"},{value:9,text:"ARM ab 9.0"}],"model-value":o.device.configuration.firmware,required:"","onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.firmware"))},{help:r(()=>[...e[8]||(e[8]=[s(" Die Auswahl der Firmware-Version beeinflusst die Auslesung der Wirkleistung und der Phasenströme des Zählers. ",-1)])]),_:1},8,["model-value"])])}const M=v(g,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/good_we/device.vue"]]);export{M as default}; diff --git a/web/settings/assets/device-ef964622.js b/web/settings/assets/device-ef964622.js new file mode 100644 index 0000000000..097decfefc --- /dev/null +++ b/web/settings/assets/device-ef964622.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-8066ca79.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as _}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceFoxEss",mixins:[a]},f={class:"device-fox_ess"};function b(o,e,v,g,x,w){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",f,[i(s,null,{default:l(()=>[...e[2]||(e[2]=[_("Einstellungen für FoxEss",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-fba9cb18.js b/web/settings/assets/device-fba9cb18.js deleted file mode 100644 index ad7ad93167..0000000000 --- a/web/settings/assets/device-fba9cb18.js +++ /dev/null @@ -1 +0,0 @@ -import{D as s}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as i,l as u,m,G as t,E as l,B as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceAmpere",mixins:[s]},b={class:"device-ampere"};function v(o,e,c,g,w,C){const a=i("openwb-base-heading"),p=i("openwb-base-text-input"),r=i("openwb-base-number-input");return u(),m("div",b,[t(a,null,{default:l(()=>e[3]||(e[3]=[f(" Einstellungen für Ampere Pro",-1)])),_:1,__:[3]}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const k=d(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/ampere/ampere/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-fc594731.js b/web/settings/assets/device-fc594731.js new file mode 100644 index 0000000000..ae89cc502f --- /dev/null +++ b/web/settings/assets/device-fc594731.js @@ -0,0 +1 @@ +import{D as m}from"./HardwareInstallation-8066ca79.js";import{_ as l,u as i,l as b,m as f,G as t,E as r,B as a}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSiemens",mixins:[m]},v={class:"device-siemens"};function c(o,e,g,w,C,x){const p=i("openwb-base-heading"),d=i("openwb-base-alert"),u=i("openwb-base-text-input"),s=i("openwb-base-number-input");return b(),f("div",v,[t(p,null,{default:r(()=>[...e[3]||(e[3]=[a(" Einstellungen für Siemens ",-1)])]),_:1}),t(d,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[a(" Im Siemens-Speicher muss die Schnittstelle openWB gewählt werden. ",-1)])]),_:1}),t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const k=l(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/siemens/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-fee0c0ea.js b/web/settings/assets/device-fee0c0ea.js new file mode 100644 index 0000000000..bb94ff8153 --- /dev/null +++ b/web/settings/assets/device-fee0c0ea.js @@ -0,0 +1 @@ +import{D as a}from"./HardwareInstallation-8066ca79.js";import{_ as d,u as t,l as u,m,G as i,E as l,B as b}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceNibe",mixins:[a]},_={class:"device-nibe"};function f(o,e,v,g,w,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),m("div",_,[i(s,null,{default:l(()=>[...e[2]||(e[2]=[b("Einstellungen für Nibe",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const P=d(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/nibe/nibe/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/displayTheme-1cde14a1.js b/web/settings/assets/displayTheme-1cde14a1.js new file mode 100644 index 0000000000..69cd639905 --- /dev/null +++ b/web/settings/assets/displayTheme-1cde14a1.js @@ -0,0 +1 @@ +import{D as v}from"./OptionalComponents-855be104.js";import{_,u as s,l as r,m as c,G as a,E as o,B as u,x as b,z as p}from"./vendor-50125810.js";import"./index-c94f8df4.js";import"./vendor-fortawesome-fc4b3a41.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const h=[{value:"dashboard",text:"Übersicht"},{value:"energy-flow",text:"Energiefluss"},{value:"charge-points",text:"Ladepunkte"},{value:"status",text:"Status"}],V={name:"DisplayThemeCards",mixins:[v],computed:{enabledViews(){return h.filter(t=>this.displayTheme.configuration[`enable_${t.value.replace("-","_")}_view`])}},methods:{toggleView(t){this.displayTheme.configuration.default_view===t&&this.updateConfiguration(void 0,"configuration.default_view"),this.updateConfiguration(!this.displayTheme.configuration[`enable_${t}_view`],`configuration.enable_${t}_view`)}}},w={class:"display-theme-cards"};function y(t,e,A,T,z,i){const d=s("openwb-base-heading"),l=s("openwb-base-button-group-input"),g=s("openwb-base-text-input"),m=s("openwb-base-select-input"),f=s("openwb-base-range-input");return r(),c("div",w,[a(d,null,{default:o(()=>[...e[15]||(e[15]=[u("Bediensperre",-1)])]),_:1}),a(l,{title:"Bedienung sperren","model-value":t.displayTheme.configuration.lock_changes,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.lock_changes"))},{help:o(()=>[...e[16]||(e[16]=[u(' Die Bedienung wird automatisch nach der eingestellten Ausschaltzeit (siehe "Display Standby") wieder gesperrt. ',-1)])]),_:1},8,["model-value"]),t.displayTheme.configuration.lock_changes?(r(),b(g,{key:0,title:"PIN zur Freigabe",subtype:"password",required:"",pattern:"[0-9]{4,10}","model-value":t.displayTheme.configuration.lock_changes_code,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.lock_changes_code"))},{help:o(()=>[...e[17]||(e[17]=[u(" Der PIN muss aus 4 bis 10 Zahlen bestehen. ",-1)])]),_:1},8,["model-value"])):p("",!0),a(d,null,{default:o(()=>[...e[18]||(e[18]=[u("Ansichten",-1)])]),_:1}),a(l,{title:"Übersicht anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[2]||(e[2]=n=>i.toggleView("dashboard"))},null,8,["model-value"]),a(l,{title:"Energiefluss anzeigen","model-value":t.displayTheme.configuration.enable_energy_flow_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[3]||(e[3]=n=>i.toggleView("energy_flow"))},null,8,["model-value"]),a(l,{title:"Ladepunkte anzeigen","model-value":t.displayTheme.configuration.enable_charge_points_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[4]||(e[4]=n=>i.toggleView("charge_points"))},null,8,["model-value"]),t.displayTheme.configuration.enable_charge_points_view==!0?(r(),b(l,{key:1,title:"Einfache Ansicht der Ladepunkte","model-value":t.displayTheme.configuration.simple_charge_point_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.simple_charge_point_view"))},null,8,["model-value"])):p("",!0),a(l,{title:"Status anzeigen","model-value":t.displayTheme.configuration.enable_status_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[6]||(e[6]=n=>i.toggleView("status"))},null,8,["model-value"]),a(m,{title:"Standardansicht","not-selected":"Bitte auswählen",required:"","model-value":t.displayTheme.configuration.default_view,options:i.enabledViews,"onUpdate:modelValue":e[7]||(e[7]=n=>t.updateConfiguration(n,"configuration.default_view"))},{help:o(()=>[...e[19]||(e[19]=[u(" Die Standardansicht wird beim Start sowie nach einiger Zeit ohne Bedienung angezeigt. ",-1)])]),_:1},8,["model-value","options"]),a(f,{title:"Wechsel zur Standardansicht",min:0,max:6,step:1,"model-value":t.displayTheme.configuration.default_view_timeout,labels:[{value:0,label:"Aus"},{value:60,label:"1 Min"},{value:300,label:"5 Min"},{value:600,label:"10 Min"},{value:900,label:"15 Min"},{value:1800,label:"30 Min"},{value:3600,label:"60 Min"}],"onUpdate:modelValue":e[8]||(e[8]=n=>t.updateConfiguration(n,"configuration.default_view_timeout"))},{help:o(()=>[...e[20]||(e[20]=[u(" Nach dieser Zeit ohne Bedienung wird die Standardansicht angezeigt. ",-1)])]),_:1},8,["model-value"]),a(d,null,{help:o(()=>[...e[21]||(e[21]=[u(' Hier kann festgelegt werden, welche Daten in den Ansichten "Übersicht" und "Energiefluss" angezeigt werden. ',-1)])]),default:o(()=>[e[22]||(e[22]=u(" Datenauswahl ",-1))]),_:1}),a(l,{title:"EVU anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_grid,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[9]||(e[9]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_grid"))},null,8,["model-value"]),a(l,{title:"Hausverbrauch anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_home_consumption,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[10]||(e[10]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_home_consumption"))},null,8,["model-value"]),a(l,{title:"PV anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_inverter_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[11]||(e[11]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_inverter_sum"))},null,8,["model-value"]),a(l,{title:"Batteriespeicher anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_battery_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[12]||(e[12]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_battery_sum"))},null,8,["model-value"]),a(l,{title:"Ladepunkte anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_charge_point_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[13]||(e[13]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_charge_point_sum"))},null,8,["model-value"]),a(l,{title:"Fahrzeuge anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_vehicles,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[14]||(e[14]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_vehicles"))},null,8,["model-value"])])}const N=_(V,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/cards/displayTheme.vue"]]);export{N as default}; diff --git a/web/settings/assets/displayTheme-574a4f61.js b/web/settings/assets/displayTheme-574a4f61.js new file mode 100644 index 0000000000..a320eca184 --- /dev/null +++ b/web/settings/assets/displayTheme-574a4f61.js @@ -0,0 +1 @@ +import{D as d}from"./OptionalComponents-855be104.js";import{_ as m,u as n,l as i,m as c,G as p,E as s,B as a,x as b,z as g}from"./vendor-50125810.js";import"./index-c94f8df4.js";import"./vendor-fortawesome-fc4b3a41.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"DisplayThemeColors",mixins:[d]},f={class:"display-theme-colors"};function h(o,e,y,w,k,v){const r=n("openwb-base-heading"),l=n("openwb-base-button-group-input"),u=n("openwb-base-text-input");return i(),c("div",f,[p(r,null,{default:s(()=>[...e[2]||(e[2]=[a("Bediensperre",-1)])]),_:1}),p(l,{title:"Bedienung sperren","model-value":o.displayTheme.configuration.lock_changes,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.lock_changes"))},{help:s(()=>[...e[3]||(e[3]=[a(' Die Bedienung wird automatisch nach der eingestellten Ausschaltzeit (siehe "Display Standby") wieder gesperrt. ',-1)])]),_:1},8,["model-value"]),o.displayTheme.configuration.lock_changes?(i(),b(u,{key:0,title:"PIN zur Freigabe",subtype:"password",required:"",pattern:"[0-9]{4,10}","model-value":o.displayTheme.configuration.lock_changes_code,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.lock_changes_code"))},{help:s(()=>[...e[4]||(e[4]=[a(" Der PIN muss aus 4 bis 10 Zahlen bestehen. ",-1)])]),_:1},8,["model-value"])):g("",!0)])}const A=m(_,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/colors/displayTheme.vue"]]);export{A as default}; diff --git a/web/settings/assets/displayTheme-717a89a9.js b/web/settings/assets/displayTheme-717a89a9.js deleted file mode 100644 index 78781234e8..0000000000 --- a/web/settings/assets/displayTheme-717a89a9.js +++ /dev/null @@ -1 +0,0 @@ -import{D as v}from"./OptionalComponents-a2c47c92.js";import{_,u as s,l as r,m as c,G as a,E as o,B as u,x as b,z as p}from"./vendor-25d394b4.js";import"./index-8dd8e083.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const h=[{value:"dashboard",text:"Übersicht"},{value:"energy-flow",text:"Energiefluss"},{value:"charge-points",text:"Ladepunkte"},{value:"status",text:"Status"}],V={name:"DisplayThemeCards",mixins:[v],computed:{enabledViews(){return h.filter(t=>this.displayTheme.configuration[`enable_${t.value.replace("-","_")}_view`])}},methods:{toggleView(t){this.displayTheme.configuration.default_view===t&&this.updateConfiguration(void 0,"configuration.default_view"),this.updateConfiguration(!this.displayTheme.configuration[`enable_${t}_view`],`configuration.enable_${t}_view`)}}},w={class:"display-theme-cards"};function y(t,e,A,T,z,i){const d=s("openwb-base-heading"),l=s("openwb-base-button-group-input"),g=s("openwb-base-text-input"),m=s("openwb-base-select-input"),f=s("openwb-base-range-input");return r(),c("div",w,[a(d,null,{default:o(()=>e[15]||(e[15]=[u("Bediensperre",-1)])),_:1,__:[15]}),a(l,{title:"Bedienung sperren","model-value":t.displayTheme.configuration.lock_changes,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.lock_changes"))},{help:o(()=>e[16]||(e[16]=[u(' Die Bedienung wird automatisch nach der eingestellten Ausschaltzeit (siehe "Display Standby") wieder gesperrt. ',-1)])),_:1},8,["model-value"]),t.displayTheme.configuration.lock_changes?(r(),b(g,{key:0,title:"PIN zur Freigabe",subtype:"password",required:"",pattern:"[0-9]{4,10}","model-value":t.displayTheme.configuration.lock_changes_code,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.lock_changes_code"))},{help:o(()=>e[17]||(e[17]=[u(" Der PIN muss aus 4 bis 10 Zahlen bestehen. ",-1)])),_:1},8,["model-value"])):p("",!0),a(d,null,{default:o(()=>e[18]||(e[18]=[u("Ansichten",-1)])),_:1,__:[18]}),a(l,{title:"Übersicht anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[2]||(e[2]=n=>i.toggleView("dashboard"))},null,8,["model-value"]),a(l,{title:"Energiefluss anzeigen","model-value":t.displayTheme.configuration.enable_energy_flow_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[3]||(e[3]=n=>i.toggleView("energy_flow"))},null,8,["model-value"]),a(l,{title:"Ladepunkte anzeigen","model-value":t.displayTheme.configuration.enable_charge_points_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[4]||(e[4]=n=>i.toggleView("charge_points"))},null,8,["model-value"]),t.displayTheme.configuration.enable_charge_points_view==!0?(r(),b(l,{key:1,title:"Einfache Ansicht der Ladepunkte","model-value":t.displayTheme.configuration.simple_charge_point_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.simple_charge_point_view"))},null,8,["model-value"])):p("",!0),a(l,{title:"Status anzeigen","model-value":t.displayTheme.configuration.enable_status_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[6]||(e[6]=n=>i.toggleView("status"))},null,8,["model-value"]),a(m,{title:"Standardansicht","not-selected":"Bitte auswählen",required:"","model-value":t.displayTheme.configuration.default_view,options:i.enabledViews,"onUpdate:modelValue":e[7]||(e[7]=n=>t.updateConfiguration(n,"configuration.default_view"))},{help:o(()=>e[19]||(e[19]=[u(" Die Standardansicht wird beim Start sowie nach einiger Zeit ohne Bedienung angezeigt. ",-1)])),_:1},8,["model-value","options"]),a(f,{title:"Wechsel zur Standardansicht",min:0,max:6,step:1,"model-value":t.displayTheme.configuration.default_view_timeout,labels:[{value:0,label:"Aus"},{value:60,label:"1 Min"},{value:300,label:"5 Min"},{value:600,label:"10 Min"},{value:900,label:"15 Min"},{value:1800,label:"30 Min"},{value:3600,label:"60 Min"}],"onUpdate:modelValue":e[8]||(e[8]=n=>t.updateConfiguration(n,"configuration.default_view_timeout"))},{help:o(()=>e[20]||(e[20]=[u(" Nach dieser Zeit ohne Bedienung wird die Standardansicht angezeigt. ",-1)])),_:1},8,["model-value"]),a(d,null,{help:o(()=>e[21]||(e[21]=[u(' Hier kann festgelegt werden, welche Daten in den Ansichten "Übersicht" und "Energiefluss" angezeigt werden. ',-1)])),default:o(()=>[e[22]||(e[22]=u(" Datenauswahl ",-1))]),_:1,__:[22]}),a(l,{title:"EVU anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_grid,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[9]||(e[9]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_grid"))},null,8,["model-value"]),a(l,{title:"Hausverbrauch anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_home_consumption,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[10]||(e[10]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_home_consumption"))},null,8,["model-value"]),a(l,{title:"PV anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_inverter_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[11]||(e[11]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_inverter_sum"))},null,8,["model-value"]),a(l,{title:"Batteriespeicher anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_battery_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[12]||(e[12]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_battery_sum"))},null,8,["model-value"]),a(l,{title:"Ladepunkte anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_charge_point_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[13]||(e[13]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_charge_point_sum"))},null,8,["model-value"]),a(l,{title:"Fahrzeuge anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_vehicles,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[14]||(e[14]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_vehicles"))},null,8,["model-value"])])}const N=_(V,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/cards/displayTheme.vue"]]);export{N as default}; diff --git a/web/settings/assets/displayTheme-cf89ddcd.js b/web/settings/assets/displayTheme-cf89ddcd.js deleted file mode 100644 index 024bd93c27..0000000000 --- a/web/settings/assets/displayTheme-cf89ddcd.js +++ /dev/null @@ -1 +0,0 @@ -import{D as d}from"./OptionalComponents-a2c47c92.js";import{_ as m,u as n,l as i,m as c,G as p,E as s,B as a,x as _,z as b}from"./vendor-25d394b4.js";import"./index-8dd8e083.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DisplayThemeColors",mixins:[d]},f={class:"display-theme-colors"};function h(o,e,y,w,k,v){const r=n("openwb-base-heading"),l=n("openwb-base-button-group-input"),u=n("openwb-base-text-input");return i(),c("div",f,[p(r,null,{default:s(()=>e[2]||(e[2]=[a("Bediensperre",-1)])),_:1,__:[2]}),p(l,{title:"Bedienung sperren","model-value":o.displayTheme.configuration.lock_changes,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.lock_changes"))},{help:s(()=>e[3]||(e[3]=[a(' Die Bedienung wird automatisch nach der eingestellten Ausschaltzeit (siehe "Display Standby") wieder gesperrt. ',-1)])),_:1},8,["model-value"]),o.displayTheme.configuration.lock_changes?(i(),_(u,{key:0,title:"PIN zur Freigabe",subtype:"password",required:"",pattern:"[0-9]{4,10}","model-value":o.displayTheme.configuration.lock_changes_code,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.lock_changes_code"))},{help:s(()=>e[4]||(e[4]=[a(" Der PIN muss aus 4 bis 10 Zahlen bestehen. ",-1)])),_:1},8,["model-value"])):b("",!0)])}const A=m(g,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/colors/displayTheme.vue"]]);export{A as default}; diff --git a/web/settings/assets/electricity_tariff-1801c7f1.js b/web/settings/assets/electricity_tariff-1801c7f1.js new file mode 100644 index 0000000000..123328ea8d --- /dev/null +++ b/web/settings/assets/electricity_tariff-1801c7f1.js @@ -0,0 +1 @@ +import{E as m}from"./GeneralChargeConfig-6ea49afe.js";import{_ as g,u as s,l as h,m as _,G as n,E as y,B as l,A as T}from"./vendor-50125810.js";import"./index-c94f8df4.js";import"./vendor-fortawesome-fc4b3a41.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const k={name:"ElectricityTariffTibber",mixins:[m],data(){return{tibberAPI:"https://api.tibber.com/v1-beta/gql",tibberHomeList:[]}},methods:{async getTibberHomeList(){if(this.electricityTariff.configuration.token===null)return;const i='{ "query": "{viewer {homes{id address{address1 address2 address3 postalCode city country}}}}" }';try{const e=await this.axios.post(this.tibberAPI,i,{headers:{Authorization:"Bearer "+this.electricityTariff.configuration.token,"Content-Type":"application/json"}});this.tibberHomeList=e.data.data.viewer.homes.map(t=>{let r=t.address.address1;return t.address.address2&&(r=r+", "+t.address.address2),t.address.address3&&(r=r+", "+t.address.address3),r=r+`, ${t.address.postalCode} ${t.address.city}, ${t.address.country}`,{value:t.id,text:r}}),this.electricityTariff.configuration.home_id||this.updateConfiguration(this.tibberHomeList[0].value,"configuration.home_id"),this.$root.postClientMessage("Home IDs erfolgreich abgerufen.","success")}catch(e){console.error(e),this.$root.postClientMessage("Beim Abfragen der Tibber API ist ein Fehler aufgetreten!
"+e+"
","danger")}}}},v={class:"electricity-tariff-tibber"};function w(i,e,t,r,u,c){var d;const b=s("openwb-base-alert"),a=s("openwb-base-text-input"),p=s("openwb-base-button-input"),f=s("openwb-base-select-input");return h(),_("div",v,[n(b,{subtype:"info"},{default:y(()=>[...e[3]||(e[3]=[l(" Ihren persönlichen Tibber-Token erhalten Sie über die ",-1),T("a",{href:"https://developer.tibber.com/explorer",target:"_blank",rel:"noopener noreferrer"}," Tibber-Developer-Seite ",-1),l(" . Behandeln Sie Ihren Token wie ein Passwort, da sich darüber auch persönliche Daten aus Ihrem Tibber-Account abfragen lassen! Die Home-ID können Sie (wenn bekannt) in das Eingabefeld selbst eintragen oder nach Eingabe Ihres Token durch Klick auf den Button von der openWB ermitteln lassen. Unerlaubte Zeichen werden aus dem Token und der Home-ID automatisch gelöscht. ",-1)])]),_:1}),n(a,{ref:"tokenInput",title:"Token",required:"","model-value":i.electricityTariff.configuration.token,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"configuration.token"))},null,8,["model-value"]),n(p,{title:"Home-IDs abrufen","button-text":"Jetzt abrufen",subtype:"success",disabled:!((d=i.electricityTariff.configuration.token)!=null&&d.length),onButtonClicked:c.getTibberHomeList},null,8,["disabled","onButtonClicked"]),n(f,{title:"Verfügbare Home-IDs",options:u.tibberHomeList,"model-value":i.electricityTariff.configuration.home_id,"onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o,"configuration.home_id"))},null,8,["options","model-value"]),n(a,{title:"Home-ID",required:"","model-value":i.electricityTariff.configuration.home_id,"onUpdate:modelValue":e[2]||(e[2]=o=>i.updateConfiguration(o,"configuration.home_id"))},null,8,["model-value"])])}const $=g(k,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/tibber/electricity_tariff.vue"]]);export{$ as default}; diff --git a/web/settings/assets/electricity_tariff-1ac1c5ab.js b/web/settings/assets/electricity_tariff-1ac1c5ab.js deleted file mode 100644 index a3f4a02aa6..0000000000 --- a/web/settings/assets/electricity_tariff-1ac1c5ab.js +++ /dev/null @@ -1 +0,0 @@ -import{E as s}from"./GeneralChargeConfig-d70b0d95.js";import{_ as l,u as r,l as c,m as p,G as n,E as u,B as f}from"./vendor-25d394b4.js";import"./index-8dd8e083.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"ElectricityTariffRabot",mixins:[s]},m={class:"electricity-tariff-rabot"};function _(t,e,b,g,y,v){const a=r("openwb-base-alert"),o=r("openwb-base-text-input");return c(),p("div",m,[n(a,{subtype:"info"},{default:u(()=>e[2]||(e[2]=[f(" Ihre persönlichen Zugangsdaten (Client-ID und Client-Secret) erhalten Sie direkt von Rabot. Behandeln Sie diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Ihrem Rabot-Account abfragen lassen! ",-1)])),_:1,__:[2]}),n(o,{title:"Client-ID",subtype:"user",required:"","model-value":t.electricityTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),n(o,{title:"Client-Secret",subtype:"password",required:"","model-value":t.electricityTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"])])}const S=l(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/rabot/electricity_tariff.vue"]]);export{S as default}; diff --git a/web/settings/assets/electricity_tariff-364c39ff.js b/web/settings/assets/electricity_tariff-364c39ff.js new file mode 100644 index 0000000000..7451419ca7 --- /dev/null +++ b/web/settings/assets/electricity_tariff-364c39ff.js @@ -0,0 +1 @@ +import{E as c}from"./GeneralChargeConfig-6ea49afe.js";import{_ as p,u as r,l as d,m as f,G as i,E as o,B as s,A as m}from"./vendor-50125810.js";import"./index-c94f8df4.js";import"./vendor-fortawesome-fc4b3a41.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const g={name:"ElectricityTariffEnergyCharts",mixins:[c]},h={class:"electricity-tariff-energy-charts"};function b(t,e,_,y,w,v){const a=r("openwb-base-alert"),l=r("openwb-base-select-input"),u=r("openwb-base-number-input");return d(),f("div",h,[i(a,{subtype:"info"},{default:o(()=>[...e[2]||(e[2]=[s(" Börsenstrompreise von Energy Charts (energy-charts.info)",-1),m("br",null,null,-1),s(" Die Rohdaten werden von Wissenschaftlern des Fraunhofer-Instituts für Solare Energiesysteme ISE aus zahlreichen Quellen stündlich oder täglich abgerufen und für die Darstellung aufbereitet. ",-1)])]),_:1}),i(l,{title:"Land","not-selected":"Bitte auswählen",options:[{value:"DE-LU",text:"Deutschland"},{value:"AT",text:"Österreich"},{value:"CH",text:"Schweiz"}],"model-value":t.electricityTariff.configuration.country,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.country"))},null,8,["model-value"]),i(u,{title:"Aufschlag zum Börsenstrompreis",min:0,step:.001,precision:3,required:"",unit:"ct/kWh","model-value":t.electricityTariff.configuration.surcharge,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(parseFloat(n.toFixed(3)),"configuration.surcharge"))},{help:o(()=>[...e[3]||(e[3]=[s(" Die Auswahl (Energy-Charts) kann für alle Stromanbieter ausgewählt werden, die die Börsenstrompreise in einem variablen/dynamischen Tarif an die Kunden weitergeben. Das Modul soll es ermöglichen, dass zu tagesaktuellen Strompreisen unter Berücksichtigung eines Aufschlags zu günstigen Zeiten automatisch geladen werden kann und somit die Preisschwankungen an der Börse optimal ausgenutzt werden. ",-1)])]),_:1},8,["model-value"])])}const S=p(g,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/energycharts/electricity_tariff.vue"]]);export{S as default}; diff --git a/web/settings/assets/electricity_tariff-377f97e7.js b/web/settings/assets/electricity_tariff-377f97e7.js deleted file mode 100644 index 2a11c0c381..0000000000 --- a/web/settings/assets/electricity_tariff-377f97e7.js +++ /dev/null @@ -1 +0,0 @@ -import{E as p}from"./GeneralChargeConfig-d70b0d95.js";import{_ as u,u as a,l as d,m as f,G as r,E as l,B as n,A as m}from"./vendor-25d394b4.js";import"./index-8dd8e083.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"ElectricityTariffOstrom",mixins:[p]},g={class:"electricity-tariff-ostrom"};function b(t,e,_,h,v,w){const s=a("openwb-base-alert"),o=a("openwb-base-text-input");return d(),f("div",g,[r(s,{subtype:"info"},{default:l(()=>e[3]||(e[3]=[n(" Ihre persönlichen Zugangsdaten (Client-ID und Client-Secret) erhalten Sie über das ",-1),m("a",{href:"https://developer.ostrom-api.io/",target:"_blank",rel:"noopener noreferrer"}," Ostrom Developer Portal ",-1),n(" . Behandeln Sie diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Ihrem ostrom-Account abfragen lassen! ",-1)])),_:1,__:[3]}),r(o,{title:"Client-ID",subtype:"user",required:"","model-value":t.electricityTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),r(o,{title:"Client-Secret",subtype:"password",required:"","model-value":t.electricityTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"]),r(o,{title:"Postleitzahl","model-value":t.electricityTariff.configuration.zip,"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateConfiguration(i,"configuration.zip"))},{help:l(()=>e[4]||(e[4]=[n(" Die Postleitzahl wird zur Ermittlung der Abgaben und Umlagen benötigt. Ohne Angabe der Postleitzahl wird durch die ostrom API lediglich der Börsenstrompreis einschließlich Mehrwertsteuer geliefert. ",-1)])),_:1},8,["model-value"])])}const A=u(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/ostrom/electricity_tariff.vue"]]);export{A as default}; diff --git a/web/settings/assets/electricity_tariff-ae11ea5d.js b/web/settings/assets/electricity_tariff-45b171ab.js similarity index 72% rename from web/settings/assets/electricity_tariff-ae11ea5d.js rename to web/settings/assets/electricity_tariff-45b171ab.js index c82bdda209..10272d6a4c 100644 --- a/web/settings/assets/electricity_tariff-ae11ea5d.js +++ b/web/settings/assets/electricity_tariff-45b171ab.js @@ -1 +1 @@ -import{E as n}from"./GeneralChargeConfig-d70b0d95.js";import{_ as a,u as l,l as u,m as s,G as r}from"./vendor-25d394b4.js";import"./index-8dd8e083.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const p={name:"ElectricityTariffOctopusEnergy",mixins:[n]},f={class:"electricity-tariff-octopusenergy"};function m(e,t,c,d,g,y){const i=l("openwb-base-text-input");return u(),s("div",f,[r(i,{title:"Benutzername",subtype:"user",required:"","model-value":e.electricityTariff.configuration.email,"onUpdate:modelValue":t[0]||(t[0]=o=>e.updateConfiguration(o,"configuration.email"))},null,8,["model-value"]),r(i,{title:"Passwort",subtype:"password",required:"","model-value":e.electricityTariff.configuration.password,"onUpdate:modelValue":t[1]||(t[1]=o=>e.updateConfiguration(o,"configuration.password"))},null,8,["model-value"]),r(i,{title:"Vertragsnummer (beginnt mit A-)",required:"","model-value":e.electricityTariff.configuration.accountId,"onUpdate:modelValue":t[2]||(t[2]=o=>e.updateConfiguration(o,"configuration.accountId"))},null,8,["model-value"])])}const $=a(p,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/octopusenergy/electricity_tariff.vue"]]);export{$ as default}; +import{E as n}from"./GeneralChargeConfig-6ea49afe.js";import{_ as a,u as l,l as u,m as s,G as r}from"./vendor-50125810.js";import"./index-c94f8df4.js";import"./vendor-fortawesome-fc4b3a41.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const p={name:"ElectricityTariffOctopusEnergy",mixins:[n]},f={class:"electricity-tariff-octopusenergy"};function m(e,t,c,d,g,y){const i=l("openwb-base-text-input");return u(),s("div",f,[r(i,{title:"Benutzername",subtype:"user",required:"","model-value":e.electricityTariff.configuration.email,"onUpdate:modelValue":t[0]||(t[0]=o=>e.updateConfiguration(o,"configuration.email"))},null,8,["model-value"]),r(i,{title:"Passwort",subtype:"password",required:"","model-value":e.electricityTariff.configuration.password,"onUpdate:modelValue":t[1]||(t[1]=o=>e.updateConfiguration(o,"configuration.password"))},null,8,["model-value"]),r(i,{title:"Vertragsnummer (beginnt mit A-)",required:"","model-value":e.electricityTariff.configuration.accountId,"onUpdate:modelValue":t[2]||(t[2]=o=>e.updateConfiguration(o,"configuration.accountId"))},null,8,["model-value"])])}const $=a(p,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/octopusenergy/electricity_tariff.vue"]]);export{$ as default}; diff --git a/web/settings/assets/electricity_tariff-6a090d74.js b/web/settings/assets/electricity_tariff-6a090d74.js deleted file mode 100644 index f5b7f4d634..0000000000 --- a/web/settings/assets/electricity_tariff-6a090d74.js +++ /dev/null @@ -1 +0,0 @@ -import{E as I}from"./GeneralChargeConfig-d70b0d95.js";import{_ as S,l as o,m as c,A as u,p as k,u as s,x as w,D as N,E as a,B as f,F as V,G as r,y as C,z as B,N as x,M as $,I as q,S as z}from"./vendor-25d394b4.js";import{l as T,d as F,ab as O,F as U}from"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const H={name:"TimeRow"},W={class:"w-100"},A={class:"form-row align-items-center"},D={class:"col-10"},Q={class:"form-row"},Z={class:"col-6"},M={class:"col-6"},P={class:"col-2 text-right"};function K(t,e,p,v,g,n){return o(),c("div",W,[u("div",A,[u("div",D,[u("div",Q,[u("div",Z,[k(t.$slots,"start")]),u("div",M,[k(t.$slots,"end")])])]),u("div",P,[k(t.$slots,"action")])])])}const R=S(H,[["render",K],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/fixed_hours/TimeRow.vue"]]);T.add(F);T.add(O);const L={name:"TimeTable",components:{FontAwesomeIcon:U,TimeRow:R},inheritAttrs:!1,props:{title:{type:String,required:!0,default:"#TITLE#"},modelValue:{type:Array,default:()=>[]}},emits:["update:modelValue"],data(){return{endOptions:this.modelValue.map(()=>this.generateTimeOptions("01:00","24:00"))}},computed:{value:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}}},methods:{generateTimeOptions(t,e){const p=[],v=parseInt(t.split(":")[0],10),g=parseInt(e.split(":")[0],10);for(let n=v;n<=g;n++){const d=`${n.toString().padStart(2,"0")}:00`;p.push({value:d,text:d})}return p},addTime(){this.value.push(["",""])},removeTime(t){this.value.splice(t,1)},updateEndOptions(t){const e=this.value[t][0];if(e){const v=(parseInt(e.split(":")[0],10)+1).toString().padStart(2,"0")+":00";this.endOptions[t]=this.generateTimeOptions(v,"24:00")}else this.endOptions[t]=this.generateTimeOptions("01:00","24:00")}}},j={key:0,class:"w-100 alert alert-danger"},G=["onUpdate:modelValue","onChange"],J=["value"],X=["onUpdate:modelValue"],Y=["value"];function ee(t,e,p,v,g,n){const m=s("font-awesome-icon"),d=s("openwb-base-avatar"),h=s("time-row"),y=s("openwb-base-setting-element");return o(),w(y,null,N({title:a(()=>[k(t.$slots,"title",{},()=>[f(V(p.title),1)])]),default:a(()=>[r(h,null,{start:a(()=>e[0]||(e[0]=[f(" Beginn ",-1)])),end:a(()=>e[1]||(e[1]=[f(" Ende ",-1)])),action:a(()=>[r(d,{class:"bg-success clickable",title:"Zeitbereich hinzufügen",onClick:C(n.addTime,["stop"])},{default:a(()=>[r(m,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),_:1}),n.value.length===0?(o(),c("div",j," Keine Zeitbereiche definiert! ")):B("",!0),(o(!0),c(x,null,$(n.value,(_,b)=>(o(),w(h,{key:b},{start:a(()=>[q(u("select",{"onUpdate:modelValue":i=>_[0]=i,class:"form-control",required:"",onChange:i=>n.updateEndOptions(b)},[e[2]||(e[2]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(o(!0),c(x,null,$(n.generateTimeOptions("00:00","23:00"),i=>(o(),c("option",{key:i.value,value:i.value},V(i.text),9,J))),128))],40,G),[[z,_[0]]])]),end:a(()=>[q(u("select",{"onUpdate:modelValue":i=>_[1]=i,class:"form-control",required:""},[e[3]||(e[3]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(o(!0),c(x,null,$(g.endOptions[b],i=>(o(),c("option",{key:i.value,value:i.value},V(i.text),9,Y))),128))],8,X),[[z,_[1]]])]),action:a(()=>[n.value.length>1?(o(),w(d,{key:0,class:"bg-danger clickable",title:"Zeitbereich entfernen",onClick:C(i=>n.removeTime(b),["stop"])},{default:a(()=>[r(m,{icon:["fas","trash"]})]),_:2},1032,["onClick"])):B("",!0)]),_:2},1024))),128))]),_:2},[t.$slots.help?{name:"help",fn:a(()=>[k(t.$slots,"help")]),key:"0"}:void 0]),1024)}const te=S(L,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/fixed_hours/TimeTable.vue"]]);T.add(F);T.add(O);const ne={name:"FixedTariff",components:{FontAwesomeIcon:U,TimeTable:te},props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue","delete"],computed:{tariff:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}},dates:{get(){return this.tariff.active_times.dates.map(([t,e])=>`${t};${e}`)},set(t){this.tariff.active_times.dates=t.map(e=>e.split(";"))}}}};function ae(t,e,p,v,g,n){const m=s("font-awesome-icon"),d=s("openwb-base-avatar"),h=s("openwb-base-text-input"),y=s("openwb-base-number-input"),_=s("openwb-base-select-input"),b=s("time-table"),i=s("openwb-base-card");return o(),w(i,{subtype:"info",collapsible:!0},{header:a(()=>[f(V(n.tariff.name),1)]),actions:a(()=>[r(d,{class:"bg-danger clickable",onClick:e[0]||(e[0]=l=>t.$emit("delete"))},{default:a(()=>[r(m,{icon:["fas","trash"]})]),_:1})]),default:a(()=>[r(h,{modelValue:n.tariff.name,"onUpdate:modelValue":e[1]||(e[1]=l=>n.tariff.name=l),title:"Tarifname"},null,8,["modelValue"]),r(y,{title:"Preis",min:0,step:.1,precision:1,required:"",unit:"ct/kWh","model-value":n.tariff.price*100,"onUpdate:modelValue":e[2]||(e[2]=l=>n.tariff.price=parseFloat((l/100).toFixed(3)))},null,8,["model-value"]),r(_,{modelValue:n.dates,"onUpdate:modelValue":e[3]||(e[3]=l=>n.dates=l),title:"Quartale",required:"",multiple:"",options:[{value:"01-01;31-03",text:"1. Quartal"},{value:"01-04;30-06",text:"2. Quartal"},{value:"01-07;30-09",text:"3. Quartal"},{value:"01-10;31-12",text:"4. Quartal"}]},null,8,["modelValue"]),r(b,{modelValue:n.tariff.active_times.times,"onUpdate:modelValue":e[4]||(e[4]=l=>n.tariff.active_times.times=l),title:"Aktive Zeiten"},null,8,["modelValue"])]),_:1})}const ie=S(ne,[["render",ae],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/fixed_hours/FixedTariff.vue"]]);T.add(F);T.add(O);const se={name:"ElectricityTariffFixedHours",components:{FontAwesomeIcon:U,FixedTariff:ie},mixins:[I],computed:{value:{get(){return this.electricityTariff},set(t){console.log("set",t),this.updateConfiguration(t)}}},methods:{addTariff(){this.value.configuration.tariffs.push({name:"Neuer Tarif",price:0,active_times:{dates:[],times:[["",""]]}})},removeTariff(t){this.value.configuration.tariffs.splice(t,1)}}},oe={class:"electricity-tariff-fixed-hours"};function re(t,e,p,v,g,n){const m=s("openwb-base-alert"),d=s("openwb-base-number-input"),h=s("font-awesome-icon"),y=s("openwb-base-avatar"),_=s("openwb-base-heading"),b=s("fixed-tariff");return o(),c("div",oe,[r(m,{subtype:"info"},{default:a(()=>e[1]||(e[1]=[f(" Konfiguriert feste Tarifzeiten, z.b. HT, NT und Standardpreis. ",-1)])),_:1,__:[1]}),r(d,{title:"Standardpreis",min:0,step:.1,precision:1,required:"",unit:"ct/kWh","model-value":n.value.configuration.default_price*100,"onUpdate:modelValue":e[0]||(e[0]=i=>n.value.configuration.default_price=parseFloat((i/100).toFixed(3)))},{help:a(()=>e[2]||(e[2]=[f(" Standardpreis sofern kein anderer Tarif aktiv ist. ",-1)])),_:1},8,["model-value"]),e[5]||(e[5]=u("hr",null,null,-1)),r(_,null,{actions:a(()=>[r(y,{class:"bg-success clickable",onClick:C(n.addTariff,["stop"])},{default:a(()=>[r(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:a(()=>[e[3]||(e[3]=f(" Tarife ",-1))]),_:1,__:[3]}),n.value.configuration.tariffs.length===0?(o(),w(m,{key:0,subtype:"info"},{default:a(()=>e[4]||(e[4]=[f(" Es wurde noch kein Tarif konfiguriert. Klicken Sie auf das Plus-Symbol um einen neuen Tarif hinzuzufügen.",-1),u("br",null,null,-1),f(" Tarife ermöglichen es unterschiedliche Preise für unterschiedliche Zeiten zu definieren. ",-1)])),_:1,__:[4]})):B("",!0),(o(!0),c(x,null,$(n.value.configuration.tariffs,(i,l)=>(o(),w(b,{key:l,"model-value":i,"onUpdate:modelValue":E=>n.value.configuration.tariffs[l]=E,onDelete:E=>n.removeTariff(l)},null,8,["model-value","onUpdate:modelValue","onDelete"]))),128))])}const ve=S(se,[["render",re],["__scopeId","data-v-aa5a711c"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/fixed_hours/electricity_tariff.vue"]]);export{ve as default}; diff --git a/web/settings/assets/electricity_tariff-701d2b86.js b/web/settings/assets/electricity_tariff-701d2b86.js deleted file mode 100644 index 65b59f8d8b..0000000000 --- a/web/settings/assets/electricity_tariff-701d2b86.js +++ /dev/null @@ -1 +0,0 @@ -import{E as m}from"./GeneralChargeConfig-d70b0d95.js";import{_ as g,u as s,l as h,m as _,G as n,E as y,B as l,A as T}from"./vendor-25d394b4.js";import"./index-8dd8e083.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const k={name:"ElectricityTariffTibber",mixins:[m],data(){return{tibberAPI:"https://api.tibber.com/v1-beta/gql",tibberHomeList:[]}},methods:{async getTibberHomeList(){if(this.electricityTariff.configuration.token===null)return;const i='{ "query": "{viewer {homes{id address{address1 address2 address3 postalCode city country}}}}" }';try{const e=await this.axios.post(this.tibberAPI,i,{headers:{Authorization:"Bearer "+this.electricityTariff.configuration.token,"Content-Type":"application/json"}});this.tibberHomeList=e.data.data.viewer.homes.map(t=>{let r=t.address.address1;return t.address.address2&&(r=r+", "+t.address.address2),t.address.address3&&(r=r+", "+t.address.address3),r=r+`, ${t.address.postalCode} ${t.address.city}, ${t.address.country}`,{value:t.id,text:r}}),this.electricityTariff.configuration.home_id||this.updateConfiguration(this.tibberHomeList[0].value,"configuration.home_id"),this.$root.postClientMessage("Home IDs erfolgreich abgerufen.","success")}catch(e){console.error(e),this.$root.postClientMessage("Beim Abfragen der Tibber API ist ein Fehler aufgetreten!
"+e+"
","danger")}}}},v={class:"electricity-tariff-tibber"};function w(i,e,t,r,u,c){var d;const b=s("openwb-base-alert"),a=s("openwb-base-text-input"),p=s("openwb-base-button-input"),f=s("openwb-base-select-input");return h(),_("div",v,[n(b,{subtype:"info"},{default:y(()=>e[3]||(e[3]=[l(" Ihren persönlichen Tibber-Token erhalten Sie über die ",-1),T("a",{href:"https://developer.tibber.com/explorer",target:"_blank",rel:"noopener noreferrer"}," Tibber-Developer-Seite ",-1),l(" . Behandeln Sie Ihren Token wie ein Passwort, da sich darüber auch persönliche Daten aus Ihrem Tibber-Account abfragen lassen! Die Home-ID können Sie (wenn bekannt) in das Eingabefeld selbst eintragen oder nach Eingabe Ihres Token durch Klick auf den Button von der openWB ermitteln lassen. Unerlaubte Zeichen werden aus dem Token und der Home-ID automatisch gelöscht. ",-1)])),_:1,__:[3]}),n(a,{ref:"tokenInput",title:"Token",required:"","model-value":i.electricityTariff.configuration.token,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"configuration.token"))},null,8,["model-value"]),n(p,{title:"Home-IDs abrufen","button-text":"Jetzt abrufen",subtype:"success",disabled:!((d=i.electricityTariff.configuration.token)!=null&&d.length),onButtonClicked:c.getTibberHomeList},null,8,["disabled","onButtonClicked"]),n(f,{title:"Verfügbare Home-IDs",options:u.tibberHomeList,"model-value":i.electricityTariff.configuration.home_id,"onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o,"configuration.home_id"))},null,8,["options","model-value"]),n(a,{title:"Home-ID",required:"","model-value":i.electricityTariff.configuration.home_id,"onUpdate:modelValue":e[2]||(e[2]=o=>i.updateConfiguration(o,"configuration.home_id"))},null,8,["model-value"])])}const $=g(k,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/tibber/electricity_tariff.vue"]]);export{$ as default}; diff --git a/web/settings/assets/electricity_tariff-7bb00a2f.js b/web/settings/assets/electricity_tariff-7bb00a2f.js deleted file mode 100644 index 6809e44d09..0000000000 --- a/web/settings/assets/electricity_tariff-7bb00a2f.js +++ /dev/null @@ -1 +0,0 @@ -import{E as l}from"./GeneralChargeConfig-d70b0d95.js";import{_ as s,u as r,l as c,m as p,G as o,E as u,B as f}from"./vendor-25d394b4.js";import"./index-8dd8e083.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"ElectricityTariffVoltego",mixins:[l]},m={class:"electricity-tariff-voltego"};function _(t,e,g,b,v,y){const a=r("openwb-base-alert"),n=r("openwb-base-text-input");return c(),p("div",m,[o(a,{subtype:"info"},{default:u(()=>e[2]||(e[2]=[f(" Ihre persönlichen Zugangsdaten (Client-ID und Client-Secret) erhalten Sie direkt von Voltego. Behandeln Sie diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Ihrem Voltego-Account abfragen lassen! ",-1)])),_:1,__:[2]}),o(n,{title:"Client-ID",subtype:"user",required:"","model-value":t.electricityTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),o(n,{title:"Client-Secret",subtype:"password",required:"","model-value":t.electricityTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"])])}const I=s(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/voltego/electricity_tariff.vue"]]);export{I as default}; diff --git a/web/settings/assets/electricity_tariff-81299fd9.js b/web/settings/assets/electricity_tariff-81299fd9.js new file mode 100644 index 0000000000..5841bb1f3c --- /dev/null +++ b/web/settings/assets/electricity_tariff-81299fd9.js @@ -0,0 +1 @@ +import{E as s}from"./GeneralChargeConfig-6ea49afe.js";import{_ as l,u as r,l as c,m as p,G as n,E as u,B as f}from"./vendor-50125810.js";import"./index-c94f8df4.js";import"./vendor-fortawesome-fc4b3a41.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const d={name:"ElectricityTariffRabot",mixins:[s]},m={class:"electricity-tariff-rabot"};function _(t,e,b,g,y,v){const a=r("openwb-base-alert"),o=r("openwb-base-text-input");return c(),p("div",m,[n(a,{subtype:"info"},{default:u(()=>[...e[2]||(e[2]=[f(" Ihre persönlichen Zugangsdaten (Client-ID und Client-Secret) erhalten Sie direkt von Rabot. Behandeln Sie diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Ihrem Rabot-Account abfragen lassen! ",-1)])]),_:1}),n(o,{title:"Client-ID",subtype:"user",required:"","model-value":t.electricityTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),n(o,{title:"Client-Secret",subtype:"password",required:"","model-value":t.electricityTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"])])}const S=l(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/rabot/electricity_tariff.vue"]]);export{S as default}; diff --git a/web/settings/assets/electricity_tariff-8d854ff1.js b/web/settings/assets/electricity_tariff-8d854ff1.js deleted file mode 100644 index 118adfd2b3..0000000000 --- a/web/settings/assets/electricity_tariff-8d854ff1.js +++ /dev/null @@ -1 +0,0 @@ -import{E as o}from"./GeneralChargeConfig-d70b0d95.js";import{_ as a,u as n,l as s,m as c,G as l,E as p,B as f}from"./vendor-25d394b4.js";import"./index-8dd8e083.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"ElectricityTariffAwattar",mixins:[o]},u={class:"electricity-tariff-awattar"};function m(t,e,_,w,b,v){const i=n("openwb-base-select-input");return s(),c("div",u,[l(i,{title:"Land","not-selected":"Bitte auswählen",options:[{value:"de",text:"Deutschland"},{value:"at",text:"Österreich"}],"model-value":t.electricityTariff.configuration.country,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.country"))},{help:p(()=>e[1]||(e[1]=[f(" Es werden die abgefragten Börsenpreise verwendet, die aWATTar bereitstellt. aWATTar-Gebühren oder Steuern werden nicht berücksichtigt. ",-1)])),_:1},8,["model-value"])])}const k=a(d,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/awattar/electricity_tariff.vue"]]);export{k as default}; diff --git a/web/settings/assets/electricity_tariff-96f61949.js b/web/settings/assets/electricity_tariff-96f61949.js new file mode 100644 index 0000000000..f7c089a10e --- /dev/null +++ b/web/settings/assets/electricity_tariff-96f61949.js @@ -0,0 +1 @@ +import{E as o}from"./GeneralChargeConfig-6ea49afe.js";import{_ as a,u as n,l as s,m as c,G as l,E as p,B as f}from"./vendor-50125810.js";import"./index-c94f8df4.js";import"./vendor-fortawesome-fc4b3a41.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const d={name:"ElectricityTariffAwattar",mixins:[o]},u={class:"electricity-tariff-awattar"};function m(t,e,_,w,b,v){const i=n("openwb-base-select-input");return s(),c("div",u,[l(i,{title:"Land","not-selected":"Bitte auswählen",options:[{value:"de",text:"Deutschland"},{value:"at",text:"Österreich"}],"model-value":t.electricityTariff.configuration.country,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.country"))},{help:p(()=>[...e[1]||(e[1]=[f(" Es werden die abgefragten Börsenpreise verwendet, die aWATTar bereitstellt. aWATTar-Gebühren oder Steuern werden nicht berücksichtigt. ",-1)])]),_:1},8,["model-value"])])}const k=a(d,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/awattar/electricity_tariff.vue"]]);export{k as default}; diff --git a/web/settings/assets/electricity_tariff-982b4ff6.js b/web/settings/assets/electricity_tariff-982b4ff6.js new file mode 100644 index 0000000000..cb31335258 --- /dev/null +++ b/web/settings/assets/electricity_tariff-982b4ff6.js @@ -0,0 +1 @@ +import{E as I}from"./GeneralChargeConfig-6ea49afe.js";import{_ as S,l as o,m as c,A as u,p as k,u as s,x as w,D as N,E as a,B as f,F as V,G as r,y as C,z as B,N as x,M as $,I as q,S as z}from"./vendor-50125810.js";import{l as T,d as F,ab as O,F as U}from"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const H={name:"TimeRow"},W={class:"w-100"},A={class:"form-row align-items-center"},D={class:"col-10"},Q={class:"form-row"},Z={class:"col-6"},M={class:"col-6"},P={class:"col-2 text-right"};function K(t,e,p,v,g,n){return o(),c("div",W,[u("div",A,[u("div",D,[u("div",Q,[u("div",Z,[k(t.$slots,"start")]),u("div",M,[k(t.$slots,"end")])])]),u("div",P,[k(t.$slots,"action")])])])}const R=S(H,[["render",K],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/fixed_hours/TimeRow.vue"]]);T.add(F);T.add(O);const L={name:"TimeTable",components:{FontAwesomeIcon:U,TimeRow:R},inheritAttrs:!1,props:{title:{type:String,required:!0,default:"#TITLE#"},modelValue:{type:Array,default:()=>[]}},emits:["update:modelValue"],data(){return{endOptions:this.modelValue.map(()=>this.generateTimeOptions("01:00","24:00"))}},computed:{value:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}}},methods:{generateTimeOptions(t,e){const p=[],v=parseInt(t.split(":")[0],10),g=parseInt(e.split(":")[0],10);for(let n=v;n<=g;n++){const d=`${n.toString().padStart(2,"0")}:00`;p.push({value:d,text:d})}return p},addTime(){this.value.push(["",""])},removeTime(t){this.value.splice(t,1)},updateEndOptions(t){const e=this.value[t][0];if(e){const v=(parseInt(e.split(":")[0],10)+1).toString().padStart(2,"0")+":00";this.endOptions[t]=this.generateTimeOptions(v,"24:00")}else this.endOptions[t]=this.generateTimeOptions("01:00","24:00")}}},j={key:0,class:"w-100 alert alert-danger"},G=["onUpdate:modelValue","onChange"],J=["value"],X=["onUpdate:modelValue"],Y=["value"];function ee(t,e,p,v,g,n){const m=s("font-awesome-icon"),d=s("openwb-base-avatar"),h=s("time-row"),y=s("openwb-base-setting-element");return o(),w(y,null,N({title:a(()=>[k(t.$slots,"title",{},()=>[f(V(p.title),1)])]),default:a(()=>[r(h,null,{start:a(()=>[...e[0]||(e[0]=[f(" Beginn ",-1)])]),end:a(()=>[...e[1]||(e[1]=[f(" Ende ",-1)])]),action:a(()=>[r(d,{class:"bg-success clickable",title:"Zeitbereich hinzufügen",onClick:C(n.addTime,["stop"])},{default:a(()=>[r(m,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),_:1}),n.value.length===0?(o(),c("div",j," Keine Zeitbereiche definiert! ")):B("",!0),(o(!0),c(x,null,$(n.value,(_,b)=>(o(),w(h,{key:b},{start:a(()=>[q(u("select",{"onUpdate:modelValue":i=>_[0]=i,class:"form-control",required:"",onChange:i=>n.updateEndOptions(b)},[e[2]||(e[2]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(o(!0),c(x,null,$(n.generateTimeOptions("00:00","23:00"),i=>(o(),c("option",{key:i.value,value:i.value},V(i.text),9,J))),128))],40,G),[[z,_[0]]])]),end:a(()=>[q(u("select",{"onUpdate:modelValue":i=>_[1]=i,class:"form-control",required:""},[e[3]||(e[3]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(o(!0),c(x,null,$(g.endOptions[b],i=>(o(),c("option",{key:i.value,value:i.value},V(i.text),9,Y))),128))],8,X),[[z,_[1]]])]),action:a(()=>[n.value.length>1?(o(),w(d,{key:0,class:"bg-danger clickable",title:"Zeitbereich entfernen",onClick:C(i=>n.removeTime(b),["stop"])},{default:a(()=>[r(m,{icon:["fas","trash"]})]),_:1},8,["onClick"])):B("",!0)]),_:2},1024))),128))]),_:2},[t.$slots.help?{name:"help",fn:a(()=>[k(t.$slots,"help")]),key:"0"}:void 0]),1024)}const te=S(L,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/fixed_hours/TimeTable.vue"]]);T.add(F);T.add(O);const ne={name:"FixedTariff",components:{FontAwesomeIcon:U,TimeTable:te},props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue","delete"],computed:{tariff:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}},dates:{get(){return this.tariff.active_times.dates.map(([t,e])=>`${t};${e}`)},set(t){this.tariff.active_times.dates=t.map(e=>e.split(";"))}}}};function ae(t,e,p,v,g,n){const m=s("font-awesome-icon"),d=s("openwb-base-avatar"),h=s("openwb-base-text-input"),y=s("openwb-base-number-input"),_=s("openwb-base-select-input"),b=s("time-table"),i=s("openwb-base-card");return o(),w(i,{subtype:"info",collapsible:!0},{header:a(()=>[f(V(n.tariff.name),1)]),actions:a(()=>[r(d,{class:"bg-danger clickable",onClick:e[0]||(e[0]=l=>t.$emit("delete"))},{default:a(()=>[r(m,{icon:["fas","trash"]})]),_:1})]),default:a(()=>[r(h,{modelValue:n.tariff.name,"onUpdate:modelValue":e[1]||(e[1]=l=>n.tariff.name=l),title:"Tarifname"},null,8,["modelValue"]),r(y,{title:"Preis",min:0,step:.1,precision:1,required:"",unit:"ct/kWh","model-value":n.tariff.price*100,"onUpdate:modelValue":e[2]||(e[2]=l=>n.tariff.price=parseFloat((l/100).toFixed(3)))},null,8,["model-value"]),r(_,{modelValue:n.dates,"onUpdate:modelValue":e[3]||(e[3]=l=>n.dates=l),title:"Quartale",required:"",multiple:"",options:[{value:"01-01;31-03",text:"1. Quartal"},{value:"01-04;30-06",text:"2. Quartal"},{value:"01-07;30-09",text:"3. Quartal"},{value:"01-10;31-12",text:"4. Quartal"}]},null,8,["modelValue"]),r(b,{modelValue:n.tariff.active_times.times,"onUpdate:modelValue":e[4]||(e[4]=l=>n.tariff.active_times.times=l),title:"Aktive Zeiten"},null,8,["modelValue"])]),_:1})}const ie=S(ne,[["render",ae],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/fixed_hours/FixedTariff.vue"]]);T.add(F);T.add(O);const se={name:"ElectricityTariffFixedHours",components:{FontAwesomeIcon:U,FixedTariff:ie},mixins:[I],computed:{value:{get(){return this.electricityTariff},set(t){console.log("set",t),this.updateConfiguration(t)}}},methods:{addTariff(){this.value.configuration.tariffs.push({name:"Neuer Tarif",price:0,active_times:{dates:[],times:[["",""]]}})},removeTariff(t){this.value.configuration.tariffs.splice(t,1)}}},oe={class:"electricity-tariff-fixed-hours"};function re(t,e,p,v,g,n){const m=s("openwb-base-alert"),d=s("openwb-base-number-input"),h=s("font-awesome-icon"),y=s("openwb-base-avatar"),_=s("openwb-base-heading"),b=s("fixed-tariff");return o(),c("div",oe,[r(m,{subtype:"info"},{default:a(()=>[...e[1]||(e[1]=[f(" Konfiguriert feste Tarifzeiten, z.b. HT, NT und Standardpreis. ",-1)])]),_:1}),r(d,{title:"Standardpreis",min:0,step:.1,precision:1,required:"",unit:"ct/kWh","model-value":n.value.configuration.default_price*100,"onUpdate:modelValue":e[0]||(e[0]=i=>n.value.configuration.default_price=parseFloat((i/100).toFixed(3)))},{help:a(()=>[...e[2]||(e[2]=[f(" Standardpreis sofern kein anderer Tarif aktiv ist. ",-1)])]),_:1},8,["model-value"]),e[5]||(e[5]=u("hr",null,null,-1)),r(_,null,{actions:a(()=>[r(y,{class:"bg-success clickable",onClick:C(n.addTariff,["stop"])},{default:a(()=>[r(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:a(()=>[e[3]||(e[3]=f(" Tarife ",-1))]),_:1}),n.value.configuration.tariffs.length===0?(o(),w(m,{key:0,subtype:"info"},{default:a(()=>[...e[4]||(e[4]=[f(" Es wurde noch kein Tarif konfiguriert. Klicken Sie auf das Plus-Symbol um einen neuen Tarif hinzuzufügen.",-1),u("br",null,null,-1),f(" Tarife ermöglichen es unterschiedliche Preise für unterschiedliche Zeiten zu definieren. ",-1)])]),_:1})):B("",!0),(o(!0),c(x,null,$(n.value.configuration.tariffs,(i,l)=>(o(),w(b,{key:l,"model-value":i,"onUpdate:modelValue":E=>n.value.configuration.tariffs[l]=E,onDelete:E=>n.removeTariff(l)},null,8,["model-value","onUpdate:modelValue","onDelete"]))),128))])}const ve=S(se,[["render",re],["__scopeId","data-v-aa5a711c"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/fixed_hours/electricity_tariff.vue"]]);export{ve as default}; diff --git a/web/settings/assets/electricity_tariff-b0a556e0.js b/web/settings/assets/electricity_tariff-b0a556e0.js new file mode 100644 index 0000000000..48483c79d9 --- /dev/null +++ b/web/settings/assets/electricity_tariff-b0a556e0.js @@ -0,0 +1 @@ +import{E as l}from"./GeneralChargeConfig-6ea49afe.js";import{_ as s,u as r,l as c,m as p,G as o,E as u,B as f}from"./vendor-50125810.js";import"./index-c94f8df4.js";import"./vendor-fortawesome-fc4b3a41.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const d={name:"ElectricityTariffVoltego",mixins:[l]},m={class:"electricity-tariff-voltego"};function _(t,e,g,b,v,y){const a=r("openwb-base-alert"),n=r("openwb-base-text-input");return c(),p("div",m,[o(a,{subtype:"info"},{default:u(()=>[...e[2]||(e[2]=[f(" Ihre persönlichen Zugangsdaten (Client-ID und Client-Secret) erhalten Sie direkt von Voltego. Behandeln Sie diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Ihrem Voltego-Account abfragen lassen! ",-1)])]),_:1}),o(n,{title:"Client-ID",subtype:"user",required:"","model-value":t.electricityTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),o(n,{title:"Client-Secret",subtype:"password",required:"","model-value":t.electricityTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"])])}const I=s(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/voltego/electricity_tariff.vue"]]);export{I as default}; diff --git a/web/settings/assets/electricity_tariff-bb07cc98.js b/web/settings/assets/electricity_tariff-bb07cc98.js new file mode 100644 index 0000000000..3492a898c3 --- /dev/null +++ b/web/settings/assets/electricity_tariff-bb07cc98.js @@ -0,0 +1 @@ +import{E as p}from"./GeneralChargeConfig-6ea49afe.js";import{_ as u,u as a,l as d,m as f,G as r,E as l,B as n,A as m}from"./vendor-50125810.js";import"./index-c94f8df4.js";import"./vendor-fortawesome-fc4b3a41.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"ElectricityTariffOstrom",mixins:[p]},g={class:"electricity-tariff-ostrom"};function b(t,e,_,h,v,w){const s=a("openwb-base-alert"),o=a("openwb-base-text-input");return d(),f("div",g,[r(s,{subtype:"info"},{default:l(()=>[...e[3]||(e[3]=[n(" Ihre persönlichen Zugangsdaten (Client-ID und Client-Secret) erhalten Sie über das ",-1),m("a",{href:"https://developer.ostrom-api.io/",target:"_blank",rel:"noopener noreferrer"}," Ostrom Developer Portal ",-1),n(" . Behandeln Sie diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Ihrem ostrom-Account abfragen lassen! ",-1)])]),_:1}),r(o,{title:"Client-ID",subtype:"user",required:"","model-value":t.electricityTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),r(o,{title:"Client-Secret",subtype:"password",required:"","model-value":t.electricityTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"]),r(o,{title:"Postleitzahl","model-value":t.electricityTariff.configuration.zip,"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateConfiguration(i,"configuration.zip"))},{help:l(()=>[...e[4]||(e[4]=[n(" Die Postleitzahl wird zur Ermittlung der Abgaben und Umlagen benötigt. Ohne Angabe der Postleitzahl wird durch die ostrom API lediglich der Börsenstrompreis einschließlich Mehrwertsteuer geliefert. ",-1)])]),_:1},8,["model-value"])])}const A=u(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/ostrom/electricity_tariff.vue"]]);export{A as default}; diff --git a/web/settings/assets/electricity_tariff-cf2ab1f8.js b/web/settings/assets/electricity_tariff-cf2ab1f8.js deleted file mode 100644 index 69b444ec29..0000000000 --- a/web/settings/assets/electricity_tariff-cf2ab1f8.js +++ /dev/null @@ -1 +0,0 @@ -import{E as c}from"./GeneralChargeConfig-d70b0d95.js";import{_ as p,u as r,l as d,m as f,G as i,E as o,B as s,A as m}from"./vendor-25d394b4.js";import"./index-8dd8e083.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"ElectricityTariffEnergyCharts",mixins:[c]},h={class:"electricity-tariff-energy-charts"};function b(t,e,_,y,w,v){const a=r("openwb-base-alert"),l=r("openwb-base-select-input"),u=r("openwb-base-number-input");return d(),f("div",h,[i(a,{subtype:"info"},{default:o(()=>e[2]||(e[2]=[s(" Börsenstrompreise von Energy Charts (energy-charts.info)",-1),m("br",null,null,-1),s(" Die Rohdaten werden von Wissenschaftlern des Fraunhofer-Instituts für Solare Energiesysteme ISE aus zahlreichen Quellen stündlich oder täglich abgerufen und für die Darstellung aufbereitet. ",-1)])),_:1,__:[2]}),i(l,{title:"Land","not-selected":"Bitte auswählen",options:[{value:"DE-LU",text:"Deutschland"},{value:"AT",text:"Österreich"},{value:"CH",text:"Schweiz"}],"model-value":t.electricityTariff.configuration.country,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.country"))},null,8,["model-value"]),i(u,{title:"Aufschlag zum Börsenstrompreis",min:0,step:.001,precision:3,required:"",unit:"ct/kWh","model-value":t.electricityTariff.configuration.surcharge,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(parseFloat(n.toFixed(3)),"configuration.surcharge"))},{help:o(()=>e[3]||(e[3]=[s(" Die Auswahl (Energy-Charts) kann für alle Stromanbieter ausgewählt werden, die die Börsenstrompreise in einem variablen/dynamischen Tarif an die Kunden weitergeben. Das Modul soll es ermöglichen, dass zu tagesaktuellen Strompreisen unter Berücksichtigung eines Aufschlags zu günstigen Zeiten automatisch geladen werden kann und somit die Preisschwankungen an der Börse optimal ausgenutzt werden. ",-1)])),_:1},8,["model-value"])])}const S=p(g,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/energycharts/electricity_tariff.vue"]]);export{S as default}; diff --git a/web/settings/assets/external_inverter-8e60306f.js b/web/settings/assets/external_inverter-8e60306f.js deleted file mode 100644 index 4dd2b657a6..0000000000 --- a/web/settings/assets/external_inverter-8e60306f.js +++ /dev/null @@ -1 +0,0 @@ -import{C as m}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as i,l as g,m as f,G as o,E as r,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolaredgeExternalInverter",mixins:[m]},b={class:"device-solaredge-external-inverter"};function c(n,e,v,w,x,E){const l=i("openwb-base-heading"),u=i("openwb-base-alert"),a=i("openwb-base-number-input"),d=i("openwb-base-select-input");return g(),f("div",b,[o(l,null,{default:r(()=>e[3]||(e[3]=[s(" Einstellungen für SolarEdge externen Wechselrichter ",-1)])),_:1,__:[3]}),o(u,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[s(' Diese Komponente nur konfigurieren, wenn ein weiteres Solaredge SmartMeter verbaut ist, welches z.B. die Leistung einer vorhandenen Bestands-PV-Anlage erfasst. Dieses zusätzliche SmartMeter muss dann als "Zähler 2" / "Position 2" im Wechselrichter-Konfigurationsmenü konfiguriert sein. ',-1)])),_:1,__:[4]}),o(a,{title:"SolarEdge-Geräte-ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),o(a,{title:"SolarEdge-Meter-ID","model-value":n.component.configuration.meter_id,min:"1",max:"255",required:"","onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.meter_id"))},null,8,["model-value"]),o(d,{title:"Leistung invertieren","not-selected":"Bitte auswählen",options:[{value:1,text:"nein"},{value:-1,text:"ja"}],"model-value":n.component.configuration.factor,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.factor"))},{help:r(()=>e[5]||(e[5]=[s(" Einige externe SolarEdge Wechselrichter liefern die Leistung mit falschem Vorzeichen. In diesem Fall ist die Leistung zu invertieren. ",-1)])),_:1},8,["model-value"])])}const L=p(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/external_inverter.vue"]]);export{L as default}; diff --git a/web/settings/assets/external_inverter-bead5b8d.js b/web/settings/assets/external_inverter-bead5b8d.js new file mode 100644 index 0000000000..387b8d7aa6 --- /dev/null +++ b/web/settings/assets/external_inverter-bead5b8d.js @@ -0,0 +1 @@ +import{C as m}from"./HardwareInstallation-8066ca79.js";import{_ as p,u as i,l as g,m as f,G as o,E as r,B as s}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceSolaredgeExternalInverter",mixins:[m]},c={class:"device-solaredge-external-inverter"};function v(n,e,_,w,x,E){const l=i("openwb-base-heading"),u=i("openwb-base-alert"),a=i("openwb-base-number-input"),d=i("openwb-base-select-input");return g(),f("div",c,[o(l,null,{default:r(()=>[...e[3]||(e[3]=[s(" Einstellungen für SolarEdge externen Wechselrichter ",-1)])]),_:1}),o(u,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[s(' Diese Komponente nur konfigurieren, wenn ein weiteres Solaredge SmartMeter verbaut ist, welches z.B. die Leistung einer vorhandenen Bestands-PV-Anlage erfasst. Dieses zusätzliche SmartMeter muss dann als "Zähler 2" / "Position 2" im Wechselrichter-Konfigurationsmenü konfiguriert sein. ',-1)])]),_:1}),o(a,{title:"SolarEdge-Geräte-ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),o(a,{title:"SolarEdge-Meter-ID","model-value":n.component.configuration.meter_id,min:"1",max:"255",required:"","onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.meter_id"))},null,8,["model-value"]),o(d,{title:"Leistung invertieren","not-selected":"Bitte auswählen",options:[{value:1,text:"nein"},{value:-1,text:"ja"}],"model-value":n.component.configuration.factor,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.factor"))},{help:r(()=>[...e[5]||(e[5]=[s(" Einige externe SolarEdge Wechselrichter liefern die Leistung mit falschem Vorzeichen. In diesem Fall ist die Leistung zu invertieren. ",-1)])]),_:1},8,["model-value"])])}const L=p(b,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/external_inverter.vue"]]);export{L as default}; diff --git a/web/settings/assets/index-8dd8e083.js b/web/settings/assets/index-8dd8e083.js deleted file mode 100644 index 5d15541c45..0000000000 --- a/web/settings/assets/index-8dd8e083.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as y,l as i,m as u,p as g,q as S,u as b,x as h,y as q,z as p,A as a,B as f,D as A,E as c,F as v,G as _,I as B,J as I,K as O,L as ee,M as x,N as T,O as te,P as ne,Q as se,R as oe,T as F,S as ae,U as N,V as ie,W as le,X as re,Y as de,Z as ue,$ as ce,a0 as pe}from"./vendor-25d394b4.js";import{l as $,f as H,a as U,F as C,b as me,c as fe,d as G,e as _e,g as j,h as ge,i as be,j as he,k as ve,m as ye,n as we,o as ke,p as Se,q as Oe,r as Be,s as $e,t as Ce,u as Ie,v as Te,w as J,x as Ve,y as Ae,z as Me,A as Pe,B as K,C as xe,D as qe,E as De,G as Ee,H as Le,I as je,J as We,K as Re,L as Ne,M as ze,N as Fe}from"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import{p as He,a as Ue}from"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./vendor-jquery-3364d39b.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))d(l);new MutationObserver(l=>{for(const s of l)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&d(o)}).observe(document,{childList:!0,subtree:!0});function n(l){const s={};return l.integrity&&(s.integrity=l.integrity),l.referrerPolicy&&(s.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?s.credentials="include":l.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function d(l){if(l.ep)return;l.ep=!0;const s=n(l);fetch(l.href,s)}})();const Ge={name:"OpenwbAlert",props:{subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}}};function Je(e,t,n,d,l,s){return i(),u("div",{class:S(["card-text alert","alert-"+n.subtype])},[g(e.$slots,"default",{},void 0,!0)],2)}const Ke=y(Ge,[["render",Je],["__scopeId","data-v-055c15aa"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAlert.vue"]]),Ze=Object.freeze(Object.defineProperty({__proto__:null,default:Ke},Symbol.toStringTag,{value:"Module"}));$.add(H,U);const Qe={name:"OpenwbBaseSettingElement",components:{FontAwesomeIcon:C},data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},Ye={key:0,class:"col-md-4 col-form-label"},Xe={class:"form-row"},et={key:0,class:"form-text alert alert-info my-1 small flex-fill"};function tt(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("div",{class:S(["form-row",e.$slots.title?"mb-1":"mx-0"])},[e.$slots.title?(i(),u("label",Ye,[g(e.$slots,"title",{},void 0,!0),e.$slots.help?(i(),h(o,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:S(["clickable ml-1",l.showHelp?"text-info":""]),onClick:q(s.toggleHelp,["stop"])},null,8,["icon","class","onClick"])):p("",!0)])):p("",!0),a("div",{class:S(e.$slots.title?"col-md-8":"col px-0")},[a("div",{class:S({"form-row":e.$slots.title})},[g(e.$slots,"default",{},()=>[t[0]||(t[0]=f("*ELEMENT MISSING*",-1))],!0)],2),a("div",Xe,[l.showHelp?(i(),u("span",et,[g(e.$slots,"help",{},void 0,!0)])):p("",!0)])],2)],2)}const M=y(Qe,[["render",tt],["__scopeId","data-v-33864f66"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSettingElement.vue"]]),nt=Object.freeze(Object.defineProperty({__proto__:null,default:M},Symbol.toStringTag,{value:"Module"}));$.add(me,fe,G,_e);const st={name:"OpenwbArrayInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!0,default:"#TITLE#"},modelValue:{type:Array,default:()=>[]},noElementsMessage:{type:String,default:()=>"Keine Elemente zugeordnet."},noInput:{type:Boolean,default:()=>!1}},emits:["update:modelValue"],data(){return{newTag:"",showHelp:!1}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},newTagValid:{get(){var e;return this.newTag.length>0&&!this.value.includes(this.newTag)&&((e=this.$refs.tagInput)==null?void 0:e.checkValidity())}}},methods:{addTag(){if(this.newTagValid){const e=[...this.value,this.newTag].sort();this.value=e,this.newTag=""}this.$refs.tagInput.focus()},removeTag(e){let t=[...this.value];t.splice(e,1),this.value=t}}},ot={key:0,class:"w-100"},at={class:"input-group"},it={class:"input-group-prepend"},lt={class:"input-group-text"},rt={class:"input-group-append"},dt={class:"tagList mt-1 w-100"},ut={key:0,class:"noTag"};function ct(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[n.noInput?p("",!0):(i(),u("div",ot,[a("div",at,[a("div",it,[a("div",lt,[g(e.$slots,"input-prefix",{},()=>[_(o,{icon:["fas","tag"]})],!0)])]),B(a("input",O({ref:"tagInput","onUpdate:modelValue":t[0]||(t[0]=r=>l.newTag=r),type:"text",class:"form-control"},e.$attrs,{onKeyup:t[1]||(t[1]=ee((...r)=>s.addTag&&s.addTag(...r),["enter"]))}),null,16),[[I,l.newTag]]),a("div",rt,[a("div",{class:S(["input-group-text",s.newTagValid?"bg-success clickable":"not-clickable"]),onClick:t[2]||(t[2]=(...r)=>s.addTag&&s.addTag(...r))},[g(e.$slots,"input-add",{},()=>[_(o,{icon:["fas","plus"]})],!0)],2)])])])),a("div",dt,[s.value.length==0?(i(),u("span",ut,[_(o,{icon:["fas","info-circle"]}),f(" "+v(n.noElementsMessage),1)])):p("",!0),(i(!0),u(T,null,x(s.value,(r,w)=>(i(),u("span",{key:w,class:"tag"},[g(e.$slots,"element-prefix",{},()=>[_(o,{icon:["fas","tag"]})],!0),f(" "+v(r)+" ",1),n.noInput?p("",!0):(i(),h(o,{key:0,class:"clickable remove-element",icon:["fas","times-circle"],onClick:V=>s.removeTag(w)},null,8,["onClick"]))]))),128))])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const pt=y(st,[["render",ct],["__scopeId","data-v-9de93d37"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseArrayInput.vue"]]),mt=Object.freeze(Object.defineProperty({__proto__:null,default:pt},Symbol.toStringTag,{value:"Module"}));const ft={name:"OpenwbAvatar"},_t={class:"avatar"};function gt(e,t,n,d,l,s){return i(),u("div",_t,[g(e.$slots,"default",{},()=>[t[0]||(t[0]=f("?",-1))],!0)])}const bt=y(ft,[["render",gt],["__scopeId","data-v-06082a1a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAvatar.vue"]]),ht=Object.freeze(Object.defineProperty({__proto__:null,default:bt},Symbol.toStringTag,{value:"Module"}));$.add(j);const vt={name:"OpenwbButtonGroupInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Number,Boolean],default:void 0},buttons:{type:Array,required:!0}},emits:["update:modelValue","button-click"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},yt={class:"btn-group btn-block btn-group-toggle"},wt=["value","onClick"];function kt(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",yt,[(i(!0),u(T,null,x(n.buttons,r=>(i(),u("label",{key:r.value,class:S(["btn btn-same-size btn-centered",[s.value==r.buttonValue?"active":"",r.class?r.class:"btn-outline-info"]])},[a("span",null,[B(a("input",O({"onUpdate:modelValue":t[0]||(t[0]=w=>s.value=w),type:"radio",value:r.buttonValue},{ref_for:!0},e.$attrs,{onClick:w=>e.$emit("button-click",r.buttonValue)}),null,16,wt),[[te,s.value]]),g(e.$slots,"label-"+r.buttonValue,{},()=>[f(v(r.text),1)],!0),t[1]||(t[1]=a("span",null," ",-1)),_(o,{icon:["fas","check"],style:ne([s.value==r.buttonValue?"visibility: visible":"visibility: hidden"])},null,8,["style"])])],2))),128))])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const St=y(vt,[["render",kt],["__scopeId","data-v-31e583df"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonGroupInput.vue"]]),Ot=Object.freeze(Object.defineProperty({__proto__:null,default:St},Symbol.toStringTag,{value:"Module"}));const Bt={name:"OpenwbClickButton",props:{title:{type:String,required:!1,default:""},tooltip:{type:String,required:!1,default:""}},emits:["buttonClicked"],methods:{click(e){this.$emit("buttonClicked",e)}}},$t=["title"];function Ct(e,t,n,d,l,s){return i(),u("button",{type:"button",class:"btn btn-block",title:n.tooltip,onClick:t[0]||(t[0]=q((...o)=>s.click&&s.click(...o),["prevent"]))},[g(e.$slots,"default",{},()=>[f(v(n.title),1)],!0)],8,$t)}const Z=y(Bt,[["render",Ct],["__scopeId","data-v-2e9c095b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseClickButton.vue"]]),It=Object.freeze(Object.defineProperty({__proto__:null,default:Z},Symbol.toStringTag,{value:"Module"})),Tt={name:"OpenwbButtonInput",components:{OpenwbBaseSettingElement:M,OpenwbBaseClickButton:Z},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},buttonText:{type:String,required:!1,default:void 0},disabled:{type:Boolean,default:!1},subtype:{type:String,validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}},emits:["buttonClicked"],methods:{handleClick(e){this.$emit("buttonClicked",e)}}};function Vt(e,t,n,d,l,s){const o=b("openwb-base-click-button"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),default:c(()=>[_(o,O({class:(n.disabled?"btn-outline-":"btn-")+n.subtype,disabled:n.disabled},e.$attrs,{onButtonClicked:s.handleClick}),{default:c(()=>[f(v(n.buttonText),1)]),_:1},16,["class","disabled","onButtonClicked"])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"0"}:void 0]),1024)}const At=y(Tt,[["render",Vt],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonInput.vue"]]),Mt=Object.freeze(Object.defineProperty({__proto__:null,default:At},Symbol.toStringTag,{value:"Module"}));$.add(ge,be);const Pt={name:"OpenwbCard",components:{FontAwesomeIcon:C},inheritAttrs:!1,props:{title:{type:String,default:void 0},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark","pink","white"].indexOf(e)!==-1},default:"secondary"},bodyBg:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark","pink","white"].indexOf(e)!==-1},default:"light"},collapsible:{type:Boolean,default:!1},collapsed:{type:Boolean,default:!1}},emits:["collapsed","expanded"],data(){return{isCollapsed:this.collapsible&&this.collapsed}},methods:{toggleBody(){this.collapsible===!0&&(this.isCollapsed=!this.isCollapsed,this.$emit(this.isCollapsed?"collapsed":"expanded"))}}},xt={class:"form-group mb-0"},qt={class:"form-row vaRow mb-0 py-2"},Dt={class:"col"},Et={class:"card-actions ml-4"},Lt={key:0,class:"card-actions mr-2"},jt={key:2,class:"card-footer"};function Wt(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("div",{class:S(["card","border-"+n.subtype])},[n.title!==void 0||e.$slots.header?(i(),u("div",{key:0,class:S(["card-header py-1","bg-"+n.subtype]),onClick:t[0]||(t[0]=(...m)=>s.toggleBody&&s.toggleBody(...m))},[a("div",xt,[a("div",qt,[a("div",Dt,[g(e.$slots,"header",{collapsed:l.isCollapsed},()=>[f(v(n.title),1)],!0)])])]),a("div",Et,[e.$slots.actions?(i(),u("div",Lt,[g(e.$slots,"actions",{collapsed:l.isCollapsed},void 0,!0)])):p("",!0),n.collapsible?(i(),h(o,{key:1,icon:l.isCollapsed?["fas","chevron-right"]:["fas","chevron-down"]},null,8,["icon"])):p("",!0)])],2)):p("",!0),l.isCollapsed===!1?(i(),u("div",O({key:1,class:["card-body",[n.title==null&&!e.$slots.header?"border-radius-top-inherit":"",e.$slots.footer?"":"border-radius-bottom-inherit","bg-"+n.bodyBg]]},e.$attrs),[g(e.$slots,"default",{},void 0,!0)],16)):p("",!0),e.$slots.footer&&l.isCollapsed===!1?(i(),u("div",jt,[g(e.$slots,"footer",{},void 0,!0)])):p("",!0)],2)}const Rt=y(Pt,[["render",Wt],["__scopeId","data-v-9833c353"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCard.vue"]]),Nt=Object.freeze(Object.defineProperty({__proto__:null,default:Rt},Symbol.toStringTag,{value:"Module"})),zt={name:"OpenwbCheckboxInput",components:{OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Boolean}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},Ft={class:"col-md-8"};function Ht(e,t,n,d,l,s){const o=b("openwb-base-setting-element");return i(),h(o,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),default:c(()=>[a("div",Ft,[B(a("input",O({"onUpdate:modelValue":t[0]||(t[0]=m=>s.value=m),class:"form-control",type:"checkbox"},e.$attrs),null,16),[[se,s.value]])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"0"}:void 0]),1024)}const Ut=y(zt,[["render",Ht],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCheckboxInput.vue"]]),Gt=Object.freeze(Object.defineProperty({__proto__:null,default:Ut},Symbol.toStringTag,{value:"Module"}));$.add(he);const Jt={name:"OpenwbColorPicker",components:{FontAwesomeIcon:C},props:{defaultColor:{type:String,required:!1,default:void 0,validator:e=>/^#[0-9A-F]{6}$/i.test(e)},modelValue:{type:String,required:!1,default:"#000000",validator:e=>/^#[0-9A-F]{6}$/i.test(e)}},emits:["update:model-value"],methods:{changed(e){this.$emit("update:model-value",e)}}},Kt={class:"wrapper"},Zt=["value","title"];function Qt(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("div",Kt,[a("input",{type:"color",class:"custom-color-picker",value:n.modelValue,title:`Farbe: ${n.modelValue}`,onInput:t[0]||(t[0]=m=>s.changed(m.target.value))},null,40,Zt),n.defaultColor?(i(),h(o,{key:0,class:"ml-1 clickable",icon:["fas","rotate-left"],title:`Zurücksetzen auf Standardfarbe (${n.defaultColor})`,onClick:t[1]||(t[1]=m=>s.changed(n.defaultColor))},null,8,["title"])):p("",!0)])}const Yt=y(Jt,[["render",Qt],["__scopeId","data-v-1378b599"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseColorPicker.vue"]]),Xt=Object.freeze(Object.defineProperty({__proto__:null,default:Yt},Symbol.toStringTag,{value:"Module"}));const{text:en,copy:tn,copied:nn,isSupported:sn}=oe({copiedDuring:3e3,legacy:!0});$.add(ve,ye);const on={name:"OpenwbCopyToClipboard",components:{FontAwesomeIcon:C},props:{tooltip:{type:String,default:"Wert kopieren"}},data(){return{}},computed:{contentText(){return this.$refs.content?this.$refs.content.innerText.trim():""},isCopied(){return nn.value},copySupported(){return sn.value}},methods:{click(){this.copySupported&&tn(this.contentText).then(()=>{console.debug("Text copied to clipboard:",en.value)}).catch(e=>{console.error("Failed to copy text to clipboard:",e)})}}},an=["title"],ln={ref:"content"};function rn(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("span",{title:s.copySupported&&!s.isCopied?n.tooltip:"",class:S({"copy-me":s.copySupported&&!s.isCopied}),onClick:t[0]||(t[0]=q((...m)=>s.click&&s.click(...m),["stop"]))},[a("span",ln,[g(e.$slots,"default",{},void 0,!0)],512),s.copySupported?(i(),h(o,{key:0,icon:s.isCopied?["fas","clipboard-check"]:["fas","clipboard"]},null,8,["icon"])):p("",!0)],10,an)}const dn=y(on,[["render",rn],["__scopeId","data-v-81826ebe"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCopyToClipboard.vue"]]),un=Object.freeze(Object.defineProperty({__proto__:null,default:dn},Symbol.toStringTag,{value:"Module"}));$.add(H,U,j);const cn={name:"OpenwbHeading",components:{FontAwesomeIcon:C},inheritAttrs:!1,data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},pn={class:"heading-text"},mn={key:0,class:"actions"},fn={class:""},_n={key:0,class:"form-row alert alert-info small flex-fill"};function gn(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u(T,null,[a("div",O({class:"card-text card-text-heading"},e.$attrs),[a("div",pn,[g(e.$slots,"default",{},void 0,!0),e.$slots.help?(i(),h(o,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:S(["clickable",l.showHelp?"text-info":""]),onClick:q(s.toggleHelp,["stop"])},null,8,["icon","class","onClick"])):p("",!0)]),e.$slots.actions?(i(),u("span",mn,[g(e.$slots,"actions",{},void 0,!0)])):p("",!0)],16),a("div",fn,[l.showHelp?(i(),u("span",_n,[g(e.$slots,"help",{},void 0,!0)])):p("",!0)])],64)}const bn=y(cn,[["render",gn],["__scopeId","data-v-cbe4e96e"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseHeading.vue"]]),hn=Object.freeze(Object.defineProperty({__proto__:null,default:bn},Symbol.toStringTag,{value:"Module"}));$.add(we,ke,Se,Oe);const E={null:{value:null,icon:["fas","question"],iconClass:"text-secondary",title:"Nicht relevant",nextValue:!0},true:{value:!0,icon:["fas","square"],iconClass:"",title:"Geschlossen",nextValue:!1},false:{value:!1,icon:["far","square"],iconClass:"",title:"Offen",nextValue:null}},vn={name:"OpenwbIoPattern",components:{FontAwesomeIcon:C},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Array,required:!1,default:()=>[]}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}},methods:{getIcon(e){return E[e].icon},getIconClass(e){return E[e].iconClass},getTitle(e){return E[e].title},toggleInput(e,t){this.value[e]=E[t].nextValue}}};function yn(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),default:c(()=>[(i(!0),u(T,null,x(s.value,(r,w)=>(i(),u("span",{key:w},[_(o,{title:s.getTitle(r),icon:s.getIcon(r),class:S([s.getIconClass(r),"fa-fw clickable"]),size:"2x",transform:r=="undefined"?"shrink-6":null,mask:r=="undefined"?["fas","square"]:null,onClick:q(V=>s.toggleInput(w,r),["stop","prevent"]),onMousedown:t[0]||(t[0]=q(()=>{},["stop","prevent"])),onMouseup:t[1]||(t[1]=q(()=>{},["stop","prevent"]))},null,8,["title","icon","class","transform","mask","onClick"])]))),128))]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"0"}:void 0]),1024)}const wn=y(vn,[["render",yn],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseIoPattern.vue"]]),kn=Object.freeze(Object.defineProperty({__proto__:null,default:wn},Symbol.toStringTag,{value:"Module"})),Sn={name:"OpenwbModalDialog",props:{title:{type:String,required:!1,default:""},subtype:{type:String,validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"},buttons:{type:Array,default:void 0},footerAlignment:{type:String,validator:function(e){return["around","between","center","end","start"].indexOf(e)!==-1},default:"end"},preventClose:{type:Boolean,default:!1},show:{type:Boolean,default:!1}},emits:["modal-result"],computed:{myButtons(){var e=[];return this.buttons!==void 0&&(e=this.buttons),this.preventClose||e.push({text:"Schließen",event:"close"}),e}},methods:{handleClick(e){e.stopPropagation();let t=e.target.getAttribute("data-event");t===null&&(t="close"),(t!="close"||!this.preventClose)&&this.$emit("modal-result",t)}}},On={class:"modal-dialog modal-dialog-centered modal-dialog-scrollable",role:"document"},Bn={class:"modal-content"},$n={class:"modal-title"},Cn={class:"modal-body"},In=["data-event"];function Tn(e,t,n,d,l,s){return n.show?(i(),h(F,{key:0,to:"body"},[t[4]||(t[4]=a("div",{class:"modal-backdrop fade show"},null,-1)),a("div",{class:"modal fade d-block show",role:"dialog",onClick:t[2]||(t[2]=(...o)=>s.handleClick&&s.handleClick(...o))},[a("div",On,[a("div",Bn,[a("div",{class:S(["modal-header","bg-"+n.subtype])},[a("h4",$n,v(n.title),1),n.preventClose?p("",!0):(i(),u("button",{key:0,type:"button",class:"close",onClick:t[0]||(t[0]=(...o)=>s.handleClick&&s.handleClick(...o))}," × "))],2),a("div",Cn,[g(e.$slots,"default",{},()=>[t[3]||(t[3]=f("# Body #",-1))])]),s.myButtons.length>0?(i(),u("div",{key:0,class:S(["modal-footer d-flex","justify-content-"+n.footerAlignment])},[(i(!0),u(T,null,x(s.myButtons,o=>(i(),u("button",{key:o.text,type:"button",class:S(["btn",o.subtype?"btn-"+o.subtype:"btn-secondary"]),"data-dismiss":"modal","data-event":o.event?o.event:"close",onClick:t[1]||(t[1]=(...m)=>s.handleClick&&s.handleClick(...m))},v(o.text),11,In))),128))],2)):p("",!0)])])])])):p("",!0)}const Vn=y(Sn,[["render",Tn],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseModalDialog.vue"]]),An=Object.freeze(Object.defineProperty({__proto__:null,default:Vn},Symbol.toStringTag,{value:"Module"}));$.add(Be);const Mn={name:"OpenwbNumberInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Number,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},precision:{type:Number,default:void 0},emptyValue:{type:[Number,null],required:!1,default:null}},emits:["update:modelValue"],computed:{value:{get(){return this.precision!==void 0?parseFloat(Math.round(this.modelValue*Math.pow(10,this.precision))/Math.pow(10,this.precision)):this.modelValue},set(e){(isNaN(e)||typeof e!="number")&&(e=this.emptyValue),this.$emit("update:modelValue",e)}}}},Pn={class:"input-group"},xn={class:"input-group-prepend"},qn={class:"input-group-text"},Dn={key:0,class:"input-group-append"},En={class:"input-group-text"},Ln={key:1,class:"input-group-append"},jn={class:"input-group-text p-0"};function Wn(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",Pn,[a("div",xn,[a("div",qn,[_(o,{icon:["fas","calculator"]})])]),B(a("input",O({"onUpdate:modelValue":t[0]||(t[0]=r=>s.value=r),type:"number",class:"form-control"},e.$attrs),null,16),[[I,s.value,void 0,{number:!0}]]),n.unit?(i(),u("div",Dn,[a("div",En,v(n.unit),1)])):p("",!0),e.$slots.append?(i(),u("div",Ln,[a("div",jn,[g(e.$slots,"append",{},void 0,!0)])])):p("",!0)])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Rn=y(Mn,[["render",Wn],["__scopeId","data-v-c2fb7eef"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseNumberInput.vue"]]),Nn=Object.freeze(Object.defineProperty({__proto__:null,default:Rn},Symbol.toStringTag,{value:"Module"}));$.add($e,Ce);const zn={name:"OpenwbRangeInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Number,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},min:{type:Number,required:!0,default:0},max:{type:Number,required:!0,default:100},step:{type:Number,required:!1,default:1},labels:{type:Array,required:!1,default:void 0}},emits:["update:modelValue"],computed:{label(){var e;return this.labels&&this.sliderValue!=null?this.sliderValue[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",Fn,[a("div",Hn,[s.label?(i(),u("label",Un,v(s.label),1)):p("",!0),a("button",{class:"col-1 btn btn-block btn-info",type:"button",onClick:t[0]||(t[0]=(...r)=>s.decrement&&s.decrement(...r))},[_(o,{icon:["fas","step-backward"]})]),a("div",Gn,[B(a("input",O({"onUpdate:modelValue":t[1]||(t[1]=r=>s.sliderValue=r),type:"range",class:"form-control-range rangeInput",min:n.min,max:n.max,step:n.step},e.$attrs),null,16,Jn),[[I,s.sliderValue,void 0,{number:!0}]])]),a("button",{class:"col-1 btn btn-block btn-info",type:"button",onClick:t[2]||(t[2]=(...r)=>s.increment&&s.increment(...r))},[_(o,{icon:["fas","step-forward"]})])])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Zn=y(zn,[["render",Kn],["__scopeId","data-v-449fb0a5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseRangeInput.vue"]]),Qn=Object.freeze(Object.defineProperty({__proto__:null,default:Zn},Symbol.toStringTag,{value:"Module"}));$.add(G);const Yn={name:"OpenwbSelectInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:void 0},modelValue:{type:[String,Number,Array,null],required:!1,default:void 0},emptyValue:{type:[String,Number,Array],required:!1,default:void 0},groups:{type:Array,required:!1,default:void 0},options:{type:Array,required:!1,default:void 0},notSelected:{type:String,default:void 0},addButton:{type:Boolean,default:!1}},emits:["update:modelValue","input:add"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},addDisabled:{get(){return this.value===void 0}}},methods:{addClicked(){this.addDisabled||this.$emit("input:add")}}},Xn={class:"w-100"},es={class:"input-group"},ts={key:0,class:"input-group-prepend"},ns={class:"input-group-text"},ss=["value"],os=["value"],as=["label"],is=["value"],ls={key:1,class:"input-group-append"};function rs(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({default:c(()=>[a("div",Xn,[a("div",es,[e.$slots.prefix?(i(),u("div",ts,[a("div",ns,[g(e.$slots,"prefix")])])):p("",!0),B(a("select",O({"onUpdate:modelValue":t[0]||(t[0]=r=>s.value=r),class:"col form-control"},e.$attrs),[n.notSelected!==void 0?(i(),u("option",{key:0,value:n.emptyValue,disabled:""}," -- "+v(n.notSelected)+" -- ",9,ss)):p("",!0),(i(!0),u(T,null,x(n.options,r=>(i(),u("option",{key:r.value,value:r.value},v(r.text),9,os))),128)),(i(!0),u(T,null,x(n.groups,r=>(i(),u("optgroup",{key:r.label,label:r.label},[(i(!0),u(T,null,x(r.options,w=>(i(),u("option",{key:w.value,value:w.value},v(w.text),9,is))),128))],8,as))),128))],16),[[ae,s.value]]),n.addButton?(i(),u("div",ls,[a("div",{class:S(["input-group-text",s.addDisabled?"not-clickable":"bg-success clickable"]),onClick:t[1]||(t[1]=r=>s.addClicked())},[g(e.$slots,"inputAdd",{},()=>[_(o,{icon:["fas","plus"]})])],2)])):p("",!0)])])]),_:2},[e.$slots.title||n.title?{name:"title",fn:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),key:"0"}:void 0,e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"1"}:void 0]),1024)}const ds=y(Yn,[["render",rs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSelectInput.vue"]]),us=Object.freeze(Object.defineProperty({__proto__:null,default:ds},Symbol.toStringTag,{value:"Module"}));$.add(j,Ie,Te);const cs={name:"OpenwbSubmitButtons",components:{FontAwesomeIcon:C},props:{formName:{type:String,default:void 0},hideReset:{type:Boolean,default:!1},hideDefaults:{type:Boolean,default:!0}},emits:["reset","defaults","save"],data(){return{showModalReset:!1,showModalDefaults:!1}},computed:{showModalSave(){return this.$store.state.local.savingData}},methods:{showResetModal(){this.showModalReset=!0},handleModalReset(e){this.showModalReset=!1,e=="confirm"&&this.$emit("reset")},showDefaultsModal(){this.showModalDefaults=!0},handleModalDefaults(e){this.showModalDefaults=!1,e=="confirm"&&this.$emit("defaults")},saveSettings(){if(this.formName){if(!document.forms[this.formName].reportValidity()){console.debug("form invalid");return}}else console.debug("no form to validate");this.$emit("save")}}},ps={class:"row justify-content-center mb-1"},ms={class:"col-md-4 d-flex py-1 justify-content-center"},fs={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},_s={key:1,class:"col-md-4 d-flex py-1 justify-content-center"};function gs(e,t,n,d,l,s){const o=b("openwb-base-modal-dialog"),m=b("font-awesome-icon");return i(),u(T,null,[_(o,{show:s.showModalSave,title:"Speichern",subtype:"success","prevent-close":!0},{default:c(()=>t[3]||(t[3]=[f(" Einstellungen werden gespeichert... ",-1)])),_:1,__:[3]},8,["show"]),_(o,{show:l.showModalReset,title:"Änderungen verwerfen",subtype:"warning",buttons:[{text:"Ok",event:"confirm",subtype:"warning"}],onModalResult:s.handleModalReset},{default:c(()=>t[4]||(t[4]=[f(" Wollen Sie die nicht gespeicherten Änderungen wirklich verwerfen? ",-1)])),_:1,__:[4]},8,["show","onModalResult"]),_(o,{show:l.showModalDefaults,title:"Werkseinstellungen",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"danger"}],onModalResult:s.handleModalDefaults},{default:c(()=>t[5]||(t[5]=[f(" Wollen Sie wirklich alle Werte dieser Seite auf die Werkseinstellungen zurücksetzen? ",-1)])),_:1,__:[5]},8,["show","onModalResult"]),a("div",ps,[a("div",ms,[a("button",{id:"saveSettingsBtn",type:"button",class:"btn btn-block btn-success",onClick:t[0]||(t[0]=(...r)=>s.saveSettings&&s.saveSettings(...r))},[t[6]||(t[6]=f(" Speichern ",-1)),_(m,{icon:["fas","check"]})])]),n.hideReset?p("",!0):(i(),u("div",fs,[a("button",{id:"modalResetBtn",type:"button",class:"btn btn-block btn-warning",onClick:t[1]||(t[1]=(...r)=>s.showResetModal&&s.showResetModal(...r))},[t[7]||(t[7]=f(" Änderungen verwerfen ",-1)),_(m,{icon:["fas","undo"]})])])),n.hideDefaults?p("",!0):(i(),u("div",_s,[a("button",{id:"modalDefaultsBtn",type:"button",class:"btn btn-block btn-danger",onClick:t[2]||(t[2]=(...r)=>s.showDefaultsModal&&s.showDefaultsModal(...r))},[t[8]||(t[8]=f(" Werkseinstellungen ",-1)),_(m,{icon:["fas","times"]})])]))])],64)}const bs=y(cs,[["render",gs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSubmitButtons.vue"]]),hs=Object.freeze(Object.defineProperty({__proto__:null,default:bs},Symbol.toStringTag,{value:"Module"}));$.add(J,Ve,Ae,Me,Pe,K,xe,qe,De,Ee,Le,je);const vs={name:"OpenwbTextInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Object],required:!1,default:void 0},subtype:{validator:function(e){return["text","email","host","url","user","json","password","time","date","month","year"].indexOf(e)!==-1},default:"text"},pattern:{type:String,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},emptyValue:{type:[String,Object,null],required:!1,default:null},showQuickButtons:{type:Boolean,default:!1}},emits:["update:modelValue"],data(){return{showPassword:!1,inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.warn("returning invalid String"),this.tempValue):JSON.stringify(this.tempValue):this.modelValue},set(e){if(this.subtype=="json")try{let t=JSON.parse(e);this.inputInvalid=!1,this.$refs.jsonInput.setCustomValidity(""),this.tempValue=t,this.$emit("update:modelValue",t)}catch(t){console.error("parsing JSON failed: "+e,t),this.inputInvalid=!0,this.$refs.jsonInput.setCustomValidity("Ungültiger JSON Ausdruck!"),this.tempValue=e}else e==""&&(e=this.emptyValue),this.$emit("update:modelValue",e)}},inputRef(){switch(this.subtype){case"json":return this.$refs.jsonInput;case"password":return this.$refs.passwordInput;case"host":return this.$refs.hostInput;case"email":case"url":return this.$refs.urlInput;case"time":return this.$refs.timeInput;case"date":return this.$refs.dateInput;case"month":return this.$refs.monthInput;case"year":return this.$refs.yearInput}return this.$refs.textInput},hostPattern(){return"(^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$)|(^(?=.*[a-zA-Z].*$)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])$)|(^((?=[^.]*[a-zA-Z][^.]*\\.)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]\\.))+((?=[^.]*[a-zA-Z].*$)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]))$)"}},methods:{togglePassword(){this.showPassword=!this.showPassword},modify(e){var t,n=new Date(this.modelValue);switch(this.subtype){case"date":n.setDate(n.getDate()+e),t=String(n.getFullYear())+"-"+String(n.getMonth()+1).padStart(2,"0")+"-"+String(n.getDate()).padStart(2,"0");break;case"month":n.setMonth(n.getMonth()+e),t=String(n.getFullYear())+"-"+String(n.getMonth()+1).padStart(2,"0");break;case"year":n.setYear(n.getFullYear()+e),t=String(n.getFullYear());break;default:console.warn(`cannot modify input of subtype '${this.subtype}'`);return}t>this.inputRef.max||t[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",ys,[a("div",ws,[a("div",ks,[a("div",Ss,[n.subtype=="text"?(i(),h(o,{key:0,icon:["fas","keyboard"]})):p("",!0),n.subtype=="email"?(i(),h(o,{key:1,icon:["fas","envelope"]})):p("",!0),n.subtype=="host"?(i(),h(o,{key:2,icon:["fas","network-wired"]})):p("",!0),n.subtype=="url"?(i(),h(o,{key:3,icon:["fas","globe"]})):p("",!0),n.subtype=="user"?(i(),h(o,{key:4,icon:["fas","user"]})):p("",!0),n.subtype=="json"?(i(),h(o,{key:5,icon:["fas","code"]})):p("",!0),n.subtype=="password"?(i(),h(o,{key:6,icon:l.showPassword?["fas","unlock"]:["fas","lock"]},null,8,["icon"])):p("",!0),n.subtype=="time"?(i(),h(o,{key:7,icon:["fas","clock"]})):p("",!0),n.subtype=="date"||n.subtype=="month"||n.subtype=="year"?(i(),h(o,{key:8,icon:["fas","calendar-day"]})):p("",!0)])]),["text","user"].includes(n.subtype)?B((i(),u("input",O({key:0,ref:"textInput","onUpdate:modelValue":t[0]||(t[0]=r=>s.value=r),type:"text",class:["form-control",{invalid:l.inputInvalid}]},e.$attrs,{pattern:n.pattern}),null,16,Os)),[[I,s.value]]):p("",!0),n.subtype=="json"?B((i(),u("input",O({key:1,ref:"jsonInput","onUpdate:modelValue":t[1]||(t[1]=r=>s.value=r),type:"text",class:"form-control"},e.$attrs,{pattern:n.pattern}),null,16,Bs)),[[I,s.value]]):p("",!0),n.subtype=="password"?B((i(),u("input",O({key:2,ref:"passwordInput","onUpdate:modelValue":t[2]||(t[2]=r=>s.value=r),type:l.showPassword?"text":"password",class:"form-control"},e.$attrs,{pattern:n.pattern}),null,16,$s)),[[N,s.value]]):p("",!0),n.subtype=="host"?B((i(),u("input",O({key:3,ref:"hostInput","onUpdate:modelValue":t[3]||(t[3]=r=>s.value=r),type:"text",class:"form-control"},e.$attrs,{pattern:s.hostPattern}),null,16,Cs)),[[I,s.value]]):p("",!0),["email","url"].includes(n.subtype)?B((i(),u("input",O({key:4,"onUpdate:modelValue":t[4]||(t[4]=r=>s.value=r),refs:"urlInput",type:n.subtype,class:"form-control"},e.$attrs),null,16,Is)),[[N,s.value]]):p("",!0),n.subtype=="time"?B((i(),u("input",O({key:5,ref:"timeInput","onUpdate:modelValue":t[5]||(t[5]=r=>s.value=r),type:"time",class:"form-control"},e.$attrs),null,16)),[[I,s.value]]):p("",!0),n.subtype=="date"?B((i(),u("input",O({key:6,ref:"dateInput","onUpdate:modelValue":t[6]||(t[6]=r=>s.value=r),type:"date",class:"form-control"},e.$attrs),null,16)),[[I,s.value]]):p("",!0),n.subtype=="month"?B((i(),u("input",O({key:7,ref:"monthInput","onUpdate:modelValue":t[7]||(t[7]=r=>s.value=r),type:"month",class:"form-control"},e.$attrs),null,16)),[[I,s.value]]):p("",!0),n.subtype=="year"?B((i(),u("input",O({key:8,ref:"yearInput","onUpdate:modelValue":t[8]||(t[8]=r=>s.value=r),type:"number",class:"form-control"},e.$attrs),null,16)),[[I,s.value]]):p("",!0),n.unit?(i(),u("div",Ts,[a("div",Vs,v(n.unit),1)])):p("",!0),n.subtype=="password"?(i(),u("div",{key:10,class:"input-group-append clickable",onClick:t[9]||(t[9]=(...r)=>s.togglePassword&&s.togglePassword(...r))},[a("div",As,[_(o,{icon:l.showPassword?["far","eye"]:["far","eye-slash"]},null,8,["icon"])])])):p("",!0),n.showQuickButtons&&(n.subtype=="date"||n.subtype=="month"||n.subtype=="year")?(i(),u("div",{key:11,class:"input-group-append clickable",onClick:t[10]||(t[10]=r=>s.modify(-1))},t[12]||(t[12]=[a("div",{class:"input-group-text"},"-",-1)]))):p("",!0),n.showQuickButtons&&(n.subtype=="date"||n.subtype=="month"||n.subtype=="year")?(i(),u("div",{key:12,class:"input-group-append clickable",onClick:t[11]||(t[11]=r=>s.modify(1))},t[13]||(t[13]=[a("div",{class:"input-group-text"},"+",-1)]))):p("",!0),e.$slots.append?(i(),u("div",Ms,[a("div",Ps,[g(e.$slots,"append",{},void 0,!0)])])):p("",!0)])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const qs=y(vs,[["render",xs],["__scopeId","data-v-6927d479"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextInput.vue"]]),Ds=Object.freeze(Object.defineProperty({__proto__:null,default:qs},Symbol.toStringTag,{value:"Module"}));$.add(J,K);const Es={name:"OpenwbTextareaInput",components:{OpenwbBaseSettingElement:M,FontAwesomeIcon:C},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Object],required:!1,default:void 0},subtype:{validator:function(e){return["text","json"].indexOf(e)!==-1},default:"text"}},emits:["update:modelValue"],data(){return{inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.debug("returning invalid JSON as String"),this.tempValue):JSON.stringify(this.tempValue,void 0,2):this.modelValue},set(e){if(this.subtype=="json")try{let t=JSON.parse(e);this.inputInvalid=!1,this.$refs.jsonInput.setCustomValidity(""),this.tempValue=t,this.$emit("update:modelValue",t)}catch(t){console.warn("parsing JSON failed: "+e,t),this.inputInvalid=!0,this.$refs.jsonInput.setCustomValidity("Ungültiger JSON Ausdruck!"),this.tempValue=e}else this.$emit("update:modelValue",e)}},length:{get(){return this.value!==void 0?this.value.length:0}}}},Ls={class:"w-100"},js={class:"input-group"},Ws={class:"input-group-prepend"},Rs={class:"input-group-text"},Ns={key:2,class:"input-group-append"},zs={class:"input-group-text"},Fs={class:"form-text text-muted text-right"};function Hs(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",Ls,[a("div",js,[a("div",Ws,[a("div",Rs,[n.subtype=="text"?(i(),h(o,{key:0,icon:["fas","keyboard"]})):p("",!0),n.subtype=="json"?(i(),h(o,{key:1,icon:["fas","code"]})):p("",!0)])]),n.subtype==="json"?B((i(),u("textarea",O({key:0,ref:"jsonInput","onUpdate:modelValue":t[0]||(t[0]=r=>s.value=r),class:"form-control"},e.$attrs),null,16)),[[I,s.value,void 0,{lazy:!0}]]):B((i(),u("textarea",O({key:1,"onUpdate:modelValue":t[1]||(t[1]=r=>s.value=r),class:"form-control"},e.$attrs),null,16)),[[I,s.value]]),e.$attrs.maxlength?(i(),u("div",Ns,[a("div",zs,[a("small",Fs,v(s.length)+" / "+v(e.$attrs.maxlength),1)])])):p("",!0)])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Us=y(Es,[["render",Hs],["__scopeId","data-v-3d93046b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextarea.vue"]]),Gs=Object.freeze(Object.defineProperty({__proto__:null,default:Us},Symbol.toStringTag,{value:"Module"}));const Js={name:"OpenwbToast",props:{topic:{type:String,required:!0},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"},source:{type:String,required:!0,validator:function(e){return["system","client","command"].indexOf(e)!==-1}},timestamp:{type:Number,required:!0}},emits:["dismiss","hide"],data(){return{handle:void 0,relativeTime:void 0,hidden:!1}},mounted(){this.handle=window.setInterval(this.updateRelativeTime,1e3)},unmounted(){window.clearInterval(this.handle)},methods:{dismiss(){this.$emit("dismiss",{topic:this.topic})},updateRelativeTime(){const e={year:31536e6,month:2628e6,day:864e5,hour:36e5,minute:6e4,second:1e3};var t=new Intl.RelativeTimeFormat("de",{numeric:"auto"});const d=new Date-this.timestamp*1e3;for(var l in e)if(Math.abs(d)>e[l]){this.relativeTime=t.format(Math.round(-d/e[l]),l);break}d>10*1e3&&!this.hidden&&(this.hidden=!0,this.$emit("hide",{topic:this.topic}))}}},Ks={key:0,class:"time-diff"},Zs={class:"toast-body"};function Qs(e,t,n,d,l,s){return i(),u("div",{class:S(["toast","border-"+n.subtype]),role:"alert"},[a("div",{class:S(["toast-header","bg-"+n.subtype])},[t[2]||(t[2]=a("strong",{class:"pr-2 mr-auto"},"openWB",-1)),n.timestamp?(i(),u("small",Ks,v(l.relativeTime),1)):p("",!0),a("button",{type:"button",class:"ml-2 mb-1 close","data-dismiss":"toast","aria-label":"Close",onClick:t[0]||(t[0]=(...o)=>s.dismiss&&s.dismiss(...o))},t[1]||(t[1]=[a("span",{"aria-hidden":"true"},"×",-1)]))],2),a("div",Zs,[g(e.$slots,"default",{},void 0,!0)])],2)}const Ys=y(Js,[["render",Qs],["__scopeId","data-v-c51b5764"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseToast.vue"]]),Xs=Object.freeze(Object.defineProperty({__proto__:null,default:Ys},Symbol.toStringTag,{value:"Module"}));$.add(We);const eo={name:"OpenwbNavBar",components:{FontAwesomeIcon:C},computed:{nodeEnv(){return"development"}},watch:{$route(){this.$refs.collapsibleNavbar.classList.remove("show"),this.$refs.navbarButton.classList.add("collapsed"),this.$refs.navbarButton.setAttribute("aria-expanded",!1)}}},to={class:"navbar navbar-expand-lg bg-dark navbar-dark fixed-top"},no={ref:"navbarButton",class:"navbar-toggler mr-5",type:"button","data-toggle":"collapse","data-target":"#collapsibleNavbar"},so={id:"collapsibleNavbar",ref:"collapsibleNavbar",class:"collapse navbar-collapse navbar-nav-scroll"},oo={class:"navbar-nav"},ao={class:"nav-item"},io={class:"nav-item dropdown nav-separator-after"},lo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},ro={class:"nav-item dropdown"},uo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},co={class:"nav-item dropdown"},po={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},mo={class:"nav-item dropdown"},fo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},_o={class:"nav-item dropdown"},go={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},bo={class:"nav-item nav-separator-before"},ho={class:"nav-link",href:"https://github.com/openWB/core/wiki",target:"_blank"};function vo(e,t,n,d,l,s){const o=b("router-link"),m=b("font-awesome-icon");return i(),u("nav",to,[t[30]||(t[30]=a("a",{class:"navbar-brand",href:"/openWB/web/"},[a("span",null,"openWB")],-1)),a("button",no,t[0]||(t[0]=[a("span",{class:"navbar-toggler-icon"},null,-1)]),512),a("div",so,[a("ul",oo,[a("li",ao,[_(o,{to:"/Status",class:"nav-link","active-class":"active disabled"},{default:c(()=>t[1]||(t[1]=[f(" Status ",-1)])),_:1,__:[1]})]),a("li",io,[t[4]||(t[4]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Auswertungen ",-1)),a("div",lo,[_(o,{to:"/Logging/ChargeLog",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[2]||(t[2]=[f(" Ladeprotokoll ",-1)])),_:1,__:[2]}),_(o,{to:"/Logging/Chart",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[3]||(t[3]=[f(" Diagramme ",-1)])),_:1,__:[3]})])]),a("li",ro,[t[8]||(t[8]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Einstellungen ",-1)),a("div",uo,[_(o,{to:"/GeneralConfig",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[5]||(t[5]=[f(" Allgemein ",-1)])),_:1,__:[5]}),_(o,{to:"/OptionalComponents",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[6]||(t[6]=[f(" Display ",-1)])),_:1,__:[6]}),_(o,{to:"/IdentificationConfig",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[7]||(t[7]=[f(" Identifikation ",-1)])),_:1,__:[7]})])]),a("li",co,[t[11]||(t[11]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Ladeeinstellungen ",-1)),a("div",po,[_(o,{to:"/GeneralChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[9]||(t[9]=[f(" Übergreifendes ",-1)])),_:1,__:[9]}),_(o,{to:"/PVChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[10]||(t[10]=[f(" PV-Laden ",-1)])),_:1,__:[10]})])]),a("li",mo,[t[19]||(t[19]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Konfiguration ",-1)),a("div",fo,[_(o,{to:"/HardwareInstallation",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[12]||(t[12]=[f(" Geräte und Komponenten ",-1)])),_:1,__:[12]}),_(o,{to:"/LoadManagementConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[13]||(t[13]=[f(" Lastmanagement ",-1)])),_:1,__:[13]}),_(o,{to:"/ChargePointInstallation",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[14]||(t[14]=[f(" Ladepunkte ",-1)])),_:1,__:[14]}),_(o,{to:"/VehicleConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[15]||(t[15]=[f(" Fahrzeuge ",-1)])),_:1,__:[15]}),_(o,{to:"/IoConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[16]||(t[16]=[f(" Ein-/Ausgänge ",-1)])),_:1,__:[16]}),t[17]||(t[17]=a("div",{class:"dropdown-divider"},null,-1)),t[18]||(t[18]=a("a",{href:"modules/legacy_smart_home/smarthomeconfig.php",class:"dropdown-item",target:"_blank"}," SmartHome ",-1))])]),a("li",_o,[t[28]||(t[28]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," System ",-1)),a("div",go,[_(o,{to:"/System/InstallAssistant",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[20]||(t[20]=[f(" Einrichtungsassistent ",-1)])),_:1,__:[20]}),_(o,{to:"/System/CloudConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[21]||(t[21]=[f(" openWB Cloud ",-1)])),_:1,__:[21]}),_(o,{to:"/System/MqttBridgeConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[22]||(t[22]=[f(" MQTT-Brücken ",-1)])),_:1,__:[22]}),_(o,{to:"/System/DebugConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[23]||(t[23]=[f(" Fehlersuche ",-1)])),_:1,__:[23]}),_(o,{to:"/System/Support",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[24]||(t[24]=[f(" Support ",-1)])),_:1,__:[24]}),_(o,{to:"/System/DataManagement",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[25]||(t[25]=[f(" Datenverwaltung ",-1)])),_:1,__:[25]}),_(o,{to:"/System/SystemConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[26]||(t[26]=[f(" System ",-1)])),_:1,__:[26]}),_(o,{to:"/System/LegalSettings",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>t[27]||(t[27]=[f(" Rechtliches ",-1)])),_:1,__:[27]})])]),a("li",bo,[a("a",ho,[t[29]||(t[29]=f(" Wiki ",-1)),_(m,{icon:["fas","external-link-alt"]})])])])],512)])}const yo=y(eo,[["render",vo],["__scopeId","data-v-e7a6d0c0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageNavbar.vue"]]);const wo={name:"OpenwbPageFooter"},ko={id:"footer",class:"footer bg-dark text-light font-small"},So={class:"container text-center"};function Oo(e,t,n,d,l,s){return i(),u("footer",ko,[a("div",So,[a("small",null," Sie befinden sich hier: Einstellungen / "+v(e.$route.meta.heading),1)])])}const Bo=y(wo,[["render",Oo],["__scopeId","data-v-3c9a239a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageFooter.vue"]]),$o={name:"ComponentState",emits:["reset","defaults","save"],data(){return{mqttTopicsToSubscribe:[]}},computed:{weekdays(){return["Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag"]},chargeModes(){return["instant_charging","pv_charging","scheduled_charging","time_charging","eco_charging","stop"]},statusLevel(){return["success","warning","danger"]},stateIcon:{get(){switch(this.$store.state.mqtt[this.baseTopic+"/get/fault_state"]){case 0:return["fas","check-circle"];case 1:return["fas","exclamation-triangle"];case 2:return["fas","times-circle"];default:return["fas","check-circle"]}}}},mounted(){this.mqttTopicsToSubscribe.length>0&&this.$root.doSubscribe(this.mqttTopicsToSubscribe)},unmounted(){this.mqttTopicsToSubscribe.length>0&&this.$root.doUnsubscribe(this.mqttTopicsToSubscribe)},methods:{updateState(e,t,n=void 0){console.debug("updateState:",e,t,n),this.$store.commit({type:"updateTopic",topic:e,objectPath:n,payload:t})},ac_current2dc_power(e){return parseFloat((e*3*230/1e3).toFixed(0))},dc_power2ac_current(e){return parseFloat((e*1e3/230/3).toFixed(2))},getWildcardIndexList(e,t=!1){let n=e;t||(n="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$");let d=Object.keys(this.$store.state.mqtt).filter(l=>l.match(n));return d.forEach((l,s,o)=>{o[s]=parseInt(l.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,""))}),d},getWildcardTopics(e,t=!1){let n=e;return t||(n="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(this.$store.state.mqtt).filter(d=>d.match(n)).reduce((d,l)=>({...d,[l]:this.$store.state.mqtt[l]}),{})},formatDate(e,t={year:"numeric",month:"2-digit",day:"2-digit"}){return new Date(e).toLocaleDateString(void 0,t)},formatNumber(e,t=0,n=t,d=1){if(!(e==null||isNaN(e)))return e=e*d,e.toLocaleString(void 0,{minimumFractionDigits:t,maximumFractionDigits:n})},formatNumberTopic(e,t=0,n=t,d=1){return this.$store.state.mqtt[e]?this.formatNumber(this.$store.state.mqtt[e],t,n,d):"-"},formatPhaseArrayNumberTopic(e,t=0,n=t,d=1){return this.$store.state.mqtt[e]?this.$store.state.mqtt[e].map(l=>this.formatNumber(l,t,n,d)):["-","-","-"]},translateChargeMode(e){switch(e){case"instant_charging":return"Sofort";case"pv_charging":return"PV";case"scheduled_charging":return"Zielladen";case"time_charging":return"Zeitladen";case"eco_charging":return"Eco";case"standby":return"Standby";case"stop":return"Stop";default:return console.warn("unknown charge mode:",e),e}},getFaultStateSubtype(e){const t=this.$store.state.mqtt[e+"/get/fault_state"];if(t===void 0)return"warning";switch(t){case 0:return"success";case 1:return"warning";case 2:return"danger";default:return"dark"}}}},Q=y($o,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/mixins/ComponentState.vue"]]);$.add(Re,Ne);const Co={name:"OpenwbPageMessages",components:{FontAwesomeIcon:C,FontAwesomeLayers:ze,FontAwesomeLayersText:Fe},mixins:[Q],data(){return{mqttTopicsToSubscribe:["openWB/system/messages/+","openWB/command/"+this.$root.mqttClientId+"/messages/+"],showAllMessages:!1,hiddenMessages:[]}},computed:{alertLevel(){return this.messages.reduce((t,n)=>((t=="light"&&["info","success","warning","danger"].includes(n.type)||t=="info"&&["success","warning","danger"].includes(n.type)||t=="success"&&["warning","danger"].includes(n.type)||t=="warning"&&n.type=="danger")&&(t=n.type),t),"light")},messages(){const e=[];return this.systemMessages.forEach(t=>{e.push(t)}),this.clientMessages.forEach(t=>{e.push(t)}),e.sort(this.compareMessagesByTimestamp),e},recentMessages(){return this.showAllMessages?this.messages:this.messages.filter(e=>!this.hiddenMessages.includes(e.topic))},messageIndicatorClass(){return"text-"+this.alertLevel},systemMessages(){let e=this.getWildcardTopics("openWB/system/messages/+");var t=[];for(const[n,d]of Object.entries(e))t.push({topic:n,...d});return t},clientMessages(){let e=this.getWildcardTopics("openWB/command/"+this.$root.mqttClientId+"/messages/+");var t=[];for(const[n,d]of Object.entries(e))t.push({topic:n,...d});return t}},methods:{toggleAllMessages(){this.showAllMessages=!this.showAllMessages},compareMessagesByTimestamp(e,t){return t.timestamp-e.timestamp},clearTopic(e){this.$root.doPublish(e,void 0)},dismissMessage(e){this.clearTopic(e.topic);var t=this.hiddenMessages.indexOf(e.topic);t>-1&&this.hiddenMessages.splice(t,1)},dismissAllMessages(){this.messages.forEach(e=>{this.clearTopic(e.topic)}),this.hiddenMessages=[],this.toggleAllMessages()},hideMessage(e){this.hiddenMessages.includes(e.topic)||this.hiddenMessages.push(e.topic)}}},Io=["innerHTML"];function To(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("font-awesome-layers-text"),r=b("font-awesome-layers"),w=b("openwb-base-alert"),V=b("openwb-base-click-button"),D=b("openwb-base-toast");return i(),u(T,null,[(i(),h(F,{to:"body"},[a("div",{id:"message-indicator",class:S(["text-light mt-1 p-2 mr-1 clickable",l.showAllMessages?"active":""]),onClick:t[0]||(t[0]=(...P)=>s.toggleAllMessages&&s.toggleAllMessages(...P))},[_(r,{"full-width":"",style:{"font-size":"175%"}},{default:c(()=>[_(o,{icon:l.showAllMessages?["fas","bell"]:["far","bell"],class:S(s.messageIndicatorClass)},null,8,["icon","class"]),s.messages.length>0?(i(),h(m,{key:0,counter:"",value:s.messages.length,position:"top-right",class:"message-counter bg-light text-dark"},null,8,["value"])):p("",!0)]),_:1})],2)])),s.recentMessages.length>0||l.showAllMessages?(i(),u("div",{key:0,class:S(["openwb-toast-container",l.showAllMessages?"full-height":""])},[s.recentMessages.length==0?(i(),h(w,{key:0,subtype:"info"},{default:c(()=>t[1]||(t[1]=[f(" Keine Nachrichten vorhanden. ",-1)])),_:1,__:[1]})):l.showAllMessages?(i(),h(V,{key:1,class:"btn-sm btn-secondary mb-1",onButtonClicked:s.dismissAllMessages},{default:c(()=>t[2]||(t[2]=[f(" Alle Nachrichten löschen ",-1)])),_:1,__:[2]},8,["onButtonClicked"])):p("",!0),(i(!0),u(T,null,x(s.recentMessages,P=>(i(),h(D,{key:P.topic,topic:P.topic,source:P.source,subtype:P.type,timestamp:P.timestamp,onDismiss:s.dismissMessage,onHide:s.hideMessage},{default:c(()=>[a("span",{innerHTML:P.message},null,8,Io)]),_:2},1032,["topic","source","subtype","timestamp","onDismiss","onHide"]))),128))],2)):p("",!0)],64)}const Vo=y(Co,[["render",To],["__scopeId","data-v-2c25f0d0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageMessages.vue"]]),Ao={name:"OpenwbPageBlocker",mixins:[Q],data(){return{mqttTopicsToSubscribe:["openWB/system/boot_done","openWB/system/update_in_progress"]}},computed:{title(){return this.bootInProgress||this.updateInProgress?"openWB ist noch nicht bereit":this.reloadRequired?"Neues Laden der Seite erforderlich":"???"},myButtons(){return!(this.bootInProgress||this.updateInProgress)&&this.reloadRequired?[{text:"Jetzt neu laden",subtype:"success",event:"reload"}]:[]},bootInProgress(){return this.$store.state.mqtt["openWB/system/boot_done"]==null?!0:!this.$store.state.mqtt["openWB/system/boot_done"]},updateInProgress(){return this.$store.state.mqtt["openWB/system/update_in_progress"]==null?!1:this.$store.state.mqtt["openWB/system/update_in_progress"]},reloadRequired(){return this.$store.state.local.reloadRequired},showModalBlocker(){return this.bootInProgress||this.updateInProgress||this.reloadRequired}},methods:{handleModalResult(e){e=="reload"?location.reload():console.warn("unknown event",e)}}},Mo={class:"openwb-blocker"},Po={key:0},xo={key:1},qo={key:2},Do={key:3};function Eo(e,t,n,d,l,s){const o=b("openwb-base-modal-dialog");return i(),u("div",Mo,[_(o,{show:s.showModalBlocker,title:s.title,subtype:"dark","prevent-close":!0,buttons:s.myButtons,onModalResult:t[0]||(t[0]=m=>s.handleModalResult(m))},{default:c(()=>[s.bootInProgress?(i(),u("p",Po,"Der Systemstart ist noch nicht abgeschlossen.")):p("",!0),s.updateInProgress?(i(),u("p",xo,"Es wird eine Systemaktualisierung ausgeführt.")):p("",!0),!(s.bootInProgress||s.updateInProgress)&&s.reloadRequired?(i(),u("p",qo,"Bitte die Seite neu laden.")):(i(),u("p",Do,"Bitte warten..."))]),_:1},8,["show","title","buttons"])])}const Lo=y(Ao,[["render",Eo],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageBlocker.vue"]]);const jo={name:"OpenwbSettingsApp",components:{NavBar:yo,PageFooter:Bo,Messages:Vo,Blocker:Lo},data(){return{client:{connected:!1},connection:{protocol:location.protocol=="https:"?"wss":"ws",host:location.hostname,port:parseInt(location.port)||(location.protocol=="https:"?443:80),endpoint:"/ws",connectTimeout:4e3,reconnectPeriod:4e3}}},computed:{mqttClientId(){try{return this.client.options.clientId}catch(e){console.error("mqttClientId error",e);return}},topicList(){return Object.keys(this.$store.state.mqtt)}},created(){this.createConnection()},methods:{async saveValues(e=void 0){function t(d){return new Promise(l=>setTimeout(l,d))}this.$store.state.local.savingData=!0;let n={};e===void 0?(console.debug("no topics defined, so save everything we have in store"),n=this.$store.state.mqtt):Array.isArray(e)?e.forEach(d=>{n[d]=this.$store.state.mqtt[d]}):console.error("expected array, got ",typeof e);for(const[d,l]of Object.entries(n)){let s=d.replace("openWB/","openWB/set/");console.debug("saving data:",s,l),this.doPublish(s,l),await t(100)}this.$store.state.local.savingData=!1},resetValues(e=this.topicList){console.debug("resetting values..."),console.debug("topics: ",e),this.doUnsubscribe(e),this.doSubscribe(e)},setDefaultValues(){console.debug("setting default values... (ToDo)")},sendCommand(e){console.debug("sendCommand:",e),this.doPublish("openWB/set/command/"+this.client.options.clientId+"/todo",e,!1)},createConnection(){const{protocol:e,host:t,port:n,endpoint:d,...l}=this.connection,s=`${e}://${t}:${n}${d}`;console.debug("connecting to broker:",s);try{this.client=ie.connect(s,l)}catch(o){console.error("mqtt.connect error",o)}this.client.on("connect",()=>{console.debug("Connection succeeded! ClientId: ",this.client.options.clientId),this.doSubscribe(["openWB/system/usage_terms_acknowledged"]),this.doSubscribe(["openWB/system/installAssistantDone"])}),this.client.on("error",o=>{console.error("Connection failed",o)}),this.client.on("message",(o,m)=>{if(m.toString().length>0){let r;try{r=JSON.parse(m.toString())}catch(w){console.debug("Json parsing failed, fallback to string: ",o,w),r=m.toString()}this.$store.commit("updateTopic",{topic:o,payload:r})}else this.$store.commit("removeTopic",o)})},doSubscribe(e){e.forEach(t=>{this.$store.commit("addSubscription",t),this.$store.getters.subscriptionCount(t)==1?(t.includes("#")||t.includes("+")?console.debug("skipping init of wildcard topic:",t):this.$store.commit("addTopic",{topic:t,payload:void 0}),this.client.subscribe(t,{},n=>{if(n){console.error("Subscribe to topics error",n);return}})):console.debug("Already subscribed to topic: ",t)})},doUnsubscribe(e){e.forEach(t=>{this.$store.commit("removeSubscription",t),this.$store.getters.subscriptionCount(t)==0?(this.client.unsubscribe(t,n=>{n&&console.error("Unsubscribe error",n)}),t.includes("#")||t.includes("+")?(console.debug("expanding wildcard topic:",t),Object.keys(this.getWildcardTopics(t)).forEach(n=>{console.debug("removing wildcardTopic:",n),this.$store.commit("removeTopic",n)})):(console.debug("removing topic:",t),this.$store.commit("removeTopic",t))):console.debug("Still subscribed to topic: ",t)})},doPublish(e,t,n=!0,d=2){let l={qos:d,retain:n};this.client.publish(e,JSON.stringify(t),l,s=>{s&&console.error("Publish error",s)})},postClientMessage(e,t="secondary"){console.debug("postMessage:",e,t);const n=Date.now(),d="openWB/command/"+this.mqttClientId+"/messages/"+n;this.$store.commit({type:"addTopic",topic:d,payload:{message:e,type:t,source:"client",timestamp:Math.floor(n/1e3)}})},getWildcardTopics(e,t=!1){let n=e;return t||(n="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(this.$store.state.mqtt).filter(d=>d.match(n)).reduce((d,l)=>({...d,[l]:this.$store.state.mqtt[l]}),{})}}},Wo={role:"main",class:"container"},Ro={id:"content"};function No(e,t,n,d,l,s){const o=b("nav-bar"),m=b("router-view"),r=b("page-footer"),w=b("messages"),V=b("blocker");return i(),u(T,null,[a("header",null,[_(o)]),a("div",Wo,[a("div",Ro,[a("h1",null,v(e.$route.meta.heading),1),_(m,{onSave:s.saveValues,onReset:s.resetValues,onDefaults:s.setDefaultValues,onSendCommand:s.sendCommand},null,8,["onSave","onReset","onDefaults","onSendCommand"])])]),_(r),_(w),_(V)],64)}const zo=y(jo,[["render",No],["__file","/opt/openWB-dev/openwb-ui-settings/src/App.vue"]]),Fo="modulepreload",Ho=function(e){return"/openWB/web/settings/"+e},z={},k=function(t,n,d){if(!n||n.length===0)return t();const l=document.getElementsByTagName("link");return Promise.all(n.map(s=>{if(s=Ho(s),s in z)return;z[s]=!0;const o=s.endsWith(".css"),m=o?'[rel="stylesheet"]':"";if(!!d)for(let V=l.length-1;V>=0;V--){const D=l[V];if(D.href===s&&(!o||D.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${s}"]${m}`))return;const w=document.createElement("link");if(w.rel=o?"stylesheet":Fo,o||(w.as="script",w.crossOrigin=""),w.href=s,document.head.appendChild(w),o)return new Promise((V,D)=>{w.addEventListener("load",V),w.addEventListener("error",()=>D(new Error(`Unable to preload CSS for ${s}`)))})})).then(()=>t()).catch(s=>{const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=s,window.dispatchEvent(o),!o.defaultPrevented)throw s})};let Y={mqtt:{},mqttSubscriptions:{},local:{reloadRequired:!1,savingData:!1}};Y.examples={text1:"Text...",text2:"mail@domain.com",text3:"openwb.local",text4:"http://www.openwb.de",text5:"Benutzername",text6:"12:34",text7:"2021-10-31",color1:"#ff0000",color2:"#0000ff",number1:5,number2:10,number3:28e-5,password1:"GeHeiM!",textarea1:"Langer Text...",range1:6,range2:10,select1:1,select2:void 0,buttonGroup1:1,checkbox1:!0,json1:{text:"Text",number:123},hierarchy1:[{id:0,type:"counter",children:[{id:3,type:"inverter",children:[]},{id:4,type:"bat",children:[]},{id:1,type:"cp",children:[]},{id:2,type:"cp",children:[]}]}],hierarchy1Labels:{0:"EVU",1:"Ladepunkt 1",2:"Ladepunkt 2",3:"Wechselrichter",4:"Batteriespeicher"},tags:["1234","2345","3456"],ioConfig:{active:!1,pattern:[null,!1,!0],action:{value:"stop_all",options:null}}};const L=le({state:Y,mutations:{storeLocal(e,t){e.local[t.name]=t.value},addTopic(e,t){Object.keys(e.mqtt).includes(t.topic)?console.warn("topic already exists: ",t.topic):e.mqtt[t.topic]=t.payload},removeTopic(e,t){delete e.mqtt[t]},updateTopic(e,t){const n=(d,l,s)=>l.split(".").reduce((o,m,r)=>o[m]=l.split(".").length===++r?s:o[m]||{},d);t.topic in e.mqtt||!(t.topic in e.examples)?t.objectPath!=null?n(e.mqtt[t.topic],t.objectPath,t.payload):e.mqtt[t.topic]=t.payload:(console.debug("topic not found in state.mqtt: ",t.topic),t.topic in e.examples?t.objectPath!=null?n(e.examples[t.topic],t.objectPath,t.payload):e.examples[t.topic]=t.payload:console.warn("topic not found in state: ",t.topic," giving up"))},addSubscription(e,t){t in e.mqttSubscriptions?e.mqttSubscriptions[t]+=1:e.mqttSubscriptions[t]=1,console.debug("subscription count: ",t,e.mqttSubscriptions[t])},removeSubscription(e,t){t in e.mqttSubscriptions&&(e.mqttSubscriptions[t]-=1,e.mqttSubscriptions[t]<=0&&delete e.mqttSubscriptions[t])}},actions:{},modules:{},getters:{usageTermsAcknowledged(e){return new Promise(t=>{if(e.mqtt["openWB/system/usage_terms_acknowledged"]!==void 0)t(e.mqtt["openWB/system/usage_terms_acknowledged"]);else{var n,d;n=setTimeout(()=>{clearInterval(d),t(!1)},5e3),d=setInterval(()=>{e.mqtt["openWB/system/usage_terms_acknowledged"]!==void 0&&(clearTimeout(n),clearInterval(d),t(e.mqtt["openWB/system/usage_terms_acknowledged"]))},100)}})},installAssistantDone(e){return new Promise(t=>{if(e.mqtt["openWB/system/installAssistantDone"]!==void 0)t(e.mqtt["openWB/system/installAssistantDone"]);else{var n,d;n=setTimeout(()=>{clearInterval(d),t(!1)},5e3),d=setInterval(()=>{e.mqtt["openWB/system/installAssistantDone"]!==void 0&&(clearTimeout(n),clearInterval(d),t(e.mqtt["openWB/system/installAssistantDone"]))},100)}})},subscriptionCount:e=>t=>e.mqttSubscriptions[t]||0}}),X=[{path:"/",redirect:"/GeneralConfig"},{path:"/Status",name:"Status",meta:{heading:"Status"},component:()=>k(()=>import("./Status-76832ed9.js"),["assets/Status-76832ed9.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-chartjs-94a826eb.js","assets/vendor-luxon-cc86f6dc.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/Status-a4f24178.css"])},{path:"/Logging/ChargeLog",name:"ChargeLog",meta:{heading:"Auswertungen - Ladeprotokoll"},component:()=>k(()=>import("./ChargeLog-40aaca0a.js"),["assets/ChargeLog-40aaca0a.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/ChargeLog-1fb3fa68.css"])},{path:"/Logging/Chart/:chartRange?/:initialDate?",name:"DailyChart",meta:{heading:"Auswertungen - Diagramme"},component:()=>k(()=>import("./Chart-0e7a4a70.js"),["assets/Chart-0e7a4a70.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-chartjs-94a826eb.js","assets/vendor-luxon-cc86f6dc.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/Chart-e20451b4.css"])},{path:"/GeneralConfig",name:"GeneralConfig",meta:{heading:"Einstellungen - Allgemein"},component:()=>k(()=>import("./GeneralConfig-cc87a1f9.js").then(e=>e.a),["assets/GeneralConfig-cc87a1f9.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/IdentificationConfig",name:"IdentificationConfig",meta:{heading:"Einstellungen - Identifikation"},component:()=>k(()=>import("./IdentificationConfig-a3531ccb.js"),["assets/IdentificationConfig-a3531ccb.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/OptionalComponents",name:"OptionalComponents",meta:{heading:"Einstellungen - Display"},component:()=>k(()=>import("./OptionalComponents-a2c47c92.js").then(e=>e.O),["assets/OptionalComponents-a2c47c92.js","assets/dynamic-import-helper-be004503.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css"])},{path:"/GeneralChargeConfig",name:"GeneralChargeConfig",meta:{heading:"Ladeeinstellungen - Übergreifendes"},component:()=>k(()=>import("./GeneralChargeConfig-d70b0d95.js").then(e=>e.G),["assets/GeneralChargeConfig-d70b0d95.js","assets/dynamic-import-helper-be004503.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css"])},{path:"/PVChargeConfig",name:"PVChargeConfig",meta:{heading:"Ladeeinstellungen - PV-Laden"},component:()=>k(()=>import("./PVChargeConfig-b6b84699.js"),["assets/PVChargeConfig-b6b84699.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/HardwareInstallation",name:"HardwareInstallation",meta:{heading:"Konfiguration - Geräte und Komponenten"},component:()=>k(()=>import("./HardwareInstallation-be759b0c.js").then(e=>e.a),["assets/HardwareInstallation-be759b0c.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/LoadManagementConfiguration",name:"LoadManagementConfiguration",meta:{heading:"Konfiguration - Lastmanagement"},component:()=>k(()=>import("./LoadManagementConfig-61263fe6.js"),["assets/LoadManagementConfig-61263fe6.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/OpenwbSortableList-c7b5b151.js","assets/OpenwbSortableList-7ba533e4.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/ChargePointInstallation",name:"ChargePointInstallation",meta:{heading:"Konfiguration - Ladepunkte"},component:()=>k(()=>import("./ChargePointInstallation-7e22d920.js").then(e=>e.c),["assets/ChargePointInstallation-7e22d920.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js","assets/ChargePointInstallation-7b9399a8.css"])},{path:"/VehicleConfiguration/:section?/:section_index?/:section_part?/:action?",name:"VehicleConfiguration",meta:{heading:"Konfiguration - Fahrzeuge"},component:()=>k(()=>import("./VehicleConfig-c6e5b45b.js").then(e=>e.b),["assets/VehicleConfig-c6e5b45b.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/IoConfiguration",name:"IoConfiguration",meta:{heading:"Konfiguration - Ein- und Ausgänge"},component:()=>k(()=>import("./IoConfig-38958e2e.js").then(e=>e.b),["assets/IoConfig-38958e2e.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/System/CloudConfiguration",name:"CloudConfig",meta:{heading:"System - openWB Cloud"},component:()=>k(()=>import("./CloudConfig-1f382920.js"),["assets/CloudConfig-1f382920.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/System/MqttBridgeConfiguration",name:"MqttBridgeConfig",meta:{heading:"System - MQTT-Brücken"},component:()=>k(()=>import("./MqttBridgeConfig-59050cb8.js"),["assets/MqttBridgeConfig-59050cb8.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/System/DebugConfiguration",name:"Debugging",meta:{heading:"System - Fehlersuche"},component:()=>k(()=>import("./DebugConfig-044b24f7.js"),["assets/DebugConfig-044b24f7.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-axios-ac33d60c.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/DebugConfig-e21ab72c.css"])},{path:"/System/Support",name:"Support",meta:{heading:"System - Support"},component:()=>k(()=>import("./Support-25ac4d94.js"),["assets/Support-25ac4d94.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/System/LegalSettings",name:"LegalSettings",meta:{heading:"System - Rechtliches"},component:()=>k(()=>import("./LegalSettings-20201125.js"),["assets/LegalSettings-20201125.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])},{path:"/System/SystemConfiguration",name:"SystemConfig",meta:{heading:"System - System"},component:()=>k(()=>import("./System-9f60a387.js"),["assets/System-9f60a387.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js","assets/System-f301c290.css"])},{path:"/System/DataManagement",name:"DataManagement",meta:{heading:"System - Datenverwaltung"},component:()=>k(()=>import("./DataManagement-52054445.js").then(e=>e.a),["assets/DataManagement-52054445.js","assets/vendor-fortawesome-a02b6813.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/System/InstallAssistant",name:"InstallAssistant",meta:{heading:"System - Einrichtungsassistent"},component:()=>k(()=>import("./InstallAssistant-56db2231.js"),["assets/InstallAssistant-56db2231.js","assets/dynamic-import-helper-be004503.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])}];X.push({path:"/TestingStore",name:"VUEX Store",meta:{heading:"Beispiele - VUEX Store"},component:()=>k(()=>import("./TestingStore-3a739645.js"),["assets/TestingStore-3a739645.js","assets/OpenwbSortableList-c7b5b151.js","assets/vendor-25d394b4.js","assets/vendor-sortablejs-0eb84ec8.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-a02b6813.js","assets/OpenwbSortableList-7ba533e4.css","assets/vendor-bootstrap-374cd88e.js","assets/vendor-jquery-3364d39b.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-ac33d60c.js"])});const W=re({history:de(),routes:X});W.beforeEach(async e=>{if(await L.getters.usageTermsAcknowledged){if(!await L.getters.installAssistantDone&&e.name!=="InstallAssistant")return{name:"InstallAssistant"}}else if(e.name!=="LegalSettings")return{name:"LegalSettings"}});W.afterEach(e=>{e.meta.heading?document.title="openWB | "+e.meta.heading:document.title="openWB"});const R=ue(zo);R.use(L).use(W).use(He,Ue);const Uo=Object.assign({"./components/OpenwbBaseAlert.vue":Ze,"./components/OpenwbBaseArrayInput.vue":mt,"./components/OpenwbBaseAvatar.vue":ht,"./components/OpenwbBaseButtonGroupInput.vue":Ot,"./components/OpenwbBaseButtonInput.vue":Mt,"./components/OpenwbBaseCard.vue":Nt,"./components/OpenwbBaseCheckboxInput.vue":Gt,"./components/OpenwbBaseClickButton.vue":It,"./components/OpenwbBaseColorPicker.vue":Xt,"./components/OpenwbBaseCopyToClipboard.vue":un,"./components/OpenwbBaseHeading.vue":hn,"./components/OpenwbBaseIoPattern.vue":kn,"./components/OpenwbBaseModalDialog.vue":An,"./components/OpenwbBaseNumberInput.vue":Nn,"./components/OpenwbBaseRangeInput.vue":Qn,"./components/OpenwbBaseSelectInput.vue":us,"./components/OpenwbBaseSettingElement.vue":nt,"./components/OpenwbBaseSubmitButtons.vue":hs,"./components/OpenwbBaseTextInput.vue":Ds,"./components/OpenwbBaseTextarea.vue":Gs,"./components/OpenwbBaseToast.vue":Xs});Object.entries(Uo).forEach(([e,t])=>{const n=ce(pe(e.split("/").pop().replace(/\.\w+$/,"")));R.component(n,t.default)});R.mount("#app");export{Q as C,M as O,k as _}; diff --git a/web/settings/assets/index-c94f8df4.js b/web/settings/assets/index-c94f8df4.js new file mode 100644 index 0000000000..1ece14de38 --- /dev/null +++ b/web/settings/assets/index-c94f8df4.js @@ -0,0 +1 @@ +import{_ as y,l as i,m as u,p as g,q as S,u as b,x as h,y as q,z as p,A as a,B as f,D as A,E as c,F as v,G as _,I as B,J as I,K as O,L as te,M as x,N as T,O as ne,P as se,Q as oe,R as ae,T as H,S as ie,U as N,V as le,W as re,X as de,Y as ue,Z as ce,$ as pe,a0 as me}from"./vendor-50125810.js";import{l as $,f as U,a as G,F as C,b as fe,c as _e,d as J,e as ge,g as j,h as be,i as he,j as ve,k as ye,m as we,n as ke,o as Se,p as Oe,q as Be,r as $e,s as Ce,t as Ie,u as Te,v as Ve,w as K,x as Ae,y as Me,z as Pe,A as xe,B as Z,C as qe,D as De,E as Ee,G as Le,H as je,I as We,J as Re,K as Ne,L as ze,M as Fe,N as He}from"./vendor-fortawesome-fc4b3a41.js";import"./vendor-bootstrap-01761fad.js";import{p as Ue,a as Ge}from"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./vendor-jquery-a46fe321.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))d(l);new MutationObserver(l=>{for(const s of l)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&d(o)}).observe(document,{childList:!0,subtree:!0});function n(l){const s={};return l.integrity&&(s.integrity=l.integrity),l.referrerPolicy&&(s.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?s.credentials="include":l.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function d(l){if(l.ep)return;l.ep=!0;const s=n(l);fetch(l.href,s)}})();const Je={name:"OpenwbAlert",props:{subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}}};function Ke(e,t,n,d,l,s){return i(),u("div",{class:S(["card-text alert","alert-"+n.subtype])},[g(e.$slots,"default",{},void 0,!0)],2)}const Ze=y(Je,[["render",Ke],["__scopeId","data-v-055c15aa"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAlert.vue"]]),Qe=Object.freeze(Object.defineProperty({__proto__:null,default:Ze},Symbol.toStringTag,{value:"Module"}));$.add(U,G);const Ye={name:"OpenwbBaseSettingElement",components:{FontAwesomeIcon:C},data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},Xe={key:0,class:"col-md-4 col-form-label"},et={class:"form-row"},tt={key:0,class:"form-text alert alert-info my-1 small flex-fill"};function nt(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("div",{class:S(["form-row",e.$slots.title?"mb-1":"mx-0"])},[e.$slots.title?(i(),u("label",Xe,[g(e.$slots,"title",{},void 0,!0),e.$slots.help?(i(),h(o,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:S(["clickable ml-1",l.showHelp?"text-info":""]),onClick:q(s.toggleHelp,["stop"])},null,8,["icon","class","onClick"])):p("",!0)])):p("",!0),a("div",{class:S(e.$slots.title?"col-md-8":"col px-0")},[a("div",{class:S({"form-row":e.$slots.title})},[g(e.$slots,"default",{},()=>[t[0]||(t[0]=f("*ELEMENT MISSING*",-1))],!0)],2),a("div",et,[l.showHelp?(i(),u("span",tt,[g(e.$slots,"help",{},void 0,!0)])):p("",!0)])],2)],2)}const M=y(Ye,[["render",nt],["__scopeId","data-v-33864f66"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSettingElement.vue"]]),st=Object.freeze(Object.defineProperty({__proto__:null,default:M},Symbol.toStringTag,{value:"Module"}));$.add(fe,_e,J,ge);const ot={name:"OpenwbArrayInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!0,default:"#TITLE#"},modelValue:{type:Array,default:()=>[]},noElementsMessage:{type:String,default:()=>"Keine Elemente zugeordnet."},noInput:{type:Boolean,default:()=>!1}},emits:["update:modelValue"],data(){return{newTag:"",showHelp:!1}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},newTagValid:{get(){var e;return this.newTag.length>0&&!this.value.includes(this.newTag)&&((e=this.$refs.tagInput)==null?void 0:e.checkValidity())}}},methods:{addTag(){if(this.newTagValid){const e=[...this.value,this.newTag].sort();this.value=e,this.newTag=""}this.$refs.tagInput.focus()},removeTag(e){let t=[...this.value];t.splice(e,1),this.value=t}}},at={key:0,class:"w-100"},it={class:"input-group"},lt={class:"input-group-prepend"},rt={class:"input-group-text"},dt={class:"input-group-append"},ut={class:"tagList mt-1 w-100"},ct={key:0,class:"noTag"};function pt(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[n.noInput?p("",!0):(i(),u("div",at,[a("div",it,[a("div",lt,[a("div",rt,[g(e.$slots,"input-prefix",{},()=>[_(o,{icon:["fas","tag"]})],!0)])]),B(a("input",O({ref:"tagInput","onUpdate:modelValue":t[0]||(t[0]=r=>l.newTag=r),type:"text",class:"form-control"},e.$attrs,{onKeyup:t[1]||(t[1]=te((...r)=>s.addTag&&s.addTag(...r),["enter"]))}),null,16),[[I,l.newTag]]),a("div",dt,[a("div",{class:S(["input-group-text",s.newTagValid?"bg-success clickable":"not-clickable"]),onClick:t[2]||(t[2]=(...r)=>s.addTag&&s.addTag(...r))},[g(e.$slots,"input-add",{},()=>[_(o,{icon:["fas","plus"]})],!0)],2)])])])),a("div",ut,[s.value.length==0?(i(),u("span",ct,[_(o,{icon:["fas","info-circle"]}),f(" "+v(n.noElementsMessage),1)])):p("",!0),(i(!0),u(T,null,x(s.value,(r,w)=>(i(),u("span",{key:w,class:"tag"},[g(e.$slots,"element-prefix",{},()=>[_(o,{icon:["fas","tag"]})],!0),f(" "+v(r)+" ",1),n.noInput?p("",!0):(i(),h(o,{key:0,class:"clickable remove-element",icon:["fas","times-circle"],onClick:V=>s.removeTag(w)},null,8,["onClick"]))]))),128))])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const mt=y(ot,[["render",pt],["__scopeId","data-v-9de93d37"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseArrayInput.vue"]]),ft=Object.freeze(Object.defineProperty({__proto__:null,default:mt},Symbol.toStringTag,{value:"Module"}));const _t={name:"OpenwbAvatar"},gt={class:"avatar"};function bt(e,t,n,d,l,s){return i(),u("div",gt,[g(e.$slots,"default",{},()=>[t[0]||(t[0]=f("?",-1))],!0)])}const ht=y(_t,[["render",bt],["__scopeId","data-v-06082a1a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAvatar.vue"]]),vt=Object.freeze(Object.defineProperty({__proto__:null,default:ht},Symbol.toStringTag,{value:"Module"}));$.add(j);const yt={name:"OpenwbButtonGroupInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Number,Boolean],default:void 0},buttons:{type:Array,required:!0}},emits:["update:modelValue","button-click"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},wt={class:"btn-group btn-block btn-group-toggle"},kt=["value","onClick"];function St(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",wt,[(i(!0),u(T,null,x(n.buttons,r=>(i(),u("label",{key:r.value,class:S(["btn btn-same-size btn-centered",[s.value==r.buttonValue?"active":"",r.class?r.class:"btn-outline-info"]])},[a("span",null,[B(a("input",O({"onUpdate:modelValue":t[0]||(t[0]=w=>s.value=w),type:"radio",value:r.buttonValue},{ref_for:!0},e.$attrs,{onClick:w=>e.$emit("button-click",r.buttonValue)}),null,16,kt),[[ne,s.value]]),g(e.$slots,"label-"+r.buttonValue,{},()=>[f(v(r.text),1)],!0),t[1]||(t[1]=a("span",null," ",-1)),_(o,{icon:["fas","check"],style:se([s.value==r.buttonValue?"visibility: visible":"visibility: hidden"])},null,8,["style"])])],2))),128))])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Ot=y(yt,[["render",St],["__scopeId","data-v-31e583df"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonGroupInput.vue"]]),Bt=Object.freeze(Object.defineProperty({__proto__:null,default:Ot},Symbol.toStringTag,{value:"Module"}));const $t={name:"OpenwbClickButton",props:{title:{type:String,required:!1,default:""},tooltip:{type:String,required:!1,default:""}},emits:["buttonClicked"],methods:{click(e){this.$emit("buttonClicked",e)}}},Ct=["title"];function It(e,t,n,d,l,s){return i(),u("button",{type:"button",class:"btn btn-block",title:n.tooltip,onClick:t[0]||(t[0]=q((...o)=>s.click&&s.click(...o),["prevent"]))},[g(e.$slots,"default",{},()=>[f(v(n.title),1)],!0)],8,Ct)}const Q=y($t,[["render",It],["__scopeId","data-v-2e9c095b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseClickButton.vue"]]),Tt=Object.freeze(Object.defineProperty({__proto__:null,default:Q},Symbol.toStringTag,{value:"Module"})),Vt={name:"OpenwbButtonInput",components:{OpenwbBaseSettingElement:M,OpenwbBaseClickButton:Q},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},buttonText:{type:String,required:!1,default:void 0},disabled:{type:Boolean,default:!1},subtype:{type:String,validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}},emits:["buttonClicked"],methods:{handleClick(e){this.$emit("buttonClicked",e)}}};function At(e,t,n,d,l,s){const o=b("openwb-base-click-button"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),default:c(()=>[_(o,O({class:(n.disabled?"btn-outline-":"btn-")+n.subtype,disabled:n.disabled},e.$attrs,{onButtonClicked:s.handleClick}),{default:c(()=>[f(v(n.buttonText),1)]),_:1},16,["class","disabled","onButtonClicked"])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"0"}:void 0]),1024)}const Mt=y(Vt,[["render",At],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonInput.vue"]]),Pt=Object.freeze(Object.defineProperty({__proto__:null,default:Mt},Symbol.toStringTag,{value:"Module"}));$.add(be,he);const xt={name:"OpenwbCard",components:{FontAwesomeIcon:C},inheritAttrs:!1,props:{title:{type:String,default:void 0},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark","pink","white"].indexOf(e)!==-1},default:"secondary"},bodyBg:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark","pink","white"].indexOf(e)!==-1},default:"light"},collapsible:{type:Boolean,default:!1},collapsed:{type:Boolean,default:!1}},emits:["collapsed","expanded"],data(){return{isCollapsed:this.collapsible&&this.collapsed}},methods:{toggleBody(){this.collapsible===!0&&(this.isCollapsed=!this.isCollapsed,this.$emit(this.isCollapsed?"collapsed":"expanded"))}}},qt={class:"form-group mb-0"},Dt={class:"form-row vaRow mb-0 py-2"},Et={class:"col"},Lt={class:"card-actions ml-4"},jt={key:0,class:"card-actions mr-2"},Wt={key:2,class:"card-footer"};function Rt(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("div",{class:S(["card","border-"+n.subtype])},[n.title!==void 0||e.$slots.header?(i(),u("div",{key:0,class:S(["card-header py-1","bg-"+n.subtype]),onClick:t[0]||(t[0]=(...m)=>s.toggleBody&&s.toggleBody(...m))},[a("div",qt,[a("div",Dt,[a("div",Et,[g(e.$slots,"header",{collapsed:l.isCollapsed},()=>[f(v(n.title),1)],!0)])])]),a("div",Lt,[e.$slots.actions?(i(),u("div",jt,[g(e.$slots,"actions",{collapsed:l.isCollapsed},void 0,!0)])):p("",!0),n.collapsible?(i(),h(o,{key:1,icon:l.isCollapsed?["fas","chevron-right"]:["fas","chevron-down"]},null,8,["icon"])):p("",!0)])],2)):p("",!0),l.isCollapsed===!1?(i(),u("div",O({key:1,class:["card-body",[n.title==null&&!e.$slots.header?"border-radius-top-inherit":"",e.$slots.footer?"":"border-radius-bottom-inherit","bg-"+n.bodyBg]]},e.$attrs),[g(e.$slots,"default",{},void 0,!0)],16)):p("",!0),e.$slots.footer&&l.isCollapsed===!1?(i(),u("div",Wt,[g(e.$slots,"footer",{},void 0,!0)])):p("",!0)],2)}const Nt=y(xt,[["render",Rt],["__scopeId","data-v-9833c353"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCard.vue"]]),zt=Object.freeze(Object.defineProperty({__proto__:null,default:Nt},Symbol.toStringTag,{value:"Module"})),Ft={name:"OpenwbCheckboxInput",components:{OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Boolean}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},Ht={class:"col-md-8"};function Ut(e,t,n,d,l,s){const o=b("openwb-base-setting-element");return i(),h(o,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),default:c(()=>[a("div",Ht,[B(a("input",O({"onUpdate:modelValue":t[0]||(t[0]=m=>s.value=m),class:"form-control",type:"checkbox"},e.$attrs),null,16),[[oe,s.value]])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"0"}:void 0]),1024)}const Gt=y(Ft,[["render",Ut],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCheckboxInput.vue"]]),Jt=Object.freeze(Object.defineProperty({__proto__:null,default:Gt},Symbol.toStringTag,{value:"Module"}));$.add(ve);const Kt={name:"OpenwbColorPicker",components:{FontAwesomeIcon:C},props:{defaultColor:{type:String,required:!1,default:void 0,validator:e=>/^#[0-9A-F]{6}$/i.test(e)},modelValue:{type:String,required:!1,default:"#000000",validator:e=>/^#[0-9A-F]{6}$/i.test(e)}},emits:["update:model-value"],methods:{changed(e){this.$emit("update:model-value",e)}}},Zt={class:"wrapper"},Qt=["value","title"];function Yt(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("div",Zt,[a("input",{type:"color",class:"custom-color-picker",value:n.modelValue,title:`Farbe: ${n.modelValue}`,onInput:t[0]||(t[0]=m=>s.changed(m.target.value))},null,40,Qt),n.defaultColor?(i(),h(o,{key:0,class:"ml-1 clickable",icon:["fas","rotate-left"],title:`Zurücksetzen auf Standardfarbe (${n.defaultColor})`,onClick:t[1]||(t[1]=m=>s.changed(n.defaultColor))},null,8,["title"])):p("",!0)])}const Xt=y(Kt,[["render",Yt],["__scopeId","data-v-1378b599"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseColorPicker.vue"]]),en=Object.freeze(Object.defineProperty({__proto__:null,default:Xt},Symbol.toStringTag,{value:"Module"}));const{text:z,copy:tn,copied:nn,isSupported:sn}=ae({copiedDuring:3e3,legacy:!0});$.add(ye,we);const on={name:"OpenwbCopyToClipboard",components:{FontAwesomeIcon:C},props:{tooltip:{type:String,default:"Wert kopieren"}},data(){return{}},computed:{contentText(){return this.$refs.content?this.$refs.content.innerText.trim():""},isCopied(){return nn.value&&z.value===this.contentText},copySupported(){return sn.value}},methods:{click(){this.copySupported&&tn(this.contentText).then(()=>{console.debug("Text copied to clipboard:",z.value)}).catch(e=>{console.error("Failed to copy text to clipboard:",e)})}}},an=["title"],ln={ref:"content"};function rn(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u("span",{title:s.copySupported&&!s.isCopied?n.tooltip:"",class:S({"copy-me":s.copySupported&&!s.isCopied}),onClick:t[0]||(t[0]=q((...m)=>s.click&&s.click(...m),["stop"]))},[a("span",ln,[g(e.$slots,"default",{},void 0,!0)],512),s.copySupported?(i(),h(o,{key:0,class:"ml-1",icon:s.isCopied?["fas","clipboard-check"]:["fas","clipboard"]},null,8,["icon"])):p("",!0)],10,an)}const dn=y(on,[["render",rn],["__scopeId","data-v-81826ebe"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCopyToClipboard.vue"]]),un=Object.freeze(Object.defineProperty({__proto__:null,default:dn},Symbol.toStringTag,{value:"Module"}));$.add(U,G,j);const cn={name:"OpenwbHeading",components:{FontAwesomeIcon:C},inheritAttrs:!1,data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},pn={class:"heading-text"},mn={key:0,class:"actions"},fn={class:""},_n={key:0,class:"form-row alert alert-info small flex-fill"};function gn(e,t,n,d,l,s){const o=b("font-awesome-icon");return i(),u(T,null,[a("div",O({class:"card-text card-text-heading"},e.$attrs),[a("div",pn,[g(e.$slots,"default",{},void 0,!0),e.$slots.help?(i(),h(o,{key:0,icon:l.showHelp?["fas","question-circle"]:["far","question-circle"],class:S(["clickable",l.showHelp?"text-info":""]),onClick:q(s.toggleHelp,["stop"])},null,8,["icon","class","onClick"])):p("",!0)]),e.$slots.actions?(i(),u("span",mn,[g(e.$slots,"actions",{},void 0,!0)])):p("",!0)],16),a("div",fn,[l.showHelp?(i(),u("span",_n,[g(e.$slots,"help",{},void 0,!0)])):p("",!0)])],64)}const bn=y(cn,[["render",gn],["__scopeId","data-v-cbe4e96e"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseHeading.vue"]]),hn=Object.freeze(Object.defineProperty({__proto__:null,default:bn},Symbol.toStringTag,{value:"Module"}));$.add(ke,Se,Oe,Be);const E={null:{value:null,icon:["fas","question"],iconClass:"text-secondary",title:"Nicht relevant",nextValue:!0},true:{value:!0,icon:["fas","square"],iconClass:"",title:"Geschlossen",nextValue:!1},false:{value:!1,icon:["far","square"],iconClass:"",title:"Offen",nextValue:null}},vn={name:"OpenwbIoPattern",components:{FontAwesomeIcon:C},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Array,required:!1,default:()=>[]}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}},methods:{getIcon(e){return E[e].icon},getIconClass(e){return E[e].iconClass},getTitle(e){return E[e].title},toggleInput(e,t){this.value[e]=E[t].nextValue}}};function yn(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),default:c(()=>[(i(!0),u(T,null,x(s.value,(r,w)=>(i(),u("span",{key:w},[_(o,{title:s.getTitle(r),icon:s.getIcon(r),class:S([s.getIconClass(r),"fa-fw clickable"]),size:"2x",transform:r=="undefined"?"shrink-6":null,mask:r=="undefined"?["fas","square"]:null,onClick:q(V=>s.toggleInput(w,r),["stop","prevent"]),onMousedown:t[0]||(t[0]=q(()=>{},["stop","prevent"])),onMouseup:t[1]||(t[1]=q(()=>{},["stop","prevent"]))},null,8,["title","icon","class","transform","mask","onClick"])]))),128))]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"0"}:void 0]),1024)}const wn=y(vn,[["render",yn],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseIoPattern.vue"]]),kn=Object.freeze(Object.defineProperty({__proto__:null,default:wn},Symbol.toStringTag,{value:"Module"})),Sn={name:"OpenwbModalDialog",props:{title:{type:String,required:!1,default:""},subtype:{type:String,validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"},buttons:{type:Array,default:void 0},footerAlignment:{type:String,validator:function(e){return["around","between","center","end","start"].indexOf(e)!==-1},default:"end"},preventClose:{type:Boolean,default:!1},show:{type:Boolean,default:!1}},emits:["modal-result"],computed:{myButtons(){var e=[];return this.buttons!==void 0&&(e=this.buttons),this.preventClose||e.push({text:"Schließen",event:"close"}),e}},methods:{handleClick(e){e.stopPropagation();let t=e.target.getAttribute("data-event");t===null&&(t="close"),(t!="close"||!this.preventClose)&&this.$emit("modal-result",t)}}},On={class:"modal-dialog modal-dialog-centered modal-dialog-scrollable",role:"document"},Bn={class:"modal-content"},$n={class:"modal-title"},Cn={class:"modal-body"},In=["data-event"];function Tn(e,t,n,d,l,s){return n.show?(i(),h(H,{key:0,to:"body"},[t[4]||(t[4]=a("div",{class:"modal-backdrop fade show"},null,-1)),a("div",{class:"modal fade d-block show",role:"dialog",onClick:t[2]||(t[2]=(...o)=>s.handleClick&&s.handleClick(...o))},[a("div",On,[a("div",Bn,[a("div",{class:S(["modal-header","bg-"+n.subtype])},[a("h4",$n,v(n.title),1),n.preventClose?p("",!0):(i(),u("button",{key:0,type:"button",class:"close",onClick:t[0]||(t[0]=(...o)=>s.handleClick&&s.handleClick(...o))}," × "))],2),a("div",Cn,[g(e.$slots,"default",{},()=>[t[3]||(t[3]=f("# Body #",-1))])]),s.myButtons.length>0?(i(),u("div",{key:0,class:S(["modal-footer d-flex","justify-content-"+n.footerAlignment])},[(i(!0),u(T,null,x(s.myButtons,o=>(i(),u("button",{key:o.text,type:"button",class:S(["btn",o.subtype?"btn-"+o.subtype:"btn-secondary"]),"data-dismiss":"modal","data-event":o.event?o.event:"close",onClick:t[1]||(t[1]=(...m)=>s.handleClick&&s.handleClick(...m))},v(o.text),11,In))),128))],2)):p("",!0)])])])])):p("",!0)}const Vn=y(Sn,[["render",Tn],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseModalDialog.vue"]]),An=Object.freeze(Object.defineProperty({__proto__:null,default:Vn},Symbol.toStringTag,{value:"Module"}));$.add($e);const Mn={name:"OpenwbNumberInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Number,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},precision:{type:Number,default:void 0},emptyValue:{type:[Number,null],required:!1,default:null}},emits:["update:modelValue"],computed:{value:{get(){return this.precision!==void 0?parseFloat(Math.round(this.modelValue*Math.pow(10,this.precision))/Math.pow(10,this.precision)):this.modelValue},set(e){(isNaN(e)||typeof e!="number")&&(e=this.emptyValue),this.$emit("update:modelValue",e)}}}},Pn={class:"input-group"},xn={class:"input-group-prepend"},qn={class:"input-group-text"},Dn={key:0,class:"input-group-append"},En={class:"input-group-text"},Ln={key:1,class:"input-group-append"},jn={class:"input-group-text p-0"};function Wn(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",Pn,[a("div",xn,[a("div",qn,[_(o,{icon:["fas","calculator"]})])]),B(a("input",O({"onUpdate:modelValue":t[0]||(t[0]=r=>s.value=r),type:"number",class:"form-control"},e.$attrs),null,16),[[I,s.value,void 0,{number:!0}]]),n.unit?(i(),u("div",Dn,[a("div",En,v(n.unit),1)])):p("",!0),e.$slots.append?(i(),u("div",Ln,[a("div",jn,[g(e.$slots,"append",{},void 0,!0)])])):p("",!0)])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Rn=y(Mn,[["render",Wn],["__scopeId","data-v-c2fb7eef"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseNumberInput.vue"]]),Nn=Object.freeze(Object.defineProperty({__proto__:null,default:Rn},Symbol.toStringTag,{value:"Module"}));$.add(Ce,Ie);const zn={name:"OpenwbRangeInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Number,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},min:{type:Number,required:!0,default:0},max:{type:Number,required:!0,default:100},step:{type:Number,required:!1,default:1},labels:{type:Array,required:!1,default:void 0}},emits:["update:modelValue"],computed:{label(){var e;return this.labels&&this.sliderValue!=null?this.sliderValue[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",Fn,[a("div",Hn,[s.label?(i(),u("label",Un,v(s.label),1)):p("",!0),a("button",{class:"col-1 btn btn-block btn-info",type:"button",onClick:t[0]||(t[0]=(...r)=>s.decrement&&s.decrement(...r))},[_(o,{icon:["fas","step-backward"]})]),a("div",Gn,[B(a("input",O({"onUpdate:modelValue":t[1]||(t[1]=r=>s.sliderValue=r),type:"range",class:"form-control-range rangeInput",min:n.min,max:n.max,step:n.step},e.$attrs),null,16,Jn),[[I,s.sliderValue,void 0,{number:!0}]])]),a("button",{class:"col-1 btn btn-block btn-info",type:"button",onClick:t[2]||(t[2]=(...r)=>s.increment&&s.increment(...r))},[_(o,{icon:["fas","step-forward"]})])])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Zn=y(zn,[["render",Kn],["__scopeId","data-v-449fb0a5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseRangeInput.vue"]]),Qn=Object.freeze(Object.defineProperty({__proto__:null,default:Zn},Symbol.toStringTag,{value:"Module"}));$.add(J);const Yn={name:"OpenwbSelectInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:void 0},modelValue:{type:[String,Number,Array,null],required:!1,default:void 0},emptyValue:{type:[String,Number,Array],required:!1,default:void 0},groups:{type:Array,required:!1,default:void 0},options:{type:Array,required:!1,default:void 0},notSelected:{type:String,default:void 0},addButton:{type:Boolean,default:!1}},emits:["update:modelValue","input:add"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},addDisabled:{get(){return this.value===void 0}}},methods:{addClicked(){this.addDisabled||this.$emit("input:add")}}},Xn={class:"w-100"},es={class:"input-group"},ts={key:0,class:"input-group-prepend"},ns={class:"input-group-text"},ss=["value"],os=["value"],as=["label"],is=["value"],ls={key:1,class:"input-group-append"};function rs(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({default:c(()=>[a("div",Xn,[a("div",es,[e.$slots.prefix?(i(),u("div",ts,[a("div",ns,[g(e.$slots,"prefix")])])):p("",!0),B(a("select",O({"onUpdate:modelValue":t[0]||(t[0]=r=>s.value=r),class:"col form-control"},e.$attrs),[n.notSelected!==void 0?(i(),u("option",{key:0,value:n.emptyValue,disabled:""}," -- "+v(n.notSelected)+" -- ",9,ss)):p("",!0),(i(!0),u(T,null,x(n.options,r=>(i(),u("option",{key:r.value,value:r.value},v(r.text),9,os))),128)),(i(!0),u(T,null,x(n.groups,r=>(i(),u("optgroup",{key:r.label,label:r.label},[(i(!0),u(T,null,x(r.options,w=>(i(),u("option",{key:w.value,value:w.value},v(w.text),9,is))),128))],8,as))),128))],16),[[ie,s.value]]),n.addButton?(i(),u("div",ls,[a("div",{class:S(["input-group-text",s.addDisabled?"not-clickable":"bg-success clickable"]),onClick:t[1]||(t[1]=r=>s.addClicked())},[g(e.$slots,"inputAdd",{},()=>[_(o,{icon:["fas","plus"]})])],2)])):p("",!0)])])]),_:2},[e.$slots.title||n.title?{name:"title",fn:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)])]),key:"0"}:void 0,e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help")]),key:"1"}:void 0]),1024)}const ds=y(Yn,[["render",rs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSelectInput.vue"]]),us=Object.freeze(Object.defineProperty({__proto__:null,default:ds},Symbol.toStringTag,{value:"Module"}));$.add(j,Te,Ve);const cs={name:"OpenwbSubmitButtons",components:{FontAwesomeIcon:C},props:{formName:{type:String,default:void 0},hideReset:{type:Boolean,default:!1},hideDefaults:{type:Boolean,default:!0}},emits:["reset","defaults","save"],data(){return{showModalReset:!1,showModalDefaults:!1}},computed:{showModalSave(){return this.$store.state.local.savingData}},methods:{showResetModal(){this.showModalReset=!0},handleModalReset(e){this.showModalReset=!1,e=="confirm"&&this.$emit("reset")},showDefaultsModal(){this.showModalDefaults=!0},handleModalDefaults(e){this.showModalDefaults=!1,e=="confirm"&&this.$emit("defaults")},saveSettings(){if(this.formName){if(!document.forms[this.formName].reportValidity()){console.debug("form invalid");return}}else console.debug("no form to validate");this.$emit("save")}}},ps={class:"row justify-content-center mb-1"},ms={class:"col-md-4 d-flex py-1 justify-content-center"},fs={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},_s={key:1,class:"col-md-4 d-flex py-1 justify-content-center"};function gs(e,t,n,d,l,s){const o=b("openwb-base-modal-dialog"),m=b("font-awesome-icon");return i(),u(T,null,[_(o,{show:s.showModalSave,title:"Speichern",subtype:"success","prevent-close":!0},{default:c(()=>[...t[3]||(t[3]=[f(" Einstellungen werden gespeichert... ",-1)])]),_:1},8,["show"]),_(o,{show:l.showModalReset,title:"Änderungen verwerfen",subtype:"warning",buttons:[{text:"Ok",event:"confirm",subtype:"warning"}],onModalResult:s.handleModalReset},{default:c(()=>[...t[4]||(t[4]=[f(" Wollen Sie die nicht gespeicherten Änderungen wirklich verwerfen? ",-1)])]),_:1},8,["show","onModalResult"]),_(o,{show:l.showModalDefaults,title:"Werkseinstellungen",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"danger"}],onModalResult:s.handleModalDefaults},{default:c(()=>[...t[5]||(t[5]=[f(" Wollen Sie wirklich alle Werte dieser Seite auf die Werkseinstellungen zurücksetzen? ",-1)])]),_:1},8,["show","onModalResult"]),a("div",ps,[a("div",ms,[a("button",{id:"saveSettingsBtn",type:"button",class:"btn btn-block btn-success",onClick:t[0]||(t[0]=(...r)=>s.saveSettings&&s.saveSettings(...r))},[t[6]||(t[6]=f(" Speichern ",-1)),_(m,{icon:["fas","check"]})])]),n.hideReset?p("",!0):(i(),u("div",fs,[a("button",{id:"modalResetBtn",type:"button",class:"btn btn-block btn-warning",onClick:t[1]||(t[1]=(...r)=>s.showResetModal&&s.showResetModal(...r))},[t[7]||(t[7]=f(" Änderungen verwerfen ",-1)),_(m,{icon:["fas","undo"]})])])),n.hideDefaults?p("",!0):(i(),u("div",_s,[a("button",{id:"modalDefaultsBtn",type:"button",class:"btn btn-block btn-danger",onClick:t[2]||(t[2]=(...r)=>s.showDefaultsModal&&s.showDefaultsModal(...r))},[t[8]||(t[8]=f(" Werkseinstellungen ",-1)),_(m,{icon:["fas","times"]})])]))])],64)}const bs=y(cs,[["render",gs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSubmitButtons.vue"]]),hs=Object.freeze(Object.defineProperty({__proto__:null,default:bs},Symbol.toStringTag,{value:"Module"}));$.add(K,Ae,Me,Pe,xe,Z,qe,De,Ee,Le,je,We);const vs={name:"OpenwbTextInput",components:{FontAwesomeIcon:C,OpenwbBaseSettingElement:M},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Object],required:!1,default:void 0},subtype:{validator:function(e){return["text","email","host","url","user","json","password","time","date","month","year"].indexOf(e)!==-1},default:"text"},pattern:{type:String,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},emptyValue:{type:[String,Object,null],required:!1,default:null},showQuickButtons:{type:Boolean,default:!1}},emits:["update:modelValue"],data(){return{showPassword:!1,inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.warn("returning invalid String"),this.tempValue):JSON.stringify(this.tempValue):this.modelValue},set(e){if(this.subtype=="json")try{let t=JSON.parse(e);this.inputInvalid=!1,this.$refs.jsonInput.setCustomValidity(""),this.tempValue=t,this.$emit("update:modelValue",t)}catch(t){console.error("parsing JSON failed: "+e,t),this.inputInvalid=!0,this.$refs.jsonInput.setCustomValidity("Ungültiger JSON Ausdruck!"),this.tempValue=e}else e==""&&(e=this.emptyValue),this.$emit("update:modelValue",e)}},inputRef(){switch(this.subtype){case"json":return this.$refs.jsonInput;case"password":return this.$refs.passwordInput;case"host":return this.$refs.hostInput;case"email":case"url":return this.$refs.urlInput;case"time":return this.$refs.timeInput;case"date":return this.$refs.dateInput;case"month":return this.$refs.monthInput;case"year":return this.$refs.yearInput}return this.$refs.textInput},hostPattern(){return"(^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$)|(^(?=.*[a-zA-Z].*$)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])$)|(^((?=[^.]*[a-zA-Z][^.]*\\.)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]\\.))+((?=[^.]*[a-zA-Z].*$)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]))$)"}},methods:{togglePassword(){this.showPassword=!this.showPassword},modify(e){var t,n=new Date(this.modelValue);switch(this.subtype){case"date":n.setDate(n.getDate()+e),t=String(n.getFullYear())+"-"+String(n.getMonth()+1).padStart(2,"0")+"-"+String(n.getDate()).padStart(2,"0");break;case"month":n.setMonth(n.getMonth()+e),t=String(n.getFullYear())+"-"+String(n.getMonth()+1).padStart(2,"0");break;case"year":n.setYear(n.getFullYear()+e),t=String(n.getFullYear());break;default:console.warn(`cannot modify input of subtype '${this.subtype}'`);return}t>this.inputRef.max||t[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",ys,[a("div",ws,[a("div",ks,[a("div",Ss,[n.subtype=="text"?(i(),h(o,{key:0,icon:["fas","keyboard"]})):p("",!0),n.subtype=="email"?(i(),h(o,{key:1,icon:["fas","envelope"]})):p("",!0),n.subtype=="host"?(i(),h(o,{key:2,icon:["fas","network-wired"]})):p("",!0),n.subtype=="url"?(i(),h(o,{key:3,icon:["fas","globe"]})):p("",!0),n.subtype=="user"?(i(),h(o,{key:4,icon:["fas","user"]})):p("",!0),n.subtype=="json"?(i(),h(o,{key:5,icon:["fas","code"]})):p("",!0),n.subtype=="password"?(i(),h(o,{key:6,icon:l.showPassword?["fas","unlock"]:["fas","lock"]},null,8,["icon"])):p("",!0),n.subtype=="time"?(i(),h(o,{key:7,icon:["fas","clock"]})):p("",!0),n.subtype=="date"||n.subtype=="month"||n.subtype=="year"?(i(),h(o,{key:8,icon:["fas","calendar-day"]})):p("",!0)])]),["text","user"].includes(n.subtype)?B((i(),u("input",O({key:0,ref:"textInput","onUpdate:modelValue":t[0]||(t[0]=r=>s.value=r),type:"text",class:["form-control",{invalid:l.inputInvalid}]},e.$attrs,{pattern:n.pattern}),null,16,Os)),[[I,s.value]]):p("",!0),n.subtype=="json"?B((i(),u("input",O({key:1,ref:"jsonInput","onUpdate:modelValue":t[1]||(t[1]=r=>s.value=r),type:"text",class:"form-control"},e.$attrs,{pattern:n.pattern}),null,16,Bs)),[[I,s.value]]):p("",!0),n.subtype=="password"?B((i(),u("input",O({key:2,ref:"passwordInput","onUpdate:modelValue":t[2]||(t[2]=r=>s.value=r),type:l.showPassword?"text":"password",class:"form-control"},e.$attrs,{pattern:n.pattern}),null,16,$s)),[[N,s.value]]):p("",!0),n.subtype=="host"?B((i(),u("input",O({key:3,ref:"hostInput","onUpdate:modelValue":t[3]||(t[3]=r=>s.value=r),type:"text",class:"form-control"},e.$attrs,{pattern:s.hostPattern}),null,16,Cs)),[[I,s.value]]):p("",!0),["email","url"].includes(n.subtype)?B((i(),u("input",O({key:4,"onUpdate:modelValue":t[4]||(t[4]=r=>s.value=r),refs:"urlInput",type:n.subtype,class:"form-control"},e.$attrs),null,16,Is)),[[N,s.value]]):p("",!0),n.subtype=="time"?B((i(),u("input",O({key:5,ref:"timeInput","onUpdate:modelValue":t[5]||(t[5]=r=>s.value=r),type:"time",class:"form-control"},e.$attrs),null,16)),[[I,s.value]]):p("",!0),n.subtype=="date"?B((i(),u("input",O({key:6,ref:"dateInput","onUpdate:modelValue":t[6]||(t[6]=r=>s.value=r),type:"date",class:"form-control"},e.$attrs),null,16)),[[I,s.value]]):p("",!0),n.subtype=="month"?B((i(),u("input",O({key:7,ref:"monthInput","onUpdate:modelValue":t[7]||(t[7]=r=>s.value=r),type:"month",class:"form-control"},e.$attrs),null,16)),[[I,s.value]]):p("",!0),n.subtype=="year"?B((i(),u("input",O({key:8,ref:"yearInput","onUpdate:modelValue":t[8]||(t[8]=r=>s.value=r),type:"number",class:"form-control"},e.$attrs),null,16)),[[I,s.value]]):p("",!0),n.unit?(i(),u("div",Ts,[a("div",Vs,v(n.unit),1)])):p("",!0),n.subtype=="password"?(i(),u("div",{key:10,class:"input-group-append clickable",onClick:t[9]||(t[9]=(...r)=>s.togglePassword&&s.togglePassword(...r))},[a("div",As,[_(o,{icon:l.showPassword?["far","eye"]:["far","eye-slash"]},null,8,["icon"])])])):p("",!0),n.showQuickButtons&&(n.subtype=="date"||n.subtype=="month"||n.subtype=="year")?(i(),u("div",{key:11,class:"input-group-append clickable",onClick:t[10]||(t[10]=r=>s.modify(-1))},[...t[12]||(t[12]=[a("div",{class:"input-group-text"},"-",-1)])])):p("",!0),n.showQuickButtons&&(n.subtype=="date"||n.subtype=="month"||n.subtype=="year")?(i(),u("div",{key:12,class:"input-group-append clickable",onClick:t[11]||(t[11]=r=>s.modify(1))},[...t[13]||(t[13]=[a("div",{class:"input-group-text"},"+",-1)])])):p("",!0),e.$slots.append?(i(),u("div",Ms,[a("div",Ps,[g(e.$slots,"append",{},void 0,!0)])])):p("",!0)])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const qs=y(vs,[["render",xs],["__scopeId","data-v-6927d479"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextInput.vue"]]),Ds=Object.freeze(Object.defineProperty({__proto__:null,default:qs},Symbol.toStringTag,{value:"Module"}));$.add(K,Z);const Es={name:"OpenwbTextareaInput",components:{OpenwbBaseSettingElement:M,FontAwesomeIcon:C},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Object],required:!1,default:void 0},subtype:{validator:function(e){return["text","json"].indexOf(e)!==-1},default:"text"}},emits:["update:modelValue"],data(){return{inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.debug("returning invalid JSON as String"),this.tempValue):JSON.stringify(this.tempValue,void 0,2):this.modelValue},set(e){if(this.subtype=="json")try{let t=JSON.parse(e);this.inputInvalid=!1,this.$refs.jsonInput.setCustomValidity(""),this.tempValue=t,this.$emit("update:modelValue",t)}catch(t){console.warn("parsing JSON failed: "+e,t),this.inputInvalid=!0,this.$refs.jsonInput.setCustomValidity("Ungültiger JSON Ausdruck!"),this.tempValue=e}else this.$emit("update:modelValue",e)}},length:{get(){return this.value!==void 0?this.value.length:0}}}},Ls={class:"w-100"},js={class:"input-group"},Ws={class:"input-group-prepend"},Rs={class:"input-group-text"},Ns={key:2,class:"input-group-append"},zs={class:"input-group-text"},Fs={class:"form-text text-muted text-right"};function Hs(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("openwb-base-setting-element");return i(),h(m,null,A({title:c(()=>[g(e.$slots,"title",{},()=>[f(v(n.title),1)],!0)]),default:c(()=>[a("div",Ls,[a("div",js,[a("div",Ws,[a("div",Rs,[n.subtype=="text"?(i(),h(o,{key:0,icon:["fas","keyboard"]})):p("",!0),n.subtype=="json"?(i(),h(o,{key:1,icon:["fas","code"]})):p("",!0)])]),n.subtype==="json"?B((i(),u("textarea",O({key:0,ref:"jsonInput","onUpdate:modelValue":t[0]||(t[0]=r=>s.value=r),class:"form-control"},e.$attrs),null,16)),[[I,s.value,void 0,{lazy:!0}]]):B((i(),u("textarea",O({key:1,"onUpdate:modelValue":t[1]||(t[1]=r=>s.value=r),class:"form-control"},e.$attrs),null,16)),[[I,s.value]]),e.$attrs.maxlength?(i(),u("div",Ns,[a("div",zs,[a("small",Fs,v(s.length)+" / "+v(e.$attrs.maxlength),1)])])):p("",!0)])])]),_:2},[e.$slots.help?{name:"help",fn:c(()=>[g(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Us=y(Es,[["render",Hs],["__scopeId","data-v-3d93046b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextarea.vue"]]),Gs=Object.freeze(Object.defineProperty({__proto__:null,default:Us},Symbol.toStringTag,{value:"Module"}));const Js={name:"OpenwbToast",props:{topic:{type:String,required:!0},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"},source:{type:String,required:!0,validator:function(e){return["system","client","command"].indexOf(e)!==-1}},timestamp:{type:Number,required:!0}},emits:["dismiss","hide"],data(){return{handle:void 0,relativeTime:void 0,hidden:!1}},mounted(){this.handle=window.setInterval(this.updateRelativeTime,1e3)},unmounted(){window.clearInterval(this.handle)},methods:{dismiss(){this.$emit("dismiss",{topic:this.topic})},updateRelativeTime(){const e={year:31536e6,month:2628e6,day:864e5,hour:36e5,minute:6e4,second:1e3};var t=new Intl.RelativeTimeFormat("de",{numeric:"auto"});const d=new Date-this.timestamp*1e3;for(var l in e)if(Math.abs(d)>e[l]){this.relativeTime=t.format(Math.round(-d/e[l]),l);break}d>10*1e3&&!this.hidden&&(this.hidden=!0,this.$emit("hide",{topic:this.topic}))}}},Ks={key:0,class:"time-diff"},Zs={class:"toast-body"};function Qs(e,t,n,d,l,s){return i(),u("div",{class:S(["toast","border-"+n.subtype]),role:"alert"},[a("div",{class:S(["toast-header","bg-"+n.subtype])},[t[2]||(t[2]=a("strong",{class:"pr-2 mr-auto"},"openWB",-1)),n.timestamp?(i(),u("small",Ks,v(l.relativeTime),1)):p("",!0),a("button",{type:"button",class:"ml-2 mb-1 close","data-dismiss":"toast","aria-label":"Close",onClick:t[0]||(t[0]=(...o)=>s.dismiss&&s.dismiss(...o))},[...t[1]||(t[1]=[a("span",{"aria-hidden":"true"},"×",-1)])])],2),a("div",Zs,[g(e.$slots,"default",{},void 0,!0)])],2)}const Ys=y(Js,[["render",Qs],["__scopeId","data-v-c51b5764"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseToast.vue"]]),Xs=Object.freeze(Object.defineProperty({__proto__:null,default:Ys},Symbol.toStringTag,{value:"Module"}));$.add(Re);const eo={name:"OpenwbNavBar",components:{FontAwesomeIcon:C},computed:{nodeEnv(){return"development"}},watch:{$route(){this.$refs.collapsibleNavbar.classList.remove("show"),this.$refs.navbarButton.classList.add("collapsed"),this.$refs.navbarButton.setAttribute("aria-expanded",!1)}}},to={class:"navbar navbar-expand-lg bg-dark navbar-dark fixed-top"},no={ref:"navbarButton",class:"navbar-toggler mr-5",type:"button","data-toggle":"collapse","data-target":"#collapsibleNavbar"},so={id:"collapsibleNavbar",ref:"collapsibleNavbar",class:"collapse navbar-collapse navbar-nav-scroll"},oo={class:"navbar-nav"},ao={class:"nav-item"},io={class:"nav-item dropdown nav-separator-after"},lo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},ro={class:"nav-item dropdown"},uo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},co={class:"nav-item dropdown"},po={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},mo={class:"nav-item dropdown"},fo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},_o={class:"nav-item dropdown"},go={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},bo={class:"nav-item nav-separator-before"},ho={class:"nav-link",href:"https://github.com/openWB/core/wiki",target:"_blank"};function vo(e,t,n,d,l,s){const o=b("router-link"),m=b("font-awesome-icon");return i(),u("nav",to,[t[30]||(t[30]=a("a",{class:"navbar-brand",href:"/openWB/web/"},[a("span",null,"openWB")],-1)),a("button",no,[...t[0]||(t[0]=[a("span",{class:"navbar-toggler-icon"},null,-1)])],512),a("div",so,[a("ul",oo,[a("li",ao,[_(o,{to:"/Status",class:"nav-link","active-class":"active disabled"},{default:c(()=>[...t[1]||(t[1]=[f(" Status ",-1)])]),_:1})]),a("li",io,[t[4]||(t[4]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Auswertungen ",-1)),a("div",lo,[_(o,{to:"/Logging/ChargeLog",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[2]||(t[2]=[f(" Ladeprotokoll ",-1)])]),_:1}),_(o,{to:"/Logging/Chart",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[3]||(t[3]=[f(" Diagramme ",-1)])]),_:1})])]),a("li",ro,[t[8]||(t[8]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Einstellungen ",-1)),a("div",uo,[_(o,{to:"/GeneralConfig",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[5]||(t[5]=[f(" Allgemein ",-1)])]),_:1}),_(o,{to:"/OptionalComponents",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[6]||(t[6]=[f(" Display ",-1)])]),_:1}),_(o,{to:"/IdentificationConfig",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[7]||(t[7]=[f(" Identifikation ",-1)])]),_:1})])]),a("li",co,[t[11]||(t[11]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Ladeeinstellungen ",-1)),a("div",po,[_(o,{to:"/GeneralChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[9]||(t[9]=[f(" Übergreifendes ",-1)])]),_:1}),_(o,{to:"/PVChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[10]||(t[10]=[f(" PV-Laden ",-1)])]),_:1})])]),a("li",mo,[t[19]||(t[19]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Konfiguration ",-1)),a("div",fo,[_(o,{to:"/HardwareInstallation",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[12]||(t[12]=[f(" Geräte und Komponenten ",-1)])]),_:1}),_(o,{to:"/LoadManagementConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[13]||(t[13]=[f(" Lastmanagement ",-1)])]),_:1}),_(o,{to:"/ChargePointInstallation",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[14]||(t[14]=[f(" Ladepunkte ",-1)])]),_:1}),_(o,{to:"/VehicleConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[15]||(t[15]=[f(" Fahrzeuge ",-1)])]),_:1}),_(o,{to:"/IoConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[16]||(t[16]=[f(" Ein-/Ausgänge ",-1)])]),_:1}),t[17]||(t[17]=a("div",{class:"dropdown-divider"},null,-1)),t[18]||(t[18]=a("a",{href:"modules/legacy_smart_home/smarthomeconfig.php",class:"dropdown-item",target:"_blank"}," SmartHome ",-1))])]),a("li",_o,[t[28]||(t[28]=a("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," System ",-1)),a("div",go,[_(o,{to:"/System/InstallAssistant",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[20]||(t[20]=[f(" Einrichtungsassistent ",-1)])]),_:1}),_(o,{to:"/System/CloudConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[21]||(t[21]=[f(" openWB Cloud ",-1)])]),_:1}),_(o,{to:"/System/MqttBridgeConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[22]||(t[22]=[f(" MQTT-Brücken ",-1)])]),_:1}),_(o,{to:"/System/DebugConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[23]||(t[23]=[f(" Fehlersuche ",-1)])]),_:1}),_(o,{to:"/System/Support",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[24]||(t[24]=[f(" Support ",-1)])]),_:1}),_(o,{to:"/System/DataManagement",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[25]||(t[25]=[f(" Datenverwaltung ",-1)])]),_:1}),_(o,{to:"/System/SystemConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[26]||(t[26]=[f(" System ",-1)])]),_:1}),_(o,{to:"/System/LegalSettings",class:"dropdown-item","active-class":"active disabled"},{default:c(()=>[...t[27]||(t[27]=[f(" Rechtliches ",-1)])]),_:1})])]),a("li",bo,[a("a",ho,[t[29]||(t[29]=f(" Wiki ",-1)),_(m,{icon:["fas","external-link-alt"]})])])])],512)])}const yo=y(eo,[["render",vo],["__scopeId","data-v-e7a6d0c0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageNavbar.vue"]]);const wo={name:"OpenwbPageFooter"},ko={id:"footer",class:"footer bg-dark text-light font-small"},So={class:"container text-center"};function Oo(e,t,n,d,l,s){return i(),u("footer",ko,[a("div",So,[a("small",null," Sie befinden sich hier: Einstellungen / "+v(e.$route.meta.heading),1)])])}const Bo=y(wo,[["render",Oo],["__scopeId","data-v-3c9a239a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageFooter.vue"]]),$o={name:"ComponentState",emits:["reset","defaults","save"],data(){return{mqttTopicsToSubscribe:[]}},computed:{weekdays(){return["Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag"]},chargeModes(){return["instant_charging","pv_charging","scheduled_charging","time_charging","eco_charging","stop"]},statusLevel(){return["success","warning","danger"]},stateIcon:{get(){switch(this.$store.state.mqtt[this.baseTopic+"/get/fault_state"]){case 0:return["fas","check-circle"];case 1:return["fas","exclamation-triangle"];case 2:return["fas","times-circle"];default:return["fas","check-circle"]}}}},mounted(){this.mqttTopicsToSubscribe.length>0&&this.$root.doSubscribe(this.mqttTopicsToSubscribe)},unmounted(){this.mqttTopicsToSubscribe.length>0&&this.$root.doUnsubscribe(this.mqttTopicsToSubscribe)},methods:{updateState(e,t,n=void 0){console.debug("updateState:",e,t,n),this.$store.commit({type:"updateTopic",topic:e,objectPath:n,payload:t})},ac_current2dc_power(e){return parseFloat((e*3*230/1e3).toFixed(0))},dc_power2ac_current(e){return parseFloat((e*1e3/230/3).toFixed(2))},getWildcardIndexList(e,t=!1){let n=e;t||(n="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$");let d=Object.keys(this.$store.state.mqtt).filter(l=>l.match(n));return d.forEach((l,s,o)=>{o[s]=parseInt(l.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,""))}),d},getWildcardTopics(e,t=!1){let n=e;return t||(n="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(this.$store.state.mqtt).filter(d=>d.match(n)).reduce((d,l)=>({...d,[l]:this.$store.state.mqtt[l]}),{})},formatDate(e,t={year:"numeric",month:"2-digit",day:"2-digit"}){return new Date(e).toLocaleDateString(void 0,t)},formatNumber(e,t=0,n=t,d=1){if(!(e==null||isNaN(e)))return e=e*d,e.toLocaleString(void 0,{minimumFractionDigits:t,maximumFractionDigits:n})},formatNumberTopic(e,t=0,n=t,d=1){return this.$store.state.mqtt[e]?this.formatNumber(this.$store.state.mqtt[e],t,n,d):"-"},formatPhaseArrayNumberTopic(e,t=0,n=t,d=1){return this.$store.state.mqtt[e]?this.$store.state.mqtt[e].map(l=>this.formatNumber(l,t,n,d)):["-","-","-"]},translateChargeMode(e){switch(e){case"instant_charging":return"Sofort";case"pv_charging":return"PV";case"scheduled_charging":return"Zielladen";case"time_charging":return"Zeitladen";case"eco_charging":return"Eco";case"standby":return"Standby";case"stop":return"Stop";default:return console.warn("unknown charge mode:",e),e}},getFaultStateSubtype(e){const t=this.$store.state.mqtt[e+"/get/fault_state"];if(t===void 0)return"warning";switch(t){case 0:return"success";case 1:return"warning";case 2:return"danger";default:return"dark"}}}},Y=y($o,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/mixins/ComponentState.vue"]]);$.add(Ne,ze);const Co={name:"OpenwbPageMessages",components:{FontAwesomeIcon:C,FontAwesomeLayers:Fe,FontAwesomeLayersText:He},mixins:[Y],data(){return{mqttTopicsToSubscribe:["openWB/system/messages/+","openWB/command/"+this.$root.mqttClientId+"/messages/+"],showAllMessages:!1,hiddenMessages:[]}},computed:{alertLevel(){return this.messages.reduce((t,n)=>((t=="light"&&["info","success","warning","danger"].includes(n.type)||t=="info"&&["success","warning","danger"].includes(n.type)||t=="success"&&["warning","danger"].includes(n.type)||t=="warning"&&n.type=="danger")&&(t=n.type),t),"light")},messages(){const e=[];return this.systemMessages.forEach(t=>{e.push(t)}),this.clientMessages.forEach(t=>{e.push(t)}),e.sort(this.compareMessagesByTimestamp),e},recentMessages(){return this.showAllMessages?this.messages:this.messages.filter(e=>!this.hiddenMessages.includes(e.topic))},messageIndicatorClass(){return"text-"+this.alertLevel},systemMessages(){let e=this.getWildcardTopics("openWB/system/messages/+");var t=[];for(const[n,d]of Object.entries(e))t.push({topic:n,...d});return t},clientMessages(){let e=this.getWildcardTopics("openWB/command/"+this.$root.mqttClientId+"/messages/+");var t=[];for(const[n,d]of Object.entries(e))t.push({topic:n,...d});return t}},methods:{toggleAllMessages(){this.showAllMessages=!this.showAllMessages},compareMessagesByTimestamp(e,t){return t.timestamp-e.timestamp},clearTopic(e){this.$root.doPublish(e,void 0)},dismissMessage(e){this.clearTopic(e.topic);var t=this.hiddenMessages.indexOf(e.topic);t>-1&&this.hiddenMessages.splice(t,1)},dismissAllMessages(){this.messages.forEach(e=>{this.clearTopic(e.topic)}),this.hiddenMessages=[],this.toggleAllMessages()},hideMessage(e){this.hiddenMessages.includes(e.topic)||this.hiddenMessages.push(e.topic)}}},Io=["innerHTML"];function To(e,t,n,d,l,s){const o=b("font-awesome-icon"),m=b("font-awesome-layers-text"),r=b("font-awesome-layers"),w=b("openwb-base-alert"),V=b("openwb-base-click-button"),D=b("openwb-base-toast");return i(),u(T,null,[(i(),h(H,{to:"body"},[a("div",{id:"message-indicator",class:S(["text-light mt-1 p-2 mr-1 clickable",l.showAllMessages?"active":""]),onClick:t[0]||(t[0]=(...P)=>s.toggleAllMessages&&s.toggleAllMessages(...P))},[_(r,{"full-width":"",style:{"font-size":"175%"}},{default:c(()=>[_(o,{icon:l.showAllMessages?["fas","bell"]:["far","bell"],class:S(s.messageIndicatorClass)},null,8,["icon","class"]),s.messages.length>0?(i(),h(m,{key:0,counter:"",value:s.messages.length,position:"top-right",class:"message-counter bg-light text-dark"},null,8,["value"])):p("",!0)]),_:1})],2)])),s.recentMessages.length>0||l.showAllMessages?(i(),u("div",{key:0,class:S(["openwb-toast-container",l.showAllMessages?"full-height":""])},[s.recentMessages.length==0?(i(),h(w,{key:0,subtype:"info"},{default:c(()=>[...t[1]||(t[1]=[f(" Keine Nachrichten vorhanden. ",-1)])]),_:1})):l.showAllMessages?(i(),h(V,{key:1,class:"btn-sm btn-secondary mb-1",onButtonClicked:s.dismissAllMessages},{default:c(()=>[...t[2]||(t[2]=[f(" Alle Nachrichten löschen ",-1)])]),_:1},8,["onButtonClicked"])):p("",!0),(i(!0),u(T,null,x(s.recentMessages,P=>(i(),h(D,{key:P.topic,topic:P.topic,source:P.source,subtype:P.type,timestamp:P.timestamp,onDismiss:s.dismissMessage,onHide:s.hideMessage},{default:c(()=>[a("span",{innerHTML:P.message},null,8,Io)]),_:2},1032,["topic","source","subtype","timestamp","onDismiss","onHide"]))),128))],2)):p("",!0)],64)}const Vo=y(Co,[["render",To],["__scopeId","data-v-2c25f0d0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageMessages.vue"]]),Ao={name:"OpenwbPageBlocker",mixins:[Y],data(){return{mqttTopicsToSubscribe:["openWB/system/boot_done","openWB/system/update_in_progress"]}},computed:{title(){return this.bootInProgress||this.updateInProgress?"openWB ist noch nicht bereit":this.reloadRequired?"Neues Laden der Seite erforderlich":"???"},myButtons(){return!(this.bootInProgress||this.updateInProgress)&&this.reloadRequired?[{text:"Jetzt neu laden",subtype:"success",event:"reload"}]:[]},bootInProgress(){return this.$store.state.mqtt["openWB/system/boot_done"]==null?!0:!this.$store.state.mqtt["openWB/system/boot_done"]},updateInProgress(){return this.$store.state.mqtt["openWB/system/update_in_progress"]==null?!1:this.$store.state.mqtt["openWB/system/update_in_progress"]},reloadRequired(){return this.$store.state.local.reloadRequired},showModalBlocker(){return this.bootInProgress||this.updateInProgress||this.reloadRequired}},methods:{handleModalResult(e){e=="reload"?location.reload():console.warn("unknown event",e)}}},Mo={class:"openwb-blocker"},Po={key:0},xo={key:1},qo={key:2},Do={key:3};function Eo(e,t,n,d,l,s){const o=b("openwb-base-modal-dialog");return i(),u("div",Mo,[_(o,{show:s.showModalBlocker,title:s.title,subtype:"dark","prevent-close":!0,buttons:s.myButtons,onModalResult:t[0]||(t[0]=m=>s.handleModalResult(m))},{default:c(()=>[s.bootInProgress?(i(),u("p",Po,"Der Systemstart ist noch nicht abgeschlossen.")):p("",!0),s.updateInProgress?(i(),u("p",xo,"Es wird eine Systemaktualisierung ausgeführt.")):p("",!0),!(s.bootInProgress||s.updateInProgress)&&s.reloadRequired?(i(),u("p",qo,"Bitte die Seite neu laden.")):(i(),u("p",Do,"Bitte warten..."))]),_:1},8,["show","title","buttons"])])}const Lo=y(Ao,[["render",Eo],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageBlocker.vue"]]);const jo={name:"OpenwbSettingsApp",components:{NavBar:yo,PageFooter:Bo,Messages:Vo,Blocker:Lo},data(){return{client:{connected:!1},connection:{protocol:location.protocol=="https:"?"wss":"ws",host:location.hostname,port:parseInt(location.port)||(location.protocol=="https:"?443:80),endpoint:"/ws",connectTimeout:4e3,reconnectPeriod:4e3}}},computed:{mqttClientId(){try{return this.client.options.clientId}catch(e){console.error("mqttClientId error",e);return}},topicList(){return Object.keys(this.$store.state.mqtt)}},created(){this.createConnection()},methods:{async saveValues(e=void 0){function t(d){return new Promise(l=>setTimeout(l,d))}this.$store.state.local.savingData=!0;let n={};e===void 0?(console.debug("no topics defined, so save everything we have in store"),n=this.$store.state.mqtt):Array.isArray(e)?e.forEach(d=>{n[d]=this.$store.state.mqtt[d]}):console.error("expected array, got ",typeof e);for(const[d,l]of Object.entries(n)){let s=d.replace("openWB/","openWB/set/");console.debug("saving data:",s,l),this.doPublish(s,l),await t(100)}this.$store.state.local.savingData=!1},resetValues(e=this.topicList){console.debug("resetting values..."),console.debug("topics: ",e),this.doUnsubscribe(e),this.doSubscribe(e)},setDefaultValues(){console.debug("setting default values... (ToDo)")},sendCommand(e){console.debug("sendCommand:",e),this.doPublish("openWB/set/command/"+this.client.options.clientId+"/todo",e,!1)},createConnection(){const{protocol:e,host:t,port:n,endpoint:d,...l}=this.connection,s=`${e}://${t}:${n}${d}`;console.debug("connecting to broker:",s);try{this.client=le.connect(s,l)}catch(o){console.error("mqtt.connect error",o)}this.client.on("connect",()=>{console.debug("Connection succeeded! ClientId: ",this.client.options.clientId),this.doSubscribe(["openWB/system/usage_terms_acknowledged"]),this.doSubscribe(["openWB/system/installAssistantDone"])}),this.client.on("error",o=>{console.error("Connection failed",o)}),this.client.on("message",(o,m)=>{if(m.toString().length>0){let r;try{r=JSON.parse(m.toString())}catch(w){console.debug("Json parsing failed, fallback to string: ",o,w),r=m.toString()}this.$store.commit("updateTopic",{topic:o,payload:r})}else this.$store.commit("removeTopic",o)})},doSubscribe(e){e.forEach(t=>{this.$store.commit("addSubscription",t),this.$store.getters.subscriptionCount(t)==1?(t.includes("#")||t.includes("+")?console.debug("skipping init of wildcard topic:",t):this.$store.commit("addTopic",{topic:t,payload:void 0}),this.client.subscribe(t,{},n=>{if(n){console.error("Subscribe to topics error",n);return}})):console.debug("Already subscribed to topic: ",t)})},doUnsubscribe(e){e.forEach(t=>{this.$store.commit("removeSubscription",t),this.$store.getters.subscriptionCount(t)==0?(this.client.unsubscribe(t,n=>{n&&console.error("Unsubscribe error",n)}),t.includes("#")||t.includes("+")?(console.debug("expanding wildcard topic:",t),Object.keys(this.getWildcardTopics(t)).forEach(n=>{console.debug("removing wildcardTopic:",n),this.$store.commit("removeTopic",n)})):(console.debug("removing topic:",t),this.$store.commit("removeTopic",t))):console.debug("Still subscribed to topic: ",t)})},doPublish(e,t,n=!0,d=2){let l={qos:d,retain:n};this.client.publish(e,JSON.stringify(t),l,s=>{s&&console.error("Publish error",s)})},postClientMessage(e,t="secondary"){console.debug("postMessage:",e,t);const n=Date.now(),d="openWB/command/"+this.mqttClientId+"/messages/"+n;this.$store.commit({type:"addTopic",topic:d,payload:{message:e,type:t,source:"client",timestamp:Math.floor(n/1e3)}})},getWildcardTopics(e,t=!1){let n=e;return t||(n="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(this.$store.state.mqtt).filter(d=>d.match(n)).reduce((d,l)=>({...d,[l]:this.$store.state.mqtt[l]}),{})}}},Wo={role:"main",class:"container"},Ro={id:"content"};function No(e,t,n,d,l,s){const o=b("nav-bar"),m=b("router-view"),r=b("page-footer"),w=b("messages"),V=b("blocker");return i(),u(T,null,[a("header",null,[_(o)]),a("div",Wo,[a("div",Ro,[a("h1",null,v(e.$route.meta.heading),1),_(m,{onSave:s.saveValues,onReset:s.resetValues,onDefaults:s.setDefaultValues,onSendCommand:s.sendCommand},null,8,["onSave","onReset","onDefaults","onSendCommand"])])]),_(r),_(w),_(V)],64)}const zo=y(jo,[["render",No],["__file","/opt/openWB-dev/openwb-ui-settings/src/App.vue"]]),Fo="modulepreload",Ho=function(e){return"/openWB/web/settings/"+e},F={},k=function(t,n,d){if(!n||n.length===0)return t();const l=document.getElementsByTagName("link");return Promise.all(n.map(s=>{if(s=Ho(s),s in F)return;F[s]=!0;const o=s.endsWith(".css"),m=o?'[rel="stylesheet"]':"";if(!!d)for(let V=l.length-1;V>=0;V--){const D=l[V];if(D.href===s&&(!o||D.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${s}"]${m}`))return;const w=document.createElement("link");if(w.rel=o?"stylesheet":Fo,o||(w.as="script",w.crossOrigin=""),w.href=s,document.head.appendChild(w),o)return new Promise((V,D)=>{w.addEventListener("load",V),w.addEventListener("error",()=>D(new Error(`Unable to preload CSS for ${s}`)))})})).then(()=>t()).catch(s=>{const o=new Event("vite:preloadError",{cancelable:!0});if(o.payload=s,window.dispatchEvent(o),!o.defaultPrevented)throw s})};let X={mqtt:{},mqttSubscriptions:{},local:{reloadRequired:!1,savingData:!1}};X.examples={text1:"Text...",text2:"mail@domain.com",text3:"openwb.local",text4:"http://www.openwb.de",text5:"Benutzername",text6:"12:34",text7:"2021-10-31",color1:"#ff0000",color2:"#0000ff",number1:5,number2:10,number3:28e-5,password1:"GeHeiM!",textarea1:"Langer Text...",range1:6,range2:10,select1:1,select2:void 0,buttonGroup1:1,checkbox1:!0,json1:{text:"Text",number:123},hierarchy1:[{id:0,type:"counter",children:[{id:3,type:"inverter",children:[]},{id:4,type:"bat",children:[]},{id:1,type:"cp",children:[]},{id:2,type:"cp",children:[]}]}],hierarchy1Labels:{0:"EVU",1:"Ladepunkt 1",2:"Ladepunkt 2",3:"Wechselrichter",4:"Batteriespeicher"},tags:["1234","2345","3456"],ioConfig:{active:!1,pattern:[null,!1,!0],action:{value:"stop_all",options:null}}};const L=re({state:X,mutations:{storeLocal(e,t){e.local[t.name]=t.value},addTopic(e,t){Object.keys(e.mqtt).includes(t.topic)?console.warn("topic already exists: ",t.topic):e.mqtt[t.topic]=t.payload},removeTopic(e,t){delete e.mqtt[t]},updateTopic(e,t){const n=(d,l,s)=>l.split(".").reduce((o,m,r)=>o[m]=l.split(".").length===++r?s:o[m]||{},d);t.topic in e.mqtt||!(t.topic in e.examples)?t.objectPath!=null?n(e.mqtt[t.topic],t.objectPath,t.payload):e.mqtt[t.topic]=t.payload:(console.debug("topic not found in state.mqtt: ",t.topic),t.topic in e.examples?t.objectPath!=null?n(e.examples[t.topic],t.objectPath,t.payload):e.examples[t.topic]=t.payload:console.warn("topic not found in state: ",t.topic," giving up"))},addSubscription(e,t){t in e.mqttSubscriptions?e.mqttSubscriptions[t]+=1:e.mqttSubscriptions[t]=1,console.debug("subscription count: ",t,e.mqttSubscriptions[t])},removeSubscription(e,t){t in e.mqttSubscriptions&&(e.mqttSubscriptions[t]-=1,e.mqttSubscriptions[t]<=0&&delete e.mqttSubscriptions[t])}},actions:{},modules:{},getters:{usageTermsAcknowledged(e){return new Promise(t=>{if(e.mqtt["openWB/system/usage_terms_acknowledged"]!==void 0)t(e.mqtt["openWB/system/usage_terms_acknowledged"]);else{var n,d;n=setTimeout(()=>{clearInterval(d),t(!1)},5e3),d=setInterval(()=>{e.mqtt["openWB/system/usage_terms_acknowledged"]!==void 0&&(clearTimeout(n),clearInterval(d),t(e.mqtt["openWB/system/usage_terms_acknowledged"]))},100)}})},installAssistantDone(e){return new Promise(t=>{if(e.mqtt["openWB/system/installAssistantDone"]!==void 0)t(e.mqtt["openWB/system/installAssistantDone"]);else{var n,d;n=setTimeout(()=>{clearInterval(d),t(!1)},5e3),d=setInterval(()=>{e.mqtt["openWB/system/installAssistantDone"]!==void 0&&(clearTimeout(n),clearInterval(d),t(e.mqtt["openWB/system/installAssistantDone"]))},100)}})},subscriptionCount:e=>t=>e.mqttSubscriptions[t]||0}}),ee=[{path:"/",redirect:"/GeneralConfig"},{path:"/Status",name:"Status",meta:{heading:"Status"},component:()=>k(()=>import("./Status-b23f7e03.js"),["assets/Status-b23f7e03.js","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-chartjs-6bace15d.js","assets/vendor-luxon-cc86f6dc.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/Status-a4f24178.css"])},{path:"/Logging/ChargeLog",name:"ChargeLog",meta:{heading:"Auswertungen - Ladeprotokoll"},component:()=>k(()=>import("./ChargeLog-70085d3d.js"),["assets/ChargeLog-70085d3d.js","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/ChargeLog-1fb3fa68.css"])},{path:"/Logging/Chart/:chartRange?/:initialDate?",name:"DailyChart",meta:{heading:"Auswertungen - Diagramme"},component:()=>k(()=>import("./Chart-730fde84.js"),["assets/Chart-730fde84.js","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-chartjs-6bace15d.js","assets/vendor-luxon-cc86f6dc.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/Chart-e20451b4.css"])},{path:"/GeneralConfig",name:"GeneralConfig",meta:{heading:"Einstellungen - Allgemein"},component:()=>k(()=>import("./GeneralConfig-3d40ed90.js").then(e=>e.a),["assets/GeneralConfig-3d40ed90.js","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/IdentificationConfig",name:"IdentificationConfig",meta:{heading:"Einstellungen - Identifikation"},component:()=>k(()=>import("./IdentificationConfig-1a2c5700.js"),["assets/IdentificationConfig-1a2c5700.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js"])},{path:"/OptionalComponents",name:"OptionalComponents",meta:{heading:"Einstellungen - Display"},component:()=>k(()=>import("./OptionalComponents-855be104.js").then(e=>e.O),["assets/OptionalComponents-855be104.js","assets/dynamic-import-helper-be004503.js","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css"])},{path:"/GeneralChargeConfig",name:"GeneralChargeConfig",meta:{heading:"Ladeeinstellungen - Übergreifendes"},component:()=>k(()=>import("./GeneralChargeConfig-6ea49afe.js").then(e=>e.G),["assets/GeneralChargeConfig-6ea49afe.js","assets/dynamic-import-helper-be004503.js","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css"])},{path:"/PVChargeConfig",name:"PVChargeConfig",meta:{heading:"Ladeeinstellungen - PV-Laden"},component:()=>k(()=>import("./PVChargeConfig-db3a459e.js"),["assets/PVChargeConfig-db3a459e.js","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js"])},{path:"/HardwareInstallation",name:"HardwareInstallation",meta:{heading:"Konfiguration - Geräte und Komponenten"},component:()=>k(()=>import("./HardwareInstallation-8066ca79.js").then(e=>e.a),["assets/HardwareInstallation-8066ca79.js","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/LoadManagementConfiguration",name:"LoadManagementConfiguration",meta:{heading:"Konfiguration - Lastmanagement"},component:()=>k(()=>import("./LoadManagementConfig-89605028.js"),["assets/LoadManagementConfig-89605028.js","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/OpenwbSortableList-96f09c46.js","assets/OpenwbSortableList-7ba533e4.css","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js"])},{path:"/ChargePointInstallation",name:"ChargePointInstallation",meta:{heading:"Konfiguration - Ladepunkte"},component:()=>k(()=>import("./ChargePointInstallation-f32d3e54.js").then(e=>e.c),["assets/ChargePointInstallation-f32d3e54.js","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js","assets/ChargePointInstallation-7b9399a8.css"])},{path:"/VehicleConfiguration/:section?/:section_index?/:section_part?/:action?",name:"VehicleConfiguration",meta:{heading:"Konfiguration - Fahrzeuge"},component:()=>k(()=>import("./VehicleConfig-890c7977.js").then(e=>e.b),["assets/VehicleConfig-890c7977.js","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/IoConfiguration",name:"IoConfiguration",meta:{heading:"Konfiguration - Ein- und Ausgänge"},component:()=>k(()=>import("./IoConfig-20eaec88.js").then(e=>e.b),["assets/IoConfig-20eaec88.js","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/System/CloudConfiguration",name:"CloudConfig",meta:{heading:"System - openWB Cloud"},component:()=>k(()=>import("./CloudConfig-832400a4.js"),["assets/CloudConfig-832400a4.js","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js"])},{path:"/System/MqttBridgeConfiguration",name:"MqttBridgeConfig",meta:{heading:"System - MQTT-Brücken"},component:()=>k(()=>import("./MqttBridgeConfig-25a5936a.js"),["assets/MqttBridgeConfig-25a5936a.js","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js"])},{path:"/System/DebugConfiguration",name:"Debugging",meta:{heading:"System - Fehlersuche"},component:()=>k(()=>import("./DebugConfig-0d862fc6.js"),["assets/DebugConfig-0d862fc6.js","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-axios-1a87d4ae.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/DebugConfig-e21ab72c.css"])},{path:"/System/Support",name:"Support",meta:{heading:"System - Support"},component:()=>k(()=>import("./Support-028921f1.js"),["assets/Support-028921f1.js","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js"])},{path:"/System/LegalSettings",name:"LegalSettings",meta:{heading:"System - Rechtliches"},component:()=>k(()=>import("./LegalSettings-1b718a5d.js"),["assets/LegalSettings-1b718a5d.js","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js"])},{path:"/System/SystemConfiguration",name:"SystemConfig",meta:{heading:"System - System"},component:()=>k(()=>import("./System-5e2d0137.js"),["assets/System-5e2d0137.js","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js","assets/System-f301c290.css"])},{path:"/System/DataManagement",name:"DataManagement",meta:{heading:"System - Datenverwaltung"},component:()=>k(()=>import("./DataManagement-e6d61b39.js").then(e=>e.a),["assets/DataManagement-e6d61b39.js","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/dynamic-import-helper-be004503.js"])},{path:"/System/InstallAssistant",name:"InstallAssistant",meta:{heading:"System - Einrichtungsassistent"},component:()=>k(()=>import("./InstallAssistant-13cd0d9d.js"),["assets/InstallAssistant-13cd0d9d.js","assets/dynamic-import-helper-be004503.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js"])}];ee.push({path:"/TestingStore",name:"VUEX Store",meta:{heading:"Beispiele - VUEX Store"},component:()=>k(()=>import("./TestingStore-4c4aaf29.js"),["assets/TestingStore-4c4aaf29.js","assets/OpenwbSortableList-96f09c46.js","assets/vendor-50125810.js","assets/vendor-sortablejs-8982fad4.js","assets/vendor-3a7c342f.css","assets/vendor-fortawesome-fc4b3a41.js","assets/OpenwbSortableList-7ba533e4.css","assets/vendor-bootstrap-01761fad.js","assets/vendor-jquery-a46fe321.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-1a87d4ae.js"])});const W=de({history:ue(),routes:ee});W.beforeEach(async e=>{if(await L.getters.usageTermsAcknowledged){if(!await L.getters.installAssistantDone&&e.name!=="InstallAssistant")return{name:"InstallAssistant"}}else if(e.name!=="LegalSettings")return{name:"LegalSettings"}});W.afterEach(e=>{e.meta.heading?document.title="openWB | "+e.meta.heading:document.title="openWB"});const R=ce(zo);R.use(L).use(W).use(Ue,Ge);const Uo=Object.assign({"./components/OpenwbBaseAlert.vue":Qe,"./components/OpenwbBaseArrayInput.vue":ft,"./components/OpenwbBaseAvatar.vue":vt,"./components/OpenwbBaseButtonGroupInput.vue":Bt,"./components/OpenwbBaseButtonInput.vue":Pt,"./components/OpenwbBaseCard.vue":zt,"./components/OpenwbBaseCheckboxInput.vue":Jt,"./components/OpenwbBaseClickButton.vue":Tt,"./components/OpenwbBaseColorPicker.vue":en,"./components/OpenwbBaseCopyToClipboard.vue":un,"./components/OpenwbBaseHeading.vue":hn,"./components/OpenwbBaseIoPattern.vue":kn,"./components/OpenwbBaseModalDialog.vue":An,"./components/OpenwbBaseNumberInput.vue":Nn,"./components/OpenwbBaseRangeInput.vue":Qn,"./components/OpenwbBaseSelectInput.vue":us,"./components/OpenwbBaseSettingElement.vue":st,"./components/OpenwbBaseSubmitButtons.vue":hs,"./components/OpenwbBaseTextInput.vue":Ds,"./components/OpenwbBaseTextarea.vue":Gs,"./components/OpenwbBaseToast.vue":Xs});Object.entries(Uo).forEach(([e,t])=>{const n=pe(me(e.split("/").pop().replace(/\.\w+$/,"")));R.component(n,t.default)});R.mount("#app");export{Y as C,M as O,k as _}; diff --git a/web/settings/assets/inverter-01923309.js b/web/settings/assets/inverter-01923309.js deleted file mode 100644 index 1a0a04a82c..0000000000 --- a/web/settings/assets/inverter-01923309.js +++ /dev/null @@ -1 +0,0 @@ -import{C as m}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as o,l as u,m as l,G as t,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSigenergyInverter",mixins:[m]},_={class:"device-sigenergy-inverter"};function c(n,e,b,f,v,w){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return u(),l("div",_,[t(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für Sigenergy Wechselrichter ",-1)])),_:1,__:[1]}),t(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},{help:i(()=>e[2]||(e[2]=[r(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])),_:1},8,["model-value"])])}const M=d(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/inverter.vue"]]);export{M as default}; diff --git a/web/settings/assets/inverter-02db9c3f.js b/web/settings/assets/inverter-02db9c3f.js new file mode 100644 index 0000000000..dacb9f3888 --- /dev/null +++ b/web/settings/assets/inverter-02db9c3f.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-8066ca79.js";import{_ as a,u as n,l as m,m as l,G as t,E as u,B as d}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolisInverter",mixins:[p]},_={class:"device-solis-inverter"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",_,[t(i,null,{default:u(()=>[...e[1]||(e[1]=[d(" Einstellungen für Solis Wechselrichter ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const I=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/inverter.vue"]]);export{I as default}; diff --git a/web/settings/assets/inverter-037d9ebd.js b/web/settings/assets/inverter-037d9ebd.js new file mode 100644 index 0000000000..6dc2cea60d --- /dev/null +++ b/web/settings/assets/inverter-037d9ebd.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-8066ca79.js";import{_ as a,u as n,l as m,m as d,G as t,E as u,B as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceDeyeInverter",mixins:[p]},_={class:"device-deye-inverter"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),d("div",_,[t(i,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für Deye Wechselrichter ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const k=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/inverter.vue"]]);export{k as default}; diff --git a/web/settings/assets/inverter-05bcd6e7.js b/web/settings/assets/inverter-05bcd6e7.js new file mode 100644 index 0000000000..4c1fcc27f0 --- /dev/null +++ b/web/settings/assets/inverter-05bcd6e7.js @@ -0,0 +1 @@ +import{C as s}from"./HardwareInstallation-8066ca79.js";import{_ as a,u as t,l as m,m as l,G as i,E as d,B as c}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceVictronInverter",mixins:[s]},_={class:"device-victron-inverter"};function f(o,e,v,g,w,V){const r=t("openwb-base-heading"),p=t("openwb-base-number-input"),u=t("openwb-base-button-group-input");return m(),l("div",_,[i(r,null,{default:d(()=>[...e[2]||(e[2]=[c(" Einstellungen für Victron Wechselrichter ",-1)])]),_:1}),i(p,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(u,{title:"MPPT",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":o.component.configuration.mppt,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.mppt"))},null,8,["model-value"])])}const I=a(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/inverter.vue"]]);export{I as default}; diff --git a/web/settings/assets/inverter-07777da1.js b/web/settings/assets/inverter-07777da1.js new file mode 100644 index 0000000000..757f7f0114 --- /dev/null +++ b/web/settings/assets/inverter-07777da1.js @@ -0,0 +1 @@ +import{C as l}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as t,l as b,m as v,G as r,E as i,B as a}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSunnyBoyInverter",mixins:[l]},_={class:"device-sunnyboy-inverter"};function g(n,e,y,c,w,C){const s=t("openwb-base-heading"),u=t("openwb-base-button-group-input"),d=t("openwb-base-select-input"),p=t("openwb-base-number-input");return b(),v("div",_,[r(s,null,{default:i(()=>[...e[3]||(e[3]=[a(" Einstellungen für SMA Sunny Boy/Tripower Wechselrichter ",-1)])]),_:1}),r(u,{title:"Hybrid-System",buttons:[{buttonValue:!1,text:"nicht vorhanden"},{buttonValue:!0,text:"vorhanden"}],"model-value":n.component.configuration.hybrid,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.hybrid"))},{help:i(()=>[...e[4]||(e[4]=[a(" Diese Option aktivieren, wenn ein Tripower Smart Energy, Sunny Boy Smart Energy oder ein anderes Hybrid-System verbaut ist. ",-1)])]),_:1},8,["model-value"]),r(d,{title:"Version","not-selected":"Bitte auswählen",options:[{value:0,text:"Standard"},{value:1,text:"Core-2"},{value:2,text:"Data Manager/Cluster Controller"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.version"))},null,8,["model-value"]),r(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},{help:i(()=>[...e[5]||(e[5]=[a(" Für die Standardversion ist die Standardmodbus-ID 3, für Core-2 ist sie 1 und für Data Manager/Cluster Controller 2. Wurde eine abweichende Modbus ID konfiguriert, entsprechend anpassen. ",-1)])]),_:1},8,["model-value"])])}const I=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/inverter.vue"]]);export{I as default}; diff --git a/web/settings/assets/inverter-0b8cbadd.js b/web/settings/assets/inverter-0b8cbadd.js deleted file mode 100644 index 6f0c836ceb..0000000000 --- a/web/settings/assets/inverter-0b8cbadd.js +++ /dev/null @@ -1 +0,0 @@ -import{C as r}from"./HardwareInstallation-be759b0c.js";import{_ as n,u as s,l as o,m as i,G as a,E as p,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceVartaInverter",mixins:[r]},d={class:"varta-inverter"};function _(l,e,u,v,f,b){const t=s("openwb-base-alert");return o(),i("div",d,[a(t,{subtype:"info"},{default:p(()=>e[0]||(e[0]=[c(" Die Leistung des Wechselrichters ist nur verfügbar, wenn dieser über Sensor an Varta angebunden ist. Wechselrichter die per Modbus mit dem Speicher kommunizieren lassen sich nicht über den Varta PV-Sensor auslesen. ",-1)])),_:1,__:[0]})])}const S=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/varta/inverter.vue"]]);export{S as default}; diff --git a/web/settings/assets/inverter-1287c8cd.js b/web/settings/assets/inverter-1287c8cd.js new file mode 100644 index 0000000000..e5feb8a027 --- /dev/null +++ b/web/settings/assets/inverter-1287c8cd.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-8066ca79.js";import{_ as u,u as l,l as m,m as g,G as r,E as o,B as n,A as a}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const h={name:"DeviceHttpInverter",mixins:[p]},c={class:"device-http-inverter"};function b(t,e,v,f,w,_){const d=l("openwb-base-heading"),s=l("openwb-base-text-input");return m(),g("div",c,[r(d,null,{default:o(()=>[...e[2]||(e[2]=[n(" Einstellungen für Http Wechselrichter ",-1)])]),_:1}),r(s,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.power_path"))},{help:o(()=>[...e[3]||(e[3]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) ",-1)])]),_:1},8,["model-value"]),r(s,{title:"Pfad für Zählerstand Erzeugung",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.exported_path"))},{help:o(()=>[...e[4]||(e[4]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])]),_:1},8,["model-value"])])}const S=u(h,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/inverter.vue"]]);export{S as default}; diff --git a/web/settings/assets/inverter-1484b10b.js b/web/settings/assets/inverter-1484b10b.js deleted file mode 100644 index f7bdb4930f..0000000000 --- a/web/settings/assets/inverter-1484b10b.js +++ /dev/null @@ -1 +0,0 @@ -import{C as a}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as t,l as u,m as l,G as n,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceKostalPikoInverter",mixins:[a]},_={class:"device-kostal-piko-inverter"};function f(o,e,b,v,g,k){const i=t("openwb-base-heading"),r=t("openwb-base-button-group-input");return u(),l("div",_,[n(i,null,{default:m(()=>e[1]||(e[1]=[c(" Einstellungen für Kostal Piko Wechselrichter ",-1)])),_:1,__:[1]}),n(r,{title:"Speicher",buttons:[{buttonValue:!1,text:"nicht vorhanden"},{buttonValue:!0,text:"vorhanden"}],"model-value":o.component.configuration.bat_configured,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.bat_configured"))},null,8,["model-value"])])}const N=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/inverter.vue"]]);export{N as default}; diff --git a/web/settings/assets/inverter-14c9afae.js b/web/settings/assets/inverter-14c9afae.js new file mode 100644 index 0000000000..f97c331561 --- /dev/null +++ b/web/settings/assets/inverter-14c9afae.js @@ -0,0 +1 @@ +import{C as d}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as r,l as u,m as c,G as n,E as i,B as o,A as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const v={name:"DeviceDiscovergyInverter",mixins:[d]},f={class:"device-discovergy-inverter"};function g(t,e,_,b,w,h){const s=r("openwb-base-heading"),a=r("openwb-base-text-input");return u(),c("div",f,[n(s,null,{default:i(()=>[...e[1]||(e[1]=[o(" Einstellungen für Discovergy Wechselrichter ",-1)])]),_:1}),n(a,{title:"Meter-ID",required:"","model-value":t.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.meter_id"))},{help:i(()=>[...e[2]||(e[2]=[o(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),l("a",{href:"https://api.discovergy.com/public/v1/meters",target:"_blank",rel:"noopener noreferrer"}," https://api.discovergy.com/public/v1/meters ",-1),o(" aufrufen und dort Benutzername und Passwort eingeben. Hier wird nun u.a. die ID des Zählers angezeigt. ",-1)])]),_:1},8,["model-value"])])}const z=m(v,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/inverter.vue"]]);export{z as default}; diff --git a/web/settings/assets/inverter-17495f9f.js b/web/settings/assets/inverter-17495f9f.js new file mode 100644 index 0000000000..0b44fbcecb --- /dev/null +++ b/web/settings/assets/inverter-17495f9f.js @@ -0,0 +1 @@ +import{C as r}from"./HardwareInstallation-8066ca79.js";import{_ as n,u as s,l as o,m as i,G as a,E as p,B as c}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const m={name:"DeviceVartaInverter",mixins:[r]},d={class:"varta-inverter"};function _(l,e,u,v,f,b){const t=s("openwb-base-alert");return o(),i("div",d,[a(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[c(" Die Leistung des Wechselrichters ist nur verfügbar, wenn dieser über Sensor an Varta angebunden ist. Wechselrichter die per Modbus mit dem Speicher kommunizieren lassen sich nicht über den Varta PV-Sensor auslesen. ",-1)])]),_:1})])}const S=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/varta/inverter.vue"]]);export{S as default}; diff --git a/web/settings/assets/inverter-218dfb39.js b/web/settings/assets/inverter-218dfb39.js deleted file mode 100644 index 4d5633989e..0000000000 --- a/web/settings/assets/inverter-218dfb39.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as o,l,m,G as n,E as u,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbPvkitInverter",mixins:[p]},v={class:"device-openwb-pvkit-inverter"};function _(t,e,f,b,w,g){const i=o("openwb-base-heading"),r=o("openwb-base-select-input");return l(),m("div",v,[n(i,null,{default:u(()=>e[1]||(e[1]=[c(" Einstellungen für openWB PV-Kit Wechselrichter ",-1)])),_:1,__:[1]}),n(r,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.version"))},null,8,["model-value"])])}const $=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_pv_kit/inverter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/inverter-254014f2.js b/web/settings/assets/inverter-254014f2.js deleted file mode 100644 index 927b4c46e4..0000000000 --- a/web/settings/assets/inverter-254014f2.js +++ /dev/null @@ -1 +0,0 @@ -import{C as a}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as o,l as p,m as l,G as n,E as d,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSmartMeInverter",mixins:[a]},c={class:"device-smart-me-inverter"};function f(t,e,v,b,g,x){const r=o("openwb-base-heading"),i=o("openwb-base-text-input");return p(),l("div",c,[n(r,null,{default:d(()=>e[1]||(e[1]=[u(" Einstellungen für smart-me Wechselrichter ",-1)])),_:1,__:[1]}),n(i,{title:"Geräte-ID",required:"","model-value":t.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const G=m(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/inverter.vue"]]);export{G as default}; diff --git a/web/settings/assets/inverter-25fc7f37.js b/web/settings/assets/inverter-25fc7f37.js new file mode 100644 index 0000000000..ab3901e2ae --- /dev/null +++ b/web/settings/assets/inverter-25fc7f37.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-8066ca79.js";import{_ as a,u as o,l,m,G as n,E as u,B as c}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbPvkitInverter",mixins:[p]},v={class:"device-openwb-pvkit-inverter"};function _(t,e,f,b,w,g){const i=o("openwb-base-heading"),r=o("openwb-base-select-input");return l(),m("div",v,[n(i,null,{default:u(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB PV-Kit Wechselrichter ",-1)])]),_:1}),n(r,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.version"))},null,8,["model-value"])])}const $=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_pv_kit/inverter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/inverter-26256af8.js b/web/settings/assets/inverter-26256af8.js new file mode 100644 index 0000000000..c84861c9d3 --- /dev/null +++ b/web/settings/assets/inverter-26256af8.js @@ -0,0 +1 @@ +import{C as l}from"./HardwareInstallation-8066ca79.js";import{_ as u,u as n,l as d,m as c,G as o,E as r,B as i}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSmahmInverter",mixins:[l]},f={class:"device-smahm-inverter"};function b(t,e,v,g,h,w){const s=n("openwb-base-heading"),a=n("openwb-base-alert"),m=n("openwb-base-number-input");return d(),c("div",f,[o(s,null,{default:r(()=>[...e[1]||(e[1]=[i(" Einstellungen für SMA-HM/EM Wechselrichter ",-1)])]),_:1}),o(a,{subtype:"info"},{default:r(()=>[...e[2]||(e[2]=[i(' Dies ist nur die richtige Komponente, wenn ein extra EnergyMeter ausschließlich für die PV-Messung vorhanden ist. Wenn nur ein HomeManager vorhanden ist, muss ein Gerät "SMA Sunny Boy" mit der entsprechenden Wechselrichter-Komponente angelegt werden. ',-1)])]),_:1}),o(m,{title:"Seriennummer",required:"","model-value":t.component.configuration.serials,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.serials"))},null,8,["model-value"])])}const $=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_shm/inverter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/inverter-2e642f10.js b/web/settings/assets/inverter-2e642f10.js deleted file mode 100644 index fe0571f7e8..0000000000 --- a/web/settings/assets/inverter-2e642f10.js +++ /dev/null @@ -1 +0,0 @@ -import{C as s}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as a,l as p,m,G as o,E as l,B as i,A as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceJsonInverter",mixins:[s]},b={class:"device-json-inverter"};function v(n,e,w,_,c,j){const u=a("openwb-base-heading"),r=a("openwb-base-text-input");return p(),m("div",b,[o(u,null,{default:l(()=>e[5]||(e[5]=[i(" Einstellungen für JSON Wechselrichter ",-1)])),_:1,__:[5]}),o(r,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":n.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.jq_power"))},{help:l(()=>e[6]||(e[6]=[i(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),f("br",null,null,-1),i(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) ",-1)])),_:1},8,["model-value"]),o(r,{title:"Abfrage für Zählerstand",subtype:"text","model-value":n.component.configuration.jq_exported,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.jq_exported"))},{help:l(()=>e[7]||(e[7]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])),_:1},8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":n.component.configuration.jq_current_l1,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.jq_current_l1"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":n.component.configuration.jq_current_l2,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.jq_current_l2"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":n.component.configuration.jq_current_l3,"onUpdate:modelValue":e[4]||(e[4]=t=>n.updateConfiguration(t,"configuration.jq_current_l3"))},null,8,["model-value"])])}const k=d(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/inverter.vue"]]);export{k as default}; diff --git a/web/settings/assets/inverter-31446a68.js b/web/settings/assets/inverter-31446a68.js deleted file mode 100644 index 014857b77f..0000000000 --- a/web/settings/assets/inverter-31446a68.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceFoxEssInverter",mixins:[p]},c={class:"device-fox_ess-inverter"};function f(o,e,b,v,x,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>e[1]||(e[1]=[_(" Einstellungen für FoxEss Wechselrichter ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const F=a(l,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/inverter.vue"]]);export{F as default}; diff --git a/web/settings/assets/inverter-332388ea.js b/web/settings/assets/inverter-332388ea.js deleted file mode 100644 index c6c667eeef..0000000000 --- a/web/settings/assets/inverter-332388ea.js +++ /dev/null @@ -1 +0,0 @@ -import{C as s}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as t,l as m,m as l,G as i,E as d,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"DeviceVictronInverter",mixins:[s]},_={class:"device-victron-inverter"};function f(o,e,v,g,w,V){const r=t("openwb-base-heading"),p=t("openwb-base-number-input"),u=t("openwb-base-button-group-input");return m(),l("div",_,[i(r,null,{default:d(()=>e[2]||(e[2]=[c(" Einstellungen für Victron Wechselrichter ",-1)])),_:1,__:[2]}),i(p,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(u,{title:"MPPT",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":o.component.configuration.mppt,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.mppt"))},null,8,["model-value"])])}const I=a(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/inverter.vue"]]);export{I as default}; diff --git a/web/settings/assets/inverter-3370b8b6.js b/web/settings/assets/inverter-3370b8b6.js deleted file mode 100644 index e844b1a11e..0000000000 --- a/web/settings/assets/inverter-3370b8b6.js +++ /dev/null @@ -1 +0,0 @@ -import{C as l}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as n,l as d,m as _,G as o,E as r,B as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmahmInverter",mixins:[l]},f={class:"device-smahm-inverter"};function b(t,e,v,g,h,w){const s=n("openwb-base-heading"),a=n("openwb-base-alert"),m=n("openwb-base-number-input");return d(),_("div",f,[o(s,null,{default:r(()=>e[1]||(e[1]=[i(" Einstellungen für SMA-HM/EM Wechselrichter ",-1)])),_:1,__:[1]}),o(a,{subtype:"info"},{default:r(()=>e[2]||(e[2]=[i(' Dies ist nur die richtige Komponente, wenn ein extra EnergyMeter ausschließlich für die PV-Messung vorhanden ist. Wenn nur ein HomeManager vorhanden ist, muss ein Gerät "SMA Sunny Boy" mit der entsprechenden Wechselrichter-Komponente angelegt werden. ',-1)])),_:1,__:[2]}),o(m,{title:"Seriennummer",required:"","model-value":t.component.configuration.serials,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.serials"))},null,8,["model-value"])])}const $=u(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_shm/inverter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/inverter-3fe8754b.js b/web/settings/assets/inverter-3fe8754b.js deleted file mode 100644 index 7661966d5f..0000000000 --- a/web/settings/assets/inverter-3fe8754b.js +++ /dev/null @@ -1 +0,0 @@ -import{C as m}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as o,l as u,m as l,G as t,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceEnphaseInverter",mixins:[m]},c={class:"device-enphase-inverter"};function f(n,e,v,b,g,E){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return u(),l("div",c,[t(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für Enphase Envoy / IQ Gateway Wechselrichter ",-1)])),_:1,__:[1]}),t(p,{title:"EID",required:"","model-value":n.component.configuration.eid,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.eid"))},{help:i(()=>e[2]||(e[2]=[r(' EID für "production" ',-1)])),_:1},8,["model-value"])])}const k=d(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/inverter.vue"]]);export{k as default}; diff --git a/web/settings/assets/inverter-42148877.js b/web/settings/assets/inverter-42148877.js new file mode 100644 index 0000000000..15dde34a3e --- /dev/null +++ b/web/settings/assets/inverter-42148877.js @@ -0,0 +1 @@ +import{C as e}from"./HardwareInstallation-8066ca79.js";import{_ as t,l as o,m as n}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const r={name:"DeviceOpenDTUInverter",mixins:[e]},i={class:"device-opendtu-inverter"};function p(s,c,m,a,_,d){return o(),n("div",i)}const h=t(r,[["render",p],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/opendtu/opendtu/inverter.vue"]]);export{h as default}; diff --git a/web/settings/assets/inverter-423aa924.js b/web/settings/assets/inverter-423aa924.js deleted file mode 100644 index e84e5c49d2..0000000000 --- a/web/settings/assets/inverter-423aa924.js +++ /dev/null @@ -1 +0,0 @@ -import{C as a}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as n,l as m,m as d,G as t,E as l,B as u}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolaredgeInverter",mixins:[a]},c={class:"device-solaredge-inverter"};function f(o,e,g,b,v,w){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),d("div",c,[t(r,null,{default:l(()=>e[1]||(e[1]=[u(" Einstellungen für SolarEdge Wechselrichter ",-1)])),_:1,__:[1]}),t(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/inverter.vue"]]);export{D as default}; diff --git a/web/settings/assets/inverter-43433c4d.js b/web/settings/assets/inverter-43433c4d.js new file mode 100644 index 0000000000..34200e018c --- /dev/null +++ b/web/settings/assets/inverter-43433c4d.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-8066ca79.js";import{_ as a,u as n,l as m,m as u,G as t,E as d,B as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceFoxEssInverter",mixins:[p]},c={class:"device-fox_ess-inverter"};function f(o,e,b,v,x,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für FoxEss Wechselrichter ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const F=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/inverter.vue"]]);export{F as default}; diff --git a/web/settings/assets/inverter-46bb7438.js b/web/settings/assets/inverter-46bb7438.js new file mode 100644 index 0000000000..7f893f7ea6 --- /dev/null +++ b/web/settings/assets/inverter-46bb7438.js @@ -0,0 +1 @@ +import{C as u}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as r,l as d,m as g,G as o,E as l,B as s}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceVZLoggerInverter",mixins:[u]},_={class:"device-vzlogger-inverter"};function c(n,e,v,b,w,Z){const a=r("openwb-base-heading"),p=r("openwb-base-alert"),i=r("openwb-base-number-input");return d(),g("div",_,[o(a,null,{default:l(()=>[...e[2]||(e[2]=[s(" Einstellungen für VZLogger Wechselrichter ",-1)])]),_:1}),o(p,{subtype:"info"},{default:l(()=>[...e[3]||(e[3]=[s(' Bitte auf der Shell ausführen: "curl -s IPdesVZLogger:Port | jq .|cat -n" Zählen, in welcher Zeile der gesuchte Wert steht. Bei der ersten Zeile mit 1 anfangen zu zählen. ',-1)])]),_:1}),o(i,{title:"Zeile der Leistung",required:"",min:0,"model-value":n.component.configuration.line_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.line_power"))},null,8,["model-value"]),o(i,{title:"Zeile der exportierten Energie (Ertrag)",min:0,"model-value":n.component.configuration.line_exported,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.line_exported"))},null,8,["model-value"])])}const W=m(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/inverter.vue"]]);export{W as default}; diff --git a/web/settings/assets/inverter-4c2e20ed.js b/web/settings/assets/inverter-4c2e20ed.js new file mode 100644 index 0000000000..6823d5b72a --- /dev/null +++ b/web/settings/assets/inverter-4c2e20ed.js @@ -0,0 +1 @@ +import{C as m}from"./HardwareInstallation-8066ca79.js";import{_ as d,u as o,l as u,m as l,G as t,E as i,B as r}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceEnphaseInverter",mixins:[m]},_={class:"device-enphase-inverter"};function f(n,e,v,b,g,E){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return u(),l("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für Enphase Envoy / IQ Gateway Wechselrichter ",-1)])]),_:1}),t(p,{title:"EID",required:"","model-value":n.component.configuration.eid,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.eid"))},{help:i(()=>[...e[2]||(e[2]=[r(' EID für "production" ',-1)])]),_:1},8,["model-value"])])}const k=d(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/inverter.vue"]]);export{k as default}; diff --git a/web/settings/assets/inverter-5531e828.js b/web/settings/assets/inverter-5531e828.js deleted file mode 100644 index aa64940f7a..0000000000 --- a/web/settings/assets/inverter-5531e828.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as l,u as n,l as d,m as c,G as t,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceSolarViewInverter",mixins:[p]},_={class:"device-solar-view-inverter"};function f(o,e,v,g,w,b){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return d(),c("div",_,[t(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für SolarView Wechselrichter ",-1)])),_:1,__:[1]}),t(a,{title:"Kommando für die Abfrage",required:"","model-value":o.component.configuration.command,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.command"))},{help:i(()=>e[2]||(e[2]=[r(" Kommandos gemäß SolarView-Dokumentation, z.B.: 00* (gesamte Anlage), 01* (Wechselrichter 1), 02* (Wechselrichter 2) ",-1)])),_:1},8,["model-value"])])}const S=l(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/solar_view/inverter.vue"]]);export{S as default}; diff --git a/web/settings/assets/inverter-61c893a1.js b/web/settings/assets/inverter-61c893a1.js new file mode 100644 index 0000000000..3d51a0950f --- /dev/null +++ b/web/settings/assets/inverter-61c893a1.js @@ -0,0 +1 @@ +import{C as u}from"./HardwareInstallation-8066ca79.js";import{_ as l,u as t,l as m,m as c,G as r,E as i,B as n,A as s}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const f={name:"DevicePowerfoxInverter",mixins:[u]},b={class:"device-powerfox-inverter"};function g(o,e,v,w,_,x){const a=t("openwb-base-heading"),p=t("openwb-base-text-input");return m(),c("div",b,[r(a,null,{default:i(()=>[...e[1]||(e[1]=[n(" Einstellungen für Powerfox Wechselrichter ",-1)])]),_:1}),r(p,{title:"ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=d=>o.updateConfiguration(d,"configuration.id"))},{help:i(()=>[...e[2]||(e[2]=[n(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),s("a",{href:"https://backend.powerfox.energy/api/2.0/my/all/devices",target:"_blank",rel:"noopener noreferrer"}," https://backend.powerfox.energy/api/2.0/my/all/devices ",-1),n(" aufrufen und dort Benutzername und Passwort eingeben. Die DeviceID ist exakt so einzutragen, wie in der Antwort des Servers. Das bedeutet insbesondere auch, die Groß-/Kleinschreibung ist zu beachten! In dem Feld ist nur die Zeichenfolge direkt hinter ",-1),s("span",{class:"font-weight-bold text-monospace",style:{display:"contents"}},' "DeviceID" ',-1),n(" ohne den Doppelpunkt und Anführungszeichen einzutragen. ",-1)])]),_:1},8,["model-value"])])}const V=l(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/inverter.vue"]]);export{V as default}; diff --git a/web/settings/assets/inverter-6427ac53.js b/web/settings/assets/inverter-6427ac53.js deleted file mode 100644 index cf67172809..0000000000 --- a/web/settings/assets/inverter-6427ac53.js +++ /dev/null @@ -1 +0,0 @@ -import{C as s}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as n,l as m,m as _,G as r,E as i,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceStuderInverter",mixins:[s]},b={class:"device-studer-inverter"};function v(t,e,f,g,V,S){const u=n("openwb-base-heading"),p=n("openwb-base-button-group-input"),l=n("openwb-base-number-input");return m(),_("div",b,[r(u,null,{default:i(()=>e[2]||(e[2]=[a(" Einstellungen für Studer Wechselrichter ",-1)])),_:1,__:[2]}),r(p,{title:"Typ der MPPT Solarladeregler",buttons:[{buttonValue:"VT",text:"Variotrack (VT-40/VT-65/VT-80)"},{buttonValue:"VS",text:"VarioString (VS-70/VS-120)"}],"model-value":t.component.configuration.vc_type,required:"","onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.vc_type"))},null,8,["model-value"]),r(l,{title:"Anzahl MPPT Solarladeregler",required:"",min:1,max:9,"model-value":t.component.configuration.vc_count,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.vc_count"))},{help:i(()=>e[3]||(e[3]=[a(" Anzahl (1-9) der Studer MPPT Solarladeregler im System (VS/VT) ",-1)])),_:1},8,["model-value"])])}const k=d(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/inverter.vue"]]);export{k as default}; diff --git a/web/settings/assets/inverter-698ee7a4.js b/web/settings/assets/inverter-698ee7a4.js new file mode 100644 index 0000000000..4dc9ce9927 --- /dev/null +++ b/web/settings/assets/inverter-698ee7a4.js @@ -0,0 +1 @@ +import{C as s}from"./HardwareInstallation-8066ca79.js";import{_ as a,u as t,l as u,m,G as i,E as d,B as c}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const v={name:"DeviceOpenwbFlexInverter",mixins:[s]},b={class:"device-openwb-flex-inverter"};function f(o,e,_,w,x,g){const r=t("openwb-base-heading"),l=t("openwb-base-select-input"),p=t("openwb-base-number-input");return u(),m("div",b,[i(r,null,{default:d(()=>[...e[2]||(e[2]=[c(" Einstellungen für openWB-Flex Wechselrichter ",-1)])]),_:1}),i(l,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"},{value:3,text:"SDM120"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"]),i(p,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.id"))},null,8,["model-value"])])}const W=a(v,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/inverter.vue"]]);export{W as default}; diff --git a/web/settings/assets/inverter-7a061d6b.js b/web/settings/assets/inverter-7a061d6b.js new file mode 100644 index 0000000000..0d891becec --- /dev/null +++ b/web/settings/assets/inverter-7a061d6b.js @@ -0,0 +1 @@ +import{C as a}from"./HardwareInstallation-8066ca79.js";import{_ as p,u as n,l as m,m as c,G as t,E as u,B as d}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceKacoInverter",mixins:[a]},_={class:"device-kaco-inverter"};function b(o,e,f,v,g,x){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),c("div",_,[t(i,null,{default:u(()=>[...e[1]||(e[1]=[d(" Einstellungen für Kaco Wechselrichter ",-1)])]),_:1}),t(r,{title:"Kaco-Modbus-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_tx/inverter.vue"]]);export{D as default}; diff --git a/web/settings/assets/inverter-7afcc2ba.js b/web/settings/assets/inverter-7afcc2ba.js deleted file mode 100644 index e28d118242..0000000000 --- a/web/settings/assets/inverter-7afcc2ba.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as u,u as l,l as m,m as g,G as r,E as o,B as n,A as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const h={name:"DeviceHttpInverter",mixins:[p]},c={class:"device-http-inverter"};function b(t,e,v,f,w,_){const d=l("openwb-base-heading"),s=l("openwb-base-text-input");return m(),g("div",c,[r(d,null,{default:o(()=>e[2]||(e[2]=[n(" Einstellungen für Http Wechselrichter ",-1)])),_:1,__:[2]}),r(s,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.power_path"))},{help:o(()=>e[3]||(e[3]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) ",-1)])),_:1},8,["model-value"]),r(s,{title:"Pfad für Zählerstand Erzeugung",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.exported_path"))},{help:o(()=>e[4]||(e[4]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])),_:1},8,["model-value"])])}const S=u(h,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/inverter.vue"]]);export{S as default}; diff --git a/web/settings/assets/inverter-7bea2389.js b/web/settings/assets/inverter-7bea2389.js deleted file mode 100644 index 015651214f..0000000000 --- a/web/settings/assets/inverter-7bea2389.js +++ /dev/null @@ -1 +0,0 @@ -import{C as a}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as n,l as p,m as l,G as t,E as u,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolarmaxInverter",mixins:[a]},c={class:"device-solarmax-inverter"};function b(o,e,f,v,x,g){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return p(),l("div",c,[t(r,null,{default:u(()=>e[1]||(e[1]=[d(" Einstellungen für Solarmax Wechselrichter ",-1)])),_:1,__:[1]}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const I=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/inverter.vue"]]);export{I as default}; diff --git a/web/settings/assets/inverter-809f70c1.js b/web/settings/assets/inverter-809f70c1.js deleted file mode 100644 index 17437c070f..0000000000 --- a/web/settings/assets/inverter-809f70c1.js +++ /dev/null @@ -1 +0,0 @@ -import{C as l}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as t,l as b,m as v,G as r,E as i,B as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceSunnyBoyInverter",mixins:[l]},_={class:"device-sunnyboy-inverter"};function g(n,e,y,c,w,C){const s=t("openwb-base-heading"),u=t("openwb-base-button-group-input"),d=t("openwb-base-select-input"),p=t("openwb-base-number-input");return b(),v("div",_,[r(s,null,{default:i(()=>e[3]||(e[3]=[a(" Einstellungen für SMA Sunny Boy/Tripower Wechselrichter ",-1)])),_:1,__:[3]}),r(u,{title:"Hybrid-System",buttons:[{buttonValue:!1,text:"nicht vorhanden"},{buttonValue:!0,text:"vorhanden"}],"model-value":n.component.configuration.hybrid,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.hybrid"))},{help:i(()=>e[4]||(e[4]=[a(" Diese Option aktivieren, wenn ein Tripower Smart Energy, Sunny Boy Smart Energy oder ein anderes Hybrid-System verbaut ist. ",-1)])),_:1},8,["model-value"]),r(d,{title:"Version","not-selected":"Bitte auswählen",options:[{value:0,text:"Standard"},{value:1,text:"Core-2"},{value:2,text:"Data Manager/Cluster Controller"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.version"))},null,8,["model-value"]),r(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},{help:i(()=>e[5]||(e[5]=[a(" Für die Standardversion ist die Standardmodbus-ID 3, für Core-2 ist sie 1 und für Data Manager/Cluster Controller 2. Wurde eine abweichende Modbus ID konfiguriert, entsprechend anpassen. ",-1)])),_:1},8,["model-value"])])}const I=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/inverter.vue"]]);export{I as default}; diff --git a/web/settings/assets/inverter-811d2fd2.js b/web/settings/assets/inverter-811d2fd2.js deleted file mode 100644 index 65b4aa24b0..0000000000 --- a/web/settings/assets/inverter-811d2fd2.js +++ /dev/null @@ -1 +0,0 @@ -import{C as r}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as o,l,m as u,G as n,E as c,B as m}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceKostalStecaInverter",mixins:[r]},_={class:"device-kostal-steca-inverter"};function f(t,e,v,b,g,k){const a=o("openwb-base-heading"),i=o("openwb-base-button-group-input");return l(),u("div",_,[n(a,null,{default:c(()=>e[1]||(e[1]=[m(" Einstellungen für Kostal Piko MP oder Steca Grid Coolcept Wechselrichter ",-1)])),_:1,__:[1]}),n(i,{title:"Variante",buttons:[{buttonValue:!1,text:"Kostal Piko MP (non-plus)"},{buttonValue:!0,text:"Kostal Piko MP oder Steca Grid Coolcept"}],"model-value":t.component.configuration.variant_steca,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.variant_steca"))},null,8,["model-value"])])}const h=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_steca/inverter.vue"]]);export{h as default}; diff --git a/web/settings/assets/inverter-8ad0f9f7.js b/web/settings/assets/inverter-8ad0f9f7.js new file mode 100644 index 0000000000..1c76e4387e --- /dev/null +++ b/web/settings/assets/inverter-8ad0f9f7.js @@ -0,0 +1 @@ +import{C as e}from"./HardwareInstallation-8066ca79.js";import{_ as n,l as t,m as i}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const o={name:"DeviceBenningInverter",mixins:[e]},r={class:"device-benning-inverter"};function s(p,c,m,a,_,v){return t(),i("div",r)}const C=n(o,[["render",s],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/benning/benning/inverter.vue"]]);export{C as default}; diff --git a/web/settings/assets/inverter-9022a53b.js b/web/settings/assets/inverter-9022a53b.js deleted file mode 100644 index 48df8c2265..0000000000 --- a/web/settings/assets/inverter-9022a53b.js +++ /dev/null @@ -1 +0,0 @@ -import{C as u}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as r,l as d,m as g,G as o,E as l,B as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceVZLoggerInverter",mixins:[u]},f={class:"device-vzlogger-inverter"};function c(n,e,v,b,w,Z){const a=r("openwb-base-heading"),p=r("openwb-base-alert"),i=r("openwb-base-number-input");return d(),g("div",f,[o(a,null,{default:l(()=>e[2]||(e[2]=[s(" Einstellungen für VZLogger Wechselrichter ",-1)])),_:1,__:[2]}),o(p,{subtype:"info"},{default:l(()=>e[3]||(e[3]=[s(' Bitte auf der Shell ausführen: "curl -s IPdesVZLogger:Port | jq .|cat -n" Zählen, in welcher Zeile der gesuchte Wert steht. Bei der ersten Zeile mit 1 anfangen zu zählen. ',-1)])),_:1,__:[3]}),o(i,{title:"Zeile der Leistung",required:"",min:0,"model-value":n.component.configuration.line_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.line_power"))},null,8,["model-value"]),o(i,{title:"Zeile der exportierten Energie (Ertrag)",min:0,"model-value":n.component.configuration.line_exported,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.line_exported"))},null,8,["model-value"])])}const W=m(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/inverter.vue"]]);export{W as default}; diff --git a/web/settings/assets/inverter-9120bfd2.js b/web/settings/assets/inverter-9120bfd2.js new file mode 100644 index 0000000000..60fd661c6f --- /dev/null +++ b/web/settings/assets/inverter-9120bfd2.js @@ -0,0 +1 @@ +import{C as a}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as n,l as p,m as u,G as t,E as d,B as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceHuaweiSmartLoggerInverter",mixins:[a]},_={class:"device-huawei-smart-logger-inverter"};function g(o,e,b,f,v,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return p(),u("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Wechselrichter ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const H=m(c,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/inverter.vue"]]);export{H as default}; diff --git a/web/settings/assets/inverter-948bcdb7.js b/web/settings/assets/inverter-948bcdb7.js deleted file mode 100644 index 194d2d362d..0000000000 --- a/web/settings/assets/inverter-948bcdb7.js +++ /dev/null @@ -1 +0,0 @@ -import{C as s}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as t,l as u,m,G as i,E as d,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"DeviceOpenwbFlexInverter",mixins:[s]},_={class:"device-openwb-flex-inverter"};function b(o,e,f,w,x,g){const r=t("openwb-base-heading"),l=t("openwb-base-select-input"),p=t("openwb-base-number-input");return u(),m("div",_,[i(r,null,{default:d(()=>e[2]||(e[2]=[c(" Einstellungen für openWB-Flex Wechselrichter ",-1)])),_:1,__:[2]}),i(l,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"},{value:3,text:"SDM120"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"]),i(p,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.id"))},null,8,["model-value"])])}const W=a(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/inverter.vue"]]);export{W as default}; diff --git a/web/settings/assets/inverter-95e857e0.js b/web/settings/assets/inverter-95e857e0.js new file mode 100644 index 0000000000..6d8766de55 --- /dev/null +++ b/web/settings/assets/inverter-95e857e0.js @@ -0,0 +1 @@ +import{C as a}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as o,l as p,m as l,G as n,E as d,B as u}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSmartMeInverter",mixins:[a]},_={class:"device-smart-me-inverter"};function f(t,e,v,b,g,x){const r=o("openwb-base-heading"),i=o("openwb-base-text-input");return p(),l("div",_,[n(r,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für smart-me Wechselrichter ",-1)])]),_:1}),n(i,{title:"Geräte-ID",required:"","model-value":t.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const G=m(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/inverter.vue"]]);export{G as default}; diff --git a/web/settings/assets/inverter-96158dd7.js b/web/settings/assets/inverter-96158dd7.js deleted file mode 100644 index a4f42a4ec9..0000000000 --- a/web/settings/assets/inverter-96158dd7.js +++ /dev/null @@ -1 +0,0 @@ -import{C as u}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as r,l as b,m as g,G as i,E as o,B as t,A as n,F as p}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceMqttInverter",mixins:[u]},v={class:"device-mqtt-inverter"};function B(s,e,w,k,x,z){const a=r("openwb-base-heading"),l=r("openwb-base-copy-to-clipboard"),m=r("openwb-base-alert");return b(),g("div",v,[i(a,null,{default:o(()=>e[0]||(e[0]=[t(" Einstellungen für MQTT Wechselrichter ",-1)])),_:1,__:[0]}),i(m,{subtype:"info"},{default:o(()=>[e[14]||(e[14]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),n("ul",null,[n("li",null,[i(l,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/pv/"+p(s.component.id)+"/get/power ",1)]),_:1}),e[1]||(e[1]=n("br",null,null,-1)),e[2]||(e[2]=t(" PV-Leistung in Watt als Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) Beispiel: ",-1)),e[3]||(e[3]=n("span",{class:"text-info"},"-123",-1))])]),e[15]||(e[15]=t(" Falls keine Wert für den Zählerstand übermittelt wird, berechnet openWB den Zählerstand anhand der Leistung. ",-1)),n("ul",null,[n("li",null,[i(l,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/pv/"+p(s.component.id)+"/get/exported ",1)]),_:1}),e[4]||(e[4]=n("br",null,null,-1)),e[5]||(e[5]=t(" Erzeugte Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[6]||(e[6]=n("br",null,null,-1)),e[7]||(e[7]=t(" Beispiel: ",-1)),e[8]||(e[8]=n("span",{class:"text-info"},"123.45",-1))])]),e[16]||(e[16]=t(" Ströme je Phase sind optional, jedoch für phasenbasiertes Lastmanagement in Verbindung mit einem virtuellen Zähler unbedingt erforderlich. Ansonsten erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung an diesem Zähler: ",-1)),n("ul",null,[n("li",null,[i(l,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/pv/"+p(s.component.id)+"/get/currents ",1)]),_:1}),e[9]||(e[9]=n("br",null,null,-1)),e[10]||(e[10]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),e[11]||(e[11]=n("br",null,null,-1)),e[12]||(e[12]=t(" Beispiel: ",-1)),e[13]||(e[13]=n("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])])]),_:1,__:[14,15,16]})])}const Z=d(f,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/inverter.vue"]]);export{Z as default}; diff --git a/web/settings/assets/inverter-97aca950.js b/web/settings/assets/inverter-97aca950.js deleted file mode 100644 index c4992a98f6..0000000000 --- a/web/settings/assets/inverter-97aca950.js +++ /dev/null @@ -1 +0,0 @@ -import{C as a}from"./HardwareInstallation-be759b0c.js";import{_ as p,u as n,l as m,m as c,G as t,E as u,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceKacoInverter",mixins:[a]},_={class:"device-kaco-inverter"};function b(o,e,f,v,g,x){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),c("div",_,[t(i,null,{default:u(()=>e[1]||(e[1]=[d(" Einstellungen für Kaco Wechselrichter ",-1)])),_:1,__:[1]}),t(r,{title:"Kaco-Modbus-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_tx/inverter.vue"]]);export{D as default}; diff --git a/web/settings/assets/inverter-9961dcdb.js b/web/settings/assets/inverter-9961dcdb.js new file mode 100644 index 0000000000..050d026108 --- /dev/null +++ b/web/settings/assets/inverter-9961dcdb.js @@ -0,0 +1 @@ +import{C as u}from"./HardwareInstallation-8066ca79.js";import{_ as d,u as r,l as b,m as g,G as i,E as o,B as t,A as n,F as p}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const f={name:"DeviceMqttInverter",mixins:[u]},v={class:"device-mqtt-inverter"};function B(s,e,w,k,x,z){const a=r("openwb-base-heading"),l=r("openwb-base-copy-to-clipboard"),m=r("openwb-base-alert");return b(),g("div",v,[i(a,null,{default:o(()=>[...e[0]||(e[0]=[t(" Einstellungen für MQTT Wechselrichter ",-1)])]),_:1}),i(m,{subtype:"info"},{default:o(()=>[e[14]||(e[14]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),n("ul",null,[n("li",null,[i(l,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/pv/"+p(s.component.id)+"/get/power ",1)]),_:1}),e[1]||(e[1]=n("br",null,null,-1)),e[2]||(e[2]=t(" PV-Leistung in Watt als Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) Beispiel: ",-1)),e[3]||(e[3]=n("span",{class:"text-info"},"-123",-1))])]),e[15]||(e[15]=t(" Falls keine Wert für den Zählerstand übermittelt wird, berechnet openWB den Zählerstand anhand der Leistung. ",-1)),n("ul",null,[n("li",null,[i(l,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/pv/"+p(s.component.id)+"/get/exported ",1)]),_:1}),e[4]||(e[4]=n("br",null,null,-1)),e[5]||(e[5]=t(" Erzeugte Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[6]||(e[6]=n("br",null,null,-1)),e[7]||(e[7]=t(" Beispiel: ",-1)),e[8]||(e[8]=n("span",{class:"text-info"},"123.45",-1))])]),e[16]||(e[16]=t(" Ströme je Phase sind optional, jedoch für phasenbasiertes Lastmanagement in Verbindung mit einem virtuellen Zähler unbedingt erforderlich. Ansonsten erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung an diesem Zähler: ",-1)),n("ul",null,[n("li",null,[i(l,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[t(" openWB/set/mqtt/pv/"+p(s.component.id)+"/get/currents ",1)]),_:1}),e[9]||(e[9]=n("br",null,null,-1)),e[10]||(e[10]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),e[11]||(e[11]=n("br",null,null,-1)),e[12]||(e[12]=t(" Beispiel: ",-1)),e[13]||(e[13]=n("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])])]),_:1})])}const Z=d(f,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/inverter.vue"]]);export{Z as default}; diff --git a/web/settings/assets/inverter-ac4d7f34.js b/web/settings/assets/inverter-ac4d7f34.js new file mode 100644 index 0000000000..124a151f4b --- /dev/null +++ b/web/settings/assets/inverter-ac4d7f34.js @@ -0,0 +1 @@ +import{C as a}from"./HardwareInstallation-8066ca79.js";import{_ as p,u as t,l as u,m as l,G as n,E as m,B as c}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceKostalPikoInverter",mixins:[a]},_={class:"device-kostal-piko-inverter"};function f(o,e,b,v,g,k){const i=t("openwb-base-heading"),r=t("openwb-base-button-group-input");return u(),l("div",_,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für Kostal Piko Wechselrichter ",-1)])]),_:1}),n(r,{title:"Speicher",buttons:[{buttonValue:!1,text:"nicht vorhanden"},{buttonValue:!0,text:"vorhanden"}],"model-value":o.component.configuration.bat_configured,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.bat_configured"))},null,8,["model-value"])])}const N=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/inverter.vue"]]);export{N as default}; diff --git a/web/settings/assets/inverter-b447983e.js b/web/settings/assets/inverter-b447983e.js deleted file mode 100644 index f22c422017..0000000000 --- a/web/settings/assets/inverter-b447983e.js +++ /dev/null @@ -1 +0,0 @@ -import{C as a}from"./HardwareInstallation-be759b0c.js";import{_ as d,u as n,l as u,m as c,G as t,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceMTecInverter",mixins:[a]},_={class:"device-mtec-inverter"};function b(o,e,f,v,g,w){const s=n("openwb-base-heading"),m=n("openwb-base-number-input");return u(),c("div",_,[t(s,null,{default:i(()=>e[1]||(e[1]=[r(" Einstellungen für M-Tec Wechselrichter ",-1)])),_:1,__:[1]}),t(m,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>e[2]||(e[2]=[r(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])),_:1},8,["model-value"])])}const V=d(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/inverter.vue"]]);export{V as default}; diff --git a/web/settings/assets/inverter-b490ca31.js b/web/settings/assets/inverter-b490ca31.js deleted file mode 100644 index b739db4138..0000000000 --- a/web/settings/assets/inverter-b490ca31.js +++ /dev/null @@ -1 +0,0 @@ -import{C as e}from"./HardwareInstallation-be759b0c.js";import{_ as n,l as t,m as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const o={name:"DeviceBenningInverter",mixins:[e]},r={class:"device-benning-inverter"};function s(p,c,m,a,_,v){return t(),i("div",r)}const C=n(o,[["render",s],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/benning/benning/inverter.vue"]]);export{C as default}; diff --git a/web/settings/assets/inverter-b4a73b4a.js b/web/settings/assets/inverter-b4a73b4a.js new file mode 100644 index 0000000000..69fb6aacd6 --- /dev/null +++ b/web/settings/assets/inverter-b4a73b4a.js @@ -0,0 +1 @@ +import{C as u}from"./HardwareInstallation-8066ca79.js";import{_ as a,u as t,l as p,m as l,G as n,E as m,B as c}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceYoulessInverter",mixins:[u]},d={class:"device-youless-inverter"};function f(o,e,b,v,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-button-group-input");return p(),l("div",d,[n(s,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für Youless LS120 Wechselrichter ",-1)])]),_:1}),n(i,{title:"S0-Eingang auslesen",buttons:[{buttonValue:!1,text:"nein"},{buttonValue:!0,text:"ja"}],"model-value":o.component.configuration.source_s0,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.source_s0"))},null,8,["model-value"])])}const N=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/youless/youless/inverter.vue"]]);export{N as default}; diff --git a/web/settings/assets/inverter-b4deb54d.js b/web/settings/assets/inverter-b4deb54d.js new file mode 100644 index 0000000000..dd00852794 --- /dev/null +++ b/web/settings/assets/inverter-b4deb54d.js @@ -0,0 +1 @@ +import{C as a}from"./HardwareInstallation-8066ca79.js";import{_ as p,u as n,l as m,m as d,G as t,E as l,B as u}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolaredgeInverter",mixins:[a]},_={class:"device-solaredge-inverter"};function f(o,e,g,b,v,w){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),d("div",_,[t(r,null,{default:l(()=>[...e[1]||(e[1]=[u(" Einstellungen für SolarEdge Wechselrichter ",-1)])]),_:1}),t(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/inverter.vue"]]);export{D as default}; diff --git a/web/settings/assets/inverter-b99fda43.js b/web/settings/assets/inverter-b99fda43.js deleted file mode 100644 index a344ebe2a6..0000000000 --- a/web/settings/assets/inverter-b99fda43.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as n,l as m,m as l,G as t,E as u,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceSolisInverter",mixins:[p]},c={class:"device-solis-inverter"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",c,[t(i,null,{default:u(()=>e[1]||(e[1]=[d(" Einstellungen für Solis Wechselrichter ",-1)])),_:1,__:[1]}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const I=a(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/inverter.vue"]]);export{I as default}; diff --git a/web/settings/assets/inverter-bc849b92.js b/web/settings/assets/inverter-bc849b92.js deleted file mode 100644 index 7004eb0701..0000000000 --- a/web/settings/assets/inverter-bc849b92.js +++ /dev/null @@ -1 +0,0 @@ -import{C as e}from"./HardwareInstallation-be759b0c.js";import{_ as t,l as o,m as n}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const r={name:"DeviceOpenDTUInverter",mixins:[e]},i={class:"device-opendtu-inverter"};function p(s,c,m,a,_,d){return o(),n("div",i)}const h=t(r,[["render",p],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/opendtu/opendtu/inverter.vue"]]);export{h as default}; diff --git a/web/settings/assets/inverter-ca193c42.js b/web/settings/assets/inverter-ca193c42.js new file mode 100644 index 0000000000..759a29dccb --- /dev/null +++ b/web/settings/assets/inverter-ca193c42.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-8066ca79.js";import{_ as l,u as n,l as d,m as c,G as t,E as i,B as r}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const u={name:"DeviceSolarViewInverter",mixins:[p]},_={class:"device-solar-view-inverter"};function f(o,e,v,g,w,b){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return d(),c("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für SolarView Wechselrichter ",-1)])]),_:1}),t(a,{title:"Kommando für die Abfrage",required:"","model-value":o.component.configuration.command,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.command"))},{help:i(()=>[...e[2]||(e[2]=[r(" Kommandos gemäß SolarView-Dokumentation, z.B.: 00* (gesamte Anlage), 01* (Wechselrichter 1), 02* (Wechselrichter 2) ",-1)])]),_:1},8,["model-value"])])}const S=l(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/solar_view/inverter.vue"]]);export{S as default}; diff --git a/web/settings/assets/inverter-d41890ab.js b/web/settings/assets/inverter-d41890ab.js deleted file mode 100644 index ecb976821d..0000000000 --- a/web/settings/assets/inverter-d41890ab.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as o,l,m as u,G as n,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbEvukitInverter",mixins:[p]},v={class:"device-openwb-evukit-inverter"};function _(t,e,f,b,w,g){const i=o("openwb-base-heading"),r=o("openwb-base-select-input");return l(),u("div",v,[n(i,null,{default:m(()=>e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Wechselrichter ",-1)])),_:1,__:[1]}),n(r,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.version"))},null,8,["model-value"])])}const $=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/inverter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/inverter-d8e7de15.js b/web/settings/assets/inverter-d8e7de15.js deleted file mode 100644 index 0091e52784..0000000000 --- a/web/settings/assets/inverter-d8e7de15.js +++ /dev/null @@ -1 +0,0 @@ -import{C as a}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as n,l as p,m as u,G as t,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceHuaweiSmartLoggerInverter",mixins:[a]},c={class:"device-huawei-smart-logger-inverter"};function g(o,e,b,f,v,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return p(),u("div",c,[t(i,null,{default:d(()=>e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Wechselrichter ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const H=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/inverter.vue"]]);export{H as default}; diff --git a/web/settings/assets/inverter-e626a82d.js b/web/settings/assets/inverter-e626a82d.js deleted file mode 100644 index 0f94e77a2c..0000000000 --- a/web/settings/assets/inverter-e626a82d.js +++ /dev/null @@ -1 +0,0 @@ -import{C as d}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as r,l as u,m as c,G as n,E as i,B as o,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"DeviceDiscovergyInverter",mixins:[d]},_={class:"device-discovergy-inverter"};function f(t,e,g,b,w,h){const s=r("openwb-base-heading"),a=r("openwb-base-text-input");return u(),c("div",_,[n(s,null,{default:i(()=>e[1]||(e[1]=[o(" Einstellungen für Discovergy Wechselrichter ",-1)])),_:1,__:[1]}),n(a,{title:"Meter-ID",required:"","model-value":t.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.meter_id"))},{help:i(()=>e[2]||(e[2]=[o(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),l("a",{href:"https://api.discovergy.com/public/v1/meters",target:"_blank",rel:"noopener noreferrer"}," https://api.discovergy.com/public/v1/meters ",-1),o(" aufrufen und dort Benutzername und Passwort eingeben. Hier wird nun u.a. die ID des Zählers angezeigt. ",-1)])),_:1},8,["model-value"])])}const z=m(v,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/inverter.vue"]]);export{z as default}; diff --git a/web/settings/assets/inverter-e73b2e99.js b/web/settings/assets/inverter-e73b2e99.js new file mode 100644 index 0000000000..1ed7dc6212 --- /dev/null +++ b/web/settings/assets/inverter-e73b2e99.js @@ -0,0 +1 @@ +import{C as p}from"./HardwareInstallation-8066ca79.js";import{_ as a,u as o,l,m as u,G as n,E as m,B as c}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceOpenwbEvukitInverter",mixins:[p]},v={class:"device-openwb-evukit-inverter"};function _(t,e,f,b,w,g){const i=o("openwb-base-heading"),r=o("openwb-base-select-input");return l(),u("div",v,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Wechselrichter ",-1)])]),_:1}),n(r,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.version"))},null,8,["model-value"])])}const $=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/inverter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/inverter-e923e9ca.js b/web/settings/assets/inverter-e923e9ca.js new file mode 100644 index 0000000000..2bef239737 --- /dev/null +++ b/web/settings/assets/inverter-e923e9ca.js @@ -0,0 +1 @@ +import{C as a}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as n,l as p,m as l,G as t,E as u,B as d}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const c={name:"DeviceSolarmaxInverter",mixins:[a]},_={class:"device-solarmax-inverter"};function b(o,e,f,v,x,g){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return p(),l("div",_,[t(r,null,{default:u(()=>[...e[1]||(e[1]=[d(" Einstellungen für Solarmax Wechselrichter ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const I=m(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/inverter.vue"]]);export{I as default}; diff --git a/web/settings/assets/inverter-ea38ab2a.js b/web/settings/assets/inverter-ea38ab2a.js deleted file mode 100644 index dba508baaa..0000000000 --- a/web/settings/assets/inverter-ea38ab2a.js +++ /dev/null @@ -1 +0,0 @@ -import{C as u}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as t,l as p,m as l,G as n,E as m,B as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceYoulessInverter",mixins:[u]},d={class:"device-youless-inverter"};function f(o,e,b,v,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-button-group-input");return p(),l("div",d,[n(s,null,{default:m(()=>e[1]||(e[1]=[c(" Einstellungen für Youless LS120 Wechselrichter ",-1)])),_:1,__:[1]}),n(i,{title:"S0-Eingang auslesen",buttons:[{buttonValue:!1,text:"nein"},{buttonValue:!0,text:"ja"}],"model-value":o.component.configuration.source_s0,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.source_s0"))},null,8,["model-value"])])}const N=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/youless/youless/inverter.vue"]]);export{N as default}; diff --git a/web/settings/assets/inverter-f1be98fb.js b/web/settings/assets/inverter-f1be98fb.js deleted file mode 100644 index 107eb1882b..0000000000 --- a/web/settings/assets/inverter-f1be98fb.js +++ /dev/null @@ -1 +0,0 @@ -import{C as u}from"./HardwareInstallation-be759b0c.js";import{_ as l,u as t,l as m,m as c,G as r,E as i,B as n,A as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"DevicePowerfoxInverter",mixins:[u]},_={class:"device-powerfox-inverter"};function b(o,e,g,v,w,x){const a=t("openwb-base-heading"),p=t("openwb-base-text-input");return m(),c("div",_,[r(a,null,{default:i(()=>e[1]||(e[1]=[n(" Einstellungen für Powerfox Wechselrichter ",-1)])),_:1,__:[1]}),r(p,{title:"ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=d=>o.updateConfiguration(d,"configuration.id"))},{help:i(()=>e[2]||(e[2]=[n(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),s("a",{href:"https://backend.powerfox.energy/api/2.0/my/all/devices",target:"_blank",rel:"noopener noreferrer"}," https://backend.powerfox.energy/api/2.0/my/all/devices ",-1),n(" aufrufen und dort Benutzername und Passwort eingeben. Die DeviceID ist exakt so einzutragen, wie in der Antwort des Servers. Das bedeutet insbesondere auch, die Groß-/Kleinschreibung ist zu beachten! In dem Feld ist nur die Zeichenfolge direkt hinter ",-1),s("span",{class:"font-weight-bold text-monospace",style:{display:"contents"}},' "DeviceID" ',-1),n(" ohne den Doppelpunkt und Anführungszeichen einzutragen. ",-1)])),_:1},8,["model-value"])])}const V=l(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/inverter.vue"]]);export{V as default}; diff --git a/web/settings/assets/inverter-f377a9ba.js b/web/settings/assets/inverter-f377a9ba.js new file mode 100644 index 0000000000..a96d15cd58 --- /dev/null +++ b/web/settings/assets/inverter-f377a9ba.js @@ -0,0 +1 @@ +import{C as s}from"./HardwareInstallation-8066ca79.js";import{_ as d,u as n,l as m,m as c,G as r,E as i,B as a}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceStuderInverter",mixins:[s]},b={class:"device-studer-inverter"};function v(t,e,f,g,V,S){const u=n("openwb-base-heading"),p=n("openwb-base-button-group-input"),l=n("openwb-base-number-input");return m(),c("div",b,[r(u,null,{default:i(()=>[...e[2]||(e[2]=[a(" Einstellungen für Studer Wechselrichter ",-1)])]),_:1}),r(p,{title:"Typ der MPPT Solarladeregler",buttons:[{buttonValue:"VT",text:"Variotrack (VT-40/VT-65/VT-80)"},{buttonValue:"VS",text:"VarioString (VS-70/VS-120)"}],"model-value":t.component.configuration.vc_type,required:"","onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.vc_type"))},null,8,["model-value"]),r(l,{title:"Anzahl MPPT Solarladeregler",required:"",min:1,max:9,"model-value":t.component.configuration.vc_count,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.vc_count"))},{help:i(()=>[...e[3]||(e[3]=[a(" Anzahl (1-9) der Studer MPPT Solarladeregler im System (VS/VT) ",-1)])]),_:1},8,["model-value"])])}const k=d(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/inverter.vue"]]);export{k as default}; diff --git a/web/settings/assets/inverter-f4ccd46a.js b/web/settings/assets/inverter-f4ccd46a.js deleted file mode 100644 index 95040fe63b..0000000000 --- a/web/settings/assets/inverter-f4ccd46a.js +++ /dev/null @@ -1 +0,0 @@ -import{C as p}from"./HardwareInstallation-be759b0c.js";import{_ as a,u as n,l as m,m as d,G as t,E as u,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const _={name:"DeviceDeyeInverter",mixins:[p]},c={class:"device-deye-inverter"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),d("div",c,[t(i,null,{default:u(()=>e[1]||(e[1]=[l(" Einstellungen für Deye Wechselrichter ",-1)])),_:1,__:[1]}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const k=a(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/inverter.vue"]]);export{k as default}; diff --git a/web/settings/assets/inverter-f4d336b7.js b/web/settings/assets/inverter-f4d336b7.js new file mode 100644 index 0000000000..7440c04799 --- /dev/null +++ b/web/settings/assets/inverter-f4d336b7.js @@ -0,0 +1 @@ +import{C as s}from"./HardwareInstallation-8066ca79.js";import{_ as d,u as a,l as p,m,G as o,E as l,B as i,A as f}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceJsonInverter",mixins:[s]},b={class:"device-json-inverter"};function v(n,e,w,c,j,_){const u=a("openwb-base-heading"),r=a("openwb-base-text-input");return p(),m("div",b,[o(u,null,{default:l(()=>[...e[5]||(e[5]=[i(" Einstellungen für JSON Wechselrichter ",-1)])]),_:1}),o(r,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":n.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.jq_power"))},{help:l(()=>[...e[6]||(e[6]=[i(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),f("br",null,null,-1),i(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) ",-1)])]),_:1},8,["model-value"]),o(r,{title:"Abfrage für Zählerstand",subtype:"text","model-value":n.component.configuration.jq_exported,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.jq_exported"))},{help:l(()=>[...e[7]||(e[7]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":n.component.configuration.jq_current_l1,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.jq_current_l1"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":n.component.configuration.jq_current_l2,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.jq_current_l2"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":n.component.configuration.jq_current_l3,"onUpdate:modelValue":e[4]||(e[4]=t=>n.updateConfiguration(t,"configuration.jq_current_l3"))},null,8,["model-value"])])}const k=d(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/inverter.vue"]]);export{k as default}; diff --git a/web/settings/assets/inverter-f8595260.js b/web/settings/assets/inverter-f8595260.js new file mode 100644 index 0000000000..ea9bb58988 --- /dev/null +++ b/web/settings/assets/inverter-f8595260.js @@ -0,0 +1 @@ +import{C as a}from"./HardwareInstallation-8066ca79.js";import{_ as d,u as n,l as u,m as c,G as t,E as i,B as r}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const l={name:"DeviceMTecInverter",mixins:[a]},_={class:"device-mtec-inverter"};function b(o,e,f,v,g,w){const s=n("openwb-base-heading"),m=n("openwb-base-number-input");return u(),c("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für M-Tec Wechselrichter ",-1)])]),_:1}),t(m,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[r(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])]),_:1},8,["model-value"])])}const V=d(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/inverter.vue"]]);export{V as default}; diff --git a/web/settings/assets/inverter-fbc7ce2f.js b/web/settings/assets/inverter-fbc7ce2f.js new file mode 100644 index 0000000000..26cb74ad95 --- /dev/null +++ b/web/settings/assets/inverter-fbc7ce2f.js @@ -0,0 +1 @@ +import{C as m}from"./HardwareInstallation-8066ca79.js";import{_ as d,u as o,l as u,m as l,G as t,E as i,B as r}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceSigenergyInverter",mixins:[m]},_={class:"device-sigenergy-inverter"};function c(n,e,b,f,v,w){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return u(),l("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für Sigenergy Wechselrichter ",-1)])]),_:1}),t(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[r(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])]),_:1},8,["model-value"])])}const M=d(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/inverter.vue"]]);export{M as default}; diff --git a/web/settings/assets/inverter-fd3f7e7e.js b/web/settings/assets/inverter-fd3f7e7e.js new file mode 100644 index 0000000000..2da4cba898 --- /dev/null +++ b/web/settings/assets/inverter-fd3f7e7e.js @@ -0,0 +1 @@ +import{C as r}from"./HardwareInstallation-8066ca79.js";import{_ as p,u as o,l,m as u,G as n,E as c,B as m}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const d={name:"DeviceKostalStecaInverter",mixins:[r]},_={class:"device-kostal-steca-inverter"};function f(t,e,v,b,g,k){const a=o("openwb-base-heading"),i=o("openwb-base-button-group-input");return l(),u("div",_,[n(a,null,{default:c(()=>[...e[1]||(e[1]=[m(" Einstellungen für Kostal Piko MP oder Steca Grid Coolcept Wechselrichter ",-1)])]),_:1}),n(i,{title:"Variante",buttons:[{buttonValue:!1,text:"Kostal Piko MP (non-plus)"},{buttonValue:!0,text:"Kostal Piko MP oder Steca Grid Coolcept"}],"model-value":t.component.configuration.variant_steca,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.variant_steca"))},null,8,["model-value"])])}const h=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_steca/inverter.vue"]]);export{h as default}; diff --git a/web/settings/assets/inverter_secondary-456c249b.js b/web/settings/assets/inverter_secondary-456c249b.js new file mode 100644 index 0000000000..1f29645e8a --- /dev/null +++ b/web/settings/assets/inverter_secondary-456c249b.js @@ -0,0 +1 @@ +import{C as u}from"./HardwareInstallation-8066ca79.js";import{_ as m,u as t,l as f,m as c,G as i,E as s,B as n,A as a,F as g}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const w={name:"DeviceFroniusInverterSecondary",mixins:[u],computed:{powerFlowUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetPowerFlowRealtimeData.fcgi?Scope=System`}}}},_={class:"device-fronius-inverter-secondary"},v=["href"];function b(r,e,D,k,h,o){const d=t("openwb-base-heading"),l=t("openwb-base-number-input");return f(),c("div",_,[i(d,null,{default:s(()=>[...e[1]||(e[1]=[n(" Einstellungen für einen sekundären Wechselrichter ",-1)])]),_:1}),i(l,{title:"ID","model-value":r.component.configuration.id,min:"0",required:"","onUpdate:modelValue":e[0]||(e[0]=p=>r.updateConfiguration(p,"configuration.id"))},{help:s(()=>[e[2]||(e[2]=n(" Die ID des sekundären Wechselrichters. Diese ist für jede Installation individuell und muss ermittelt werden. Dafür kann der folgende Link verwendet werden. Die ID kann den zurückgegebenen JSON entnommen werden. ",-1)),a("a",{href:o.powerFlowUrl,target:"_blank",rel:"noopener noreferrer"},g(o.powerFlowUrl),9,v),e[3]||(e[3]=a("br",null,null,-1)),e[4]||(e[4]=n(' Im Abschnitt "Body" -> "Data" -> "SecondaryMeters" werden die installierten Zähler angezeigt. Die ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Daten. ',-1))]),_:1},8,["model-value"])])}const V=m(w,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/inverter_secondary.vue"]]);export{V as default}; diff --git a/web/settings/assets/inverter_secondary-be8c6f76.js b/web/settings/assets/inverter_secondary-be8c6f76.js deleted file mode 100644 index 456b6ae0d6..0000000000 --- a/web/settings/assets/inverter_secondary-be8c6f76.js +++ /dev/null @@ -1 +0,0 @@ -import{C as u}from"./HardwareInstallation-be759b0c.js";import{_ as m,u as t,l as f,m as c,G as i,E as s,B as n,A as a,F as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"DeviceFroniusInverterSecondary",mixins:[u],computed:{powerFlowUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetPowerFlowRealtimeData.fcgi?Scope=System`}}}},w={class:"device-fronius-inverter-secondary"},v=["href"];function b(r,e,D,k,h,o){const d=t("openwb-base-heading"),l=t("openwb-base-number-input");return f(),c("div",w,[i(d,null,{default:s(()=>e[1]||(e[1]=[n(" Einstellungen für einen sekundären Wechselrichter ",-1)])),_:1,__:[1]}),i(l,{title:"ID","model-value":r.component.configuration.id,min:"0",required:"","onUpdate:modelValue":e[0]||(e[0]=p=>r.updateConfiguration(p,"configuration.id"))},{help:s(()=>[e[2]||(e[2]=n(" Die ID des sekundären Wechselrichters. Diese ist für jede Installation individuell und muss ermittelt werden. Dafür kann der folgende Link verwendet werden. Die ID kann den zurückgegebenen JSON entnommen werden. ",-1)),a("a",{href:o.powerFlowUrl,target:"_blank",rel:"noopener noreferrer"},_(o.powerFlowUrl),9,v),e[3]||(e[3]=a("br",null,null,-1)),e[4]||(e[4]=n(' Im Abschnitt "Body" -> "Data" -> "SecondaryMeters" werden die installierten Zähler angezeigt. Die ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Daten. ',-1))]),_:1},8,["model-value"])])}const V=m(g,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/inverter_secondary.vue"]]);export{V as default}; diff --git a/web/settings/assets/io_action-7fdda1cd.js b/web/settings/assets/io_action-3c4c6f74.js similarity index 60% rename from web/settings/assets/io_action-7fdda1cd.js rename to web/settings/assets/io_action-3c4c6f74.js index 38f3814035..7954360b68 100644 --- a/web/settings/assets/io_action-7fdda1cd.js +++ b/web/settings/assets/io_action-3c4c6f74.js @@ -1 +1 @@ -import{a as d}from"./IoConfig-38958e2e.js";import{O as m}from"./OpenwbIoPattern-66bb2793.js";import{_ as c,u as r,l as v,m as f,G as a,E as u,A as g,B as b,N as _}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const w={name:"IoActionRippleControlReceiver",components:{OpenwbIoPattern:m},mixins:[d],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(t){this.updateConfiguration(t,"configuration.input_pattern")}},availableDevices(){return[{label:this.availableChargePoints.length>0?"Ladepunkte":"Keine Ladepunkte verfügbar",options:this.availableChargePoints.map(e=>({value:{type:"cp",id:e.value},text:e.text}))}]}}};function V(t,e,h,x,C,o){var l;const i=r("openwb-base-select-input"),p=r("openwb-io-pattern");return v(),f(_,null,[a(p,{modelValue:o.value,"onUpdate:modelValue":e[0]||(e[0]=n=>o.value=n),contacts:t.ioDevice.input.digital,"enable-add-delete":!0,"min-patterns":2},{default:u(n=>[a(i,{modelValue:n.pattern.value,"onUpdate:modelValue":s=>n.pattern.value=s,required:"","not-selected":"Bitte auswählen","empty-value":null,options:[{value:0,text:"sperren"},{value:1,text:"freigeben"}]},null,8,["modelValue","onUpdate:modelValue"])]),_:1},8,["modelValue","contacts"]),e[3]||(e[3]=g("hr",null,null,-1)),a(i,{title:"Anwenden auf...","empty-value":[],groups:o.availableDevices,required:"",multiple:"","model-value":(l=t.ioAction)==null?void 0:l.configuration.devices,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.devices"))},{help:u(()=>e[2]||(e[2]=[b(" Bitte die Ladepunkte auswählen, auf die das Verhalten angewendet werden soll. Es können mehrere Einträge ausgewählt werden. ",-1)])),_:1},8,["groups","model-value"])],64)}const O=c(w,[["render",V],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/ripple_control_receiver/io_action.vue"]]);export{O as default}; +import{a as d}from"./IoConfig-20eaec88.js";import{O as m}from"./OpenwbIoPattern-573b772f.js";import{_ as c,u as r,l as v,m as f,G as a,E as u,A as g,B as b,N as _}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const w={name:"IoActionRippleControlReceiver",components:{OpenwbIoPattern:m},mixins:[d],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(t){this.updateConfiguration(t,"configuration.input_pattern")}},availableDevices(){return[{label:this.availableChargePoints.length>0?"Ladepunkte":"Keine Ladepunkte verfügbar",options:this.availableChargePoints.map(e=>({value:{type:"cp",id:e.value},text:e.text}))}]}}};function V(t,e,h,x,C,o){var l;const i=r("openwb-base-select-input"),p=r("openwb-io-pattern");return v(),f(_,null,[a(p,{modelValue:o.value,"onUpdate:modelValue":e[0]||(e[0]=n=>o.value=n),contacts:t.ioDevice.input.digital,"enable-add-delete":!0,"min-patterns":2},{default:u(n=>[a(i,{modelValue:n.pattern.value,"onUpdate:modelValue":s=>n.pattern.value=s,required:"","not-selected":"Bitte auswählen","empty-value":null,options:[{value:0,text:"sperren"},{value:1,text:"freigeben"}]},null,8,["modelValue","onUpdate:modelValue"])]),_:1},8,["modelValue","contacts"]),e[3]||(e[3]=g("hr",null,null,-1)),a(i,{title:"Anwenden auf...","empty-value":[],groups:o.availableDevices,required:"",multiple:"","model-value":(l=t.ioAction)==null?void 0:l.configuration.devices,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.devices"))},{help:u(()=>[...e[2]||(e[2]=[b(" Bitte die Ladepunkte auswählen, auf die das Verhalten angewendet werden soll. Es können mehrere Einträge ausgewählt werden. ",-1)])]),_:1},8,["groups","model-value"])],64)}const O=c(w,[["render",V],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/ripple_control_receiver/io_action.vue"]]);export{O as default}; diff --git a/web/settings/assets/io_action-639b3028.js b/web/settings/assets/io_action-639b3028.js deleted file mode 100644 index e94573e927..0000000000 --- a/web/settings/assets/io_action-639b3028.js +++ /dev/null @@ -1 +0,0 @@ -import{a as f}from"./IoConfig-38958e2e.js";import{O as b}from"./OpenwbIoPattern-66bb2793.js";import{_ as v,u as r,l as p,m as w,G as l,E as a,B as i,F as g,A as s,x as A,z as V,N as h}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const k={name:"IoActionStepwiseControl",components:{OpenwbIoPattern:b},mixins:[f],computed:{availableDevices(){let t=this.availableComponents.filter(o=>o.type==="inverter").map(o=>({value:{type:o.type,id:o.value},text:o.text}));return[{label:t.length>0?"Wechselrichter":"Keine Wechselrichter verfügbar",options:t}]}}};function _(t,e,o,B,z,d){const u=r("openwb-io-pattern"),m=r("openwb-base-select-input"),c=r("openwb-base-button-group-input");return p(),w(h,null,[l(u,{modelValue:t.ioAction.configuration.input_pattern,"onUpdate:modelValue":e[0]||(e[0]=n=>t.ioAction.configuration.input_pattern=n),contacts:t.ioDevice.input.digital,"action-title":"Begrenzung","enable-add-delete":!1,class:"text-center"},{default:a(n=>[i(g(n.pattern.value*100+"%"),1)]),_:1},8,["modelValue","contacts"]),e[6]||(e[6]=s("hr",null,null,-1)),l(m,{modelValue:t.ioAction.configuration.devices,"onUpdate:modelValue":e[1]||(e[1]=n=>t.ioAction.configuration.devices=n),title:"Zugeordnete Erzeugungsanlagen...","not-selected":"Bitte auswählen","empty-value":[],groups:d.availableDevices,required:"",multiple:""},{help:a(()=>e[4]||(e[4]=[i(" Bitte die Erzeugungsanlagen auswählen, welche mit dieser Aktion gekoppelt sind. Es können mehrere Erzeugungsanlagen ausgewählt werden.",-1),s("br",null,null,-1),i(" Diese Zuordnung ist rein informativ und hat noch keine Auswirkungen auf die Funktionalität. Die Begrenzung der zugeordneten Erzeugungsanlagen wird im Status angezeigt. ",-1)])),_:1},8,["modelValue","groups"]),e[7]||(e[7]=s("hr",null,null,-1)),l(c,{modelValue:t.ioAction.configuration.passthrough_enabled,"onUpdate:modelValue":e[2]||(e[2]=n=>t.ioAction.configuration.passthrough_enabled=n),title:"Ausgänge aktivieren",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],class:"mb-2",required:""},{help:a(()=>e[5]||(e[5]=[i(' Optional kann das Signal der konfigurierten Eingänge an Ausgänge durchgereicht ("durchgeschliffen") werden. Wird z.B. das Muster für 60% als aktiv erkannt, dann wird auch das hier festgelegte Ausgangsmuster für 60% aktiviert. ',-1)])),_:1},8,["modelValue"]),t.ioAction.configuration.passthrough_enabled?(p(),A(u,{key:0,modelValue:t.ioAction.configuration.output_pattern,"onUpdate:modelValue":e[3]||(e[3]=n=>t.ioAction.configuration.output_pattern=n),contacts:t.ioDevice.output.digital,title:"Ausgangsmuster","action-title":"Begrenzung","enable-add-delete":!1,class:"text-center","show-check-pattern":!1},{default:a(n=>[i(g(n.pattern.value*100+"%"),1)]),_:1},8,["modelValue","contacts"])):V("",!0)],64)}const F=v(k,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/generator_systems/stepwise_control/io_action.vue"]]);export{F as default}; diff --git a/web/settings/assets/io_action-a52c3f8c.js b/web/settings/assets/io_action-82034a26.js similarity index 50% rename from web/settings/assets/io_action-a52c3f8c.js rename to web/settings/assets/io_action-82034a26.js index e449bb9d75..fd50faf49f 100644 --- a/web/settings/assets/io_action-a52c3f8c.js +++ b/web/settings/assets/io_action-82034a26.js @@ -1 +1 @@ -import{a as v}from"./IoConfig-38958e2e.js";import{O as h}from"./OpenwbIoSinglePattern-14df64f6.js";import{_ as w,u as r,l as _,m as k,G as u,A as p,E as V,B as g,N as A}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const x={name:"IoActionDimming",components:{OpenwbIoSinglePattern:h},mixins:[v],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(t){this.updateConfiguration(t,"configuration.input_pattern")}},ioDevicesOutputOptions(){let t=[];return this.availableIoDevices.forEach(e=>{let o=[];Object.keys(e==null?void 0:e.output.digital).forEach(a=>{o.push({text:`${a}`,value:{type:"io",id:e.id,digital_output:a}})}),o.length>0&&t.push({label:e.name,options:o})}),t},availableDevices(){return[{label:"Ladepunkte",options:this.availableChargePoints.map(t=>({value:{type:"cp",id:t.value},text:t.text}))}].concat(this.ioDevicesOutputOptions)}}};function E(t,e,o,a,O,n){var s,l,d,m;const c=r("openwb-io-single-pattern"),b=r("openwb-base-number-input"),f=r("openwb-base-select-input");return _(),k(A,null,[u(c,{modelValue:n.value,"onUpdate:modelValue":e[0]||(e[0]=i=>n.value=i),contacts:(l=(s=t.ioDevice)==null?void 0:s.input)==null?void 0:l.digital},null,8,["modelValue","contacts"]),u(b,{title:"maximale Bezugsleistung",unit:"kW",min:"0",step:"0.01",required:"",disabled:!(Object.keys(n.value[0].matrix).length>0),"model-value":((d=t.ioAction)==null?void 0:d.configuration.max_import_power)/1e3,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i*1e3,"configuration.max_import_power"))},null,8,["disabled","model-value"]),e[4]||(e[4]=p("hr",null,null,-1)),u(f,{title:"Anwenden auf...",groups:n.availableDevices,required:"",multiple:"",disabled:!(Object.keys(n.value[0].matrix).length>0),"model-value":(m=t.ioAction)==null?void 0:m.configuration.devices,"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateConfiguration(i,"configuration.devices"))},{help:V(()=>e[3]||(e[3]=[g(" Bitte die Ladepunkte und/oder digitale Ausgänge auswählen, welche berücksichtigt werden sollen. Es können mehrere Einträge ausgewählt werden. Bei steuerbaren Verbrauchseinrichtungen, die über einen digitalen Ausgang angesteuert werden, wird eine Leistung von 4,2 kW bei aktiver Dimmung angenommen. Ladepunkte werden so gesteuert, dass die angegebene Leistung am EVU-Punkt nicht überschritten wird. Eigene PV-Erzeugung und vorhandene Speicher werden berücksichtigt und zusätzlich genutzt.",-1),p("br",null,null,-1),g(' Zugeordnete digitale Ausgänge werden im nicht gedimmten Zustand aktiviert und im gedimmten Zustand deaktiviert. So ist sichergestellt, dass bei einem Verbindungsabbruch oder einem Ausfall der Steuerung die Verbraucher nicht ungewollt mit voller Leistung betrieben werden. Ein mit "NO" bezeichneter digitaler Ausgang ist also für den nicht gedimmten Zustand geschlossen und bei aktivierter Dimmung geöffnet. ',-1)])),_:1},8,["groups","disabled","model-value"])],64)}const U=w(x,[["render",E],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/dimming/io_action.vue"]]);export{U as default}; +import{a as v}from"./IoConfig-20eaec88.js";import{O as h}from"./OpenwbIoSinglePattern-67be81d3.js";import{_ as w,u as r,l as _,m as k,G as u,A as p,E as V,B as g,N as A}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const x={name:"IoActionDimming",components:{OpenwbIoSinglePattern:h},mixins:[v],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(t){this.updateConfiguration(t,"configuration.input_pattern")}},ioDevicesOutputOptions(){let t=[];return this.availableIoDevices.forEach(e=>{let o=[];Object.keys(e==null?void 0:e.output.digital).forEach(a=>{o.push({text:`${a}`,value:{type:"io",id:e.id,digital_output:a}})}),o.length>0&&t.push({label:e.name,options:o})}),t},availableDevices(){return[{label:"Ladepunkte",options:this.availableChargePoints.map(t=>({value:{type:"cp",id:t.value},text:t.text}))}].concat(this.ioDevicesOutputOptions)}}};function E(t,e,o,a,O,n){var s,l,d,m;const c=r("openwb-io-single-pattern"),b=r("openwb-base-number-input"),f=r("openwb-base-select-input");return _(),k(A,null,[u(c,{modelValue:n.value,"onUpdate:modelValue":e[0]||(e[0]=i=>n.value=i),contacts:(l=(s=t.ioDevice)==null?void 0:s.input)==null?void 0:l.digital},null,8,["modelValue","contacts"]),u(b,{title:"maximale Bezugsleistung",unit:"kW",min:"0",step:"0.01",required:"",disabled:!(Object.keys(n.value[0].matrix).length>0),"model-value":((d=t.ioAction)==null?void 0:d.configuration.max_import_power)/1e3,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i*1e3,"configuration.max_import_power"))},null,8,["disabled","model-value"]),e[4]||(e[4]=p("hr",null,null,-1)),u(f,{title:"Anwenden auf...",groups:n.availableDevices,required:"",multiple:"",disabled:!(Object.keys(n.value[0].matrix).length>0),"model-value":(m=t.ioAction)==null?void 0:m.configuration.devices,"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateConfiguration(i,"configuration.devices"))},{help:V(()=>[...e[3]||(e[3]=[g(" Bitte die Ladepunkte und/oder digitale Ausgänge auswählen, welche berücksichtigt werden sollen. Es können mehrere Einträge ausgewählt werden. Bei steuerbaren Verbrauchseinrichtungen, die über einen digitalen Ausgang angesteuert werden, wird eine Leistung von 4,2 kW bei aktiver Dimmung angenommen. Ladepunkte werden so gesteuert, dass die angegebene Leistung am EVU-Punkt nicht überschritten wird. Eigene PV-Erzeugung und vorhandene Speicher werden berücksichtigt und zusätzlich genutzt.",-1),p("br",null,null,-1),g(' Zugeordnete digitale Ausgänge werden im nicht gedimmten Zustand aktiviert und im gedimmten Zustand deaktiviert. So ist sichergestellt, dass bei einem Verbindungsabbruch oder einem Ausfall der Steuerung die Verbraucher nicht ungewollt mit voller Leistung betrieben werden. Ein mit "NO" bezeichneter digitaler Ausgang ist also für den nicht gedimmten Zustand geschlossen und bei aktivierter Dimmung geöffnet. ',-1)])]),_:1},8,["groups","disabled","model-value"])],64)}const U=w(x,[["render",E],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/dimming/io_action.vue"]]);export{U as default}; diff --git a/web/settings/assets/io_action-d6457738.js b/web/settings/assets/io_action-8211f02f.js similarity index 59% rename from web/settings/assets/io_action-d6457738.js rename to web/settings/assets/io_action-8211f02f.js index ca630ef490..8fc84fecda 100644 --- a/web/settings/assets/io_action-d6457738.js +++ b/web/settings/assets/io_action-8211f02f.js @@ -1 +1 @@ -import{a as g}from"./IoConfig-38958e2e.js";import{O as c}from"./OpenwbIoSinglePattern-14df64f6.js";import{_ as f,u,l as b,m as v,G as p,A as h,E as _,B as w,N as V}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const k={name:"IoActionDimmingDirectControl",components:{OpenwbIoSinglePattern:c},mixins:[g],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(t){this.updateConfiguration(t,"configuration.input_pattern")}},ioDevicesOutputOptions(){let t=[];return this.availableIoDevices.forEach(e=>{let n=[];Object.keys(e==null?void 0:e.output.digital).forEach(i=>{n.push({text:`${i}`,value:{type:"io",id:e.id,digital_output:i}})}),n.length>0&&t.push({label:e.name,options:n})}),t.length===0&&t.push({label:"Keine digitalen Ausgänge verfügbar",options:[]}),t},availableDevices(){return[{label:this.availableChargePoints.length>0?"Ladepunkte":"Keine Ladepunkte verfügbar",options:this.availableChargePoints.map(e=>({value:{type:"cp",id:e.value},text:e.text}))}].concat(this.ioDevicesOutputOptions)}}};function x(t,e,n,i,C,o){var l,r,s;const d=u("openwb-io-single-pattern"),m=u("openwb-base-select-input");return b(),v(V,null,[p(d,{modelValue:o.value,"onUpdate:modelValue":e[0]||(e[0]=a=>o.value=a),contacts:(r=(l=t.ioDevice)==null?void 0:l.input)==null?void 0:r.digital},null,8,["modelValue","contacts"]),e[3]||(e[3]=h("hr",null,null,-1)),p(m,{title:"Verhalten anwenden auf...","not-selected":"Bitte auswählen","empty-value":[],groups:o.availableDevices,multiple:"",required:"",disabled:!(Object.keys(o.value[0].matrix).length>0),"model-value":(s=t.ioAction)==null?void 0:s.configuration.devices,"onUpdate:modelValue":e[1]||(e[1]=a=>t.updateConfiguration(a,"configuration.devices"))},{help:_(()=>e[2]||(e[2]=[w(" Bitte die Ladepunkte und/oder digitalen Ausgänge auswählen, auf welche das Verhalten angewendet werden soll. Es können mehrere Einträge ausgewählt werden. Ladepunkte werden auf 4,2kW gedimmt, eine Verrechnung mit PV-Erzeugung findet nicht statt. ",-1)])),_:1},8,["groups","disabled","model-value"])],64)}const j=f(k,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/dimming_direct_control/io_action.vue"]]);export{j as default}; +import{a as g}from"./IoConfig-20eaec88.js";import{O as c}from"./OpenwbIoSinglePattern-67be81d3.js";import{_ as f,u,l as b,m as v,G as p,A as h,E as _,B as w,N as V}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const k={name:"IoActionDimmingDirectControl",components:{OpenwbIoSinglePattern:c},mixins:[g],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(t){this.updateConfiguration(t,"configuration.input_pattern")}},ioDevicesOutputOptions(){let t=[];return this.availableIoDevices.forEach(e=>{let n=[];Object.keys(e==null?void 0:e.output.digital).forEach(i=>{n.push({text:`${i}`,value:{type:"io",id:e.id,digital_output:i}})}),n.length>0&&t.push({label:e.name,options:n})}),t.length===0&&t.push({label:"Keine digitalen Ausgänge verfügbar",options:[]}),t},availableDevices(){return[{label:this.availableChargePoints.length>0?"Ladepunkte":"Keine Ladepunkte verfügbar",options:this.availableChargePoints.map(e=>({value:{type:"cp",id:e.value},text:e.text}))}].concat(this.ioDevicesOutputOptions)}}};function x(t,e,n,i,C,o){var l,r,s;const d=u("openwb-io-single-pattern"),m=u("openwb-base-select-input");return b(),v(V,null,[p(d,{modelValue:o.value,"onUpdate:modelValue":e[0]||(e[0]=a=>o.value=a),contacts:(r=(l=t.ioDevice)==null?void 0:l.input)==null?void 0:r.digital},null,8,["modelValue","contacts"]),e[3]||(e[3]=h("hr",null,null,-1)),p(m,{title:"Verhalten anwenden auf...","not-selected":"Bitte auswählen","empty-value":[],groups:o.availableDevices,multiple:"",required:"",disabled:!(Object.keys(o.value[0].matrix).length>0),"model-value":(s=t.ioAction)==null?void 0:s.configuration.devices,"onUpdate:modelValue":e[1]||(e[1]=a=>t.updateConfiguration(a,"configuration.devices"))},{help:_(()=>[...e[2]||(e[2]=[w(" Bitte die Ladepunkte und/oder digitalen Ausgänge auswählen, auf welche das Verhalten angewendet werden soll. Es können mehrere Einträge ausgewählt werden. Ladepunkte werden auf 4,2kW gedimmt, eine Verrechnung mit PV-Erzeugung findet nicht statt. ",-1)])]),_:1},8,["groups","disabled","model-value"])],64)}const j=f(k,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/dimming_direct_control/io_action.vue"]]);export{j as default}; diff --git a/web/settings/assets/io_action-f1a6dc2b.js b/web/settings/assets/io_action-f1a6dc2b.js new file mode 100644 index 0000000000..7f192fb445 --- /dev/null +++ b/web/settings/assets/io_action-f1a6dc2b.js @@ -0,0 +1 @@ +import{a as f}from"./IoConfig-20eaec88.js";import{O as b}from"./OpenwbIoPattern-573b772f.js";import{_ as v,u as r,l as p,m as w,G as l,E as a,B as i,F as g,A as s,x as A,z as V,N as h}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const k={name:"IoActionStepwiseControl",components:{OpenwbIoPattern:b},mixins:[f],computed:{availableDevices(){let t=this.availableComponents.filter(o=>o.type==="inverter").map(o=>({value:{type:o.type,id:o.value},text:o.text}));return[{label:t.length>0?"Wechselrichter":"Keine Wechselrichter verfügbar",options:t}]}}};function _(t,e,o,B,z,d){const u=r("openwb-io-pattern"),m=r("openwb-base-select-input"),c=r("openwb-base-button-group-input");return p(),w(h,null,[l(u,{modelValue:t.ioAction.configuration.input_pattern,"onUpdate:modelValue":e[0]||(e[0]=n=>t.ioAction.configuration.input_pattern=n),contacts:t.ioDevice.input.digital,"action-title":"Begrenzung","enable-add-delete":!1,class:"text-center"},{default:a(n=>[i(g(n.pattern.value*100+"%"),1)]),_:1},8,["modelValue","contacts"]),e[6]||(e[6]=s("hr",null,null,-1)),l(m,{modelValue:t.ioAction.configuration.devices,"onUpdate:modelValue":e[1]||(e[1]=n=>t.ioAction.configuration.devices=n),title:"Zugeordnete Erzeugungsanlagen...","not-selected":"Bitte auswählen","empty-value":[],groups:d.availableDevices,required:"",multiple:""},{help:a(()=>[...e[4]||(e[4]=[i(" Bitte die Erzeugungsanlagen auswählen, welche mit dieser Aktion gekoppelt sind. Es können mehrere Erzeugungsanlagen ausgewählt werden.",-1),s("br",null,null,-1),i(" Diese Zuordnung ist rein informativ und hat noch keine Auswirkungen auf die Funktionalität. Die Begrenzung der zugeordneten Erzeugungsanlagen wird im Status angezeigt. ",-1)])]),_:1},8,["modelValue","groups"]),e[7]||(e[7]=s("hr",null,null,-1)),l(c,{modelValue:t.ioAction.configuration.passthrough_enabled,"onUpdate:modelValue":e[2]||(e[2]=n=>t.ioAction.configuration.passthrough_enabled=n),title:"Ausgänge aktivieren",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],class:"mb-2",required:""},{help:a(()=>[...e[5]||(e[5]=[i(' Optional kann das Signal der konfigurierten Eingänge an Ausgänge durchgereicht ("durchgeschliffen") werden. Wird z.B. das Muster für 60% als aktiv erkannt, dann wird auch das hier festgelegte Ausgangsmuster für 60% aktiviert. ',-1)])]),_:1},8,["modelValue"]),t.ioAction.configuration.passthrough_enabled?(p(),A(u,{key:0,modelValue:t.ioAction.configuration.output_pattern,"onUpdate:modelValue":e[3]||(e[3]=n=>t.ioAction.configuration.output_pattern=n),contacts:t.ioDevice.output.digital,title:"Ausgangsmuster","action-title":"Begrenzung","enable-add-delete":!1,class:"text-center","show-check-pattern":!1},{default:a(n=>[i(g(n.pattern.value*100+"%"),1)]),_:1},8,["modelValue","contacts"])):V("",!0)],64)}const F=v(k,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/generator_systems/stepwise_control/io_action.vue"]]);export{F as default}; diff --git a/web/settings/assets/io_device-1f979b15.js b/web/settings/assets/io_device-1f979b15.js new file mode 100644 index 0000000000..940681a93e --- /dev/null +++ b/web/settings/assets/io_device-1f979b15.js @@ -0,0 +1 @@ +import{O as m}from"./IoConfig-20eaec88.js";import{C as f}from"./index-c94f8df4.js";import{_ as g,u as s,l as h,m as b,G as a,E as l,B as o,A as n}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./dynamic-import-helper-be004503.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";const _={name:"IoDeviceAddOn",mixins:[f,m],data(){return{mqttTopicsToSubscribe:["openWB/chargepoint/+/config"]}},computed:{configuredChargePoints(){const t=this.getWildcardTopics("openWB/chargepoint/+/config");let e=[];for(const i of Object.values(t))if(["external_openwb"].includes(i.type)){if(e.find(r=>r.value===i.configuration.ip_address))continue;e.push({value:i.configuration.ip_address,text:i.name})}return e},configuredDisplays(){return[]},availableIoSources:{get(){return[{label:"Ladepunkte",options:this.configuredChargePoints},{label:"Zusatzdisplays",options:this.configuredDisplays}].filter(t=>t.options.length>0)}}}},v={class:"io-device-add-on"};function w(t,e,i,r,B,d){const u=s("openwb-base-alert"),p=s("openwb-base-select-input");return h(),b("div",v,[a(u,{subtype:"warning"},{default:l(()=>[...e[1]||(e[1]=[o(" Die Kontakte der AddOn-Platine sind nicht galvanisch oder optisch getrennt. Es wird dringend empfohlen, mit Koppelrelais zu arbeiten.",-1),n("br",null,null,-1),o(" Weiterhin muss für die Verwendung der Kontakte in einer openWB series2 eine weitere Kabeldurchführung in das Gehäuse gebohrt werden. Da es hierbei zu Undichtigkeiten kommen kann, ist dies nur von fachkundigen Personen durchzuführen.",-1),n("br",null,null,-1),o(" Es wird keine Haftung für Schäden übernommen, die durch die direkte Beschaltung der Kontakte oder eine zusätzliche Bohrung im Gehäuse entstehen.",-1),n("br",null,null,-1),o(" Es wird der Einsatz des Dimm- & Control-Kits empfohlen! ",-1)])]),_:1}),a(p,{title:"Installiert auf...","not-selected":"Bitte auswählen","empty-value":null,options:[{value:"localhost",text:"dieser openWB"}],groups:d.availableIoSources,"model-value":t.ioDevice.configuration.host,"onUpdate:modelValue":e[0]||(e[0]=c=>t.updateConfiguration(c,"configuration.host"))},{help:l(()=>[...e[2]||(e[2]=[o(" Bitte die Komponente auswählen, an der die Add-On-Platine installiert ist.",-1),n("br",null,null,-1),o(" Unterstützt werden:",-1),n("br",null,null,-1),n("ul",null,[n("li",null,"openWB standalone (als primary oder Zusatzdisplay)"),n("li",null,'openWB Ladepunkte als primary ("interne openWB") und secondary ("externe openWB")')],-1)])]),_:1},8,["groups","model-value"])])}const E=g(_,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/add_on/io_device.vue"]]);export{E as default}; diff --git a/web/settings/assets/io_device-4394e2dd.js b/web/settings/assets/io_device-4394e2dd.js deleted file mode 100644 index f804882003..0000000000 --- a/web/settings/assets/io_device-4394e2dd.js +++ /dev/null @@ -1 +0,0 @@ -import{O as m}from"./IoConfig-38958e2e.js";import{C as f}from"./index-8dd8e083.js";import{_ as g,u as s,l as h,m as b,G as a,E as l,B as o,A as n}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./dynamic-import-helper-be004503.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";const _={name:"IoDeviceAddOn",mixins:[f,m],data(){return{mqttTopicsToSubscribe:["openWB/chargepoint/+/config"]}},computed:{configuredChargePoints(){const t=this.getWildcardTopics("openWB/chargepoint/+/config");let e=[];for(const i of Object.values(t))if(["external_openwb"].includes(i.type)){if(e.find(r=>r.value===i.configuration.ip_address))continue;e.push({value:i.configuration.ip_address,text:i.name})}return e},configuredDisplays(){return[]},availableIoSources:{get(){return[{label:"Ladepunkte",options:this.configuredChargePoints},{label:"Zusatzdisplays",options:this.configuredDisplays}].filter(t=>t.options.length>0)}}}},v={class:"io-device-add-on"};function w(t,e,i,r,B,d){const u=s("openwb-base-alert"),p=s("openwb-base-select-input");return h(),b("div",v,[a(u,{subtype:"warning"},{default:l(()=>e[1]||(e[1]=[o(" Die Kontakte der AddOn-Platine sind nicht galvanisch oder optisch getrennt. Es wird dringend empfohlen, mit Koppelrelais zu arbeiten.",-1),n("br",null,null,-1),o(" Weiterhin muss für die Verwendung der Kontakte in einer openWB series2 eine weitere Kabeldurchführung in das Gehäuse gebohrt werden. Da es hierbei zu Undichtigkeiten kommen kann, ist dies nur von fachkundigen Personen durchzuführen.",-1),n("br",null,null,-1),o(" Es wird keine Haftung für Schäden übernommen, die durch die direkte Beschaltung der Kontakte oder eine zusätzliche Bohrung im Gehäuse entstehen.",-1),n("br",null,null,-1),o(" Es wird der Einsatz des Dimm- & Control-Kits empfohlen! ",-1)])),_:1,__:[1]}),a(p,{title:"Installiert auf...","not-selected":"Bitte auswählen","empty-value":null,options:[{value:"localhost",text:"dieser openWB"}],groups:d.availableIoSources,"model-value":t.ioDevice.configuration.host,"onUpdate:modelValue":e[0]||(e[0]=c=>t.updateConfiguration(c,"configuration.host"))},{help:l(()=>e[2]||(e[2]=[o(" Bitte die Komponente auswählen, an der die Add-On-Platine installiert ist.",-1),n("br",null,null,-1),o(" Unterstützt werden:",-1),n("br",null,null,-1),n("ul",null,[n("li",null,"openWB standalone (als primary oder Zusatzdisplay)"),n("li",null,'openWB Ladepunkte als primary ("interne openWB") und secondary ("externe openWB")')],-1)])),_:1},8,["groups","model-value"])])}const E=g(_,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/add_on/io_device.vue"]]);export{E as default}; diff --git a/web/settings/assets/io_device-e4d01342.js b/web/settings/assets/io_device-ac0abd6b.js similarity index 70% rename from web/settings/assets/io_device-e4d01342.js rename to web/settings/assets/io_device-ac0abd6b.js index 53995d09d8..602fd7edcd 100644 --- a/web/settings/assets/io_device-e4d01342.js +++ b/web/settings/assets/io_device-ac0abd6b.js @@ -1 +1 @@ -import{O as m}from"./IoConfig-38958e2e.js";import{_ as p,u as r,l as a,m as s,G as t}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"IoDeviceDimmKit",mixins:[m]},l={class:"io-device-dimm-kit"};function v(o,e,c,f,_,b){const u=r("openwb-base-text-input"),n=r("openwb-base-number-input");return a(),s("div",l,[t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.ioDevice.configuration.host,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.host"))},null,8,["model-value"]),t(n,{title:"Port",required:"","model-value":o.ioDevice.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"]),t(n,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.ioDevice.configuration.modbus_id,"onUpdate:modelValue":e[2]||(e[2]=i=>o.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const B=p(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/dimm_kit/io_device.vue"]]);export{B as default}; +import{O as m}from"./IoConfig-20eaec88.js";import{_ as p,u as r,l as a,m as s,G as t}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const d={name:"IoDeviceDimmKit",mixins:[m]},l={class:"io-device-dimm-kit"};function v(o,e,c,f,_,b){const u=r("openwb-base-text-input"),n=r("openwb-base-number-input");return a(),s("div",l,[t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.ioDevice.configuration.host,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.host"))},null,8,["model-value"]),t(n,{title:"Port",required:"","model-value":o.ioDevice.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"]),t(n,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.ioDevice.configuration.modbus_id,"onUpdate:modelValue":e[2]||(e[2]=i=>o.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const B=p(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/dimm_kit/io_device.vue"]]);export{B as default}; diff --git a/web/settings/assets/monitoring-1f99e249.js b/web/settings/assets/monitoring-1f99e249.js deleted file mode 100644 index f34459a9fa..0000000000 --- a/web/settings/assets/monitoring-1f99e249.js +++ /dev/null @@ -1 +0,0 @@ -import{M as l}from"./DataManagement-52054445.js";import{_ as p,u as a,l as d,m,G as t,E as g,B as r,A as s}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"MonitoringZabbix",mixins:[l]},b={class:"monitoring-zabbix"};function v(n,e,_,k,w,y){const u=a("openwb-base-alert"),i=a("openwb-base-text-input");return d(),m("div",b,[t(u,{subtype:"info"},{default:g(()=>e[4]||(e[4]=[r(" Mit dem Monitoring-Service von openWB kannst Du Dein System ganz einfach überwachen. Einfach ",-1),s("a",{href:"https://wb-solution.de/produkt/aktives-monitoring-openwb-installation-2/",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),r(" anmelden und Deine Zugangsdaten erhalten.",-1),s("br",null,null,-1),r("Alternativ kannst Du auch deinen eigenen Zabbix-Server aufsetzen und die Zugangsdaten hier eintragen. ",-1)])),_:1,__:[4]}),t(i,{title:"Zielhost",subtype:"host",required:"","model-value":n.monitoring.configuration.destination_host,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.destination_host"))},null,8,["model-value"]),t(i,{title:"Eigener Hostname",subtype:"user",required:"","model-value":n.monitoring.configuration.hostname,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.hostname"))},null,8,["model-value"]),t(i,{title:"PSK Identifier",subtype:"text",required:"","model-value":n.monitoring.configuration.psk_identifier,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.psk_identifier"))},null,8,["model-value"]),t(i,{title:"PSK Key",subtype:"password",required:"","model-value":n.monitoring.configuration.psk_key,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.psk_key"))},null,8,["model-value"])])}const q=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/zabbix/monitoring.vue"]]);export{q as default}; diff --git a/web/settings/assets/monitoring-b9e2cec0.js b/web/settings/assets/monitoring-b9e2cec0.js new file mode 100644 index 0000000000..c9bbb903ec --- /dev/null +++ b/web/settings/assets/monitoring-b9e2cec0.js @@ -0,0 +1 @@ +import{M as l}from"./DataManagement-e6d61b39.js";import{_ as p,u as a,l as d,m,G as t,E as g,B as r,A as s}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const f={name:"MonitoringZabbix",mixins:[l]},b={class:"monitoring-zabbix"};function v(n,e,k,_,w,y){const u=a("openwb-base-alert"),i=a("openwb-base-text-input");return d(),m("div",b,[t(u,{subtype:"info"},{default:g(()=>[...e[4]||(e[4]=[r(" Mit dem Monitoring-Service von openWB kannst Du Dein System ganz einfach überwachen. Einfach ",-1),s("a",{href:"https://wb-solution.de/produkt/aktives-monitoring-openwb-installation-2/",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),r(" anmelden und Deine Zugangsdaten erhalten.",-1),s("br",null,null,-1),r("Alternativ kannst Du auch deinen eigenen Zabbix-Server aufsetzen und die Zugangsdaten hier eintragen. ",-1)])]),_:1}),t(i,{title:"Zielhost",subtype:"host",required:"","model-value":n.monitoring.configuration.destination_host,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.destination_host"))},null,8,["model-value"]),t(i,{title:"Eigener Hostname",subtype:"user",required:"","model-value":n.monitoring.configuration.hostname,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.hostname"))},null,8,["model-value"]),t(i,{title:"PSK Identifier",subtype:"text",required:"","model-value":n.monitoring.configuration.psk_identifier,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.psk_identifier"))},null,8,["model-value"]),t(i,{title:"PSK Key",subtype:"password",required:"","model-value":n.monitoring.configuration.psk_key,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.psk_key"))},null,8,["model-value"])])}const q=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/zabbix/monitoring.vue"]]);export{q as default}; diff --git a/web/settings/assets/vehicle-04c99766.js b/web/settings/assets/vehicle-04c99766.js deleted file mode 100644 index 960e8824d2..0000000000 --- a/web/settings/assets/vehicle-04c99766.js +++ /dev/null @@ -1 +0,0 @@ -import{V as a}from"./VehicleConfig-c6e5b45b.js";import{_ as d,u,l as p,m as g,G as o,E as l,B as i,A as c}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocTronity",mixins:[a]},f={class:"vehicle-soc-tronity"};function b(n,e,v,C,w,h){const r=u("openwb-base-text-input"),s=u("openwb-base-button-group-input");return p(),g("div",f,[o(r,{title:"Vehicle ID",subtype:"text",required:"","model-value":n.vehicle.configuration.vehicle_id,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.vehicle_id"))},{help:l(()=>e[4]||(e[4]=[i(' Vehicle ID aus Tronity angeben. Diese ist in den "Assigned Vehicles" zu finden. ',-1)])),_:1},8,["model-value"]),o(r,{title:"Client ID",subtype:"text",required:"","model-value":n.vehicle.configuration.client_id,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.client_id"))},{help:l(()=>e[5]||(e[5]=[i(' Client ID aus Tronity angeben. Diese ist in den "Application Settings" zu finden. ',-1)])),_:1},8,["model-value"]),o(r,{title:"Client Secret",subtype:"password",required:"","model-value":n.vehicle.configuration.client_secret,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.client_secret"))},{help:l(()=>e[6]||(e[6]=[i(' Client Secret aus Tronity angeben. Diese ist in den "Application Settings" zu finden. Das Client Secret kann nur einmalig abgerufen werden. Ggf. neu erzeugen, womit frühere Client Secrets ungültig werden. ',-1)])),_:1},8,["model-value"]),o(s,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.calculate_soc"))},{help:l(()=>e[7]||(e[7]=[i(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),c("br",null,null,-1),i(" Derzeit notwendig für Peugeot, Opel, Citroen und DS. ",-1)])),_:1},8,["model-value"])])}const T=d(m,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/tronity/vehicle.vue"]]);export{T as default}; diff --git a/web/settings/assets/vehicle-0f781a6d.js b/web/settings/assets/vehicle-0f781a6d.js new file mode 100644 index 0000000000..a8160e2a9a --- /dev/null +++ b/web/settings/assets/vehicle-0f781a6d.js @@ -0,0 +1 @@ +import{V as a}from"./VehicleConfig-890c7977.js";import{_ as p,u as s,l as m,m as v,G as t,E as l,B as o,A as i}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const f={name:"VehicleSocOVMS",mixins:[a]},g={class:"vehicle-soc-ovms"};function b(n,e,V,w,S,M){const d=s("openwb-base-alert"),u=s("openwb-base-text-input");return m(),v("div",g,[t(d,{subtype:"info"},{default:l(()=>[...e[4]||(e[4]=[o(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),i("a",{href:"https://github.com/openWB/core/wiki/SoC-OVMS",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul OVMS",-1)])]),_:1}),t(u,{title:"Server URL",required:"","model-value":n.vehicle.configuration.server_url,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.server_url"))},{help:l(()=>[...e[5]||(e[5]=[o(" Die URL (incl. Port) des API des OVMS-Servers, an dem das OVMS-Modul angemeldet ist, z.B. ",-1),i("br",null,null,-1),o(" https://ovms.dexters-web.de:6869",-1),i("br",null,null,-1),o(" oder",-1),i("br",null,null,-1),o(" https://api.openvehicles.com:6869",-1),i("br",null,null,-1),o(" oder ein custom server",-1),i("br",null,null,-1)])]),_:1},8,["model-value"]),t(u,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateConfiguration(r,"configuration.user_id"))},{help:l(()=>[...e[6]||(e[6]=[o(" Der Benutzername für die Anmeldung am benutzen OVMS-Servers. ",-1)])]),_:1},8,["model-value"]),t(u,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=r=>n.updateConfiguration(r,"configuration.password"))},{help:l(()=>[...e[7]||(e[7]=[o(" Das Passwort für die Anmeldung am OVMS-Server. ",-1)])]),_:1},8,["model-value"]),t(u,{title:"Vehicle Id",required:"","model-value":n.vehicle.configuration.vehicleId,"onUpdate:modelValue":e[3]||(e[3]=r=>n.updateConfiguration(r,"configuration.vehicleId"))},{help:l(()=>[...e[8]||(e[8]=[o(" Die Id des Fahrzeugs im OVMS, auch Module Id genannt. ",-1)])]),_:1},8,["model-value"])])}const z=p(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ovms/vehicle.vue"]]);export{z as default}; diff --git a/web/settings/assets/vehicle-11bc2552.js b/web/settings/assets/vehicle-11bc2552.js new file mode 100644 index 0000000000..240c48090a --- /dev/null +++ b/web/settings/assets/vehicle-11bc2552.js @@ -0,0 +1 @@ +import{V as p}from"./VehicleConfig-890c7977.js";import{_ as g,u as s,l as b,m as f,G as l,E as r,B as t,A as n}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const w={name:"VehicleSocBmwBimmerConnected",mixins:[p]},C={class:"vehicle-soc-bmwbc"},v={href:"https://bimmer-connected.readthedocs.io/en/latest/captcha/rest_of_world.html",target:"_blank"};function k(o,e,B,S,D,z){const a=s("openwb-base-alert"),u=s("openwb-base-text-input"),d=s("font-awesome-icon"),m=s("openwb-base-button-group-input");return b(),f("div",C,[l(a,{subtype:"info"},{default:r(()=>[...e[5]||(e[5]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),n("a",{href:"https://github.com/openWB/core/wiki/SoC-BMW-Mini",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul BMW & Mini",-1)])]),_:1}),l(u,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.user_id"))},{help:r(()=>[...e[6]||(e[6]=[t(" Der Benutzername für die Anmeldung an den BMW-Servern. ",-1)])]),_:1},8,["model-value"]),l(u,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.password"))},{help:r(()=>[...e[7]||(e[7]=[t(" Das Passwort für die Anmeldung an den BMW-Servern. ",-1)])]),_:1},8,["model-value"]),l(u,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=i=>o.updateConfiguration(i,"configuration.vin"))},{help:r(()=>[...e[8]||(e[8]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"]),l(u,{title:"Captcha-Token",required:"","model-value":o.vehicle.configuration.captcha_token,"onUpdate:modelValue":e[3]||(e[3]=i=>o.updateConfiguration(i,"configuration.captcha_token"))},{help:r(()=>[e[18]||(e[18]=t(" Zum erstmaligen Login z.B. nach einem Neustart oder wenn die Abfrage nicht mehr funktioniert ist ein ",-1)),e[19]||(e[19]=n("b",null,"aktuelles Captcha-Token",-1)),e[20]||(e[20]=t(" notwendig.",-1)),e[21]||(e[21]=n("br",null,null,-1)),e[22]||(e[22]=t(" Falls mehr als ein Fahrzeug in dem CD-Account vorhanden ist, sollte nur das mit der niedrigsten openWB id mit einem gültigen Captcha-Token konfiguriert werden (PRIMARY).",-1)),e[23]||(e[23]=n("br",null,null,-1)),e[24]||(e[24]=t(" Das SoC-Modul des Fahrzeuges mit ",-1)),e[25]||(e[25]=n("b",null,"gültigem",-1)),e[26]||(e[26]=t(" Captcha-Token führt die SoC-Abfragen für alle Fahrzeuge im CD-Account aus.",-1)),e[27]||(e[27]=n("br",null,null,-1)),e[28]||(e[28]=t(" Die SECONDARY SoC-Module holen sich ihre Daten vom PRIMARY.",-1)),e[29]||(e[29]=n("br",null,null,-1)),e[30]||(e[30]=t(' Bei den weiteren Fahrzeugen ist daher als Captcha-Token der Wert "SECONDARY" (ohne Quotes) einzutragen.',-1)),e[31]||(e[31]=n("br",null,null,-1)),e[32]||(e[32]=t(" Um das Captcha-Token zu bekommen bitte folgende Schritte durchführen: ",-1)),n("ol",null,[n("li",null,[e[10]||(e[10]=t(" In einem neuen Browser-Tab auf diese Seite gehen:",-1)),e[11]||(e[11]=n("br",null,null,-1)),n("a",v,[e[9]||(e[9]=t(" Captcha Lösen ",-1)),l(d,{icon:["fas","external-link-alt"]})]),e[12]||(e[12]=t(" (https://bimmer-connected.readthedocs.io/en/latest/captcha/rest_of_world.html) ",-1))]),e[13]||(e[13]=n("li",null,' Dort falls angefragt das Captcha lösen und/oder "Ich bin ein Mensch" und dann Submit anklicken. Als Ergebnis wird ein sehr langer String angezeigt. ',-1)),e[14]||(e[14]=n("li",null,[t("Diesen String komplett mit "),n("b",null,"Copy&Paste"),t(" in das Feld Captcha-Token eingeben.")],-1)),e[15]||(e[15]=n("li",null,"Die Konfiguration speichern.",-1)),e[16]||(e[16]=n("li",null,[n("b",null,"Sofort einmal im Desktop manuell (Kreispfeil) den SoC für das Fahrzeug abrufen.")],-1)),e[17]||(e[17]=n("li",null,[n("b",null,"Fertig."),t(" Ab jetzt wird bis zum nächsten Neustart das sog. Refresh-Token verwendet.")],-1))]),e[33]||(e[33]=n("b",null,"Achtung: Das Captcha-Token kann nur einmal verwendet werden und gilt nur kurze Zeit!",-1))]),_:1},8,["model-value"]),l(m,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":o.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[4]||(e[4]=i=>o.updateConfiguration(i,"configuration.calculate_soc"))},{help:r(()=>[...e[34]||(e[34]=[t(" Berechnet den Ladestand (SoC) während der Ladung. ",-1),n("br",null,null,-1),t(" Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),n("br",null,null,-1)])]),_:1},8,["model-value"])])}const R=g(w,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/bmwbc/vehicle.vue"]]);export{R as default}; diff --git a/web/settings/assets/vehicle-16754a95.js b/web/settings/assets/vehicle-151eb75d.js similarity index 69% rename from web/settings/assets/vehicle-16754a95.js rename to web/settings/assets/vehicle-151eb75d.js index 6c73beffc2..8d188bb15d 100644 --- a/web/settings/assets/vehicle-16754a95.js +++ b/web/settings/assets/vehicle-151eb75d.js @@ -1 +1 @@ -import{V as a}from"./VehicleConfig-c6e5b45b.js";import{_ as u,u as l,l as p,m as s,G as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocEvnotify",mixins:[a]},d={class:"vehicle-soc-evnotify"};function f(e,o,c,v,b,g){const r=l("openwb-base-number-input"),t=l("openwb-base-text-input");return p(),s("div",d,[i(r,{title:"ID",required:"",min:0,"model-value":e.vehicle.configuration.id,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.id"))},null,8,["model-value"]),i(t,{title:"AKey",required:"","model-value":e.vehicle.configuration.akey,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n,"configuration.akey"))},null,8,["model-value"]),i(t,{title:"Token",required:"","model-value":e.vehicle.configuration.token,"onUpdate:modelValue":o[2]||(o[2]=n=>e.updateConfiguration(n,"configuration.token"))},null,8,["model-value"])])}const B=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/evnotify/vehicle.vue"]]);export{B as default}; +import{V as a}from"./VehicleConfig-890c7977.js";import{_ as u,u as l,l as p,m as s,G as i}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocEvnotify",mixins:[a]},d={class:"vehicle-soc-evnotify"};function f(e,o,c,v,b,g){const r=l("openwb-base-number-input"),t=l("openwb-base-text-input");return p(),s("div",d,[i(r,{title:"ID",required:"",min:0,"model-value":e.vehicle.configuration.id,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.id"))},null,8,["model-value"]),i(t,{title:"AKey",required:"","model-value":e.vehicle.configuration.akey,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n,"configuration.akey"))},null,8,["model-value"]),i(t,{title:"Token",required:"","model-value":e.vehicle.configuration.token,"onUpdate:modelValue":o[2]||(o[2]=n=>e.updateConfiguration(n,"configuration.token"))},null,8,["model-value"])])}const B=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/evnotify/vehicle.vue"]]);export{B as default}; diff --git a/web/settings/assets/vehicle-25a4898c.js b/web/settings/assets/vehicle-25a4898c.js new file mode 100644 index 0000000000..89bd477f8a --- /dev/null +++ b/web/settings/assets/vehicle-25a4898c.js @@ -0,0 +1 @@ +import{V as o}from"./VehicleConfig-890c7977.js";import{_ as i,u as r,l as s,m as a,G as c,E as p,B as n,A as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const d={name:"VehicleSocPSA",mixins:[o]},m={class:"vehicle-soc-psa"};function u(f,e,_,h,b,g){const t=r("openwb-base-alert");return s(),a("div",m,[c(t,{subtype:"danger"},{default:p(()=>[...e[0]||(e[0]=[n(" Diese Modul ist seit Änderungen der Schnittstellen durch PSA nicht mehr funktionsfähig und wird in einer zukünftigen Version entfernt. Bitte auf einen anderen Anbieter wechseln, z.B. Tronity.",-1),l("br",null,null,-1),n(" Bei vorhandener PSA-Integration in Heimautomation kann der SoC ggf. auch per MQTT übergeben werden. ",-1)])]),_:1})])}const T=i(d,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/psa/vehicle.vue"]]);export{T as default}; diff --git a/web/settings/assets/vehicle-2a399b60.js b/web/settings/assets/vehicle-2a399b60.js new file mode 100644 index 0000000000..3a2aae81de --- /dev/null +++ b/web/settings/assets/vehicle-2a399b60.js @@ -0,0 +1 @@ +import{V as l}from"./VehicleConfig-890c7977.js";import{_ as u,u as a,l as p,m,G as i,E as r,B as t,A as f}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const v={name:"VehicleSocVwid",mixins:[l]},g={class:"vehicle-soc-skoda"};function b(o,e,w,k,V,c){const d=a("openwb-base-alert"),s=a("openwb-base-text-input");return p(),m("div",g,[i(d,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),f("a",{href:"https://github.com/openWB/core/wiki/SoC-Skoda",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul Skoda",-1)])]),_:1}),i(s,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:r(()=>[...e[4]||(e[4]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den Skoda-Servern. ",-1)])]),_:1},8,["model-value"]),i(s,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:r(()=>[...e[5]||(e[5]=[t(" Das Passwort für die Anmeldung an den Skoda-Servern. ",-1)])]),_:1},8,["model-value"]),i(s,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:r(()=>[...e[6]||(e[6]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"])])}const q=u(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/skoda/vehicle.vue"]]);export{q as default}; diff --git a/web/settings/assets/vehicle-65e3046c.js b/web/settings/assets/vehicle-2e28fc2a.js similarity index 52% rename from web/settings/assets/vehicle-65e3046c.js rename to web/settings/assets/vehicle-2e28fc2a.js index 1c4403b54d..73a2d401de 100644 --- a/web/settings/assets/vehicle-65e3046c.js +++ b/web/settings/assets/vehicle-2e28fc2a.js @@ -1 +1 @@ -import{V as r}from"./VehicleConfig-c6e5b45b.js";import{_ as l,u as s,l as a,m as u,G as i,E as p,B as d}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocSmartHello",mixins:[r]},f={class:"vehicle-soc-smart-hello"};function v(o,e,c,g,h,V){const n=s("openwb-base-text-input");return a(),u("div",f,[i(n,{title:"Benutzername",subtype:"user",required:"","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user_id"))},null,8,["model-value"]),i(n,{title:"Kennwort",subtype:"password",required:"","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"]),i(n,{title:"VIN",subtype:"text","model-value":o.vehicle.configuration.VIN,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.VIN"))},{help:p(()=>e[3]||(e[3]=[d(" Fahrgestellnummer (VIN) des Fahrzeugs. Notwendig falls mehrere Fahrzeuge im Account des Herstellers vorhanden sind. ",-1)])),_:1},8,["model-value"])])}const y=l(m,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/smarthello/vehicle.vue"]]);export{y as default}; +import{V as r}from"./VehicleConfig-890c7977.js";import{_ as l,u as s,l as a,m as u,G as i,E as p,B as d}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocSmartHello",mixins:[r]},f={class:"vehicle-soc-smart-hello"};function v(o,e,c,g,h,V){const n=s("openwb-base-text-input");return a(),u("div",f,[i(n,{title:"Benutzername",subtype:"user",required:"","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user_id"))},null,8,["model-value"]),i(n,{title:"Kennwort",subtype:"password",required:"","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"]),i(n,{title:"VIN",subtype:"text","model-value":o.vehicle.configuration.VIN,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.VIN"))},{help:p(()=>[...e[3]||(e[3]=[d(" Fahrgestellnummer (VIN) des Fahrzeugs. Notwendig falls mehrere Fahrzeuge im Account des Herstellers vorhanden sind. ",-1)])]),_:1},8,["model-value"])])}const y=l(m,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/smarthello/vehicle.vue"]]);export{y as default}; diff --git a/web/settings/assets/vehicle-2f3715ab.js b/web/settings/assets/vehicle-2f3715ab.js new file mode 100644 index 0000000000..9487801fe4 --- /dev/null +++ b/web/settings/assets/vehicle-2f3715ab.js @@ -0,0 +1 @@ +import{V as u}from"./VehicleConfig-890c7977.js";import{_ as p,u as a,l as d,m,G as o,E as i,B as r}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const v={name:"VehicleSocLeaf",mixins:[u]},f={class:"vehicle-soc-leaf"};function g(t,e,c,b,w,N){const s=a("openwb-base-text-input"),l=a("openwb-base-select-input");return d(),m("div",f,[o(s,{title:"Benutzername",required:"",subtype:"user","model-value":t.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.user_id"))},{help:i(()=>[...e[3]||(e[3]=[r(" Der Benutzername für die Anmeldung an den Nissan-Servern. ",-1)])]),_:1},8,["model-value"]),o(s,{title:"Kennwort",required:"",subtype:"password","model-value":t.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.password"))},{help:i(()=>[...e[4]||(e[4]=[r(" Das Passwort für die Anmeldung an den Nissan-Servern. ",-1)])]),_:1},8,["model-value"]),o(l,{title:"Region",required:"","not-selected":"Bitte auswählen",options:[{value:"NE",text:"Europa (getestet)"},{value:"NNA",text:"USA (nicht getestet)"},{value:"NCI",text:"Kanada (nicht getestet)"},{value:"NMA",text:"Australien (nicht getestet)"},{value:"NML",text:"Japan (nicht getestet)"}],"model-value":t.vehicle.configuration.region,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.region"))},{help:i(()=>[...e[5]||(e[5]=[r(" Die Region, in der das Fahrzeug betrieben wird. ",-1)])]),_:1},8,["model-value"])])}const U=p(v,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/leaf/vehicle.vue"]]);export{U as default}; diff --git a/web/settings/assets/vehicle-fe38074f.js b/web/settings/assets/vehicle-2fbbd65b.js similarity index 85% rename from web/settings/assets/vehicle-fe38074f.js rename to web/settings/assets/vehicle-2fbbd65b.js index 8abc54afec..71d9e18b6b 100644 --- a/web/settings/assets/vehicle-fe38074f.js +++ b/web/settings/assets/vehicle-2fbbd65b.js @@ -1 +1 @@ -import{V as u}from"./VehicleConfig-c6e5b45b.js";import{_ as a,u as r,l as d,m as f,G as o,E as i,A as e,B as l,F as p}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const b={name:"VehicleSocMqtt",mixins:[u]},v={class:"vehicle-soc-mqtt"};function g(n,t,x,B,k,w){const s=r("openwb-base-copy-to-clipboard"),m=r("openwb-base-alert");return d(),f("div",v,[o(m,{subtype:"info"},{default:i(()=>[e("ul",null,[e("li",null,[o(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[l(" openWB/set/mqtt/vehicle/"+p(n.vehicleId)+"/get/soc ",1)]),_:1}),t[0]||(t[0]=e("br",null,null,-1)),t[1]||(t[1]=l(" Fahrzeug-SoC mit Nachkommastellen (Float) oder Ganzzahl",-1)),t[2]||(t[2]=e("br",null,null,-1)),t[3]||(t[3]=l(" Beispiel: ",-1)),t[4]||(t[4]=e("span",{class:"text-info"},"89.5",-1))]),e("li",null,[o(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[l(" openWB/set/mqtt/vehicle/"+p(n.vehicleId)+"/get/soc_timestamp ",1)]),_:1}),t[5]||(t[5]=e("br",null,null,-1)),t[6]||(t[6]=l(" Zeitstempel des SoCs in s als Unix-Zeitstempel",-1)),t[7]||(t[7]=e("br",null,null,-1)),t[8]||(t[8]=l(" Diese Info ist optional. Wird kein Wert für das Topic veröffentlicht, wird bei der Abfrage automatisch der aktuelle Zeitstempel gesetzt.",-1)),t[9]||(t[9]=e("br",null,null,-1)),t[10]||(t[10]=l(" Beispiel: ",-1)),t[11]||(t[11]=e("span",{class:"text-info"},"1748339524",-1))]),e("li",null,[o(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[l(" openWB/set/mqtt/vehicle/"+p(n.vehicleId)+"/get/range ",1)]),_:1}),t[12]||(t[12]=e("br",null,null,-1)),t[13]||(t[13]=l(" Reichweite des Fahrzeugs in km mit Nachkommastellen (Float) oder Ganzzahl",-1)),t[14]||(t[14]=e("br",null,null,-1)),t[15]||(t[15]=l(" Diese Info ist optional.",-1)),t[16]||(t[16]=e("br",null,null,-1)),t[17]||(t[17]=l(" Beispiel: ",-1)),t[18]||(t[18]=e("span",{class:"text-info"},"356.5",-1))])])]),_:1})])}const y=a(b,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/mqtt/vehicle.vue"]]);export{y as default}; +import{V as u}from"./VehicleConfig-890c7977.js";import{_ as a,u as r,l as d,m as f,G as o,E as i,A as e,B as l,F as p}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const b={name:"VehicleSocMqtt",mixins:[u]},v={class:"vehicle-soc-mqtt"};function g(n,t,x,B,k,w){const s=r("openwb-base-copy-to-clipboard"),m=r("openwb-base-alert");return d(),f("div",v,[o(m,{subtype:"info"},{default:i(()=>[e("ul",null,[e("li",null,[o(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[l(" openWB/set/mqtt/vehicle/"+p(n.vehicleId)+"/get/soc ",1)]),_:1}),t[0]||(t[0]=e("br",null,null,-1)),t[1]||(t[1]=l(" Fahrzeug-SoC mit Nachkommastellen (Float) oder Ganzzahl",-1)),t[2]||(t[2]=e("br",null,null,-1)),t[3]||(t[3]=l(" Beispiel: ",-1)),t[4]||(t[4]=e("span",{class:"text-info"},"89.5",-1))]),e("li",null,[o(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[l(" openWB/set/mqtt/vehicle/"+p(n.vehicleId)+"/get/soc_timestamp ",1)]),_:1}),t[5]||(t[5]=e("br",null,null,-1)),t[6]||(t[6]=l(" Zeitstempel des SoCs in s als Unix-Zeitstempel",-1)),t[7]||(t[7]=e("br",null,null,-1)),t[8]||(t[8]=l(" Diese Info ist optional. Wird kein Wert für das Topic veröffentlicht, wird bei der Abfrage automatisch der aktuelle Zeitstempel gesetzt.",-1)),t[9]||(t[9]=e("br",null,null,-1)),t[10]||(t[10]=l(" Beispiel: ",-1)),t[11]||(t[11]=e("span",{class:"text-info"},"1748339524",-1))]),e("li",null,[o(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[l(" openWB/set/mqtt/vehicle/"+p(n.vehicleId)+"/get/range ",1)]),_:1}),t[12]||(t[12]=e("br",null,null,-1)),t[13]||(t[13]=l(" Reichweite des Fahrzeugs in km mit Nachkommastellen (Float) oder Ganzzahl",-1)),t[14]||(t[14]=e("br",null,null,-1)),t[15]||(t[15]=l(" Diese Info ist optional.",-1)),t[16]||(t[16]=e("br",null,null,-1)),t[17]||(t[17]=l(" Beispiel: ",-1)),t[18]||(t[18]=e("span",{class:"text-info"},"356.5",-1))])])]),_:1})])}const y=a(b,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/mqtt/vehicle.vue"]]);export{y as default}; diff --git a/web/settings/assets/vehicle-31ef3978.js b/web/settings/assets/vehicle-31ef3978.js new file mode 100644 index 0000000000..37a46ecf6c --- /dev/null +++ b/web/settings/assets/vehicle-31ef3978.js @@ -0,0 +1 @@ +import{_ as h,a6 as c,a7 as _,a8 as f,u as r,l as b,m as k,G as i,E as a,B as s,A as v}from"./vendor-50125810.js";import{a as w}from"./vendor-axios-1a87d4ae.js";import{C}from"./index-c94f8df4.js";import{V as y}from"./VehicleConfig-890c7977.js";import"./vendor-sortablejs-8982fad4.js";import"./vendor-fortawesome-fc4b3a41.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./dynamic-import-helper-be004503.js";const T={name:"VehicleSocTesla",mixins:[C,y],data(){return{tesla_api_oauth2:"https://auth.tesla.com/oauth2/v3",tesla_api_redirect:"https://auth.tesla.com/void/callback",tesla_api_owners:"https://owner-api.teslamotors.com/oauth/token",user_agent:"Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",code_challenge:null,code_verifier:null,page_not_found_url:null}},methods:{tesla_login_window(){this.tesla_gen_challenge();var e=window.open(this.tesla_gen_url(),"TeslaLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");e.focus()},tesla_gen_challenge(){this.code_verifier=c.encode(_.randomBytes(86)).replace(/[^a-zA-Z0-9]/gi,"").substring(0,86);const e=_.createHash("sha256").update(this.code_verifier).digest();this.code_challenge=c.encode(e),console.debug(this.code_verifier,this.code_verifier.length,this.code_challenge,this.code_challenge.length)},tesla_gen_url(){const e=new URL(this.tesla_api_oauth2+"/authorize/");return e.searchParams.append("client_id","ownerapi"),e.searchParams.append("code_challenge",this.code_challenge),e.searchParams.append("code_challenge_method","S256"),e.searchParams.append("redirect_uri",this.tesla_api_redirect),e.searchParams.append("response_type","code"),e.searchParams.append("scope","openid email offline_access"),e.searchParams.append("state","myteslaapp"),e},async tesla_login(){const e=f.parse(this.page_not_found_url,!0).query;if(console.debug("queryObject",e),!e.code){console.error("Something is wrong... Code does not exist in URL"),this.$root.postClientMessage("Die eingegebene URL ist ungültig.","danger");return}const n={url:this.tesla_api_owners,user_agent:this.user_agent,data:{grant_type:"authorization_code",client_id:"ownerapi",code:e.code,code_verifier:this.code_verifier,redirect_uri:this.tesla_api_redirect}};try{const o=await w.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/vehicles/tesla/tesla.php",JSON.parse(JSON.stringify(n)),{headers:{"Content-Type":"application/json",Accept:"application/json"}});console.debug("response",o),this.updateConfiguration({access_token:o.data.access_token,refresh_token:o.data.refresh_token,created_at:o.data.created_at,expires_in:o.data.expires_in},"configuration.token"),this.$root.postClientMessage("Token erfolgreich abgerufen.","success")}catch(o){console.error(o),this.$root.postClientMessage("Beim Abruf der Token ist ein Fehler aufgetreten!
"+o+"
","danger")}}}},B={class:"vehicle-soc-tesla"};function U(e,n,o,z,l,p){const u=r("openwb-base-number-input"),m=r("openwb-base-heading"),g=r("openwb-base-button-input"),d=r("openwb-base-text-input");return b(),k("div",B,[i(u,{title:"Fahrzeug-ID",required:"",min:0,"model-value":e.vehicle.configuration.tesla_ev_num,"onUpdate:modelValue":n[0]||(n[0]=t=>e.updateConfiguration(t,"configuration.tesla_ev_num"))},{help:a(()=>[...n[6]||(n[6]=[s(' Die ID des Fahrzeugs bei Tesla. Normalerweise "0" bei nur einem Fahrzeug im Konto. ',-1)])]),_:1},8,["model-value"]),i(m,null,{default:a(()=>[...n[7]||(n[7]=[s("Token abrufen oder eingeben",-1)])]),_:1}),i(g,{title:"1. Anmelden","button-text":"Bei Tesla Anmelden",subtype:"success",onButtonClicked:p.tesla_login_window},{help:a(()=>[...n[8]||(n[8]=[s(" Es wird ein neues Browserfenster geöffnet, in dem Sie sich bei Tesla mit Ihren Zugangsdaten anmelden können. ",-1)])]),_:1},8,["onButtonClicked"]),i(d,{modelValue:l.page_not_found_url,"onUpdate:modelValue":n[1]||(n[1]=t=>l.page_not_found_url=t),title:"2. URL kopieren und einfügen",subtype:"url","empty-value":null},{help:a(()=>[...n[9]||(n[9]=[s(' Hier die komplette URL (Text in der Adresszeile) aus dem geöffneten Browserfenster einfügen, wenn dort "Page Not Found" angezeigt wird. ',-1)])]),_:1},8,["modelValue"]),i(g,{title:"3. Token abrufen","button-text":"Jetzt abrufen",subtype:"success",disabled:l.page_not_found_url===null,onButtonClicked:p.tesla_login},{help:a(()=>[...n[10]||(n[10]=[s(" Der in der eingegebenen URL enthaltene Code wird genutzt, um ein Anmeldetoken bei Tesla abzurufen. Ist dies erfolgreich, so werden die Daten des Token in den weiteren Feldern automatisch eingegeben. ",-1)])]),_:1},8,["disabled","onButtonClicked"]),n[13]||(n[13]=v("hr",null,null,-1)),i(d,{title:"Access Token",pattern:"^(ey).*",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.access_token:"","onUpdate:modelValue":n[2]||(n[2]=t=>e.updateConfiguration(t,"configuration.token.access_token"))},null,8,["model-value"]),i(d,{title:"Refresh Token",pattern:"^(ey).*",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.refresh_token:"","onUpdate:modelValue":n[3]||(n[3]=t=>e.updateConfiguration(t,"configuration.token.refresh_token"))},null,8,["model-value"]),i(u,{title:"Erstellt um",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.created_at:0,"onUpdate:modelValue":n[4]||(n[4]=t=>e.updateConfiguration(t,"configuration.token.created_at"))},{help:a(()=>[...n[11]||(n[11]=[s(" Unix Timestamp des Zeitpunktes, an dem das Token erzeugt wurde. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"Ungültig in",unit:"s",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.expires_in:0,"onUpdate:modelValue":n[5]||(n[5]=t=>e.updateConfiguration(t,"configuration.token.expires_in"))},{help:a(()=>[...n[12]||(n[12]=[s(" Zeitspanne in Sekunden, nach der das Token ungültig wird. ",-1)])]),_:1},8,["model-value"])])}const D=h(T,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/tesla/vehicle.vue"]]);export{D as default}; diff --git a/web/settings/assets/vehicle-32689279.js b/web/settings/assets/vehicle-32689279.js new file mode 100644 index 0000000000..7fa4ddca9f --- /dev/null +++ b/web/settings/assets/vehicle-32689279.js @@ -0,0 +1 @@ +import{V as u}from"./VehicleConfig-890c7977.js";import{_ as a,u as s,l as d,m as p,G as i,E as r,B as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocRenault",mixins:[u]},f={class:"vehicle-soc-renault"};function v(n,e,g,V,w,b){const t=s("openwb-base-text-input");return d(),p("div",f,[i(t,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.user_id"))},{help:r(()=>[...e[4]||(e[4]=[l(" Der Benutzername für die Anmeldung an den Renault-Servern. ",-1)])]),_:1},8,["model-value"]),i(t,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.password"))},{help:r(()=>[...e[5]||(e[5]=[l(" Das Passwort für die Anmeldung an den Renault-Servern. ",-1)])]),_:1},8,["model-value"]),i(t,{title:"Land",required:"","model-value":n.vehicle.configuration.country,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.country"))},{help:r(()=>[...e[6]||(e[6]=[l(" Land des Fahrzeugs, z.b. DE für Deutschland. ",-1)])]),_:1},8,["model-value"]),i(t,{title:"VIN","model-value":n.vehicle.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.vin"))},{help:r(()=>[...e[7]||(e[7]=[l(" Die Fahrgestellnummer des Fahrzeugs falls mehrere Fahrzeuge im Account vorhanden sind. ",-1)])]),_:1},8,["model-value"])])}const $=a(m,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/renault/vehicle.vue"]]);export{$ as default}; diff --git a/web/settings/assets/vehicle-377b2545.js b/web/settings/assets/vehicle-377b2545.js new file mode 100644 index 0000000000..227d5ab2ad --- /dev/null +++ b/web/settings/assets/vehicle-377b2545.js @@ -0,0 +1 @@ +import{V as s}from"./VehicleConfig-890c7977.js";import{_ as p,u,l as d,m as v,G as a,E as n,B as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocEVCC",mixins:[s]},g={class:"vehicle-soc-evcc"};function x(t,e,f,V,w,b){const i=u("openwb-base-text-input"),r=u("openwb-base-select-input");return d(),v("div",g,[a(i,{title:"EVCC Sponsor Token",subtype:"password",required:"","model-value":t.vehicle.configuration.sponsor_token,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.sponsor_token"))},{help:n(()=>[...e[5]||(e[5]=[l(" EVCC Sponsor Token angeben, dies ist notwendig um SoC über EVCC abrufen zu können. https://sponsor.evcc.io/ ",-1)])]),_:1},8,["model-value"]),a(i,{title:"Benutzername",subtype:"user",required:"","model-value":t.vehicle.configuration.user_id,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.user_id"))},{help:n(()=>[...e[6]||(e[6]=[l(" Benutzername beim Fahrzeughersteller. ",-1)])]),_:1},8,["model-value"]),a(i,{title:"Kennwort",subtype:"password",required:"","model-value":t.vehicle.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateConfiguration(o,"configuration.password"))},{help:n(()=>[...e[7]||(e[7]=[l(" Kennwort beim Fahrzeughersteller. ",-1)])]),_:1},8,["model-value"]),a(r,{title:"Marke",required:"","not-selected":"Bitte auswählen",options:[{value:"aiways",text:"Aiways"},{value:"audi",text:"Audi"},{value:"etron",text:"Audi e-tron"},{value:"bmw",text:"BMW"},{value:"dacia",text:"Dacia"},{value:"fiat",text:"Fiat"},{value:"ford",text:"Ford"},{value:"hyundai",text:"Hyundai"},{value:"jaguar",text:"Jaguar"},{value:"kia",text:"Kia"},{value:"landrover",text:"Landrover"},{value:"mg",text:"Mg"},{value:"mini",text:"Mini"},{value:"nissan",text:"Nissan"},{value:"carwings",text:"Nissan (Leaf pre 2019)"},{value:"ovms",text:"OVMS"},{value:"polestar",text:"Polestar"},{value:"porsche",text:"Porsche"},{value:"renault",text:"Renault"},{value:"seat",text:"Seat"},{value:"cupra",text:"Seat Cupra"},{value:"skoda",text:"Škoda"},{value:"enyaq",text:"Škoda Enyaq"},{value:"smart",text:"Smart"},{value:"smart-hello",text:"Smart-Hello"},{value:"template",text:"Template"},{value:"volvo",text:"Volvo"},{value:"volvo-connected",text:"Volvo-Connected"},{value:"vw",text:"VW"},{value:"id",text:"VW ID"}],"model-value":t.vehicle.configuration.vehicle_type,"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateConfiguration(o,"configuration.vehicle_type"))},{help:n(()=>[...e[8]||(e[8]=[l(" Marke aus des Fahrzeugs. ",-1)])]),_:1},8,["model-value"]),a(i,{title:"VIN",subtype:"text","model-value":t.vehicle.configuration.VIN,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateConfiguration(o,"configuration.VIN"))},{help:n(()=>[...e[9]||(e[9]=[l(" Fahrgestellnummer (VIN) des Fahrzeugs. Notwendig falls mehrere Fahrzeuge im Account des Herstellers vorhanden sind. ",-1)])]),_:1},8,["model-value"])])}const F=p(m,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/evcc/vehicle.vue"]]);export{F as default}; diff --git a/web/settings/assets/vehicle-38543ffd.js b/web/settings/assets/vehicle-38543ffd.js deleted file mode 100644 index e268ca8cf1..0000000000 --- a/web/settings/assets/vehicle-38543ffd.js +++ /dev/null @@ -1 +0,0 @@ -import{V as u}from"./VehicleConfig-c6e5b45b.js";import{_ as a,u as s,l as d,m as p,G as i,E as r,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocRenault",mixins:[u]},f={class:"vehicle-soc-renault"};function v(n,e,g,V,w,b){const t=s("openwb-base-text-input");return d(),p("div",f,[i(t,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.user_id"))},{help:r(()=>e[4]||(e[4]=[l(" Der Benutzername für die Anmeldung an den Renault-Servern. ",-1)])),_:1},8,["model-value"]),i(t,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.password"))},{help:r(()=>e[5]||(e[5]=[l(" Das Passwort für die Anmeldung an den Renault-Servern. ",-1)])),_:1},8,["model-value"]),i(t,{title:"Land",required:"","model-value":n.vehicle.configuration.country,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.country"))},{help:r(()=>e[6]||(e[6]=[l(" Land des Fahrzeugs, z.b. DE für Deutschland. ",-1)])),_:1},8,["model-value"]),i(t,{title:"VIN","model-value":n.vehicle.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.vin"))},{help:r(()=>e[7]||(e[7]=[l(" Die Fahrgestellnummer des Fahrzeugs falls mehrere Fahrzeuge im Account vorhanden sind. ",-1)])),_:1},8,["model-value"])])}const $=a(m,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/renault/vehicle.vue"]]);export{$ as default}; diff --git a/web/settings/assets/vehicle-3896a2ec.js b/web/settings/assets/vehicle-3896a2ec.js deleted file mode 100644 index c10c7adef0..0000000000 --- a/web/settings/assets/vehicle-3896a2ec.js +++ /dev/null @@ -1 +0,0 @@ -import{V as u}from"./VehicleConfig-c6e5b45b.js";import{_ as p,u as a,l as d,m,G as o,E as i,B as r}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"VehicleSocLeaf",mixins:[u]},f={class:"vehicle-soc-leaf"};function g(t,e,c,b,w,N){const s=a("openwb-base-text-input"),l=a("openwb-base-select-input");return d(),m("div",f,[o(s,{title:"Benutzername",required:"",subtype:"user","model-value":t.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.user_id"))},{help:i(()=>e[3]||(e[3]=[r(" Der Benutzername für die Anmeldung an den Nissan-Servern. ",-1)])),_:1},8,["model-value"]),o(s,{title:"Kennwort",required:"",subtype:"password","model-value":t.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.password"))},{help:i(()=>e[4]||(e[4]=[r(" Das Passwort für die Anmeldung an den Nissan-Servern. ",-1)])),_:1},8,["model-value"]),o(l,{title:"Region",required:"","not-selected":"Bitte auswählen",options:[{value:"NE",text:"Europa (getestet)"},{value:"NNA",text:"USA (nicht getestet)"},{value:"NCI",text:"Kanada (nicht getestet)"},{value:"NMA",text:"Australien (nicht getestet)"},{value:"NML",text:"Japan (nicht getestet)"}],"model-value":t.vehicle.configuration.region,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.region"))},{help:i(()=>e[5]||(e[5]=[r(" Die Region, in der das Fahrzeug betrieben wird. ",-1)])),_:1},8,["model-value"])])}const U=p(v,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/leaf/vehicle.vue"]]);export{U as default}; diff --git a/web/settings/assets/vehicle-3cb9cb75.js b/web/settings/assets/vehicle-3cb9cb75.js deleted file mode 100644 index 7a4f8305c3..0000000000 --- a/web/settings/assets/vehicle-3cb9cb75.js +++ /dev/null @@ -1 +0,0 @@ -import{V as m}from"./VehicleConfig-c6e5b45b.js";import{_ as b,u as s,l as g,m as _,G as i,E as o,B as n,A as u,F as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"VehicleSocMercedesEq",mixins:[m],computed:{callback_url(){return`${location.origin}/openWB/web/settings/modules/vehicles/mercedeseq/callback_vehicle.php`},login_url(){return`https://ssoalpha.dvb.corpinter.net/v1/auth?response_type=code&state=${this.vehicleId}&client_id=${this.vehicle.configuration.client_id}&redirect_uri=${this.callback_url}&scope=mb:vehicle:mbdata:evstatus%20offline_access%20openid`},input_complete(){return this.vehicle.configuration.client_id&&this.vehicle.configuration.client_secret&&this.vehicle.configuration.vin}},methods:{login_window(){console.debug("callback url",this.callback_url),console.debug("login url",this.login_url);var t=window.open(this.login_url,"MercedesLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");t.focus()}}},h={class:"vehicle-soc-mercedeseq"};function w(t,e,k,C,y,r){const a=s("openwb-base-text-input"),d=s("openwb-base-copy-to-clipboard"),p=s("openwb-base-alert"),c=s("openwb-base-button-input");return g(),_("div",h,[i(a,{title:"Client-ID",required:"",subtype:"user","model-value":t.vehicle.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=l=>t.updateConfiguration(l,"configuration.client_id"))},{help:o(()=>e[3]||(e[3]=[n(" Die im Developer Portal angelegte Client-ID. ",-1)])),_:1},8,["model-value"]),i(a,{title:"Client Secret",required:"",subtype:"password","model-value":t.vehicle.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=l=>t.updateConfiguration(l,"configuration.client_secret"))},{help:o(()=>e[4]||(e[4]=[n(" Das im Developer Portal angelegte Client Secret. ",-1)])),_:1},8,["model-value"]),i(a,{title:"VIN",required:"","model-value":t.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=l=>t.updateConfiguration(l,"configuration.vin"))},{help:o(()=>e[5]||(e[5]=[n(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"]),i(p,{subtype:"info"},{default:o(()=>[e[6]||(e[6]=n(" Vor dem Anmelden bitte die Angaben speichern.",-1)),e[7]||(e[7]=u("br",null,null,-1)),e[8]||(e[8]=n(" Die Callback-URL für die Anmeldung lautet:",-1)),e[9]||(e[9]=u("br",null,null,-1)),i(d,{class:"text-info",tooltip:"URL kopieren"},{default:o(()=>[n(v(r.callback_url),1)]),_:1})]),_:1,__:[6,7,8,9]}),i(c,{title:"Anmelden","button-text":"Bei Mercedes Anmelden",subtype:"success",disabled:!r.input_complete,onButtonClicked:r.login_window},{help:o(()=>e[10]||(e[10]=[n(" Es wird ein neues Browserfenster geöffnet, in dem Sie sich bei Mercedes mit Ihren Zugangsdaten anmelden können.",-1),u("br",null,null,-1)])),_:1},8,["disabled","onButtonClicked"])])}const U=b(f,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/mercedeseq/vehicle.vue"]]);export{U as default}; diff --git a/web/settings/assets/vehicle-45b245c8.js b/web/settings/assets/vehicle-45b245c8.js new file mode 100644 index 0000000000..1e5c2f4b07 --- /dev/null +++ b/web/settings/assets/vehicle-45b245c8.js @@ -0,0 +1 @@ +import{V as l}from"./VehicleConfig-890c7977.js";import{_ as p,u as a,l as m,m as f,G as r,E as t,B as i}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const g={name:"VehicleSocPSACC",mixins:[l]},v={class:"vehicle-soc-psacc"};function c(n,e,b,_,C,h){const d=a("openwb-base-alert"),s=a("openwb-base-text-input"),u=a("openwb-base-number-input");return m(),f("div",v,[r(d,{subtype:"info"},{default:t(()=>[...e[3]||(e[3]=[i(' Der PSA Car Controller muss auf einem eigenen Host installiert werden, mit Zugangsdaten konfiguriert werden und dauerhaft laufen. Die openWB ruft den SoC zu Beginn der Ladung vom PSA Car Controller ab. Während der Ladung liefert PSA keine Updates. Daher wird der SoC während der Ladung aus dem Zählerstand berechnet. Ausschlaggebend für die Genauigkeit dieser Berechnung sind die beiden Einstellungen "Kapazität der Batterie" und "Wirkungsgrad der Ladeelektronik" im Fahrzeug-Profil. ',-1)])]),_:1}),r(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.vehicle.configuration.psacc_server_or_ip,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.psacc_server_or_ip"))},{help:t(()=>[...e[4]||(e[4]=[i("Host, auf dem der PSA Car Controller läuft.",-1)])]),_:1},8,["model-value"]),r(u,{title:"Port",required:"",min:1,max:65535,"model-value":n.vehicle.configuration.psacc_port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.psacc_port"))},{help:t(()=>[...e[5]||(e[5]=[i("Nummer des Ports, den der PSA Car Controller verwendet.",-1)])]),_:1},8,["model-value"]),r(s,{title:"VIN",subtype:"text",required:"","model-value":n.vehicle.configuration.vehicle_vin,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.vehicle_vin"))},{help:t(()=>[...e[6]||(e[6]=[i("Fahrzeug-Identifizierungsnummer des Fahrzeugs, von dem der SoC abgefragt wird.",-1)])]),_:1},8,["model-value"])])}const L=p(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/psacc/vehicle.vue"]]);export{L as default}; diff --git a/web/settings/assets/vehicle-4a5ca121.js b/web/settings/assets/vehicle-4a5ca121.js deleted file mode 100644 index b133dd35a2..0000000000 --- a/web/settings/assets/vehicle-4a5ca121.js +++ /dev/null @@ -1 +0,0 @@ -import{V as m}from"./VehicleConfig-c6e5b45b.js";import{_ as p,u as s,l as g,m as b,G as r,E as i,B as n,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"VehicleSocJson",mixins:[m]},w={class:"vehicle-soc-json"};function h(t,e,v,c,k,z){const a=s("openwb-base-text-input"),u=s("openwb-base-button-group-input"),d=s("openwb-base-number-input");return g(),b("div",w,[r(a,{title:"URL",subtype:"url",required:"","model-value":t.vehicle.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.url"))},{help:i(()=>e[6]||(e[6]=[n(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen, optional einem Port und einem Pfad. Die Antwort muss ein json-Objekt sein. Beispiel: http://192.168.1.1:8080/json?data=1 ",-1)])),_:1},8,["model-value"]),r(a,{title:"Abfrage für SoC",subtype:"text",required:"","model-value":t.vehicle.configuration.soc_pattern,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.soc_pattern"))},{help:i(()=>e[7]||(e[7]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.soc eingetragen werden. ',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen Ladestand (SoC) darstellt. ",-1)])),_:1},8,["model-value"]),r(a,{title:"Abfrage für Reichweite",subtype:"text","model-value":t.vehicle.configuration.range_pattern,"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateConfiguration(o,"configuration.range_pattern"))},{help:i(()=>e[8]||(e[8]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.range eingetragen werden. ',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Reichweite darstellt.",-1),l("br",null,null,-1),n(" Ohne Angabe wird die Reichweite nicht abgefragt und auf Null gesetzt. ",-1)])),_:1},8,["model-value"]),r(a,{title:"Abfrage für Zeitstempel",subtype:"text","model-value":t.vehicle.configuration.timestamp_pattern,"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateConfiguration(o,"configuration.timestamp_pattern"))},{help:i(()=>e[9]||(e[9]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.timestamp eingetragen werden.',-1),l("br",null,null,-1),n(" Es wird vom Server entweder eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen als Epoch Zeitstempel oder eine ISO 8601 formatierte Zeit erwartet welche den Zeitstempel der gelieferten Werte darstellt.",-1),l("br",null,null,-1),n(" Ohne Angabe wird der Zeitpunkt des Datenabrufs als Zeitstempel verwendet. ",-1)])),_:1},8,["model-value"]),r(u,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateConfiguration(o,"configuration.calculate_soc"))},{help:i(()=>e[10]||(e[10]=[n(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),l("br",null,null,-1),n(" Derzeit u.a. notwendig für Peugeot, Opel, Citroen und DS. ",-1)])),_:1},8,["model-value"]),r(d,{title:"Timeout für http-Abfragen",subtype:"number","model-value":t.vehicle.configuration.timeout,"onUpdate:modelValue":e[5]||(e[5]=o=>t.updateConfiguration(o,"configuration.timeout"))},{help:i(()=>e[11]||(e[11]=[n(" Ermöglicht es einen Timeout für die http-Abfragen zu setzen. Der Wert wird in Sekunden angegeben. Standardwert ist 5 Sekunden sofern kein anderer Wert angegeben ist. ",-1)])),_:1},8,["model-value"])])}const E=p(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/json/vehicle.vue"]]);export{E as default}; diff --git a/web/settings/assets/vehicle-673ea579.js b/web/settings/assets/vehicle-673ea579.js deleted file mode 100644 index 691d202283..0000000000 --- a/web/settings/assets/vehicle-673ea579.js +++ /dev/null @@ -1 +0,0 @@ -import{V as s}from"./VehicleConfig-c6e5b45b.js";import{_ as p,u,l as d,m as v,G as a,E as n,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocEVCC",mixins:[s]},g={class:"vehicle-soc-evcc"};function x(t,e,f,V,w,b){const i=u("openwb-base-text-input"),r=u("openwb-base-select-input");return d(),v("div",g,[a(i,{title:"EVCC Sponsor Token",subtype:"password",required:"","model-value":t.vehicle.configuration.sponsor_token,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.sponsor_token"))},{help:n(()=>e[5]||(e[5]=[l(" EVCC Sponsor Token angeben, dies ist notwendig um SoC über EVCC abrufen zu können. https://sponsor.evcc.io/ ",-1)])),_:1},8,["model-value"]),a(i,{title:"Benutzername",subtype:"user",required:"","model-value":t.vehicle.configuration.user_id,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.user_id"))},{help:n(()=>e[6]||(e[6]=[l(" Benutzername beim Fahrzeughersteller. ",-1)])),_:1},8,["model-value"]),a(i,{title:"Kennwort",subtype:"password",required:"","model-value":t.vehicle.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateConfiguration(o,"configuration.password"))},{help:n(()=>e[7]||(e[7]=[l(" Kennwort beim Fahrzeughersteller. ",-1)])),_:1},8,["model-value"]),a(r,{title:"Marke",required:"","not-selected":"Bitte auswählen",options:[{value:"aiways",text:"Aiways"},{value:"audi",text:"Audi"},{value:"etron",text:"Audi e-tron"},{value:"bmw",text:"BMW"},{value:"dacia",text:"Dacia"},{value:"fiat",text:"Fiat"},{value:"ford",text:"Ford"},{value:"hyundai",text:"Hyundai"},{value:"jaguar",text:"Jaguar"},{value:"kia",text:"Kia"},{value:"landrover",text:"Landrover"},{value:"mg",text:"Mg"},{value:"mini",text:"Mini"},{value:"nissan",text:"Nissan"},{value:"carwings",text:"Nissan (Leaf pre 2019)"},{value:"ovms",text:"OVMS"},{value:"polestar",text:"Polestar"},{value:"porsche",text:"Porsche"},{value:"renault",text:"Renault"},{value:"seat",text:"Seat"},{value:"cupra",text:"Seat Cupra"},{value:"skoda",text:"Škoda"},{value:"enyaq",text:"Škoda Enyaq"},{value:"smart",text:"Smart"},{value:"smart-hello",text:"Smart-Hello"},{value:"template",text:"Template"},{value:"volvo",text:"Volvo"},{value:"volvo-connected",text:"Volvo-Connected"},{value:"vw",text:"VW"},{value:"id",text:"VW ID"}],"model-value":t.vehicle.configuration.vehicle_type,"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateConfiguration(o,"configuration.vehicle_type"))},{help:n(()=>e[8]||(e[8]=[l(" Marke aus des Fahrzeugs. ",-1)])),_:1},8,["model-value"]),a(i,{title:"VIN",subtype:"text","model-value":t.vehicle.configuration.VIN,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateConfiguration(o,"configuration.VIN"))},{help:n(()=>e[9]||(e[9]=[l(" Fahrgestellnummer (VIN) des Fahrzeugs. Notwendig falls mehrere Fahrzeuge im Account des Herstellers vorhanden sind. ",-1)])),_:1},8,["model-value"])])}const F=p(m,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/evcc/vehicle.vue"]]);export{F as default}; diff --git a/web/settings/assets/vehicle-70e7db8e.js b/web/settings/assets/vehicle-70e7db8e.js deleted file mode 100644 index 3dd64cc511..0000000000 --- a/web/settings/assets/vehicle-70e7db8e.js +++ /dev/null @@ -1 +0,0 @@ -import{V as n}from"./VehicleConfig-c6e5b45b.js";import{_ as s,u as i,l as o,m as r,G as a,E as d,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const p={name:"VehicleSocManual",mixins:[n]},c={class:"vehicle-soc-tesla"};function m(u,e,_,f,h,g){const t=i("openwb-base-alert");return o(),r("div",c,[a(t,{subtype:"info"},{default:d(()=>e[0]||(e[0]=[l(' Beim Anstecken des Fahrzeugs muss der aktuelle SoC über die Hauptseite angegeben werden. Anhand des Zählers im Ladepunkt wird dann der aktuelle SoC errechnet. Ausschlaggebend für die Qualität dieses Moduls sind die beiden Einstellungen "Kapazität der Batterie" in dem Fahrzeug-Profil und "Wirkungsgrad der Ladeelektronik". ',-1)])),_:1,__:[0]})])}const z=s(p,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/manual/vehicle.vue"]]);export{z as default}; diff --git a/web/settings/assets/vehicle-7c8da79e.js b/web/settings/assets/vehicle-7c8da79e.js new file mode 100644 index 0000000000..13c4db961a --- /dev/null +++ b/web/settings/assets/vehicle-7c8da79e.js @@ -0,0 +1 @@ +import{V as m}from"./VehicleConfig-890c7977.js";import{_ as p,u as s,l as g,m as b,G as r,E as i,B as n,A as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const f={name:"VehicleSocJson",mixins:[m]},w={class:"vehicle-soc-json"};function h(t,e,v,c,k,z){const a=s("openwb-base-text-input"),u=s("openwb-base-button-group-input"),d=s("openwb-base-number-input");return g(),b("div",w,[r(a,{title:"URL",subtype:"url",required:"","model-value":t.vehicle.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.url"))},{help:i(()=>[...e[6]||(e[6]=[n(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen, optional einem Port und einem Pfad. Die Antwort muss ein json-Objekt sein. Beispiel: http://192.168.1.1:8080/json?data=1 ",-1)])]),_:1},8,["model-value"]),r(a,{title:"Abfrage für SoC",subtype:"text",required:"","model-value":t.vehicle.configuration.soc_pattern,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.soc_pattern"))},{help:i(()=>[...e[7]||(e[7]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.soc eingetragen werden. ',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen Ladestand (SoC) darstellt. ",-1)])]),_:1},8,["model-value"]),r(a,{title:"Abfrage für Reichweite",subtype:"text","model-value":t.vehicle.configuration.range_pattern,"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateConfiguration(o,"configuration.range_pattern"))},{help:i(()=>[...e[8]||(e[8]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.range eingetragen werden. ',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Reichweite darstellt.",-1),l("br",null,null,-1),n(" Ohne Angabe wird die Reichweite nicht abgefragt und auf Null gesetzt. ",-1)])]),_:1},8,["model-value"]),r(a,{title:"Abfrage für Zeitstempel",subtype:"text","model-value":t.vehicle.configuration.timestamp_pattern,"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateConfiguration(o,"configuration.timestamp_pattern"))},{help:i(()=>[...e[9]||(e[9]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.timestamp eingetragen werden.',-1),l("br",null,null,-1),n(" Es wird vom Server entweder eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen als Epoch Zeitstempel oder eine ISO 8601 formatierte Zeit erwartet welche den Zeitstempel der gelieferten Werte darstellt.",-1),l("br",null,null,-1),n(" Ohne Angabe wird der Zeitpunkt des Datenabrufs als Zeitstempel verwendet. ",-1)])]),_:1},8,["model-value"]),r(u,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateConfiguration(o,"configuration.calculate_soc"))},{help:i(()=>[...e[10]||(e[10]=[n(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),l("br",null,null,-1),n(" Derzeit u.a. notwendig für Peugeot, Opel, Citroen und DS. ",-1)])]),_:1},8,["model-value"]),r(d,{title:"Timeout für http-Abfragen",subtype:"number","model-value":t.vehicle.configuration.timeout,"onUpdate:modelValue":e[5]||(e[5]=o=>t.updateConfiguration(o,"configuration.timeout"))},{help:i(()=>[...e[11]||(e[11]=[n(" Ermöglicht es einen Timeout für die http-Abfragen zu setzen. Der Wert wird in Sekunden angegeben. Standardwert ist 5 Sekunden sofern kein anderer Wert angegeben ist. ",-1)])]),_:1},8,["model-value"])])}const E=p(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/json/vehicle.vue"]]);export{E as default}; diff --git a/web/settings/assets/vehicle-8289a840.js b/web/settings/assets/vehicle-8289a840.js deleted file mode 100644 index 8ad9321fbf..0000000000 --- a/web/settings/assets/vehicle-8289a840.js +++ /dev/null @@ -1 +0,0 @@ -import{V as u}from"./VehicleConfig-c6e5b45b.js";import{_ as d,u as l,l as s,m as p,G as n,E as m,B as a,A as v}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"VehicleSocAiways",mixins:[u]},g={class:"vehicle-soc-aiways"};function c(o,e,w,V,b,C){const r=l("openwb-base-alert"),t=l("openwb-base-text-input");return s(),p("div",g,[n(r,{subtype:"info"},{default:m(()=>e[6]||(e[6]=[a(" Alle Werte müssen von der Aiways App abgefangen werden. Dazu kann diese ",-1),v("a",{href:"https://community.home-assistant.io/t/read-aiways-u5-state-of-charge/466441/5"}," Anleitung ",-1),a(" verwendet werden. ",-1)])),_:1,__:[6]}),n(t,{title:"User ID",required:"","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.user_id"))},null,8,["model-value"]),n(t,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.vin"))},null,8,["model-value"]),n(t,{title:"Device ID",required:"","model-value":o.vehicle.configuration.device_id,"onUpdate:modelValue":e[2]||(e[2]=i=>o.updateConfiguration(i,"configuration.device_id"))},null,8,["model-value"]),n(t,{title:"Register ID",required:"","model-value":o.vehicle.configuration.register_id,"onUpdate:modelValue":e[3]||(e[3]=i=>o.updateConfiguration(i,"configuration.register_id"))},null,8,["model-value"]),n(t,{title:"Token",required:"","model-value":o.vehicle.configuration.token,"onUpdate:modelValue":e[4]||(e[4]=i=>o.updateConfiguration(i,"configuration.token"))},null,8,["model-value"]),n(t,{title:"Condition URL",subtype:"url",required:"","model-value":o.vehicle.configuration.condition_url,"onUpdate:modelValue":e[5]||(e[5]=i=>o.updateConfiguration(i,"configuration.condition_url"))},null,8,["model-value"])])}const I=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/aiways/vehicle.vue"]]);export{I as default}; diff --git a/web/settings/assets/vehicle-8a029fa4.js b/web/settings/assets/vehicle-8a029fa4.js new file mode 100644 index 0000000000..28989c2872 --- /dev/null +++ b/web/settings/assets/vehicle-8a029fa4.js @@ -0,0 +1 @@ +import{V as p}from"./VehicleConfig-890c7977.js";import{_ as l,u as s,l as d,m,G as r,E as i,B as t,A as f}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const v={name:"VehicleSocCupra",mixins:[p]},g={class:"vehicle-soc-cupra"};function b(o,e,w,C,c,V){const u=s("openwb-base-alert"),a=s("openwb-base-text-input");return d(),m("div",g,[r(u,{subtype:"info"},{default:i(()=>[...e[3]||(e[3]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),f("a",{href:"https://github.com/openWB/core/wiki/SoC-Cupra",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul Cupra",-1)])]),_:1}),r(a,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:i(()=>[...e[4]||(e[4]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den Cupra-Servern. ",-1)])]),_:1},8,["model-value"]),r(a,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:i(()=>[...e[5]||(e[5]=[t(" Das Passwort für die Anmeldung an den Cupra-Servern. ",-1)])]),_:1},8,["model-value"]),r(a,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:i(()=>[...e[6]||(e[6]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"])])}const q=l(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/cupra/vehicle.vue"]]);export{q as default}; diff --git a/web/settings/assets/vehicle-8c0aaa75.js b/web/settings/assets/vehicle-8c0aaa75.js deleted file mode 100644 index d7ef3b3805..0000000000 --- a/web/settings/assets/vehicle-8c0aaa75.js +++ /dev/null @@ -1 +0,0 @@ -import{V as p}from"./VehicleConfig-c6e5b45b.js";import{_ as m,u as l,l as f,m as b,G as i,E as r,B as t,A as a}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"VehicleSocVwid",mixins:[p]},v={class:"vehicle-soc-vwid"};function w(n,e,V,c,_,B){const s=l("openwb-base-alert"),u=l("openwb-base-text-input"),d=l("openwb-base-button-group-input");return f(),b("div",v,[i(s,{subtype:"info"},{default:r(()=>e[4]||(e[4]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),a("a",{href:"https://github.com/openWB/core/wiki/SoC-VWId",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul VWId",-1)])),_:1,__:[4]}),i(u,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.user_id"))},{help:r(()=>e[5]||(e[5]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den VW-Servern. ",-1)])),_:1},8,["model-value"]),i(u,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.password"))},{help:r(()=>e[6]||(e[6]=[t(" Das Passwort für die Anmeldung an den VW-Servern. ",-1)])),_:1},8,["model-value"]),i(u,{title:"VIN",required:"","model-value":n.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.vin"))},{help:r(()=>e[7]||(e[7]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"]),i(d,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.calculate_soc"))},{help:r(()=>e[8]||(e[8]=[t(" Berechnet den Ladestand (SoC) während der Ladung. ",-1),a("br",null,null,-1),t(" Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),a("br",null,null,-1)])),_:1},8,["model-value"])])}const U=m(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/vwid/vehicle.vue"]]);export{U as default}; diff --git a/web/settings/assets/vehicle-902f8abd.js b/web/settings/assets/vehicle-902f8abd.js new file mode 100644 index 0000000000..cb40f20f08 --- /dev/null +++ b/web/settings/assets/vehicle-902f8abd.js @@ -0,0 +1 @@ +import{V as a}from"./VehicleConfig-890c7977.js";import{_ as d,u,l as p,m as g,G as o,E as l,B as i,A as c}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocTronity",mixins:[a]},f={class:"vehicle-soc-tronity"};function b(n,e,v,C,w,h){const r=u("openwb-base-text-input"),s=u("openwb-base-button-group-input");return p(),g("div",f,[o(r,{title:"Vehicle ID",subtype:"text",required:"","model-value":n.vehicle.configuration.vehicle_id,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.vehicle_id"))},{help:l(()=>[...e[4]||(e[4]=[i(' Vehicle ID aus Tronity angeben. Diese ist in den "Assigned Vehicles" zu finden. ',-1)])]),_:1},8,["model-value"]),o(r,{title:"Client ID",subtype:"text",required:"","model-value":n.vehicle.configuration.client_id,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.client_id"))},{help:l(()=>[...e[5]||(e[5]=[i(' Client ID aus Tronity angeben. Diese ist in den "Application Settings" zu finden. ',-1)])]),_:1},8,["model-value"]),o(r,{title:"Client Secret",subtype:"password",required:"","model-value":n.vehicle.configuration.client_secret,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.client_secret"))},{help:l(()=>[...e[6]||(e[6]=[i(' Client Secret aus Tronity angeben. Diese ist in den "Application Settings" zu finden. Das Client Secret kann nur einmalig abgerufen werden. Ggf. neu erzeugen, womit frühere Client Secrets ungültig werden. ',-1)])]),_:1},8,["model-value"]),o(s,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.calculate_soc"))},{help:l(()=>[...e[7]||(e[7]=[i(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),c("br",null,null,-1),i(" Derzeit notwendig für Peugeot, Opel, Citroen und DS. ",-1)])]),_:1},8,["model-value"])])}const T=d(m,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/tronity/vehicle.vue"]]);export{T as default}; diff --git a/web/settings/assets/vehicle-9505d809.js b/web/settings/assets/vehicle-9505d809.js deleted file mode 100644 index a314d332d6..0000000000 --- a/web/settings/assets/vehicle-9505d809.js +++ /dev/null @@ -1 +0,0 @@ -import{V as l}from"./VehicleConfig-c6e5b45b.js";import{_ as u,u as a,l as p,m,G as i,E as r,B as t,A as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"VehicleSocVwid",mixins:[l]},g={class:"vehicle-soc-skoda"};function b(o,e,w,k,V,_){const d=a("openwb-base-alert"),s=a("openwb-base-text-input");return p(),m("div",g,[i(d,{subtype:"info"},{default:r(()=>e[3]||(e[3]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),f("a",{href:"https://github.com/openWB/core/wiki/SoC-Skoda",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul Skoda",-1)])),_:1,__:[3]}),i(s,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:r(()=>e[4]||(e[4]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den Skoda-Servern. ",-1)])),_:1},8,["model-value"]),i(s,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:r(()=>e[5]||(e[5]=[t(" Das Passwort für die Anmeldung an den Skoda-Servern. ",-1)])),_:1},8,["model-value"]),i(s,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:r(()=>e[6]||(e[6]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"])])}const q=u(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/skoda/vehicle.vue"]]);export{q as default}; diff --git a/web/settings/assets/vehicle-98b9fcdb.js b/web/settings/assets/vehicle-98b9fcdb.js deleted file mode 100644 index d0971402a7..0000000000 --- a/web/settings/assets/vehicle-98b9fcdb.js +++ /dev/null @@ -1 +0,0 @@ -import{V as p}from"./VehicleConfig-c6e5b45b.js";import{_ as l,u as s,l as d,m,G as r,E as i,B as t,A as f}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const v={name:"VehicleSocCupra",mixins:[p]},g={class:"vehicle-soc-cupra"};function b(o,e,w,C,c,_){const u=s("openwb-base-alert"),a=s("openwb-base-text-input");return d(),m("div",g,[r(u,{subtype:"info"},{default:i(()=>e[3]||(e[3]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),f("a",{href:"https://github.com/openWB/core/wiki/SoC-Cupra",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul Cupra",-1)])),_:1,__:[3]}),r(a,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:i(()=>e[4]||(e[4]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den Cupra-Servern. ",-1)])),_:1},8,["model-value"]),r(a,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:i(()=>e[5]||(e[5]=[t(" Das Passwort für die Anmeldung an den Cupra-Servern. ",-1)])),_:1},8,["model-value"]),r(a,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:i(()=>e[6]||(e[6]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"])])}const q=l(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/cupra/vehicle.vue"]]);export{q as default}; diff --git a/web/settings/assets/vehicle-9efbb8ea.js b/web/settings/assets/vehicle-9efbb8ea.js deleted file mode 100644 index e7e26d651f..0000000000 --- a/web/settings/assets/vehicle-9efbb8ea.js +++ /dev/null @@ -1 +0,0 @@ -import{V as l}from"./VehicleConfig-c6e5b45b.js";import{_ as p,u as a,l as m,m as f,G as r,E as t,B as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const g={name:"VehicleSocPSACC",mixins:[l]},v={class:"vehicle-soc-psacc"};function c(n,e,b,_,C,h){const d=a("openwb-base-alert"),s=a("openwb-base-text-input"),u=a("openwb-base-number-input");return m(),f("div",v,[r(d,{subtype:"info"},{default:t(()=>e[3]||(e[3]=[i(' Der PSA Car Controller muss auf einem eigenen Host installiert werden, mit Zugangsdaten konfiguriert werden und dauerhaft laufen. Die openWB ruft den SoC zu Beginn der Ladung vom PSA Car Controller ab. Während der Ladung liefert PSA keine Updates. Daher wird der SoC während der Ladung aus dem Zählerstand berechnet. Ausschlaggebend für die Genauigkeit dieser Berechnung sind die beiden Einstellungen "Kapazität der Batterie" und "Wirkungsgrad der Ladeelektronik" im Fahrzeug-Profil. ',-1)])),_:1,__:[3]}),r(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.vehicle.configuration.psacc_server_or_ip,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.psacc_server_or_ip"))},{help:t(()=>e[4]||(e[4]=[i("Host, auf dem der PSA Car Controller läuft.",-1)])),_:1},8,["model-value"]),r(u,{title:"Port",required:"",min:1,max:65535,"model-value":n.vehicle.configuration.psacc_port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.psacc_port"))},{help:t(()=>e[5]||(e[5]=[i("Nummer des Ports, den der PSA Car Controller verwendet.",-1)])),_:1},8,["model-value"]),r(s,{title:"VIN",subtype:"text",required:"","model-value":n.vehicle.configuration.vehicle_vin,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.vehicle_vin"))},{help:t(()=>e[6]||(e[6]=[i("Fahrzeug-Identifizierungsnummer des Fahrzeugs, von dem der SoC abgefragt wird.",-1)])),_:1},8,["model-value"])])}const L=p(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/psacc/vehicle.vue"]]);export{L as default}; diff --git a/web/settings/assets/vehicle-a7b64348.js b/web/settings/assets/vehicle-a7b64348.js new file mode 100644 index 0000000000..99209f19dd --- /dev/null +++ b/web/settings/assets/vehicle-a7b64348.js @@ -0,0 +1 @@ +import{V as m}from"./VehicleConfig-890c7977.js";import{_ as b,u as s,l as g,m as v,G as i,E as o,B as n,A as u,F as _}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const f={name:"VehicleSocMercedesEq",mixins:[m],computed:{callback_url(){return`${location.origin}/openWB/web/settings/modules/vehicles/mercedeseq/callback_vehicle.php`},login_url(){return`https://ssoalpha.dvb.corpinter.net/v1/auth?response_type=code&state=${this.vehicleId}&client_id=${this.vehicle.configuration.client_id}&redirect_uri=${this.callback_url}&scope=mb:vehicle:mbdata:evstatus%20offline_access%20openid`},input_complete(){return this.vehicle.configuration.client_id&&this.vehicle.configuration.client_secret&&this.vehicle.configuration.vin}},methods:{login_window(){console.debug("callback url",this.callback_url),console.debug("login url",this.login_url);var t=window.open(this.login_url,"MercedesLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");t.focus()}}},h={class:"vehicle-soc-mercedeseq"};function w(t,e,k,C,y,r){const a=s("openwb-base-text-input"),d=s("openwb-base-copy-to-clipboard"),p=s("openwb-base-alert"),c=s("openwb-base-button-input");return g(),v("div",h,[i(a,{title:"Client-ID",required:"",subtype:"user","model-value":t.vehicle.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=l=>t.updateConfiguration(l,"configuration.client_id"))},{help:o(()=>[...e[3]||(e[3]=[n(" Die im Developer Portal angelegte Client-ID. ",-1)])]),_:1},8,["model-value"]),i(a,{title:"Client Secret",required:"",subtype:"password","model-value":t.vehicle.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=l=>t.updateConfiguration(l,"configuration.client_secret"))},{help:o(()=>[...e[4]||(e[4]=[n(" Das im Developer Portal angelegte Client Secret. ",-1)])]),_:1},8,["model-value"]),i(a,{title:"VIN",required:"","model-value":t.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=l=>t.updateConfiguration(l,"configuration.vin"))},{help:o(()=>[...e[5]||(e[5]=[n(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"]),i(p,{subtype:"info"},{default:o(()=>[e[6]||(e[6]=n(" Vor dem Anmelden bitte die Angaben speichern.",-1)),e[7]||(e[7]=u("br",null,null,-1)),e[8]||(e[8]=n(" Die Callback-URL für die Anmeldung lautet:",-1)),e[9]||(e[9]=u("br",null,null,-1)),i(d,{class:"text-info",tooltip:"URL kopieren"},{default:o(()=>[n(_(r.callback_url),1)]),_:1})]),_:1}),i(c,{title:"Anmelden","button-text":"Bei Mercedes Anmelden",subtype:"success",disabled:!r.input_complete,onButtonClicked:r.login_window},{help:o(()=>[...e[10]||(e[10]=[n(" Es wird ein neues Browserfenster geöffnet, in dem Sie sich bei Mercedes mit Ihren Zugangsdaten anmelden können.",-1),u("br",null,null,-1)])]),_:1},8,["disabled","onButtonClicked"])])}const U=b(f,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/mercedeseq/vehicle.vue"]]);export{U as default}; diff --git a/web/settings/assets/vehicle-ae2c6386.js b/web/settings/assets/vehicle-ae2c6386.js new file mode 100644 index 0000000000..d214612a49 --- /dev/null +++ b/web/settings/assets/vehicle-ae2c6386.js @@ -0,0 +1 @@ +import{V as n}from"./VehicleConfig-890c7977.js";import{_ as s,u as i,l as o,m as r,G as a,E as d,B as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const p={name:"VehicleSocManual",mixins:[n]},c={class:"vehicle-soc-tesla"};function m(u,e,_,f,h,g){const t=i("openwb-base-alert");return o(),r("div",c,[a(t,{subtype:"info"},{default:d(()=>[...e[0]||(e[0]=[l(' Beim Anstecken des Fahrzeugs muss der aktuelle SoC über die Hauptseite angegeben werden. Anhand des Zählers im Ladepunkt wird dann der aktuelle SoC errechnet. Ausschlaggebend für die Qualität dieses Moduls sind die beiden Einstellungen "Kapazität der Batterie" in dem Fahrzeug-Profil und "Wirkungsgrad der Ladeelektronik". ',-1)])]),_:1})])}const z=s(p,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/manual/vehicle.vue"]]);export{z as default}; diff --git a/web/settings/assets/vehicle-b82069af.js b/web/settings/assets/vehicle-b82069af.js deleted file mode 100644 index 127b9a5b24..0000000000 --- a/web/settings/assets/vehicle-b82069af.js +++ /dev/null @@ -1 +0,0 @@ -import{V as o}from"./VehicleConfig-c6e5b45b.js";import{_ as i,u as r,l as s,m as a,G as c,E as p,B as n,A as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"VehicleSocPSA",mixins:[o]},m={class:"vehicle-soc-psa"};function u(_,e,f,h,b,g){const t=r("openwb-base-alert");return s(),a("div",m,[c(t,{subtype:"danger"},{default:p(()=>e[0]||(e[0]=[n(" Diese Modul ist seit Änderungen der Schnittstellen durch PSA nicht mehr funktionsfähig und wird in einer zukünftigen Version entfernt. Bitte auf einen anderen Anbieter wechseln, z.B. Tronity.",-1),l("br",null,null,-1),n(" Bei vorhandener PSA-Integration in Heimautomation kann der SoC ggf. auch per MQTT übergeben werden. ",-1)])),_:1,__:[0]})])}const T=i(d,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/psa/vehicle.vue"]]);export{T as default}; diff --git a/web/settings/assets/vehicle-c0ccdce1.js b/web/settings/assets/vehicle-c0ccdce1.js new file mode 100644 index 0000000000..91b455884a --- /dev/null +++ b/web/settings/assets/vehicle-c0ccdce1.js @@ -0,0 +1 @@ +import{V as u}from"./VehicleConfig-890c7977.js";import{_ as d,u as l,l as s,m as p,G as n,E as m,B as a,A as v}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const f={name:"VehicleSocAiways",mixins:[u]},g={class:"vehicle-soc-aiways"};function c(o,e,w,V,b,C){const r=l("openwb-base-alert"),t=l("openwb-base-text-input");return s(),p("div",g,[n(r,{subtype:"info"},{default:m(()=>[...e[6]||(e[6]=[a(" Alle Werte müssen von der Aiways App abgefangen werden. Dazu kann diese ",-1),v("a",{href:"https://community.home-assistant.io/t/read-aiways-u5-state-of-charge/466441/5"}," Anleitung ",-1),a(" verwendet werden. ",-1)])]),_:1}),n(t,{title:"User ID",required:"","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.user_id"))},null,8,["model-value"]),n(t,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.vin"))},null,8,["model-value"]),n(t,{title:"Device ID",required:"","model-value":o.vehicle.configuration.device_id,"onUpdate:modelValue":e[2]||(e[2]=i=>o.updateConfiguration(i,"configuration.device_id"))},null,8,["model-value"]),n(t,{title:"Register ID",required:"","model-value":o.vehicle.configuration.register_id,"onUpdate:modelValue":e[3]||(e[3]=i=>o.updateConfiguration(i,"configuration.register_id"))},null,8,["model-value"]),n(t,{title:"Token",required:"","model-value":o.vehicle.configuration.token,"onUpdate:modelValue":e[4]||(e[4]=i=>o.updateConfiguration(i,"configuration.token"))},null,8,["model-value"]),n(t,{title:"Condition URL",subtype:"url",required:"","model-value":o.vehicle.configuration.condition_url,"onUpdate:modelValue":e[5]||(e[5]=i=>o.updateConfiguration(i,"configuration.condition_url"))},null,8,["model-value"])])}const I=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/aiways/vehicle.vue"]]);export{I as default}; diff --git a/web/settings/assets/vehicle-c13da273.js b/web/settings/assets/vehicle-c13da273.js new file mode 100644 index 0000000000..9b7e8823dc --- /dev/null +++ b/web/settings/assets/vehicle-c13da273.js @@ -0,0 +1 @@ +import{V as u}from"./VehicleConfig-890c7977.js";import{_ as a,u as s,l as d,m as p,G as t,E as r,B as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocKia",mixins:[u]},v={class:"vehicle-soc-kia"};function f(o,e,g,w,V,b){const i=s("openwb-base-text-input");return d(),p("div",v,[t(i,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:r(()=>[...e[4]||(e[4]=[l(" Der Benutzername für die Anmeldung an den Servern. ",-1)])]),_:1},8,["model-value"]),t(i,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:r(()=>[...e[5]||(e[5]=[l(" Das Passwort für die Anmeldung an den Servern. ",-1)])]),_:1},8,["model-value"]),t(i,{title:"PIN",required:"",subtype:"password","model-value":o.vehicle.configuration.pin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.pin"))},{help:r(()=>[...e[6]||(e[6]=[l(" Die PIN für die Anmeldung an den Servern. ",-1)])]),_:1},8,["model-value"]),t(i,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:r(()=>[...e[7]||(e[7]=[l(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"])])}const h=a(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/kia/vehicle.vue"]]);export{h as default}; diff --git a/web/settings/assets/vehicle-d60d851d.js b/web/settings/assets/vehicle-d60d851d.js new file mode 100644 index 0000000000..f8376c675c --- /dev/null +++ b/web/settings/assets/vehicle-d60d851d.js @@ -0,0 +1 @@ +import{V as p}from"./VehicleConfig-890c7977.js";import{_ as m,u as l,l as f,m as b,G as i,E as r,B as t,A as a}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const g={name:"VehicleSocVwid",mixins:[p]},v={class:"vehicle-soc-vwid"};function w(n,e,V,c,_,B){const s=l("openwb-base-alert"),u=l("openwb-base-text-input"),d=l("openwb-base-button-group-input");return f(),b("div",v,[i(s,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),a("a",{href:"https://github.com/openWB/core/wiki/SoC-VWId",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul VWId",-1)])]),_:1}),i(u,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.user_id"))},{help:r(()=>[...e[5]||(e[5]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den VW-Servern. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.password"))},{help:r(()=>[...e[6]||(e[6]=[t(" Das Passwort für die Anmeldung an den VW-Servern. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"VIN",required:"","model-value":n.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.vin"))},{help:r(()=>[...e[7]||(e[7]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"]),i(d,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.calculate_soc"))},{help:r(()=>[...e[8]||(e[8]=[t(" Berechnet den Ladestand (SoC) während der Ladung. ",-1),a("br",null,null,-1),t(" Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),a("br",null,null,-1)])]),_:1},8,["model-value"])])}const U=m(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/vwid/vehicle.vue"]]);export{U as default}; diff --git a/web/settings/assets/vehicle-da3e8433.js b/web/settings/assets/vehicle-da3e8433.js deleted file mode 100644 index bfbea1f8d9..0000000000 --- a/web/settings/assets/vehicle-da3e8433.js +++ /dev/null @@ -1 +0,0 @@ -import{V as p}from"./VehicleConfig-c6e5b45b.js";import{_ as g,u as s,l as b,m as f,G as l,E as r,B as t,A as n}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const w={name:"VehicleSocBmwBimmerConnected",mixins:[p]},C={class:"vehicle-soc-bmwbc"},v={href:"https://bimmer-connected.readthedocs.io/en/latest/captcha/rest_of_world.html",target:"_blank"};function k(o,e,B,S,D,z){const a=s("openwb-base-alert"),u=s("openwb-base-text-input"),d=s("font-awesome-icon"),m=s("openwb-base-button-group-input");return b(),f("div",C,[l(a,{subtype:"info"},{default:r(()=>e[5]||(e[5]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),n("a",{href:"https://github.com/openWB/core/wiki/SoC-BMW-Mini",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul BMW & Mini",-1)])),_:1,__:[5]}),l(u,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.user_id"))},{help:r(()=>e[6]||(e[6]=[t(" Der Benutzername für die Anmeldung an den BMW-Servern. ",-1)])),_:1},8,["model-value"]),l(u,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.password"))},{help:r(()=>e[7]||(e[7]=[t(" Das Passwort für die Anmeldung an den BMW-Servern. ",-1)])),_:1},8,["model-value"]),l(u,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=i=>o.updateConfiguration(i,"configuration.vin"))},{help:r(()=>e[8]||(e[8]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"]),l(u,{title:"Captcha-Token",required:"","model-value":o.vehicle.configuration.captcha_token,"onUpdate:modelValue":e[3]||(e[3]=i=>o.updateConfiguration(i,"configuration.captcha_token"))},{help:r(()=>[e[18]||(e[18]=t(" Zum erstmaligen Login z.B. nach einem Neustart oder wenn die Abfrage nicht mehr funktioniert ist ein ",-1)),e[19]||(e[19]=n("b",null,"aktuelles Captcha-Token",-1)),e[20]||(e[20]=t(" notwendig.",-1)),e[21]||(e[21]=n("br",null,null,-1)),e[22]||(e[22]=t(" Falls mehr als ein Fahrzeug in dem CD-Account vorhanden ist, sollte nur das mit der niedrigsten openWB id mit einem gültigen Captcha-Token konfiguriert werden (PRIMARY).",-1)),e[23]||(e[23]=n("br",null,null,-1)),e[24]||(e[24]=t(" Das SoC-Modul des Fahrzeuges mit ",-1)),e[25]||(e[25]=n("b",null,"gültigem",-1)),e[26]||(e[26]=t(" Captcha-Token führt die SoC-Abfragen für alle Fahrzeuge im CD-Account aus.",-1)),e[27]||(e[27]=n("br",null,null,-1)),e[28]||(e[28]=t(" Die SECONDARY SoC-Module holen sich ihre Daten vom PRIMARY.",-1)),e[29]||(e[29]=n("br",null,null,-1)),e[30]||(e[30]=t(' Bei den weiteren Fahrzeugen ist daher als Captcha-Token der Wert "SECONDARY" (ohne Quotes) einzutragen.',-1)),e[31]||(e[31]=n("br",null,null,-1)),e[32]||(e[32]=t(" Um das Captcha-Token zu bekommen bitte folgende Schritte durchführen: ",-1)),n("ol",null,[n("li",null,[e[10]||(e[10]=t(" In einem neuen Browser-Tab auf diese Seite gehen:",-1)),e[11]||(e[11]=n("br",null,null,-1)),n("a",v,[e[9]||(e[9]=t(" Captcha Lösen ",-1)),l(d,{icon:["fas","external-link-alt"]})]),e[12]||(e[12]=t(" (https://bimmer-connected.readthedocs.io/en/latest/captcha/rest_of_world.html) ",-1))]),e[13]||(e[13]=n("li",null,' Dort falls angefragt das Captcha lösen und/oder "Ich bin ein Mensch" und dann Submit anklicken. Als Ergebnis wird ein sehr langer String angezeigt. ',-1)),e[14]||(e[14]=n("li",null,[t("Diesen String komplett mit "),n("b",null,"Copy&Paste"),t(" in das Feld Captcha-Token eingeben.")],-1)),e[15]||(e[15]=n("li",null,"Die Konfiguration speichern.",-1)),e[16]||(e[16]=n("li",null,[n("b",null,"Sofort einmal im Desktop manuell (Kreispfeil) den SoC für das Fahrzeug abrufen.")],-1)),e[17]||(e[17]=n("li",null,[n("b",null,"Fertig."),t(" Ab jetzt wird bis zum nächsten Neustart das sog. Refresh-Token verwendet.")],-1))]),e[33]||(e[33]=n("b",null,"Achtung: Das Captcha-Token kann nur einmal verwendet werden und gilt nur kurze Zeit!",-1))]),_:1},8,["model-value"]),l(m,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":o.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[4]||(e[4]=i=>o.updateConfiguration(i,"configuration.calculate_soc"))},{help:r(()=>e[34]||(e[34]=[t(" Berechnet den Ladestand (SoC) während der Ladung. ",-1),n("br",null,null,-1),t(" Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),n("br",null,null,-1)])),_:1},8,["model-value"])])}const R=g(w,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/bmwbc/vehicle.vue"]]);export{R as default}; diff --git a/web/settings/assets/vehicle-e0cbc84a.js b/web/settings/assets/vehicle-e0cbc84a.js deleted file mode 100644 index 610cfc1b31..0000000000 --- a/web/settings/assets/vehicle-e0cbc84a.js +++ /dev/null @@ -1 +0,0 @@ -import{V as a}from"./VehicleConfig-c6e5b45b.js";import{_ as s,u as p,l as u,m,G as n,E as r,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const d={name:"VehicleSocHttp",mixins:[a]},c={class:"vehicle-soc-http"};function v(t,e,f,h,g,w){const i=p("openwb-base-text-input");return u(),m("div",c,[n(i,{title:"SoC URL",subtype:"url",required:"","model-value":t.vehicle.configuration.soc_url,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.soc_url"))},{help:r(()=>e[2]||(e[2]=[l(" Es wird vom Server eine Zahl (Float mit Punkt als Dezimaltrennzeichen oder Integer) erwartet, welche den aktuellen Ladestand in Prozent (0 bis 100) zurückgibt. ",-1)])),_:1},8,["model-value"]),n(i,{title:"Reichweiten URL",subtype:"url","model-value":t.vehicle.configuration.range_url,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.range_url"))},{help:r(()=>e[3]||(e[3]=[l(" Es wird vom Server eine Zahl (Float mit Punkt als Dezimaltrennzeichen oder Integer) erwartet, welche die aktuelle Reichweite in Kilometern darstellt. Diese Angabe ist optional. ",-1)])),_:1},8,["model-value"])])}const R=s(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/http/vehicle.vue"]]);export{R as default}; diff --git a/web/settings/assets/vehicle-e357d4e3.js b/web/settings/assets/vehicle-e357d4e3.js new file mode 100644 index 0000000000..8b029db895 --- /dev/null +++ b/web/settings/assets/vehicle-e357d4e3.js @@ -0,0 +1 @@ +import{V as a}from"./VehicleConfig-890c7977.js";import{_ as s,u as p,l as u,m,G as n,E as r,B as l}from"./vendor-50125810.js";import"./vendor-fortawesome-fc4b3a41.js";import"./index-c94f8df4.js";import"./vendor-bootstrap-01761fad.js";import"./vendor-jquery-a46fe321.js";import"./vendor-axios-1a87d4ae.js";import"./vendor-sortablejs-8982fad4.js";import"./dynamic-import-helper-be004503.js";const d={name:"VehicleSocHttp",mixins:[a]},c={class:"vehicle-soc-http"};function v(t,e,f,h,g,w){const i=p("openwb-base-text-input");return u(),m("div",c,[n(i,{title:"SoC URL",subtype:"url",required:"","model-value":t.vehicle.configuration.soc_url,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.soc_url"))},{help:r(()=>[...e[2]||(e[2]=[l(" Es wird vom Server eine Zahl (Float mit Punkt als Dezimaltrennzeichen oder Integer) erwartet, welche den aktuellen Ladestand in Prozent (0 bis 100) zurückgibt. ",-1)])]),_:1},8,["model-value"]),n(i,{title:"Reichweiten URL",subtype:"url","model-value":t.vehicle.configuration.range_url,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.range_url"))},{help:r(()=>[...e[3]||(e[3]=[l(" Es wird vom Server eine Zahl (Float mit Punkt als Dezimaltrennzeichen oder Integer) erwartet, welche die aktuelle Reichweite in Kilometern darstellt. Diese Angabe ist optional. ",-1)])]),_:1},8,["model-value"])])}const R=s(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/http/vehicle.vue"]]);export{R as default}; diff --git a/web/settings/assets/vehicle-e45de3aa.js b/web/settings/assets/vehicle-e45de3aa.js deleted file mode 100644 index 8682d7a5d5..0000000000 --- a/web/settings/assets/vehicle-e45de3aa.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as h,a6 as c,a7 as _,a8 as f,u as r,l as b,m as k,G as i,E as a,B as s,A as v}from"./vendor-25d394b4.js";import{a as w}from"./vendor-axios-ac33d60c.js";import{C}from"./index-8dd8e083.js";import{V as y}from"./VehicleConfig-c6e5b45b.js";import"./vendor-sortablejs-0eb84ec8.js";import"./vendor-fortawesome-a02b6813.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./dynamic-import-helper-be004503.js";const T={name:"VehicleSocTesla",mixins:[C,y],data(){return{tesla_api_oauth2:"https://auth.tesla.com/oauth2/v3",tesla_api_redirect:"https://auth.tesla.com/void/callback",tesla_api_owners:"https://owner-api.teslamotors.com/oauth/token",user_agent:"Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",code_challenge:null,code_verifier:null,page_not_found_url:null}},methods:{tesla_login_window(){this.tesla_gen_challenge();var e=window.open(this.tesla_gen_url(),"TeslaLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");e.focus()},tesla_gen_challenge(){this.code_verifier=c.encode(_.randomBytes(86)).replace(/[^a-zA-Z0-9]/gi,"").substring(0,86);const e=_.createHash("sha256").update(this.code_verifier).digest();this.code_challenge=c.encode(e),console.debug(this.code_verifier,this.code_verifier.length,this.code_challenge,this.code_challenge.length)},tesla_gen_url(){const e=new URL(this.tesla_api_oauth2+"/authorize/");return e.searchParams.append("client_id","ownerapi"),e.searchParams.append("code_challenge",this.code_challenge),e.searchParams.append("code_challenge_method","S256"),e.searchParams.append("redirect_uri",this.tesla_api_redirect),e.searchParams.append("response_type","code"),e.searchParams.append("scope","openid email offline_access"),e.searchParams.append("state","myteslaapp"),e},async tesla_login(){const e=f.parse(this.page_not_found_url,!0).query;if(console.debug("queryObject",e),!e.code){console.error("Something is wrong... Code does not exist in URL"),this.$root.postClientMessage("Die eingegebene URL ist ungültig.","danger");return}const n={url:this.tesla_api_owners,user_agent:this.user_agent,data:{grant_type:"authorization_code",client_id:"ownerapi",code:e.code,code_verifier:this.code_verifier,redirect_uri:this.tesla_api_redirect}};try{const o=await w.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/vehicles/tesla/tesla.php",JSON.parse(JSON.stringify(n)),{headers:{"Content-Type":"application/json",Accept:"application/json"}});console.debug("response",o),this.updateConfiguration({access_token:o.data.access_token,refresh_token:o.data.refresh_token,created_at:o.data.created_at,expires_in:o.data.expires_in},"configuration.token"),this.$root.postClientMessage("Token erfolgreich abgerufen.","success")}catch(o){console.error(o),this.$root.postClientMessage("Beim Abruf der Token ist ein Fehler aufgetreten!
"+o+"
","danger")}}}},B={class:"vehicle-soc-tesla"};function U(e,n,o,z,l,p){const u=r("openwb-base-number-input"),m=r("openwb-base-heading"),g=r("openwb-base-button-input"),d=r("openwb-base-text-input");return b(),k("div",B,[i(u,{title:"Fahrzeug-ID",required:"",min:0,"model-value":e.vehicle.configuration.tesla_ev_num,"onUpdate:modelValue":n[0]||(n[0]=t=>e.updateConfiguration(t,"configuration.tesla_ev_num"))},{help:a(()=>n[6]||(n[6]=[s(' Die ID des Fahrzeugs bei Tesla. Normalerweise "0" bei nur einem Fahrzeug im Konto. ',-1)])),_:1},8,["model-value"]),i(m,null,{default:a(()=>n[7]||(n[7]=[s("Token abrufen oder eingeben",-1)])),_:1,__:[7]}),i(g,{title:"1. Anmelden","button-text":"Bei Tesla Anmelden",subtype:"success",onButtonClicked:p.tesla_login_window},{help:a(()=>n[8]||(n[8]=[s(" Es wird ein neues Browserfenster geöffnet, in dem Sie sich bei Tesla mit Ihren Zugangsdaten anmelden können. ",-1)])),_:1},8,["onButtonClicked"]),i(d,{modelValue:l.page_not_found_url,"onUpdate:modelValue":n[1]||(n[1]=t=>l.page_not_found_url=t),title:"2. URL kopieren und einfügen",subtype:"url","empty-value":null},{help:a(()=>n[9]||(n[9]=[s(' Hier die komplette URL (Text in der Adresszeile) aus dem geöffneten Browserfenster einfügen, wenn dort "Page Not Found" angezeigt wird. ',-1)])),_:1},8,["modelValue"]),i(g,{title:"3. Token abrufen","button-text":"Jetzt abrufen",subtype:"success",disabled:l.page_not_found_url===null,onButtonClicked:p.tesla_login},{help:a(()=>n[10]||(n[10]=[s(" Der in der eingegebenen URL enthaltene Code wird genutzt, um ein Anmeldetoken bei Tesla abzurufen. Ist dies erfolgreich, so werden die Daten des Token in den weiteren Feldern automatisch eingegeben. ",-1)])),_:1},8,["disabled","onButtonClicked"]),n[13]||(n[13]=v("hr",null,null,-1)),i(d,{title:"Access Token",pattern:"^(ey).*",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.access_token:"","onUpdate:modelValue":n[2]||(n[2]=t=>e.updateConfiguration(t,"configuration.token.access_token"))},null,8,["model-value"]),i(d,{title:"Refresh Token",pattern:"^(ey).*",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.refresh_token:"","onUpdate:modelValue":n[3]||(n[3]=t=>e.updateConfiguration(t,"configuration.token.refresh_token"))},null,8,["model-value"]),i(u,{title:"Erstellt um",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.created_at:0,"onUpdate:modelValue":n[4]||(n[4]=t=>e.updateConfiguration(t,"configuration.token.created_at"))},{help:a(()=>n[11]||(n[11]=[s(" Unix Timestamp des Zeitpunktes, an dem das Token erzeugt wurde. ",-1)])),_:1},8,["model-value"]),i(u,{title:"Ungültig in",unit:"s",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.expires_in:0,"onUpdate:modelValue":n[5]||(n[5]=t=>e.updateConfiguration(t,"configuration.token.expires_in"))},{help:a(()=>n[12]||(n[12]=[s(" Zeitspanne in Sekunden, nach der das Token ungültig wird. ",-1)])),_:1},8,["model-value"])])}const D=h(T,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/tesla/vehicle.vue"]]);export{D as default}; diff --git a/web/settings/assets/vehicle-f2b05f39.js b/web/settings/assets/vehicle-f2b05f39.js deleted file mode 100644 index f353534925..0000000000 --- a/web/settings/assets/vehicle-f2b05f39.js +++ /dev/null @@ -1 +0,0 @@ -import{V as a}from"./VehicleConfig-c6e5b45b.js";import{_ as p,u as s,l as m,m as v,G as t,E as l,B as o,A as i}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const f={name:"VehicleSocOVMS",mixins:[a]},g={class:"vehicle-soc-ovms"};function b(n,e,V,w,S,M){const d=s("openwb-base-alert"),u=s("openwb-base-text-input");return m(),v("div",g,[t(d,{subtype:"info"},{default:l(()=>e[4]||(e[4]=[o(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),i("a",{href:"https://github.com/openWB/core/wiki/SoC-OVMS",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul OVMS",-1)])),_:1,__:[4]}),t(u,{title:"Server URL",required:"","model-value":n.vehicle.configuration.server_url,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.server_url"))},{help:l(()=>e[5]||(e[5]=[o(" Die URL (incl. Port) des API des OVMS-Servers, an dem das OVMS-Modul angemeldet ist, z.B. ",-1),i("br",null,null,-1),o(" https://ovms.dexters-web.de:6869",-1),i("br",null,null,-1),o(" oder",-1),i("br",null,null,-1),o(" https://api.openvehicles.com:6869",-1),i("br",null,null,-1),o(" oder ein custom server",-1),i("br",null,null,-1)])),_:1},8,["model-value"]),t(u,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateConfiguration(r,"configuration.user_id"))},{help:l(()=>e[6]||(e[6]=[o(" Der Benutzername für die Anmeldung am benutzen OVMS-Servers. ",-1)])),_:1},8,["model-value"]),t(u,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=r=>n.updateConfiguration(r,"configuration.password"))},{help:l(()=>e[7]||(e[7]=[o(" Das Passwort für die Anmeldung am OVMS-Server. ",-1)])),_:1},8,["model-value"]),t(u,{title:"Vehicle Id",required:"","model-value":n.vehicle.configuration.vehicleId,"onUpdate:modelValue":e[3]||(e[3]=r=>n.updateConfiguration(r,"configuration.vehicleId"))},{help:l(()=>e[8]||(e[8]=[o(" Die Id des Fahrzeugs im OVMS, auch Module Id genannt. ",-1)])),_:1},8,["model-value"])])}const z=p(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ovms/vehicle.vue"]]);export{z as default}; diff --git a/web/settings/assets/vehicle-fbca4a35.js b/web/settings/assets/vehicle-fbca4a35.js deleted file mode 100644 index aa73e37fd1..0000000000 --- a/web/settings/assets/vehicle-fbca4a35.js +++ /dev/null @@ -1 +0,0 @@ -import{V as u}from"./VehicleConfig-c6e5b45b.js";import{_ as a,u as s,l as d,m as p,G as t,E as r,B as l}from"./vendor-25d394b4.js";import"./vendor-fortawesome-a02b6813.js";import"./index-8dd8e083.js";import"./vendor-bootstrap-374cd88e.js";import"./vendor-jquery-3364d39b.js";import"./vendor-axios-ac33d60c.js";import"./vendor-sortablejs-0eb84ec8.js";import"./dynamic-import-helper-be004503.js";const m={name:"VehicleSocKia",mixins:[u]},v={class:"vehicle-soc-kia"};function f(o,e,g,w,V,b){const i=s("openwb-base-text-input");return d(),p("div",v,[t(i,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:r(()=>e[4]||(e[4]=[l(" Der Benutzername für die Anmeldung an den Servern. ",-1)])),_:1},8,["model-value"]),t(i,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:r(()=>e[5]||(e[5]=[l(" Das Passwort für die Anmeldung an den Servern. ",-1)])),_:1},8,["model-value"]),t(i,{title:"PIN",required:"",subtype:"password","model-value":o.vehicle.configuration.pin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.pin"))},{help:r(()=>e[6]||(e[6]=[l(" Die PIN für die Anmeldung an den Servern. ",-1)])),_:1},8,["model-value"]),t(i,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:r(()=>e[7]||(e[7]=[l(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])),_:1},8,["model-value"])])}const h=a(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/kia/vehicle.vue"]]);export{h as default}; diff --git a/web/settings/assets/vendor-25d394b4.js b/web/settings/assets/vendor-50125810.js similarity index 87% rename from web/settings/assets/vendor-25d394b4.js rename to web/settings/assets/vendor-50125810.js index a478e2dddd..1cbcbe91ad 100644 --- a/web/settings/assets/vendor-25d394b4.js +++ b/web/settings/assets/vendor-50125810.js @@ -1,50 +1,50 @@ -import{r as require$$1$5}from"./vendor-sortablejs-0eb84ec8.js";var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getDefaultExportFromCjs(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function getAugmentedNamespace(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function o(){return this instanceof o?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(o){var l=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(n,o,l.get?l:{enumerable:!0,get:function(){return e[o]}})}),n}var buffer$2={},base64Js={};base64Js.byteLength=byteLength$1;base64Js.toByteArray=toByteArray;base64Js.fromByteArray=fromByteArray;var lookup=[],revLookup=[],Arr=typeof Uint8Array<"u"?Uint8Array:Array,code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var i=0,len=code.length;i0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");n===-1&&(n=t);var o=n===t?0:4-n%4;return[n,o]}function byteLength$1(e){var t=getLens(e),n=t[0],o=t[1];return(n+o)*3/4-o}function _byteLength(e,t,n){return(t+n)*3/4-n}function toByteArray(e){var t,n=getLens(e),o=n[0],l=n[1],a=new Arr(_byteLength(e,o,l)),d=0,y=l>0?o-4:o,w;for(w=0;w>16&255,a[d++]=t>>8&255,a[d++]=t&255;return l===2&&(t=revLookup[e.charCodeAt(w)]<<2|revLookup[e.charCodeAt(w+1)]>>4,a[d++]=t&255),l===1&&(t=revLookup[e.charCodeAt(w)]<<10|revLookup[e.charCodeAt(w+1)]<<4|revLookup[e.charCodeAt(w+2)]>>2,a[d++]=t>>8&255,a[d++]=t&255),a}function tripletToBase64(e){return lookup[e>>18&63]+lookup[e>>12&63]+lookup[e>>6&63]+lookup[e&63]}function encodeChunk(e,t,n){for(var o,l=[],a=t;ay?y:d+a));return o===1?(t=e[n-1],l.push(lookup[t>>2]+lookup[t<<4&63]+"==")):o===2&&(t=(e[n-2]<<8)+e[n-1],l.push(lookup[t>>10]+lookup[t>>4&63]+lookup[t<<2&63]+"=")),l.join("")}var ieee754={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ieee754.read=function(e,t,n,o,l){var a,d,y=l*8-o-1,w=(1<>1,S=-7,E=n?l-1:0,C=n?-1:1,B=e[t+E];for(E+=C,a=B&(1<<-S)-1,B>>=-S,S+=y;S>0;a=a*256+e[t+E],E+=C,S-=8);for(d=a&(1<<-S)-1,a>>=-S,S+=o;S>0;d=d*256+e[t+E],E+=C,S-=8);if(a===0)a=1-_;else{if(a===w)return d?NaN:(B?-1:1)*(1/0);d=d+Math.pow(2,o),a=a-_}return(B?-1:1)*d*Math.pow(2,a-o)};ieee754.write=function(e,t,n,o,l,a){var d,y,w,_=a*8-l-1,S=(1<<_)-1,E=S>>1,C=l===23?Math.pow(2,-24)-Math.pow(2,-77):0,B=o?0:a-1,L=o?1:-1,F=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(y=isNaN(t)?1:0,d=S):(d=Math.floor(Math.log(t)/Math.LN2),t*(w=Math.pow(2,-d))<1&&(d--,w*=2),d+E>=1?t+=C/w:t+=C*Math.pow(2,1-E),t*w>=2&&(d++,w/=2),d+E>=S?(y=0,d=S):d+E>=1?(y=(t*w-1)*Math.pow(2,l),d=d+E):(y=t*Math.pow(2,E-1)*Math.pow(2,l),d=0));l>=8;e[n+B]=y&255,B+=L,y/=256,l-=8);for(d=d<0;e[n+B]=d&255,B+=L,d/=256,_-=8);e[n+B-L]|=F*128};/*! +import{r as require$$1$5}from"./vendor-sortablejs-8982fad4.js";var commonjsGlobal=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function getDefaultExportFromCjs(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function getAugmentedNamespace(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function o(){return this instanceof o?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(o){var l=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(n,o,l.get?l:{enumerable:!0,get:function(){return e[o]}})}),n}var buffer$2={},base64Js={};base64Js.byteLength=byteLength$1;base64Js.toByteArray=toByteArray;base64Js.fromByteArray=fromByteArray;var lookup=[],revLookup=[],Arr=typeof Uint8Array<"u"?Uint8Array:Array,code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var i=0,len=code.length;i0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");n===-1&&(n=t);var o=n===t?0:4-n%4;return[n,o]}function byteLength$1(e){var t=getLens(e),n=t[0],o=t[1];return(n+o)*3/4-o}function _byteLength(e,t,n){return(t+n)*3/4-n}function toByteArray(e){var t,n=getLens(e),o=n[0],l=n[1],a=new Arr(_byteLength(e,o,l)),d=0,y=l>0?o-4:o,w;for(w=0;w>16&255,a[d++]=t>>8&255,a[d++]=t&255;return l===2&&(t=revLookup[e.charCodeAt(w)]<<2|revLookup[e.charCodeAt(w+1)]>>4,a[d++]=t&255),l===1&&(t=revLookup[e.charCodeAt(w)]<<10|revLookup[e.charCodeAt(w+1)]<<4|revLookup[e.charCodeAt(w+2)]>>2,a[d++]=t>>8&255,a[d++]=t&255),a}function tripletToBase64(e){return lookup[e>>18&63]+lookup[e>>12&63]+lookup[e>>6&63]+lookup[e&63]}function encodeChunk(e,t,n){for(var o,l=[],a=t;ay?y:d+a));return o===1?(t=e[n-1],l.push(lookup[t>>2]+lookup[t<<4&63]+"==")):o===2&&(t=(e[n-2]<<8)+e[n-1],l.push(lookup[t>>10]+lookup[t>>4&63]+lookup[t<<2&63]+"=")),l.join("")}var ieee754={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ieee754.read=function(e,t,n,o,l){var a,d,y=l*8-o-1,w=(1<>1,S=-7,E=n?l-1:0,C=n?-1:1,B=e[t+E];for(E+=C,a=B&(1<<-S)-1,B>>=-S,S+=y;S>0;a=a*256+e[t+E],E+=C,S-=8);for(d=a&(1<<-S)-1,a>>=-S,S+=o;S>0;d=d*256+e[t+E],E+=C,S-=8);if(a===0)a=1-_;else{if(a===w)return d?NaN:(B?-1:1)*(1/0);d=d+Math.pow(2,o),a=a-_}return(B?-1:1)*d*Math.pow(2,a-o)};ieee754.write=function(e,t,n,o,l,a){var d,y,w,_=a*8-l-1,S=(1<<_)-1,E=S>>1,C=l===23?Math.pow(2,-24)-Math.pow(2,-77):0,B=o?0:a-1,L=o?1:-1,F=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(y=isNaN(t)?1:0,d=S):(d=Math.floor(Math.log(t)/Math.LN2),t*(w=Math.pow(2,-d))<1&&(d--,w*=2),d+E>=1?t+=C/w:t+=C*Math.pow(2,1-E),t*w>=2&&(d++,w/=2),d+E>=S?(y=0,d=S):d+E>=1?(y=(t*w-1)*Math.pow(2,l),d=d+E):(y=t*Math.pow(2,E-1)*Math.pow(2,l),d=0));l>=8;e[n+B]=y&255,B+=L,y/=256,l-=8);for(d=d<0;e[n+B]=d&255,B+=L,d/=256,_-=8);e[n+B-L]|=F*128};/*! * The buffer module from node.js, for the browser. * * @author Feross Aboukhadijeh * @license MIT - */(function(e){var t=base64Js,n=ieee754,o=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;e.Buffer=y,e.SlowBuffer=D,e.INSPECT_MAX_BYTES=50;var l=2147483647;e.kMaxLength=l,y.TYPED_ARRAY_SUPPORT=a(),!y.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function a(){try{var J=new Uint8Array(1),Y={foo:function(){return 42}};return Object.setPrototypeOf(Y,Uint8Array.prototype),Object.setPrototypeOf(J,Y),J.foo()===42}catch{return!1}}Object.defineProperty(y.prototype,"parent",{enumerable:!0,get:function(){if(y.isBuffer(this))return this.buffer}}),Object.defineProperty(y.prototype,"offset",{enumerable:!0,get:function(){if(y.isBuffer(this))return this.byteOffset}});function d(J){if(J>l)throw new RangeError('The value "'+J+'" is invalid for option "size"');var Y=new Uint8Array(J);return Object.setPrototypeOf(Y,y.prototype),Y}function y(J,Y,X){if(typeof J=="number"){if(typeof Y=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return E(J)}return w(J,Y,X)}y.poolSize=8192;function w(J,Y,X){if(typeof J=="string")return C(J,Y);if(ArrayBuffer.isView(J))return L(J);if(J==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof J);if(te(J,ArrayBuffer)||J&&te(J.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(te(J,SharedArrayBuffer)||J&&te(J.buffer,SharedArrayBuffer)))return F(J,Y,X);if(typeof J=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');var ne=J.valueOf&&J.valueOf();if(ne!=null&&ne!==J)return y.from(ne,Y,X);var me=q(J);if(me)return me;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof J[Symbol.toPrimitive]=="function")return y.from(J[Symbol.toPrimitive]("string"),Y,X);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof J)}y.from=function(J,Y,X){return w(J,Y,X)},Object.setPrototypeOf(y.prototype,Uint8Array.prototype),Object.setPrototypeOf(y,Uint8Array);function _(J){if(typeof J!="number")throw new TypeError('"size" argument must be of type number');if(J<0)throw new RangeError('The value "'+J+'" is invalid for option "size"')}function S(J,Y,X){return _(J),J<=0?d(J):Y!==void 0?typeof X=="string"?d(J).fill(Y,X):d(J).fill(Y):d(J)}y.alloc=function(J,Y,X){return S(J,Y,X)};function E(J){return _(J),d(J<0?0:H(J)|0)}y.allocUnsafe=function(J){return E(J)},y.allocUnsafeSlow=function(J){return E(J)};function C(J,Y){if((typeof Y!="string"||Y==="")&&(Y="utf8"),!y.isEncoding(Y))throw new TypeError("Unknown encoding: "+Y);var X=j(J,Y)|0,ne=d(X),me=ne.write(J,Y);return me!==X&&(ne=ne.slice(0,me)),ne}function B(J){for(var Y=J.length<0?0:H(J.length)|0,X=d(Y),ne=0;ne=l)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+l.toString(16)+" bytes");return J|0}function D(J){return+J!=J&&(J=0),y.alloc(+J)}y.isBuffer=function(Y){return Y!=null&&Y._isBuffer===!0&&Y!==y.prototype},y.compare=function(Y,X){if(te(Y,Uint8Array)&&(Y=y.from(Y,Y.offset,Y.byteLength)),te(X,Uint8Array)&&(X=y.from(X,X.offset,X.byteLength)),!y.isBuffer(Y)||!y.isBuffer(X))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(Y===X)return 0;for(var ne=Y.length,me=X.length,he=0,ge=Math.min(ne,me);heme.length?y.from(ge).copy(me,he):Uint8Array.prototype.set.call(me,ge,he);else if(y.isBuffer(ge))ge.copy(me,he);else throw new TypeError('"list" argument must be an Array of Buffers');he+=ge.length}return me};function j(J,Y){if(y.isBuffer(J))return J.length;if(ArrayBuffer.isView(J)||te(J,ArrayBuffer))return J.byteLength;if(typeof J!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof J);var X=J.length,ne=arguments.length>2&&arguments[2]===!0;if(!ne&&X===0)return 0;for(var me=!1;;)switch(Y){case"ascii":case"latin1":case"binary":return X;case"utf8":case"utf-8":return Z(J).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return X*2;case"hex":return X>>>1;case"base64":return k(J).length;default:if(me)return ne?-1:Z(J).length;Y=(""+Y).toLowerCase(),me=!0}}y.byteLength=j;function V(J,Y,X){var ne=!1;if((Y===void 0||Y<0)&&(Y=0),Y>this.length||((X===void 0||X>this.length)&&(X=this.length),X<=0)||(X>>>=0,Y>>>=0,X<=Y))return"";for(J||(J="utf8");;)switch(J){case"hex":return $(this,Y,X);case"utf8":case"utf-8":return m(this,Y,X);case"ascii":return A(this,Y,X);case"latin1":case"binary":return O(this,Y,X);case"base64":return v(this,Y,X);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return c(this,Y,X);default:if(ne)throw new TypeError("Unknown encoding: "+J);J=(J+"").toLowerCase(),ne=!0}}y.prototype._isBuffer=!0;function Q(J,Y,X){var ne=J[Y];J[Y]=J[X],J[X]=ne}y.prototype.swap16=function(){var Y=this.length;if(Y%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var X=0;XX&&(Y+=" ... "),""},o&&(y.prototype[o]=y.prototype.inspect),y.prototype.compare=function(Y,X,ne,me,he){if(te(Y,Uint8Array)&&(Y=y.from(Y,Y.offset,Y.byteLength)),!y.isBuffer(Y))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof Y);if(X===void 0&&(X=0),ne===void 0&&(ne=Y?Y.length:0),me===void 0&&(me=0),he===void 0&&(he=this.length),X<0||ne>Y.length||me<0||he>this.length)throw new RangeError("out of range index");if(me>=he&&X>=ne)return 0;if(me>=he)return-1;if(X>=ne)return 1;if(X>>>=0,ne>>>=0,me>>>=0,he>>>=0,this===Y)return 0;for(var ge=he-me,Re=ne-X,_e=Math.min(ge,Re),we=this.slice(me,he),qe=Y.slice(X,ne),Se=0;Se<_e;++Se)if(we[Se]!==qe[Se]){ge=we[Se],Re=qe[Se];break}return ge2147483647?X=2147483647:X<-2147483648&&(X=-2147483648),X=+X,ee(X)&&(X=me?0:J.length-1),X<0&&(X=J.length+X),X>=J.length){if(me)return-1;X=J.length-1}else if(X<0)if(me)X=0;else return-1;if(typeof Y=="string"&&(Y=y.from(Y,ne)),y.isBuffer(Y))return Y.length===0?-1:ce(J,Y,X,ne,me);if(typeof Y=="number")return Y=Y&255,typeof Uint8Array.prototype.indexOf=="function"?me?Uint8Array.prototype.indexOf.call(J,Y,X):Uint8Array.prototype.lastIndexOf.call(J,Y,X):ce(J,[Y],X,ne,me);throw new TypeError("val must be string, number or Buffer")}function ce(J,Y,X,ne,me){var he=1,ge=J.length,Re=Y.length;if(ne!==void 0&&(ne=String(ne).toLowerCase(),ne==="ucs2"||ne==="ucs-2"||ne==="utf16le"||ne==="utf-16le")){if(J.length<2||Y.length<2)return-1;he=2,ge/=2,Re/=2,X/=2}function _e(Me,ve){return he===1?Me[ve]:Me.readUInt16BE(ve*he)}var we;if(me){var qe=-1;for(we=X;wege&&(X=ge-Re),we=X;we>=0;we--){for(var Se=!0,Ae=0;Aeme&&(ne=me)):ne=me;var he=Y.length;ne>he/2&&(ne=he/2);for(var ge=0;ge>>0,isFinite(ne)?(ne=ne>>>0,me===void 0&&(me="utf8")):(me=ne,ne=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var he=this.length-X;if((ne===void 0||ne>he)&&(ne=he),Y.length>0&&(ne<0||X<0)||X>this.length)throw new RangeError("Attempt to write outside buffer bounds");me||(me="utf8");for(var ge=!1;;)switch(me){case"hex":return ue(this,Y,X,ne);case"utf8":case"utf-8":return re(this,Y,X,ne);case"ascii":case"latin1":case"binary":return pe(this,Y,X,ne);case"base64":return T(this,Y,X,ne);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return u(this,Y,X,ne);default:if(ge)throw new TypeError("Unknown encoding: "+me);me=(""+me).toLowerCase(),ge=!0}},y.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function v(J,Y,X){return Y===0&&X===J.length?t.fromByteArray(J):t.fromByteArray(J.slice(Y,X))}function m(J,Y,X){X=Math.min(J.length,X);for(var ne=[],me=Y;me239?4:he>223?3:he>191?2:1;if(me+Re<=X){var _e,we,qe,Se;switch(Re){case 1:he<128&&(ge=he);break;case 2:_e=J[me+1],(_e&192)===128&&(Se=(he&31)<<6|_e&63,Se>127&&(ge=Se));break;case 3:_e=J[me+1],we=J[me+2],(_e&192)===128&&(we&192)===128&&(Se=(he&15)<<12|(_e&63)<<6|we&63,Se>2047&&(Se<55296||Se>57343)&&(ge=Se));break;case 4:_e=J[me+1],we=J[me+2],qe=J[me+3],(_e&192)===128&&(we&192)===128&&(qe&192)===128&&(Se=(he&15)<<18|(_e&63)<<12|(we&63)<<6|qe&63,Se>65535&&Se<1114112&&(ge=Se))}}ge===null?(ge=65533,Re=1):ge>65535&&(ge-=65536,ne.push(ge>>>10&1023|55296),ge=56320|ge&1023),ne.push(ge),me+=Re}return M(ne)}var b=4096;function M(J){var Y=J.length;if(Y<=b)return String.fromCharCode.apply(String,J);for(var X="",ne=0;nene)&&(X=ne);for(var me="",he=Y;hene&&(Y=ne),X<0?(X+=ne,X<0&&(X=0)):X>ne&&(X=ne),XX)throw new RangeError("Trying to access beyond buffer length")}y.prototype.readUintLE=y.prototype.readUIntLE=function(Y,X,ne){Y=Y>>>0,X=X>>>0,ne||x(Y,X,this.length);for(var me=this[Y],he=1,ge=0;++ge>>0,X=X>>>0,ne||x(Y,X,this.length);for(var me=this[Y+--X],he=1;X>0&&(he*=256);)me+=this[Y+--X]*he;return me},y.prototype.readUint8=y.prototype.readUInt8=function(Y,X){return Y=Y>>>0,X||x(Y,1,this.length),this[Y]},y.prototype.readUint16LE=y.prototype.readUInt16LE=function(Y,X){return Y=Y>>>0,X||x(Y,2,this.length),this[Y]|this[Y+1]<<8},y.prototype.readUint16BE=y.prototype.readUInt16BE=function(Y,X){return Y=Y>>>0,X||x(Y,2,this.length),this[Y]<<8|this[Y+1]},y.prototype.readUint32LE=y.prototype.readUInt32LE=function(Y,X){return Y=Y>>>0,X||x(Y,4,this.length),(this[Y]|this[Y+1]<<8|this[Y+2]<<16)+this[Y+3]*16777216},y.prototype.readUint32BE=y.prototype.readUInt32BE=function(Y,X){return Y=Y>>>0,X||x(Y,4,this.length),this[Y]*16777216+(this[Y+1]<<16|this[Y+2]<<8|this[Y+3])},y.prototype.readIntLE=function(Y,X,ne){Y=Y>>>0,X=X>>>0,ne||x(Y,X,this.length);for(var me=this[Y],he=1,ge=0;++ge=he&&(me-=Math.pow(2,8*X)),me},y.prototype.readIntBE=function(Y,X,ne){Y=Y>>>0,X=X>>>0,ne||x(Y,X,this.length);for(var me=X,he=1,ge=this[Y+--me];me>0&&(he*=256);)ge+=this[Y+--me]*he;return he*=128,ge>=he&&(ge-=Math.pow(2,8*X)),ge},y.prototype.readInt8=function(Y,X){return Y=Y>>>0,X||x(Y,1,this.length),this[Y]&128?(255-this[Y]+1)*-1:this[Y]},y.prototype.readInt16LE=function(Y,X){Y=Y>>>0,X||x(Y,2,this.length);var ne=this[Y]|this[Y+1]<<8;return ne&32768?ne|4294901760:ne},y.prototype.readInt16BE=function(Y,X){Y=Y>>>0,X||x(Y,2,this.length);var ne=this[Y+1]|this[Y]<<8;return ne&32768?ne|4294901760:ne},y.prototype.readInt32LE=function(Y,X){return Y=Y>>>0,X||x(Y,4,this.length),this[Y]|this[Y+1]<<8|this[Y+2]<<16|this[Y+3]<<24},y.prototype.readInt32BE=function(Y,X){return Y=Y>>>0,X||x(Y,4,this.length),this[Y]<<24|this[Y+1]<<16|this[Y+2]<<8|this[Y+3]},y.prototype.readFloatLE=function(Y,X){return Y=Y>>>0,X||x(Y,4,this.length),n.read(this,Y,!0,23,4)},y.prototype.readFloatBE=function(Y,X){return Y=Y>>>0,X||x(Y,4,this.length),n.read(this,Y,!1,23,4)},y.prototype.readDoubleLE=function(Y,X){return Y=Y>>>0,X||x(Y,8,this.length),n.read(this,Y,!0,52,8)},y.prototype.readDoubleBE=function(Y,X){return Y=Y>>>0,X||x(Y,8,this.length),n.read(this,Y,!1,52,8)};function N(J,Y,X,ne,me,he){if(!y.isBuffer(J))throw new TypeError('"buffer" argument must be a Buffer instance');if(Y>me||YJ.length)throw new RangeError("Index out of range")}y.prototype.writeUintLE=y.prototype.writeUIntLE=function(Y,X,ne,me){if(Y=+Y,X=X>>>0,ne=ne>>>0,!me){var he=Math.pow(2,8*ne)-1;N(this,Y,X,ne,he,0)}var ge=1,Re=0;for(this[X]=Y&255;++Re>>0,ne=ne>>>0,!me){var he=Math.pow(2,8*ne)-1;N(this,Y,X,ne,he,0)}var ge=ne-1,Re=1;for(this[X+ge]=Y&255;--ge>=0&&(Re*=256);)this[X+ge]=Y/Re&255;return X+ne},y.prototype.writeUint8=y.prototype.writeUInt8=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,1,255,0),this[X]=Y&255,X+1},y.prototype.writeUint16LE=y.prototype.writeUInt16LE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,2,65535,0),this[X]=Y&255,this[X+1]=Y>>>8,X+2},y.prototype.writeUint16BE=y.prototype.writeUInt16BE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,2,65535,0),this[X]=Y>>>8,this[X+1]=Y&255,X+2},y.prototype.writeUint32LE=y.prototype.writeUInt32LE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,4,4294967295,0),this[X+3]=Y>>>24,this[X+2]=Y>>>16,this[X+1]=Y>>>8,this[X]=Y&255,X+4},y.prototype.writeUint32BE=y.prototype.writeUInt32BE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,4,4294967295,0),this[X]=Y>>>24,this[X+1]=Y>>>16,this[X+2]=Y>>>8,this[X+3]=Y&255,X+4},y.prototype.writeIntLE=function(Y,X,ne,me){if(Y=+Y,X=X>>>0,!me){var he=Math.pow(2,8*ne-1);N(this,Y,X,ne,he-1,-he)}var ge=0,Re=1,_e=0;for(this[X]=Y&255;++ge>0)-_e&255;return X+ne},y.prototype.writeIntBE=function(Y,X,ne,me){if(Y=+Y,X=X>>>0,!me){var he=Math.pow(2,8*ne-1);N(this,Y,X,ne,he-1,-he)}var ge=ne-1,Re=1,_e=0;for(this[X+ge]=Y&255;--ge>=0&&(Re*=256);)Y<0&&_e===0&&this[X+ge+1]!==0&&(_e=1),this[X+ge]=(Y/Re>>0)-_e&255;return X+ne},y.prototype.writeInt8=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,1,127,-128),Y<0&&(Y=255+Y+1),this[X]=Y&255,X+1},y.prototype.writeInt16LE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,2,32767,-32768),this[X]=Y&255,this[X+1]=Y>>>8,X+2},y.prototype.writeInt16BE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,2,32767,-32768),this[X]=Y>>>8,this[X+1]=Y&255,X+2},y.prototype.writeInt32LE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,4,2147483647,-2147483648),this[X]=Y&255,this[X+1]=Y>>>8,this[X+2]=Y>>>16,this[X+3]=Y>>>24,X+4},y.prototype.writeInt32BE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,4,2147483647,-2147483648),Y<0&&(Y=4294967295+Y+1),this[X]=Y>>>24,this[X+1]=Y>>>16,this[X+2]=Y>>>8,this[X+3]=Y&255,X+4};function z(J,Y,X,ne,me,he){if(X+ne>J.length)throw new RangeError("Index out of range");if(X<0)throw new RangeError("Index out of range")}function oe(J,Y,X,ne,me){return Y=+Y,X=X>>>0,me||z(J,Y,X,4),n.write(J,Y,X,ne,23,4),X+4}y.prototype.writeFloatLE=function(Y,X,ne){return oe(this,Y,X,!0,ne)},y.prototype.writeFloatBE=function(Y,X,ne){return oe(this,Y,X,!1,ne)};function le(J,Y,X,ne,me){return Y=+Y,X=X>>>0,me||z(J,Y,X,8),n.write(J,Y,X,ne,52,8),X+8}y.prototype.writeDoubleLE=function(Y,X,ne){return le(this,Y,X,!0,ne)},y.prototype.writeDoubleBE=function(Y,X,ne){return le(this,Y,X,!1,ne)},y.prototype.copy=function(Y,X,ne,me){if(!y.isBuffer(Y))throw new TypeError("argument should be a Buffer");if(ne||(ne=0),!me&&me!==0&&(me=this.length),X>=Y.length&&(X=Y.length),X||(X=0),me>0&&me=this.length)throw new RangeError("Index out of range");if(me<0)throw new RangeError("sourceEnd out of bounds");me>this.length&&(me=this.length),Y.length-X>>0,ne=ne===void 0?this.length:ne>>>0,Y||(Y=0);var ge;if(typeof Y=="number")for(ge=X;ge55295&&X<57344){if(!me){if(X>56319){(Y-=3)>-1&&he.push(239,191,189);continue}else if(ge+1===ne){(Y-=3)>-1&&he.push(239,191,189);continue}me=X;continue}if(X<56320){(Y-=3)>-1&&he.push(239,191,189),me=X;continue}X=(me-55296<<10|X-56320)+65536}else me&&(Y-=3)>-1&&he.push(239,191,189);if(me=null,X<128){if((Y-=1)<0)break;he.push(X)}else if(X<2048){if((Y-=2)<0)break;he.push(X>>6|192,X&63|128)}else if(X<65536){if((Y-=3)<0)break;he.push(X>>12|224,X>>6&63|128,X&63|128)}else if(X<1114112){if((Y-=4)<0)break;he.push(X>>18|240,X>>12&63|128,X>>6&63|128,X&63|128)}else throw new Error("Invalid code point")}return he}function ie(J){for(var Y=[],X=0;X>8,me=X%256,he.push(me),he.push(ne);return he}function k(J){return t.toByteArray(P(J))}function I(J,Y,X,ne){for(var me=0;me=Y.length||me>=J.length);++me)Y[me+X]=J[me];return me}function te(J,Y){return J instanceof Y||J!=null&&J.constructor!=null&&J.constructor.name!=null&&J.constructor.name===Y.name}function ee(J){return J!==J}var fe=function(){for(var J="0123456789abcdef",Y=new Array(256),X=0;X<16;++X)for(var ne=X*16,me=0;me<16;++me)Y[ne+me]=J[X]+J[me];return Y}()})(buffer$2);var browser$1$1={exports:{}},process=browser$1$1.exports={},cachedSetTimeout,cachedClearTimeout;function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?cachedSetTimeout=setTimeout:cachedSetTimeout=defaultSetTimout}catch{cachedSetTimeout=defaultSetTimout}try{typeof clearTimeout=="function"?cachedClearTimeout=clearTimeout:cachedClearTimeout=defaultClearTimeout}catch{cachedClearTimeout=defaultClearTimeout}})();function runTimeout(e){if(cachedSetTimeout===setTimeout)return setTimeout(e,0);if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout)return cachedSetTimeout=setTimeout,setTimeout(e,0);try{return cachedSetTimeout(e,0)}catch{try{return cachedSetTimeout.call(null,e,0)}catch{return cachedSetTimeout.call(this,e,0)}}}function runClearTimeout(e){if(cachedClearTimeout===clearTimeout)return clearTimeout(e);if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout)return cachedClearTimeout=clearTimeout,clearTimeout(e);try{return cachedClearTimeout(e)}catch{try{return cachedClearTimeout.call(null,e)}catch{return cachedClearTimeout.call(this,e)}}}var queue$1=[],draining=!1,currentQueue,queueIndex=-1;function cleanUpNextTick(){!draining||!currentQueue||(draining=!1,currentQueue.length?queue$1=currentQueue.concat(queue$1):queueIndex=-1,queue$1.length&&drainQueue())}function drainQueue(){if(!draining){var e=runTimeout(cleanUpNextTick);draining=!0;for(var t=queue$1.length;t;){for(currentQueue=queue$1,queue$1=[];++queueIndex1)for(var n=1;nl)throw new RangeError('The value "'+J+'" is invalid for option "size"');var Y=new Uint8Array(J);return Object.setPrototypeOf(Y,y.prototype),Y}function y(J,Y,X){if(typeof J=="number"){if(typeof Y=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return E(J)}return w(J,Y,X)}y.poolSize=8192;function w(J,Y,X){if(typeof J=="string")return C(J,Y);if(ArrayBuffer.isView(J))return L(J);if(J==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof J);if(te(J,ArrayBuffer)||J&&te(J.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(te(J,SharedArrayBuffer)||J&&te(J.buffer,SharedArrayBuffer)))return F(J,Y,X);if(typeof J=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');var ne=J.valueOf&&J.valueOf();if(ne!=null&&ne!==J)return y.from(ne,Y,X);var me=j(J);if(me)return me;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof J[Symbol.toPrimitive]=="function")return y.from(J[Symbol.toPrimitive]("string"),Y,X);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof J)}y.from=function(J,Y,X){return w(J,Y,X)},Object.setPrototypeOf(y.prototype,Uint8Array.prototype),Object.setPrototypeOf(y,Uint8Array);function _(J){if(typeof J!="number")throw new TypeError('"size" argument must be of type number');if(J<0)throw new RangeError('The value "'+J+'" is invalid for option "size"')}function S(J,Y,X){return _(J),J<=0?d(J):Y!==void 0?typeof X=="string"?d(J).fill(Y,X):d(J).fill(Y):d(J)}y.alloc=function(J,Y,X){return S(J,Y,X)};function E(J){return _(J),d(J<0?0:H(J)|0)}y.allocUnsafe=function(J){return E(J)},y.allocUnsafeSlow=function(J){return E(J)};function C(J,Y){if((typeof Y!="string"||Y==="")&&(Y="utf8"),!y.isEncoding(Y))throw new TypeError("Unknown encoding: "+Y);var X=q(J,Y)|0,ne=d(X),me=ne.write(J,Y);return me!==X&&(ne=ne.slice(0,me)),ne}function B(J){for(var Y=J.length<0?0:H(J.length)|0,X=d(Y),ne=0;ne=l)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+l.toString(16)+" bytes");return J|0}function D(J){return+J!=J&&(J=0),y.alloc(+J)}y.isBuffer=function(Y){return Y!=null&&Y._isBuffer===!0&&Y!==y.prototype},y.compare=function(Y,X){if(te(Y,Uint8Array)&&(Y=y.from(Y,Y.offset,Y.byteLength)),te(X,Uint8Array)&&(X=y.from(X,X.offset,X.byteLength)),!y.isBuffer(Y)||!y.isBuffer(X))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(Y===X)return 0;for(var ne=Y.length,me=X.length,he=0,ge=Math.min(ne,me);heme.length?y.from(ge).copy(me,he):Uint8Array.prototype.set.call(me,ge,he);else if(y.isBuffer(ge))ge.copy(me,he);else throw new TypeError('"list" argument must be an Array of Buffers');he+=ge.length}return me};function q(J,Y){if(y.isBuffer(J))return J.length;if(ArrayBuffer.isView(J)||te(J,ArrayBuffer))return J.byteLength;if(typeof J!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof J);var X=J.length,ne=arguments.length>2&&arguments[2]===!0;if(!ne&&X===0)return 0;for(var me=!1;;)switch(Y){case"ascii":case"latin1":case"binary":return X;case"utf8":case"utf-8":return Z(J).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return X*2;case"hex":return X>>>1;case"base64":return k(J).length;default:if(me)return ne?-1:Z(J).length;Y=(""+Y).toLowerCase(),me=!0}}y.byteLength=q;function V(J,Y,X){var ne=!1;if((Y===void 0||Y<0)&&(Y=0),Y>this.length||((X===void 0||X>this.length)&&(X=this.length),X<=0)||(X>>>=0,Y>>>=0,X<=Y))return"";for(J||(J="utf8");;)switch(J){case"hex":return $(this,Y,X);case"utf8":case"utf-8":return m(this,Y,X);case"ascii":return A(this,Y,X);case"latin1":case"binary":return O(this,Y,X);case"base64":return v(this,Y,X);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return c(this,Y,X);default:if(ne)throw new TypeError("Unknown encoding: "+J);J=(J+"").toLowerCase(),ne=!0}}y.prototype._isBuffer=!0;function Q(J,Y,X){var ne=J[Y];J[Y]=J[X],J[X]=ne}y.prototype.swap16=function(){var Y=this.length;if(Y%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var X=0;XX&&(Y+=" ... "),""},o&&(y.prototype[o]=y.prototype.inspect),y.prototype.compare=function(Y,X,ne,me,he){if(te(Y,Uint8Array)&&(Y=y.from(Y,Y.offset,Y.byteLength)),!y.isBuffer(Y))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof Y);if(X===void 0&&(X=0),ne===void 0&&(ne=Y?Y.length:0),me===void 0&&(me=0),he===void 0&&(he=this.length),X<0||ne>Y.length||me<0||he>this.length)throw new RangeError("out of range index");if(me>=he&&X>=ne)return 0;if(me>=he)return-1;if(X>=ne)return 1;if(X>>>=0,ne>>>=0,me>>>=0,he>>>=0,this===Y)return 0;for(var ge=he-me,Re=ne-X,_e=Math.min(ge,Re),we=this.slice(me,he),qe=Y.slice(X,ne),Se=0;Se<_e;++Se)if(we[Se]!==qe[Se]){ge=we[Se],Re=qe[Se];break}return ge2147483647?X=2147483647:X<-2147483648&&(X=-2147483648),X=+X,ee(X)&&(X=me?0:J.length-1),X<0&&(X=J.length+X),X>=J.length){if(me)return-1;X=J.length-1}else if(X<0)if(me)X=0;else return-1;if(typeof Y=="string"&&(Y=y.from(Y,ne)),y.isBuffer(Y))return Y.length===0?-1:ce(J,Y,X,ne,me);if(typeof Y=="number")return Y=Y&255,typeof Uint8Array.prototype.indexOf=="function"?me?Uint8Array.prototype.indexOf.call(J,Y,X):Uint8Array.prototype.lastIndexOf.call(J,Y,X):ce(J,[Y],X,ne,me);throw new TypeError("val must be string, number or Buffer")}function ce(J,Y,X,ne,me){var he=1,ge=J.length,Re=Y.length;if(ne!==void 0&&(ne=String(ne).toLowerCase(),ne==="ucs2"||ne==="ucs-2"||ne==="utf16le"||ne==="utf-16le")){if(J.length<2||Y.length<2)return-1;he=2,ge/=2,Re/=2,X/=2}function _e(Me,ve){return he===1?Me[ve]:Me.readUInt16BE(ve*he)}var we;if(me){var qe=-1;for(we=X;wege&&(X=ge-Re),we=X;we>=0;we--){for(var Se=!0,Ae=0;Aeme&&(ne=me)):ne=me;var he=Y.length;ne>he/2&&(ne=he/2);for(var ge=0;ge>>0,isFinite(ne)?(ne=ne>>>0,me===void 0&&(me="utf8")):(me=ne,ne=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var he=this.length-X;if((ne===void 0||ne>he)&&(ne=he),Y.length>0&&(ne<0||X<0)||X>this.length)throw new RangeError("Attempt to write outside buffer bounds");me||(me="utf8");for(var ge=!1;;)switch(me){case"hex":return ue(this,Y,X,ne);case"utf8":case"utf-8":return re(this,Y,X,ne);case"ascii":case"latin1":case"binary":return pe(this,Y,X,ne);case"base64":return T(this,Y,X,ne);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return u(this,Y,X,ne);default:if(ge)throw new TypeError("Unknown encoding: "+me);me=(""+me).toLowerCase(),ge=!0}},y.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function v(J,Y,X){return Y===0&&X===J.length?t.fromByteArray(J):t.fromByteArray(J.slice(Y,X))}function m(J,Y,X){X=Math.min(J.length,X);for(var ne=[],me=Y;me239?4:he>223?3:he>191?2:1;if(me+Re<=X){var _e,we,qe,Se;switch(Re){case 1:he<128&&(ge=he);break;case 2:_e=J[me+1],(_e&192)===128&&(Se=(he&31)<<6|_e&63,Se>127&&(ge=Se));break;case 3:_e=J[me+1],we=J[me+2],(_e&192)===128&&(we&192)===128&&(Se=(he&15)<<12|(_e&63)<<6|we&63,Se>2047&&(Se<55296||Se>57343)&&(ge=Se));break;case 4:_e=J[me+1],we=J[me+2],qe=J[me+3],(_e&192)===128&&(we&192)===128&&(qe&192)===128&&(Se=(he&15)<<18|(_e&63)<<12|(we&63)<<6|qe&63,Se>65535&&Se<1114112&&(ge=Se))}}ge===null?(ge=65533,Re=1):ge>65535&&(ge-=65536,ne.push(ge>>>10&1023|55296),ge=56320|ge&1023),ne.push(ge),me+=Re}return M(ne)}var b=4096;function M(J){var Y=J.length;if(Y<=b)return String.fromCharCode.apply(String,J);for(var X="",ne=0;nene)&&(X=ne);for(var me="",he=Y;hene&&(Y=ne),X<0?(X+=ne,X<0&&(X=0)):X>ne&&(X=ne),XX)throw new RangeError("Trying to access beyond buffer length")}y.prototype.readUintLE=y.prototype.readUIntLE=function(Y,X,ne){Y=Y>>>0,X=X>>>0,ne||x(Y,X,this.length);for(var me=this[Y],he=1,ge=0;++ge>>0,X=X>>>0,ne||x(Y,X,this.length);for(var me=this[Y+--X],he=1;X>0&&(he*=256);)me+=this[Y+--X]*he;return me},y.prototype.readUint8=y.prototype.readUInt8=function(Y,X){return Y=Y>>>0,X||x(Y,1,this.length),this[Y]},y.prototype.readUint16LE=y.prototype.readUInt16LE=function(Y,X){return Y=Y>>>0,X||x(Y,2,this.length),this[Y]|this[Y+1]<<8},y.prototype.readUint16BE=y.prototype.readUInt16BE=function(Y,X){return Y=Y>>>0,X||x(Y,2,this.length),this[Y]<<8|this[Y+1]},y.prototype.readUint32LE=y.prototype.readUInt32LE=function(Y,X){return Y=Y>>>0,X||x(Y,4,this.length),(this[Y]|this[Y+1]<<8|this[Y+2]<<16)+this[Y+3]*16777216},y.prototype.readUint32BE=y.prototype.readUInt32BE=function(Y,X){return Y=Y>>>0,X||x(Y,4,this.length),this[Y]*16777216+(this[Y+1]<<16|this[Y+2]<<8|this[Y+3])},y.prototype.readIntLE=function(Y,X,ne){Y=Y>>>0,X=X>>>0,ne||x(Y,X,this.length);for(var me=this[Y],he=1,ge=0;++ge=he&&(me-=Math.pow(2,8*X)),me},y.prototype.readIntBE=function(Y,X,ne){Y=Y>>>0,X=X>>>0,ne||x(Y,X,this.length);for(var me=X,he=1,ge=this[Y+--me];me>0&&(he*=256);)ge+=this[Y+--me]*he;return he*=128,ge>=he&&(ge-=Math.pow(2,8*X)),ge},y.prototype.readInt8=function(Y,X){return Y=Y>>>0,X||x(Y,1,this.length),this[Y]&128?(255-this[Y]+1)*-1:this[Y]},y.prototype.readInt16LE=function(Y,X){Y=Y>>>0,X||x(Y,2,this.length);var ne=this[Y]|this[Y+1]<<8;return ne&32768?ne|4294901760:ne},y.prototype.readInt16BE=function(Y,X){Y=Y>>>0,X||x(Y,2,this.length);var ne=this[Y+1]|this[Y]<<8;return ne&32768?ne|4294901760:ne},y.prototype.readInt32LE=function(Y,X){return Y=Y>>>0,X||x(Y,4,this.length),this[Y]|this[Y+1]<<8|this[Y+2]<<16|this[Y+3]<<24},y.prototype.readInt32BE=function(Y,X){return Y=Y>>>0,X||x(Y,4,this.length),this[Y]<<24|this[Y+1]<<16|this[Y+2]<<8|this[Y+3]},y.prototype.readFloatLE=function(Y,X){return Y=Y>>>0,X||x(Y,4,this.length),n.read(this,Y,!0,23,4)},y.prototype.readFloatBE=function(Y,X){return Y=Y>>>0,X||x(Y,4,this.length),n.read(this,Y,!1,23,4)},y.prototype.readDoubleLE=function(Y,X){return Y=Y>>>0,X||x(Y,8,this.length),n.read(this,Y,!0,52,8)},y.prototype.readDoubleBE=function(Y,X){return Y=Y>>>0,X||x(Y,8,this.length),n.read(this,Y,!1,52,8)};function N(J,Y,X,ne,me,he){if(!y.isBuffer(J))throw new TypeError('"buffer" argument must be a Buffer instance');if(Y>me||YJ.length)throw new RangeError("Index out of range")}y.prototype.writeUintLE=y.prototype.writeUIntLE=function(Y,X,ne,me){if(Y=+Y,X=X>>>0,ne=ne>>>0,!me){var he=Math.pow(2,8*ne)-1;N(this,Y,X,ne,he,0)}var ge=1,Re=0;for(this[X]=Y&255;++Re>>0,ne=ne>>>0,!me){var he=Math.pow(2,8*ne)-1;N(this,Y,X,ne,he,0)}var ge=ne-1,Re=1;for(this[X+ge]=Y&255;--ge>=0&&(Re*=256);)this[X+ge]=Y/Re&255;return X+ne},y.prototype.writeUint8=y.prototype.writeUInt8=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,1,255,0),this[X]=Y&255,X+1},y.prototype.writeUint16LE=y.prototype.writeUInt16LE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,2,65535,0),this[X]=Y&255,this[X+1]=Y>>>8,X+2},y.prototype.writeUint16BE=y.prototype.writeUInt16BE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,2,65535,0),this[X]=Y>>>8,this[X+1]=Y&255,X+2},y.prototype.writeUint32LE=y.prototype.writeUInt32LE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,4,4294967295,0),this[X+3]=Y>>>24,this[X+2]=Y>>>16,this[X+1]=Y>>>8,this[X]=Y&255,X+4},y.prototype.writeUint32BE=y.prototype.writeUInt32BE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,4,4294967295,0),this[X]=Y>>>24,this[X+1]=Y>>>16,this[X+2]=Y>>>8,this[X+3]=Y&255,X+4},y.prototype.writeIntLE=function(Y,X,ne,me){if(Y=+Y,X=X>>>0,!me){var he=Math.pow(2,8*ne-1);N(this,Y,X,ne,he-1,-he)}var ge=0,Re=1,_e=0;for(this[X]=Y&255;++ge>0)-_e&255;return X+ne},y.prototype.writeIntBE=function(Y,X,ne,me){if(Y=+Y,X=X>>>0,!me){var he=Math.pow(2,8*ne-1);N(this,Y,X,ne,he-1,-he)}var ge=ne-1,Re=1,_e=0;for(this[X+ge]=Y&255;--ge>=0&&(Re*=256);)Y<0&&_e===0&&this[X+ge+1]!==0&&(_e=1),this[X+ge]=(Y/Re>>0)-_e&255;return X+ne},y.prototype.writeInt8=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,1,127,-128),Y<0&&(Y=255+Y+1),this[X]=Y&255,X+1},y.prototype.writeInt16LE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,2,32767,-32768),this[X]=Y&255,this[X+1]=Y>>>8,X+2},y.prototype.writeInt16BE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,2,32767,-32768),this[X]=Y>>>8,this[X+1]=Y&255,X+2},y.prototype.writeInt32LE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,4,2147483647,-2147483648),this[X]=Y&255,this[X+1]=Y>>>8,this[X+2]=Y>>>16,this[X+3]=Y>>>24,X+4},y.prototype.writeInt32BE=function(Y,X,ne){return Y=+Y,X=X>>>0,ne||N(this,Y,X,4,2147483647,-2147483648),Y<0&&(Y=4294967295+Y+1),this[X]=Y>>>24,this[X+1]=Y>>>16,this[X+2]=Y>>>8,this[X+3]=Y&255,X+4};function z(J,Y,X,ne,me,he){if(X+ne>J.length)throw new RangeError("Index out of range");if(X<0)throw new RangeError("Index out of range")}function oe(J,Y,X,ne,me){return Y=+Y,X=X>>>0,me||z(J,Y,X,4),n.write(J,Y,X,ne,23,4),X+4}y.prototype.writeFloatLE=function(Y,X,ne){return oe(this,Y,X,!0,ne)},y.prototype.writeFloatBE=function(Y,X,ne){return oe(this,Y,X,!1,ne)};function le(J,Y,X,ne,me){return Y=+Y,X=X>>>0,me||z(J,Y,X,8),n.write(J,Y,X,ne,52,8),X+8}y.prototype.writeDoubleLE=function(Y,X,ne){return le(this,Y,X,!0,ne)},y.prototype.writeDoubleBE=function(Y,X,ne){return le(this,Y,X,!1,ne)},y.prototype.copy=function(Y,X,ne,me){if(!y.isBuffer(Y))throw new TypeError("argument should be a Buffer");if(ne||(ne=0),!me&&me!==0&&(me=this.length),X>=Y.length&&(X=Y.length),X||(X=0),me>0&&me=this.length)throw new RangeError("Index out of range");if(me<0)throw new RangeError("sourceEnd out of bounds");me>this.length&&(me=this.length),Y.length-X>>0,ne=ne===void 0?this.length:ne>>>0,Y||(Y=0);var ge;if(typeof Y=="number")for(ge=X;ge55295&&X<57344){if(!me){if(X>56319){(Y-=3)>-1&&he.push(239,191,189);continue}else if(ge+1===ne){(Y-=3)>-1&&he.push(239,191,189);continue}me=X;continue}if(X<56320){(Y-=3)>-1&&he.push(239,191,189),me=X;continue}X=(me-55296<<10|X-56320)+65536}else me&&(Y-=3)>-1&&he.push(239,191,189);if(me=null,X<128){if((Y-=1)<0)break;he.push(X)}else if(X<2048){if((Y-=2)<0)break;he.push(X>>6|192,X&63|128)}else if(X<65536){if((Y-=3)<0)break;he.push(X>>12|224,X>>6&63|128,X&63|128)}else if(X<1114112){if((Y-=4)<0)break;he.push(X>>18|240,X>>12&63|128,X>>6&63|128,X&63|128)}else throw new Error("Invalid code point")}return he}function ie(J){for(var Y=[],X=0;X>8,me=X%256,he.push(me),he.push(ne);return he}function k(J){return t.toByteArray(P(J))}function I(J,Y,X,ne){for(var me=0;me=Y.length||me>=J.length);++me)Y[me+X]=J[me];return me}function te(J,Y){return J instanceof Y||J!=null&&J.constructor!=null&&J.constructor.name!=null&&J.constructor.name===Y.name}function ee(J){return J!==J}var fe=function(){for(var J="0123456789abcdef",Y=new Array(256),X=0;X<16;++X)for(var ne=X*16,me=0;me<16;++me)Y[ne+me]=J[X]+J[me];return Y}()})(buffer$2);var browser$1$1={exports:{}},process=browser$1$1.exports={},cachedSetTimeout,cachedClearTimeout;function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}(function(){try{typeof setTimeout=="function"?cachedSetTimeout=setTimeout:cachedSetTimeout=defaultSetTimout}catch{cachedSetTimeout=defaultSetTimout}try{typeof clearTimeout=="function"?cachedClearTimeout=clearTimeout:cachedClearTimeout=defaultClearTimeout}catch{cachedClearTimeout=defaultClearTimeout}})();function runTimeout(e){if(cachedSetTimeout===setTimeout)return setTimeout(e,0);if((cachedSetTimeout===defaultSetTimout||!cachedSetTimeout)&&setTimeout)return cachedSetTimeout=setTimeout,setTimeout(e,0);try{return cachedSetTimeout(e,0)}catch{try{return cachedSetTimeout.call(null,e,0)}catch{return cachedSetTimeout.call(this,e,0)}}}function runClearTimeout(e){if(cachedClearTimeout===clearTimeout)return clearTimeout(e);if((cachedClearTimeout===defaultClearTimeout||!cachedClearTimeout)&&clearTimeout)return cachedClearTimeout=clearTimeout,clearTimeout(e);try{return cachedClearTimeout(e)}catch{try{return cachedClearTimeout.call(null,e)}catch{return cachedClearTimeout.call(this,e)}}}var queue$1=[],draining=!1,currentQueue,queueIndex=-1;function cleanUpNextTick(){!draining||!currentQueue||(draining=!1,currentQueue.length?queue$1=currentQueue.concat(queue$1):queueIndex=-1,queue$1.length&&drainQueue())}function drainQueue(){if(!draining){var e=runTimeout(cleanUpNextTick);draining=!0;for(var t=queue$1.length;t;){for(currentQueue=queue$1,queue$1=[];++queueIndex1)for(var n=1;nn in t}const EMPTY_OBJ=Object.freeze({}),EMPTY_ARR=Object.freeze([]),NOOP=()=>{},NO=()=>!1,isOn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),isModelListener=e=>e.startsWith("onUpdate:"),extend$1=Object.assign,remove=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},hasOwnProperty$4=Object.prototype.hasOwnProperty,hasOwn$3=(e,t)=>hasOwnProperty$4.call(e,t),isArray$a=Array.isArray,isMap$1=e=>toTypeString(e)==="[object Map]",isSet$1=e=>toTypeString(e)==="[object Set]",isDate$2=e=>toTypeString(e)==="[object Date]",isRegExp$3=e=>toTypeString(e)==="[object RegExp]",isFunction$2=e=>typeof e=="function",isString$2=e=>typeof e=="string",isSymbol$4=e=>typeof e=="symbol",isObject$3=e=>e!==null&&typeof e=="object",isPromise$1=e=>(isObject$3(e)||isFunction$2(e))&&isFunction$2(e.then)&&isFunction$2(e.catch),objectToString$4=Object.prototype.toString,toTypeString=e=>objectToString$4.call(e),toRawType=e=>toTypeString(e).slice(8,-1),isPlainObject=e=>toTypeString(e)==="[object Object]",isIntegerKey=e=>isString$2(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,isReservedProp=makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),isBuiltInDirective=makeMap("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),cacheStringFunction=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},camelizeRE=/-(\w)/g,camelize=cacheStringFunction(e=>e.replace(camelizeRE,(t,n)=>n?n.toUpperCase():"")),hyphenateRE=/\B([A-Z])/g,hyphenate=cacheStringFunction(e=>e.replace(hyphenateRE,"-$1").toLowerCase()),capitalize$2=cacheStringFunction(e=>e.charAt(0).toUpperCase()+e.slice(1)),toHandlerKey=cacheStringFunction(e=>e?`on${capitalize$2(e)}`:""),hasChanged=(e,t)=>!Object.is(e,t),invokeArrayFns=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:n})},looseToNumber=e=>{const t=parseFloat(e);return isNaN(t)?e:t},toNumber=e=>{const t=isString$2(e)?Number(e):NaN;return isNaN(t)?e:t};let _globalThis$1;const getGlobalThis=()=>_globalThis$1||(_globalThis$1=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global$1<"u"?global$1:{}),GLOBALS_ALLOWED="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol",isGloballyAllowed=makeMap(GLOBALS_ALLOWED);function normalizeStyle(e){if(isArray$a(e)){const t={};for(let n=0;n{if(n){const o=n.split(propertyDelimiterRE);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function stringifyStyle(e){if(!e)return"";if(isString$2(e))return e;let t="";for(const n in e){const o=e[n];if(isString$2(o)||typeof o=="number"){const l=n.startsWith("--")?n:hyphenate(n);t+=`${l}:${o};`}}return t}function normalizeClass(e){let t="";if(isString$2(e))t=e;else if(isArray$a(e))for(let n=0;n?@[\\\]^`{|}~]/g;function getEscapedCssVarName(e,t){return e.replace(cssVarNameEscapeSymbolsRE,n=>t?n==='"'?'\\\\\\"':`\\\\${n}`:`\\${n}`)}function looseCompareArrays(e,t){if(e.length!==t.length)return!1;let n=!0;for(let o=0;n&&olooseEqual(n,t))}const isRef$1=e=>!!(e&&e.__v_isRef===!0),toDisplayString=e=>isString$2(e)?e:e==null?"":isArray$a(e)||isObject$3(e)&&(e.toString===objectToString$4||!isFunction$2(e.toString))?isRef$1(e)?toDisplayString(e.value):JSON.stringify(e,replacer,2):String(e),replacer=(e,t)=>isRef$1(t)?replacer(e,t.value):isMap$1(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,l],a)=>(n[stringifySymbol(o,a)+" =>"]=l,n),{})}:isSet$1(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>stringifySymbol(n))}:isSymbol$4(t)?stringifySymbol(t):isObject$3(t)&&!isArray$a(t)&&!isPlainObject(t)?String(t):t,stringifySymbol=(e,t="")=>{var n;return isSymbol$4(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};function normalizeCssVarValue(e){return e==null?"initial":typeof e=="string"?e===""?" ":e:((typeof e!="number"||!Number.isFinite(e))&&console.warn("[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:",e),String(e))}/** -* @vue/reactivity v3.5.18 +**/function makeMap(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const EMPTY_OBJ=Object.freeze({}),EMPTY_ARR=Object.freeze([]),NOOP=()=>{},NO=()=>!1,isOn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),isModelListener=e=>e.startsWith("onUpdate:"),extend$1=Object.assign,remove=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},hasOwnProperty$4=Object.prototype.hasOwnProperty,hasOwn$3=(e,t)=>hasOwnProperty$4.call(e,t),isArray$a=Array.isArray,isMap$1=e=>toTypeString(e)==="[object Map]",isSet$1=e=>toTypeString(e)==="[object Set]",isDate$2=e=>toTypeString(e)==="[object Date]",isRegExp$3=e=>toTypeString(e)==="[object RegExp]",isFunction$2=e=>typeof e=="function",isString$2=e=>typeof e=="string",isSymbol$4=e=>typeof e=="symbol",isObject$3=e=>e!==null&&typeof e=="object",isPromise$1=e=>(isObject$3(e)||isFunction$2(e))&&isFunction$2(e.then)&&isFunction$2(e.catch),objectToString$4=Object.prototype.toString,toTypeString=e=>objectToString$4.call(e),toRawType=e=>toTypeString(e).slice(8,-1),isPlainObject=e=>toTypeString(e)==="[object Object]",isIntegerKey=e=>isString$2(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,isReservedProp=makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),isBuiltInDirective=makeMap("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),cacheStringFunction=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},camelizeRE=/-\w/g,camelize=cacheStringFunction(e=>e.replace(camelizeRE,t=>t.slice(1).toUpperCase())),hyphenateRE=/\B([A-Z])/g,hyphenate=cacheStringFunction(e=>e.replace(hyphenateRE,"-$1").toLowerCase()),capitalize$2=cacheStringFunction(e=>e.charAt(0).toUpperCase()+e.slice(1)),toHandlerKey=cacheStringFunction(e=>e?`on${capitalize$2(e)}`:""),hasChanged=(e,t)=>!Object.is(e,t),invokeArrayFns=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:n})},looseToNumber=e=>{const t=parseFloat(e);return isNaN(t)?e:t},toNumber=e=>{const t=isString$2(e)?Number(e):NaN;return isNaN(t)?e:t};let _globalThis$1;const getGlobalThis=()=>_globalThis$1||(_globalThis$1=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global$1<"u"?global$1:{}),GLOBALS_ALLOWED="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol",isGloballyAllowed=makeMap(GLOBALS_ALLOWED);function normalizeStyle(e){if(isArray$a(e)){const t={};for(let n=0;n{if(n){const o=n.split(propertyDelimiterRE);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function stringifyStyle(e){if(!e)return"";if(isString$2(e))return e;let t="";for(const n in e){const o=e[n];if(isString$2(o)||typeof o=="number"){const l=n.startsWith("--")?n:hyphenate(n);t+=`${l}:${o};`}}return t}function normalizeClass(e){let t="";if(isString$2(e))t=e;else if(isArray$a(e))for(let n=0;n?@[\\\]^`{|}~]/g;function getEscapedCssVarName(e,t){return e.replace(cssVarNameEscapeSymbolsRE,n=>t?n==='"'?'\\\\\\"':`\\\\${n}`:`\\${n}`)}function looseCompareArrays(e,t){if(e.length!==t.length)return!1;let n=!0;for(let o=0;n&&olooseEqual(n,t))}const isRef$1=e=>!!(e&&e.__v_isRef===!0),toDisplayString=e=>isString$2(e)?e:e==null?"":isArray$a(e)||isObject$3(e)&&(e.toString===objectToString$4||!isFunction$2(e.toString))?isRef$1(e)?toDisplayString(e.value):JSON.stringify(e,replacer,2):String(e),replacer=(e,t)=>isRef$1(t)?replacer(e,t.value):isMap$1(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,l],a)=>(n[stringifySymbol(o,a)+" =>"]=l,n),{})}:isSet$1(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>stringifySymbol(n))}:isSymbol$4(t)?stringifySymbol(t):isObject$3(t)&&!isArray$a(t)&&!isPlainObject(t)?String(t):t,stringifySymbol=(e,t="")=>{var n;return isSymbol$4(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};function normalizeCssVarValue(e){return e==null?"initial":typeof e=="string"?e===""?" ":e:((typeof e!="number"||!Number.isFinite(e))&&console.warn("[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:",e),String(e))}/** +* @vue/reactivity v3.5.21 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/function warn$3(e,...t){console.warn(`[Vue warn] ${e}`,...t)}let activeEffectScope;class EffectScope{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=activeEffectScope,!t&&activeEffectScope&&(this.index=(activeEffectScope.scopes||(activeEffectScope.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0&&--this._on===0&&(activeEffectScope=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,o;for(n=0,o=this.effects.length;n0)return;if(batchedComputed){let t=batchedComputed;for(batchedComputed=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;batchedSub;){let t=batchedSub;for(batchedSub=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(o){e||(e=o)}t=n}}if(e)throw e}function prepareDeps(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function cleanupDeps(e){let t,n=e.depsTail,o=n;for(;o;){const l=o.prevDep;o.version===-1?(o===n&&(n=l),removeSub(o),removeDep(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=l}e.deps=t,e.depsTail=n}function isDirty(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(refreshComputed(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function refreshComputed(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===globalVersion)||(e.globalVersion=globalVersion,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!isDirty(e))))return;e.flags|=2;const t=e.dep,n=activeSub,o=shouldTrack;activeSub=e,shouldTrack=!0;try{prepareDeps(e);const l=e.fn(e._value);(t.version===0||hasChanged(l,e._value))&&(e.flags|=128,e._value=l,t.version++)}catch(l){throw t.version++,l}finally{activeSub=n,shouldTrack=o,cleanupDeps(e),e.flags&=-3}}function removeSub(e,t=!1){const{dep:n,prevSub:o,nextSub:l}=e;if(o&&(o.nextSub=l,e.prevSub=void 0),l&&(l.prevSub=o,e.nextSub=void 0),n.subsHead===e&&(n.subsHead=l),n.subs===e&&(n.subs=o,!o&&n.computed)){n.computed.flags&=-5;for(let a=n.computed.deps;a;a=a.nextDep)removeSub(a,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function removeDep(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}function effect(e,t){e.effect instanceof ReactiveEffect&&(e=e.effect.fn);const n=new ReactiveEffect(e);t&&extend$1(n,t);try{n.run()}catch(l){throw n.stop(),l}const o=n.run.bind(n);return o.effect=n,o}function stop(e){e.effect.stop()}let shouldTrack=!0;const trackStack=[];function pauseTracking(){trackStack.push(shouldTrack),shouldTrack=!1}function resetTracking(){const e=trackStack.pop();shouldTrack=e===void 0?!0:e}function cleanupEffect(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=activeSub;activeSub=void 0;try{t()}finally{activeSub=n}}}let globalVersion=0;class Link{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Dep{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0,this.subsHead=void 0}track(t){if(!activeSub||!shouldTrack||activeSub===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==activeSub)n=this.activeLink=new Link(activeSub,this),activeSub.deps?(n.prevDep=activeSub.depsTail,activeSub.depsTail.nextDep=n,activeSub.depsTail=n):activeSub.deps=activeSub.depsTail=n,addSub(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const o=n.nextDep;o.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=o),n.prevDep=activeSub.depsTail,n.nextDep=void 0,activeSub.depsTail.nextDep=n,activeSub.depsTail=n,activeSub.deps===n&&(activeSub.deps=o)}return activeSub.onTrack&&activeSub.onTrack(extend$1({effect:activeSub},t)),n}trigger(t){this.version++,globalVersion++,this.notify(t)}notify(t){startBatch();try{for(let n=this.subsHead;n;n=n.nextSub)n.sub.onTrigger&&!(n.sub.flags&8)&&n.sub.onTrigger(extend$1({effect:n.sub},t));for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{endBatch()}}}function addSub(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let o=t.deps;o;o=o.nextDep)addSub(o)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subsHead===void 0&&(e.dep.subsHead=e),e.dep.subs=e}}const targetMap=new WeakMap,ITERATE_KEY=Symbol("Object iterate"),MAP_KEY_ITERATE_KEY=Symbol("Map keys iterate"),ARRAY_ITERATE_KEY=Symbol("Array iterate");function track(e,t,n){if(shouldTrack&&activeSub){let o=targetMap.get(e);o||targetMap.set(e,o=new Map);let l=o.get(n);l||(o.set(n,l=new Dep),l.map=o,l.key=n),l.track({target:e,type:t,key:n})}}function trigger(e,t,n,o,l,a){const d=targetMap.get(e);if(!d){globalVersion++;return}const y=w=>{w&&w.trigger({target:e,type:t,key:n,newValue:o,oldValue:l,oldTarget:a})};if(startBatch(),t==="clear")d.forEach(y);else{const w=isArray$a(e),_=w&&isIntegerKey(n);if(w&&n==="length"){const S=Number(o);d.forEach((E,C)=>{(C==="length"||C===ARRAY_ITERATE_KEY||!isSymbol$4(C)&&C>=S)&&y(E)})}else switch((n!==void 0||d.has(void 0))&&y(d.get(n)),_&&y(d.get(ARRAY_ITERATE_KEY)),t){case"add":w?_&&y(d.get("length")):(y(d.get(ITERATE_KEY)),isMap$1(e)&&y(d.get(MAP_KEY_ITERATE_KEY)));break;case"delete":w||(y(d.get(ITERATE_KEY)),isMap$1(e)&&y(d.get(MAP_KEY_ITERATE_KEY)));break;case"set":isMap$1(e)&&y(d.get(ITERATE_KEY));break}}endBatch()}function getDepFromReactive(e,t){const n=targetMap.get(e);return n&&n.get(t)}function reactiveReadArray(e){const t=toRaw(e);return t===e?t:(track(t,"iterate",ARRAY_ITERATE_KEY),isShallow(e)?t:t.map(toReactive))}function shallowReadArray(e){return track(e=toRaw(e),"iterate",ARRAY_ITERATE_KEY),e}const arrayInstrumentations={__proto__:null,[Symbol.iterator](){return iterator$1(this,Symbol.iterator,toReactive)},concat(...e){return reactiveReadArray(this).concat(...e.map(t=>isArray$a(t)?reactiveReadArray(t):t))},entries(){return iterator$1(this,"entries",e=>(e[1]=toReactive(e[1]),e))},every(e,t){return apply(this,"every",e,t,void 0,arguments)},filter(e,t){return apply(this,"filter",e,t,n=>n.map(toReactive),arguments)},find(e,t){return apply(this,"find",e,t,toReactive,arguments)},findIndex(e,t){return apply(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return apply(this,"findLast",e,t,toReactive,arguments)},findLastIndex(e,t){return apply(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return apply(this,"forEach",e,t,void 0,arguments)},includes(...e){return searchProxy(this,"includes",e)},indexOf(...e){return searchProxy(this,"indexOf",e)},join(e){return reactiveReadArray(this).join(e)},lastIndexOf(...e){return searchProxy(this,"lastIndexOf",e)},map(e,t){return apply(this,"map",e,t,void 0,arguments)},pop(){return noTracking(this,"pop")},push(...e){return noTracking(this,"push",e)},reduce(e,...t){return reduce(this,"reduce",e,t)},reduceRight(e,...t){return reduce(this,"reduceRight",e,t)},shift(){return noTracking(this,"shift")},some(e,t){return apply(this,"some",e,t,void 0,arguments)},splice(...e){return noTracking(this,"splice",e)},toReversed(){return reactiveReadArray(this).toReversed()},toSorted(e){return reactiveReadArray(this).toSorted(e)},toSpliced(...e){return reactiveReadArray(this).toSpliced(...e)},unshift(...e){return noTracking(this,"unshift",e)},values(){return iterator$1(this,"values",toReactive)}};function iterator$1(e,t,n){const o=shallowReadArray(e),l=o[t]();return o!==e&&!isShallow(e)&&(l._next=l.next,l.next=()=>{const a=l._next();return a.value&&(a.value=n(a.value)),a}),l}const arrayProto=Array.prototype;function apply(e,t,n,o,l,a){const d=shallowReadArray(e),y=d!==e&&!isShallow(e),w=d[t];if(w!==arrayProto[t]){const E=w.apply(e,a);return y?toReactive(E):E}let _=n;d!==e&&(y?_=function(E,C){return n.call(this,toReactive(E),C,e)}:n.length>2&&(_=function(E,C){return n.call(this,E,C,e)}));const S=w.call(d,_,o);return y&&l?l(S):S}function reduce(e,t,n,o){const l=shallowReadArray(e);let a=n;return l!==e&&(isShallow(e)?n.length>3&&(a=function(d,y,w){return n.call(this,d,y,w,e)}):a=function(d,y,w){return n.call(this,d,toReactive(y),w,e)}),l[t](a,...o)}function searchProxy(e,t,n){const o=toRaw(e);track(o,"iterate",ARRAY_ITERATE_KEY);const l=o[t](...n);return(l===-1||l===!1)&&isProxy(n[0])?(n[0]=toRaw(n[0]),o[t](...n)):l}function noTracking(e,t,n=[]){pauseTracking(),startBatch();const o=toRaw(e)[t].apply(e,n);return endBatch(),resetTracking(),o}const isNonTrackableKeys=makeMap("__proto__,__v_isRef,__isVue"),builtInSymbols=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(isSymbol$4));function hasOwnProperty$3(e){isSymbol$4(e)||(e=String(e));const t=toRaw(this);return track(t,"has",e),t.hasOwnProperty(e)}class BaseReactiveHandler{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,o){if(n==="__v_skip")return t.__v_skip;const l=this._isReadonly,a=this._isShallow;if(n==="__v_isReactive")return!l;if(n==="__v_isReadonly")return l;if(n==="__v_isShallow")return a;if(n==="__v_raw")return o===(l?a?shallowReadonlyMap:readonlyMap:a?shallowReactiveMap:reactiveMap).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const d=isArray$a(t);if(!l){let w;if(d&&(w=arrayInstrumentations[n]))return w;if(n==="hasOwnProperty")return hasOwnProperty$3}const y=Reflect.get(t,n,isRef(t)?t:o);return(isSymbol$4(n)?builtInSymbols.has(n):isNonTrackableKeys(n))||(l||track(t,"get",n),a)?y:isRef(y)?d&&isIntegerKey(n)?y:y.value:isObject$3(y)?l?readonly(y):reactive(y):y}}class MutableReactiveHandler extends BaseReactiveHandler{constructor(t=!1){super(!1,t)}set(t,n,o,l){let a=t[n];if(!this._isShallow){const w=isReadonly(a);if(!isShallow(o)&&!isReadonly(o)&&(a=toRaw(a),o=toRaw(o)),!isArray$a(t)&&isRef(a)&&!isRef(o))return w?!1:(a.value=o,!0)}const d=isArray$a(t)&&isIntegerKey(n)?Number(n)e,getProto$4=e=>Reflect.getPrototypeOf(e);function createIterableMethod(e,t,n){return function(...o){const l=this.__v_raw,a=toRaw(l),d=isMap$1(a),y=e==="entries"||e===Symbol.iterator&&d,w=e==="keys"&&d,_=l[e](...o),S=n?toShallow:t?toReadonly:toReactive;return!t&&track(a,"iterate",w?MAP_KEY_ITERATE_KEY:ITERATE_KEY),{next(){const{value:E,done:C}=_.next();return C?{value:E,done:C}:{value:y?[S(E[0]),S(E[1])]:S(E),done:C}},[Symbol.iterator](){return this}}}}function createReadonlyMethod(e){return function(...t){{const n=t[0]?`on key "${t[0]}" `:"";warn$3(`${capitalize$2(e)} operation ${n}failed: target is readonly.`,toRaw(this))}return e==="delete"?!1:e==="clear"?void 0:this}}function createInstrumentations(e,t){const n={get(l){const a=this.__v_raw,d=toRaw(a),y=toRaw(l);e||(hasChanged(l,y)&&track(d,"get",l),track(d,"get",y));const{has:w}=getProto$4(d),_=t?toShallow:e?toReadonly:toReactive;if(w.call(d,l))return _(a.get(l));if(w.call(d,y))return _(a.get(y));a!==d&&a.get(l)},get size(){const l=this.__v_raw;return!e&&track(toRaw(l),"iterate",ITERATE_KEY),Reflect.get(l,"size",l)},has(l){const a=this.__v_raw,d=toRaw(a),y=toRaw(l);return e||(hasChanged(l,y)&&track(d,"has",l),track(d,"has",y)),l===y?a.has(l):a.has(l)||a.has(y)},forEach(l,a){const d=this,y=d.__v_raw,w=toRaw(y),_=t?toShallow:e?toReadonly:toReactive;return!e&&track(w,"iterate",ITERATE_KEY),y.forEach((S,E)=>l.call(a,_(S),_(E),d))}};return extend$1(n,e?{add:createReadonlyMethod("add"),set:createReadonlyMethod("set"),delete:createReadonlyMethod("delete"),clear:createReadonlyMethod("clear")}:{add(l){!t&&!isShallow(l)&&!isReadonly(l)&&(l=toRaw(l));const a=toRaw(this);return getProto$4(a).has.call(a,l)||(a.add(l),trigger(a,"add",l,l)),this},set(l,a){!t&&!isShallow(a)&&!isReadonly(a)&&(a=toRaw(a));const d=toRaw(this),{has:y,get:w}=getProto$4(d);let _=y.call(d,l);_?checkIdentityKeys(d,y,l):(l=toRaw(l),_=y.call(d,l));const S=w.call(d,l);return d.set(l,a),_?hasChanged(a,S)&&trigger(d,"set",l,a,S):trigger(d,"add",l,a),this},delete(l){const a=toRaw(this),{has:d,get:y}=getProto$4(a);let w=d.call(a,l);w?checkIdentityKeys(a,d,l):(l=toRaw(l),w=d.call(a,l));const _=y?y.call(a,l):void 0,S=a.delete(l);return w&&trigger(a,"delete",l,void 0,_),S},clear(){const l=toRaw(this),a=l.size!==0,d=isMap$1(l)?new Map(l):new Set(l),y=l.clear();return a&&trigger(l,"clear",void 0,void 0,d),y}}),["keys","values","entries",Symbol.iterator].forEach(l=>{n[l]=createIterableMethod(l,e,t)}),n}function createInstrumentationGetter(e,t){const n=createInstrumentations(e,t);return(o,l,a)=>l==="__v_isReactive"?!e:l==="__v_isReadonly"?e:l==="__v_raw"?o:Reflect.get(hasOwn$3(n,l)&&l in o?n:o,l,a)}const mutableCollectionHandlers={get:createInstrumentationGetter(!1,!1)},shallowCollectionHandlers={get:createInstrumentationGetter(!1,!0)},readonlyCollectionHandlers={get:createInstrumentationGetter(!0,!1)},shallowReadonlyCollectionHandlers={get:createInstrumentationGetter(!0,!0)};function checkIdentityKeys(e,t,n){const o=toRaw(n);if(o!==n&&t.call(e,o)){const l=toRawType(e);warn$3(`Reactive ${l} contains both the raw and reactive versions of the same object${l==="Map"?" as keys":""}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`)}}const reactiveMap=new WeakMap,shallowReactiveMap=new WeakMap,readonlyMap=new WeakMap,shallowReadonlyMap=new WeakMap;function targetTypeMap(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function getTargetType(e){return e.__v_skip||!Object.isExtensible(e)?0:targetTypeMap(toRawType(e))}function reactive(e){return isReadonly(e)?e:createReactiveObject(e,!1,mutableHandlers,mutableCollectionHandlers,reactiveMap)}function shallowReactive(e){return createReactiveObject(e,!1,shallowReactiveHandlers,shallowCollectionHandlers,shallowReactiveMap)}function readonly(e){return createReactiveObject(e,!0,readonlyHandlers,readonlyCollectionHandlers,readonlyMap)}function shallowReadonly(e){return createReactiveObject(e,!0,shallowReadonlyHandlers,shallowReadonlyCollectionHandlers,shallowReadonlyMap)}function createReactiveObject(e,t,n,o,l){if(!isObject$3(e))return warn$3(`value cannot be made ${t?"readonly":"reactive"}: ${String(e)}`),e;if(e.__v_raw&&!(t&&e.__v_isReactive))return e;const a=getTargetType(e);if(a===0)return e;const d=l.get(e);if(d)return d;const y=new Proxy(e,a===2?o:n);return l.set(e,y),y}function isReactive(e){return isReadonly(e)?isReactive(e.__v_raw):!!(e&&e.__v_isReactive)}function isReadonly(e){return!!(e&&e.__v_isReadonly)}function isShallow(e){return!!(e&&e.__v_isShallow)}function isProxy(e){return e?!!e.__v_raw:!1}function toRaw(e){const t=e&&e.__v_raw;return t?toRaw(t):e}function markRaw(e){return!hasOwn$3(e,"__v_skip")&&Object.isExtensible(e)&&def(e,"__v_skip",!0),e}const toReactive=e=>isObject$3(e)?reactive(e):e,toReadonly=e=>isObject$3(e)?readonly(e):e;function isRef(e){return e?e.__v_isRef===!0:!1}function ref$1(e){return createRef(e,!1)}function shallowRef(e){return createRef(e,!0)}function createRef(e,t){return isRef(e)?e:new RefImpl(e,t)}class RefImpl{constructor(t,n){this.dep=new Dep,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:toRaw(t),this._value=n?t:toReactive(t),this.__v_isShallow=n}get value(){return this.dep.track({target:this,type:"get",key:"value"}),this._value}set value(t){const n=this._rawValue,o=this.__v_isShallow||isShallow(t)||isReadonly(t);t=o?t:toRaw(t),hasChanged(t,n)&&(this._rawValue=t,this._value=o?t:toReactive(t),this.dep.trigger({target:this,type:"set",key:"value",newValue:t,oldValue:n}))}}function triggerRef(e){e.dep&&e.dep.trigger({target:e,type:"set",key:"value",newValue:e._value})}function unref(e){return isRef(e)?e.value:e}function toValue$1(e){return isFunction$2(e)?e():unref(e)}const shallowUnwrapHandlers={get:(e,t,n)=>t==="__v_raw"?e:unref(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const l=e[t];return isRef(l)&&!isRef(n)?(l.value=n,!0):Reflect.set(e,t,n,o)}};function proxyRefs(e){return isReactive(e)?e:new Proxy(e,shallowUnwrapHandlers)}class CustomRefImpl{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new Dep,{get:o,set:l}=t(n.track.bind(n),n.trigger.bind(n));this._get=o,this._set=l}get value(){return this._value=this._get()}set value(t){this._set(t)}}function customRef(e){return new CustomRefImpl(e)}function toRefs(e){isProxy(e)||warn$3("toRefs() expects a reactive object but received a plain one.");const t=isArray$a(e)?new Array(e.length):{};for(const n in e)t[n]=propertyToRef(e,n);return t}class ObjectRefImpl{constructor(t,n,o){this._object=t,this._key=n,this._defaultValue=o,this.__v_isRef=!0,this._value=void 0}get value(){const t=this._object[this._key];return this._value=t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return getDepFromReactive(toRaw(this._object),this._key)}}class GetterRefImpl{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function toRef(e,t,n){return isRef(e)?e:isFunction$2(e)?new GetterRefImpl(e):isObject$3(e)&&arguments.length>1?propertyToRef(e,t,n):ref$1(e)}function propertyToRef(e,t,n){const o=e[t];return isRef(o)?o:new ObjectRefImpl(e,t,n)}class ComputedRefImpl{constructor(t,n,o){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Dep(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=globalVersion-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&activeSub!==this)return batch(this,!0),!0}get value(){const t=this.dep.track({target:this,type:"get",key:"value"});return refreshComputed(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter?this.setter(t):warn$3("Write operation failed: computed value is readonly")}}function computed$1(e,t,n=!1){let o,l;isFunction$2(e)?o=e:(o=e.get,l=e.set);const a=new ComputedRefImpl(o,l,n);return t&&!n&&(a.onTrack=t.onTrack,a.onTrigger=t.onTrigger),a}const TrackOpTypes={GET:"get",HAS:"has",ITERATE:"iterate"},TriggerOpTypes={SET:"set",ADD:"add",DELETE:"delete",CLEAR:"clear"},INITIAL_WATCHER_VALUE={},cleanupMap=new WeakMap;let activeWatcher;function getCurrentWatcher(){return activeWatcher}function onWatcherCleanup(e,t=!1,n=activeWatcher){if(n){let o=cleanupMap.get(n);o||cleanupMap.set(n,o=[]),o.push(e)}else t||warn$3("onWatcherCleanup() was called when there was no active watcher to associate with.")}function watch$1(e,t,n=EMPTY_OBJ){const{immediate:o,deep:l,once:a,scheduler:d,augmentJob:y,call:w}=n,_=Q=>{(n.onWarn||warn$3)("Invalid watch source: ",Q,"A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.")},S=Q=>l?Q:isShallow(Q)||l===!1||l===0?traverse(Q,1):traverse(Q);let E,C,B,L,F=!1,q=!1;if(isRef(e)?(C=()=>e.value,F=isShallow(e)):isReactive(e)?(C=()=>S(e),F=!0):isArray$a(e)?(q=!0,F=e.some(Q=>isReactive(Q)||isShallow(Q)),C=()=>e.map(Q=>{if(isRef(Q))return Q.value;if(isReactive(Q))return S(Q);if(isFunction$2(Q))return w?w(Q,2):Q();_(Q)})):isFunction$2(e)?t?C=w?()=>w(e,2):e:C=()=>{if(B){pauseTracking();try{B()}finally{resetTracking()}}const Q=activeWatcher;activeWatcher=E;try{return w?w(e,3,[L]):e(L)}finally{activeWatcher=Q}}:(C=NOOP,_(e)),t&&l){const Q=C,ae=l===!0?1/0:l;C=()=>traverse(Q(),ae)}const H=getCurrentScope(),D=()=>{E.stop(),H&&H.active&&remove(H.effects,E)};if(a&&t){const Q=t;t=(...ae)=>{Q(...ae),D()}}let j=q?new Array(e.length).fill(INITIAL_WATCHER_VALUE):INITIAL_WATCHER_VALUE;const V=Q=>{if(!(!(E.flags&1)||!E.dirty&&!Q))if(t){const ae=E.run();if(l||F||(q?ae.some((ce,ue)=>hasChanged(ce,j[ue])):hasChanged(ae,j))){B&&B();const ce=activeWatcher;activeWatcher=E;try{const ue=[ae,j===INITIAL_WATCHER_VALUE?void 0:q&&j[0]===INITIAL_WATCHER_VALUE?[]:j,L];j=ae,w?w(t,3,ue):t(...ue)}finally{activeWatcher=ce}}}else E.run()};return y&&y(V),E=new ReactiveEffect(C),E.scheduler=d?()=>d(V,!1):V,L=Q=>onWatcherCleanup(Q,!1,E),B=E.onStop=()=>{const Q=cleanupMap.get(E);if(Q){if(w)w(Q,4);else for(const ae of Q)ae();cleanupMap.delete(E)}},E.onTrack=n.onTrack,E.onTrigger=n.onTrigger,t?o?V(!0):j=E.run():d?d(V.bind(null,!0),!0):E.run(),D.pause=E.pause.bind(E),D.resume=E.resume.bind(E),D.stop=D,D}function traverse(e,t=1/0,n){if(t<=0||!isObject$3(e)||e.__v_skip||(n=n||new Set,n.has(e)))return e;if(n.add(e),t--,isRef(e))traverse(e.value,t,n);else if(isArray$a(e))for(let o=0;o{traverse(o,t,n)});else if(isPlainObject(e)){for(const o in e)traverse(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&traverse(e[o],t,n)}return e}/** -* @vue/runtime-core v3.5.18 +**/function warn$3(e,...t){console.warn(`[Vue warn] ${e}`,...t)}let activeEffectScope;class EffectScope{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=activeEffectScope,!t&&activeEffectScope&&(this.index=(activeEffectScope.scopes||(activeEffectScope.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0&&--this._on===0&&(activeEffectScope=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,o;for(n=0,o=this.effects.length;n0)return;if(batchedComputed){let t=batchedComputed;for(batchedComputed=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;batchedSub;){let t=batchedSub;for(batchedSub=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(o){e||(e=o)}t=n}}if(e)throw e}function prepareDeps(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function cleanupDeps(e){let t,n=e.depsTail,o=n;for(;o;){const l=o.prevDep;o.version===-1?(o===n&&(n=l),removeSub(o),removeDep(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=l}e.deps=t,e.depsTail=n}function isDirty(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(refreshComputed(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function refreshComputed(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===globalVersion)||(e.globalVersion=globalVersion,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!isDirty(e))))return;e.flags|=2;const t=e.dep,n=activeSub,o=shouldTrack;activeSub=e,shouldTrack=!0;try{prepareDeps(e);const l=e.fn(e._value);(t.version===0||hasChanged(l,e._value))&&(e.flags|=128,e._value=l,t.version++)}catch(l){throw t.version++,l}finally{activeSub=n,shouldTrack=o,cleanupDeps(e),e.flags&=-3}}function removeSub(e,t=!1){const{dep:n,prevSub:o,nextSub:l}=e;if(o&&(o.nextSub=l,e.prevSub=void 0),l&&(l.prevSub=o,e.nextSub=void 0),n.subsHead===e&&(n.subsHead=l),n.subs===e&&(n.subs=o,!o&&n.computed)){n.computed.flags&=-5;for(let a=n.computed.deps;a;a=a.nextDep)removeSub(a,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function removeDep(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}function effect(e,t){e.effect instanceof ReactiveEffect&&(e=e.effect.fn);const n=new ReactiveEffect(e);t&&extend$1(n,t);try{n.run()}catch(l){throw n.stop(),l}const o=n.run.bind(n);return o.effect=n,o}function stop(e){e.effect.stop()}let shouldTrack=!0;const trackStack=[];function pauseTracking(){trackStack.push(shouldTrack),shouldTrack=!1}function resetTracking(){const e=trackStack.pop();shouldTrack=e===void 0?!0:e}function cleanupEffect(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=activeSub;activeSub=void 0;try{t()}finally{activeSub=n}}}let globalVersion=0;class Link{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Dep{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0,this.subsHead=void 0}track(t){if(!activeSub||!shouldTrack||activeSub===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==activeSub)n=this.activeLink=new Link(activeSub,this),activeSub.deps?(n.prevDep=activeSub.depsTail,activeSub.depsTail.nextDep=n,activeSub.depsTail=n):activeSub.deps=activeSub.depsTail=n,addSub(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const o=n.nextDep;o.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=o),n.prevDep=activeSub.depsTail,n.nextDep=void 0,activeSub.depsTail.nextDep=n,activeSub.depsTail=n,activeSub.deps===n&&(activeSub.deps=o)}return activeSub.onTrack&&activeSub.onTrack(extend$1({effect:activeSub},t)),n}trigger(t){this.version++,globalVersion++,this.notify(t)}notify(t){startBatch();try{for(let n=this.subsHead;n;n=n.nextSub)n.sub.onTrigger&&!(n.sub.flags&8)&&n.sub.onTrigger(extend$1({effect:n.sub},t));for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{endBatch()}}}function addSub(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let o=t.deps;o;o=o.nextDep)addSub(o)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subsHead===void 0&&(e.dep.subsHead=e),e.dep.subs=e}}const targetMap=new WeakMap,ITERATE_KEY=Symbol("Object iterate"),MAP_KEY_ITERATE_KEY=Symbol("Map keys iterate"),ARRAY_ITERATE_KEY=Symbol("Array iterate");function track(e,t,n){if(shouldTrack&&activeSub){let o=targetMap.get(e);o||targetMap.set(e,o=new Map);let l=o.get(n);l||(o.set(n,l=new Dep),l.map=o,l.key=n),l.track({target:e,type:t,key:n})}}function trigger(e,t,n,o,l,a){const d=targetMap.get(e);if(!d){globalVersion++;return}const y=w=>{w&&w.trigger({target:e,type:t,key:n,newValue:o,oldValue:l,oldTarget:a})};if(startBatch(),t==="clear")d.forEach(y);else{const w=isArray$a(e),_=w&&isIntegerKey(n);if(w&&n==="length"){const S=Number(o);d.forEach((E,C)=>{(C==="length"||C===ARRAY_ITERATE_KEY||!isSymbol$4(C)&&C>=S)&&y(E)})}else switch((n!==void 0||d.has(void 0))&&y(d.get(n)),_&&y(d.get(ARRAY_ITERATE_KEY)),t){case"add":w?_&&y(d.get("length")):(y(d.get(ITERATE_KEY)),isMap$1(e)&&y(d.get(MAP_KEY_ITERATE_KEY)));break;case"delete":w||(y(d.get(ITERATE_KEY)),isMap$1(e)&&y(d.get(MAP_KEY_ITERATE_KEY)));break;case"set":isMap$1(e)&&y(d.get(ITERATE_KEY));break}}endBatch()}function getDepFromReactive(e,t){const n=targetMap.get(e);return n&&n.get(t)}function reactiveReadArray(e){const t=toRaw(e);return t===e?t:(track(t,"iterate",ARRAY_ITERATE_KEY),isShallow(e)?t:t.map(toReactive))}function shallowReadArray(e){return track(e=toRaw(e),"iterate",ARRAY_ITERATE_KEY),e}const arrayInstrumentations={__proto__:null,[Symbol.iterator](){return iterator$1(this,Symbol.iterator,toReactive)},concat(...e){return reactiveReadArray(this).concat(...e.map(t=>isArray$a(t)?reactiveReadArray(t):t))},entries(){return iterator$1(this,"entries",e=>(e[1]=toReactive(e[1]),e))},every(e,t){return apply(this,"every",e,t,void 0,arguments)},filter(e,t){return apply(this,"filter",e,t,n=>n.map(toReactive),arguments)},find(e,t){return apply(this,"find",e,t,toReactive,arguments)},findIndex(e,t){return apply(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return apply(this,"findLast",e,t,toReactive,arguments)},findLastIndex(e,t){return apply(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return apply(this,"forEach",e,t,void 0,arguments)},includes(...e){return searchProxy(this,"includes",e)},indexOf(...e){return searchProxy(this,"indexOf",e)},join(e){return reactiveReadArray(this).join(e)},lastIndexOf(...e){return searchProxy(this,"lastIndexOf",e)},map(e,t){return apply(this,"map",e,t,void 0,arguments)},pop(){return noTracking(this,"pop")},push(...e){return noTracking(this,"push",e)},reduce(e,...t){return reduce(this,"reduce",e,t)},reduceRight(e,...t){return reduce(this,"reduceRight",e,t)},shift(){return noTracking(this,"shift")},some(e,t){return apply(this,"some",e,t,void 0,arguments)},splice(...e){return noTracking(this,"splice",e)},toReversed(){return reactiveReadArray(this).toReversed()},toSorted(e){return reactiveReadArray(this).toSorted(e)},toSpliced(...e){return reactiveReadArray(this).toSpliced(...e)},unshift(...e){return noTracking(this,"unshift",e)},values(){return iterator$1(this,"values",toReactive)}};function iterator$1(e,t,n){const o=shallowReadArray(e),l=o[t]();return o!==e&&!isShallow(e)&&(l._next=l.next,l.next=()=>{const a=l._next();return a.value&&(a.value=n(a.value)),a}),l}const arrayProto=Array.prototype;function apply(e,t,n,o,l,a){const d=shallowReadArray(e),y=d!==e&&!isShallow(e),w=d[t];if(w!==arrayProto[t]){const E=w.apply(e,a);return y?toReactive(E):E}let _=n;d!==e&&(y?_=function(E,C){return n.call(this,toReactive(E),C,e)}:n.length>2&&(_=function(E,C){return n.call(this,E,C,e)}));const S=w.call(d,_,o);return y&&l?l(S):S}function reduce(e,t,n,o){const l=shallowReadArray(e);let a=n;return l!==e&&(isShallow(e)?n.length>3&&(a=function(d,y,w){return n.call(this,d,y,w,e)}):a=function(d,y,w){return n.call(this,d,toReactive(y),w,e)}),l[t](a,...o)}function searchProxy(e,t,n){const o=toRaw(e);track(o,"iterate",ARRAY_ITERATE_KEY);const l=o[t](...n);return(l===-1||l===!1)&&isProxy(n[0])?(n[0]=toRaw(n[0]),o[t](...n)):l}function noTracking(e,t,n=[]){pauseTracking(),startBatch();const o=toRaw(e)[t].apply(e,n);return endBatch(),resetTracking(),o}const isNonTrackableKeys=makeMap("__proto__,__v_isRef,__isVue"),builtInSymbols=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(isSymbol$4));function hasOwnProperty$3(e){isSymbol$4(e)||(e=String(e));const t=toRaw(this);return track(t,"has",e),t.hasOwnProperty(e)}class BaseReactiveHandler{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,o){if(n==="__v_skip")return t.__v_skip;const l=this._isReadonly,a=this._isShallow;if(n==="__v_isReactive")return!l;if(n==="__v_isReadonly")return l;if(n==="__v_isShallow")return a;if(n==="__v_raw")return o===(l?a?shallowReadonlyMap:readonlyMap:a?shallowReactiveMap:reactiveMap).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const d=isArray$a(t);if(!l){let w;if(d&&(w=arrayInstrumentations[n]))return w;if(n==="hasOwnProperty")return hasOwnProperty$3}const y=Reflect.get(t,n,isRef(t)?t:o);return(isSymbol$4(n)?builtInSymbols.has(n):isNonTrackableKeys(n))||(l||track(t,"get",n),a)?y:isRef(y)?d&&isIntegerKey(n)?y:y.value:isObject$3(y)?l?readonly(y):reactive(y):y}}class MutableReactiveHandler extends BaseReactiveHandler{constructor(t=!1){super(!1,t)}set(t,n,o,l){let a=t[n];if(!this._isShallow){const w=isReadonly(a);if(!isShallow(o)&&!isReadonly(o)&&(a=toRaw(a),o=toRaw(o)),!isArray$a(t)&&isRef(a)&&!isRef(o))return w?(warn$3(`Set operation on key "${String(n)}" failed: target is readonly.`,t[n]),!0):(a.value=o,!0)}const d=isArray$a(t)&&isIntegerKey(n)?Number(n)e,getProto$4=e=>Reflect.getPrototypeOf(e);function createIterableMethod(e,t,n){return function(...o){const l=this.__v_raw,a=toRaw(l),d=isMap$1(a),y=e==="entries"||e===Symbol.iterator&&d,w=e==="keys"&&d,_=l[e](...o),S=n?toShallow:t?toReadonly:toReactive;return!t&&track(a,"iterate",w?MAP_KEY_ITERATE_KEY:ITERATE_KEY),{next(){const{value:E,done:C}=_.next();return C?{value:E,done:C}:{value:y?[S(E[0]),S(E[1])]:S(E),done:C}},[Symbol.iterator](){return this}}}}function createReadonlyMethod(e){return function(...t){{const n=t[0]?`on key "${t[0]}" `:"";warn$3(`${capitalize$2(e)} operation ${n}failed: target is readonly.`,toRaw(this))}return e==="delete"?!1:e==="clear"?void 0:this}}function createInstrumentations(e,t){const n={get(l){const a=this.__v_raw,d=toRaw(a),y=toRaw(l);e||(hasChanged(l,y)&&track(d,"get",l),track(d,"get",y));const{has:w}=getProto$4(d),_=t?toShallow:e?toReadonly:toReactive;if(w.call(d,l))return _(a.get(l));if(w.call(d,y))return _(a.get(y));a!==d&&a.get(l)},get size(){const l=this.__v_raw;return!e&&track(toRaw(l),"iterate",ITERATE_KEY),l.size},has(l){const a=this.__v_raw,d=toRaw(a),y=toRaw(l);return e||(hasChanged(l,y)&&track(d,"has",l),track(d,"has",y)),l===y?a.has(l):a.has(l)||a.has(y)},forEach(l,a){const d=this,y=d.__v_raw,w=toRaw(y),_=t?toShallow:e?toReadonly:toReactive;return!e&&track(w,"iterate",ITERATE_KEY),y.forEach((S,E)=>l.call(a,_(S),_(E),d))}};return extend$1(n,e?{add:createReadonlyMethod("add"),set:createReadonlyMethod("set"),delete:createReadonlyMethod("delete"),clear:createReadonlyMethod("clear")}:{add(l){!t&&!isShallow(l)&&!isReadonly(l)&&(l=toRaw(l));const a=toRaw(this);return getProto$4(a).has.call(a,l)||(a.add(l),trigger(a,"add",l,l)),this},set(l,a){!t&&!isShallow(a)&&!isReadonly(a)&&(a=toRaw(a));const d=toRaw(this),{has:y,get:w}=getProto$4(d);let _=y.call(d,l);_?checkIdentityKeys(d,y,l):(l=toRaw(l),_=y.call(d,l));const S=w.call(d,l);return d.set(l,a),_?hasChanged(a,S)&&trigger(d,"set",l,a,S):trigger(d,"add",l,a),this},delete(l){const a=toRaw(this),{has:d,get:y}=getProto$4(a);let w=d.call(a,l);w?checkIdentityKeys(a,d,l):(l=toRaw(l),w=d.call(a,l));const _=y?y.call(a,l):void 0,S=a.delete(l);return w&&trigger(a,"delete",l,void 0,_),S},clear(){const l=toRaw(this),a=l.size!==0,d=isMap$1(l)?new Map(l):new Set(l),y=l.clear();return a&&trigger(l,"clear",void 0,void 0,d),y}}),["keys","values","entries",Symbol.iterator].forEach(l=>{n[l]=createIterableMethod(l,e,t)}),n}function createInstrumentationGetter(e,t){const n=createInstrumentations(e,t);return(o,l,a)=>l==="__v_isReactive"?!e:l==="__v_isReadonly"?e:l==="__v_raw"?o:Reflect.get(hasOwn$3(n,l)&&l in o?n:o,l,a)}const mutableCollectionHandlers={get:createInstrumentationGetter(!1,!1)},shallowCollectionHandlers={get:createInstrumentationGetter(!1,!0)},readonlyCollectionHandlers={get:createInstrumentationGetter(!0,!1)},shallowReadonlyCollectionHandlers={get:createInstrumentationGetter(!0,!0)};function checkIdentityKeys(e,t,n){const o=toRaw(n);if(o!==n&&t.call(e,o)){const l=toRawType(e);warn$3(`Reactive ${l} contains both the raw and reactive versions of the same object${l==="Map"?" as keys":""}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`)}}const reactiveMap=new WeakMap,shallowReactiveMap=new WeakMap,readonlyMap=new WeakMap,shallowReadonlyMap=new WeakMap;function targetTypeMap(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function getTargetType(e){return e.__v_skip||!Object.isExtensible(e)?0:targetTypeMap(toRawType(e))}function reactive(e){return isReadonly(e)?e:createReactiveObject(e,!1,mutableHandlers,mutableCollectionHandlers,reactiveMap)}function shallowReactive(e){return createReactiveObject(e,!1,shallowReactiveHandlers,shallowCollectionHandlers,shallowReactiveMap)}function readonly(e){return createReactiveObject(e,!0,readonlyHandlers,readonlyCollectionHandlers,readonlyMap)}function shallowReadonly(e){return createReactiveObject(e,!0,shallowReadonlyHandlers,shallowReadonlyCollectionHandlers,shallowReadonlyMap)}function createReactiveObject(e,t,n,o,l){if(!isObject$3(e))return warn$3(`value cannot be made ${t?"readonly":"reactive"}: ${String(e)}`),e;if(e.__v_raw&&!(t&&e.__v_isReactive))return e;const a=getTargetType(e);if(a===0)return e;const d=l.get(e);if(d)return d;const y=new Proxy(e,a===2?o:n);return l.set(e,y),y}function isReactive(e){return isReadonly(e)?isReactive(e.__v_raw):!!(e&&e.__v_isReactive)}function isReadonly(e){return!!(e&&e.__v_isReadonly)}function isShallow(e){return!!(e&&e.__v_isShallow)}function isProxy(e){return e?!!e.__v_raw:!1}function toRaw(e){const t=e&&e.__v_raw;return t?toRaw(t):e}function markRaw(e){return!hasOwn$3(e,"__v_skip")&&Object.isExtensible(e)&&def(e,"__v_skip",!0),e}const toReactive=e=>isObject$3(e)?reactive(e):e,toReadonly=e=>isObject$3(e)?readonly(e):e;function isRef(e){return e?e.__v_isRef===!0:!1}function ref$1(e){return createRef(e,!1)}function shallowRef(e){return createRef(e,!0)}function createRef(e,t){return isRef(e)?e:new RefImpl(e,t)}class RefImpl{constructor(t,n){this.dep=new Dep,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:toRaw(t),this._value=n?t:toReactive(t),this.__v_isShallow=n}get value(){return this.dep.track({target:this,type:"get",key:"value"}),this._value}set value(t){const n=this._rawValue,o=this.__v_isShallow||isShallow(t)||isReadonly(t);t=o?t:toRaw(t),hasChanged(t,n)&&(this._rawValue=t,this._value=o?t:toReactive(t),this.dep.trigger({target:this,type:"set",key:"value",newValue:t,oldValue:n}))}}function triggerRef(e){e.dep&&e.dep.trigger({target:e,type:"set",key:"value",newValue:e._value})}function unref(e){return isRef(e)?e.value:e}function toValue$1(e){return isFunction$2(e)?e():unref(e)}const shallowUnwrapHandlers={get:(e,t,n)=>t==="__v_raw"?e:unref(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const l=e[t];return isRef(l)&&!isRef(n)?(l.value=n,!0):Reflect.set(e,t,n,o)}};function proxyRefs(e){return isReactive(e)?e:new Proxy(e,shallowUnwrapHandlers)}class CustomRefImpl{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new Dep,{get:o,set:l}=t(n.track.bind(n),n.trigger.bind(n));this._get=o,this._set=l}get value(){return this._value=this._get()}set value(t){this._set(t)}}function customRef(e){return new CustomRefImpl(e)}function toRefs(e){isProxy(e)||warn$3("toRefs() expects a reactive object but received a plain one.");const t=isArray$a(e)?new Array(e.length):{};for(const n in e)t[n]=propertyToRef(e,n);return t}class ObjectRefImpl{constructor(t,n,o){this._object=t,this._key=n,this._defaultValue=o,this.__v_isRef=!0,this._value=void 0}get value(){const t=this._object[this._key];return this._value=t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return getDepFromReactive(toRaw(this._object),this._key)}}class GetterRefImpl{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function toRef(e,t,n){return isRef(e)?e:isFunction$2(e)?new GetterRefImpl(e):isObject$3(e)&&arguments.length>1?propertyToRef(e,t,n):ref$1(e)}function propertyToRef(e,t,n){const o=e[t];return isRef(o)?o:new ObjectRefImpl(e,t,n)}class ComputedRefImpl{constructor(t,n,o){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Dep(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=globalVersion-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&activeSub!==this)return batch(this,!0),!0}get value(){const t=this.dep.track({target:this,type:"get",key:"value"});return refreshComputed(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter?this.setter(t):warn$3("Write operation failed: computed value is readonly")}}function computed$1(e,t,n=!1){let o,l;isFunction$2(e)?o=e:(o=e.get,l=e.set);const a=new ComputedRefImpl(o,l,n);return t&&!n&&(a.onTrack=t.onTrack,a.onTrigger=t.onTrigger),a}const TrackOpTypes={GET:"get",HAS:"has",ITERATE:"iterate"},TriggerOpTypes={SET:"set",ADD:"add",DELETE:"delete",CLEAR:"clear"},INITIAL_WATCHER_VALUE={},cleanupMap=new WeakMap;let activeWatcher;function getCurrentWatcher(){return activeWatcher}function onWatcherCleanup(e,t=!1,n=activeWatcher){if(n){let o=cleanupMap.get(n);o||cleanupMap.set(n,o=[]),o.push(e)}else t||warn$3("onWatcherCleanup() was called when there was no active watcher to associate with.")}function watch$1(e,t,n=EMPTY_OBJ){const{immediate:o,deep:l,once:a,scheduler:d,augmentJob:y,call:w}=n,_=Q=>{(n.onWarn||warn$3)("Invalid watch source: ",Q,"A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.")},S=Q=>l?Q:isShallow(Q)||l===!1||l===0?traverse(Q,1):traverse(Q);let E,C,B,L,F=!1,j=!1;if(isRef(e)?(C=()=>e.value,F=isShallow(e)):isReactive(e)?(C=()=>S(e),F=!0):isArray$a(e)?(j=!0,F=e.some(Q=>isReactive(Q)||isShallow(Q)),C=()=>e.map(Q=>{if(isRef(Q))return Q.value;if(isReactive(Q))return S(Q);if(isFunction$2(Q))return w?w(Q,2):Q();_(Q)})):isFunction$2(e)?t?C=w?()=>w(e,2):e:C=()=>{if(B){pauseTracking();try{B()}finally{resetTracking()}}const Q=activeWatcher;activeWatcher=E;try{return w?w(e,3,[L]):e(L)}finally{activeWatcher=Q}}:(C=NOOP,_(e)),t&&l){const Q=C,ae=l===!0?1/0:l;C=()=>traverse(Q(),ae)}const H=getCurrentScope(),D=()=>{E.stop(),H&&H.active&&remove(H.effects,E)};if(a&&t){const Q=t;t=(...ae)=>{Q(...ae),D()}}let q=j?new Array(e.length).fill(INITIAL_WATCHER_VALUE):INITIAL_WATCHER_VALUE;const V=Q=>{if(!(!(E.flags&1)||!E.dirty&&!Q))if(t){const ae=E.run();if(l||F||(j?ae.some((ce,ue)=>hasChanged(ce,q[ue])):hasChanged(ae,q))){B&&B();const ce=activeWatcher;activeWatcher=E;try{const ue=[ae,q===INITIAL_WATCHER_VALUE?void 0:j&&q[0]===INITIAL_WATCHER_VALUE?[]:q,L];q=ae,w?w(t,3,ue):t(...ue)}finally{activeWatcher=ce}}}else E.run()};return y&&y(V),E=new ReactiveEffect(C),E.scheduler=d?()=>d(V,!1):V,L=Q=>onWatcherCleanup(Q,!1,E),B=E.onStop=()=>{const Q=cleanupMap.get(E);if(Q){if(w)w(Q,4);else for(const ae of Q)ae();cleanupMap.delete(E)}},E.onTrack=n.onTrack,E.onTrigger=n.onTrigger,t?o?V(!0):q=E.run():d?d(V.bind(null,!0),!0):E.run(),D.pause=E.pause.bind(E),D.resume=E.resume.bind(E),D.stop=D,D}function traverse(e,t=1/0,n){if(t<=0||!isObject$3(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,isRef(e))traverse(e.value,t,n);else if(isArray$a(e))for(let o=0;o{traverse(o,t,n)});else if(isPlainObject(e)){for(const o in e)traverse(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&traverse(e[o],t,n)}return e}/** +* @vue/runtime-core v3.5.21 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT **/const stack=[];function pushWarningContext(e){stack.push(e)}function popWarningContext(){stack.pop()}let isWarning=!1;function warn$1(e,...t){if(isWarning)return;isWarning=!0,pauseTracking();const n=stack.length?stack[stack.length-1].component:null,o=n&&n.appContext.config.warnHandler,l=getComponentTrace();if(o)callWithErrorHandling(o,n,11,[e+t.map(a=>{var d,y;return(y=(d=a.toString)==null?void 0:d.call(a))!=null?y:JSON.stringify(a)}).join(""),n&&n.proxy,l.map(({vnode:a})=>`at <${formatComponentName(n,a.type)}>`).join(` `),l]);else{const a=[`[Vue warn]: ${e}`,...t];l.length&&a.push(` `,...formatTrace(l)),console.warn(...a)}resetTracking(),isWarning=!1}function getComponentTrace(){let e=stack[stack.length-1];if(!e)return[];const t=[];for(;e;){const n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});const o=e.component&&e.component.parent;e=o&&o.vnode}return t}function formatTrace(e){const t=[];return e.forEach((n,o)=>{t.push(...o===0?[]:[` -`],...formatTraceEntry(n))}),t}function formatTraceEntry({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:"",o=e.component?e.component.parent==null:!1,l=` at <${formatComponentName(e.component,e.type,o)}`,a=">"+n;return e.props?[l,...formatProps(e.props),a]:[l+a]}function formatProps(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(o=>{t.push(...formatProp(o,e[o]))}),n.length>3&&t.push(" ..."),t}function formatProp(e,t,n){return isString$2(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?n?t:[`${e}=${t}`]:isRef(t)?(t=formatProp(e,toRaw(t.value),!0),n?t:[`${e}=Ref<`,t,">"]):isFunction$2(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=toRaw(t),n?t:[`${e}=`,t])}function assertNumber(e,t){e!==void 0&&(typeof e!="number"?warn$1(`${t} is not a valid number - got ${JSON.stringify(e)}.`):isNaN(e)&&warn$1(`${t} is NaN - the duration expression might be incorrect.`))}const ErrorCodes={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER",COMPONENT_UPDATE:15,15:"COMPONENT_UPDATE",APP_UNMOUNT_CLEANUP:16,16:"APP_UNMOUNT_CLEANUP"},ErrorTypeStrings$1={sp:"serverPrefetch hook",bc:"beforeCreate hook",c:"created hook",bm:"beforeMount hook",m:"mounted hook",bu:"beforeUpdate hook",u:"updated",bum:"beforeUnmount hook",um:"unmounted hook",a:"activated hook",da:"deactivated hook",ec:"errorCaptured hook",rtc:"renderTracked hook",rtg:"renderTriggered hook",0:"setup function",1:"render function",2:"watcher getter",3:"watcher callback",4:"watcher cleanup function",5:"native event handler",6:"component event handler",7:"vnode hook",8:"directive hook",9:"transition hook",10:"app errorHandler",11:"app warnHandler",12:"ref function",13:"async component loader",14:"scheduler flush",15:"component update",16:"app unmount cleanup function"};function callWithErrorHandling(e,t,n,o){try{return o?e(...o):e()}catch(l){handleError(l,t,n)}}function callWithAsyncErrorHandling(e,t,n,o){if(isFunction$2(e)){const l=callWithErrorHandling(e,t,n,o);return l&&isPromise$1(l)&&l.catch(a=>{handleError(a,t,n)}),l}if(isArray$a(e)){const l=[];for(let a=0;a>>1,l=queue[o],a=getId(l);a=getId(n)?queue.push(e):queue.splice(findInsertionIndex$1(t),0,e),e.flags|=1,queueFlush()}}function queueFlush(){currentFlushPromise||(currentFlushPromise=resolvedPromise.then(flushJobs))}function queuePostFlushCb(e){isArray$a(e)?pendingPostFlushCbs.push(...e):activePostFlushCbs&&e.id===-1?activePostFlushCbs.splice(postFlushIndex+1,0,e):e.flags&1||(pendingPostFlushCbs.push(e),e.flags|=1),queueFlush()}function flushPreFlushCbs(e,t,n=flushIndex+1){for(t=t||new Map;ngetId(n)-getId(o));if(pendingPostFlushCbs.length=0,activePostFlushCbs){activePostFlushCbs.push(...t);return}for(activePostFlushCbs=t,e=e||new Map,postFlushIndex=0;postFlushIndexe.id==null?e.flags&2?-1:1/0:e.id;function flushJobs(e){e=e||new Map;const t=n=>checkRecursiveUpdates(e,n);try{for(flushIndex=0;flushIndexRECURSION_LIMIT){const o=t.i,l=o&&getComponentName(o.type);return handleError(`Maximum recursive updates exceeded${l?` in component <${l}>`:""}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,null,10),!0}return e.set(t,n+1),!1}let isHmrUpdating=!1;const hmrDirtyComponents=new Map;getGlobalThis().__VUE_HMR_RUNTIME__={createRecord:tryWrap(createRecord),rerender:tryWrap(rerender),reload:tryWrap(reload)};const map$2=new Map;function registerHMR(e){const t=e.type.__hmrId;let n=map$2.get(t);n||(createRecord(t,e.type),n=map$2.get(t)),n.instances.add(e)}function unregisterHMR(e){map$2.get(e.type.__hmrId).instances.delete(e)}function createRecord(e,t){return map$2.has(e)?!1:(map$2.set(e,{initialDef:normalizeClassComponent(t),instances:new Set}),!0)}function normalizeClassComponent(e){return isClassComponent(e)?e.__vccOpts:e}function rerender(e,t){const n=map$2.get(e);n&&(n.initialDef.render=t,[...n.instances].forEach(o=>{t&&(o.render=t,normalizeClassComponent(o.type).render=t),o.renderCache=[],isHmrUpdating=!0,o.update(),isHmrUpdating=!1}))}function reload(e,t){const n=map$2.get(e);if(!n)return;t=normalizeClassComponent(t),updateComponentDef(n.initialDef,t);const o=[...n.instances];for(let l=0;l{isHmrUpdating=!0,a.parent.update(),isHmrUpdating=!1,y.delete(a)}):a.appContext.reload?a.appContext.reload():typeof window<"u"?window.location.reload():console.warn("[HMR] Root or manually mounted instance modified. Full reload required."),a.root.ce&&a!==a.root&&a.root.ce._removeChildStyle(d)}queuePostFlushCb(()=>{hmrDirtyComponents.clear()})}function updateComponentDef(e,t){extend$1(e,t);for(const n in e)n!=="__file"&&!(n in t)&&delete e[n]}function tryWrap(e){return(t,n)=>{try{return e(t,n)}catch(o){console.error(o),console.warn("[HMR] Something went wrong during Vue component hot-reload. Full reload required.")}}}let devtools$1,buffer$1=[],devtoolsNotInstalled=!1;function emit$1(e,...t){devtools$1?devtools$1.emit(e,...t):devtoolsNotInstalled||buffer$1.push({event:e,args:t})}function setDevtoolsHook$1(e,t){var n,o;devtools$1=e,devtools$1?(devtools$1.enabled=!0,buffer$1.forEach(({event:l,args:a})=>devtools$1.emit(l,...a)),buffer$1=[]):typeof window<"u"&&window.HTMLElement&&!((o=(n=window.navigator)==null?void 0:n.userAgent)!=null&&o.includes("jsdom"))?((t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(a=>{setDevtoolsHook$1(a,t)}),setTimeout(()=>{devtools$1||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,devtoolsNotInstalled=!0,buffer$1=[])},3e3)):(devtoolsNotInstalled=!0,buffer$1=[])}function devtoolsInitApp(e,t){emit$1("app:init",e,t,{Fragment,Text,Comment,Static})}function devtoolsUnmountApp(e){emit$1("app:unmount",e)}const devtoolsComponentAdded=createDevtoolsComponentHook("component:added"),devtoolsComponentUpdated=createDevtoolsComponentHook("component:updated"),_devtoolsComponentRemoved=createDevtoolsComponentHook("component:removed"),devtoolsComponentRemoved=e=>{devtools$1&&typeof devtools$1.cleanupBuffer=="function"&&!devtools$1.cleanupBuffer(e)&&_devtoolsComponentRemoved(e)};/*! #__NO_SIDE_EFFECTS__ */function createDevtoolsComponentHook(e){return t=>{emit$1(e,t.appContext.app,t.uid,t.parent?t.parent.uid:void 0,t)}}const devtoolsPerfStart=createDevtoolsPerformanceHook("perf:start"),devtoolsPerfEnd=createDevtoolsPerformanceHook("perf:end");function createDevtoolsPerformanceHook(e){return(t,n,o)=>{emit$1(e,t.appContext.app,t.uid,t,n,o)}}function devtoolsComponentEmit(e,t,n){emit$1("component:emit",e.appContext.app,e,t,n)}let currentRenderingInstance=null,currentScopeId=null;function setCurrentRenderingInstance(e){const t=currentRenderingInstance;return currentRenderingInstance=e,currentScopeId=e&&e.type.__scopeId||null,t}function pushScopeId(e){currentScopeId=e}function popScopeId(){currentScopeId=null}const withScopeId=e=>withCtx;function withCtx(e,t=currentRenderingInstance,n){if(!t||e._n)return e;const o=(...l)=>{o._d&&setBlockTracking(-1);const a=setCurrentRenderingInstance(t);let d;try{d=e(...l)}finally{setCurrentRenderingInstance(a),o._d&&setBlockTracking(1)}return devtoolsComponentUpdated(t),d};return o._n=!0,o._c=!0,o._d=!0,o}function validateDirectiveName(e){isBuiltInDirective(e)&&warn$1("Do not use built-in directive ids as custom directive id: "+e)}function withDirectives(e,t){if(currentRenderingInstance===null)return warn$1("withDirectives can only be used inside render functions."),e;const n=getComponentPublicInstance(currentRenderingInstance),o=e.dirs||(e.dirs=[]);for(let l=0;le.__isTeleport,isTeleportDisabled=e=>e&&(e.disabled||e.disabled===""),isTeleportDeferred=e=>e&&(e.defer||e.defer===""),isTargetSVG=e=>typeof SVGElement<"u"&&e instanceof SVGElement,isTargetMathML=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,resolveTarget=(e,t)=>{const n=e&&e.to;if(isString$2(n))if(t){const o=t(n);return!o&&!isTeleportDisabled(e)&&warn$1(`Failed to locate Teleport target with selector "${n}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`),o}else return warn$1("Current renderer does not support string target for Teleports. (missing querySelector renderer option)"),null;else return!n&&!isTeleportDisabled(e)&&warn$1(`Invalid Teleport target: ${n}`),n},TeleportImpl={name:"Teleport",__isTeleport:!0,process(e,t,n,o,l,a,d,y,w,_){const{mc:S,pc:E,pbc:C,o:{insert:B,querySelector:L,createText:F,createComment:q}}=_,H=isTeleportDisabled(t.props);let{shapeFlag:D,children:j,dynamicChildren:V}=t;if(isHmrUpdating&&(w=!1,V=null),e==null){const Q=t.el=q("teleport start"),ae=t.anchor=q("teleport end");B(Q,n,o),B(ae,n,o);const ce=(re,pe)=>{D&16&&(l&&l.isCE&&(l.ce._teleportTarget=re),S(j,re,pe,l,a,d,y,w))},ue=()=>{const re=t.target=resolveTarget(t.props,L),pe=prepareAnchor(re,t,F,B);re?(d!=="svg"&&isTargetSVG(re)?d="svg":d!=="mathml"&&isTargetMathML(re)&&(d="mathml"),H||(ce(re,pe),updateCssVars(t,!1))):H||warn$1("Invalid Teleport target on mount:",re,`(${typeof re})`)};H&&(ce(n,ae),updateCssVars(t,!0)),isTeleportDeferred(t.props)?(t.el.__isMounted=!1,queuePostRenderEffect(()=>{ue(),delete t.el.__isMounted},a)):ue()}else{if(isTeleportDeferred(t.props)&&e.el.__isMounted===!1){queuePostRenderEffect(()=>{TeleportImpl.process(e,t,n,o,l,a,d,y,w,_)},a);return}t.el=e.el,t.targetStart=e.targetStart;const Q=t.anchor=e.anchor,ae=t.target=e.target,ce=t.targetAnchor=e.targetAnchor,ue=isTeleportDisabled(e.props),re=ue?n:ae,pe=ue?Q:ce;if(d==="svg"||isTargetSVG(ae)?d="svg":(d==="mathml"||isTargetMathML(ae))&&(d="mathml"),V?(C(e.dynamicChildren,V,re,l,a,d,y),traverseStaticChildren(e,t,!1)):w||E(e,t,re,pe,l,a,d,y,!1),H)ue?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):moveTeleport(t,n,Q,_,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const T=t.target=resolveTarget(t.props,L);T?moveTeleport(t,T,null,_,0):warn$1("Invalid Teleport target on update:",ae,`(${typeof ae})`)}else ue&&moveTeleport(t,ae,ce,_,1);updateCssVars(t,H)}},remove(e,t,n,{um:o,o:{remove:l}},a){const{shapeFlag:d,children:y,anchor:w,targetStart:_,targetAnchor:S,target:E,props:C}=e;if(E&&(l(_),l(S)),a&&l(w),d&16){const B=a||!isTeleportDisabled(C);for(let L=0;L{e.isMounted=!0}),onBeforeUnmount(()=>{e.isUnmounting=!0}),e}const TransitionHookValidator=[Function,Array],BaseTransitionPropsValidators={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:TransitionHookValidator,onEnter:TransitionHookValidator,onAfterEnter:TransitionHookValidator,onEnterCancelled:TransitionHookValidator,onBeforeLeave:TransitionHookValidator,onLeave:TransitionHookValidator,onAfterLeave:TransitionHookValidator,onLeaveCancelled:TransitionHookValidator,onBeforeAppear:TransitionHookValidator,onAppear:TransitionHookValidator,onAfterAppear:TransitionHookValidator,onAppearCancelled:TransitionHookValidator},recursiveGetSubtree=e=>{const t=e.subTree;return t.component?recursiveGetSubtree(t.component):t},BaseTransitionImpl={name:"BaseTransition",props:BaseTransitionPropsValidators,setup(e,{slots:t}){const n=getCurrentInstance(),o=useTransitionState();return()=>{const l=t.default&&getTransitionRawChildren(t.default(),!0);if(!l||!l.length)return;const a=findNonCommentChild(l),d=toRaw(e),{mode:y}=d;if(y&&y!=="in-out"&&y!=="out-in"&&y!=="default"&&warn$1(`invalid mode: ${y}`),o.isLeaving)return emptyPlaceholder(a);const w=getInnerChild$1(a);if(!w)return emptyPlaceholder(a);let _=resolveTransitionHooks(w,d,o,n,E=>_=E);w.type!==Comment&&setTransitionHooks(w,_);let S=n.subTree&&getInnerChild$1(n.subTree);if(S&&S.type!==Comment&&!isSameVNodeType(w,S)&&recursiveGetSubtree(n).type!==Comment){let E=resolveTransitionHooks(S,d,o,n);if(setTransitionHooks(S,E),y==="out-in"&&w.type!==Comment)return o.isLeaving=!0,E.afterLeave=()=>{o.isLeaving=!1,n.job.flags&8||n.update(),delete E.afterLeave,S=void 0},emptyPlaceholder(a);y==="in-out"&&w.type!==Comment?E.delayLeave=(C,B,L)=>{const F=getLeavingNodesForType(o,S);F[String(S.key)]=S,C[leaveCbKey]=()=>{B(),C[leaveCbKey]=void 0,delete _.delayedLeave,S=void 0},_.delayedLeave=()=>{L(),delete _.delayedLeave,S=void 0}}:S=void 0}else S&&(S=void 0);return a}}};function findNonCommentChild(e){let t=e[0];if(e.length>1){let n=!1;for(const o of e)if(o.type!==Comment){if(n){warn$1(" can only be used on a single element or component. Use for lists.");break}t=o,n=!0}}return t}const BaseTransition=BaseTransitionImpl;function getLeavingNodesForType(e,t){const{leavingVNodes:n}=e;let o=n.get(t.type);return o||(o=Object.create(null),n.set(t.type,o)),o}function resolveTransitionHooks(e,t,n,o,l){const{appear:a,mode:d,persisted:y=!1,onBeforeEnter:w,onEnter:_,onAfterEnter:S,onEnterCancelled:E,onBeforeLeave:C,onLeave:B,onAfterLeave:L,onLeaveCancelled:F,onBeforeAppear:q,onAppear:H,onAfterAppear:D,onAppearCancelled:j}=t,V=String(e.key),Q=getLeavingNodesForType(n,e),ae=(re,pe)=>{re&&callWithAsyncErrorHandling(re,o,9,pe)},ce=(re,pe)=>{const T=pe[1];ae(re,pe),isArray$a(re)?re.every(u=>u.length<=1)&&T():re.length<=1&&T()},ue={mode:d,persisted:y,beforeEnter(re){let pe=w;if(!n.isMounted)if(a)pe=q||w;else return;re[leaveCbKey]&&re[leaveCbKey](!0);const T=Q[V];T&&isSameVNodeType(e,T)&&T.el[leaveCbKey]&&T.el[leaveCbKey](),ae(pe,[re])},enter(re){let pe=_,T=S,u=E;if(!n.isMounted)if(a)pe=H||_,T=D||S,u=j||E;else return;let v=!1;const m=re[enterCbKey$1]=b=>{v||(v=!0,b?ae(u,[re]):ae(T,[re]),ue.delayedLeave&&ue.delayedLeave(),re[enterCbKey$1]=void 0)};pe?ce(pe,[re,m]):m()},leave(re,pe){const T=String(e.key);if(re[enterCbKey$1]&&re[enterCbKey$1](!0),n.isUnmounting)return pe();ae(C,[re]);let u=!1;const v=re[leaveCbKey]=m=>{u||(u=!0,pe(),m?ae(F,[re]):ae(L,[re]),re[leaveCbKey]=void 0,Q[T]===e&&delete Q[T])};Q[T]=e,B?ce(B,[re,v]):v()},clone(re){const pe=resolveTransitionHooks(re,t,n,o,l);return l&&l(pe),pe}};return ue}function emptyPlaceholder(e){if(isKeepAlive(e))return e=cloneVNode(e),e.children=null,e}function getInnerChild$1(e){if(!isKeepAlive(e))return isTeleport(e.type)&&e.children?findNonCommentChild(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&isFunction$2(n.default))return n.default()}}function setTransitionHooks(e,t){e.shapeFlag&6&&e.component?(e.transition=t,setTransitionHooks(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function getTransitionRawChildren(e,t=!1,n){let o=[],l=0;for(let a=0;a1)for(let a=0;aextend$1({name:e.name},t,{setup:e}))():e}function useId(){const e=getCurrentInstance();return e?(e.appContext.config.idPrefix||"v")+"-"+e.ids[0]+e.ids[1]++:(warn$1("useId() is called when there is no active component instance to be associated with."),"")}function markAsyncBoundary(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}const knownTemplateRefs=new WeakSet;function useTemplateRef(e){const t=getCurrentInstance(),n=shallowRef(null);if(t){const l=t.refs===EMPTY_OBJ?t.refs={}:t.refs;let a;(a=Object.getOwnPropertyDescriptor(l,e))&&!a.configurable?warn$1(`useTemplateRef('${e}') already exists.`):Object.defineProperty(l,e,{enumerable:!0,get:()=>n.value,set:d=>n.value=d})}else warn$1("useTemplateRef() is called when there is no active component instance to be associated with.");const o=readonly(n);return knownTemplateRefs.add(o),o}function setRef(e,t,n,o,l=!1){if(isArray$a(e)){e.forEach((L,F)=>setRef(L,t&&(isArray$a(t)?t[F]:t),n,o,l));return}if(isAsyncWrapper(o)&&!l){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&setRef(e,t,n,o.component.subTree);return}const a=o.shapeFlag&4?getComponentPublicInstance(o.component):o.el,d=l?null:a,{i:y,r:w}=e;if(!y){warn$1("Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.");return}const _=t&&t.r,S=y.refs===EMPTY_OBJ?y.refs={}:y.refs,E=y.setupState,C=toRaw(E),B=E===EMPTY_OBJ?()=>!1:L=>(hasOwn$3(C,L)&&!isRef(C[L])&&warn$1(`Template ref "${L}" used on a non-ref value. It will not work in the production build.`),knownTemplateRefs.has(C[L])?!1:hasOwn$3(C,L));if(_!=null&&_!==w&&(isString$2(_)?(S[_]=null,B(_)&&(E[_]=null)):isRef(_)&&(_.value=null)),isFunction$2(w))callWithErrorHandling(w,y,12,[d,S]);else{const L=isString$2(w),F=isRef(w);if(L||F){const q=()=>{if(e.f){const H=L?B(w)?E[w]:S[w]:w.value;l?isArray$a(H)&&remove(H,a):isArray$a(H)?H.includes(a)||H.push(a):L?(S[w]=[a],B(w)&&(E[w]=S[w])):(w.value=[a],e.k&&(S[e.k]=w.value))}else L?(S[w]=d,B(w)&&(E[w]=d)):F?(w.value=d,e.k&&(S[e.k]=d)):warn$1("Invalid template ref type:",w,`(${typeof w})`)};d?(q.id=-1,queuePostRenderEffect(q,n)):q()}else warn$1("Invalid template ref type:",w,`(${typeof w})`)}}let hasLoggedMismatchError=!1;const logMismatchError=()=>{hasLoggedMismatchError||(console.error("Hydration completed but contains mismatches."),hasLoggedMismatchError=!0)},isSVGContainer=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",isMathMLContainer=e=>e.namespaceURI.includes("MathML"),getContainerType=e=>{if(e.nodeType===1){if(isSVGContainer(e))return"svg";if(isMathMLContainer(e))return"mathml"}},isComment=e=>e.nodeType===8;function createHydrationFunctions(e){const{mt:t,p:n,o:{patchProp:o,createText:l,nextSibling:a,parentNode:d,remove:y,insert:w,createComment:_}}=e,S=(j,V)=>{if(!V.hasChildNodes()){warn$1("Attempting to hydrate existing markup but container is empty. Performing full mount instead."),n(null,j,V),flushPostFlushCbs(),V._vnode=j;return}E(V.firstChild,j,null,null,null),flushPostFlushCbs(),V._vnode=j},E=(j,V,Q,ae,ce,ue=!1)=>{ue=ue||!!V.dynamicChildren;const re=isComment(j)&&j.data==="[",pe=()=>F(j,V,Q,ae,ce,re),{type:T,ref:u,shapeFlag:v,patchFlag:m}=V;let b=j.nodeType;V.el=j,def(j,"__vnode",V,!0),def(j,"__vueParentComponent",Q,!0),m===-2&&(ue=!1,V.dynamicChildren=null);let M=null;switch(T){case Text:b!==3?V.children===""?(w(V.el=l(""),d(j),j),M=j):M=pe():(j.data!==V.children&&(warn$1("Hydration text mismatch in",j.parentNode,` - - rendered on server: ${JSON.stringify(j.data)} - - expected on client: ${JSON.stringify(V.children)}`),logMismatchError(),j.data=V.children),M=a(j));break;case Comment:D(j)?(M=a(j),H(V.el=j.content.firstChild,j,Q)):b!==8||re?M=pe():M=a(j);break;case Static:if(re&&(j=a(j),b=j.nodeType),b===1||b===3){M=j;const A=!V.children.length;for(let O=0;O{ue=ue||!!V.dynamicChildren;const{type:re,props:pe,patchFlag:T,shapeFlag:u,dirs:v,transition:m}=V,b=re==="input"||re==="option";{v&&invokeDirectiveHook(V,null,Q,"created");let M=!1;if(D(j)){M=needTransition(null,m)&&Q&&Q.vnode.props&&Q.vnode.props.appear;const O=j.content.firstChild;if(M){const $=O.getAttribute("class");$&&(O.$cls=$),m.beforeEnter(O)}H(O,j,Q),V.el=j=O}if(u&16&&!(pe&&(pe.innerHTML||pe.textContent))){let O=B(j.firstChild,V,j,Q,ae,ce,ue),$=!1;for(;O;){isMismatchAllowed(j,1)||($||(warn$1("Hydration children mismatch on",j,` +`],...formatTraceEntry(n))}),t}function formatTraceEntry({vnode:e,recurseCount:t}){const n=t>0?`... (${t} recursive calls)`:"",o=e.component?e.component.parent==null:!1,l=` at <${formatComponentName(e.component,e.type,o)}`,a=">"+n;return e.props?[l,...formatProps(e.props),a]:[l+a]}function formatProps(e){const t=[],n=Object.keys(e);return n.slice(0,3).forEach(o=>{t.push(...formatProp(o,e[o]))}),n.length>3&&t.push(" ..."),t}function formatProp(e,t,n){return isString$2(t)?(t=JSON.stringify(t),n?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?n?t:[`${e}=${t}`]:isRef(t)?(t=formatProp(e,toRaw(t.value),!0),n?t:[`${e}=Ref<`,t,">"]):isFunction$2(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=toRaw(t),n?t:[`${e}=`,t])}function assertNumber(e,t){e!==void 0&&(typeof e!="number"?warn$1(`${t} is not a valid number - got ${JSON.stringify(e)}.`):isNaN(e)&&warn$1(`${t} is NaN - the duration expression might be incorrect.`))}const ErrorCodes={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER",COMPONENT_UPDATE:15,15:"COMPONENT_UPDATE",APP_UNMOUNT_CLEANUP:16,16:"APP_UNMOUNT_CLEANUP"},ErrorTypeStrings$1={sp:"serverPrefetch hook",bc:"beforeCreate hook",c:"created hook",bm:"beforeMount hook",m:"mounted hook",bu:"beforeUpdate hook",u:"updated",bum:"beforeUnmount hook",um:"unmounted hook",a:"activated hook",da:"deactivated hook",ec:"errorCaptured hook",rtc:"renderTracked hook",rtg:"renderTriggered hook",0:"setup function",1:"render function",2:"watcher getter",3:"watcher callback",4:"watcher cleanup function",5:"native event handler",6:"component event handler",7:"vnode hook",8:"directive hook",9:"transition hook",10:"app errorHandler",11:"app warnHandler",12:"ref function",13:"async component loader",14:"scheduler flush",15:"component update",16:"app unmount cleanup function"};function callWithErrorHandling(e,t,n,o){try{return o?e(...o):e()}catch(l){handleError(l,t,n)}}function callWithAsyncErrorHandling(e,t,n,o){if(isFunction$2(e)){const l=callWithErrorHandling(e,t,n,o);return l&&isPromise$1(l)&&l.catch(a=>{handleError(a,t,n)}),l}if(isArray$a(e)){const l=[];for(let a=0;a>>1,l=queue[o],a=getId(l);a=getId(n)?queue.push(e):queue.splice(findInsertionIndex$1(t),0,e),e.flags|=1,queueFlush()}}function queueFlush(){currentFlushPromise||(currentFlushPromise=resolvedPromise.then(flushJobs))}function queuePostFlushCb(e){isArray$a(e)?pendingPostFlushCbs.push(...e):activePostFlushCbs&&e.id===-1?activePostFlushCbs.splice(postFlushIndex+1,0,e):e.flags&1||(pendingPostFlushCbs.push(e),e.flags|=1),queueFlush()}function flushPreFlushCbs(e,t,n=flushIndex+1){for(t=t||new Map;ngetId(n)-getId(o));if(pendingPostFlushCbs.length=0,activePostFlushCbs){activePostFlushCbs.push(...t);return}for(activePostFlushCbs=t,e=e||new Map,postFlushIndex=0;postFlushIndexe.id==null?e.flags&2?-1:1/0:e.id;function flushJobs(e){e=e||new Map;const t=n=>checkRecursiveUpdates(e,n);try{for(flushIndex=0;flushIndexRECURSION_LIMIT){const o=t.i,l=o&&getComponentName(o.type);return handleError(`Maximum recursive updates exceeded${l?` in component <${l}>`:""}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,null,10),!0}return e.set(t,n+1),!1}let isHmrUpdating=!1;const hmrDirtyComponents=new Map;{const e=getGlobalThis();e.__VUE_HMR_RUNTIME__||(e.__VUE_HMR_RUNTIME__={createRecord:tryWrap(createRecord),rerender:tryWrap(rerender),reload:tryWrap(reload)})}const map$2=new Map;function registerHMR(e){const t=e.type.__hmrId;let n=map$2.get(t);n||(createRecord(t,e.type),n=map$2.get(t)),n.instances.add(e)}function unregisterHMR(e){map$2.get(e.type.__hmrId).instances.delete(e)}function createRecord(e,t){return map$2.has(e)?!1:(map$2.set(e,{initialDef:normalizeClassComponent(t),instances:new Set}),!0)}function normalizeClassComponent(e){return isClassComponent(e)?e.__vccOpts:e}function rerender(e,t){const n=map$2.get(e);n&&(n.initialDef.render=t,[...n.instances].forEach(o=>{t&&(o.render=t,normalizeClassComponent(o.type).render=t),o.renderCache=[],isHmrUpdating=!0,o.job.flags&8||o.update(),isHmrUpdating=!1}))}function reload(e,t){const n=map$2.get(e);if(!n)return;t=normalizeClassComponent(t),updateComponentDef(n.initialDef,t);const o=[...n.instances];for(let l=0;l{a.job.flags&8||(isHmrUpdating=!0,a.parent.update(),isHmrUpdating=!1,y.delete(a))}):a.appContext.reload?a.appContext.reload():typeof window<"u"?window.location.reload():console.warn("[HMR] Root or manually mounted instance modified. Full reload required."),a.root.ce&&a!==a.root&&a.root.ce._removeChildStyle(d)}queuePostFlushCb(()=>{hmrDirtyComponents.clear()})}function updateComponentDef(e,t){extend$1(e,t);for(const n in e)n!=="__file"&&!(n in t)&&delete e[n]}function tryWrap(e){return(t,n)=>{try{return e(t,n)}catch(o){console.error(o),console.warn("[HMR] Something went wrong during Vue component hot-reload. Full reload required.")}}}let devtools$1,buffer$1=[],devtoolsNotInstalled=!1;function emit$1(e,...t){devtools$1?devtools$1.emit(e,...t):devtoolsNotInstalled||buffer$1.push({event:e,args:t})}function setDevtoolsHook$1(e,t){var n,o;devtools$1=e,devtools$1?(devtools$1.enabled=!0,buffer$1.forEach(({event:l,args:a})=>devtools$1.emit(l,...a)),buffer$1=[]):typeof window<"u"&&window.HTMLElement&&!((o=(n=window.navigator)==null?void 0:n.userAgent)!=null&&o.includes("jsdom"))?((t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(a=>{setDevtoolsHook$1(a,t)}),setTimeout(()=>{devtools$1||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,devtoolsNotInstalled=!0,buffer$1=[])},3e3)):(devtoolsNotInstalled=!0,buffer$1=[])}function devtoolsInitApp(e,t){emit$1("app:init",e,t,{Fragment,Text,Comment,Static})}function devtoolsUnmountApp(e){emit$1("app:unmount",e)}const devtoolsComponentAdded=createDevtoolsComponentHook("component:added"),devtoolsComponentUpdated=createDevtoolsComponentHook("component:updated"),_devtoolsComponentRemoved=createDevtoolsComponentHook("component:removed"),devtoolsComponentRemoved=e=>{devtools$1&&typeof devtools$1.cleanupBuffer=="function"&&!devtools$1.cleanupBuffer(e)&&_devtoolsComponentRemoved(e)};function createDevtoolsComponentHook(e){return t=>{emit$1(e,t.appContext.app,t.uid,t.parent?t.parent.uid:void 0,t)}}const devtoolsPerfStart=createDevtoolsPerformanceHook("perf:start"),devtoolsPerfEnd=createDevtoolsPerformanceHook("perf:end");function createDevtoolsPerformanceHook(e){return(t,n,o)=>{emit$1(e,t.appContext.app,t.uid,t,n,o)}}function devtoolsComponentEmit(e,t,n){emit$1("component:emit",e.appContext.app,e,t,n)}let currentRenderingInstance=null,currentScopeId=null;function setCurrentRenderingInstance(e){const t=currentRenderingInstance;return currentRenderingInstance=e,currentScopeId=e&&e.type.__scopeId||null,t}function pushScopeId(e){currentScopeId=e}function popScopeId(){currentScopeId=null}const withScopeId=e=>withCtx;function withCtx(e,t=currentRenderingInstance,n){if(!t||e._n)return e;const o=(...l)=>{o._d&&setBlockTracking(-1);const a=setCurrentRenderingInstance(t);let d;try{d=e(...l)}finally{setCurrentRenderingInstance(a),o._d&&setBlockTracking(1)}return devtoolsComponentUpdated(t),d};return o._n=!0,o._c=!0,o._d=!0,o}function validateDirectiveName(e){isBuiltInDirective(e)&&warn$1("Do not use built-in directive ids as custom directive id: "+e)}function withDirectives(e,t){if(currentRenderingInstance===null)return warn$1("withDirectives can only be used inside render functions."),e;const n=getComponentPublicInstance(currentRenderingInstance),o=e.dirs||(e.dirs=[]);for(let l=0;le.__isTeleport,isTeleportDisabled=e=>e&&(e.disabled||e.disabled===""),isTeleportDeferred=e=>e&&(e.defer||e.defer===""),isTargetSVG=e=>typeof SVGElement<"u"&&e instanceof SVGElement,isTargetMathML=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,resolveTarget=(e,t)=>{const n=e&&e.to;if(isString$2(n))if(t){const o=t(n);return!o&&!isTeleportDisabled(e)&&warn$1(`Failed to locate Teleport target with selector "${n}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`),o}else return warn$1("Current renderer does not support string target for Teleports. (missing querySelector renderer option)"),null;else return!n&&!isTeleportDisabled(e)&&warn$1(`Invalid Teleport target: ${n}`),n},TeleportImpl={name:"Teleport",__isTeleport:!0,process(e,t,n,o,l,a,d,y,w,_){const{mc:S,pc:E,pbc:C,o:{insert:B,querySelector:L,createText:F,createComment:j}}=_,H=isTeleportDisabled(t.props);let{shapeFlag:D,children:q,dynamicChildren:V}=t;if(isHmrUpdating&&(w=!1,V=null),e==null){const Q=t.el=j("teleport start"),ae=t.anchor=j("teleport end");B(Q,n,o),B(ae,n,o);const ce=(re,pe)=>{D&16&&(l&&l.isCE&&(l.ce._teleportTarget=re),S(q,re,pe,l,a,d,y,w))},ue=()=>{const re=t.target=resolveTarget(t.props,L),pe=prepareAnchor(re,t,F,B);re?(d!=="svg"&&isTargetSVG(re)?d="svg":d!=="mathml"&&isTargetMathML(re)&&(d="mathml"),H||(ce(re,pe),updateCssVars(t,!1))):H||warn$1("Invalid Teleport target on mount:",re,`(${typeof re})`)};H&&(ce(n,ae),updateCssVars(t,!0)),isTeleportDeferred(t.props)?(t.el.__isMounted=!1,queuePostRenderEffect(()=>{ue(),delete t.el.__isMounted},a)):ue()}else{if(isTeleportDeferred(t.props)&&e.el.__isMounted===!1){queuePostRenderEffect(()=>{TeleportImpl.process(e,t,n,o,l,a,d,y,w,_)},a);return}t.el=e.el,t.targetStart=e.targetStart;const Q=t.anchor=e.anchor,ae=t.target=e.target,ce=t.targetAnchor=e.targetAnchor,ue=isTeleportDisabled(e.props),re=ue?n:ae,pe=ue?Q:ce;if(d==="svg"||isTargetSVG(ae)?d="svg":(d==="mathml"||isTargetMathML(ae))&&(d="mathml"),V?(C(e.dynamicChildren,V,re,l,a,d,y),traverseStaticChildren(e,t,!1)):w||E(e,t,re,pe,l,a,d,y,!1),H)ue?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):moveTeleport(t,n,Q,_,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const T=t.target=resolveTarget(t.props,L);T?moveTeleport(t,T,null,_,0):warn$1("Invalid Teleport target on update:",ae,`(${typeof ae})`)}else ue&&moveTeleport(t,ae,ce,_,1);updateCssVars(t,H)}},remove(e,t,n,{um:o,o:{remove:l}},a){const{shapeFlag:d,children:y,anchor:w,targetStart:_,targetAnchor:S,target:E,props:C}=e;if(E&&(l(_),l(S)),a&&l(w),d&16){const B=a||!isTeleportDisabled(C);for(let L=0;L{e.isMounted=!0}),onBeforeUnmount(()=>{e.isUnmounting=!0}),e}const TransitionHookValidator=[Function,Array],BaseTransitionPropsValidators={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:TransitionHookValidator,onEnter:TransitionHookValidator,onAfterEnter:TransitionHookValidator,onEnterCancelled:TransitionHookValidator,onBeforeLeave:TransitionHookValidator,onLeave:TransitionHookValidator,onAfterLeave:TransitionHookValidator,onLeaveCancelled:TransitionHookValidator,onBeforeAppear:TransitionHookValidator,onAppear:TransitionHookValidator,onAfterAppear:TransitionHookValidator,onAppearCancelled:TransitionHookValidator},recursiveGetSubtree=e=>{const t=e.subTree;return t.component?recursiveGetSubtree(t.component):t},BaseTransitionImpl={name:"BaseTransition",props:BaseTransitionPropsValidators,setup(e,{slots:t}){const n=getCurrentInstance(),o=useTransitionState();return()=>{const l=t.default&&getTransitionRawChildren(t.default(),!0);if(!l||!l.length)return;const a=findNonCommentChild(l),d=toRaw(e),{mode:y}=d;if(y&&y!=="in-out"&&y!=="out-in"&&y!=="default"&&warn$1(`invalid mode: ${y}`),o.isLeaving)return emptyPlaceholder(a);const w=getInnerChild$1(a);if(!w)return emptyPlaceholder(a);let _=resolveTransitionHooks(w,d,o,n,E=>_=E);w.type!==Comment&&setTransitionHooks(w,_);let S=n.subTree&&getInnerChild$1(n.subTree);if(S&&S.type!==Comment&&!isSameVNodeType(S,w)&&recursiveGetSubtree(n).type!==Comment){let E=resolveTransitionHooks(S,d,o,n);if(setTransitionHooks(S,E),y==="out-in"&&w.type!==Comment)return o.isLeaving=!0,E.afterLeave=()=>{o.isLeaving=!1,n.job.flags&8||n.update(),delete E.afterLeave,S=void 0},emptyPlaceholder(a);y==="in-out"&&w.type!==Comment?E.delayLeave=(C,B,L)=>{const F=getLeavingNodesForType(o,S);F[String(S.key)]=S,C[leaveCbKey]=()=>{B(),C[leaveCbKey]=void 0,delete _.delayedLeave,S=void 0},_.delayedLeave=()=>{L(),delete _.delayedLeave,S=void 0}}:S=void 0}else S&&(S=void 0);return a}}};function findNonCommentChild(e){let t=e[0];if(e.length>1){let n=!1;for(const o of e)if(o.type!==Comment){if(n){warn$1(" can only be used on a single element or component. Use for lists.");break}t=o,n=!0}}return t}const BaseTransition=BaseTransitionImpl;function getLeavingNodesForType(e,t){const{leavingVNodes:n}=e;let o=n.get(t.type);return o||(o=Object.create(null),n.set(t.type,o)),o}function resolveTransitionHooks(e,t,n,o,l){const{appear:a,mode:d,persisted:y=!1,onBeforeEnter:w,onEnter:_,onAfterEnter:S,onEnterCancelled:E,onBeforeLeave:C,onLeave:B,onAfterLeave:L,onLeaveCancelled:F,onBeforeAppear:j,onAppear:H,onAfterAppear:D,onAppearCancelled:q}=t,V=String(e.key),Q=getLeavingNodesForType(n,e),ae=(re,pe)=>{re&&callWithAsyncErrorHandling(re,o,9,pe)},ce=(re,pe)=>{const T=pe[1];ae(re,pe),isArray$a(re)?re.every(u=>u.length<=1)&&T():re.length<=1&&T()},ue={mode:d,persisted:y,beforeEnter(re){let pe=w;if(!n.isMounted)if(a)pe=j||w;else return;re[leaveCbKey]&&re[leaveCbKey](!0);const T=Q[V];T&&isSameVNodeType(e,T)&&T.el[leaveCbKey]&&T.el[leaveCbKey](),ae(pe,[re])},enter(re){let pe=_,T=S,u=E;if(!n.isMounted)if(a)pe=H||_,T=D||S,u=q||E;else return;let v=!1;const m=re[enterCbKey$1]=b=>{v||(v=!0,b?ae(u,[re]):ae(T,[re]),ue.delayedLeave&&ue.delayedLeave(),re[enterCbKey$1]=void 0)};pe?ce(pe,[re,m]):m()},leave(re,pe){const T=String(e.key);if(re[enterCbKey$1]&&re[enterCbKey$1](!0),n.isUnmounting)return pe();ae(C,[re]);let u=!1;const v=re[leaveCbKey]=m=>{u||(u=!0,pe(),m?ae(F,[re]):ae(L,[re]),re[leaveCbKey]=void 0,Q[T]===e&&delete Q[T])};Q[T]=e,B?ce(B,[re,v]):v()},clone(re){const pe=resolveTransitionHooks(re,t,n,o,l);return l&&l(pe),pe}};return ue}function emptyPlaceholder(e){if(isKeepAlive(e))return e=cloneVNode(e),e.children=null,e}function getInnerChild$1(e){if(!isKeepAlive(e))return isTeleport(e.type)&&e.children?findNonCommentChild(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&isFunction$2(n.default))return n.default()}}function setTransitionHooks(e,t){e.shapeFlag&6&&e.component?(e.transition=t,setTransitionHooks(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function getTransitionRawChildren(e,t=!1,n){let o=[],l=0;for(let a=0;a1)for(let a=0;aextend$1({name:e.name},t,{setup:e}))():e}function useId(){const e=getCurrentInstance();return e?(e.appContext.config.idPrefix||"v")+"-"+e.ids[0]+e.ids[1]++:(warn$1("useId() is called when there is no active component instance to be associated with."),"")}function markAsyncBoundary(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}const knownTemplateRefs=new WeakSet;function useTemplateRef(e){const t=getCurrentInstance(),n=shallowRef(null);if(t){const l=t.refs===EMPTY_OBJ?t.refs={}:t.refs;let a;(a=Object.getOwnPropertyDescriptor(l,e))&&!a.configurable?warn$1(`useTemplateRef('${e}') already exists.`):Object.defineProperty(l,e,{enumerable:!0,get:()=>n.value,set:d=>n.value=d})}else warn$1("useTemplateRef() is called when there is no active component instance to be associated with.");const o=readonly(n);return knownTemplateRefs.add(o),o}const pendingSetRefMap=new WeakMap;function setRef(e,t,n,o,l=!1){if(isArray$a(e)){e.forEach((F,j)=>setRef(F,t&&(isArray$a(t)?t[j]:t),n,o,l));return}if(isAsyncWrapper(o)&&!l){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&setRef(e,t,n,o.component.subTree);return}const a=o.shapeFlag&4?getComponentPublicInstance(o.component):o.el,d=l?null:a,{i:y,r:w}=e;if(!y){warn$1("Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.");return}const _=t&&t.r,S=y.refs===EMPTY_OBJ?y.refs={}:y.refs,E=y.setupState,C=toRaw(E),B=E===EMPTY_OBJ?NO:F=>(hasOwn$3(C,F)&&!isRef(C[F])&&warn$1(`Template ref "${F}" used on a non-ref value. It will not work in the production build.`),knownTemplateRefs.has(C[F])?!1:hasOwn$3(C,F)),L=F=>!knownTemplateRefs.has(F);if(_!=null&&_!==w){if(invalidatePendingSetRef(t),isString$2(_))S[_]=null,B(_)&&(E[_]=null);else if(isRef(_)){L(_)&&(_.value=null);const F=t;F.k&&(S[F.k]=null)}}if(isFunction$2(w))callWithErrorHandling(w,y,12,[d,S]);else{const F=isString$2(w),j=isRef(w);if(F||j){const H=()=>{if(e.f){const D=F?B(w)?E[w]:S[w]:L(w)||!e.k?w.value:S[e.k];if(l)isArray$a(D)&&remove(D,a);else if(isArray$a(D))D.includes(a)||D.push(a);else if(F)S[w]=[a],B(w)&&(E[w]=S[w]);else{const q=[a];L(w)&&(w.value=q),e.k&&(S[e.k]=q)}}else F?(S[w]=d,B(w)&&(E[w]=d)):j?(L(w)&&(w.value=d),e.k&&(S[e.k]=d)):warn$1("Invalid template ref type:",w,`(${typeof w})`)};if(d){const D=()=>{H(),pendingSetRefMap.delete(e)};D.id=-1,pendingSetRefMap.set(e,D),queuePostRenderEffect(D,n)}else invalidatePendingSetRef(e),H()}else warn$1("Invalid template ref type:",w,`(${typeof w})`)}}function invalidatePendingSetRef(e){const t=pendingSetRefMap.get(e);t&&(t.flags|=8,pendingSetRefMap.delete(e))}let hasLoggedMismatchError=!1;const logMismatchError=()=>{hasLoggedMismatchError||(console.error("Hydration completed but contains mismatches."),hasLoggedMismatchError=!0)},isSVGContainer=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",isMathMLContainer=e=>e.namespaceURI.includes("MathML"),getContainerType=e=>{if(e.nodeType===1){if(isSVGContainer(e))return"svg";if(isMathMLContainer(e))return"mathml"}},isComment=e=>e.nodeType===8;function createHydrationFunctions(e){const{mt:t,p:n,o:{patchProp:o,createText:l,nextSibling:a,parentNode:d,remove:y,insert:w,createComment:_}}=e,S=(q,V)=>{if(!V.hasChildNodes()){warn$1("Attempting to hydrate existing markup but container is empty. Performing full mount instead."),n(null,q,V),flushPostFlushCbs(),V._vnode=q;return}E(V.firstChild,q,null,null,null),flushPostFlushCbs(),V._vnode=q},E=(q,V,Q,ae,ce,ue=!1)=>{ue=ue||!!V.dynamicChildren;const re=isComment(q)&&q.data==="[",pe=()=>F(q,V,Q,ae,ce,re),{type:T,ref:u,shapeFlag:v,patchFlag:m}=V;let b=q.nodeType;V.el=q,def(q,"__vnode",V,!0),def(q,"__vueParentComponent",Q,!0),m===-2&&(ue=!1,V.dynamicChildren=null);let M=null;switch(T){case Text:b!==3?V.children===""?(w(V.el=l(""),d(q),q),M=q):M=pe():(q.data!==V.children&&(warn$1("Hydration text mismatch in",q.parentNode,` + - rendered on server: ${JSON.stringify(q.data)} + - expected on client: ${JSON.stringify(V.children)}`),logMismatchError(),q.data=V.children),M=a(q));break;case Comment:D(q)?(M=a(q),H(V.el=q.content.firstChild,q,Q)):b!==8||re?M=pe():M=a(q);break;case Static:if(re&&(q=a(q),b=q.nodeType),b===1||b===3){M=q;const A=!V.children.length;for(let O=0;O{ue=ue||!!V.dynamicChildren;const{type:re,props:pe,patchFlag:T,shapeFlag:u,dirs:v,transition:m}=V,b=re==="input"||re==="option";{v&&invokeDirectiveHook(V,null,Q,"created");let M=!1;if(D(q)){M=needTransition(null,m)&&Q&&Q.vnode.props&&Q.vnode.props.appear;const O=q.content.firstChild;if(M){const $=O.getAttribute("class");$&&(O.$cls=$),m.beforeEnter(O)}H(O,q,Q),V.el=q=O}if(u&16&&!(pe&&(pe.innerHTML||pe.textContent))){let O=B(q.firstChild,V,q,Q,ae,ce,ue),$=!1;for(;O;){isMismatchAllowed(q,1)||($||(warn$1("Hydration children mismatch on",q,` Server rendered element contains more child nodes than client vdom.`),$=!0),logMismatchError());const c=O;O=O.nextSibling,y(c)}}else if(u&8){let O=V.children;O[0]===` -`&&(j.tagName==="PRE"||j.tagName==="TEXTAREA")&&(O=O.slice(1)),j.textContent!==O&&(isMismatchAllowed(j,0)||(warn$1("Hydration text content mismatch on",j,` - - rendered on server: ${j.textContent} - - expected on client: ${V.children}`),logMismatchError()),j.textContent=V.children)}if(pe){const O=j.tagName.includes("-");for(const $ in pe)!(v&&v.some(c=>c.dir.created))&&propHasMismatch(j,$,pe[$],V,Q)&&logMismatchError(),(b&&($.endsWith("value")||$==="indeterminate")||isOn($)&&!isReservedProp($)||$[0]==="."||O)&&o(j,$,null,pe[$],void 0,Q)}let A;(A=pe&&pe.onVnodeBeforeMount)&&invokeVNodeHook(A,Q,V),v&&invokeDirectiveHook(V,null,Q,"beforeMount"),((A=pe&&pe.onVnodeMounted)||v||M)&&queueEffectWithSuspense(()=>{A&&invokeVNodeHook(A,Q,V),M&&m.enter(j),v&&invokeDirectiveHook(V,null,Q,"mounted")},ae)}return j.nextSibling},B=(j,V,Q,ae,ce,ue,re)=>{re=re||!!V.dynamicChildren;const pe=V.children,T=pe.length;let u=!1;for(let v=0;v{const{slotScopeIds:re}=V;re&&(ce=ce?ce.concat(re):re);const pe=d(j),T=B(a(j),V,pe,Q,ae,ce,ue);return T&&isComment(T)&&T.data==="]"?a(V.anchor=T):(logMismatchError(),w(V.anchor=_("]"),pe,T),T)},F=(j,V,Q,ae,ce,ue)=>{if(isMismatchAllowed(j.parentElement,1)||(warn$1(`Hydration node mismatch: -- rendered on server:`,j,j.nodeType===3?"(text)":isComment(j)&&j.data==="["?"(start of fragment)":"",` -- expected on client:`,V.type),logMismatchError()),V.el=null,ue){const T=q(j);for(;;){const u=a(j);if(u&&u!==T)y(u);else break}}const re=a(j),pe=d(j);return y(j),n(null,V,pe,re,Q,ae,getContainerType(pe),ce),Q&&(Q.vnode.el=V.el,updateHOCHostEl(Q,V.el)),re},q=(j,V="[",Q="]")=>{let ae=0;for(;j;)if(j=a(j),j&&isComment(j)&&(j.data===V&&ae++,j.data===Q)){if(ae===0)return a(j);ae--}return j},H=(j,V,Q)=>{const ae=V.parentNode;ae&&ae.replaceChild(j,V);let ce=Q;for(;ce;)ce.vnode.el===V&&(ce.vnode.el=ce.subTree.el=j),ce=ce.parent},D=j=>j.nodeType===1&&j.tagName==="TEMPLATE";return[S,E]}function propHasMismatch(e,t,n,o,l){let a,d,y,w;if(t==="class")e.$cls?(y=e.$cls,delete e.$cls):y=e.getAttribute("class"),w=normalizeClass(n),isSetEqual(toClassSet(y||""),toClassSet(w))||(a=2,d="class");else if(t==="style"){y=e.getAttribute("style")||"",w=isString$2(n)?n:stringifyStyle(normalizeStyle(n));const _=toStyleMap(y),S=toStyleMap(w);if(o.dirs)for(const{dir:E,value:C}of o.dirs)E.name==="show"&&!C&&S.set("display","none");l&&resolveCssVars(l,o,S),isMapEqual(_,S)||(a=3,d="style")}else(e instanceof SVGElement&&isKnownSvgAttr(t)||e instanceof HTMLElement&&(isBooleanAttr(t)||isKnownHtmlAttr(t)))&&(isBooleanAttr(t)?(y=e.hasAttribute(t),w=includeBooleanAttr(n)):n==null?(y=e.hasAttribute(t),w=!1):(e.hasAttribute(t)?y=e.getAttribute(t):t==="value"&&e.tagName==="TEXTAREA"?y=e.value:y=!1,w=isRenderableAttrValue(n)?String(n):!1),y!==w&&(a=4,d=t));if(a!=null&&!isMismatchAllowed(e,a)){const _=C=>C===!1?"(not rendered)":`${d}="${C}"`,S=`Hydration ${MismatchTypeString[a]} mismatch on`,E=` +`&&(q.tagName==="PRE"||q.tagName==="TEXTAREA")&&(O=O.slice(1)),q.textContent!==O&&(isMismatchAllowed(q,0)||(warn$1("Hydration text content mismatch on",q,` + - rendered on server: ${q.textContent} + - expected on client: ${V.children}`),logMismatchError()),q.textContent=V.children)}if(pe){const O=q.tagName.includes("-");for(const $ in pe)!(v&&v.some(c=>c.dir.created))&&propHasMismatch(q,$,pe[$],V,Q)&&logMismatchError(),(b&&($.endsWith("value")||$==="indeterminate")||isOn($)&&!isReservedProp($)||$[0]==="."||O)&&o(q,$,null,pe[$],void 0,Q)}let A;(A=pe&&pe.onVnodeBeforeMount)&&invokeVNodeHook(A,Q,V),v&&invokeDirectiveHook(V,null,Q,"beforeMount"),((A=pe&&pe.onVnodeMounted)||v||M)&&queueEffectWithSuspense(()=>{A&&invokeVNodeHook(A,Q,V),M&&m.enter(q),v&&invokeDirectiveHook(V,null,Q,"mounted")},ae)}return q.nextSibling},B=(q,V,Q,ae,ce,ue,re)=>{re=re||!!V.dynamicChildren;const pe=V.children,T=pe.length;let u=!1;for(let v=0;v{const{slotScopeIds:re}=V;re&&(ce=ce?ce.concat(re):re);const pe=d(q),T=B(a(q),V,pe,Q,ae,ce,ue);return T&&isComment(T)&&T.data==="]"?a(V.anchor=T):(logMismatchError(),w(V.anchor=_("]"),pe,T),T)},F=(q,V,Q,ae,ce,ue)=>{if(isMismatchAllowed(q.parentElement,1)||(warn$1(`Hydration node mismatch: +- rendered on server:`,q,q.nodeType===3?"(text)":isComment(q)&&q.data==="["?"(start of fragment)":"",` +- expected on client:`,V.type),logMismatchError()),V.el=null,ue){const T=j(q);for(;;){const u=a(q);if(u&&u!==T)y(u);else break}}const re=a(q),pe=d(q);return y(q),n(null,V,pe,re,Q,ae,getContainerType(pe),ce),Q&&(Q.vnode.el=V.el,updateHOCHostEl(Q,V.el)),re},j=(q,V="[",Q="]")=>{let ae=0;for(;q;)if(q=a(q),q&&isComment(q)&&(q.data===V&&ae++,q.data===Q)){if(ae===0)return a(q);ae--}return q},H=(q,V,Q)=>{const ae=V.parentNode;ae&&ae.replaceChild(q,V);let ce=Q;for(;ce;)ce.vnode.el===V&&(ce.vnode.el=ce.subTree.el=q),ce=ce.parent},D=q=>q.nodeType===1&&q.tagName==="TEMPLATE";return[S,E]}function propHasMismatch(e,t,n,o,l){let a,d,y,w;if(t==="class")e.$cls?(y=e.$cls,delete e.$cls):y=e.getAttribute("class"),w=normalizeClass(n),isSetEqual(toClassSet(y||""),toClassSet(w))||(a=2,d="class");else if(t==="style"){y=e.getAttribute("style")||"",w=isString$2(n)?n:stringifyStyle(normalizeStyle(n));const _=toStyleMap(y),S=toStyleMap(w);if(o.dirs)for(const{dir:E,value:C}of o.dirs)E.name==="show"&&!C&&S.set("display","none");l&&resolveCssVars(l,o,S),isMapEqual(_,S)||(a=3,d="style")}else(e instanceof SVGElement&&isKnownSvgAttr(t)||e instanceof HTMLElement&&(isBooleanAttr(t)||isKnownHtmlAttr(t)))&&(isBooleanAttr(t)?(y=e.hasAttribute(t),w=includeBooleanAttr(n)):n==null?(y=e.hasAttribute(t),w=!1):(e.hasAttribute(t)?y=e.getAttribute(t):t==="value"&&e.tagName==="TEXTAREA"?y=e.value:y=!1,w=isRenderableAttrValue(n)?String(n):!1),y!==w&&(a=4,d=t));if(a!=null&&!isMismatchAllowed(e,a)){const _=C=>C===!1?"(not rendered)":`${d}="${C}"`,S=`Hydration ${MismatchTypeString[a]} mismatch on`,E=` - rendered on server: ${_(y)} - expected on client: ${_(w)} Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead. - You should fix the source of the mismatch.`;return warn$1(S,e,E),!0}return!1}function toClassSet(e){return new Set(e.trim().split(/\s+/))}function isSetEqual(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function toStyleMap(e){const t=new Map;for(const n of e.split(";")){let[o,l]=n.split(":");o=o.trim(),l=l&&l.trim(),o&&l&&t.set(o,l)}return t}function isMapEqual(e,t){if(e.size!==t.size)return!1;for(const[n,o]of e)if(o!==t.get(n))return!1;return!0}function resolveCssVars(e,t,n){const o=e.subTree;if(e.getCssVars&&(t===o||o&&o.type===Fragment&&o.children.includes(t))){const l=e.getCssVars();for(const a in l){const d=normalizeCssVarValue(l[a]);n.set(`--${getEscapedCssVarName(a,!1)}`,d)}}t===o&&e.parent&&resolveCssVars(e.parent,e.vnode,n)}const allowMismatchAttr="data-allow-mismatch",MismatchTypeString={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function isMismatchAllowed(e,t){if(t===0||t===1)for(;e&&!e.hasAttribute(allowMismatchAttr);)e=e.parentElement;const n=e&&e.getAttribute(allowMismatchAttr);if(n==null)return!1;if(n==="")return!0;{const o=n.split(",");return t===0&&o.includes("children")?!0:o.includes(MismatchTypeString[t])}}const requestIdleCallback=getGlobalThis().requestIdleCallback||(e=>setTimeout(e,1)),cancelIdleCallback=getGlobalThis().cancelIdleCallback||(e=>clearTimeout(e)),hydrateOnIdle=(e=1e4)=>t=>{const n=requestIdleCallback(t,{timeout:e});return()=>cancelIdleCallback(n)};function elementIsVisibleInViewport(e){const{top:t,left:n,bottom:o,right:l}=e.getBoundingClientRect(),{innerHeight:a,innerWidth:d}=window;return(t>0&&t0&&o0&&n0&&l(t,n)=>{const o=new IntersectionObserver(l=>{for(const a of l)if(a.isIntersecting){o.disconnect(),t();break}},e);return n(l=>{if(l instanceof Element){if(elementIsVisibleInViewport(l))return t(),o.disconnect(),!1;o.observe(l)}}),()=>o.disconnect()},hydrateOnMediaQuery=e=>t=>{if(e){const n=matchMedia(e);if(n.matches)t();else return n.addEventListener("change",t,{once:!0}),()=>n.removeEventListener("change",t)}},hydrateOnInteraction=(e=[])=>(t,n)=>{isString$2(e)&&(e=[e]);let o=!1;const l=d=>{o||(o=!0,a(),t(),d.target.dispatchEvent(new d.constructor(d.type,d)))},a=()=>{n(d=>{for(const y of e)d.removeEventListener(y,l)})};return n(d=>{for(const y of e)d.addEventListener(y,l,{once:!0})}),a};function forEachElement(e,t){if(isComment(e)&&e.data==="["){let n=1,o=e.nextSibling;for(;o;){if(o.nodeType===1){if(t(o)===!1)break}else if(isComment(o))if(o.data==="]"){if(--n===0)break}else o.data==="["&&n++;o=o.nextSibling}}else t(e)}const isAsyncWrapper=e=>!!e.type.__asyncLoader;/*! #__NO_SIDE_EFFECTS__ */function defineAsyncComponent(e){isFunction$2(e)&&(e={loader:e});const{loader:t,loadingComponent:n,errorComponent:o,delay:l=200,hydrate:a,timeout:d,suspensible:y=!0,onError:w}=e;let _=null,S,E=0;const C=()=>(E++,_=null,B()),B=()=>{let L;return _||(L=_=t().catch(F=>{if(F=F instanceof Error?F:new Error(String(F)),w)return new Promise((q,H)=>{w(F,()=>q(C()),()=>H(F),E+1)});throw F}).then(F=>{if(L!==_&&_)return _;if(F||warn$1("Async component loader resolved to undefined. If you are using retry(), make sure to return its return value."),F&&(F.__esModule||F[Symbol.toStringTag]==="Module")&&(F=F.default),F&&!isObject$3(F)&&!isFunction$2(F))throw new Error(`Invalid async component load result: ${F}`);return S=F,F}))};return defineComponent({name:"AsyncComponentWrapper",__asyncLoader:B,__asyncHydrate(L,F,q){let H=!1;(F.bu||(F.bu=[])).push(()=>H=!0);const D=()=>{if(H){warn$1(`Skipping lazy hydration for component '${getComponentName(S)||S.__file}': it was updated before lazy hydration performed.`);return}q()},j=a?()=>{const V=a(D,Q=>forEachElement(L,Q));V&&(F.bum||(F.bum=[])).push(V)}:D;S?j():B().then(()=>!F.isUnmounted&&j())},get __asyncResolved(){return S},setup(){const L=currentInstance;if(markAsyncBoundary(L),S)return()=>createInnerComp(S,L);const F=j=>{_=null,handleError(j,L,13,!o)};if(y&&L.suspense||isInSSRComponentSetup)return B().then(j=>()=>createInnerComp(j,L)).catch(j=>(F(j),()=>o?createVNode(o,{error:j}):null));const q=ref$1(!1),H=ref$1(),D=ref$1(!!l);return l&&setTimeout(()=>{D.value=!1},l),d!=null&&setTimeout(()=>{if(!q.value&&!H.value){const j=new Error(`Async component timed out after ${d}ms.`);F(j),H.value=j}},d),B().then(()=>{q.value=!0,L.parent&&isKeepAlive(L.parent.vnode)&&L.parent.update()}).catch(j=>{F(j),H.value=j}),()=>{if(q.value&&S)return createInnerComp(S,L);if(H.value&&o)return createVNode(o,{error:H.value});if(n&&!D.value)return createVNode(n)}}})}function createInnerComp(e,t){const{ref:n,props:o,children:l,ce:a}=t.vnode,d=createVNode(e,o,l);return d.ref=n,d.ce=a,delete t.vnode.ce,d}const isKeepAlive=e=>e.type.__isKeepAlive,KeepAliveImpl={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const n=getCurrentInstance(),o=n.ctx;if(!o.renderer)return()=>{const D=t.default&&t.default();return D&&D.length===1?D[0]:D};const l=new Map,a=new Set;let d=null;n.__v_cache=l;const y=n.suspense,{renderer:{p:w,m:_,um:S,o:{createElement:E}}}=o,C=E("div");o.activate=(D,j,V,Q,ae)=>{const ce=D.component;_(D,j,V,0,y),w(ce.vnode,D,j,V,ce,y,Q,D.slotScopeIds,ae),queuePostRenderEffect(()=>{ce.isDeactivated=!1,ce.a&&invokeArrayFns(ce.a);const ue=D.props&&D.props.onVnodeMounted;ue&&invokeVNodeHook(ue,ce.parent,D)},y),devtoolsComponentAdded(ce)},o.deactivate=D=>{const j=D.component;invalidateMount(j.m),invalidateMount(j.a),_(D,C,null,1,y),queuePostRenderEffect(()=>{j.da&&invokeArrayFns(j.da);const V=D.props&&D.props.onVnodeUnmounted;V&&invokeVNodeHook(V,j.parent,D),j.isDeactivated=!0},y),devtoolsComponentAdded(j),j.__keepAliveStorageContainer=C};function B(D){resetShapeFlag(D),S(D,n,y,!0)}function L(D){l.forEach((j,V)=>{const Q=getComponentName(j.type);Q&&!D(Q)&&F(V)})}function F(D){const j=l.get(D);j&&(!d||!isSameVNodeType(j,d))?B(j):d&&resetShapeFlag(d),l.delete(D),a.delete(D)}watch(()=>[e.include,e.exclude],([D,j])=>{D&&L(V=>matches(D,V)),j&&L(V=>!matches(j,V))},{flush:"post",deep:!0});let q=null;const H=()=>{q!=null&&(isSuspense(n.subTree.type)?queuePostRenderEffect(()=>{l.set(q,getInnerChild(n.subTree))},n.subTree.suspense):l.set(q,getInnerChild(n.subTree)))};return onMounted(H),onUpdated(H),onBeforeUnmount(()=>{l.forEach(D=>{const{subTree:j,suspense:V}=n,Q=getInnerChild(j);if(D.type===Q.type&&D.key===Q.key){resetShapeFlag(Q);const ae=Q.component.da;ae&&queuePostRenderEffect(ae,V);return}B(D)})}),()=>{if(q=null,!t.default)return d=null;const D=t.default(),j=D[0];if(D.length>1)return warn$1("KeepAlive should contain exactly one component child."),d=null,D;if(!isVNode(j)||!(j.shapeFlag&4)&&!(j.shapeFlag&128))return d=null,j;let V=getInnerChild(j);if(V.type===Comment)return d=null,V;const Q=V.type,ae=getComponentName(isAsyncWrapper(V)?V.type.__asyncResolved||{}:Q),{include:ce,exclude:ue,max:re}=e;if(ce&&(!ae||!matches(ce,ae))||ue&&ae&&matches(ue,ae))return V.shapeFlag&=-257,d=V,j;const pe=V.key==null?Q:V.key,T=l.get(pe);return V.el&&(V=cloneVNode(V),j.shapeFlag&128&&(j.ssContent=V)),q=pe,T?(V.el=T.el,V.component=T.component,V.transition&&setTransitionHooks(V,V.transition),V.shapeFlag|=512,a.delete(pe),a.add(pe)):(a.add(pe),re&&a.size>parseInt(re,10)&&F(a.values().next().value)),V.shapeFlag|=256,d=V,isSuspense(j.type)?j:V}}},KeepAlive=KeepAliveImpl;function matches(e,t){return isArray$a(e)?e.some(n=>matches(n,t)):isString$2(e)?e.split(",").includes(t):isRegExp$3(e)?(e.lastIndex=0,e.test(t)):!1}function onActivated(e,t){registerKeepAliveHook(e,"a",t)}function onDeactivated(e,t){registerKeepAliveHook(e,"da",t)}function registerKeepAliveHook(e,t,n=currentInstance){const o=e.__wdc||(e.__wdc=()=>{let l=n;for(;l;){if(l.isDeactivated)return;l=l.parent}return e()});if(injectHook(t,o,n),n){let l=n.parent;for(;l&&l.parent;)isKeepAlive(l.parent.vnode)&&injectToKeepAliveRoot(o,t,n,l),l=l.parent}}function injectToKeepAliveRoot(e,t,n,o){const l=injectHook(t,e,o,!0);onUnmounted(()=>{remove(o[t],l)},n)}function resetShapeFlag(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function getInnerChild(e){return e.shapeFlag&128?e.ssContent:e}function injectHook(e,t,n=currentInstance,o=!1){if(n){const l=n[e]||(n[e]=[]),a=t.__weh||(t.__weh=(...d)=>{pauseTracking();const y=setCurrentInstance(n),w=callWithAsyncErrorHandling(t,n,e,d);return y(),resetTracking(),w});return o?l.unshift(a):l.push(a),a}else{const l=toHandlerKey(ErrorTypeStrings$1[e].replace(/ hook$/,""));warn$1(`${l} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.`)}}const createHook=e=>(t,n=currentInstance)=>{(!isInSSRComponentSetup||e==="sp")&&injectHook(e,(...o)=>t(...o),n)},onBeforeMount=createHook("bm"),onMounted=createHook("m"),onBeforeUpdate=createHook("bu"),onUpdated=createHook("u"),onBeforeUnmount=createHook("bum"),onUnmounted=createHook("um"),onServerPrefetch=createHook("sp"),onRenderTriggered=createHook("rtg"),onRenderTracked=createHook("rtc");function onErrorCaptured(e,t=currentInstance){injectHook("ec",e,t)}const COMPONENTS="components",DIRECTIVES="directives";function resolveComponent(e,t){return resolveAsset(COMPONENTS,e,!0,t)||e}const NULL_DYNAMIC_COMPONENT=Symbol.for("v-ndc");function resolveDynamicComponent(e){return isString$2(e)?resolveAsset(COMPONENTS,e,!1)||e:e||NULL_DYNAMIC_COMPONENT}function resolveDirective(e){return resolveAsset(DIRECTIVES,e)}function resolveAsset(e,t,n=!0,o=!1){const l=currentRenderingInstance||currentInstance;if(l){const a=l.type;if(e===COMPONENTS){const y=getComponentName(a,!1);if(y&&(y===t||y===camelize(t)||y===capitalize$2(camelize(t))))return a}const d=resolve$2(l[e]||a[e],t)||resolve$2(l.appContext[e],t);if(!d&&o)return a;if(n&&!d){const y=e===COMPONENTS?` -If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.`:"";warn$1(`Failed to resolve ${e.slice(0,-1)}: ${t}${y}`)}return d}else warn$1(`resolve${capitalize$2(e.slice(0,-1))} can only be used in render() or setup().`)}function resolve$2(e,t){return e&&(e[t]||e[camelize(t)]||e[capitalize$2(camelize(t))])}function renderList(e,t,n,o){let l;const a=n&&n[o],d=isArray$a(e);if(d||isString$2(e)){const y=d&&isReactive(e);let w=!1,_=!1;y&&(w=!isShallow(e),_=isReadonly(e),e=shallowReadArray(e)),l=new Array(e.length);for(let S=0,E=e.length;St(y,w,void 0,a&&a[w]));else{const y=Object.keys(e);l=new Array(y.length);for(let w=0,_=y.length;w<_;w++){const S=y[w];l[w]=t(e[S],S,w,a&&a[w])}}else l=[];return n&&(n[o]=l),l}function createSlots(e,t){for(let n=0;n{const a=o.fn(...l);return a&&(a.key=o.key),a}:o.fn)}return e}function renderSlot(e,t,n={},o,l){if(currentRenderingInstance.ce||currentRenderingInstance.parent&&isAsyncWrapper(currentRenderingInstance.parent)&¤tRenderingInstance.parent.ce)return t!=="default"&&(n.name=t),openBlock(),createBlock(Fragment,null,[createVNode("slot",n,o&&o())],64);let a=e[t];a&&a.length>1&&(warn$1("SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template."),a=()=>[]),a&&a._c&&(a._d=!1),openBlock();const d=a&&ensureValidVNode(a(n)),y=n.key||d&&d.key,w=createBlock(Fragment,{key:(y&&!isSymbol$4(y)?y:`_${t}`)+(!d&&o?"_fb":"")},d||(o?o():[]),d&&e._===1?64:-2);return!l&&w.scopeId&&(w.slotScopeIds=[w.scopeId+"-s"]),a&&a._c&&(a._d=!0),w}function ensureValidVNode(e){return e.some(t=>isVNode(t)?!(t.type===Comment||t.type===Fragment&&!ensureValidVNode(t.children)):!0)?e:null}function toHandlers(e,t){const n={};if(!isObject$3(e))return warn$1("v-on with no argument expects an object value."),n;for(const o in e)n[t&&/[A-Z]/.test(o)?`on:${o}`:toHandlerKey(o)]=e[o];return n}const getPublicInstance=e=>e?isStatefulComponent(e)?getComponentPublicInstance(e):getPublicInstance(e.parent):null,publicPropertiesMap=extend$1(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>shallowReadonly(e.props),$attrs:e=>shallowReadonly(e.attrs),$slots:e=>shallowReadonly(e.slots),$refs:e=>shallowReadonly(e.refs),$parent:e=>getPublicInstance(e.parent),$root:e=>getPublicInstance(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>resolveMergedOptions(e),$forceUpdate:e=>e.f||(e.f=()=>{queueJob(e.update)}),$nextTick:e=>e.n||(e.n=nextTick$4.bind(e.proxy)),$watch:e=>instanceWatch.bind(e)}),isReservedPrefix=e=>e==="_"||e==="$",hasSetupBinding=(e,t)=>e!==EMPTY_OBJ&&!e.__isScriptSetup&&hasOwn$3(e,t),PublicInstanceProxyHandlers={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:o,data:l,props:a,accessCache:d,type:y,appContext:w}=e;if(t==="__isVue")return!0;let _;if(t[0]!=="$"){const B=d[t];if(B!==void 0)switch(B){case 1:return o[t];case 2:return l[t];case 4:return n[t];case 3:return a[t]}else{if(hasSetupBinding(o,t))return d[t]=1,o[t];if(l!==EMPTY_OBJ&&hasOwn$3(l,t))return d[t]=2,l[t];if((_=e.propsOptions[0])&&hasOwn$3(_,t))return d[t]=3,a[t];if(n!==EMPTY_OBJ&&hasOwn$3(n,t))return d[t]=4,n[t];shouldCacheAccess&&(d[t]=0)}}const S=publicPropertiesMap[t];let E,C;if(S)return t==="$attrs"?(track(e.attrs,"get",""),markAttrsAccessed()):t==="$slots"&&track(e,"get",t),S(e);if((E=y.__cssModules)&&(E=E[t]))return E;if(n!==EMPTY_OBJ&&hasOwn$3(n,t))return d[t]=4,n[t];if(C=w.config.globalProperties,hasOwn$3(C,t))return C[t];currentRenderingInstance&&(!isString$2(t)||t.indexOf("__v")!==0)&&(l!==EMPTY_OBJ&&isReservedPrefix(t[0])&&hasOwn$3(l,t)?warn$1(`Property ${JSON.stringify(t)} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.`):e===currentRenderingInstance&&warn$1(`Property ${JSON.stringify(t)} was accessed during render but is not defined on instance.`))},set({_:e},t,n){const{data:o,setupState:l,ctx:a}=e;return hasSetupBinding(l,t)?(l[t]=n,!0):l.__isScriptSetup&&hasOwn$3(l,t)?(warn$1(`Cannot mutate - - - - - - + + + + + + + From f5d2fba8a38e4f871a87e6ee80737ce2c8821768 Mon Sep 17 00:00:00 2001 From: ndrsnhs <156670705+ndrsnhs@users.noreply.github.com> Date: Mon, 22 Sep 2025 12:33:58 +0200 Subject: [PATCH 8/8] Update version 2.1.8 --- web/version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/version b/web/version index 489283505b..ebf14b4698 100644 --- a/web/version +++ b/web/version @@ -1 +1 @@ -2.1.8-RC.2 +2.1.8