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 $(),z("div",CO,[C("div",SO,[($(!0),z(De,null,It(n.loadpoints,(a,l)=>($(),z("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?($(),z("div",AO,[($(!0),z(De,null,It(n.loadpoints,(a,l)=>($(),z("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 $(),z("div",null,[C("div",MO,[C("h2",RO,W(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),z(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 $(),z("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-3d9edeb8"),t=t(),St(),t),nP=["href"],rP=Ba(()=>C("shopicon-regular-moonstars",{class:"ms-2 text-gray-light"},null,-1)),iP={class:"ms-2 text-gray-light d-none d-sm-inline"},sP={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"},oP=Ba(()=>C("shopicon-regular-gift",{class:"me-2 text-evcc"},null,-1)),aP={class:"ms-2 d-none d-xs-block d-sm-none text-decoration-underline"},lP={class:"ms-2 d-none d-sm-block text-gray-medium text-decoration-underline"},cP=["href"],uP={id:"updateModal",class:"modal fade text-dark",tabindex:"-1",role:"dialog","aria-hidden":"true"},fP={class:"modal-dialog modal-dialog-centered modal-dialog-scrollable",role:"document"},dP={class:"modal-content"},hP={class:"modal-header"},mP={class:"modal-title"},pP=Ba(()=>C("button",{type:"button",class:"btn-close","data-bs-dismiss":"modal","aria-label":"Close"},null,-1)),gP={class:"modal-body"},_P={key:0},vP={class:"progress my-3"},bP={key:1},yP=["innerHTML"],EP={key:1},wP=["href"],TP=je(". "),CP={class:"modal-footer d-flex justify-content-between"},SP=["disabled"],AP=["disabled"],kP={key:0},xP=Ba(()=>C("span",{class:"spinner-border spinner-border-sm",role:"status","aria-hidden":"true"},null,-1)),LP={key:1},NP=["href"];function OP(t,e,n,r,i,s){const o=_e("Logo");return $(),z("div",null,[n.commit?($(),z("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"+W(n.installed)+" ",1),rP,C("span",iP,"["+W(n.commit)+"]",1)],8,nP)):s.newVersionAvailable?($(),z("button",sP,[oP,je(" v"+W(n.installed)+" ",1),C("span",aP,W(t.$t("footer.version.availableShort")),1),C("span",lP,W(t.$t("footer.version.availableLong")),1)])):($(),z("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"+W(n.installed),1)],8,cP)),($(),Pe(to,{to:"body"},[C("div",uP,[C("div",fP,[C("div",dP,[C("div",hP,[C("h5",mP,W(t.$t("footer.version.modalTitle")),1),pP]),C("div",gP,[t.updateStarted?($(),z("div",_P,[C("p",null,W(t.$t("footer.version.modalUpdateStarted")),1),C("div",vP,[C("div",{class:"progress-bar progress-bar-striped progress-bar-animated",role:"progressbar",style:bt({width:n.uploadProgress+"%"})},null,4)]),C("p",null,W(t.updateStatus)+W(n.uploadMessage),1)])):($(),z("div",bP,[C("p",null,[C("small",null,W(t.$t("footer.version.modalInstalledVersion"))+": "+W(n.installed),1)]),n.releaseNotes?($(),z("div",{key:0,innerHTML:n.releaseNotes},null,8,yP)):($(),z("p",EP,[je(W(t.$t("footer.version.modalNoReleaseNotes"))+" ",1),C("a",{href:s.releaseNotesUrl(n.available)},"GitHub",8,wP),TP]))]))]),C("div",CP,[C("button",{type:"button",class:"btn btn-outline-secondary",disabled:t.updateStarted,"data-bs-dismiss":"modal"},W(t.$t("footer.version.modalCancel")),9,SP),C("div",null,[n.hasUpdater?($(),z("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?($(),z("span",kP,[xP,je(" "+W(t.$t("footer.version.modalUpdate")),1)])):($(),z("span",LP,W(t.$t("footer.version.modalUpdateNow")),1))],8,AP)):($(),z("a",{key:1,href:s.releaseNotesUrl(n.available),class:"btn btn-primary"},W(t.$t("footer.version.modalDownload")),9,NP))])])])])])]))])}const PP=Ae(tP,[["render",OP],["__scopeId","data-v-3d9edeb8"]]);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,K=P!==void 0?P:e.Promise;return typeof K=="function"?new K(I):(I(o,o),null)}var l=function(){var I=Math.floor(16.666666666666668),P,K,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),VP={key:0},HP={class:"mb-3"},UP={class:"d-flex justify-content-center align-items-center flex-column flex-lg-row align-items-lg-baseline justify-content-lg-start"},BP=fv(()=>C("shopicon-regular-stars",{class:"me-1 d-inline-block"},null,-1)),jP={href:"https://evcc.io/sticker",target:"_blank",class:"small text-muted ms-lg-3"},WP={key:1},zP={class:"mb-3"},KP={class:"d-flex justify-content-center align-items-center flex-column flex-lg-row align-items-lg-baseline justify-content-lg-start"},YP={target:"_blank",href:"https://github.com/sponsors/andig",class:"btn btn-outline-primary mb-3 become-sponsor"},qP=fv(()=>C("shopicon-regular-heart",{class:"me-1 d-inline-block"},null,-1)),GP={class:"small text-muted text-center ms-lg-3"};function XP(t,e,n,r,i,s){return n.sponsor?($(),z("div",VP,[C("p",HP,W(t.$t("footer.sponsor.thanks",{sponsor:n.sponsor})),1),C("div",UP,[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))},[BP,je(" "+W(t.$t("footer.sponsor.confetti")),1)],512),C("a",jP,W(t.$t("footer.sponsor.sticker")),1)])])):($(),z("div",WP,[C("p",zP,W(t.$t("footer.sponsor.supportUs")),1),C("div",KP,[C("a",YP,[qP,je(" "+W(t.$t("footer.sponsor.becomeSponsor")),1)]),C("div",GP,W(t.$t("footer.sponsor.confettiPromise")),1)])]))}const QP=Ae(FP,[["render",XP],["__scopeId","data-v-14329210"]]);var JP='';class ZP extends HTMLElement{connectedCallback(){this.setAttribute("data-shopicon",!0),this.innerHTML=JP}}window.customElements.define("shopicon-regular-coinjar",ZP);var eI='';class tI extends HTMLElement{connectedCallback(){this.setAttribute("data-shopicon",!0),this.innerHTML=eI}}window.customElements.define("shopicon-regular-receivepayment",tI);const nI={name:"SavingsTile",props:{title:String,icon:String,value:[String,Number],unit:String,sub1:String,sub2:String}},rI=t=>(Ct("data-v-6871c573"),t=t(),St(),t),iI={class:"flex-grow-1 d-flex mb-4 mb-lg-0 align-items-center align-items-lg-start"},sI={key:0,class:"tile-icon"},oI={key:1,class:"tile-icon"},aI={key:2,class:"tile-icon"},lI={class:"ms-3 d-flex flex-grow-1 d-lg-block align-items-center justify-content-between"},cI={class:"my-0 fw-bold"},uI={class:"d-flex align-items-baseline lh-sm"},fI={class:"fs-1"},dI={class:"ms-1 unit"},hI={class:"d-block mt-0 ms-3 ms-lg-0 text-end text-lg-start flex-grow-1 flex-shrink-1"},mI=rI(()=>C("br",null,null,-1));function pI(t,e,n,r,i,s){return $(),z("div",iI,[n.icon==="sun"?($(),z("shopicon-regular-sun",sI)):Ee("",!0),n.icon==="coinjar"?($(),z("shopicon-regular-coinjar",oI)):Ee("",!0),n.icon==="receivepayment"?($(),z("shopicon-regular-receivepayment",aI)):Ee("",!0),C("div",lI,[C("div",null,[C("p",cI,W(n.title),1),C("strong",uI,[C("span",fI,W(n.value),1),C("span",dI,W(n.unit),1)])]),C("small",hI,[je(W(n.sub1)+" ",1),mI,je(" "+W(n.sub2),1)])])])}const gI=Ae(nI,[["render",pI],["__scopeId","data-v-6871c573"]]),_I={name:"Savings",components:{Sponsor:QP,SavingsTile:gI},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),vI={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"},bI={class:"d-inline d-sm-none"},yI={class:"d-none d-sm-inline"},EI=dv(()=>C("shopicon-regular-sun",{class:"ms-2 text-evcc"},null,-1)),wI={id:"savingsModal",ref:"modal",class:"modal fade text-dark","data-bs-backdrop":"true",tabindex:"-1",role:"dialog","aria-hidden":"true"},TI={class:"modal-dialog modal-lg modal-dialog-centered modal-dialog-scrollable",role:"document"},CI={class:"modal-content"},SI={class:"modal-header"},AI={class:"modal-title"},kI=dv(()=>C("button",{type:"button",class:"btn-close","data-bs-dismiss":"modal","aria-label":"Close"},null,-1)),xI={class:"modal-body"},LI={class:"d-block d-lg-flex mb-4"};function NI(t,e,n,r,i,s){const o=_e("SavingsTile"),a=_e("Sponsor");return $(),z("div",null,[C("button",vI,[C("span",bI,W(t.$t("footer.savings.footerShort",{percent:s.percent})),1),C("span",yI,W(t.$t("footer.savings.footerLong",{percent:s.percent})),1),EI]),($(),Pe(to,{to:"body"},[C("div",wI,[C("div",TI,[C("div",CI,[C("div",SI,[C("h5",AI,W(t.$t("footer.savings.modalTitle")),1),kI]),C("div",xI,[C("p",null,W(t.$t("footer.savings.sinceServerStart",{since:t.fmtTimeAgo(s.secondsSinceStart())})),1),C("div",LI,[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 OI=Ae(_I,[["render",NI],["__scopeId","data-v-17536c10"]]),PI={name:"Footer",components:{Version:PP,Savings:OI},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())}}},II={class:"footer"},MI={class:"container py-2"},RI={class:"d-flex justify-content-between"};function DI(t,e,n,r,i,s){const o=_e("Version"),a=_e("Savings");return $(),z("footer",II,[C("div",MI,[C("div",RI,[ie(o,sn(Wt(n.version)),null,16),ie(a,zt(n.savings,{sponsor:n.sponsor}),null,16,["sponsor"])])])])}const $I=Ae(PI,[["render",DI]]),FI={name:"Site",components:{Loadpoints:OO,Energyflow:Hh,Footer:$I,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}}}}},VI={class:"d-flex flex-column site"},HI={class:"container px-4 top-area"},UI={class:"d-flex justify-content-between align-items-center my-3"},BI={class:"d-block my-0"},jI={class:"d-flex"},WI={class:"d-flex flex-column justify-content-between content-area"};function zI(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 $(),z("div",VI,[n.offline?($(),Pe(o,{key:0})):Ee("",!0),C("div",HI,[C("div",UI,[C("h1",BI,W(n.siteTitle||"evcc"),1),C("div",jI,[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",WI,[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 KI=Ae(FI,[["render",zI],["__scopeId","data-v-a9adad8b"]]),YI={name:"Main",components:{Site:KI},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}}},qI={key:1,class:"container"},GI=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 $(),Y("div",null,[s.configured?($(),Ve(o,zt({key:0,notifications:n.notifications,offline:n.offline},t.state),null,16,["notifications","offline"])):($(),Y("div",qI,XI))])}const JI=Se(YI,[["render",QI]]),ZI=rx({history:bA(),routes:[{path:"/",component:JI,props:!0}]});/*!
+
Viel Spass mit evcc! Bei Problemen kannst Du uns auf GitHub erreichen.