diff --git a/assets/js/components/Version.vue b/assets/js/components/Version.vue index 56457d31b..cd2838957 100644 --- a/assets/js/components/Version.vue +++ b/assets/js/components/Version.vue @@ -37,88 +37,97 @@ v{{ installed }} -
{{ $t("footer.version.modalUpdateStarted") }}
-{{ updateStatus }}{{ uploadMessage }}
-- - {{ $t("footer.version.modalInstalledVersion") }}: - {{ installed }} - -
- - - -- {{ $t("footer.version.modalNoReleaseNotes") }} - GitHub. -
-{{ $t("footer.version.modalUpdateStarted") }}
+{{ updateStatus }}{{ uploadMessage }}
++ + {{ $t("footer.version.modalInstalledVersion") }}: + {{ installed }} + +
+ + + ++ {{ $t("footer.version.modalNoReleaseNotes") }} + GitHub. +
+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:
evcc.yaml. Die Standardkonfiguration evcc.dist.yaml kann daf\xFCr als Vorlage dienen (Download). chargers.meters. site. In einer Site wird der Netzanschluss mit dem konfigurierten EVU Z\xE4hler (meter) verbunden. loadpoints. In einem Ladepunkt wird die konfigurierte Wallbox (charger) mit dem Ladepunkt verbunden. evcc -c evcc.yamlMinimale Beispielkonfiguration f\xFCr evcc:
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: Minimale Beispielkonfiguration f\xFCr evcc: Viel Spass mit evcc! Bei Problemen kannst Du uns auf GitHub erreichen. uri: localhost:7070 # Adresse f\xFCr UI
+ ${e.fmtShortDurationUnit(s.chargeDurationInterpolated)}`},null,8,["label","value"]))]),se(c,Mt(i.vehicle,{onTargetSocUpdated:i.setTargetSoC,onTargetTimeUpdated:i.setTargetTime,onTargetTimeRemoved:i.removeTargetTime}),null,16,["onTargetSocUpdated","onTargetTimeUpdated","onTargetTimeRemoved"])])}var Vk=Ie(Nk,[["render",jk],["__scopeId","data-v-5164c12c"]]);const Uk={name:"Site",components:{Loadpoint:Vk},mixins:[yr],props:{loadpoints:Array},data(){return{selectedIndex:0,snapTimeout:null}},mounted(){this.$refs.carousel.addEventListener("scroll",this.handleCarouselScroll,!1)},unmounted(){this.$refs.carousel.removeEventListener("scroll",this.handleCarouselScroll)},methods:{handleCarouselScroll(){const{scrollLeft:e}=this.$refs.carousel,{offsetWidth:t}=this.$refs.carousel.children[0];this.selectedIndex=Math.round((e-7.5)/t)},selected(e){return this.selectedIndex===e},scrollTo(e){if(this.selectedIndex===e)return;this.selectedIndex=e;const t=this.$refs.carousel,n=t.children[0].offsetWidth;t.style.scrollSnapType="none",t.scrollTo({top:0,left:7.5+n*e,behavior:"smooth"}),clearTimeout(this.snapTimeout),this.snapTimeout=setTimeout(()=>{this.$refs.carousel.style.scrollSnapType="x mandatory"},1e3)}}},Wk=e=>(Ft("data-v-34f3ca44"),e=e(),Ht(),e),zk={class:"container container--loadpoint px-0 mb-md-2 d-flex flex-column justify-content-center"},Kk={ref:"carousel",class:"carousel d-lg-flex flex-wrap"},Yk={key:0,class:"d-flex d-lg-none justify-content-center"},qk=["onClick"],Gk=Wk(()=>T("shopicon-filled-circle",{class:"indicator-icon"},null,-1)),Xk=[Gk];function Jk(e,t,n,r,s,i){const o=Ce("Loadpoint");return V(),Y("div",zk,[T("div",Kk,[(V(!0),Y(Pe,null,Zt(n.loadpoints,(a,l)=>(V(),Y("div",{key:l,class:"flex-grow-1 mb-3 m-lg-0 p-lg-0"},[se(o,Mt(a,{id:l,class:["h-100",{"loadpoint-unselected":!i.selected(l)}],onClick:c=>i.scrollTo(l)}),null,16,["id","class","onClick"])]))),128))],512),n.loadpoints.length>1?(V(),Y("div",Yk,[(V(!0),Y(Pe,null,Zt(n.loadpoints,(a,l)=>(V(),Y("button",{key:l,class:xe(["btn btn-sm btn-link p-0 mx-1 indicator d-flex justify-content-center align-items-center text-white",{"indicator--selected":i.selected(l)}]),onClick:c=>i.scrollTo(l)},Xk,10,qk))),128))])):Ne("",!0)])}var Qk=Ie(Uk,[["render",Jk],["__scopeId","data-v-34f3ca44"]]),Zk='';class eO extends HTMLElement{connectedCallback(){this.setAttribute("data-shopicon",!0),this.innerHTML=Zk}}window.customElements.define("shopicon-regular-refresh",eO);const tO={name:"Vehicles",components:{Vehicle:sl},mixins:[yr],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)}}},nO=e=>(Ft("data-v-62696742"),e=e(),Ht(),e),rO={class:"container px-4 mb-3 mb-sm-4 d-flex justify-content-start align-items-center"},sO={class:"m-0"},iO=["disabled"],oO=nO(()=>T("shopicon-regular-refresh",{class:"refresh-icon"},null,-1)),aO=[oO];function lO(e,t,n,r,s,i){const o=Ce("Vehicle");return V(),Y("div",null,[T("div",rO,[T("h2",sO,K(e.$t("main.vehicles")),1),T("button",{class:xe(["btn btn-link d-flex text-white p-2 ms-1 refresh",{"refresh--in-progress":s.refreshing}]),disabled:s.refreshing,onClick:t[0]||(t[0]=(...a)=>i.refresh&&i.refresh(...a))},aO,10,iO)]),T("div",{class:xe(["container vehicles px-0 mb-5",`vehicles-${s.vehicles.length}`])},[(V(!0),Y(Pe,null,Zt(s.vehicles,(a,l)=>(V(),qe(o,Mt(a,{id:`vehicle_${l}`,key:l,class:"vehicle",parked:""}),null,16,["id"]))),128))],2)])}var cO=Ie(tO,[["render",lO],["__scopeId","data-v-62696742"]]),uO='';class fO extends HTMLElement{connectedCallback(){this.setAttribute("data-shopicon",!0),this.innerHTML=uO}}window.customElements.define("shopicon-filled-testtube",fO);const dO={name:"Logo"},hO={viewBox:"0 0 122 35",xmlns:"http://www.w3.org/2000/svg","fill-rule":"evenodd","clip-rule":"evenodd","stroke-linejoin":"round","stroke-miterlimit":"2"},mO=T("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","fill-rule":"nonzero"},null,-1),pO=T("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),gO=T("path",{fill:"none",d:"M-24.458-22.109h170v76h-170z"},null,-1),_O=[mO,pO,gO];function vO(e,t,n,r,s,i){return V(),Y("svg",hO,_O)}var bO=Ie(dO,[["render",vO]]),yO='';class EO extends HTMLElement{connectedCallback(){this.setAttribute("data-shopicon",!0),this.innerHTML=yO}}window.customElements.define("shopicon-regular-gift",EO);var wO='';class TO extends HTMLElement{connectedCallback(){this.setAttribute("data-shopicon",!0),this.innerHTML=wO}}window.customElements.define("shopicon-regular-moonstars",TO);const SO={name:"Version",components:{Logo:bO},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 er.post("update"),this.updateStatus=this.$t("footer.version.modalUpdateStatusStart"),this.updateStarted=!0}catch(e){this.updateStatus=this.$t("footer.version.modalUpdateStatusStart")+e}},releaseNotesUrl:function(e){return`https://github.com/evcc-io/evcc/releases/tag/${e}`}}},zo=e=>(Ft("data-v-6cabf4ac"),e=e(),Ht(),e),CO=["href"],AO=zo(()=>T("shopicon-regular-moonstars",{class:"ms-2 text-gray-light"},null,-1)),kO={class:"ms-2 text-gray-light d-none d-sm-inline"},OO={key:1,href:"#","data-bs-toggle":"modal","data-bs-target":"#updateModal",class:"btn btn-link ps-0 text-decoration-none text-white text-nowrap d-flex align-items-end"},LO=zo(()=>T("shopicon-regular-gift",{class:"me-2 text-evcc"},null,-1)),NO={class:"ms-2 d-none d-xs-block d-sm-none text-decoration-underline"},$O={class:"ms-2 d-none d-sm-block text-gray-medium text-decoration-underline"},PO=["href"],xO={id:"updateModal",class:"modal fade text-dark",tabindex:"-1",role:"dialog","aria-hidden":"true"},IO={class:"modal-dialog modal-dialog-centered modal-dialog-scrollable",role:"document"},MO={class:"modal-content"},RO={class:"modal-header"},DO={class:"modal-title"},FO=zo(()=>T("button",{type:"button",class:"btn-close","data-bs-dismiss":"modal","aria-label":"Close"},null,-1)),HO={class:"modal-body"},BO={key:0},jO={class:"progress my-3"},VO={key:1},UO=["innerHTML"],WO={key:1},zO=["href"],KO=Re(". "),YO={class:"modal-footer d-flex justify-content-between"},qO=["disabled"],GO=["disabled"],XO={key:0},JO=zo(()=>T("span",{class:"spinner-border spinner-border-sm",role:"status","aria-hidden":"true"},null,-1)),QO={key:1},ZO=["href"];function eL(e,t,n,r,s,i){const o=Ce("Logo");return V(),Y("div",null,[n.commit?(V(),Y("a",{key:0,href:i.githubHashUrl,target:"_blank",class:"btn btn-link ps-0 text-decoration-none text-white text-nowrap d-flex align-items-end"},[se(o,{class:"logo me-2"}),Re(" v"+K(n.installed)+" ",1),AO,T("span",kO,"["+K(n.commit)+"]",1)],8,CO)):i.newVersionAvailable?(V(),Y("button",OO,[LO,Re(" v"+K(n.installed)+" ",1),T("span",NO,K(e.$t("footer.version.availableShort")),1),T("span",$O,K(e.$t("footer.version.availableLong")),1)])):(V(),Y("a",{key:2,href:i.releaseNotesUrl(n.installed),target:"_blank",class:"btn btn-link text-white ps-0 text-decoration-none text-nowrap d-flex align-items-end"},[se(o,{class:"logo me-2"}),Re(" v"+K(n.installed),1)],8,PO)),(V(),qe(hi,{to:"body"},[T("div",xO,[T("div",IO,[T("div",MO,[T("div",RO,[T("h5",DO,K(e.$t("footer.version.modalTitle")),1),FO]),T("div",HO,[e.updateStarted?(V(),Y("div",BO,[T("p",null,K(e.$t("footer.version.modalUpdateStarted")),1),T("div",jO,[T("div",{class:"progress-bar progress-bar-striped progress-bar-animated",role:"progressbar",style:Ke({width:n.uploadProgress+"%"})},null,4)]),T("p",null,K(e.updateStatus)+K(n.uploadMessage),1)])):(V(),Y("div",VO,[T("p",null,[T("small",null,K(e.$t("footer.version.modalInstalledVersion"))+": "+K(n.installed),1)]),n.releaseNotes?(V(),Y("div",{key:0,innerHTML:n.releaseNotes},null,8,UO)):(V(),Y("p",WO,[Re(K(e.$t("footer.version.modalNoReleaseNotes"))+" ",1),T("a",{href:i.releaseNotesUrl(n.available)},"GitHub",8,zO),KO]))]))]),T("div",YO,[T("button",{type:"button",class:"btn btn-outline-secondary",disabled:e.updateStarted,"data-bs-dismiss":"modal"},K(e.$t("footer.version.modalCancel")),9,qO),T("div",null,[n.hasUpdater?(V(),Y("button",{key:0,type:"button",class:"btn btn-primary",disabled:e.updateStarted,onClick:t[0]||(t[0]=(...a)=>i.update&&i.update(...a))},[e.updateStarted?(V(),Y("span",XO,[JO,Re(" "+K(e.$t("footer.version.modalUpdate")),1)])):(V(),Y("span",QO,K(e.$t("footer.version.modalUpdateNow")),1))],8,GO)):(V(),Y("a",{key:1,href:i.releaseNotesUrl(n.available),class:"btn btn-primary"},K(e.$t("footer.version.modalDownload")),9,ZO))])])])])])]))])}var tL=Ie(SO,[["render",eL],["__scopeId","data-v-6cabf4ac"]]),mi={};(function e(t,n,r,s){var i=!!(t.Worker&&t.Blob&&t.Promise&&t.OffscreenCanvas&&t.OffscreenCanvasRenderingContext2D&&t.HTMLCanvasElement&&t.HTMLCanvasElement.prototype.transferControlToOffscreen&&t.URL&&t.URL.createObjectURL);function o(){}function a(P){var x=n.exports.Promise,Z=x!==void 0?x:t.Promise;return typeof Z=="function"?new Z(P):(P(o,o),null)}var l=function(){var P=Math.floor(16.666666666666668),x,Z,ee={},oe=0;return typeof requestAnimationFrame=="function"&&typeof cancelAnimationFrame=="function"?(x=function(le){var ue=Math.random();return ee[ue]=requestAnimationFrame(function pe(ve){oe===ve||oe+P-1evcc.yaml. Die Standardkonfiguration evcc.dist.yaml kann daf\xFCr als Vorlage dienen (Download). chargers.meters. site. In einer Site wird der Netzanschluss mit dem konfigurierten EVU Z\xE4hler (meter) verbunden. loadpoints. In einem Ladepunkt wird die konfigurierte Wallbox (charger) mit dem Ladepunkt verbunden. evcc -c evcc.yaml uri: localhost:7070 # Adresse f\xFCr UI
interval: 10s # Regelintervall
meters:
- name: evu-z\xE4hler
@@ -50,7 +50,7 @@ var ng=Object.defineProperty,rg=Object.defineProperties;var sg=Object.getOwnProp
charger: wallbox # charger
meters:
charge: ladez\xE4hler # Ladez\xE4hlers (optional)
-
Viel Spass mit evcc! Bei Problemen kannst Du uns auf GitHub erreichen.