Willkommen bei evcc
evcc ist dient zur flexiblen Ladesteuerung von Elektrofahrzeugen.
Es sieht aus, als w\xE4re Dein evcc noch nicht konfiguriert. Um evcc zu konfigurieren sind die folgenden Schritte notwendig:
- Erzeugen einer Konfigurationsdatei mit Namen
evcc.yaml. Die Standardkonfiguration evcc.dist.yaml kann daf\xFCr als Vorlage dienen (Download). - Konfiguration der Wallbox als
chargers. - Konfiguration des EVU Z\xE4hlers und evtl. weiterer Z\xE4hler unter
meters. - Konfiguration des Netzanschlusses unter
site. In einer Site wird der Netzanschluss mit dem konfigurierten EVU Z\xE4hler (meter) verbunden. - Konfiguration eines Ladepunktes unter
loadpoints. In einem Ladepunkt wird die konfigurierte Wallbox (charger) mit dem Ladepunkt verbunden. - Start von evcc mit der neu erstellten Konfiguration:
evcc -c evcc.yaml
Minimale Beispielkonfiguration f\xFCr evcc:
uri: localhost:7070 # Adresse f\xFCr UI
+ ${t.fmtShortDurationUnit(i.chargeDurationInterpolated)}`,align:"end"},null,8,["label","value"]))]),bO,ie(d,zt(s.vehicle,{onTargetSocUpdated:s.setTargetSoC,onTargetTimeUpdated:s.setTargetTime,onTargetTimeRemoved:s.removeTargetTime,onChangeVehicle:s.changeVehicle,onRemoveVehicle:s.removeVehicle}),null,16,["onTargetSocUpdated","onTargetTimeUpdated","onTargetTimeRemoved","onChangeVehicle","onRemoveVehicle"])])}const EO=Ae(uO,[["render",yO],["__scopeId","data-v-1bcf953a"]]),wO={name:"Site",components:{Loadpoint:EO},props:{loadpoints:Array,vehicles:Array},data(){return{selectedIndex:0,snapTimeout:null}},mounted(){this.$refs.carousel.addEventListener("scroll",this.handleCarouselScroll,!1)},unmounted(){this.$refs.carousel&&this.$refs.carousel.removeEventListener("scroll",this.handleCarouselScroll)},methods:{handleCarouselScroll(){const{scrollLeft:t}=this.$refs.carousel,{offsetWidth:e}=this.$refs.carousel.children[0];this.selectedIndex=Math.round((t-7.5)/e)},selected(t){return this.selectedIndex===t},scrollTo(t){if(this.selectedIndex===t)return;this.selectedIndex=t;const e=this.$refs.carousel,n=e.children[0].offsetWidth;e.style.scrollSnapType="none",e.scrollTo({top:0,left:7.5+n*t,behavior:"smooth"}),clearTimeout(this.snapTimeout),this.snapTimeout=setTimeout(()=>{this.$refs.carousel.style.scrollSnapType="x mandatory"},1e3)}}},TO=t=>(Ct("data-v-024a6ae6"),t=t(),St(),t),CO={class:"container container--loadpoint px-0 mb-md-2 d-flex flex-column justify-content-center"},SO={ref:"carousel",class:"carousel d-lg-flex flex-wrap"},AO={key:0,class:"d-flex d-lg-none justify-content-center"},kO=["onClick"],xO=TO(()=>C("shopicon-filled-circle",{class:"indicator-icon"},null,-1)),LO=[xO];function NO(t,e,n,r,i,s){const o=_e("Loadpoint");return $(),W("div",CO,[C("div",SO,[($(!0),W(De,null,It(n.loadpoints,(a,l)=>($(),W("div",{key:l,class:"flex-grow-1 mb-3 m-lg-0 p-lg-0"},[ie(o,zt(a,{id:l,vehicles:n.vehicles,class:["h-100",{"loadpoint-unselected":!s.selected(l)}],onClick:c=>s.scrollTo(l)}),null,16,["id","vehicles","class","onClick"])]))),128))],512),n.loadpoints.length>1?($(),W("div",AO,[($(!0),W(De,null,It(n.loadpoints,(a,l)=>($(),W("button",{key:l,class:He(["btn btn-sm btn-link p-0 mx-1 indicator d-flex justify-content-center align-items-center evcc-default-text",{"indicator--selected":s.selected(l)}]),onClick:c=>s.scrollTo(l)},LO,10,kO))),128))])):Ee("",!0)])}const OO=Ae(wO,[["render",NO],["__scopeId","data-v-024a6ae6"]]),PO={name:"Vehicles",components:{Vehicle:Ic},data(){return{refreshing:!1,vehicles:[{vehiclePresent:!0,vehicleTitle:"Ford Mustang Mach-E",vehicleSoC:46,vehicleRange:182,targetSoC:100},{vehiclePresent:!0,vehicleTitle:"Renault Twingo Electric",vehicleSoC:77,vehicleRange:98,targetSoC:90},{vehiclePresent:!0,vehicleTitle:"Blauer VW ID.4",vehicleSoC:16,vehicleRange:52,minSoC:35,targetSoC:60}]}},methods:{refresh(){this.refreshing=!0,window.setTimeout(()=>{this.refreshing=!1},5e3)}}},IO=t=>(Ct("data-v-7430d6bb"),t=t(),St(),t),MO={class:"container px-4 mb-3 mb-sm-4 d-flex justify-content-start align-items-center"},RO={class:"m-0"},DO=["disabled"],$O=IO(()=>C("shopicon-regular-refresh",{class:"refresh-icon"},null,-1)),FO=[$O];function VO(t,e,n,r,i,s){const o=_e("Vehicle");return $(),W("div",null,[C("div",MO,[C("h2",RO,K(t.$t("main.vehicles")),1),C("button",{class:He(["btn btn-link d-flex evcc-default-text p-2 ms-1 refresh",{"refresh--in-progress":i.refreshing}]),disabled:i.refreshing,onClick:e[0]||(e[0]=(...a)=>s.refresh&&s.refresh(...a))},FO,10,DO)]),C("div",{class:He(["container vehicles px-0 mb-5",`vehicles-${i.vehicles.length}`])},[($(!0),W(De,null,It(i.vehicles,(a,l)=>($(),Pe(o,zt(a,{id:`vehicle_${l}`,key:l,class:"vehicle",parked:""}),null,16,["id"]))),128))],2)])}const HO=Ae(PO,[["render",VO],["__scopeId","data-v-7430d6bb"]]);var UO='';class BO extends HTMLElement{connectedCallback(){this.setAttribute("data-shopicon",!0),this.innerHTML=UO}}window.customElements.define("shopicon-filled-testtube",BO);const jO={name:"Logo"},af=t=>(Ct("data-v-9d6237eb"),t=t(),St(),t),WO={viewBox:"0 0 122 35",xmlns:"http://www.w3.org/2000/svg","fill-rule":"evenodd","clip-rule":"evenodd","stroke-linejoin":"round","stroke-miterlimit":"2"},zO=af(()=>C("path",{d:"M13.082 29.071a12.384 12.384 0 01-9-3.42 12.192 12.192 0 01-3.54-9.12v-.64a15.394 15.394 0 011.47-6.83 10.825 10.825 0 014.17-4.64 11.64 11.64 0 016.15-1.63 10.45 10.45 0 018.21 3.26c2 2.194 3 5.297 3 9.31v2.76H7.382a6.348 6.348 0 002 4 5.997 5.997 0 004.16 1.49 7.305 7.305 0 006.1-2.84l3.31 3.73a10 10 0 01-4.13 3.39 13.309 13.309 0 01-5.74 1.18zm-.77-20.84a4.216 4.216 0 00-3.26 1.37 7.141 7.141 0 00-1.6 3.91h9.39v-.55a5.005 5.005 0 00-1.22-3.49 4.304 4.304 0 00-3.31-1.24zM36.452 20.331l4.7-17.09h7l-8.48 25.36h-6.44l-8.52-25.36h7l4.74 17.09zM85.542 23.611a4.444 4.444 0 003-1 3.638 3.638 0 001.22-2.75h6.32a8.668 8.668 0 01-1.4 4.73 9.145 9.145 0 01-3.79 3.3 11.736 11.736 0 01-5.29 1.19 10.912 10.912 0 01-8.54-3.46c-2.087-2.3-3.13-5.483-3.13-9.55v-.45c0-3.9 1.033-7.016 3.1-9.35a10.868 10.868 0 018.51-3.5c2.791-.134 5.524.84 7.6 2.71a9.626 9.626 0 012.9 7.21h-6.3a4.663 4.663 0 00-1.2-3.22 4.005 4.005 0 00-3.08-1.24 4.068 4.068 0 00-3.56 1.73c-.8 1.15-1.2 3-1.2 5.6v.7c0 2.61.39 4.49 1.19 5.63a4.092 4.092 0 003.65 1.72zM110.422 23.611a4.454 4.454 0 003-1 3.63 3.63 0 001.21-2.75h6.33a8.668 8.668 0 01-1.4 4.73 9.143 9.143 0 01-3.73 3.3 11.76 11.76 0 01-5.29 1.18 10.912 10.912 0 01-8.54-3.46c-2.087-2.3-3.13-5.483-3.13-9.55v-.45c0-3.9 1.033-7.016 3.1-9.35a10.85 10.85 0 018.57-3.49 10.575 10.575 0 017.6 2.71 9.598 9.598 0 012.91 7.21h-6.33a4.651 4.651 0 00-1.21-3.22 4.492 4.492 0 00-6.64.49c-.8 1.15-1.21 3-1.21 5.6v.7c0 2.607.4 4.484 1.2 5.63a4.09 4.09 0 003.56 1.72z",fill:"#fff",class:"letter","fill-rule":"nonzero"},null,-1)),KO=af(()=>C("path",{d:"M58.462.751h9.22l-6.14 12.3h6.15l-11.53 21.51 2.3-15.36h-7.68l7.68-18.45z",fill:"#0fdd42","fill-rule":"nonzero"},null,-1)),YO=af(()=>C("path",{fill:"none",d:"M-24.458-22.109h170v76h-170z"},null,-1)),qO=[zO,KO,YO];function GO(t,e,n,r,i,s){return $(),W("svg",WO,qO)}const XO=Ae(jO,[["render",GO],["__scopeId","data-v-9d6237eb"]]);var QO='';class JO extends HTMLElement{connectedCallback(){this.setAttribute("data-shopicon",!0),this.innerHTML=QO}}window.customElements.define("shopicon-regular-gift",JO);var ZO='';class eP extends HTMLElement{connectedCallback(){this.setAttribute("data-shopicon",!0),this.innerHTML=ZO}}window.customElements.define("shopicon-regular-moonstars",eP);const tP={name:"Version",components:{Logo:XO},props:{installed:String,available:String,releaseNotes:String,commit:String,hasUpdater:Boolean,uploadMessage:String,uploadProgress:Number},data:function(){return{updateStarted:!1,updateStatus:""}},computed:{githubHashUrl:function(){return`https://github.com/evcc-io/evcc/commit/${this.commit}`},newVersionAvailable:function(){return this.available&&this.installed!="[[.Version]]"&&this.installed!="0.0.1-alpha"&&this.available!=this.installed}},methods:{update:async function(){try{await xt.post("update"),this.updateStatus=this.$t("footer.version.modalUpdateStatusStart"),this.updateStarted=!0}catch(t){this.updateStatus=this.$t("footer.version.modalUpdateStatusStart")+t}},releaseNotesUrl:function(t){return`https://github.com/evcc-io/evcc/releases/tag/${t}`}}},Ba=t=>(Ct("data-v-66915926"),t=t(),St(),t),nP=["href"],rP=Ba(()=>C("shopicon-regular-moonstars",{class:"ms-2 text-gray-light"},null,-1)),iP={key:1,href:"#","data-bs-toggle":"modal","data-bs-target":"#updateModal",class:"btn btn-link ps-0 text-decoration-none evcc-default-text text-nowrap d-flex align-items-end"},sP=Ba(()=>C("shopicon-regular-gift",{class:"me-2"},null,-1)),oP={class:"ms-2 d-none d-xs-block d-sm-none text-decoration-underline"},aP={class:"ms-2 d-none d-sm-block text-gray-medium text-decoration-underline"},lP=["href"],cP={id:"updateModal",class:"modal fade text-dark",tabindex:"-1",role:"dialog","aria-hidden":"true"},uP={class:"modal-dialog modal-dialog-centered modal-dialog-scrollable",role:"document"},fP={class:"modal-content"},dP={class:"modal-header"},hP={class:"modal-title"},mP=Ba(()=>C("button",{type:"button",class:"btn-close","data-bs-dismiss":"modal","aria-label":"Close"},null,-1)),pP={class:"modal-body"},gP={key:0},_P={class:"progress my-3"},vP={key:1},bP=["innerHTML"],yP={key:1},EP=["href"],wP=je(". "),TP={class:"modal-footer d-flex justify-content-between"},CP=["disabled"],SP=["disabled"],AP={key:0},kP=Ba(()=>C("span",{class:"spinner-border spinner-border-sm",role:"status","aria-hidden":"true"},null,-1)),xP={key:1},LP=["href"];function NP(t,e,n,r,i,s){const o=_e("Logo");return $(),W("div",null,[n.commit?($(),W("a",{key:0,href:s.githubHashUrl,target:"_blank",class:"btn btn-link ps-0 text-decoration-none evcc-default-text text-nowrap d-flex align-items-end"},[ie(o,{class:"logo me-2"}),je(" v"+K(n.installed)+" ",1),rP],8,nP)):s.newVersionAvailable?($(),W("button",iP,[sP,je(" v"+K(n.installed)+" ",1),C("span",oP,K(t.$t("footer.version.availableShort")),1),C("span",aP,K(t.$t("footer.version.availableLong")),1)])):($(),W("a",{key:2,href:s.releaseNotesUrl(n.installed),target:"_blank",class:"btn btn-link evcc-default-text ps-0 text-decoration-none text-nowrap d-flex align-items-end"},[ie(o,{class:"logo me-2"}),je(" v"+K(n.installed),1)],8,lP)),($(),Pe(to,{to:"body"},[C("div",cP,[C("div",uP,[C("div",fP,[C("div",dP,[C("h5",hP,K(t.$t("footer.version.modalTitle")),1),mP]),C("div",pP,[t.updateStarted?($(),W("div",gP,[C("p",null,K(t.$t("footer.version.modalUpdateStarted")),1),C("div",_P,[C("div",{class:"progress-bar progress-bar-striped progress-bar-animated",role:"progressbar",style:bt({width:n.uploadProgress+"%"})},null,4)]),C("p",null,K(t.updateStatus)+K(n.uploadMessage),1)])):($(),W("div",vP,[C("p",null,[C("small",null,K(t.$t("footer.version.modalInstalledVersion"))+": "+K(n.installed),1)]),n.releaseNotes?($(),W("div",{key:0,innerHTML:n.releaseNotes},null,8,bP)):($(),W("p",yP,[je(K(t.$t("footer.version.modalNoReleaseNotes"))+" ",1),C("a",{href:s.releaseNotesUrl(n.available)},"GitHub",8,EP),wP]))]))]),C("div",TP,[C("button",{type:"button",class:"btn btn-outline-secondary",disabled:t.updateStarted,"data-bs-dismiss":"modal"},K(t.$t("footer.version.modalCancel")),9,CP),C("div",null,[n.hasUpdater?($(),W("button",{key:0,type:"button",class:"btn btn-primary",disabled:t.updateStarted,onClick:e[0]||(e[0]=(...a)=>s.update&&s.update(...a))},[t.updateStarted?($(),W("span",AP,[kP,je(" "+K(t.$t("footer.version.modalUpdate")),1)])):($(),W("span",xP,K(t.$t("footer.version.modalUpdateNow")),1))],8,SP)):($(),W("a",{key:1,href:s.releaseNotesUrl(n.available),class:"btn btn-primary"},K(t.$t("footer.version.modalDownload")),9,LP))])])])])])]))])}const OP=Ae(tP,[["render",NP],["__scopeId","data-v-66915926"]]);var so={};(function t(e,n,r,i){var s=!!(e.Worker&&e.Blob&&e.Promise&&e.OffscreenCanvas&&e.OffscreenCanvasRenderingContext2D&&e.HTMLCanvasElement&&e.HTMLCanvasElement.prototype.transferControlToOffscreen&&e.URL&&e.URL.createObjectURL);function o(){}function a(I){var P=n.exports.Promise,z=P!==void 0?P:e.Promise;return typeof z=="function"?new z(I):(I(o,o),null)}var l=function(){var I=Math.floor(16.666666666666668),P,z,j={},te=0;return typeof requestAnimationFrame=="function"&&typeof cancelAnimationFrame=="function"?(P=function(se){var le=Math.random();return j[le]=requestAnimationFrame(function fe(ue){te===ue||te+I-1(Ct("data-v-14329210"),t=t(),St(),t),FP={key:0},VP={class:"mb-3"},HP={class:"d-flex justify-content-center align-items-center flex-column flex-lg-row align-items-lg-baseline justify-content-lg-start"},UP=fv(()=>C("shopicon-regular-stars",{class:"me-1 d-inline-block"},null,-1)),BP={href:"https://evcc.io/sticker",target:"_blank",class:"small text-muted ms-lg-3"},jP={key:1},WP={class:"mb-3"},zP={class:"d-flex justify-content-center align-items-center flex-column flex-lg-row align-items-lg-baseline justify-content-lg-start"},KP={target:"_blank",href:"https://github.com/sponsors/andig",class:"btn btn-outline-primary mb-3 become-sponsor"},YP=fv(()=>C("shopicon-regular-heart",{class:"me-1 d-inline-block"},null,-1)),qP={class:"small text-muted text-center ms-lg-3"};function GP(t,e,n,r,i,s){return n.sponsor?($(),W("div",FP,[C("p",VP,K(t.$t("footer.sponsor.thanks",{sponsor:n.sponsor})),1),C("div",HP,[C("button",{ref:"confetti",class:"btn btn btn-outline-primary mb-2 confetti-button bg-evcc rounded",onClick:e[0]||(e[0]=(...o)=>s.surprise&&s.surprise(...o))},[UP,je(" "+K(t.$t("footer.sponsor.confetti")),1)],512),C("a",BP,K(t.$t("footer.sponsor.sticker")),1)])])):($(),W("div",jP,[C("p",WP,K(t.$t("footer.sponsor.supportUs")),1),C("div",zP,[C("a",KP,[YP,je(" "+K(t.$t("footer.sponsor.becomeSponsor")),1)]),C("div",qP,K(t.$t("footer.sponsor.confettiPromise")),1)])]))}const XP=Ae($P,[["render",GP],["__scopeId","data-v-14329210"]]);var QP='';class JP extends HTMLElement{connectedCallback(){this.setAttribute("data-shopicon",!0),this.innerHTML=QP}}window.customElements.define("shopicon-regular-coinjar",JP);var ZP='';class eI extends HTMLElement{connectedCallback(){this.setAttribute("data-shopicon",!0),this.innerHTML=ZP}}window.customElements.define("shopicon-regular-receivepayment",eI);const tI={name:"SavingsTile",props:{title:String,icon:String,value:[String,Number],unit:String,sub1:String,sub2:String}},nI=t=>(Ct("data-v-6871c573"),t=t(),St(),t),rI={class:"flex-grow-1 d-flex mb-4 mb-lg-0 align-items-center align-items-lg-start"},iI={key:0,class:"tile-icon"},sI={key:1,class:"tile-icon"},oI={key:2,class:"tile-icon"},aI={class:"ms-3 d-flex flex-grow-1 d-lg-block align-items-center justify-content-between"},lI={class:"my-0 fw-bold"},cI={class:"d-flex align-items-baseline lh-sm"},uI={class:"fs-1"},fI={class:"ms-1 unit"},dI={class:"d-block mt-0 ms-3 ms-lg-0 text-end text-lg-start flex-grow-1 flex-shrink-1"},hI=nI(()=>C("br",null,null,-1));function mI(t,e,n,r,i,s){return $(),W("div",rI,[n.icon==="sun"?($(),W("shopicon-regular-sun",iI)):Ee("",!0),n.icon==="coinjar"?($(),W("shopicon-regular-coinjar",sI)):Ee("",!0),n.icon==="receivepayment"?($(),W("shopicon-regular-receivepayment",oI)):Ee("",!0),C("div",aI,[C("div",null,[C("p",lI,K(n.title),1),C("strong",cI,[C("span",uI,K(n.value),1),C("span",fI,K(n.unit),1)])]),C("small",dI,[je(K(n.sub1)+" ",1),hI,je(" "+K(n.sub2),1)])])])}const pI=Ae(tI,[["render",mI],["__scopeId","data-v-6871c573"]]),gI={name:"Savings",components:{Sponsor:XP,SavingsTile:pI},mixins:[Nn],props:{selfConsumptionPercent:Number,since:{type:Number,default:0},sponsor:String,amount:{type:Number,default:0},effectivePrice:{type:Number,default:0},totalCharged:{type:Number,default:0},gridCharged:{type:Number,default:0},selfConsumptionCharged:{type:Number,default:0},gridPrice:{type:Number},feedInPrice:{type:Number},currency:String},computed:{percent(){return Math.round(this.selfConsumptionPercent)||0},effectivePriceFormatted(){const[t,e]=this.fmtPricePerKWh(this.effectivePrice,this.currency).split(" ");return{value:t,unit:e}}},methods:{secondsSinceStart(){return this.since*1e3-Date.now()}}},dv=t=>(Ct("data-v-17536c10"),t=t(),St(),t),_I={class:"btn btn-link pe-0 text-decoration-none evcc-default-text text-nowrap d-flex align-items-end","data-bs-toggle":"modal","data-bs-target":"#savingsModal"},vI={class:"d-inline d-sm-none"},bI={class:"d-none d-sm-inline"},yI=dv(()=>C("shopicon-regular-sun",{class:"ms-2 text-evcc"},null,-1)),EI={id:"savingsModal",ref:"modal",class:"modal fade text-dark","data-bs-backdrop":"true",tabindex:"-1",role:"dialog","aria-hidden":"true"},wI={class:"modal-dialog modal-lg modal-dialog-centered modal-dialog-scrollable",role:"document"},TI={class:"modal-content"},CI={class:"modal-header"},SI={class:"modal-title"},AI=dv(()=>C("button",{type:"button",class:"btn-close","data-bs-dismiss":"modal","aria-label":"Close"},null,-1)),kI={class:"modal-body"},xI={class:"d-block d-lg-flex mb-4"};function LI(t,e,n,r,i,s){const o=_e("SavingsTile"),a=_e("Sponsor");return $(),W("div",null,[C("button",_I,[C("span",vI,K(t.$t("footer.savings.footerShort",{percent:s.percent})),1),C("span",bI,K(t.$t("footer.savings.footerLong",{percent:s.percent})),1),yI]),($(),Pe(to,{to:"body"},[C("div",EI,[C("div",wI,[C("div",TI,[C("div",CI,[C("h5",SI,K(t.$t("footer.savings.modalTitle")),1),AI]),C("div",kI,[C("p",null,K(t.$t("footer.savings.sinceServerStart",{since:t.fmtTimeAgo(s.secondsSinceStart())})),1),C("div",xI,[ie(o,{class:"text-accent1",icon:"sun",title:t.$t("footer.savings.percentTitle"),value:s.percent,unit:"%",sub1:t.$t("footer.savings.percentSelf",{self:t.fmtKw(n.selfConsumptionCharged*1e3,!0,!1)}),sub2:t.$t("footer.savings.percentGrid",{grid:t.fmtKw(n.gridCharged*1e3,!0,!1)})},null,8,["title","value","sub1","sub2"]),ie(o,{class:"text-accent2",icon:"receivepayment",title:t.$t("footer.savings.priceTitle"),value:s.effectivePriceFormatted.value,unit:s.effectivePriceFormatted.unit,sub1:t.$t("footer.savings.priceFeedIn",{feedInPrice:t.fmtPricePerKWh(n.feedInPrice,n.currency)}),sub2:t.$t("footer.savings.priceGrid",{gridPrice:t.fmtPricePerKWh(n.gridPrice,n.currency)})},null,8,["title","value","unit","sub1","sub2"]),ie(o,{class:"text-accent3",icon:"coinjar",title:t.$t("footer.savings.savingsTitle"),value:t.fmtMoney(n.amount,n.currency),unit:t.fmtCurrencySymbol(n.currency),sub1:t.$t("footer.savings.savingsComparedToGrid"),sub2:t.$t("footer.savings.savingsTotalEnergy",{total:t.fmtKw(n.totalCharged*1e3,!0,!1)})},null,8,["title","value","unit","sub1","sub2"])]),ie(a,{sponsor:n.sponsor},null,8,["sponsor"])])])])],512)]))])}const NI=Ae(gI,[["render",LI],["__scopeId","data-v-17536c10"]]),OI={name:"Footer",components:{Version:OP,Savings:NI},props:{version:Object,sponsor:String,savings:Object},methods:{toggleHiddenFeatures(){const t=`\u{1F9EA} Experimentelle UI-Elemente ${this.$hiddenFeatures?"deaktivieren":"aktivieren"}`;window.confirm(t)&&(window.localStorage.hidden_features=!this.$hiddenFeatures,window.location.reload())}}},PI={class:"footer"},II={class:"container py-2"},MI={class:"d-flex justify-content-between"};function RI(t,e,n,r,i,s){const o=_e("Version"),a=_e("Savings");return $(),W("footer",PI,[C("div",II,[C("div",MI,[ie(o,sn(Wt(n.version)),null,16),ie(a,zt(n.savings,{sponsor:n.sponsor}),null,16,["sponsor"])])])])}const DI=Ae(OI,[["render",RI]]),$I={name:"Site",components:{Loadpoints:OO,Energyflow:Hh,Footer:DI,OfflineIndicator:$k,Notifications:tx,TopNavigation:Nk,Vehicles:HO},mixins:[Nn,sf],props:{loadpoints:Array,notifications:Array,offline:Boolean,gridConfigured:Boolean,gridPower:Number,homePower:Number,pvConfigured:Boolean,pvPower:Number,batteryConfigured:Boolean,batteryPower:Number,batterySoC:Number,gridCurrents:Array,prioritySoC:Number,siteTitle:String,vehicles:Array,auth:Object,currency:String,savingsAmount:Number,savingsEffectivePrice:Number,savingsGridCharged:Number,savingsSelfConsumptionCharged:Number,savingsSelfConsumptionPercent:Number,savingsSince:Number,savingsTotalCharged:Number,tariffFeedIn:Number,tariffGrid:Number,availableVersion:String,releaseNotes:String,hasUpdater:Boolean,uploadMessage:String,uploadProgress:Number,sponsor:String},computed:{energyflow:function(){return this.collectProps(Hh)},activeLoadpointsCount:function(){return this.loadpoints.filter(t=>t.chargePower>0).length},loadpointsPower:function(){return this.loadpoints.reduce((t,e)=>(t+=e.chargePower||0,t),0)},topNavigation:function(){return{vehicleLogins:this.auth?this.auth.vehicles:{}}},showParkingLot:function(){return!1},footer:function(){return{version:{installed:window.evcc.version,commit:window.evcc.commit,available:this.availableVersion,releaseNotes:this.releaseNotes,hasUpdater:this.hasUpdater,uploadMessage:this.uploadMessage,uploadProgress:this.uploadProgress},sponsor:this.sponsor,savings:{since:this.savingsSince,totalCharged:this.savingsTotalCharged,gridCharged:this.savingsGridCharged,selfConsumptionCharged:this.savingsSelfConsumptionCharged,amount:this.savingsAmount,effectivePrice:this.savingsEffectivePrice,selfConsumptionPercent:this.savingsSelfConsumptionPercent,gridPrice:this.tariffGrid,feedInPrice:this.tariffFeedIn,currency:this.currency}}}}},FI={class:"d-flex flex-column site"},VI={class:"container px-4 top-area"},HI={class:"d-flex justify-content-between align-items-center my-3"},UI={class:"d-block my-0"},BI={class:"d-flex"},jI={class:"d-flex flex-column justify-content-between content-area"};function WI(t,e,n,r,i,s){const o=_e("OfflineIndicator"),a=_e("Notifications"),l=_e("TopNavigation"),c=_e("Energyflow"),u=_e("Loadpoints"),d=_e("Vehicles"),f=_e("Footer");return $(),W("div",FI,[n.offline?($(),Pe(o,{key:0})):Ee("",!0),C("div",VI,[C("div",HI,[C("h1",UI,K(n.siteTitle||"evcc"),1),C("div",BI,[ie(a,{notifications:n.notifications,class:"me-2"},null,8,["notifications"]),ie(l,sn(Wt(s.topNavigation)),null,16)])]),ie(c,sn(Wt(s.energyflow)),null,16)]),C("div",jI,[ie(u,{class:"mt-1 mt-sm-2 flex-grow-1",loadpoints:n.loadpoints,vehicles:n.vehicles},null,8,["loadpoints","vehicles"]),s.showParkingLot?($(),Pe(d,{key:0})):Ee("",!0),ie(f,sn(Wt(s.footer)),null,16)])])}const zI=Ae($I,[["render",WI],["__scopeId","data-v-a9adad8b"]]),KI={name:"Main",components:{Site:zI},props:{notifications:Array,offline:Boolean},data:function(){return fc},computed:{configured:function(){const t=window.evcc.configured;return t==window.evcc.configured||!isNaN(parseInt(t))&&parseInt(t)>0}}},YI={key:1,class:"container"},qI=CT(`Willkommen bei evcc
evcc ist dient zur flexiblen Ladesteuerung von Elektrofahrzeugen.
Es sieht aus, als w\xE4re Dein evcc noch nicht konfiguriert. Um evcc zu konfigurieren sind die folgenden Schritte notwendig:
- Erzeugen einer Konfigurationsdatei mit Namen
evcc.yaml. Die Standardkonfiguration evcc.dist.yaml kann daf\xFCr als Vorlage dienen (Download). - Konfiguration der Wallbox als
chargers. - Konfiguration des EVU Z\xE4hlers und evtl. weiterer Z\xE4hler unter
meters. - Konfiguration des Netzanschlusses unter
site. In einer Site wird der Netzanschluss mit dem konfigurierten EVU Z\xE4hler (meter) verbunden. - Konfiguration eines Ladepunktes unter
loadpoints. In einem Ladepunkt wird die konfigurierte Wallbox (charger) mit dem Ladepunkt verbunden. - Start von evcc mit der neu erstellten Konfiguration:
evcc -c evcc.yaml
Minimale Beispielkonfiguration f\xFCr evcc:
uri: localhost:7070 # Adresse f\xFCr UI
interval: 10s # Regelintervall
meters:
- name: evu-z\xE4hler
@@ -63,17 +63,17 @@ var Iv=Object.defineProperty;var Mv=(t,e,n)=>e in t?Iv(t,e,{enumerable:!0,config
charger: wallbox # charger
meters:
charge: ladez\xE4hler # Ladez\xE4hlers (optional)
-
Viel Spass mit evcc! Bei Problemen kannst Du uns auf GitHub erreichen.
`,1),XI=[GI];function QI(t,e,n,r,i,s){const o=_e("Site");return $(),z("div",null,[s.configured?($(),Pe(o,zt({key:0,notifications:n.notifications,offline:n.offline},t.state),null,16,["notifications","offline"])):($(),z("div",qI,XI))])}const JI=Ae(YI,[["render",QI]]),ZI=rk({history:bA(),routes:[{path:"/",component:JI,props:!0}]});/*!
+
Viel Spass mit evcc! Bei Problemen kannst Du uns auf GitHub erreichen.