From fa257fe132e75a3c9b60cc0972741462699799ae Mon Sep 17 00:00:00 2001 From: Lutz Bender Date: Tue, 10 Sep 2024 12:54:52 +0200 Subject: [PATCH] build settings --- .../assets/{ChargeLog-582cb159.js => ChargeLog-d71ce4c1.js} | 2 +- ...allation-6bdc7310.js => ChargePointInstallation-66ab99c9.js} | 2 +- web/settings/assets/{Chart-3fbd17e3.js => Chart-53af13b6.js} | 2 +- .../assets/{CloudConfig-2dc63c4a.js => CloudConfig-28061265.js} | 2 +- web/settings/assets/DataManagement-8e5bac9a.js | 1 - web/settings/assets/DataManagement-f4b0feef.js | 1 + .../assets/{DebugConfig-c12bb15b.js => DebugConfig-957ac5e2.js} | 2 +- web/settings/assets/GeneralChargeConfig-7e106509.js | 1 - web/settings/assets/GeneralChargeConfig-be9fdbc5.js | 1 + .../{GeneralConfig-9cb055aa.js => GeneralConfig-aecc1081.js} | 2 +- ...nstallation-b6072dfb.js => HardwareInstallation-912044d0.js} | 2 +- ...nstallAssistant-3b33de2f.js => InstallAssistant-d68215c6.js} | 2 +- ...stantStep0-00bfcb75.js => InstallAssistantStep0-e814ffaf.js} | 2 +- ...stantStep1-e96672e3.js => InstallAssistantStep1-82e8d797.js} | 2 +- ...antStep10-509dd8d5.js => InstallAssistantStep10-4b6a0cf4.js} | 2 +- ...stantStep2-d28f6b53.js => InstallAssistantStep2-fcfe7b66.js} | 2 +- ...stantStep3-0b86cf0f.js => InstallAssistantStep3-77359403.js} | 2 +- ...stantStep4-cb68c0eb.js => InstallAssistantStep4-d653e2b0.js} | 2 +- ...stantStep5-411e6e9d.js => InstallAssistantStep5-554bfc9c.js} | 2 +- ...stantStep6-cd1941b1.js => InstallAssistantStep6-a19e04f9.js} | 2 +- ...stantStep7-6d705988.js => InstallAssistantStep7-f896ccc9.js} | 2 +- ...stantStep8-e7350c4d.js => InstallAssistantStep8-86a4cd0e.js} | 2 +- ...stantStep9-ac8d21eb.js => InstallAssistantStep9-4da82ba8.js} | 2 +- ...ate-e18733fc.js => InstallAssistantStepTemplate-0f7d9f62.js} | 2 +- ...ChargeConfig-252a508f.js => InstantChargeConfig-17057c0d.js} | 2 +- .../{LegalSettings-f66efb7a.js => LegalSettings-7d6a7592.js} | 2 +- web/settings/assets/LoadManagementConfig-380e9c4d.js | 1 + web/settings/assets/LoadManagementConfig-ad848400.js | 1 - ...qttBridgeConfig-a79c288e.js => MqttBridgeConfig-b16c88cd.js} | 2 +- ...nalComponents-5a24a6aa.js => OptionalComponents-4599d69d.js} | 2 +- .../{PVChargeConfig-260d31b6.js => PVChargeConfig-d62a1759.js} | 2 +- ...argeConfig-b2a3d789.js => ScheduledChargeConfig-a3ebfb4e.js} | 2 +- web/settings/assets/{Status-d562c100.js => Status-3ed5f34f.js} | 2 +- .../assets/{Support-56e00a88.js => Support-1d4bc359.js} | 2 +- web/settings/assets/{System-5f853f95.js => System-4ed50969.js} | 2 +- .../{TestingStore-5dd38b00.js => TestingStore-5a64ca39.js} | 2 +- ...imeChargeConfig-7d17c070.js => TimeChargeConfig-b85503dd.js} | 2 +- web/settings/assets/VehicleConfig-99736f29.js | 1 + web/settings/assets/VehicleConfig-c67651ce.js | 1 - web/settings/assets/device-26a38357.js | 1 + web/settings/assets/device-6454a372.js | 1 - web/settings/assets/device-7c73cd7c.js | 1 + web/settings/assets/device-a7f7c6ed.js | 1 - ...ricity_tariff-b90a64df.js => electricity_tariff-5204ab68.js} | 2 +- web/settings/assets/{index-ba5cf04c.js => index-88a2073c.js} | 2 +- .../assets/{vehicle-5eb1661e.js => vehicle-ef8ce1de.js} | 2 +- web/settings/assets/vehicle-fc0096d3.js | 1 + web/settings/index.html | 2 +- 48 files changed, 42 insertions(+), 41 deletions(-) rename web/settings/assets/{ChargeLog-582cb159.js => ChargeLog-d71ce4c1.js} (99%) rename web/settings/assets/{ChargePointInstallation-6bdc7310.js => ChargePointInstallation-66ab99c9.js} (99%) rename web/settings/assets/{Chart-3fbd17e3.js => Chart-53af13b6.js} (99%) rename web/settings/assets/{CloudConfig-2dc63c4a.js => CloudConfig-28061265.js} (99%) delete mode 100644 web/settings/assets/DataManagement-8e5bac9a.js create mode 100644 web/settings/assets/DataManagement-f4b0feef.js rename web/settings/assets/{DebugConfig-c12bb15b.js => DebugConfig-957ac5e2.js} (98%) delete mode 100644 web/settings/assets/GeneralChargeConfig-7e106509.js create mode 100644 web/settings/assets/GeneralChargeConfig-be9fdbc5.js rename web/settings/assets/{GeneralConfig-9cb055aa.js => GeneralConfig-aecc1081.js} (99%) rename web/settings/assets/{HardwareInstallation-b6072dfb.js => HardwareInstallation-912044d0.js} (99%) rename web/settings/assets/{InstallAssistant-3b33de2f.js => InstallAssistant-d68215c6.js} (69%) rename web/settings/assets/{InstallAssistantStep0-00bfcb75.js => InstallAssistantStep0-e814ffaf.js} (95%) rename web/settings/assets/{InstallAssistantStep1-e96672e3.js => InstallAssistantStep1-82e8d797.js} (89%) rename web/settings/assets/{InstallAssistantStep10-509dd8d5.js => InstallAssistantStep10-4b6a0cf4.js} (92%) rename web/settings/assets/{InstallAssistantStep2-d28f6b53.js => InstallAssistantStep2-fcfe7b66.js} (89%) rename web/settings/assets/{InstallAssistantStep3-0b86cf0f.js => InstallAssistantStep3-77359403.js} (92%) rename web/settings/assets/{InstallAssistantStep4-cb68c0eb.js => InstallAssistantStep4-d653e2b0.js} (92%) rename web/settings/assets/{InstallAssistantStep5-411e6e9d.js => InstallAssistantStep5-554bfc9c.js} (93%) rename web/settings/assets/{InstallAssistantStep6-cd1941b1.js => InstallAssistantStep6-a19e04f9.js} (94%) rename web/settings/assets/{InstallAssistantStep7-6d705988.js => InstallAssistantStep7-f896ccc9.js} (93%) rename web/settings/assets/{InstallAssistantStep8-e7350c4d.js => InstallAssistantStep8-86a4cd0e.js} (93%) rename web/settings/assets/{InstallAssistantStep9-ac8d21eb.js => InstallAssistantStep9-4da82ba8.js} (91%) rename web/settings/assets/{InstallAssistantStepTemplate-e18733fc.js => InstallAssistantStepTemplate-0f7d9f62.js} (97%) rename web/settings/assets/{InstantChargeConfig-252a508f.js => InstantChargeConfig-17057c0d.js} (96%) rename web/settings/assets/{LegalSettings-f66efb7a.js => LegalSettings-7d6a7592.js} (97%) create mode 100644 web/settings/assets/LoadManagementConfig-380e9c4d.js delete mode 100644 web/settings/assets/LoadManagementConfig-ad848400.js rename web/settings/assets/{MqttBridgeConfig-a79c288e.js => MqttBridgeConfig-b16c88cd.js} (99%) rename web/settings/assets/{OptionalComponents-5a24a6aa.js => OptionalComponents-4599d69d.js} (99%) rename web/settings/assets/{PVChargeConfig-260d31b6.js => PVChargeConfig-d62a1759.js} (99%) rename web/settings/assets/{ScheduledChargeConfig-b2a3d789.js => ScheduledChargeConfig-a3ebfb4e.js} (97%) rename web/settings/assets/{Status-d562c100.js => Status-3ed5f34f.js} (99%) rename web/settings/assets/{Support-56e00a88.js => Support-1d4bc359.js} (98%) rename web/settings/assets/{System-5f853f95.js => System-4ed50969.js} (98%) rename web/settings/assets/{TestingStore-5dd38b00.js => TestingStore-5a64ca39.js} (99%) rename web/settings/assets/{TimeChargeConfig-7d17c070.js => TimeChargeConfig-b85503dd.js} (96%) create mode 100644 web/settings/assets/VehicleConfig-99736f29.js delete mode 100644 web/settings/assets/VehicleConfig-c67651ce.js create mode 100644 web/settings/assets/device-26a38357.js delete mode 100644 web/settings/assets/device-6454a372.js create mode 100644 web/settings/assets/device-7c73cd7c.js delete mode 100644 web/settings/assets/device-a7f7c6ed.js rename web/settings/assets/{electricity_tariff-b90a64df.js => electricity_tariff-5204ab68.js} (97%) rename web/settings/assets/{index-ba5cf04c.js => index-88a2073c.js} (96%) rename web/settings/assets/{vehicle-5eb1661e.js => vehicle-ef8ce1de.js} (97%) create mode 100644 web/settings/assets/vehicle-fc0096d3.js diff --git a/web/settings/assets/ChargeLog-582cb159.js b/web/settings/assets/ChargeLog-d71ce4c1.js similarity index 99% rename from web/settings/assets/ChargeLog-582cb159.js rename to web/settings/assets/ChargeLog-d71ce4c1.js index ee414842e7..d5f1d6cd09 100644 --- a/web/settings/assets/ChargeLog-582cb159.js +++ b/web/settings/assets/ChargeLog-d71ce4c1.js @@ -1,3 +1,3 @@ -import{l as R,T as k,U as x,F as S}from"./vendor-fortawesome-71546160.js";import{_ as B,a1 as E,u as h,k as g,l as _,x as i,D as d,N as s,A as I,B as V,y as c,z as n,M as u,q as w,S as W,U as F}from"./vendor-f2b8aa6f.js";import{C as T}from"./index-ba5cf04c.js";import"./vendor-sortablejs-2f1828d0.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";R.add(k,x);const U={name:"OpenwbChargeLogView",components:{Vue3TableLite:E,FontAwesomeIcon:S},mixins:[T],emits:["sendCommand"],data(){return{dateTimeFormat:new Intl.DateTimeFormat("de-DE",{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:[],rfid:[],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},downloadUrl(){const t=parseInt(location.port)||(location.protocol=="https:"?443:80);return`${location.protocol}//${location.hostname}:${t}/openWB/web/settings/downloadChargeLog.php`+`?year=${this.chargeLogRequestData.year}&month=${this.chargeLogRequestData.month}`},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 R,T as k,U as x,F as S}from"./vendor-fortawesome-71546160.js";import{_ as B,a1 as E,u as h,k as g,l as _,x as i,D as d,N as s,A as I,B as V,y as c,z as n,M as u,q as w,S as W,U as F}from"./vendor-f2b8aa6f.js";import{C as T}from"./index-88a2073c.js";import"./vendor-sortablejs-2f1828d0.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";R.add(k,x);const U={name:"OpenwbChargeLogView",components:{Vue3TableLite:E,FontAwesomeIcon:S},mixins:[T],emits:["sendCommand"],data(){return{dateTimeFormat:new Intl.DateTimeFormat("de-DE",{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:[],rfid:[],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},downloadUrl(){const t=parseInt(location.port)||(location.protocol=="https:"?443:80);return`${location.protocol}//${location.hostname}:${t}/openWB/web/settings/downloadChargeLog.php`+`?year=${this.chargeLogRequestData.year}&month=${this.chargeLogRequestData.month}`},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,p]of Object.entries(t)){let l=parseInt(o.match(/\/([0-9]+)\/name$/)[1]);e.push({value:l,text:p})}return e}},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"Standby":return"bg-secondary";case"Stop":return"bg-dark";default:return console.warn("unknown charge mode:",t),"bg-light"}}},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()}},y=t=>(W("data-v-8607e7e7"),t=t(),F(),t),M={class:"chargeLog"},P={name:"chargeLogForm"},z=["href"],O={key:1},A={class:"td-end"},Z={class:"td-end"},j=["title"],K=["aria-valuenow"],J=["aria-valuenow"],G=["aria-valuenow"],H=["aria-valuenow"],Q={key:1,class:"td-center"},Y={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"},ie={class:"no-wrap"},se={class:"no-wrap"},oe={class:"td-end"},ne={class:"td-end"},le={key:0},de={class:"row justify-content-center"},ce={class:"hide",ref:"downloadChargeLogLink"},he=y(()=>i("div",{class:"row"},[i("div",{class:"col"},[i("h2",null,"Summe")])],-1)),ge={class:"td-end"},_e={class:"td-end"},ue={class:"td-end"},me={class:"td-end"};function pe(t,e,o,p,l,r){const C=h("openwb-base-text-input"),f=h("font-awesome-icon"),D=h("openwb-base-button-group-input"),m=h("openwb-base-select-input"),q=h("openwb-base-array-input"),v=h("openwb-base-card"),b=h("openwb-base-alert"),L=h("vue3-table-lite"),N=h("openwb-base-click-button");return g(),_("div",M,[i("form",P,[d(v,{title:"Filter"},{default:s(()=>[d(C,{title:"Zeitraum",subtype:"month",min:"2018-01",showQuickButtons:!0,max:l.currentMonth,modelValue:r.chargeLogDate,"onUpdate:modelValue":[e[0]||(e[0]=a=>r.chargeLogDate=a),e[1]||(e[1]=a=>r.requestChargeLog())]},null,8,["max","modelValue"]),d(v,{title:"Erweiterte Optionen",collapsible:!0,collapsed:!0},{header:s(()=>[d(f,{"fixed-width":"",icon:["fas","filter"]}),c(" Erweiterte Optionen ")]),default:s(()=>[d(D,{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"}],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())]},null,8,["modelValue"]),d(m,{title:"Lademodus",multiple:"",options:r.chargeModeList,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())]},{help:s(()=>[c(" Es können mehrere Elemente ausgewählt werden. ")]),_:1},8,["options","modelValue"]),d(m,{title:"Ladepunkt",multiple:"",options:r.chargePointList,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())]},{help:s(()=>[c(" Es können mehrere Elemente ausgewählt werden. ")]),_:1},8,["options","modelValue"]),d(m,{title:"Fahrzeug",multiple:"",options:r.vehicleList,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())]},{help:s(()=>[c(" Es können mehrere Elemente ausgewählt werden. ")]),_:1},8,["options","modelValue"]),d(q,{title:"ID-Tags",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())]},{help:s(()=>[c(" Es können mehrere Tags als Filter verwendet werden. ")]),_:1},8,["modelValue"])]),_:1})]),_:1}),d(b,{subtype:"info"},{default:s(()=>[c(" Das komplette Ladeprotokoll kann automatisiert über folgende URL abgerufen werden: "),i("a",{href:r.downloadUrl},n(r.downloadUrl),9,z)]),_:1}),r.chargeLogRead?(g(),_("div",O,[d(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:s(a=>[c(n(r.dashIfNotSet(a.value.time_begin)),1)]),time_end:s(a=>[c(n(r.dashIfNotSet(a.value.time_end)),1)]),time_time_charged:s(a=>[i("div",A,n(a.value.time_time_charged),1)]),data_costs:s(a=>[i("div",Z,n(r.formatCosts(a.value.data_costs)),1)]),data_power_source:s(a=>[a.value.data_power_source?(g(),_("div",{key:0,class:"progress td-center",title:r.getProgressTitle(a.value.data_power_source)},[i("div",{class:"progress-bar bg-danger",role:"progressbar",style:u({width:a.value.data_power_source.grid+"%"}),"aria-valuenow":a.value.data_power_source.grid,"aria-valuemin":"0","aria-valuemax":"100"},null,12,K),i("div",{class:"progress-bar bg-primary",role:"progressbar",style:u({width:a.value.data_power_source.cp+"%"}),"aria-valuenow":a.value.data_power_source.cp,"aria-valuemin":"0","aria-valuemax":"100"},null,12,J),i("div",{class:"progress-bar bg-warning",role:"progressbar",style:u({width:a.value.data_power_source.bat+"%"}),"aria-valuenow":a.value.data_power_source.bat,"aria-valuemin":"0","aria-valuemax":"100"},null,12,G),i("div",{class:"progress-bar bg-success",role:"progressbar",style:u({width:a.value.data_power_source.pv+"%"}),"aria-valuenow":a.value.data_power_source.pv,"aria-valuemin":"0","aria-valuemax":"100"},null,12,H)],8,j)):(g(),_("div",Q,"-"))]),vehicle_chargemode:s(a=>[i("div",{class:w(["td-center tag",r.getChargeModeClass(a.value.vehicle_chargemode)])},n(a.value.vehicle_chargemode),3)]),vehicle_prio:s(a=>[i("div",{class:w(["td-center tag",a.value.vehicle_prio?"bg-success":"bg-danger"])},n(r.formatBool(a.value.vehicle_prio)),3)]),vehicle_rfid:s(a=>[c(n(r.dashIfNotSet(a.value.vehicle_rfid)),1)]),vehicle_soc_at_start:s(a=>[i("div",Y,[i("span",X,n(r.formatSoc(a.value.vehicle_soc_at_start)),1),i("span",$," ("+n(r.formatRange(a.value.vehicle_range_at_start))+") ",1)])]),vehicle_soc_at_end:s(a=>[i("div",ee,[i("span",te,n(r.formatSoc(a.value.vehicle_soc_at_end)),1),i("span",ae," ("+n(r.formatRange(a.value.vehicle_range_at_end))+") ",1)])]),chargepoint_name:s(a=>[c(n(r.dashIfNotSet(a.value.chargepoint_name)),1)]),chargepoint_serial_number:s(a=>[c(n(r.dashIfNotSet(a.value.chargepoint_serial_number)),1)]),data_imported_since_mode_switch:s(a=>[i("div",re,[i("span",ie,n(r.formatWh(a.value.data_imported_since_mode_switch)),1),i("span",se," ("+n(r.formatRange(a.value.data_range_charged))+") ",1)])]),chargepoint_imported_at_start:s(a=>[i("div",oe,n(r.formatWh(a.value.chargepoint_imported_at_start)),1)]),chargepoint_imported_at_end:s(a=>[i("div",ne,n(r.formatWh(a.value.chargepoint_imported_at_end)),1)]),_:1},8,["columns","rows","total","sortable","messages","page-options"]),r.totalRecordCount>0?(g(),_("div",le,[i("div",de,[d(N,{class:"col-4 btn-success",onButtonClicked:e[12]||(e[12]=a=>r.downloadChargeLog())},{default:s(()=>[c(" Als CSV exportieren "),d(f,{"fixed-width":"",icon:["fas","download"]})]),_:1}),i("a",ce,null,512)]),he,d(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:s(a=>[i("div",ge,n(a.value.time_charged),1)]),imported_since_mode_switch:s(a=>[i("div",_e,n(r.formatWh(a.value.imported_since_mode_switch)),1)]),range_charged:s(a=>[i("div",ue,n(r.formatRange(a.value.range_charged)),1)]),costs:s(a=>[i("div",me,n(r.formatCosts(a.value.costs)),1)]),_:1},8,["columns","rows"])])):V("",!0)])):(g(),I(b,{key:0,subtype:"info"},{default:s(()=>[c(" Es wurden noch keine Daten abgerufen. ")]),_:1}))])])}const qe=B(U,[["render",pe],["__scopeId","data-v-8607e7e7"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ChargeLog.vue"]]);export{qe as default}; diff --git a/web/settings/assets/ChargePointInstallation-6bdc7310.js b/web/settings/assets/ChargePointInstallation-66ab99c9.js similarity index 99% rename from web/settings/assets/ChargePointInstallation-6bdc7310.js rename to web/settings/assets/ChargePointInstallation-66ab99c9.js index 05878b374d..2258aaae91 100644 --- a/web/settings/assets/ChargePointInstallation-6bdc7310.js +++ b/web/settings/assets/ChargePointInstallation-66ab99c9.js @@ -1 +1 @@ -import{l as G,d as Q,a0 as X,A as Y,a9 as K,aa as ee,K as te,ab as ne,F as ae,I as oe}from"./vendor-fortawesome-71546160.js";import{_ as L,C as ie}from"./index-ba5cf04c.js";import{_ as E}from"./dynamic-import-helper-be004503.js";import{_ as U,u as g,k as i,l as m,A as f,N as o,y as s,z as v,D as n,x as p,a2 as D,a3 as M,J as S,K as I,B as h,q as F,a4 as O,P as le,S as se,U as re}from"./vendor-f2b8aa6f.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const ue={name:"ChargePointConfigFallback",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},chargePointId:{default:void 0},chargePointType:String},methods:{updateConfiguration(e,a=void 0){this.$emit("update:configuration",{value:e,object:a})}}},de={class:"device-fallback"},pe={key:1};function me(e,a,r,P,c,d){const C=g("openwb-base-alert"),b=g("openwb-base-textarea");return i(),m("div",de,[Object.keys(r.configuration).length==0?(i(),f(C,{key:0,subtype:"info"},{default:o(()=>[s(' Der Ladepunkt-Typ "'+v(r.chargePointType)+'" bietet keine Einstellungen. ',1)]),_:1})):(i(),m("div",pe,[n(C,{subtype:"warning"},{default:o(()=>[s(' Es wurde keine Konfigurationsseite für den Ladepunkt-Typ "'+v(r.chargePointType)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(b,{title:"Konfiguration",subtype:"json","model-value":r.configuration,"onUpdate:modelValue":a[0]||(a[0]=B=>d.updateConfiguration(B,"configuration"))},{help:o(()=>[s(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ")]),_:1},8,["model-value"]),n(C,{subtype:"info"},{default:o(()=>[p("pre",null,v(JSON.stringify(r.configuration,void 0,2)),1)]),_:1})]))])}const ce=U(ue,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointConfigFallback.vue"]]),ge={name:"ChargePointCommandsFallback",props:{configuration:{type:Object,required:!0},chargePointId:{default:void 0},chargePointType:String}},he={class:"charge-point-commands-fallback"};function _e(e,a,r,P,c,d){const C=g("openwb-base-alert");return i(),m("div",he,[n(C,{subtype:"secondary"},{default:o(()=>[s(' Der Ladepunkt-Typ "'+v(r.chargePointType)+'" bietet keine Befehle an. ',1)]),_:1})])}const be=U(ge,[["render",_e],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointCommandsFallback.vue"]]),fe={name:"OpenwbChargePointProxy",emits:["update:configuration"],props:{chargePointId:{required:!0},chargePointType:{type:String,required:!0},configuration:{type:Object,required:!0},moduleName:{type:String,required:!1,default:void 0}},computed:{myChargePointSettingsComponent(){return console.debug(`loading charge point settings: ${this.chargePointType}`),D({loader:()=>E(Object.assign({"./external_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-dd6fab0a.js"),["assets/chargePoint-dd6fab0a.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./internal_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-8dec0709.js"),["assets/chargePoint-8dec0709.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./mqtt/chargePoint.vue":()=>L(()=>import("./chargePoint-0eec3eeb.js"),["assets/chargePoint-0eec3eeb.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_dc_adapter/chargePoint.vue":()=>L(()=>import("./chargePoint-20a5e448.js"),["assets/chargePoint-20a5e448.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_pro/chargePoint.vue":()=>L(()=>import("./chargePoint-5a865626.js"),["assets/chargePoint-5a865626.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_series2_satellit/chargePoint.vue":()=>L(()=>import("./chargePoint-c6c27c6b.js"),["assets/chargePoint-c6c27c6b.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./smartwb/chargePoint.vue":()=>L(()=>import("./chargePoint-f3aa01e8.js"),["assets/chargePoint-f3aa01e8.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"])}),`./${this.chargePointType}/chargePoint.vue`),errorComponent:ce})},myChargePointCommandsComponent(){return console.debug(`loading charge point commands: ${this.chargePointType}`),D({loader:()=>E(Object.assign({"./openwb_pro/commands.vue":()=>L(()=>import("./commands-61e8eed9.js"),["assets/commands-61e8eed9.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"])}),`./${this.chargePointType}/commands.vue`),errorComponent:be})}},methods:{updateConfiguration(e){this.$emit("update:configuration",e)}}},we=p("hr",null,null,-1);function ke(e,a,r,P,c,d){const C=g("openwb-base-heading");return i(),m(S,null,[n(C,null,{default:o(()=>[s(" Einstellungen für Ladepunkt "+v(r.moduleName),1)]),_:1}),(i(),f(M(d.myChargePointSettingsComponent),{configuration:r.configuration,chargePointId:r.chargePointId,chargePointType:r.chargePointType,"onUpdate:configuration":a[0]||(a[0]=b=>d.updateConfiguration(b))},null,40,["configuration","chargePointId","chargePointType"])),we,n(C,null,{default:o(()=>[s(" Befehle für Ladepunkt "+v(r.moduleName),1)]),_:1}),(i(),f(M(d.myChargePointCommandsComponent),{configuration:r.configuration,chargePointId:r.chargePointId,chargePointType:r.chargePointType},null,8,["configuration","chargePointId","chargePointType"]))],64)}const ve=U(fe,[["render",ke],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointProxy.vue"]]);G.add(Q,X,Y,K,ee,te,ne);const Ce={name:"OpenwbChargePointInstallationView",mixins:[ie],emits:["sendCommand"],components:{FontAwesomeIcon:ae,FontAwesomeLayers:oe,OpenwbChargePointProxy:ve},props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/optional/dc_charging","openWB/optional/rfid/active","openWB/chargepoint/+/config","openWB/chargepoint/template/+","openWB/chargepoint/template/+/autolock/+","openWB/system/configurable/chargepoints","openWB/system/configurable/chargepoints_internal"],chargePointToAdd:void 0,showChargePointModal:!1,modalChargePointIndex:void 0,showChargePointTemplateModal:!1,modalChargePointTemplateIndex:void 0,showChargePointTemplateAutolockPlanModal:!1,modalChargePointTemplateAutolockPlanIndex:void 0}},computed:{dcChargingEnabled:{get(){return this.$store.state.mqtt["openWB/optional/dc_charging"]}},installedChargePoints:{get(){let e=this.getWildcardTopics("openWB/chargepoint/+/config"),a={};for(const[r,P]of Object.entries(e))(P.type==="internal_openwb"||this.$store.state.mqtt["openWB/general/extern"]===!1)&&(a[r]=P);return a}},chargePointTemplates:{get(){return this.getWildcardTopics("openWB/chargepoint/template/+")}},chargePointTemplateList:{get(){let e=[];return Object.keys(this.chargePointTemplates).forEach(a=>{let r=parseInt(a.match(/([0-9]+)/g)[0]),P=this.$store.state.mqtt["openWB/chargepoint/template/"+r].name;e.push({value:r,text:P})}),e}}},methods:{addChargePoint(e){e.stopPropagation(),this.$emit("sendCommand",{command:"addChargepoint",data:{type:this.chargePointToAdd}})},removeChargePointModal(e,a){a.stopPropagation(),this.modalChargePointIndex=parseInt(e.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showChargePointModal=!0},removeChargePoint(e,a){this.showChargePointModal=!1,a=="confirm"&&(console.debug("request removal of charge point '"+e+"'"),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(e){return this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"]?this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"].name:"Ladepunkt "+e},getChargePointTemplateName(e){return this.$store.state.mqtt["openWB/chargepoint/template/"+e]?this.$store.state.mqtt["openWB/chargepoint/template/"+e].name:"Profil "+e},addChargePointTemplate(e){e.stopPropagation(),this.$emit("sendCommand",{command:"addChargepointTemplate",data:{}})},getChargePointTemplateIndex(e){return parseInt(e.match(/([^/]+)$/)[0])},removeChargePointTemplateModal(e,a){a.stopPropagation(),this.modalChargePointTemplateIndex=this.getChargePointTemplateIndex(e),this.showChargePointTemplateModal=!0},removeChargePointTemplate(e,a){this.showChargePointTemplateModal=!1,a=="confirm"&&(console.debug("request removal of chargePoint template '"+e+"'"),this.$emit("sendCommand",{command:"removeChargepointTemplate",data:{id:e}}))},addChargePointTemplateAutolockPlan(e,a){a.stopPropagation(),console.info("requesting new charge point template autolock plan...");let r=this.getChargePointTemplateIndex(e);this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:r}})},removeChargePointTemplateAutolockPlanModal(e,a,r){r.stopPropagation(),this.modalChargePointTemplateIndex=this.getChargePointTemplateIndex(e),this.modalChargePointTemplateAutolockPlanIndex=parseInt(a.match(/([^/]+)$/)[0]),this.showChargePointTemplateAutolockPlanModal=!0},removeChargePointTemplateAutolockPlan(e,a,r){this.showChargePointTemplateAutolockPlanModal=!1,r=="confirm"&&(console.debug("request removal of chargePoint template '"+e+"' autolock plan '"+a+"'"),this.$emit("sendCommand",{command:"removeAutolockPlan",data:{template:e,plan:a}}))},getChargePointTemplateAutolockPlanName(e,a){return this.$store.state.mqtt["openWB/chargepoint/template/"+e+"/autolock/"+a]?this.$store.state.mqtt["openWB/chargepoint/template/"+e+"/autolock/"+a].name:"Autolock Zeitplan "+e+"/"+a},getChargePointTemplateAutolockPlans(e){let a=this.getChargePointTemplateIndex(e);return this.getWildcardTopics("openWB/chargepoint/template/"+a+"/autolock/+")},updateConfiguration(e,a){console.debug("updateConfiguration",e,a),this.updateState(e,a.value,a.object)}}},w=e=>(se("data-v-75fe5743"),e=e(),re(),e),ye={class:"chargePointInstallation"},Pe={name:"chargePointInstallationForm"},Ve={key:0},Le=w(()=>p("hr",null,null,-1)),Be={key:1},Ae=w(()=>p("hr",null,null,-1)),We=w(()=>p("br",null,null,-1)),Se=w(()=>p("br",null,null,-1)),Te=w(()=>p("br",null,null,-1)),Ie=w(()=>p("br",null,null,-1)),Ue={key:0},xe={class:"col-1"},qe=w(()=>p("br",null,null,-1)),ze=w(()=>p("ul",null,[p("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 "),p("li",null," Externe openWB - wenn diese openWB (primary) die Fernsteuerung von externen openWB (secondary) übernimmt "),p("li",null," MQTT-Ladepunkt - nur zur Nutzung des openWB-Simulators zugelassen "),p("li",null," openWB Pro - wenn diese openWB (primary) die Fernsteuerung einer openWB Pro (secondary) übernimmt "),p("li",null," openWB series2 Satellit/Satellit Duo - wenn diese openWB (primary) die Fernsteuerung einer openWB series2 Satellit/Satellit Duo (secondary) übernimmt "),p("li",null," smartWB/EVSE-Wifi - wenn diese openWB (primary) die Fernsteuerung einer smartWB/EVSE-Wifi übernimmt ")],-1)),Ee=w(()=>p("hr",{class:"border-secondary"},null,-1)),De={key:0},Me={key:1},Fe=w(()=>p("hr",null,null,-1)),Oe={key:1},Ne=w(()=>p("hr",null,null,-1)),Re=w(()=>p("br",null,null,-1)),je={key:0},Ze=w(()=>p("br",null,null,-1)),Je=w(()=>p("a",{href:"https://github.com/openWB/core/wiki/Lastmanagement-und-kaskadierte-Z%C3%A4hler",target:"_blank",rel:"noopener noreferrer"},"Wiki zum Lastmanagement",-1)),$e={key:2},He=w(()=>p("hr",null,null,-1)),Ge={key:4},Qe=w(()=>p("hr",null,null,-1)),Xe=["onClick"],Ye={key:0},Ke={key:1},et={key:2},tt={key:2};function nt(e,a,r,P,c,d){const C=g("openwb-base-modal-dialog"),b=g("font-awesome-icon"),B=g("openwb-base-avatar"),V=g("openwb-base-text-input"),x=g("openwb-base-select-input"),N=g("openwb-charge-point-proxy"),A=g("openwb-base-heading"),y=g("openwb-base-button-group-input"),T=g("openwb-base-card"),R=g("openwb-base-click-button"),j=g("font-awesome-layers"),q=g("openwb-base-alert"),Z=g("openwb-base-array-input"),z=g("openwb-base-range-input"),J=g("openwb-base-number-input"),$=g("openwb-base-submit-buttons");return i(),m(S,null,[n(C,{show:c.showChargePointModal,title:"Ladepunkt löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:a[0]||(a[0]=l=>d.removeChargePoint(c.modalChargePointIndex,l))},{default:o(()=>[s(' Wollen Sie den Ladepunkt "'+v(d.getChargePointName(c.modalChargePointIndex))+'" (ID: '+v(c.modalChargePointIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),n(C,{show:c.showChargePointTemplateModal,title:"Ladepunkt-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:a[1]||(a[1]=l=>d.removeChargePointTemplate(c.modalChargePointTemplateIndex,l))},{default:o(()=>[s(' Wollen Sie das Ladepunkt-Profil "'+v(d.getChargePointTemplateName(c.modalChargePointTemplateIndex))+'" (ID: '+v(c.modalChargePointTemplateIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),n(C,{show:c.showChargePointTemplateAutolockPlanModal,title:"Autolock Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:a[2]||(a[2]=l=>d.removeChargePointTemplateAutolockPlan(c.modalChargePointTemplateIndex,c.modalChargePointTemplateAutolockPlanIndex,l))},{default:o(()=>[s(' Wollen Sie den Autolock Zeitplan "'+v(d.getChargePointTemplateAutolockPlanName(c.modalChargePointTemplateIndex,c.modalChargePointTemplateAutolockPlanIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),p("div",ye,[p("form",Pe,[n(T,{title:"Ladepunkte",subtype:"primary",collapsible:!0,collapsed:!r.installAssistantActive},{header:o(()=>[n(b,{"fixed-width":"",icon:["fas","charging-station"]}),s(" Ladepunkte ")]),default:o(()=>[(i(!0),m(S,null,I(d.installedChargePoints,(l,u)=>(i(),f(T,{key:u,title:l.name+" (ID: "+l.id+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(t=>[t.collapsed?h("",!0):(i(),f(B,{key:0,class:"bg-danger clickable",onClick:k=>d.removeChargePointModal(u,k)},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:o(()=>[n(V,{title:"Bezeichnung",subtype:"text","model-value":l.name,"onUpdate:modelValue":t=>e.updateState(u,t,"name")},null,8,["model-value","onUpdate:modelValue"]),n(V,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":e.$store.state.mqtt[u].type},null,8,["model-value"]),l.type!=="internal_openwb"||e.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m("span",Ve,[n(x,{title:"Ladepunkt-Profil",options:d.chargePointTemplateList,"model-value":e.$store.state.mqtt[u].template,"onUpdate:modelValue":t=>e.updateState(u,t,"template")},null,8,["options","model-value","onUpdate:modelValue"])])):h("",!0),Le,n(N,{chargePointId:l.id,chargePointType:e.$store.state.mqtt[u].type,moduleName:e.$store.state.mqtt[u].name,configuration:l.configuration,"onUpdate:configuration":t=>d.updateConfiguration(u,t)},null,8,["chargePointId","chargePointType","moduleName","configuration","onUpdate:configuration"]),(l.type!=="internal_openwb"||e.$store.state.mqtt["openWB/general/extern"]===!1)&&l.charging_type!=="DC"?(i(),m("div",Be,[Ae,n(A,null,{default:o(()=>[s("Hardware-Optionen")]),_:1}),n(y,{title:"automatische Phasenumschaltung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":l.auto_phase_switch_hw,"onUpdate:modelValue":t=>e.updateState(u,t,"auto_phase_switch_hw")},null,8,["model-value","onUpdate:modelValue"]),n(y,{title:"Control-Pilot-Unterbrechung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":l.control_pilot_interruption_hw,"onUpdate:modelValue":t=>e.updateState(u,t,"control_pilot_interruption_hw")},{help:o(()=>[s(' 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. ')]),_:2},1032,["model-value","onUpdate:modelValue"]),n(A,null,{default:o(()=>[s(" Elektrischer Anschluss ")]),_:1}),n(y,{title:"Anzahl angeschlossener Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":l.connected_phases,"onUpdate:modelValue":t=>e.updateState(u,t,"connected_phases")},null,8,["model-value","onUpdate:modelValue"]),n(y,{title:"Phase 1 des Ladekabels",buttons:[{buttonValue:1,text:"EVU L1"},{buttonValue:2,text:"EVU L2"},{buttonValue:3,text:"EVU L3"}],"model-value":l.phase_1,"onUpdate:modelValue":t=>e.updateState(u,t,"phase_1")},{help:o(()=>[s(" 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."),We,s(' 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.'),Se,s(" 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)."),Te,s(" 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."),Ie,s(" Im Zweifel bitte das Drehfeld von einer Fachkraft prüfen und korrigieren lassen. ")]),_:2},1032,["model-value","onUpdate:modelValue"])])):h("",!0)]),_:2},1032,["title"]))),128)),Object.keys(d.installedChargePoints).length>0?(i(),m("hr",Ue)):h("",!0),n(x,{class:"mb-2",title:"Verfügbare Ladepunkte",notSelected:"Bitte auswählen",options:d.getChargePointList(),"model-value":c.chargePointToAdd,"onUpdate:modelValue":a[3]||(a[3]=l=>c.chargePointToAdd=l)},{append:o(()=>[p("span",xe,[n(R,{class:F(c.chargePointToAdd===void 0?"btn-outline-success":"btn-success"),disabled:c.chargePointToAdd===void 0,onButtonClicked:d.addChargePoint},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","plus"]})]),_:1},8,["class","disabled","onButtonClicked"])])]),help:o(()=>[s(" Bitte einen Ladepunkt auswählen, der der openWB-Regelung hinzugefügt werden soll."),qe,ze]),_:1},8,["options","model-value"])]),_:1},8,["collapsed"]),Ee,n(T,{title:"Ladepunkt-Profile",collapsible:!0,collapsed:!0},{header:o(()=>[n(j,{"fixed-width":"",class:"fa-lg"},{default:o(()=>[n(b,{"fixed-width":"",icon:["far","file"]}),n(b,{"fixed-width":"",icon:["fas","charging-station"],transform:"shrink-8"})]),_:1}),s(" Ladepunkt-Profile ")]),actions:o(()=>[e.$store.state.mqtt["openWB/general/extern"]===!1?(i(),f(B,{key:0,class:"bg-success clickable",onClick:d.addChargePointTemplate},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","plus"]})]),_:1},8,["onClick"])):h("",!0)]),default:o(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(i(),m("div",De,[n(q,{subtype:"info"},{default:o(()=>[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(i(),m("div",Me,[(i(!0),m(S,null,I(d.chargePointTemplates,(l,u)=>(i(),f(T,{key:u,title:l.name+" (ID: "+d.getChargePointTemplateIndex(u)+")",collapsible:!0,collapsed:!0},O({default:o(()=>[n(V,{title:"Bezeichnung",subtype:"text","model-value":l.name,"onUpdate:modelValue":t=>e.updateState(u,t,"name"),disabled:u.endsWith("/0")},O({_:2},[u.endsWith("/0")?{name:"help",fn:o(()=>[s(" Das Standard-Profil kann nicht umbenannt werden. ")]),key:"0"}:void 0]),1032,["model-value","onUpdate:modelValue","disabled"]),d.dcChargingEnabled===!0?(i(),f(y,{key:0,title:"Typ des Ladeprofils",buttons:[{buttonValue:"AC",text:"AC"},{buttonValue:"DC",text:"DC"}],"model-value":l.charging_type,"onUpdate:modelValue":t=>e.updateState(u,t,"charging_type")},null,8,["model-value","onUpdate:modelValue"])):h("",!0),Fe,n(A,null,{default:o(()=>[s(" Zugangskontrolle ")]),_:1}),n(y,{title:"Sperre nach Abstecken",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":l.disable_after_unplug,"onUpdate:modelValue":t=>e.updateState(u,t,"disable_after_unplug")},{help:o(()=>[s(" Sperrt den Ladepunkt nach Abstecken eines Fahrzeuges ")]),_:2},1032,["model-value","onUpdate:modelValue"]),e.$store.state.mqtt["openWB/optional/rfid/active"]===!0&&!r.installAssistantActive?(i(),m("div",Oe,[l.disable_after_unplug?(i(),f(Z,{key:0,title:"Zugeordnete ID-Tags",noElementsMessage:"Keine ID-Tags zugeordnet.","model-value":l.valid_tags,"onUpdate:modelValue":t=>e.updateState(u,t,"valid_tags")},{help:o(()=>[s(" Die hier eingetragenen ID-Tags dienen ausschließlich zum Entsperren des Ladepunktes. ")]),_:2},1032,["model-value","onUpdate:modelValue"])):h("",!0)])):h("",!0),Ne,n(A,null,{default:o(()=>[s(" Angaben zum konfigurierten Ladestrom der openWB ")]),_:1}),n(q,{subtype:"info"},{default:o(()=>[s(" Hier werden die maximalen Ladeströme entsprechend der in dem zugeordneten Ladepunkt genutzten Phasen eingestellt."),Re,s(" Generell gilt, dass diese Werte in Übereinstimmung mit der Ausführung des Ladepunktes und des elektrischen Anschlusses bzw. der Absicherung zu wählen sind. "),l.charging_type==="AC"?(i(),m("span",je," 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. ")):h("",!0),Ze,s(" Komplexere Installationen mit mehreren Ladepunkten werden im "),Je,s(" beschrieben. ")]),_:2},1024),l.charging_type==="AC"||d.dcChargingEnabled!==!0?(i(),m("div",$e,[n(z,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":l.max_current_single_phase,"onUpdate:modelValue":t=>e.updateState(u,t,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),n(z,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":l.max_current_multi_phases,"onUpdate:modelValue":t=>e.updateState(u,t,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"])])):(i(),f(J,{key:3,title:"Maximalleistung",min:75,max:300,step:75,unit:"kW",precision:5,"model-value":e.ac_current2dc_power(l.dc_max_current),"onUpdate:modelValue":t=>e.updateState(u,e.dc_power2ac_current(t),"dc_max_current")},null,8,["model-value","onUpdate:modelValue"])),He,r.installAssistantActive?h("",!0):(i(),m("div",Ge,[Qe,n(A,null,{default:o(()=>[s("Automatische Sperre")]),_:1}),n(y,{title:"Automatische Sperre aktiv",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":l.autolock.active,"onUpdate:modelValue":t=>e.updateState(u,t,"autolock.active")},{help:o(()=>[s(" Wird die automatische Sperre 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. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(y,{title:"Erst nach Ladeende sperren",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":l.autolock.wait_for_charging_end,"onUpdate:modelValue":t=>e.updateState(u,t,"autolock.wait_for_charging_end")},{help:o(()=>[s(' Wenn ein Zeitplan die automatische Sperre 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. ')]),_:2},1032,["model-value","onUpdate:modelValue"]),n(A,null,{actions:o(()=>[n(B,{class:"bg-success clickable",onClick:t=>d.addChargePointTemplateAutolockPlan(u,t)},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","plus"]})]),_:2},1032,["onClick"])]),default:o(()=>[s(" Zeitpläne für die automatische Sperre ")]),_:2},1024)])),(i(!0),m(S,null,I(d.getChargePointTemplateAutolockPlans(u),(t,k)=>(i(),f(T,{key:k,title:t.name,collapsible:!0,collapsed:!0},{actions:o(_=>[_.collapsed==!0?(i(),m("span",{key:0,onClick:le(W=>e.updateState(k,!t.active,"active"),["stop"]),class:F(["subheader pill clickable",t.active?"bg-success":"bg-danger"])},[n(b,{"fixed-width":"",icon:["fas","clock"]}),s(" "+v(t.time[0])+" - "+v(t.time[1])+" ",1),t.frequency.selected=="once"?(i(),m("span",Ye,[n(b,{"fixed-width":"",icon:["fas","calendar-day"]}),s(" "+v(e.formatDate(t.frequency.once[0])==e.formatDate(t.frequency.once[1])?e.formatDate(t.frequency.once[0]):e.formatDate(t.frequency.once[0])+" - "+e.formatDate(t.frequency.once[1])),1)])):h("",!0),t.frequency.selected=="daily"?(i(),m("span",Ke,[n(b,{"fixed-width":"",icon:["fas","calendar-week"]})])):h("",!0),t.frequency.selected=="weekly"?(i(),m("span",et,[n(b,{"fixed-width":"",icon:["fas","calendar-alt"]})])):h("",!0)],10,Xe)):h("",!0),_.collapsed==!1?(i(),f(B,{key:1,class:"bg-danger clickable",onClick:W=>d.removeChargePointTemplateAutolockPlanModal(u,k,W)},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"])):h("",!0)]),default:o(()=>[n(V,{title:"Bezeichnung","model-value":t.name,"onUpdate:modelValue":_=>e.updateState(k,_,"name")},null,8,["model-value","onUpdate:modelValue"]),n(y,{title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.active,"onUpdate:modelValue":_=>e.updateState(k,_,"active")},null,8,["model-value","onUpdate:modelValue"]),n(V,{title:"Sperren um",subtype:"time","model-value":t.time[0],"onUpdate:modelValue":_=>e.updateState(k,_,"time.0")},null,8,["model-value","onUpdate:modelValue"]),n(V,{title:"Freigeben um",subtype:"time","model-value":t.time[1],"onUpdate:modelValue":_=>e.updateState(k,_,"time.1")},null,8,["model-value","onUpdate:modelValue"]),n(y,{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"}],"model-value":t.frequency.selected,"onUpdate:modelValue":_=>e.updateState(k,_,"frequency.selected")},null,8,["model-value","onUpdate:modelValue"]),t.frequency.selected=="once"?(i(),f(V,{key:0,title:"Sperren ab ...",subtype:"date","model-value":t.frequency.once[0],"onUpdate:modelValue":_=>e.updateState(k,_,"frequency.once.0")},null,8,["model-value","onUpdate:modelValue"])):h("",!0),t.frequency.selected=="once"?(i(),f(V,{key:1,title:"... bis",subtype:"date",min:t.frequency.once[0],"model-value":t.frequency.once[1],"onUpdate:modelValue":_=>e.updateState(k,_,"frequency.once.1")},null,8,["min","model-value","onUpdate:modelValue"])):h("",!0),t.frequency.selected=="weekly"?(i(),m("div",tt,[(i(!0),m(S,null,I(e.weekdays,(_,W)=>(i(),f(y,{key:W,title:_,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.frequency.weekly[W],"onUpdate:modelValue":H=>e.updateState(k,H,"frequency.weekly."+W)},null,8,["title","model-value","onUpdate:modelValue"]))),128))])):h("",!0)]),_:2},1032,["title"]))),128))]),_:2},[u.endsWith("/0")?void 0:{name:"actions",fn:o(t=>[t.collapsed?h("",!0):(i(),f(B,{key:0,class:"bg-danger clickable",onClick:k=>d.removeChargePointTemplateModal(u,k)},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),key:"0"}]),1032,["title"]))),128))]))]),_:1}),n($,{formName:"chargePointInstallationForm",onSave:a[4]||(a[4]=l=>e.$emit("save")),onReset:a[5]||(a[5]=l=>e.$emit("reset")),onDefaults:a[6]||(a[6]=l=>e.$emit("defaults"))})])])],64)}const pt=U(Ce,[["render",nt],["__scopeId","data-v-75fe5743"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ChargePointInstallation.vue"]]);export{pt as default}; +import{l as G,d as Q,a0 as X,A as Y,a9 as K,aa as ee,K as te,ab as ne,F as ae,I as oe}from"./vendor-fortawesome-71546160.js";import{_ as L,C as ie}from"./index-88a2073c.js";import{_ as E}from"./dynamic-import-helper-be004503.js";import{_ as U,u as g,k as i,l as m,A as f,N as o,y as s,z as v,D as n,x as p,a2 as D,a3 as M,J as S,K as I,B as h,q as F,a4 as O,P as le,S as se,U as re}from"./vendor-f2b8aa6f.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const ue={name:"ChargePointConfigFallback",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},chargePointId:{default:void 0},chargePointType:String},methods:{updateConfiguration(e,a=void 0){this.$emit("update:configuration",{value:e,object:a})}}},de={class:"device-fallback"},pe={key:1};function me(e,a,r,P,c,d){const C=g("openwb-base-alert"),b=g("openwb-base-textarea");return i(),m("div",de,[Object.keys(r.configuration).length==0?(i(),f(C,{key:0,subtype:"info"},{default:o(()=>[s(' Der Ladepunkt-Typ "'+v(r.chargePointType)+'" bietet keine Einstellungen. ',1)]),_:1})):(i(),m("div",pe,[n(C,{subtype:"warning"},{default:o(()=>[s(' Es wurde keine Konfigurationsseite für den Ladepunkt-Typ "'+v(r.chargePointType)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(b,{title:"Konfiguration",subtype:"json","model-value":r.configuration,"onUpdate:modelValue":a[0]||(a[0]=B=>d.updateConfiguration(B,"configuration"))},{help:o(()=>[s(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ")]),_:1},8,["model-value"]),n(C,{subtype:"info"},{default:o(()=>[p("pre",null,v(JSON.stringify(r.configuration,void 0,2)),1)]),_:1})]))])}const ce=U(ue,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointConfigFallback.vue"]]),ge={name:"ChargePointCommandsFallback",props:{configuration:{type:Object,required:!0},chargePointId:{default:void 0},chargePointType:String}},he={class:"charge-point-commands-fallback"};function _e(e,a,r,P,c,d){const C=g("openwb-base-alert");return i(),m("div",he,[n(C,{subtype:"secondary"},{default:o(()=>[s(' Der Ladepunkt-Typ "'+v(r.chargePointType)+'" bietet keine Befehle an. ',1)]),_:1})])}const be=U(ge,[["render",_e],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointCommandsFallback.vue"]]),fe={name:"OpenwbChargePointProxy",emits:["update:configuration"],props:{chargePointId:{required:!0},chargePointType:{type:String,required:!0},configuration:{type:Object,required:!0},moduleName:{type:String,required:!1,default:void 0}},computed:{myChargePointSettingsComponent(){return console.debug(`loading charge point settings: ${this.chargePointType}`),D({loader:()=>E(Object.assign({"./external_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-dd6fab0a.js"),["assets/chargePoint-dd6fab0a.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./internal_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-8dec0709.js"),["assets/chargePoint-8dec0709.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./mqtt/chargePoint.vue":()=>L(()=>import("./chargePoint-0eec3eeb.js"),["assets/chargePoint-0eec3eeb.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_dc_adapter/chargePoint.vue":()=>L(()=>import("./chargePoint-20a5e448.js"),["assets/chargePoint-20a5e448.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_pro/chargePoint.vue":()=>L(()=>import("./chargePoint-5a865626.js"),["assets/chargePoint-5a865626.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_series2_satellit/chargePoint.vue":()=>L(()=>import("./chargePoint-c6c27c6b.js"),["assets/chargePoint-c6c27c6b.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./smartwb/chargePoint.vue":()=>L(()=>import("./chargePoint-f3aa01e8.js"),["assets/chargePoint-f3aa01e8.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"])}),`./${this.chargePointType}/chargePoint.vue`),errorComponent:ce})},myChargePointCommandsComponent(){return console.debug(`loading charge point commands: ${this.chargePointType}`),D({loader:()=>E(Object.assign({"./openwb_pro/commands.vue":()=>L(()=>import("./commands-61e8eed9.js"),["assets/commands-61e8eed9.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"])}),`./${this.chargePointType}/commands.vue`),errorComponent:be})}},methods:{updateConfiguration(e){this.$emit("update:configuration",e)}}},we=p("hr",null,null,-1);function ke(e,a,r,P,c,d){const C=g("openwb-base-heading");return i(),m(S,null,[n(C,null,{default:o(()=>[s(" Einstellungen für Ladepunkt "+v(r.moduleName),1)]),_:1}),(i(),f(M(d.myChargePointSettingsComponent),{configuration:r.configuration,chargePointId:r.chargePointId,chargePointType:r.chargePointType,"onUpdate:configuration":a[0]||(a[0]=b=>d.updateConfiguration(b))},null,40,["configuration","chargePointId","chargePointType"])),we,n(C,null,{default:o(()=>[s(" Befehle für Ladepunkt "+v(r.moduleName),1)]),_:1}),(i(),f(M(d.myChargePointCommandsComponent),{configuration:r.configuration,chargePointId:r.chargePointId,chargePointType:r.chargePointType},null,8,["configuration","chargePointId","chargePointType"]))],64)}const ve=U(fe,[["render",ke],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointProxy.vue"]]);G.add(Q,X,Y,K,ee,te,ne);const Ce={name:"OpenwbChargePointInstallationView",mixins:[ie],emits:["sendCommand"],components:{FontAwesomeIcon:ae,FontAwesomeLayers:oe,OpenwbChargePointProxy:ve},props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/optional/dc_charging","openWB/optional/rfid/active","openWB/chargepoint/+/config","openWB/chargepoint/template/+","openWB/chargepoint/template/+/autolock/+","openWB/system/configurable/chargepoints","openWB/system/configurable/chargepoints_internal"],chargePointToAdd:void 0,showChargePointModal:!1,modalChargePointIndex:void 0,showChargePointTemplateModal:!1,modalChargePointTemplateIndex:void 0,showChargePointTemplateAutolockPlanModal:!1,modalChargePointTemplateAutolockPlanIndex:void 0}},computed:{dcChargingEnabled:{get(){return this.$store.state.mqtt["openWB/optional/dc_charging"]}},installedChargePoints:{get(){let e=this.getWildcardTopics("openWB/chargepoint/+/config"),a={};for(const[r,P]of Object.entries(e))(P.type==="internal_openwb"||this.$store.state.mqtt["openWB/general/extern"]===!1)&&(a[r]=P);return a}},chargePointTemplates:{get(){return this.getWildcardTopics("openWB/chargepoint/template/+")}},chargePointTemplateList:{get(){let e=[];return Object.keys(this.chargePointTemplates).forEach(a=>{let r=parseInt(a.match(/([0-9]+)/g)[0]),P=this.$store.state.mqtt["openWB/chargepoint/template/"+r].name;e.push({value:r,text:P})}),e}}},methods:{addChargePoint(e){e.stopPropagation(),this.$emit("sendCommand",{command:"addChargepoint",data:{type:this.chargePointToAdd}})},removeChargePointModal(e,a){a.stopPropagation(),this.modalChargePointIndex=parseInt(e.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showChargePointModal=!0},removeChargePoint(e,a){this.showChargePointModal=!1,a=="confirm"&&(console.debug("request removal of charge point '"+e+"'"),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(e){return this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"]?this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"].name:"Ladepunkt "+e},getChargePointTemplateName(e){return this.$store.state.mqtt["openWB/chargepoint/template/"+e]?this.$store.state.mqtt["openWB/chargepoint/template/"+e].name:"Profil "+e},addChargePointTemplate(e){e.stopPropagation(),this.$emit("sendCommand",{command:"addChargepointTemplate",data:{}})},getChargePointTemplateIndex(e){return parseInt(e.match(/([^/]+)$/)[0])},removeChargePointTemplateModal(e,a){a.stopPropagation(),this.modalChargePointTemplateIndex=this.getChargePointTemplateIndex(e),this.showChargePointTemplateModal=!0},removeChargePointTemplate(e,a){this.showChargePointTemplateModal=!1,a=="confirm"&&(console.debug("request removal of chargePoint template '"+e+"'"),this.$emit("sendCommand",{command:"removeChargepointTemplate",data:{id:e}}))},addChargePointTemplateAutolockPlan(e,a){a.stopPropagation(),console.info("requesting new charge point template autolock plan...");let r=this.getChargePointTemplateIndex(e);this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:r}})},removeChargePointTemplateAutolockPlanModal(e,a,r){r.stopPropagation(),this.modalChargePointTemplateIndex=this.getChargePointTemplateIndex(e),this.modalChargePointTemplateAutolockPlanIndex=parseInt(a.match(/([^/]+)$/)[0]),this.showChargePointTemplateAutolockPlanModal=!0},removeChargePointTemplateAutolockPlan(e,a,r){this.showChargePointTemplateAutolockPlanModal=!1,r=="confirm"&&(console.debug("request removal of chargePoint template '"+e+"' autolock plan '"+a+"'"),this.$emit("sendCommand",{command:"removeAutolockPlan",data:{template:e,plan:a}}))},getChargePointTemplateAutolockPlanName(e,a){return this.$store.state.mqtt["openWB/chargepoint/template/"+e+"/autolock/"+a]?this.$store.state.mqtt["openWB/chargepoint/template/"+e+"/autolock/"+a].name:"Autolock Zeitplan "+e+"/"+a},getChargePointTemplateAutolockPlans(e){let a=this.getChargePointTemplateIndex(e);return this.getWildcardTopics("openWB/chargepoint/template/"+a+"/autolock/+")},updateConfiguration(e,a){console.debug("updateConfiguration",e,a),this.updateState(e,a.value,a.object)}}},w=e=>(se("data-v-75fe5743"),e=e(),re(),e),ye={class:"chargePointInstallation"},Pe={name:"chargePointInstallationForm"},Ve={key:0},Le=w(()=>p("hr",null,null,-1)),Be={key:1},Ae=w(()=>p("hr",null,null,-1)),We=w(()=>p("br",null,null,-1)),Se=w(()=>p("br",null,null,-1)),Te=w(()=>p("br",null,null,-1)),Ie=w(()=>p("br",null,null,-1)),Ue={key:0},xe={class:"col-1"},qe=w(()=>p("br",null,null,-1)),ze=w(()=>p("ul",null,[p("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 "),p("li",null," Externe openWB - wenn diese openWB (primary) die Fernsteuerung von externen openWB (secondary) übernimmt "),p("li",null," MQTT-Ladepunkt - nur zur Nutzung des openWB-Simulators zugelassen "),p("li",null," openWB Pro - wenn diese openWB (primary) die Fernsteuerung einer openWB Pro (secondary) übernimmt "),p("li",null," openWB series2 Satellit/Satellit Duo - wenn diese openWB (primary) die Fernsteuerung einer openWB series2 Satellit/Satellit Duo (secondary) übernimmt "),p("li",null," smartWB/EVSE-Wifi - wenn diese openWB (primary) die Fernsteuerung einer smartWB/EVSE-Wifi übernimmt ")],-1)),Ee=w(()=>p("hr",{class:"border-secondary"},null,-1)),De={key:0},Me={key:1},Fe=w(()=>p("hr",null,null,-1)),Oe={key:1},Ne=w(()=>p("hr",null,null,-1)),Re=w(()=>p("br",null,null,-1)),je={key:0},Ze=w(()=>p("br",null,null,-1)),Je=w(()=>p("a",{href:"https://github.com/openWB/core/wiki/Lastmanagement-und-kaskadierte-Z%C3%A4hler",target:"_blank",rel:"noopener noreferrer"},"Wiki zum Lastmanagement",-1)),$e={key:2},He=w(()=>p("hr",null,null,-1)),Ge={key:4},Qe=w(()=>p("hr",null,null,-1)),Xe=["onClick"],Ye={key:0},Ke={key:1},et={key:2},tt={key:2};function nt(e,a,r,P,c,d){const C=g("openwb-base-modal-dialog"),b=g("font-awesome-icon"),B=g("openwb-base-avatar"),V=g("openwb-base-text-input"),x=g("openwb-base-select-input"),N=g("openwb-charge-point-proxy"),A=g("openwb-base-heading"),y=g("openwb-base-button-group-input"),T=g("openwb-base-card"),R=g("openwb-base-click-button"),j=g("font-awesome-layers"),q=g("openwb-base-alert"),Z=g("openwb-base-array-input"),z=g("openwb-base-range-input"),J=g("openwb-base-number-input"),$=g("openwb-base-submit-buttons");return i(),m(S,null,[n(C,{show:c.showChargePointModal,title:"Ladepunkt löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:a[0]||(a[0]=l=>d.removeChargePoint(c.modalChargePointIndex,l))},{default:o(()=>[s(' Wollen Sie den Ladepunkt "'+v(d.getChargePointName(c.modalChargePointIndex))+'" (ID: '+v(c.modalChargePointIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),n(C,{show:c.showChargePointTemplateModal,title:"Ladepunkt-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:a[1]||(a[1]=l=>d.removeChargePointTemplate(c.modalChargePointTemplateIndex,l))},{default:o(()=>[s(' Wollen Sie das Ladepunkt-Profil "'+v(d.getChargePointTemplateName(c.modalChargePointTemplateIndex))+'" (ID: '+v(c.modalChargePointTemplateIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),n(C,{show:c.showChargePointTemplateAutolockPlanModal,title:"Autolock Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:a[2]||(a[2]=l=>d.removeChargePointTemplateAutolockPlan(c.modalChargePointTemplateIndex,c.modalChargePointTemplateAutolockPlanIndex,l))},{default:o(()=>[s(' Wollen Sie den Autolock Zeitplan "'+v(d.getChargePointTemplateAutolockPlanName(c.modalChargePointTemplateIndex,c.modalChargePointTemplateAutolockPlanIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),p("div",ye,[p("form",Pe,[n(T,{title:"Ladepunkte",subtype:"primary",collapsible:!0,collapsed:!r.installAssistantActive},{header:o(()=>[n(b,{"fixed-width":"",icon:["fas","charging-station"]}),s(" Ladepunkte ")]),default:o(()=>[(i(!0),m(S,null,I(d.installedChargePoints,(l,u)=>(i(),f(T,{key:u,title:l.name+" (ID: "+l.id+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(t=>[t.collapsed?h("",!0):(i(),f(B,{key:0,class:"bg-danger clickable",onClick:k=>d.removeChargePointModal(u,k)},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:o(()=>[n(V,{title:"Bezeichnung",subtype:"text","model-value":l.name,"onUpdate:modelValue":t=>e.updateState(u,t,"name")},null,8,["model-value","onUpdate:modelValue"]),n(V,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":e.$store.state.mqtt[u].type},null,8,["model-value"]),l.type!=="internal_openwb"||e.$store.state.mqtt["openWB/general/extern"]===!1?(i(),m("span",Ve,[n(x,{title:"Ladepunkt-Profil",options:d.chargePointTemplateList,"model-value":e.$store.state.mqtt[u].template,"onUpdate:modelValue":t=>e.updateState(u,t,"template")},null,8,["options","model-value","onUpdate:modelValue"])])):h("",!0),Le,n(N,{chargePointId:l.id,chargePointType:e.$store.state.mqtt[u].type,moduleName:e.$store.state.mqtt[u].name,configuration:l.configuration,"onUpdate:configuration":t=>d.updateConfiguration(u,t)},null,8,["chargePointId","chargePointType","moduleName","configuration","onUpdate:configuration"]),(l.type!=="internal_openwb"||e.$store.state.mqtt["openWB/general/extern"]===!1)&&l.charging_type!=="DC"?(i(),m("div",Be,[Ae,n(A,null,{default:o(()=>[s("Hardware-Optionen")]),_:1}),n(y,{title:"automatische Phasenumschaltung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":l.auto_phase_switch_hw,"onUpdate:modelValue":t=>e.updateState(u,t,"auto_phase_switch_hw")},null,8,["model-value","onUpdate:modelValue"]),n(y,{title:"Control-Pilot-Unterbrechung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":l.control_pilot_interruption_hw,"onUpdate:modelValue":t=>e.updateState(u,t,"control_pilot_interruption_hw")},{help:o(()=>[s(' 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. ')]),_:2},1032,["model-value","onUpdate:modelValue"]),n(A,null,{default:o(()=>[s(" Elektrischer Anschluss ")]),_:1}),n(y,{title:"Anzahl angeschlossener Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":l.connected_phases,"onUpdate:modelValue":t=>e.updateState(u,t,"connected_phases")},null,8,["model-value","onUpdate:modelValue"]),n(y,{title:"Phase 1 des Ladekabels",buttons:[{buttonValue:1,text:"EVU L1"},{buttonValue:2,text:"EVU L2"},{buttonValue:3,text:"EVU L3"}],"model-value":l.phase_1,"onUpdate:modelValue":t=>e.updateState(u,t,"phase_1")},{help:o(()=>[s(" 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."),We,s(' 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.'),Se,s(" 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)."),Te,s(" 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."),Ie,s(" Im Zweifel bitte das Drehfeld von einer Fachkraft prüfen und korrigieren lassen. ")]),_:2},1032,["model-value","onUpdate:modelValue"])])):h("",!0)]),_:2},1032,["title"]))),128)),Object.keys(d.installedChargePoints).length>0?(i(),m("hr",Ue)):h("",!0),n(x,{class:"mb-2",title:"Verfügbare Ladepunkte",notSelected:"Bitte auswählen",options:d.getChargePointList(),"model-value":c.chargePointToAdd,"onUpdate:modelValue":a[3]||(a[3]=l=>c.chargePointToAdd=l)},{append:o(()=>[p("span",xe,[n(R,{class:F(c.chargePointToAdd===void 0?"btn-outline-success":"btn-success"),disabled:c.chargePointToAdd===void 0,onButtonClicked:d.addChargePoint},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","plus"]})]),_:1},8,["class","disabled","onButtonClicked"])])]),help:o(()=>[s(" Bitte einen Ladepunkt auswählen, der der openWB-Regelung hinzugefügt werden soll."),qe,ze]),_:1},8,["options","model-value"])]),_:1},8,["collapsed"]),Ee,n(T,{title:"Ladepunkt-Profile",collapsible:!0,collapsed:!0},{header:o(()=>[n(j,{"fixed-width":"",class:"fa-lg"},{default:o(()=>[n(b,{"fixed-width":"",icon:["far","file"]}),n(b,{"fixed-width":"",icon:["fas","charging-station"],transform:"shrink-8"})]),_:1}),s(" Ladepunkt-Profile ")]),actions:o(()=>[e.$store.state.mqtt["openWB/general/extern"]===!1?(i(),f(B,{key:0,class:"bg-success clickable",onClick:d.addChargePointTemplate},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","plus"]})]),_:1},8,["onClick"])):h("",!0)]),default:o(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(i(),m("div",De,[n(q,{subtype:"info"},{default:o(()=>[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(i(),m("div",Me,[(i(!0),m(S,null,I(d.chargePointTemplates,(l,u)=>(i(),f(T,{key:u,title:l.name+" (ID: "+d.getChargePointTemplateIndex(u)+")",collapsible:!0,collapsed:!0},O({default:o(()=>[n(V,{title:"Bezeichnung",subtype:"text","model-value":l.name,"onUpdate:modelValue":t=>e.updateState(u,t,"name"),disabled:u.endsWith("/0")},O({_:2},[u.endsWith("/0")?{name:"help",fn:o(()=>[s(" Das Standard-Profil kann nicht umbenannt werden. ")]),key:"0"}:void 0]),1032,["model-value","onUpdate:modelValue","disabled"]),d.dcChargingEnabled===!0?(i(),f(y,{key:0,title:"Typ des Ladeprofils",buttons:[{buttonValue:"AC",text:"AC"},{buttonValue:"DC",text:"DC"}],"model-value":l.charging_type,"onUpdate:modelValue":t=>e.updateState(u,t,"charging_type")},null,8,["model-value","onUpdate:modelValue"])):h("",!0),Fe,n(A,null,{default:o(()=>[s(" Zugangskontrolle ")]),_:1}),n(y,{title:"Sperre nach Abstecken",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":l.disable_after_unplug,"onUpdate:modelValue":t=>e.updateState(u,t,"disable_after_unplug")},{help:o(()=>[s(" Sperrt den Ladepunkt nach Abstecken eines Fahrzeuges ")]),_:2},1032,["model-value","onUpdate:modelValue"]),e.$store.state.mqtt["openWB/optional/rfid/active"]===!0&&!r.installAssistantActive?(i(),m("div",Oe,[l.disable_after_unplug?(i(),f(Z,{key:0,title:"Zugeordnete ID-Tags",noElementsMessage:"Keine ID-Tags zugeordnet.","model-value":l.valid_tags,"onUpdate:modelValue":t=>e.updateState(u,t,"valid_tags")},{help:o(()=>[s(" Die hier eingetragenen ID-Tags dienen ausschließlich zum Entsperren des Ladepunktes. ")]),_:2},1032,["model-value","onUpdate:modelValue"])):h("",!0)])):h("",!0),Ne,n(A,null,{default:o(()=>[s(" Angaben zum konfigurierten Ladestrom der openWB ")]),_:1}),n(q,{subtype:"info"},{default:o(()=>[s(" Hier werden die maximalen Ladeströme entsprechend der in dem zugeordneten Ladepunkt genutzten Phasen eingestellt."),Re,s(" Generell gilt, dass diese Werte in Übereinstimmung mit der Ausführung des Ladepunktes und des elektrischen Anschlusses bzw. der Absicherung zu wählen sind. "),l.charging_type==="AC"?(i(),m("span",je," 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. ")):h("",!0),Ze,s(" Komplexere Installationen mit mehreren Ladepunkten werden im "),Je,s(" beschrieben. ")]),_:2},1024),l.charging_type==="AC"||d.dcChargingEnabled!==!0?(i(),m("div",$e,[n(z,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":l.max_current_single_phase,"onUpdate:modelValue":t=>e.updateState(u,t,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),n(z,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":l.max_current_multi_phases,"onUpdate:modelValue":t=>e.updateState(u,t,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"])])):(i(),f(J,{key:3,title:"Maximalleistung",min:75,max:300,step:75,unit:"kW",precision:5,"model-value":e.ac_current2dc_power(l.dc_max_current),"onUpdate:modelValue":t=>e.updateState(u,e.dc_power2ac_current(t),"dc_max_current")},null,8,["model-value","onUpdate:modelValue"])),He,r.installAssistantActive?h("",!0):(i(),m("div",Ge,[Qe,n(A,null,{default:o(()=>[s("Automatische Sperre")]),_:1}),n(y,{title:"Automatische Sperre aktiv",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":l.autolock.active,"onUpdate:modelValue":t=>e.updateState(u,t,"autolock.active")},{help:o(()=>[s(" Wird die automatische Sperre 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. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(y,{title:"Erst nach Ladeende sperren",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":l.autolock.wait_for_charging_end,"onUpdate:modelValue":t=>e.updateState(u,t,"autolock.wait_for_charging_end")},{help:o(()=>[s(' Wenn ein Zeitplan die automatische Sperre 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. ')]),_:2},1032,["model-value","onUpdate:modelValue"]),n(A,null,{actions:o(()=>[n(B,{class:"bg-success clickable",onClick:t=>d.addChargePointTemplateAutolockPlan(u,t)},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","plus"]})]),_:2},1032,["onClick"])]),default:o(()=>[s(" Zeitpläne für die automatische Sperre ")]),_:2},1024)])),(i(!0),m(S,null,I(d.getChargePointTemplateAutolockPlans(u),(t,k)=>(i(),f(T,{key:k,title:t.name,collapsible:!0,collapsed:!0},{actions:o(_=>[_.collapsed==!0?(i(),m("span",{key:0,onClick:le(W=>e.updateState(k,!t.active,"active"),["stop"]),class:F(["subheader pill clickable",t.active?"bg-success":"bg-danger"])},[n(b,{"fixed-width":"",icon:["fas","clock"]}),s(" "+v(t.time[0])+" - "+v(t.time[1])+" ",1),t.frequency.selected=="once"?(i(),m("span",Ye,[n(b,{"fixed-width":"",icon:["fas","calendar-day"]}),s(" "+v(e.formatDate(t.frequency.once[0])==e.formatDate(t.frequency.once[1])?e.formatDate(t.frequency.once[0]):e.formatDate(t.frequency.once[0])+" - "+e.formatDate(t.frequency.once[1])),1)])):h("",!0),t.frequency.selected=="daily"?(i(),m("span",Ke,[n(b,{"fixed-width":"",icon:["fas","calendar-week"]})])):h("",!0),t.frequency.selected=="weekly"?(i(),m("span",et,[n(b,{"fixed-width":"",icon:["fas","calendar-alt"]})])):h("",!0)],10,Xe)):h("",!0),_.collapsed==!1?(i(),f(B,{key:1,class:"bg-danger clickable",onClick:W=>d.removeChargePointTemplateAutolockPlanModal(u,k,W)},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"])):h("",!0)]),default:o(()=>[n(V,{title:"Bezeichnung","model-value":t.name,"onUpdate:modelValue":_=>e.updateState(k,_,"name")},null,8,["model-value","onUpdate:modelValue"]),n(y,{title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.active,"onUpdate:modelValue":_=>e.updateState(k,_,"active")},null,8,["model-value","onUpdate:modelValue"]),n(V,{title:"Sperren um",subtype:"time","model-value":t.time[0],"onUpdate:modelValue":_=>e.updateState(k,_,"time.0")},null,8,["model-value","onUpdate:modelValue"]),n(V,{title:"Freigeben um",subtype:"time","model-value":t.time[1],"onUpdate:modelValue":_=>e.updateState(k,_,"time.1")},null,8,["model-value","onUpdate:modelValue"]),n(y,{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"}],"model-value":t.frequency.selected,"onUpdate:modelValue":_=>e.updateState(k,_,"frequency.selected")},null,8,["model-value","onUpdate:modelValue"]),t.frequency.selected=="once"?(i(),f(V,{key:0,title:"Sperren ab ...",subtype:"date","model-value":t.frequency.once[0],"onUpdate:modelValue":_=>e.updateState(k,_,"frequency.once.0")},null,8,["model-value","onUpdate:modelValue"])):h("",!0),t.frequency.selected=="once"?(i(),f(V,{key:1,title:"... bis",subtype:"date",min:t.frequency.once[0],"model-value":t.frequency.once[1],"onUpdate:modelValue":_=>e.updateState(k,_,"frequency.once.1")},null,8,["min","model-value","onUpdate:modelValue"])):h("",!0),t.frequency.selected=="weekly"?(i(),m("div",tt,[(i(!0),m(S,null,I(e.weekdays,(_,W)=>(i(),f(y,{key:W,title:_,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.frequency.weekly[W],"onUpdate:modelValue":H=>e.updateState(k,H,"frequency.weekly."+W)},null,8,["title","model-value","onUpdate:modelValue"]))),128))])):h("",!0)]),_:2},1032,["title"]))),128))]),_:2},[u.endsWith("/0")?void 0:{name:"actions",fn:o(t=>[t.collapsed?h("",!0):(i(),f(B,{key:0,class:"bg-danger clickable",onClick:k=>d.removeChargePointTemplateModal(u,k)},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),key:"0"}]),1032,["title"]))),128))]))]),_:1}),n($,{formName:"chargePointInstallationForm",onSave:a[4]||(a[4]=l=>e.$emit("save")),onReset:a[5]||(a[5]=l=>e.$emit("reset")),onDefaults:a[6]||(a[6]=l=>e.$emit("defaults"))})])])],64)}const pt=U(Ce,[["render",nt],["__scopeId","data-v-75fe5743"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ChargePointInstallation.vue"]]);export{pt as default}; diff --git a/web/settings/assets/Chart-3fbd17e3.js b/web/settings/assets/Chart-53af13b6.js similarity index 99% rename from web/settings/assets/Chart-3fbd17e3.js rename to web/settings/assets/Chart-53af13b6.js index 3365f576e4..fdce0bf91c 100644 --- a/web/settings/assets/Chart-3fbd17e3.js +++ b/web/settings/assets/Chart-53af13b6.js @@ -1 +1 @@ -import{l as L,K as T,P as H,O,N as j,V as q,W as M,F as V}from"./vendor-fortawesome-71546160.js";import{C as z}from"./index-ba5cf04c.js";import{C as P,p as E,a as B,L as K,b as N,B as F,f as J,P as $,c as X,T as Z,i as G,d as U,e as Y,g as Q}from"./vendor-chartjs-35992f4a.js";import{_ as ee,u as p,k as o,l as s,x as A,D as l,N as c,A as m,y as f,J as k,K as x,z as C,B as _}from"./vendor-f2b8aa6f.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";import"./vendor-luxon-8ddd27a0.js";L.add(T,H,O,j,q,M);P.register(E,B,K,N,F,J,$,X,Z,G,U);const te={name:"OpenwbChartView",components:{ChartjsLine:Y,FontAwesomeIcon:V},mixins:[z],emits:["sendCommand"],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:""}},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,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}},"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,day:this.chartRequestDate.year+this.chartRequestDate.month+this.chartRequestDate.day};switch(this.chartRange){case"month":e={date:this.chartRequestDate.year+this.chartRequestDate.month,month:this.chartRequestDate.year+this.chartRequestDate.month};break;case"year":e={date:this.chartRequestDate.year,year: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(r=>(r.timestamp=r.timestamp*1e3,r));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(r=>{Object.prototype.hasOwnProperty.call(t,r)&&(Object.prototype.hasOwnProperty.call(t[r],"all")&&(["bat","pv"].includes(r)&&Object.keys(t[r]).length<=2?delete t[r].all:t[r]={all:t[r].all,...t[r]}),Object.entries(t[r]).forEach(([n,i])=>{Object.keys(i).forEach(a=>{this.initDataset(r,n,a)})}))}),this.chartDatasets}}},methods:{handleChartClick(e){if(this.chartRange=="day")return;const t=this.$refs.myChart.chart;if(!t)return;const r=Q(t,e);if(!r.length)return;const{datasetIndex:n,index:i}=r[0],a=this.chartData.datasets[n].data[i].date;var y="",h="";switch(this.chartRange){case"month":y=a.substring(0,4)+"-"+a.substring(4,6)+"-"+a.substring(6),h="day";break;case"year":y=a.substring(0,4)+"-"+a.substring(4,6),h="month";break}this.blockChartInit=!0,this.chartDate=y,this.chartRange=h},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,r){return!!(["bat","pv","cp"].includes(e)&&Object.prototype.hasOwnProperty.call(this.chartTotals[e],"all")&&t!="all"||["grid","bat","pv","cp"].includes(r.split("_").pop()))},getTotalsLabel(e,t=void 0,r=void 0){var n="*test*";if(!t&&!r){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&&!r){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&&r){switch(e){case"bat":case"cp":switch(r){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,r)}break;case"counter":switch(r){case"imported":case"energy_imported":return"Bezug/Verbrauch";case"exported":case"energy_exported":return"Einspeisung/Erzeugung";default:console.warn("unknown measurement key:",e,r)}break;case"pv":switch(r){case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,r)}break;case"sh":switch(r){case"imported":case"energy_imported":return"Verbrauch";case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,r)}break;case"hc":switch(r){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,r)}break;default:console.warn("unknown group key:",e)}return"*"+e+"+"+t+"+"+r+"*"}return n},getDatasetLabel(e,t,r,n){var i=["*"+n],a=[];if(t=="all")switch(e!=="hc"&&a.push("Summe"),e){case"pv":i=["PV"];break;case"bat":switch(i=["Speicher"],r){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(r){case"soc":a.push("SoC");break;case"energy_imported":a.push("Ladung");break;case"energy_exported":a.push("Entladung");break;case"energy_imported_grid":a.push("Netz-Anteil");break;case"energy_imported_pv":a.push("PV-Anteil");break;case"energy_imported_bat":a.push("Speicher-Anteil");break;case"energy_imported_cp":a.push("Ladepunkt-Anteil");break}break;case"counter":switch(r){case"energy_imported":a.push("Bezug/Verbrauch");break;case"energy_exported":a.push("Einspeisung/Erzeugung");break}break;case"sh":switch(r){case"energy_imported":a.push("Verbrauch");break;case"energy_exported":a.push("Erzeugung");break}break;case"hc":switch(r){case"energy_imported_grid":a.push("Netz-Anteil");break;case"energy_imported_pv":a.push("PV-Anteil");break;case"energy_imported_bat":a.push("Speicher-Anteil");break;case"energy_imported_cp":a.push("Ladepunkt-Anteil");break}break}return`${i.join(" ")}${a.length?" ("+a.join(", ")+")":""}`},getDatasetIndex(e){let t=this.chartDatasets.datasets.findIndex(r=>r.jsonKey==e);if(t!=-1)return t},addDataset(e,t,r,n){if(!(Object.prototype.hasOwnProperty.call(this.chartTotals,e)&&!Object.prototype.hasOwnProperty.call(this.chartTotals[e],t))){var i=e+"-"+r;if(this.datasetTemplates[i]){var a=JSON.parse(JSON.stringify(this.datasetTemplates[i]));return a.parsing.yAxisKey=n,a.jsonKey=n,a.data=this.chartDataObject,a.label=this.getDatasetLabel(e,t,r,n),a.labelSuffix!=null&&(a.label=a.label+a.labelSuffix),a.hidden=this.hideDataset(e,t,r),t=="all"&&(["grid","pv","bat","cp"].includes(r.split("_").slice(-1)[0])||delete a.stack),this.chartDatasets.datasets.push(a)-1}else console.warn("no matching template found for: "+n+" with template: "+i)}},initDataset(e,t,r){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"],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+"."+r;if(n[e].includes(r)){var a=this.getDatasetIndex(i);a==null&&(a=this.addDataset(e,t,r,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.chartForm.reportValidity()){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()}},watch:{chartRange(){this.init()}},mounted(){this.init()}},ae={class:"chart"},re={name:"chartForm"},ie={key:1},ne={key:1},oe={class:"openwb-chart"},se={key:1};function le(e,t,r,n,i,a){const y=p("openwb-base-select-input"),h=p("openwb-base-text-input"),b=p("openwb-base-card"),v=p("openwb-base-alert"),R=p("chartjs-line"),w=p("font-awesome-icon"),S=p("openwb-base-heading");return o(),s("div",ae,[A("form",re,[l(b,{title:"Filter",collapsible:!0,collapsed:!1},{default:c(()=>[l(y,{title:"Zeitraum",modelValue:i.chartRange,"onUpdate:modelValue":t[0]||(t[0]=d=>i.chartRange=d),options:[{value:"day",text:"Tag"},{value:"month",text:"Monat"},{value:"year",text:"Jahr"}]},null,8,["modelValue"]),l(h,{title:a.dateInput.title,subtype:a.dateInput.type,min:a.dateInput.min,max:i.currentDate,showQuickButtons:!0,modelValue:a.chartDate,"onUpdate:modelValue":[t[1]||(t[1]=d=>a.chartDate=d),t[2]||(t[2]=d=>a.updateChart())]},null,8,["title","subtype","min","max","modelValue"])]),_:1}),a.chartDataRead?(o(),s("div",ie,[a.chartDataHasEntries?(o(),s("div",ne,[l(b,{title:"Diagramm",collapsible:!0,collapsed:!1},{default:c(()=>[A("div",oe,[l(R,{ref:"myChart",data:a.chartData,options:i.chartOptions,onClick:a.handleChartClick},null,8,["data","options","onClick"])])]),_:1}),l(b,{title:"Summen",collapsible:!0,collapsed:!0},{default:c(()=>[(o(!0),s(k,null,x(a.chartTotals,(d,u)=>(o(),s("div",{key:u},[Object.keys(d).length>0?(o(),m(b,{key:0,collapsible:!0,collapsed:!0,subtype:a.getCardSubtype(u)},{header:c(()=>[l(w,{"fixed-width":"",icon:a.getCardIcon(u)},null,8,["icon"]),f(" "+C(a.getTotalsLabel(u)),1)]),default:c(()=>[(o(!0),s(k,null,x(d,(I,g)=>(o(),s("div",{key:g},[u!=="hc"?(o(),m(S,{key:0},{default:c(()=>[f(C(a.getTotalsLabel(u,g)),1)]),_:2},1024)):_("",!0),(o(!0),s(k,null,x(I,(W,D)=>(o(),s("div",{key:D},[l(h,{title:a.getTotalsLabel(u,g,D),readonly:"",class:"text-right",unit:"kWh","model-value":e.formatNumber(W/1e3,3)},null,8,["title","model-value"])]))),128)),g=="all"?(o(),s("hr",se)):_("",!0)]))),128))]),_:2},1032,["subtype"])):_("",!0)]))),128))]),_:1})])):(o(),m(v,{key:0,subtype:"info"},{default:c(()=>[f(" Es konnten keine Daten für diesen Zeitraum gefunden werden. ")]),_:1}))])):(o(),m(v,{key:0,subtype:"info"},{default:c(()=>[f(" Es wurden noch keine Daten abgerufen. ")]),_:1}))])])}const fe=ee(te,[["render",le],["__scopeId","data-v-e00a7cd5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Chart.vue"]]);export{fe as default}; +import{l as L,K as T,P as H,O,N as j,V as q,W as M,F as V}from"./vendor-fortawesome-71546160.js";import{C as z}from"./index-88a2073c.js";import{C as P,p as E,a as B,L as K,b as N,B as F,f as J,P as $,c as X,T as Z,i as G,d as U,e as Y,g as Q}from"./vendor-chartjs-35992f4a.js";import{_ as ee,u as p,k as o,l as s,x as A,D as l,N as c,A as m,y as f,J as k,K as x,z as C,B as _}from"./vendor-f2b8aa6f.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";import"./vendor-luxon-8ddd27a0.js";L.add(T,H,O,j,q,M);P.register(E,B,K,N,F,J,$,X,Z,G,U);const te={name:"OpenwbChartView",components:{ChartjsLine:Y,FontAwesomeIcon:V},mixins:[z],emits:["sendCommand"],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:""}},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,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}},"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,day:this.chartRequestDate.year+this.chartRequestDate.month+this.chartRequestDate.day};switch(this.chartRange){case"month":e={date:this.chartRequestDate.year+this.chartRequestDate.month,month:this.chartRequestDate.year+this.chartRequestDate.month};break;case"year":e={date:this.chartRequestDate.year,year: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(r=>(r.timestamp=r.timestamp*1e3,r));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(r=>{Object.prototype.hasOwnProperty.call(t,r)&&(Object.prototype.hasOwnProperty.call(t[r],"all")&&(["bat","pv"].includes(r)&&Object.keys(t[r]).length<=2?delete t[r].all:t[r]={all:t[r].all,...t[r]}),Object.entries(t[r]).forEach(([n,i])=>{Object.keys(i).forEach(a=>{this.initDataset(r,n,a)})}))}),this.chartDatasets}}},methods:{handleChartClick(e){if(this.chartRange=="day")return;const t=this.$refs.myChart.chart;if(!t)return;const r=Q(t,e);if(!r.length)return;const{datasetIndex:n,index:i}=r[0],a=this.chartData.datasets[n].data[i].date;var y="",h="";switch(this.chartRange){case"month":y=a.substring(0,4)+"-"+a.substring(4,6)+"-"+a.substring(6),h="day";break;case"year":y=a.substring(0,4)+"-"+a.substring(4,6),h="month";break}this.blockChartInit=!0,this.chartDate=y,this.chartRange=h},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,r){return!!(["bat","pv","cp"].includes(e)&&Object.prototype.hasOwnProperty.call(this.chartTotals[e],"all")&&t!="all"||["grid","bat","pv","cp"].includes(r.split("_").pop()))},getTotalsLabel(e,t=void 0,r=void 0){var n="*test*";if(!t&&!r){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&&!r){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&&r){switch(e){case"bat":case"cp":switch(r){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,r)}break;case"counter":switch(r){case"imported":case"energy_imported":return"Bezug/Verbrauch";case"exported":case"energy_exported":return"Einspeisung/Erzeugung";default:console.warn("unknown measurement key:",e,r)}break;case"pv":switch(r){case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,r)}break;case"sh":switch(r){case"imported":case"energy_imported":return"Verbrauch";case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,r)}break;case"hc":switch(r){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,r)}break;default:console.warn("unknown group key:",e)}return"*"+e+"+"+t+"+"+r+"*"}return n},getDatasetLabel(e,t,r,n){var i=["*"+n],a=[];if(t=="all")switch(e!=="hc"&&a.push("Summe"),e){case"pv":i=["PV"];break;case"bat":switch(i=["Speicher"],r){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(r){case"soc":a.push("SoC");break;case"energy_imported":a.push("Ladung");break;case"energy_exported":a.push("Entladung");break;case"energy_imported_grid":a.push("Netz-Anteil");break;case"energy_imported_pv":a.push("PV-Anteil");break;case"energy_imported_bat":a.push("Speicher-Anteil");break;case"energy_imported_cp":a.push("Ladepunkt-Anteil");break}break;case"counter":switch(r){case"energy_imported":a.push("Bezug/Verbrauch");break;case"energy_exported":a.push("Einspeisung/Erzeugung");break}break;case"sh":switch(r){case"energy_imported":a.push("Verbrauch");break;case"energy_exported":a.push("Erzeugung");break}break;case"hc":switch(r){case"energy_imported_grid":a.push("Netz-Anteil");break;case"energy_imported_pv":a.push("PV-Anteil");break;case"energy_imported_bat":a.push("Speicher-Anteil");break;case"energy_imported_cp":a.push("Ladepunkt-Anteil");break}break}return`${i.join(" ")}${a.length?" ("+a.join(", ")+")":""}`},getDatasetIndex(e){let t=this.chartDatasets.datasets.findIndex(r=>r.jsonKey==e);if(t!=-1)return t},addDataset(e,t,r,n){if(!(Object.prototype.hasOwnProperty.call(this.chartTotals,e)&&!Object.prototype.hasOwnProperty.call(this.chartTotals[e],t))){var i=e+"-"+r;if(this.datasetTemplates[i]){var a=JSON.parse(JSON.stringify(this.datasetTemplates[i]));return a.parsing.yAxisKey=n,a.jsonKey=n,a.data=this.chartDataObject,a.label=this.getDatasetLabel(e,t,r,n),a.labelSuffix!=null&&(a.label=a.label+a.labelSuffix),a.hidden=this.hideDataset(e,t,r),t=="all"&&(["grid","pv","bat","cp"].includes(r.split("_").slice(-1)[0])||delete a.stack),this.chartDatasets.datasets.push(a)-1}else console.warn("no matching template found for: "+n+" with template: "+i)}},initDataset(e,t,r){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"],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+"."+r;if(n[e].includes(r)){var a=this.getDatasetIndex(i);a==null&&(a=this.addDataset(e,t,r,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.chartForm.reportValidity()){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()}},watch:{chartRange(){this.init()}},mounted(){this.init()}},ae={class:"chart"},re={name:"chartForm"},ie={key:1},ne={key:1},oe={class:"openwb-chart"},se={key:1};function le(e,t,r,n,i,a){const y=p("openwb-base-select-input"),h=p("openwb-base-text-input"),b=p("openwb-base-card"),v=p("openwb-base-alert"),R=p("chartjs-line"),w=p("font-awesome-icon"),S=p("openwb-base-heading");return o(),s("div",ae,[A("form",re,[l(b,{title:"Filter",collapsible:!0,collapsed:!1},{default:c(()=>[l(y,{title:"Zeitraum",modelValue:i.chartRange,"onUpdate:modelValue":t[0]||(t[0]=d=>i.chartRange=d),options:[{value:"day",text:"Tag"},{value:"month",text:"Monat"},{value:"year",text:"Jahr"}]},null,8,["modelValue"]),l(h,{title:a.dateInput.title,subtype:a.dateInput.type,min:a.dateInput.min,max:i.currentDate,showQuickButtons:!0,modelValue:a.chartDate,"onUpdate:modelValue":[t[1]||(t[1]=d=>a.chartDate=d),t[2]||(t[2]=d=>a.updateChart())]},null,8,["title","subtype","min","max","modelValue"])]),_:1}),a.chartDataRead?(o(),s("div",ie,[a.chartDataHasEntries?(o(),s("div",ne,[l(b,{title:"Diagramm",collapsible:!0,collapsed:!1},{default:c(()=>[A("div",oe,[l(R,{ref:"myChart",data:a.chartData,options:i.chartOptions,onClick:a.handleChartClick},null,8,["data","options","onClick"])])]),_:1}),l(b,{title:"Summen",collapsible:!0,collapsed:!0},{default:c(()=>[(o(!0),s(k,null,x(a.chartTotals,(d,u)=>(o(),s("div",{key:u},[Object.keys(d).length>0?(o(),m(b,{key:0,collapsible:!0,collapsed:!0,subtype:a.getCardSubtype(u)},{header:c(()=>[l(w,{"fixed-width":"",icon:a.getCardIcon(u)},null,8,["icon"]),f(" "+C(a.getTotalsLabel(u)),1)]),default:c(()=>[(o(!0),s(k,null,x(d,(I,g)=>(o(),s("div",{key:g},[u!=="hc"?(o(),m(S,{key:0},{default:c(()=>[f(C(a.getTotalsLabel(u,g)),1)]),_:2},1024)):_("",!0),(o(!0),s(k,null,x(I,(W,D)=>(o(),s("div",{key:D},[l(h,{title:a.getTotalsLabel(u,g,D),readonly:"",class:"text-right",unit:"kWh","model-value":e.formatNumber(W/1e3,3)},null,8,["title","model-value"])]))),128)),g=="all"?(o(),s("hr",se)):_("",!0)]))),128))]),_:2},1032,["subtype"])):_("",!0)]))),128))]),_:1})])):(o(),m(v,{key:0,subtype:"info"},{default:c(()=>[f(" Es konnten keine Daten für diesen Zeitraum gefunden werden. ")]),_:1}))])):(o(),m(v,{key:0,subtype:"info"},{default:c(()=>[f(" Es wurden noch keine Daten abgerufen. ")]),_:1}))])])}const fe=ee(te,[["render",le],["__scopeId","data-v-e00a7cd5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Chart.vue"]]);export{fe as default}; diff --git a/web/settings/assets/CloudConfig-2dc63c4a.js b/web/settings/assets/CloudConfig-28061265.js similarity index 99% rename from web/settings/assets/CloudConfig-2dc63c4a.js rename to web/settings/assets/CloudConfig-28061265.js index a2560bdaf7..0e0c013abc 100644 --- a/web/settings/assets/CloudConfig-2dc63c4a.js +++ b/web/settings/assets/CloudConfig-28061265.js @@ -1 +1 @@ -import{l as S,$ as q,F as P}from"./vendor-fortawesome-71546160.js";import{C as z}from"./index-ba5cf04c.js";import{_ as Z,u as d,k as l,l as f,D as r,N as t,x as p,A as m,B as i,a4 as v,J as I,y as s,q as k}from"./vendor-f2b8aa6f.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";S.add(q);const x={name:"OpenwbCloudConfigView",mixins:[z],emits:["sendCommand"],components:{FontAwesomeIcon:P},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 o=this.getWildcardTopics("openWB/system/mqtt/bridge/+");for(const[e,y]of Object.entries(o))y.remote.is_openwb_cloud||delete o[e];return o}},cloudBridgeKey:{get(){for(const[o,e]of Object.entries(this.cloudBridge))if(e.remote.is_openwb_cloud)return o}},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(o){return parseInt(o.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(o){o.stopPropagation(),this.showCloudRemoveModal=!0},removeCloud(o){this.showCloudRemoveModal=!1,o=="confirm"&&(console.info("request removal of cloud"),this.updateState("openWB/system/mqtt/valid_partner_ids",[]),this.$emit("sendCommand",{command:"removeMqttBridge",data:{bridge:this.getMqttBridgeIndex(this.cloudBridgeKey)}}),this.enableCloudConnectButton=!0)}}},M={class:"cloud-config"},K={key:1},U={key:1,name:"cloudConfigCreateForm"},N=p("a",{href:"mailto:support@openwb.de",subject:"Cloud Zugangsdaten"}," support@openwb.de ",-1),A={class:"row justify-content-center"},R={key:2,name:"cloudConfigConnectForm"},F={class:"row justify-content-center"},j={key:3,name:"cloudConfigured"},E=p("span",null,[s(" Mit diesen Zugangsdaten können Sie sich in der "),p("a",{href:"https://remote.openwb.de/",target:"_blank",rel:"noopener noreferrer"}," openWB Cloud "),s(" anmelden. ")],-1),G=p("hr",null,null,-1),T={class:"row justify-content-center"};function L(o,e,y,O,a,u){const D=d("openwb-base-modal-dialog"),h=d("router-link"),g=d("openwb-base-alert"),c=d("openwb-base-text-input"),w=d("openwb-base-button-group-input"),b=d("font-awesome-icon"),C=d("openwb-base-array-input"),B=d("openwb-base-click-button"),_=d("openwb-base-card"),V=d("openwb-base-heading"),W=d("openwb-base-submit-buttons");return l(),f(I,null,[r(D,{show:a.showCloudRemoveModal,title:"Cloud Zugang löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=n=>u.removeCloud(n))},{default:t(()=>[s(" Wollen Sie den vorhandenen Cloud Zugang wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ")]),_:1},8,["show"]),p("div",M,[o.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(l(),m(g,{key:0,subtype:"danger"},{default:t(()=>[s(" Sie müssen der "),r(h,{to:"/System/LegalSettings"},{default:t(()=>[s(" Datenschutzerklärung ")]),_:1}),s(" zustimmen, um die openWB Cloud nutzen zu können. ")]),_:1})):(l(),f("div",K,[r(g,{subtype:"success"},{default:t(()=>[s(" Sie haben der "),r(h,{to:"/System/LegalSettings"},{default:t(()=>[s(" Datenschutzerklärung ")]),_:1}),s(" zugestimmt und können die openWB Cloud nutzen. ")]),_:1}),a.enableRemoveCloudButton?i("",!0):(l(),m(g,{key:0,subtype:"warning"},{default:t(()=>[s(" Der Zugang wurde entfernt. Bitte starten Sie die openWB neu, um die Änderungen anzuwenden! ")]),_:1})),u.cloudBridgeKey?i("",!0):(l(),f("form",U,[r(_,{title:"Neuen Zugang erstellen"},v({default:t(()=>[r(g,{subtype:"warning"},{default:t(()=>[s(" Derzeit können keine neuen Zugänge für die openWB Cloud angelegt werden. Bitte nutzen Sie die in/an der openWB notierten Zugangsdaten im unteren Bereich dieser Seite. Wenn bei einer gekauften openWB keine Zugangsdaten vorhanden sind, schreiben Sie bitte eine Mail unter Angabe der Bestell- und/oder Seriennummer an "),N,s(" . ")]),_:1}),r(c,{title:"Benutzername",required:"",subtype:"user",pattern:"[a-zA-Z]+",modelValue:a.newCloudData.username,"onUpdate:modelValue":e[1]||(e[1]=n=>a.newCloudData.username=n),disabled:""},null,8,["modelValue"]),r(c,{title:"E-Mail",required:"",subtype:"email",modelValue:a.newCloudData.email,"onUpdate:modelValue":e[2]||(e[2]=n=>a.newCloudData.email=n),disabled:""},null,8,["modelValue"]),r(w,{disabled:"",title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],modelValue:a.newCloudData.partner,"onUpdate:modelValue":e[3]||(e[3]=n=>a.newCloudData.partner=n)},{help:t(()=>[s(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ")]),_:1},8,["modelValue"]),a.newCloudData.partner?(l(),m(C,{key:0,title:"Gültige Partner-IDs",noElementsMessage:"Keine Partner-ID zugeordnet.","model-value":o.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[4]||(e[4]=n=>o.updateState("openWB/system/mqtt/valid_partner_ids",n))},{"input-prefix":t(()=>[r(b,{"fixed-width":"",icon:["fas","user-gear"]})]),"element-prefix":t(()=>[r(b,{"fixed-width":"",icon:["fas","user-gear"]})]),help:t(()=>[s(" 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},8,["model-value"])):i("",!0)]),_:2},[o.$store.state.mqtt["openWB/general/extern"]===!1&&o.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:t(()=>[p("div",A,[r(B,{class:"col-4 btn-outline-success",disabled:""},{default:t(()=>[s(" Zugang erstellen ")]),_:1})])]),key:"0"}:void 0]),1024),a.enableNewCloudButton?i("",!0):(l(),m(g,{key:0,subtype:"info",class:"mb-2"},{default:t(()=>[s(" Der neue Zugang wird eingerichtet. Dieser Vorgang kann bis zu einer Minute dauern. Bitte warten. ")]),_:1}))])),u.cloudBridgeKey?i("",!0):(l(),f("form",R,[r(_,{title:"Vorhandenen Zugang einrichten"},v({default:t(()=>[r(c,{title:"Benutzername",required:"",subtype:"user",modelValue:a.connectCloudData.username,"onUpdate:modelValue":e[5]||(e[5]=n=>a.connectCloudData.username=n)},null,8,["modelValue"]),r(c,{title:"Passwort",required:"",subtype:"password",modelValue:a.connectCloudData.password,"onUpdate:modelValue":e[6]||(e[6]=n=>a.connectCloudData.password=n)},null,8,["modelValue"]),r(w,{title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],modelValue:a.connectCloudData.partner,"onUpdate:modelValue":e[7]||(e[7]=n=>a.connectCloudData.partner=n)},{help:t(()=>[s(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ")]),_:1},8,["modelValue"]),a.connectCloudData.partner?(l(),m(C,{key:0,title:"Gültige Partner-IDs",noElementsMessage:"Keine Partner-ID zugeordnet.","model-value":o.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[8]||(e[8]=n=>o.updateState("openWB/system/mqtt/valid_partner_ids",n))},{"input-prefix":t(()=>[r(b,{"fixed-width":"",icon:["fas","user-gear"]})]),"element-prefix":t(()=>[r(b,{"fixed-width":"",icon:["fas","user-gear"]})]),help:t(()=>[s(" 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},8,["model-value"])):i("",!0)]),_:2},[o.$store.state.mqtt["openWB/general/extern"]===!1&&o.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:t(()=>[p("div",F,[r(B,{class:k(["col-4",a.enableCloudConnectButton?"btn-success":"btn-outline-success"]),disabled:!a.enableCloudConnectButton,onButtonClicked:u.connectCloud},{default:t(()=>[s(" Mit Cloud verbinden ")]),_:1},8,["class","disabled","onButtonClicked"])])]),key:"0"}:void 0]),1024)])),u.cloudBridgeKey?(l(),f("form",j,[!a.enableCloudConnectButton||!a.enableNewCloudButton?(l(),m(g,{key:0,subtype:"warning"},{default:t(()=>[s(" Der Zugang wurde eingerichtet. Bitte starten Sie die openWB neu, um die Änderungen anzuwenden! ")]),_:1})):i("",!0),r(_,{title:"Vorhandener Cloud Zugang"},{footer:t(()=>[p("div",T,[r(B,{class:k(["col-4",a.enableRemoveCloudButton?"btn-danger":"btn-outline-danger"]),disabled:!a.enableRemoveCloudButton,onButtonClicked:e[13]||(e[13]=n=>u.removeCloudModal(n))},{default:t(()=>[s(" Zugang löschen ")]),_:1},8,["class","disabled"])])]),default:t(()=>[r(V,null,{default:t(()=>[E]),_:1}),r(c,{title:"Benutzername",required:"",subtype:"user",modelValue:u.cloudSettings.username,"onUpdate:modelValue":e[9]||(e[9]=n=>u.cloudSettings.username=n),disabled:""},null,8,["modelValue"]),r(c,{title:"Passwort",required:"",subtype:"password",modelValue:u.cloudSettings.password,"onUpdate:modelValue":e[10]||(e[10]=n=>u.cloudSettings.password=n),disabled:""},null,8,["modelValue"]),G,r(w,{title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":u.cloudSettings.partner,"onUpdate:modelValue":e[11]||(e[11]=n=>o.updateState(u.cloudBridgeKey,n,"access.partner"))},{help:t(()=>[s(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ")]),_:1},8,["model-value"]),u.cloudSettings.partner?(l(),m(C,{key:0,title:"Gültige Partner-IDs",noElementsMessage:"Keine Partner-ID zugeordnet.","model-value":o.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[12]||(e[12]=n=>o.updateState("openWB/system/mqtt/valid_partner_ids",n))},{"input-prefix":t(()=>[r(b,{"fixed-width":"",icon:["fas","user-gear"]})]),"element-prefix":t(()=>[r(b,{"fixed-width":"",icon:["fas","user-gear"]})]),help:t(()=>[s(" 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},8,["model-value"])):i("",!0)]),_:1})])):i("",!0),u.cloudBridgeKey?(l(),m(W,{key:4,formName:"cloudConfigured",onSave:e[14]||(e[14]=n=>o.$emit("save")),onReset:e[15]||(e[15]=n=>o.$emit("reset")),onDefaults:e[16]||(e[16]=n=>o.$emit("defaults"))})):i("",!0)]))])],64)}const te=Z(x,[["render",L],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/CloudConfig.vue"]]);export{te as default}; +import{l as S,$ as q,F as P}from"./vendor-fortawesome-71546160.js";import{C as z}from"./index-88a2073c.js";import{_ as Z,u as d,k as l,l as f,D as r,N as t,x as p,A as m,B as i,a4 as v,J as I,y as s,q as k}from"./vendor-f2b8aa6f.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";S.add(q);const x={name:"OpenwbCloudConfigView",mixins:[z],emits:["sendCommand"],components:{FontAwesomeIcon:P},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 o=this.getWildcardTopics("openWB/system/mqtt/bridge/+");for(const[e,y]of Object.entries(o))y.remote.is_openwb_cloud||delete o[e];return o}},cloudBridgeKey:{get(){for(const[o,e]of Object.entries(this.cloudBridge))if(e.remote.is_openwb_cloud)return o}},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(o){return parseInt(o.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(o){o.stopPropagation(),this.showCloudRemoveModal=!0},removeCloud(o){this.showCloudRemoveModal=!1,o=="confirm"&&(console.info("request removal of cloud"),this.updateState("openWB/system/mqtt/valid_partner_ids",[]),this.$emit("sendCommand",{command:"removeMqttBridge",data:{bridge:this.getMqttBridgeIndex(this.cloudBridgeKey)}}),this.enableCloudConnectButton=!0)}}},M={class:"cloud-config"},K={key:1},U={key:1,name:"cloudConfigCreateForm"},N=p("a",{href:"mailto:support@openwb.de",subject:"Cloud Zugangsdaten"}," support@openwb.de ",-1),A={class:"row justify-content-center"},R={key:2,name:"cloudConfigConnectForm"},F={class:"row justify-content-center"},j={key:3,name:"cloudConfigured"},E=p("span",null,[s(" Mit diesen Zugangsdaten können Sie sich in der "),p("a",{href:"https://remote.openwb.de/",target:"_blank",rel:"noopener noreferrer"}," openWB Cloud "),s(" anmelden. ")],-1),G=p("hr",null,null,-1),T={class:"row justify-content-center"};function L(o,e,y,O,a,u){const D=d("openwb-base-modal-dialog"),h=d("router-link"),g=d("openwb-base-alert"),c=d("openwb-base-text-input"),w=d("openwb-base-button-group-input"),b=d("font-awesome-icon"),C=d("openwb-base-array-input"),B=d("openwb-base-click-button"),_=d("openwb-base-card"),V=d("openwb-base-heading"),W=d("openwb-base-submit-buttons");return l(),f(I,null,[r(D,{show:a.showCloudRemoveModal,title:"Cloud Zugang löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=n=>u.removeCloud(n))},{default:t(()=>[s(" Wollen Sie den vorhandenen Cloud Zugang wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ")]),_:1},8,["show"]),p("div",M,[o.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(l(),m(g,{key:0,subtype:"danger"},{default:t(()=>[s(" Sie müssen der "),r(h,{to:"/System/LegalSettings"},{default:t(()=>[s(" Datenschutzerklärung ")]),_:1}),s(" zustimmen, um die openWB Cloud nutzen zu können. ")]),_:1})):(l(),f("div",K,[r(g,{subtype:"success"},{default:t(()=>[s(" Sie haben der "),r(h,{to:"/System/LegalSettings"},{default:t(()=>[s(" Datenschutzerklärung ")]),_:1}),s(" zugestimmt und können die openWB Cloud nutzen. ")]),_:1}),a.enableRemoveCloudButton?i("",!0):(l(),m(g,{key:0,subtype:"warning"},{default:t(()=>[s(" Der Zugang wurde entfernt. Bitte starten Sie die openWB neu, um die Änderungen anzuwenden! ")]),_:1})),u.cloudBridgeKey?i("",!0):(l(),f("form",U,[r(_,{title:"Neuen Zugang erstellen"},v({default:t(()=>[r(g,{subtype:"warning"},{default:t(()=>[s(" Derzeit können keine neuen Zugänge für die openWB Cloud angelegt werden. Bitte nutzen Sie die in/an der openWB notierten Zugangsdaten im unteren Bereich dieser Seite. Wenn bei einer gekauften openWB keine Zugangsdaten vorhanden sind, schreiben Sie bitte eine Mail unter Angabe der Bestell- und/oder Seriennummer an "),N,s(" . ")]),_:1}),r(c,{title:"Benutzername",required:"",subtype:"user",pattern:"[a-zA-Z]+",modelValue:a.newCloudData.username,"onUpdate:modelValue":e[1]||(e[1]=n=>a.newCloudData.username=n),disabled:""},null,8,["modelValue"]),r(c,{title:"E-Mail",required:"",subtype:"email",modelValue:a.newCloudData.email,"onUpdate:modelValue":e[2]||(e[2]=n=>a.newCloudData.email=n),disabled:""},null,8,["modelValue"]),r(w,{disabled:"",title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],modelValue:a.newCloudData.partner,"onUpdate:modelValue":e[3]||(e[3]=n=>a.newCloudData.partner=n)},{help:t(()=>[s(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ")]),_:1},8,["modelValue"]),a.newCloudData.partner?(l(),m(C,{key:0,title:"Gültige Partner-IDs",noElementsMessage:"Keine Partner-ID zugeordnet.","model-value":o.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[4]||(e[4]=n=>o.updateState("openWB/system/mqtt/valid_partner_ids",n))},{"input-prefix":t(()=>[r(b,{"fixed-width":"",icon:["fas","user-gear"]})]),"element-prefix":t(()=>[r(b,{"fixed-width":"",icon:["fas","user-gear"]})]),help:t(()=>[s(" 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},8,["model-value"])):i("",!0)]),_:2},[o.$store.state.mqtt["openWB/general/extern"]===!1&&o.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:t(()=>[p("div",A,[r(B,{class:"col-4 btn-outline-success",disabled:""},{default:t(()=>[s(" Zugang erstellen ")]),_:1})])]),key:"0"}:void 0]),1024),a.enableNewCloudButton?i("",!0):(l(),m(g,{key:0,subtype:"info",class:"mb-2"},{default:t(()=>[s(" Der neue Zugang wird eingerichtet. Dieser Vorgang kann bis zu einer Minute dauern. Bitte warten. ")]),_:1}))])),u.cloudBridgeKey?i("",!0):(l(),f("form",R,[r(_,{title:"Vorhandenen Zugang einrichten"},v({default:t(()=>[r(c,{title:"Benutzername",required:"",subtype:"user",modelValue:a.connectCloudData.username,"onUpdate:modelValue":e[5]||(e[5]=n=>a.connectCloudData.username=n)},null,8,["modelValue"]),r(c,{title:"Passwort",required:"",subtype:"password",modelValue:a.connectCloudData.password,"onUpdate:modelValue":e[6]||(e[6]=n=>a.connectCloudData.password=n)},null,8,["modelValue"]),r(w,{title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],modelValue:a.connectCloudData.partner,"onUpdate:modelValue":e[7]||(e[7]=n=>a.connectCloudData.partner=n)},{help:t(()=>[s(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ")]),_:1},8,["modelValue"]),a.connectCloudData.partner?(l(),m(C,{key:0,title:"Gültige Partner-IDs",noElementsMessage:"Keine Partner-ID zugeordnet.","model-value":o.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[8]||(e[8]=n=>o.updateState("openWB/system/mqtt/valid_partner_ids",n))},{"input-prefix":t(()=>[r(b,{"fixed-width":"",icon:["fas","user-gear"]})]),"element-prefix":t(()=>[r(b,{"fixed-width":"",icon:["fas","user-gear"]})]),help:t(()=>[s(" 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},8,["model-value"])):i("",!0)]),_:2},[o.$store.state.mqtt["openWB/general/extern"]===!1&&o.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:t(()=>[p("div",F,[r(B,{class:k(["col-4",a.enableCloudConnectButton?"btn-success":"btn-outline-success"]),disabled:!a.enableCloudConnectButton,onButtonClicked:u.connectCloud},{default:t(()=>[s(" Mit Cloud verbinden ")]),_:1},8,["class","disabled","onButtonClicked"])])]),key:"0"}:void 0]),1024)])),u.cloudBridgeKey?(l(),f("form",j,[!a.enableCloudConnectButton||!a.enableNewCloudButton?(l(),m(g,{key:0,subtype:"warning"},{default:t(()=>[s(" Der Zugang wurde eingerichtet. Bitte starten Sie die openWB neu, um die Änderungen anzuwenden! ")]),_:1})):i("",!0),r(_,{title:"Vorhandener Cloud Zugang"},{footer:t(()=>[p("div",T,[r(B,{class:k(["col-4",a.enableRemoveCloudButton?"btn-danger":"btn-outline-danger"]),disabled:!a.enableRemoveCloudButton,onButtonClicked:e[13]||(e[13]=n=>u.removeCloudModal(n))},{default:t(()=>[s(" Zugang löschen ")]),_:1},8,["class","disabled"])])]),default:t(()=>[r(V,null,{default:t(()=>[E]),_:1}),r(c,{title:"Benutzername",required:"",subtype:"user",modelValue:u.cloudSettings.username,"onUpdate:modelValue":e[9]||(e[9]=n=>u.cloudSettings.username=n),disabled:""},null,8,["modelValue"]),r(c,{title:"Passwort",required:"",subtype:"password",modelValue:u.cloudSettings.password,"onUpdate:modelValue":e[10]||(e[10]=n=>u.cloudSettings.password=n),disabled:""},null,8,["modelValue"]),G,r(w,{title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":u.cloudSettings.partner,"onUpdate:modelValue":e[11]||(e[11]=n=>o.updateState(u.cloudBridgeKey,n,"access.partner"))},{help:t(()=>[s(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ")]),_:1},8,["model-value"]),u.cloudSettings.partner?(l(),m(C,{key:0,title:"Gültige Partner-IDs",noElementsMessage:"Keine Partner-ID zugeordnet.","model-value":o.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[12]||(e[12]=n=>o.updateState("openWB/system/mqtt/valid_partner_ids",n))},{"input-prefix":t(()=>[r(b,{"fixed-width":"",icon:["fas","user-gear"]})]),"element-prefix":t(()=>[r(b,{"fixed-width":"",icon:["fas","user-gear"]})]),help:t(()=>[s(" 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},8,["model-value"])):i("",!0)]),_:1})])):i("",!0),u.cloudBridgeKey?(l(),m(W,{key:4,formName:"cloudConfigured",onSave:e[14]||(e[14]=n=>o.$emit("save")),onReset:e[15]||(e[15]=n=>o.$emit("reset")),onDefaults:e[16]||(e[16]=n=>o.$emit("defaults"))})):i("",!0)]))])],64)}const te=Z(x,[["render",L],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/CloudConfig.vue"]]);export{te as default}; diff --git a/web/settings/assets/DataManagement-8e5bac9a.js b/web/settings/assets/DataManagement-8e5bac9a.js deleted file mode 100644 index a1ac278e57..0000000000 --- a/web/settings/assets/DataManagement-8e5bac9a.js +++ /dev/null @@ -1 +0,0 @@ -import{l as L,af as V,ag as z,ah as R,ai as j,aj as H,F as E}from"./vendor-fortawesome-71546160.js";import{_ as B,C as P}from"./index-ba5cf04c.js";import{_ as N}from"./dynamic-import-helper-be004503.js";import{_ as W,u as m,k as r,l as b,A as w,N as l,y as s,z as k,D as n,x as o,a2 as U,a3 as q,J as O,B as v,q as D,K as M,a4 as I}from"./vendor-f2b8aa6f.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const G={name:"BackupCloudConfigFallback",emits:["update:configuration"],props:{backupCloud:{type:Object,required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},J={class:"backup-cloud-fallback"},Z={key:1};function K(t,e,u,f,a,i){const h=m("openwb-base-alert"),c=m("openwb-base-textarea");return r(),b("div",J,[Object.keys(u.backupCloud.configuration).length==0?(r(),w(h,{key:0,subtype:"info"},{default:l(()=>[s(' Die Backup-Cloud "'+k(u.backupCloud.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(r(),b("div",Z,[n(h,{subtype:"warning"},{default:l(()=>[s(' Es wurde keine Konfigurationsseite für die Backup-Cloud "'+k(u.backupCloud.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(c,{title:"Konfiguration",subtype:"json","model-value":u.backupCloud.configuration,"onUpdate:modelValue":e[0]||(e[0]=y=>i.updateConfiguration(y,"configuration"))},{help:l(()=>[s(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ")]),_:1},8,["model-value"]),n(h,{subtype:"info"},{default:l(()=>[o("pre",null,k(JSON.stringify(u.backupCloud.configuration,void 0,2)),1)]),_:1})]))])}const Q=W(G,[["render",K],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudConfigFallback.vue"]]),X={name:"OpenwbBackupCloudProxy",emits:["update:configuration","sendCommand"],props:{backupCloud:{type:Object,required:!0}},computed:{myComponent(){return console.debug(`loading backup cloud: ${this.backupCloud.type}`),U({loader:()=>N(Object.assign({"./nextcloud/backup_cloud.vue":()=>B(()=>import("./backup_cloud-190eaa49.js"),["assets/backup_cloud-190eaa49.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./nfs/backup_cloud.vue":()=>B(()=>import("./backup_cloud-17c766db.js"),["assets/backup_cloud-17c766db.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./onedrive/backup_cloud.vue":()=>B(()=>import("./backup_cloud-198617e1.js"),["assets/backup_cloud-198617e1.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./samba/backup_cloud.vue":()=>B(()=>import("./backup_cloud-f0bc932b.js"),["assets/backup_cloud-f0bc932b.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"])}),`./${this.backupCloud.type}/backup_cloud.vue`),errorComponent:Q})}},methods:{updateConfiguration(t){this.$emit("update:configuration",t)},sendCommand(t){this.$emit("sendCommand",t)}}};function Y(t,e,u,f,a,i){const h=m("openwb-base-heading");return r(),b(O,null,[n(h,null,{default:l(()=>[s(' Einstellungen für Backup-Cloud Modul "'+k(u.backupCloud.name)+'" ',1)]),_:1}),(r(),w(q(i.myComponent),{backupCloud:u.backupCloud,"onUpdate:configuration":e[0]||(e[0]=c=>i.updateConfiguration(c)),onSendCommand:e[1]||(e[1]=c=>i.sendCommand(c))},null,40,["backupCloud"]))],64)}const $=W(X,[["render",Y],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudProxy.vue"]]);L.add(V,z,R,j,H);const ee={name:"OpenwbDataManagementView",mixins:[P],emits:["sendCommand"],components:{FontAwesomeIcon:E,OpenwbBackupCloudProxy:$},props:{installAssistantActive:{type:Boolean,required:!1,default:!1},showBackupCloudSection:{type:Boolean,required:!1,default:!0}},data(){return{mqttTopicsToSubscribe:["openWB/system/configurable/backup_clouds","openWB/system/backup_cloud/config","openWB/system/backup_cloud/backup_before_update","openWB/system/device/+/component/+/config","openWB/chargepoint/+/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"]},{key:"sh10",label:"Gerät 10",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,sh10: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 t=this.getWildcardTopics("openWB/chargepoint/+/config");var e=[];for(const u of Object.values(t))e.push({value:u.id,text:u.name});return e},counterOptions(){var t=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"counter")&&t.push({value:e.id,text:e.name});return t},inverterOptions(){var t=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"inverter")&&t.push({value:e.id,text:e.name});return t},batteryOptions(){var t=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"bat")&&t.push({value:e.id,text:e.name});return t},vehicleOptions(){let t=this.getWildcardTopics("openWB/vehicle/+/name");var e=[];for(const[u,f]of Object.entries(t)){let a=parseInt(u.match(/\/(\d\d?)\//)[1]);e.push({value:a,text:f})}return e},smartHomeOptions(){let t=this.getWildcardTopics("openWB/LegacySmartHome/config/get/Devices/+/device_configured");var e=[];for(const[u,f]of Object.entries(t))if(f==1){let a=parseInt(u.match(/\/(\d\d?)\//)[1]);e.push({value:a,text:this.$store.state.mqtt[`openWB/LegacySmartHome/config/get/Devices/${a}/device_name`]})}return e}},methods:{isComponentType(t,e){return t.split("_").includes(e)},getBackupCloudDefaultConfiguration(t){const e=this.backupCloudList.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 backup cloud type!",t),{})},sendSystemCommand(t,e={}){this.$emit("sendCommand",{command:t,data:e})},getMigrationOptions(t){var e=[{value:void 0,text:"-- nicht übernehmen --"}];return t.includes("chargePoint")&&e.push(...this.chargePointOptions),t.includes("counter")&&e.push(...this.counterOptions),t.includes("inverter")&&e.push(...this.inverterOptions),t.includes("battery")&&e.push(...this.batteryOptions),t.includes("vehicle")&&e.push(...this.vehicleOptions),t.includes("smartHome")&&e.push(...this.smartHomeOptions),e},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)},updateSelectedBackupCloud(t){this.updateState("openWB/system/backup_cloud/config",t,"type"),this.updateState("openWB/system/backup_cloud/config",this.getBackupCloudDefaultConfiguration(t))},updateSelectedRestoreFile(t){this.selectedRestoreFile=t.target.files[0]},updateSelectedDataMigrationFile(t){this.selectedDataMigrationFile=t.target.files[0]},uploadFile(t,e,u){return new Promise(f=>{if(e!==void 0){this.$root.postClientMessage("Hochladen der Datei gestartet.","info");let a=new FormData;a.append("file",e),a.append("target",t),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/uploadFile.php",a,{headers:{"Content-Type":"multipart/form-data"}}).then(()=>{this.$root.postClientMessage(u,"success"),f(!0)}).catch(i=>{if(i.response){console.error(i.response.status,i.response.data);var h="Hochladen der Datei fehlgeschlagen!
"+i.response.status+": "+i.response.data}else i.request?(console.error(i.request),h+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",i.message),h+="Es ist ein unbekannter Fehler aufgetreten.");this.$root.postClientMessage(h,"danger"),f(!1)})}else console.error("no file selected for upload"),f(!1)})},async uploadRestoreFile(){const t="Die Sicherungsdatei wurde erfolgreich hochgeladen. Sie können die Wiederherstellung jetzt starten.";this.restoreUploadDone=await this.uploadFile("restore",this.selectedRestoreFile,t)},async uploadDataMigrationFile(){const t="Die Sicherungsdatei wurde erfolgreich hochgeladen. Sie können den Import jetzt starten.";this.dataMigrationUploadDone=await this.uploadFile("migrate",this.selectedDataMigrationFile,t)},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})}}},te={class:"system"},ne=o("h2",null,"Achtung!",-1),oe=o("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),se={key:1},ie={name:"backupForm"},ae=o("a",{href:"/openWB/data/backup/",target:"_blank"},"hier",-1),le={class:"row justify-content-center"},ue={class:"col-md-4 d-flex py-1 justify-content-center"},de={key:0,name:"restoreForm"},re=o("hr",null,null,-1),ce=o("br",null,null,-1),pe={class:"input-group"},me={class:"input-group-prepend"},he={class:"input-group-text"},be={class:"custom-file"},fe={id:"input-file-label",class:"custom-file-label",for:"input-file","data-browse":"Suchen"},ge={class:"input-group-append"},_e=["disabled"],ke={class:"row justify-content-center"},ye={class:"col-md-4 d-flex py-1 justify-content-center"},ve={key:1,name:"cloudBackupForm"},we=o("hr",null,null,-1),Ce=o("br",null,null,-1),Be=o("a",{href:"https://github.com/openWB/core/wiki/Cloud-Sicherung",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),De={key:0},Se={name:"dataMigrationForm"},Oe=o("br",null,null,-1),We=o("br",null,null,-1),Fe={class:"input-group"},Me={class:"input-group-prepend"},xe={class:"input-group-text"},Ae={class:"custom-file"},Te={id:"data-migration-file-label",class:"custom-file-label",for:"data-migration-file","data-browse":"Suchen"},Le={class:"input-group-append"},Ve=["disabled"],ze={class:"row justify-content-center"},Re={class:"col-md-4 d-flex py-1 justify-content-center"},je={key:1,name:"resetForm"},He={class:"row justify-content-center"},Ee={class:"col-md-4 d-flex py-1 justify-content-center"};function Pe(t,e,u,f,a,i){const h=m("openwb-base-button-group-input"),c=m("openwb-base-alert"),y=m("openwb-base-heading"),_=m("font-awesome-icon"),C=m("openwb-base-click-button"),F=m("openwb-base-select-input"),x=m("openwb-base-button-input"),A=m("openwb-backup-cloud-proxy"),T=m("openwb-base-submit-buttons"),S=m("openwb-base-card");return r(),b("div",te,[u.installAssistantActive?v("",!0):(r(),w(c,{key:0,subtype:"danger"},{default:l(()=>[ne,oe,n(h,{title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],modelValue:this.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=p=>this.warningAcknowledged=p)},null,8,["modelValue"])]),_:1})),a.warningAcknowledged||u.installAssistantActive?(r(),b("div",se,[n(S,{title:"Sicherung / Wiederherstellung",subtype:"success",collapsible:!0,collapsed:!u.installAssistantActive},{default:l(()=>{var p,g;return[o("form",ie,[n(y,null,{default:l(()=>[s("Sicherung")]),_:1}),n(c,{subtype:"danger"},{default:l(()=>[s(' Aktuell können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ')]),_:1}),n(c,{subtype:"info"},{default:l(()=>[s(" Nachdem die Sicherung abgeschlossen ist, kann die erstellte Datei über den Link in der Benachrichtigung oder "),ae,s(" 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}),o("div",le,[o("div",ue,[n(C,{class:"btn-success clickable",onButtonClicked:e[1]||(e[1]=d=>i.sendSystemCommand("createBackup",{use_extended_filename:!0}))},{default:l(()=>[s(" Sicherung erstellen "),n(_,{"fixed-width":"",icon:["fas","archive"]})]),_:1})])])]),a.showRestoreSection?(r(),b("form",de,[re,n(y,null,{default:l(()=>[s("Wiederherstellung")]),_:1}),n(c,{subtype:"danger"},{default:l(()=>[s(" Für die Wiederherstellung wird eine aktive Internetverbindung benötigt."),ce,s(' Aktuell können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ')]),_:1}),o("div",pe,[o("div",me,[o("div",he,[n(_,{"fixed-width":"",icon:["fas","file-archive"]})])]),o("div",be,[o("input",{id:"input-file",type:"file",class:"custom-file-input",accept:".tar.gz,application/gzip,application/tar+gzip",onChange:e[2]||(e[2]=d=>i.updateSelectedRestoreFile(d))},null,32),o("label",fe,k(a.selectedRestoreFile?a.selectedRestoreFile.name:"Bitte eine Datei auswählen"),1)]),o("div",ge,[o("button",{class:D(["btn",a.selectedRestoreFile?"btn-success clickable":"btn-outline-success"]),disabled:!a.selectedRestoreFile,type:"button",onClick:e[3]||(e[3]=d=>i.uploadRestoreFile())},[s(" Hochladen "),n(_,{"fixed-width":"",icon:["fas","upload"]})],10,_e)])]),o("div",ke,[o("div",ye,[n(C,{class:D(a.restoreUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!a.restoreUploadDone,onButtonClicked:e[4]||(e[4]=d=>i.restoreBackup())},{default:l(()=>[s(" Wiederherstellung starten "),n(_,{"fixed-width":"",icon:["fas","box-open"]})]),_:1},8,["class","disabled"])])])])):v("",!0),u.showBackupCloudSection?(r(),b("form",ve,[we,n(y,null,{default:l(()=>[s(" Automatische Sicherung in einen Cloud-Dienst ")]),_:1}),n(c,{subtype:"info"},{default:l(()=>[s(" Zwischen Mitternacht und 5:00 Uhr wird 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."),Ce,s(" Die Anleitung zur Konfiguration des Cloud-Dienstes findest Du "),Be,s(" . ")]),_:1}),n(F,{class:"mb-2",title:"Backup-Cloud",options:i.backupCloudList,"model-value":(p=t.$store.state.mqtt["openWB/system/backup_cloud/config"])==null?void 0:p.type,"onUpdate:modelValue":e[5]||(e[5]=d=>i.updateSelectedBackupCloud(d))},null,8,["options","model-value"]),(g=t.$store.state.mqtt["openWB/system/backup_cloud/config"])!=null&&g.type?(r(),b("div",De,[n(h,{title:"Sicherung vor System Update",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/backup_cloud/backup_before_update"],"onUpdate:modelValue":e[6]||(e[6]=d=>t.updateState("openWB/system/backup_cloud/backup_before_update",d))},{help:l(()=>[s(" Ist diese Option aktiviert, dann wird vor jedem System-Update automatisch eine Sicherung erstellt und diese in die Backup-Cloud hochgeladen. ")]),_:1},8,["model-value"]),n(x,{title:"Manuelle Cloud-Sicherung",buttonText:"Sicherung erstellen und hochladen",subtype:"success",onButtonClicked:e[7]||(e[7]=d=>i.sendSystemCommand("createCloudBackup",{}))}),n(A,{backupCloud:t.$store.state.mqtt["openWB/system/backup_cloud/config"],"onUpdate:configuration":e[8]||(e[8]=d=>i.updateConfiguration("openWB/system/backup_cloud/config",d)),onSendCommand:e[9]||(e[9]=d=>i.sendSystemCommand(d.command,d.args))},null,8,["backupCloud"])])):v("",!0),n(T,{formName:"cloudBackupForm",hideReset:!0,hideDefaults:!0,onSave:e[10]||(e[10]=d=>t.$emit("save")),onReset:e[11]||(e[11]=d=>t.$emit("reset")),onDefaults:e[12]||(e[12]=d=>t.$emit("defaults"))})])):v("",!0)]}),_:1},8,["collapsed"]),u.installAssistantActive?v("",!0):(r(),w(S,{key:0,title:"Datenübernahme",subtype:"success",collapsible:!0,collapsed:!0},{default:l(()=>[o("form",Se,[n(c,{subtype:"info"},{default:l(()=>[s(" Hier kann die Sicherung einer älteren 1.9er Version hochgeladen werden, um vorhandene historische Daten (Diagramme und Ladeprotokolle) sowie Cloud-Daten und Seriennummer in diese Installation zu importieren. Die Zuordnung zwischen den alten und neuen Komponenten muss manuell durchgeführt werden. ")]),_:1}),n(c,{subtype:"danger"},{default:l(()=>[s(" 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."),Oe,s(" Vor der Datenübernahme unbedingt eine Sicherung erstellen."),We,s(" Die Datenübernahme kann nur durch Einspielen einer Sicherung rückgängig gemacht werden! ")]),_:1}),o("div",Fe,[o("div",Me,[o("div",xe,[n(_,{"fixed-width":"",icon:["fas","file-archive"]})])]),o("div",Ae,[o("input",{id:"data-migration-file",type:"file",class:"custom-file-input",accept:".tar.gz,application/gzip,application/tar+gzip",onChange:e[13]||(e[13]=p=>i.updateSelectedDataMigrationFile(p))},null,32),o("label",Te,k(a.selectedDataMigrationFile?a.selectedDataMigrationFile.name:"Bitte eine Datei auswählen"),1)]),o("div",Le,[o("button",{class:D(["btn",a.selectedDataMigrationFile?"btn-success clickable":"btn-outline-success"]),disabled:!a.selectedDataMigrationFile,type:"button",onClick:e[14]||(e[14]=p=>i.uploadDataMigrationFile())},[s(" Hochladen "),n(_,{"fixed-width":"",icon:["fas","upload"]})],10,Ve)])]),n(y,null,{default:l(()=>[s("Zuordnung der Komponenten")]),_:1}),(r(!0),b(O,null,M(a.dataMigrationConfig,p=>(r(),b("div",{key:p.sectionName},[n(y,null,{default:l(()=>[s(k(p.sectionName),1)]),_:2},1024),(r(!0),b(O,null,M(p.sectionComponents,g=>(r(),w(F,{key:g.key,title:g.label,options:i.getMigrationOptions(g.validTypes),modelValue:a.dataMigrationMapping[g.key],"onUpdate:modelValue":d=>a.dataMigrationMapping[g.key]=d},I({_:2},[g.help?{name:"help",fn:l(()=>[s(k(g.help),1)]),key:"0"}:void 0]),1032,["title","options","modelValue","onUpdate:modelValue"]))),128))]))),128)),o("div",ze,[o("div",Re,[n(C,{class:D(a.dataMigrationUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!a.dataMigrationUploadDone,onButtonClicked:e[15]||(e[15]=p=>i.dataMigration())},{default:l(()=>[s(" Datenübernahme starten "),n(_,{"fixed-width":"",icon:["fas","box-open"]})]),_:1},8,["class","disabled"])])])])]),_:1})),u.installAssistantActive?v("",!0):(r(),b("form",je,[n(S,{title:"Zurücksetzen",subtype:"danger",collapsible:!0,collapsed:!0},{footer:l(()=>[o("div",He,[o("div",Ee,[n(C,{class:"btn-danger clickable",onButtonClicked:e[16]||(e[16]=p=>i.factoryReset())},{default:l(()=>[n(_,{"fixed-width":"",icon:["fas","skull-crossbones"]}),s(" Zurücksetzen "),n(_,{"fixed-width":"",icon:["fas","skull-crossbones"]})]),_:1})])])]),default:l(()=>[n(c,{subtype:"danger"},{default:l(()=>[s(" 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})]))])):v("",!0)])}const Qe=W(ee,[["render",Pe],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DataManagement.vue"]]);export{Qe as default}; diff --git a/web/settings/assets/DataManagement-f4b0feef.js b/web/settings/assets/DataManagement-f4b0feef.js new file mode 100644 index 0000000000..08a77aa5cb --- /dev/null +++ b/web/settings/assets/DataManagement-f4b0feef.js @@ -0,0 +1 @@ +import{l as L,af as V,ag as z,ah as R,ai as j,aj as H,F as E}from"./vendor-fortawesome-71546160.js";import{_ as B,C as P}from"./index-88a2073c.js";import{_ as N}from"./dynamic-import-helper-be004503.js";import{_ as W,u as m,k as r,l as b,A as w,N as l,y as i,z as k,D as o,x as n,a2 as U,a3 as q,J as O,B as v,q as D,K as M,a4 as I}from"./vendor-f2b8aa6f.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const G={name:"BackupCloudConfigFallback",emits:["update:configuration"],props:{backupCloud:{type:Object,required:!0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},J={class:"backup-cloud-fallback"},Z={key:1};function K(t,e,u,g,a,s){const h=m("openwb-base-alert"),c=m("openwb-base-textarea");return r(),b("div",J,[Object.keys(u.backupCloud.configuration).length==0?(r(),w(h,{key:0,subtype:"info"},{default:l(()=>[i(' Die Backup-Cloud "'+k(u.backupCloud.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(r(),b("div",Z,[o(h,{subtype:"warning"},{default:l(()=>[i(' Es wurde keine Konfigurationsseite für die Backup-Cloud "'+k(u.backupCloud.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),o(c,{title:"Konfiguration",subtype:"json","model-value":u.backupCloud.configuration,"onUpdate:modelValue":e[0]||(e[0]=y=>s.updateConfiguration(y,"configuration"))},{help:l(()=>[i(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ")]),_:1},8,["model-value"]),o(h,{subtype:"info"},{default:l(()=>[n("pre",null,k(JSON.stringify(u.backupCloud.configuration,void 0,2)),1)]),_:1})]))])}const Q=W(G,[["render",K],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudConfigFallback.vue"]]),X={name:"OpenwbBackupCloudProxy",emits:["update:configuration","sendCommand"],props:{backupCloud:{type:Object,required:!0}},computed:{myComponent(){return console.debug(`loading backup cloud: ${this.backupCloud.type}`),U({loader:()=>N(Object.assign({"./nextcloud/backup_cloud.vue":()=>B(()=>import("./backup_cloud-190eaa49.js"),["assets/backup_cloud-190eaa49.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./nfs/backup_cloud.vue":()=>B(()=>import("./backup_cloud-17c766db.js"),["assets/backup_cloud-17c766db.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./onedrive/backup_cloud.vue":()=>B(()=>import("./backup_cloud-198617e1.js"),["assets/backup_cloud-198617e1.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./samba/backup_cloud.vue":()=>B(()=>import("./backup_cloud-f0bc932b.js"),["assets/backup_cloud-f0bc932b.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"])}),`./${this.backupCloud.type}/backup_cloud.vue`),errorComponent:Q})}},methods:{updateConfiguration(t){this.$emit("update:configuration",t)},sendCommand(t){this.$emit("sendCommand",t)}}};function Y(t,e,u,g,a,s){const h=m("openwb-base-heading");return r(),b(O,null,[o(h,null,{default:l(()=>[i(' Einstellungen für Backup-Cloud Modul "'+k(u.backupCloud.name)+'" ',1)]),_:1}),(r(),w(q(s.myComponent),{backupCloud:u.backupCloud,"onUpdate:configuration":e[0]||(e[0]=c=>s.updateConfiguration(c)),onSendCommand:e[1]||(e[1]=c=>s.sendCommand(c))},null,40,["backupCloud"]))],64)}const $=W(X,[["render",Y],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudProxy.vue"]]);L.add(V,z,R,j,H);const ee={name:"OpenwbDataManagementView",mixins:[P],emits:["sendCommand"],components:{FontAwesomeIcon:E,OpenwbBackupCloudProxy:$},props:{installAssistantActive:{type:Boolean,required:!1,default:!1},showBackupCloudSection:{type:Boolean,required:!1,default:!0}},data(){return{mqttTopicsToSubscribe:["openWB/system/configurable/backup_clouds","openWB/system/backup_cloud/config","openWB/system/backup_cloud/backup_before_update","openWB/system/device/+/component/+/config","openWB/chargepoint/+/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"]},{key:"sh10",label:"Gerät 10",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,sh10: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 t=this.getWildcardTopics("openWB/chargepoint/+/config");var e=[];for(const u of Object.values(t))e.push({value:u.id,text:u.name});return e},counterOptions(){var t=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"counter")&&t.push({value:e.id,text:e.name});return t},inverterOptions(){var t=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"inverter")&&t.push({value:e.id,text:e.name});return t},batteryOptions(){var t=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"bat")&&t.push({value:e.id,text:e.name});return t},vehicleOptions(){let t=this.getWildcardTopics("openWB/vehicle/+/name");var e=[];for(const[u,g]of Object.entries(t)){let a=parseInt(u.match(/\/(\d\d?)\//)[1]);e.push({value:a,text:g})}return e},smartHomeOptions(){let t=this.getWildcardTopics("openWB/LegacySmartHome/config/get/Devices/+/device_configured");var e=[];for(const[u,g]of Object.entries(t))if(g==1){let a=parseInt(u.match(/\/(\d\d?)\//)[1]);e.push({value:a,text:this.$store.state.mqtt[`openWB/LegacySmartHome/config/get/Devices/${a}/device_name`]})}return e}},methods:{isComponentType(t,e){return t.split("_").includes(e)},getBackupCloudDefaultConfiguration(t){const e=this.backupCloudList.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 backup cloud type!",t),{})},sendSystemCommand(t,e={}){this.$emit("sendCommand",{command:t,data:e})},getMigrationOptions(t){var e=[{value:void 0,text:"-- nicht übernehmen --"}];return t.includes("chargePoint")&&e.push(...this.chargePointOptions),t.includes("counter")&&e.push(...this.counterOptions),t.includes("inverter")&&e.push(...this.inverterOptions),t.includes("battery")&&e.push(...this.batteryOptions),t.includes("vehicle")&&e.push(...this.vehicleOptions),t.includes("smartHome")&&e.push(...this.smartHomeOptions),e},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)},updateSelectedBackupCloud(t){this.updateState("openWB/system/backup_cloud/config",t,"type"),this.updateState("openWB/system/backup_cloud/config",this.getBackupCloudDefaultConfiguration(t))},updateSelectedRestoreFile(t){this.selectedRestoreFile=t.target.files[0]},updateSelectedDataMigrationFile(t){this.selectedDataMigrationFile=t.target.files[0]},uploadFile(t,e,u){return new Promise(g=>{if(e!==void 0){this.$root.postClientMessage("Hochladen der Datei gestartet.","info");let a=new FormData;a.append("file",e),a.append("target",t),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/uploadFile.php",a,{headers:{"Content-Type":"multipart/form-data"}}).then(()=>{this.$root.postClientMessage(u,"success"),g(!0)}).catch(s=>{if(s.response){console.error(s.response.status,s.response.data);var h="Hochladen der Datei fehlgeschlagen!
"+s.response.status+": "+s.response.data}else s.request?(console.error(s.request),h+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",s.message),h+="Es ist ein unbekannter Fehler aufgetreten.");this.$root.postClientMessage(h,"danger"),g(!1)})}else console.error("no file selected for upload"),g(!1)})},async uploadRestoreFile(){const t="Die Sicherungsdatei wurde erfolgreich hochgeladen. Sie können die Wiederherstellung jetzt starten.";this.restoreUploadDone=await this.uploadFile("restore",this.selectedRestoreFile,t)},async uploadDataMigrationFile(){const t="Die Sicherungsdatei wurde erfolgreich hochgeladen. Sie können den Import jetzt starten.";this.dataMigrationUploadDone=await this.uploadFile("migrate",this.selectedDataMigrationFile,t)},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})}}},te={class:"system"},ne=n("h2",null,"Achtung!",-1),oe=n("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),ie={key:1},se={name:"backupForm"},ae=n("a",{href:"/openWB/data/backup/",target:"_blank"},"hier",-1),le={class:"row justify-content-center"},ue={class:"col-md-4 d-flex py-1 justify-content-center"},de={key:0,name:"restoreForm"},re=n("hr",null,null,-1),ce=n("br",null,null,-1),pe={class:"input-group"},me={class:"input-group-prepend"},he={class:"input-group-text"},be={class:"custom-file"},ge={id:"input-file-label",class:"custom-file-label",for:"input-file","data-browse":"Suchen"},fe={class:"input-group-append"},_e=["disabled"],ke={class:"row justify-content-center"},ye={class:"col-md-4 d-flex py-1 justify-content-center"},ve={key:1,name:"cloudBackupForm"},we=n("hr",null,null,-1),Ce=n("br",null,null,-1),Be=n("br",null,null,-1),De=n("a",{href:"https://github.com/openWB/core/wiki/Cloud-Sicherung",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),Se={key:0},Oe={name:"dataMigrationForm"},We=n("br",null,null,-1),Fe=n("br",null,null,-1),Me={class:"input-group"},xe={class:"input-group-prepend"},Ae={class:"input-group-text"},Te={class:"custom-file"},Le={id:"data-migration-file-label",class:"custom-file-label",for:"data-migration-file","data-browse":"Suchen"},Ve={class:"input-group-append"},ze=["disabled"],Re={class:"row justify-content-center"},je={class:"col-md-4 d-flex py-1 justify-content-center"},He={key:1,name:"resetForm"},Ee={class:"row justify-content-center"},Pe={class:"col-md-4 d-flex py-1 justify-content-center"};function Ne(t,e,u,g,a,s){const h=m("openwb-base-button-group-input"),c=m("openwb-base-alert"),y=m("openwb-base-heading"),_=m("font-awesome-icon"),C=m("openwb-base-click-button"),F=m("openwb-base-select-input"),x=m("openwb-base-button-input"),A=m("openwb-backup-cloud-proxy"),T=m("openwb-base-submit-buttons"),S=m("openwb-base-card");return r(),b("div",te,[u.installAssistantActive?v("",!0):(r(),w(c,{key:0,subtype:"danger"},{default:l(()=>[ne,oe,o(h,{title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],modelValue:this.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=p=>this.warningAcknowledged=p)},null,8,["modelValue"])]),_:1})),a.warningAcknowledged||u.installAssistantActive?(r(),b("div",ie,[o(S,{title:"Sicherung / Wiederherstellung",subtype:"success",collapsible:!0,collapsed:!u.installAssistantActive},{default:l(()=>{var p,f;return[n("form",se,[o(y,null,{default:l(()=>[i("Sicherung")]),_:1}),o(c,{subtype:"danger"},{default:l(()=>[i(' Aktuell können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ')]),_:1}),o(c,{subtype:"info"},{default:l(()=>[i(" Nachdem die Sicherung abgeschlossen ist, kann die erstellte Datei über den Link in der Benachrichtigung oder "),ae,i(" 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}),n("div",le,[n("div",ue,[o(C,{class:"btn-success clickable",onButtonClicked:e[1]||(e[1]=d=>s.sendSystemCommand("createBackup",{use_extended_filename:!0}))},{default:l(()=>[i(" Sicherung erstellen "),o(_,{"fixed-width":"",icon:["fas","archive"]})]),_:1})])])]),a.showRestoreSection?(r(),b("form",de,[re,o(y,null,{default:l(()=>[i("Wiederherstellung")]),_:1}),o(c,{subtype:"danger"},{default:l(()=>[i(" Für die Wiederherstellung wird eine aktive Internetverbindung benötigt."),ce,i(' Aktuell können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ')]),_:1}),n("div",pe,[n("div",me,[n("div",he,[o(_,{"fixed-width":"",icon:["fas","file-archive"]})])]),n("div",be,[n("input",{id:"input-file",type:"file",class:"custom-file-input",accept:".tar.gz,application/gzip,application/tar+gzip",onChange:e[2]||(e[2]=d=>s.updateSelectedRestoreFile(d))},null,32),n("label",ge,k(a.selectedRestoreFile?a.selectedRestoreFile.name:"Bitte eine Datei auswählen"),1)]),n("div",fe,[n("button",{class:D(["btn",a.selectedRestoreFile?"btn-success clickable":"btn-outline-success"]),disabled:!a.selectedRestoreFile,type:"button",onClick:e[3]||(e[3]=d=>s.uploadRestoreFile())},[i(" Hochladen "),o(_,{"fixed-width":"",icon:["fas","upload"]})],10,_e)])]),n("div",ke,[n("div",ye,[o(C,{class:D(a.restoreUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!a.restoreUploadDone,onButtonClicked:e[4]||(e[4]=d=>s.restoreBackup())},{default:l(()=>[i(" Wiederherstellung starten "),o(_,{"fixed-width":"",icon:["fas","box-open"]})]),_:1},8,["class","disabled"])])])])):v("",!0),u.showBackupCloudSection?(r(),b("form",ve,[we,o(y,null,{default:l(()=>[i(" Automatische Sicherung in einen Cloud-Dienst ")]),_:1}),o(c,{subtype:"info"},{default:l(()=>[i(" Ist die openWB als primary konfiguriert, wid 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."),Ce,i(" Die manuelle Cloud-Sicherung und -falls aktiviert- die Sicherung vor einem Update werden sowohl von einer primary als auch von einer secondary durchgeführt."),Be,i(" Die Anleitung zur Konfiguration des Cloud-Dienstes findest Du "),De,i(" . ")]),_:1}),o(F,{class:"mb-2",title:"Backup-Cloud",options:s.backupCloudList,"model-value":(p=t.$store.state.mqtt["openWB/system/backup_cloud/config"])==null?void 0:p.type,"onUpdate:modelValue":e[5]||(e[5]=d=>s.updateSelectedBackupCloud(d))},null,8,["options","model-value"]),(f=t.$store.state.mqtt["openWB/system/backup_cloud/config"])!=null&&f.type?(r(),b("div",Se,[o(h,{title:"Sicherung vor System Update",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/backup_cloud/backup_before_update"],"onUpdate:modelValue":e[6]||(e[6]=d=>t.updateState("openWB/system/backup_cloud/backup_before_update",d))},{help:l(()=>[i(" Ist diese Option aktiviert, dann wird vor jedem System-Update automatisch eine Sicherung erstellt und diese in die Backup-Cloud hochgeladen. ")]),_:1},8,["model-value"]),o(x,{title:"Manuelle Cloud-Sicherung",buttonText:"Sicherung erstellen und hochladen",subtype:"success",onButtonClicked:e[7]||(e[7]=d=>s.sendSystemCommand("createCloudBackup",{}))}),o(A,{backupCloud:t.$store.state.mqtt["openWB/system/backup_cloud/config"],"onUpdate:configuration":e[8]||(e[8]=d=>s.updateConfiguration("openWB/system/backup_cloud/config",d)),onSendCommand:e[9]||(e[9]=d=>s.sendSystemCommand(d.command,d.args))},null,8,["backupCloud"])])):v("",!0),o(T,{formName:"cloudBackupForm",hideReset:!0,hideDefaults:!0,onSave:e[10]||(e[10]=d=>t.$emit("save")),onReset:e[11]||(e[11]=d=>t.$emit("reset")),onDefaults:e[12]||(e[12]=d=>t.$emit("defaults"))})])):v("",!0)]}),_:1},8,["collapsed"]),u.installAssistantActive?v("",!0):(r(),w(S,{key:0,title:"Datenübernahme",subtype:"success",collapsible:!0,collapsed:!0},{default:l(()=>[n("form",Oe,[o(c,{subtype:"info"},{default:l(()=>[i(" Hier kann die Sicherung einer älteren 1.9er Version hochgeladen werden, um vorhandene historische Daten (Diagramme und Ladeprotokolle) sowie Cloud-Daten und Seriennummer in diese Installation zu importieren. Die Zuordnung zwischen den alten und neuen Komponenten muss manuell durchgeführt werden. ")]),_:1}),o(c,{subtype:"danger"},{default:l(()=>[i(" 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."),We,i(" Vor der Datenübernahme unbedingt eine Sicherung erstellen."),Fe,i(" Die Datenübernahme kann nur durch Einspielen einer Sicherung rückgängig gemacht werden! ")]),_:1}),n("div",Me,[n("div",xe,[n("div",Ae,[o(_,{"fixed-width":"",icon:["fas","file-archive"]})])]),n("div",Te,[n("input",{id:"data-migration-file",type:"file",class:"custom-file-input",accept:".tar.gz,application/gzip,application/tar+gzip",onChange:e[13]||(e[13]=p=>s.updateSelectedDataMigrationFile(p))},null,32),n("label",Le,k(a.selectedDataMigrationFile?a.selectedDataMigrationFile.name:"Bitte eine Datei auswählen"),1)]),n("div",Ve,[n("button",{class:D(["btn",a.selectedDataMigrationFile?"btn-success clickable":"btn-outline-success"]),disabled:!a.selectedDataMigrationFile,type:"button",onClick:e[14]||(e[14]=p=>s.uploadDataMigrationFile())},[i(" Hochladen "),o(_,{"fixed-width":"",icon:["fas","upload"]})],10,ze)])]),o(y,null,{default:l(()=>[i("Zuordnung der Komponenten")]),_:1}),(r(!0),b(O,null,M(a.dataMigrationConfig,p=>(r(),b("div",{key:p.sectionName},[o(y,null,{default:l(()=>[i(k(p.sectionName),1)]),_:2},1024),(r(!0),b(O,null,M(p.sectionComponents,f=>(r(),w(F,{key:f.key,title:f.label,options:s.getMigrationOptions(f.validTypes),modelValue:a.dataMigrationMapping[f.key],"onUpdate:modelValue":d=>a.dataMigrationMapping[f.key]=d},I({_:2},[f.help?{name:"help",fn:l(()=>[i(k(f.help),1)]),key:"0"}:void 0]),1032,["title","options","modelValue","onUpdate:modelValue"]))),128))]))),128)),n("div",Re,[n("div",je,[o(C,{class:D(a.dataMigrationUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!a.dataMigrationUploadDone,onButtonClicked:e[15]||(e[15]=p=>s.dataMigration())},{default:l(()=>[i(" Datenübernahme starten "),o(_,{"fixed-width":"",icon:["fas","box-open"]})]),_:1},8,["class","disabled"])])])])]),_:1})),u.installAssistantActive?v("",!0):(r(),b("form",He,[o(S,{title:"Zurücksetzen",subtype:"danger",collapsible:!0,collapsed:!0},{footer:l(()=>[n("div",Ee,[n("div",Pe,[o(C,{class:"btn-danger clickable",onButtonClicked:e[16]||(e[16]=p=>s.factoryReset())},{default:l(()=>[o(_,{"fixed-width":"",icon:["fas","skull-crossbones"]}),i(" Zurücksetzen "),o(_,{"fixed-width":"",icon:["fas","skull-crossbones"]})]),_:1})])])]),default:l(()=>[o(c,{subtype:"danger"},{default:l(()=>[i(" 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})]))])):v("",!0)])}const Xe=W(ee,[["render",Ne],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DataManagement.vue"]]);export{Xe as default}; diff --git a/web/settings/assets/DebugConfig-c12bb15b.js b/web/settings/assets/DebugConfig-957ac5e2.js similarity index 98% rename from web/settings/assets/DebugConfig-c12bb15b.js rename to web/settings/assets/DebugConfig-957ac5e2.js index aae67c7f0b..37b3bad3ac 100644 --- a/web/settings/assets/DebugConfig-c12bb15b.js +++ b/web/settings/assets/DebugConfig-957ac5e2.js @@ -1,2 +1,2 @@ -import{C as k}from"./index-ba5cf04c.js";import{l as B,a1 as D,a2 as L,F as W}from"./vendor-fortawesome-71546160.js";import{_ as f,u as s,k as d,A as w,N as l,D as i,q as C,P as x,x as v,z as y,l as _,J as F,K as N,y as b}from"./vendor-f2b8aa6f.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";B.add(D,L);const $={name:"OpenwbLogCard",components:{FontAwesomeIcon:W},props:{title:{type:String,required:!0},logFile:{type:String,required:!0}},data(){return{logData:"-- noch nicht geladen --",loading:!1}},methods:{async getFilePromise(n,e=!1){return this.axios.get(location.protocol+"//"+location.host+n).then(t=>t.data).catch(t=>t.response?t.response.status==404&&e?"":`A 404 is expected if running node.js dev server! +import{C as k}from"./index-88a2073c.js";import{l as B,a1 as D,a2 as L,F as W}from"./vendor-fortawesome-71546160.js";import{_ as f,u as s,k as d,A as w,N as l,D as i,q as C,P as x,x as v,z as y,l as _,J as F,K as N,y as b}from"./vendor-f2b8aa6f.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";B.add(D,L);const $={name:"OpenwbLogCard",components:{FontAwesomeIcon:W},props:{title:{type:String,required:!0},logFile:{type:String,required:!0}},data(){return{logData:"-- noch nicht geladen --",loading:!1}},methods:{async getFilePromise(n,e=!1){return this.axios.get(location.protocol+"//"+location.host+n).then(t=>t.data).catch(t=>t.response?t.response.status==404&&e?"":`A 404 is expected if running node.js dev server! `+t.response.status+" "+t.response.statusText+": "+t.response.request.responseURL:t.request?t.request:t.message)},async loadLog(n){this.logData="wird aktualisiert...",this.loading=!0;var e="";for(let r=4;r>=1;r--){const a=await this.getFilePromise(n+"."+r,!0);e+=a}const t=await this.getFilePromise(n);e+=t,this.logData=e,this.loading=!1}}},S={class:"log-data mb-0"};function P(n,e,t,r,a,g){const u=s("font-awesome-icon"),p=s("openwb-base-avatar"),m=s("openwb-base-card");return d(),w(m,{title:t.title,class:"log-card mt-3",collapsible:!0,collapsed:!0},{actions:l(()=>[i(p,{class:"bg-success clickable",onClick:e[0]||(e[0]=x(c=>g.loadLog(t.logFile),["stop"]))},{default:l(()=>[i(u,{"fixed-width":"",class:C(a.loading?"fa-spin-pulse":""),icon:a.loading?["fas","spinner"]:["fas","file-download"]},null,8,["class","icon"])]),_:1})]),default:l(()=>[v("pre",S,y(a.logData),1)]),_:1},8,["title"])}const I=f($,[["render",P],["__scopeId","data-v-a320c3d6"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/debug_config/LogCard.vue"]]),q={name:"OpenwbDebuggingView",mixins:[k],components:{OpenwbLogCard:I},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"}]}}},z={class:"debugging"},V={name:"debugConfigForm"};function T(n,e,t,r,a,g){const u=s("openwb-base-button-group-input"),p=s("openwb-base-alert"),m=s("openwb-base-card"),c=s("openwb-base-submit-buttons"),h=s("openwb-log-card");return d(),_("div",z,[v("form",V,[i(m,{title:"Protokollierung"},{default:l(()=>[i(u,{title:"Debug Level",buttons:[{buttonValue:30,text:"Warnungen und Fehler"},{buttonValue:20,text:"Info"},{buttonValue:10,text:"Details"}],"model-value":n.$store.state.mqtt["openWB/system/debug_level"],"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateState("openWB/system/debug_level",o))},{help:l(()=>[b(' 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},8,["model-value"]),i(p,{subtype:"warning"},{default:l(()=>[b(' Achtung! In den Einstellungen "Info" und "Details" können in den Logdateien sensible Daten wie Benutzernamen und Kennwö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}),i(c,{formName:"debugConfigForm",onSave:e[1]||(e[1]=o=>n.$emit("save")),onReset:e[2]||(e[2]=o=>n.$emit("reset")),onDefaults:e[3]||(e[3]=o=>n.$emit("defaults"))})]),(d(!0),_(F,null,N(a.logFiles,o=>(d(),w(h,{key:o.fileName,title:o.title,"log-file":o.fileName},null,8,["title","log-file"]))),128))])}const j=f(q,[["render",T],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DebugConfig.vue"]]);export{j as default}; diff --git a/web/settings/assets/GeneralChargeConfig-7e106509.js b/web/settings/assets/GeneralChargeConfig-7e106509.js deleted file mode 100644 index 49646c987e..0000000000 --- a/web/settings/assets/GeneralChargeConfig-7e106509.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as g,C as T}from"./index-ba5cf04c.js";import{_ as $}from"./dynamic-import-helper-be004503.js";import{_ as h,u as o,k as s,l,D as n,N as a,y as r,z as _,x as c,a2 as E,A as k,a3 as V,J as P,B as W}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const L={name:"ElectricityTariffConfigFallback",emits:["update:configuration"],props:{electricityTariff:{type:Object,required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},q={class:"backup-cloud-fallback"};function A(e,t,d,v,y,p){const u=o("openwb-base-alert"),f=o("openwb-base-textarea");return s(),l("div",q,[n(u,{subtype:"warning"},{default:a(()=>[r(' Es wurde keine Konfigurationsseite für den Anbieter "'+_(d.electricityTariff.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(f,{title:"Konfiguration",subtype:"json","model-value":d.electricityTariff.configuration,"onUpdate:modelValue":t[0]||(t[0]=m=>p.updateConfiguration(m,"configuration"))},{help:a(()=>[r(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ")]),_:1},8,["model-value"]),n(u,{subtype:"info"},{default:a(()=>[c("pre",null,_(JSON.stringify(d.electricityTariff.configuration,void 0,2)),1)]),_:1})])}const O=h(L,[["render",A],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/OpenwbElectricityTariffConfigFallback.vue"]]),U={name:"OpenwbElectricityTariffProxy",emits:["update:configuration"],props:{electricityTariff:{type:Object,required:!0}},computed:{myComponent(){return console.debug(`loading electricity tariff cloud: ${this.electricityTariff.type}`),E({loader:()=>$(Object.assign({"./awattar/electricity_tariff.vue":()=>g(()=>import("./electricity_tariff-9a6e448e.js"),["assets/electricity_tariff-9a6e448e.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./energycharts/electricity_tariff.vue":()=>g(()=>import("./electricity_tariff-b90a64df.js"),["assets/electricity_tariff-b90a64df.js","assets/index-ba5cf04c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/index-b3227821.css"]),"./rabot/electricity_tariff.vue":()=>g(()=>import("./electricity_tariff-e02e508f.js"),["assets/electricity_tariff-e02e508f.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./tibber/electricity_tariff.vue":()=>g(()=>import("./electricity_tariff-3790750f.js"),["assets/electricity_tariff-3790750f.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./voltego/electricity_tariff.vue":()=>g(()=>import("./electricity_tariff-2e93397c.js"),["assets/electricity_tariff-2e93397c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"])}),`./${this.electricityTariff.type}/electricity_tariff.vue`),errorComponent:O})}},methods:{updateConfiguration(e){this.$emit("update:configuration",e)}}};function F(e,t,d,v,y,p){const u=o("openwb-base-heading");return s(),l(P,null,[n(u,null,{default:a(()=>[r(' Einstellungen für Modul "'+_(d.electricityTariff.name)+'" ',1)]),_:1}),(s(),k(V(p.myComponent),{electricityTariff:d.electricityTariff,"onUpdate:configuration":t[0]||(t[0]=f=>p.updateConfiguration(f))},null,40,["electricityTariff"]))],64)}const D=h(U,[["render",F],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/OpenwbElectricityTariffProxy.vue"]]),N={name:"OpenwbGeneralChargeConfigView",mixins:[T],components:{OpenwbElectricityTariffProxy:D},data(){return{mqttTopicsToSubscribe:["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/system/configurable/electricity_tariffs"]}},computed:{electricityTariffList(){return this.$store.state.mqtt["openWB/system/configurable/electricity_tariffs"]}},methods:{getElectricityTariffDefaultConfiguration(e){const t=this.electricityTariffList.find(d=>d.value==e);return Object.prototype.hasOwnProperty.call(t,"defaults")?{...t.defaults}:(console.warn("no default configuration found for electricity tariff type!",e),{})},updateSelectedElectricityTariff(e){this.updateState("openWB/optional/et/provider",e,"type"),this.updateState("openWB/optional/et/provider",this.getElectricityTariffDefaultConfiguration(e))},updateConfiguration(e,t){console.debug("updateConfiguration",e,t),this.updateState(e,t.value,t.object)}}},I={class:"generalChargeConfig"},M={name:"generalChargeConfigForm"},R={key:0},Z={key:1},j=c("br",null,null,-1),x=c("br",null,null,-1),J=c("br",null,null,-1),G=c("hr",null,null,-1),K=c("br",null,null,-1),H={key:1},Q={key:2},X={key:0},Y={key:1},ee=c("br",null,null,-1),te={key:0};function ne(e,t,d,v,y,p){const u=o("openwb-base-alert"),f=o("openwb-base-button-group-input"),m=o("openwb-base-range-input"),w=o("openwb-base-heading"),b=o("openwb-base-number-input"),B=o("openwb-base-card"),z=o("openwb-base-select-input"),S=o("openwb-electricity-tariff-proxy"),C=o("openwb-base-submit-buttons");return s(),l("div",I,[c("form",M,[n(B,{title:"Allgemein"},{default:a(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(s(),l("div",R,[n(u,{subtype:"info"},{default:a(()=>[r(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(s(),l("div",Z,[n(f,{title:"Begrenzung der Schieflast",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":e.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"],"onUpdate:modelValue":t[0]||(t[0]=i=>e.updateState("openWB/general/chargemode_config/unbalanced_load",i))},{help:a(()=>[r(" 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!"),j,r(' 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},8,["model-value"]),e.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"]?(s(),k(m,{key:0,title:"Erlaubte Schieflast",min:10,max:32,step:1,unit:"A","model-value":e.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load_limit"],"onUpdate:modelValue":t[1]||(t[1]=i=>e.updateState("openWB/general/chargemode_config/unbalanced_load_limit",i))},{help:a(()=>[r(" Hiermit wird festgelegt, welche Schieflast am Netzanschlusspunkt erlaubt ist. Bei Überschreitung werden gezielt einzelne Ladevorgänge in der Leistung begrenzt. ")]),_:1},8,["model-value"])):W("",!0),n(f,{title:"Phasenumschaltung wiederholt anstoßen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":e.$store.state.mqtt["openWB/general/chargemode_config/retry_failed_phase_switches"],"onUpdate:modelValue":t[2]||(t[2]=i=>e.updateState("openWB/general/chargemode_config/retry_failed_phase_switches",i))},{help:a(()=>[r(" Wenn diese Option aktiviert ist, werden bis zu drei Umschaltversuche vorgenommen, wenn die vorgegebene und genutzte Phasenzahl nicht übereinstimmen. Wird die Option deaktiviert, wird nur eine Umschaltung durchgeführt."),x,r(" Die gezählten Fehlversuche werden mit dem Abstecken zurückgesetzt. ")]),_:1},8,["model-value"]),n(m,{title:"Verzögerung automat. Phasenumschaltung",min:1,max:15,step:1,unit:"Min.","model-value":e.$store.state.mqtt["openWB/general/chargemode_config/phase_switch_delay"],"onUpdate:modelValue":t[3]||(t[3]=i=>e.updateState("openWB/general/chargemode_config/phase_switch_delay",i))},{help:a(()=>[r(" Um zu viele Umschaltungen zu vermeiden, wird Anhand dieses Wertes definiert, wann die Umschaltung erfolgen soll. Ist für durchgehend x Minuten die Maximalstromstärke erreicht, wird auf mehrphasige Ladung umgestellt. Ist die Ladung nur für ein Intervall unterhalb der Maximalstromstärke, beginnt das Intervall für die Umschaltung erneut. Ist die Ladung im mehrphasigen Modus für 16 - x Minuten auf der Minimalstromstärke, wird wieder auf einphasige Ladung gewechselt."),J,r(" Ist ausreichend Überschuss vorhanden, wird beim Ladestart die Umschaltverzögerung nicht abgewartet, sondern direkt mit mehrphasiger Ladung begonnen. ")]),_:1},8,["model-value"]),G,n(w,null,{help:a(()=>[r(" Zur Berechnung der Ladekosten im Lade-Log werden stundenweise die Anteile der Stromquellen (Speicher, Netz, PV) berechnet und mit den hier angegebenen Preisen multipliziert."),K,r(" Ist die Abrechnung über das Ladeprotokoll, z.B. mit dem Arbeitgeber, vereinbart, ist bei allen drei Feldern der vereinbarte Preis einzutragen. ")]),default:a(()=>[r(" Berechnung der Ladekosten ")]),_:1}),e.$store.state.mqtt["openWB/optional/et/provider"]&&e.$store.state.mqtt["openWB/optional/et/provider"].type?(s(),l("div",H,[n(u,{subtype:"info"},{default:a(()=>[r(" Für den Netzbezug wird der dynamische Strompreis des Anbieters für variable Stromtarife verwendet (stündliche Aktualisierung durch den Anbieter). ")]),_:1})])):(s(),l("div",Q,[n(b,{title:"Preis für Netzbezug",step:.001,precision:3,unit:"ct/kWh","model-value":e.$store.state.mqtt["openWB/general/prices/grid"]*1e5,"onUpdate:modelValue":t[4]||(t[4]=i=>e.updateState("openWB/general/prices/grid",parseFloat((i/1e5).toFixed(7))))},null,8,["model-value"])])),n(b,{title:"Preis für Speicherentladung",step:.001,precision:3,unit:"ct/kWh","model-value":e.$store.state.mqtt["openWB/general/prices/bat"]*1e5,"onUpdate:modelValue":t[5]||(t[5]=i=>e.updateState("openWB/general/prices/bat",parseFloat((i/1e5).toFixed(7))))},null,8,["model-value"]),n(b,{title:"Preis für PV-Strom",step:.001,precision:3,unit:"ct/kWh","model-value":e.$store.state.mqtt["openWB/general/prices/pv"]*1e5,"onUpdate:modelValue":t[6]||(t[6]=i=>e.updateState("openWB/general/prices/pv",parseFloat((i/1e5).toFixed(7))))},null,8,["model-value"])]))]),_:1}),n(B,{title:"Optional"},{default:a(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(s(),l("div",X,[n(u,{subtype:"info"},{default:a(()=>[r(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(s(),l("div",Y,[n(w,null,{default:a(()=>[r(" Variable Stromtarife ")]),_:1}),n(u,{subtype:"info"},{default:a(()=>[r(" Bei Sofort- und Zeitladen wird nur geladen, wenn der Strompreis unter dem maximalen angegeben Strompreis liegt. Für Zielladen wird die Ladedauer ermittelt und dann zu den günstigsten Stunden geladen."),ee,r(" 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}),n(z,{class:"mb-2",title:"Anbieter",options:p.electricityTariffList,"model-value":e.$store.state.mqtt["openWB/optional/et/provider"]?e.$store.state.mqtt["openWB/optional/et/provider"].type:"","onUpdate:modelValue":t[7]||(t[7]=i=>p.updateSelectedElectricityTariff(i))},null,8,["options","model-value"]),e.$store.state.mqtt["openWB/optional/et/provider"]&&e.$store.state.mqtt["openWB/optional/et/provider"].type?(s(),l("div",te,[n(S,{electricityTariff:e.$store.state.mqtt["openWB/optional/et/provider"],"onUpdate:configuration":t[8]||(t[8]=i=>p.updateConfiguration("openWB/optional/et/provider",i))},null,8,["electricityTariff"])])):W("",!0)]))]),_:1}),n(C,{formName:"generalChargeConfigForm",onSave:t[9]||(t[9]=i=>e.$emit("save")),onReset:t[10]||(t[10]=i=>e.$emit("reset")),onDefaults:t[11]||(t[11]=i=>e.$emit("defaults"))})])])}const pe=h(N,[["render",ne],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralChargeConfig.vue"]]);export{pe as default}; diff --git a/web/settings/assets/GeneralChargeConfig-be9fdbc5.js b/web/settings/assets/GeneralChargeConfig-be9fdbc5.js new file mode 100644 index 0000000000..40a03e56b6 --- /dev/null +++ b/web/settings/assets/GeneralChargeConfig-be9fdbc5.js @@ -0,0 +1 @@ +import{_ as g,C as T}from"./index-88a2073c.js";import{_ as $}from"./dynamic-import-helper-be004503.js";import{_ as h,u as o,k as l,l as s,D as n,N as a,y as r,z as _,x as c,a2 as E,A as k,a3 as V,J as P,B as W}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const L={name:"ElectricityTariffConfigFallback",emits:["update:configuration"],props:{electricityTariff:{type:Object,required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},q={class:"backup-cloud-fallback"};function A(e,t,u,v,y,p){const d=o("openwb-base-alert"),f=o("openwb-base-textarea");return l(),s("div",q,[n(d,{subtype:"warning"},{default:a(()=>[r(' Es wurde keine Konfigurationsseite für den Anbieter "'+_(u.electricityTariff.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(f,{title:"Konfiguration",subtype:"json","model-value":u.electricityTariff.configuration,"onUpdate:modelValue":t[0]||(t[0]=m=>p.updateConfiguration(m,"configuration"))},{help:a(()=>[r(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ")]),_:1},8,["model-value"]),n(d,{subtype:"info"},{default:a(()=>[c("pre",null,_(JSON.stringify(u.electricityTariff.configuration,void 0,2)),1)]),_:1})])}const M=h(L,[["render",A],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/OpenwbElectricityTariffConfigFallback.vue"]]),O={name:"OpenwbElectricityTariffProxy",emits:["update:configuration"],props:{electricityTariff:{type:Object,required:!0}},computed:{myComponent(){return console.debug(`loading electricity tariff cloud: ${this.electricityTariff.type}`),E({loader:()=>$(Object.assign({"./awattar/electricity_tariff.vue":()=>g(()=>import("./electricity_tariff-9a6e448e.js"),["assets/electricity_tariff-9a6e448e.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./energycharts/electricity_tariff.vue":()=>g(()=>import("./electricity_tariff-5204ab68.js"),["assets/electricity_tariff-5204ab68.js","assets/index-88a2073c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/index-b3227821.css"]),"./rabot/electricity_tariff.vue":()=>g(()=>import("./electricity_tariff-e02e508f.js"),["assets/electricity_tariff-e02e508f.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./tibber/electricity_tariff.vue":()=>g(()=>import("./electricity_tariff-3790750f.js"),["assets/electricity_tariff-3790750f.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./voltego/electricity_tariff.vue":()=>g(()=>import("./electricity_tariff-2e93397c.js"),["assets/electricity_tariff-2e93397c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"])}),`./${this.electricityTariff.type}/electricity_tariff.vue`),errorComponent:M})}},methods:{updateConfiguration(e){this.$emit("update:configuration",e)}}};function U(e,t,u,v,y,p){const d=o("openwb-base-heading");return l(),s(P,null,[n(d,null,{default:a(()=>[r(' Einstellungen für Modul "'+_(u.electricityTariff.name)+'" ',1)]),_:1}),(l(),k(V(p.myComponent),{electricityTariff:u.electricityTariff,"onUpdate:configuration":t[0]||(t[0]=f=>p.updateConfiguration(f))},null,40,["electricityTariff"]))],64)}const F=h(O,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/OpenwbElectricityTariffProxy.vue"]]),D={name:"OpenwbGeneralChargeConfigView",mixins:[T],components:{OpenwbElectricityTariffProxy:F},data(){return{mqttTopicsToSubscribe:["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/system/configurable/electricity_tariffs"]}},computed:{electricityTariffList(){return this.$store.state.mqtt["openWB/system/configurable/electricity_tariffs"]}},methods:{getElectricityTariffDefaultConfiguration(e){const t=this.electricityTariffList.find(u=>u.value==e);return Object.prototype.hasOwnProperty.call(t,"defaults")?{...t.defaults}:(console.warn("no default configuration found for electricity tariff type!",e),{})},updateSelectedElectricityTariff(e){this.updateState("openWB/optional/et/provider",e,"type"),this.updateState("openWB/optional/et/provider",this.getElectricityTariffDefaultConfiguration(e))},updateConfiguration(e,t){console.debug("updateConfiguration",e,t),this.updateState(e,t.value,t.object)}}},N={class:"generalChargeConfig"},I={name:"generalChargeConfigForm"},R={key:0},Z={key:1},j=c("br",null,null,-1),x=c("br",null,null,-1),J=c("br",null,null,-1),G=c("hr",null,null,-1),K=c("br",null,null,-1),H={key:1},Q={key:2},X={key:0},Y={key:1},ee=c("br",null,null,-1),te={key:0};function ne(e,t,u,v,y,p){const d=o("openwb-base-alert"),f=o("openwb-base-button-group-input"),m=o("openwb-base-range-input"),w=o("openwb-base-heading"),b=o("openwb-base-number-input"),B=o("openwb-base-card"),z=o("openwb-base-select-input"),S=o("openwb-electricity-tariff-proxy"),C=o("openwb-base-submit-buttons");return l(),s("div",N,[c("form",I,[n(B,{title:"Allgemein"},{default:a(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(l(),s("div",R,[n(d,{subtype:"info"},{default:a(()=>[r(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(l(),s("div",Z,[n(f,{title:"Begrenzung der Schieflast",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":e.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"],"onUpdate:modelValue":t[0]||(t[0]=i=>e.updateState("openWB/general/chargemode_config/unbalanced_load",i))},{help:a(()=>[r(" 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!"),j,r(' 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},8,["model-value"]),e.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"]?(l(),k(m,{key:0,title:"Erlaubte Schieflast",min:10,max:32,step:1,unit:"A","model-value":e.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load_limit"],"onUpdate:modelValue":t[1]||(t[1]=i=>e.updateState("openWB/general/chargemode_config/unbalanced_load_limit",i))},{help:a(()=>[r(" Hiermit wird festgelegt, welche Schieflast am Netzanschlusspunkt erlaubt ist. Bei Überschreitung werden gezielt einzelne Ladevorgänge in der Leistung begrenzt. ")]),_:1},8,["model-value"])):W("",!0),n(f,{title:"Phasenumschaltung wiederholt anstoßen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":e.$store.state.mqtt["openWB/general/chargemode_config/retry_failed_phase_switches"],"onUpdate:modelValue":t[2]||(t[2]=i=>e.updateState("openWB/general/chargemode_config/retry_failed_phase_switches",i))},{help:a(()=>[r(" Wenn diese Option aktiviert ist, werden bis zu drei Umschaltversuche vorgenommen, wenn die vorgegebene und genutzte Phasenzahl nicht übereinstimmen. Wird die Option deaktiviert, wird nur eine Umschaltung durchgeführt."),x,r(" Die gezählten Fehlversuche werden mit dem Abstecken zurückgesetzt. ")]),_:1},8,["model-value"]),n(m,{title:"Verzögerung automat. Phasenumschaltung",min:0,max:14,step:1,labels:[{label:"1⇑ 15⇓ Min.",value:1},{label:"2⇑ 14⇓ Min.",value:2},{label:"3⇑ 13⇓ Min.",value:3},{label:"4⇑ 12⇓ Min.",value:4},{label:"5⇑ 11⇓ Min.",value:5},{label:"6⇑ 10⇓ Min.",value:6},{label:"7⇑ 9⇓ Min.",value:7},{label:"8⇑ 8⇓ Min.",value:8},{label:"9⇑ 7⇓ Min.",value:9},{label:"10⇑ 6⇓ Min.",value:10},{label:"11⇑ 5⇓ Min.",value:11},{label:"12⇑ 4⇓ Min.",value:12},{label:"13⇑ 3⇓ Min.",value:13},{label:"14⇑ 2⇓ Min.",value:14},{label:"15⇑ 1⇓ Min.",value:15}],"model-value":e.$store.state.mqtt["openWB/general/chargemode_config/phase_switch_delay"],"onUpdate:modelValue":t[3]||(t[3]=i=>e.updateState("openWB/general/chargemode_config/phase_switch_delay",i))},{help:a(()=>[r(" Um zu viele Umschaltungen zu vermeiden, wird Anhand dieses Wertes definiert, wann die Umschaltung erfolgen soll. Ist für durchgehend x Minuten die Maximalstromstärke erreicht, wird auf mehrphasige Ladung ⇑ umgestellt. Ist die Ladung nur für ein Intervall unterhalb der Maximalstromstärke, beginnt das Intervall für die Umschaltung erneut. Ist die Ladung im mehrphasigen Modus für 16 - x Minuten auf der Minimalstromstärke, wird wieder auf einphasige Ladung ⇓ gewechselt."),J,r(" Ist ausreichend Überschuss vorhanden, wird beim Ladestart die Umschaltverzögerung nicht abgewartet, sondern direkt mit mehrphasiger Ladung begonnen. ")]),_:1},8,["model-value"]),G,n(w,null,{help:a(()=>[r(" Zur Berechnung der Ladekosten im Lade-Log werden stundenweise die Anteile der Stromquellen (Speicher, Netz, PV) berechnet und mit den hier angegebenen Preisen multipliziert."),K,r(" Ist die Abrechnung über das Ladeprotokoll, z.B. mit dem Arbeitgeber, vereinbart, ist bei allen drei Feldern der vereinbarte Preis einzutragen. ")]),default:a(()=>[r(" Berechnung der Ladekosten ")]),_:1}),e.$store.state.mqtt["openWB/optional/et/provider"]&&e.$store.state.mqtt["openWB/optional/et/provider"].type?(l(),s("div",H,[n(d,{subtype:"info"},{default:a(()=>[r(" Für den Netzbezug wird der dynamische Strompreis des Anbieters für variable Stromtarife verwendet (stündliche Aktualisierung durch den Anbieter). ")]),_:1})])):(l(),s("div",Q,[n(b,{title:"Preis für Netzbezug",step:.001,precision:3,unit:"ct/kWh","model-value":e.$store.state.mqtt["openWB/general/prices/grid"]*1e5,"onUpdate:modelValue":t[4]||(t[4]=i=>e.updateState("openWB/general/prices/grid",parseFloat((i/1e5).toFixed(7))))},null,8,["model-value"])])),n(b,{title:"Preis für Speicherentladung",step:.001,precision:3,unit:"ct/kWh","model-value":e.$store.state.mqtt["openWB/general/prices/bat"]*1e5,"onUpdate:modelValue":t[5]||(t[5]=i=>e.updateState("openWB/general/prices/bat",parseFloat((i/1e5).toFixed(7))))},null,8,["model-value"]),n(b,{title:"Preis für PV-Strom",step:.001,precision:3,unit:"ct/kWh","model-value":e.$store.state.mqtt["openWB/general/prices/pv"]*1e5,"onUpdate:modelValue":t[6]||(t[6]=i=>e.updateState("openWB/general/prices/pv",parseFloat((i/1e5).toFixed(7))))},null,8,["model-value"])]))]),_:1}),n(B,{title:"Optional"},{default:a(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(l(),s("div",X,[n(d,{subtype:"info"},{default:a(()=>[r(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(l(),s("div",Y,[n(w,null,{default:a(()=>[r(" Variable Stromtarife ")]),_:1}),n(d,{subtype:"info"},{default:a(()=>[r(" Bei Sofort- und Zeitladen wird nur geladen, wenn der Strompreis unter dem maximalen angegeben Strompreis liegt. Für Zielladen wird die Ladedauer ermittelt und dann zu den günstigsten Stunden geladen."),ee,r(" 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}),n(z,{class:"mb-2",title:"Anbieter",options:p.electricityTariffList,"model-value":e.$store.state.mqtt["openWB/optional/et/provider"]?e.$store.state.mqtt["openWB/optional/et/provider"].type:"","onUpdate:modelValue":t[7]||(t[7]=i=>p.updateSelectedElectricityTariff(i))},null,8,["options","model-value"]),e.$store.state.mqtt["openWB/optional/et/provider"]&&e.$store.state.mqtt["openWB/optional/et/provider"].type?(l(),s("div",te,[n(S,{electricityTariff:e.$store.state.mqtt["openWB/optional/et/provider"],"onUpdate:configuration":t[8]||(t[8]=i=>p.updateConfiguration("openWB/optional/et/provider",i))},null,8,["electricityTariff"])])):W("",!0)]))]),_:1}),n(C,{formName:"generalChargeConfigForm",onSave:t[9]||(t[9]=i=>e.$emit("save")),onReset:t[10]||(t[10]=i=>e.$emit("reset")),onDefaults:t[11]||(t[11]=i=>e.$emit("defaults"))})])])}const pe=h(D,[["render",ne],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralChargeConfig.vue"]]);export{pe as default}; diff --git a/web/settings/assets/GeneralConfig-9cb055aa.js b/web/settings/assets/GeneralConfig-aecc1081.js similarity index 99% rename from web/settings/assets/GeneralConfig-9cb055aa.js rename to web/settings/assets/GeneralConfig-aecc1081.js index d5cd906912..b8da2c5fae 100644 --- a/web/settings/assets/GeneralConfig-9cb055aa.js +++ b/web/settings/assets/GeneralConfig-aecc1081.js @@ -1 +1 @@ -import{l as J,X,Y as Q,F,R as Y,K as ee,z as te,a4 as ne,a5 as oe,a6 as ae}from"./vendor-fortawesome-71546160.js";import{_ as U,C as re}from"./index-ba5cf04c.js";import{_ as j}from"./dynamic-import-helper-be004503.js";import{_ as B,u as c,k as l,l as g,A as h,N as o,y as a,z as f,D as n,x as u,a2 as I,a3 as M,J as G,B as _}from"./vendor-f2b8aa6f.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const ie={name:"WebThemeFallback",emits:["update:configuration"],props:{webTheme:{type:Object,required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},le={class:"web-theme-fallback"},se={key:1};function ue(e,t,s,W,y,p){const m=c("openwb-base-alert"),r=c("openwb-base-textarea");return l(),g("div",le,[Object.keys(s.webTheme.configuration).length==0?(l(),h(m,{key:0,subtype:"info"},{default:o(()=>[a(' Das Web Theme "'+f(s.webTheme.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(l(),g("div",se,[n(m,{subtype:"warning"},{default:o(()=>[a(' Es wurde keine Konfigurationsseite für das Web Theme "'+f(s.webTheme.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(r,{title:"Theme Konfiguration",subtype:"json","model-value":s.webTheme.configuration,"onUpdate:modelValue":t[0]||(t[0]=v=>p.updateConfiguration(v,"configuration"))},{help:o(()=>[a(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ")]),_:1},8,["model-value"]),n(m,{subtype:"info"},{default:o(()=>[u("pre",null,f(JSON.stringify(s.webTheme.configuration,void 0,2)),1)]),_:1})]))])}const de=B(ie,[["render",ue],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeFallback.vue"]]);J.add(X,Q);const pe={name:"OpenwbWebThemeProxy",emits:["update:configuration"],props:{webTheme:{type:Object,required:!0}},components:{FontAwesomeIcon:F},computed:{myComponent(){return console.debug(`loading web theme: ${this.webTheme.name}`),I({loader:()=>j(Object.assign({}),`./${this.webTheme.type}/webTheme.vue`),errorComponent:de})}},methods:{updateConfiguration(e){this.$emit("update:configuration",e)}}};function ge(e,t,s,W,y,p){const m=c("font-awesome-icon"),r=c("openwb-base-alert"),v=c("openwb-base-heading");return l(),g(G,null,[s.webTheme.official?(l(),h(r,{key:0,subtype:"success"},{default:o(()=>[n(m,{"fixed-width":"",icon:["fas","certificate"]}),a(' Das ausgewählte Web Theme "'+f(s.webTheme.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(l(),h(r,{key:1,subtype:"info"},{default:o(()=>[n(m,{"fixed-width":"",icon:["fas","people-group"]}),a(" Das ausgewählte Theme wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ")]),_:1})),n(v,null,{default:o(()=>[a(' Einstellungen für Web Theme "'+f(s.webTheme.name)+'" ',1)]),_:1}),(l(),h(M(p.myComponent),{webTheme:s.webTheme,"onUpdate:configuration":t[0]||(t[0]=w=>p.updateConfiguration(w))},null,40,["webTheme"]))],64)}const me=B(pe,[["render",ge],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeProxy.vue"]]),ce={name:"RippleControlReceiverConfigFallback",emits:["update:configuration"],props:{rippleControlReceiver:{type:Object,required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},be={class:"ripple-control-receiver-fallback"},fe={key:1};function _e(e,t,s,W,y,p){const m=c("openwb-base-alert"),r=c("openwb-base-textarea");return l(),g("div",be,[Object.keys(s.rippleControlReceiver.configuration).length==0?(l(),h(m,{key:0,subtype:"info"},{default:o(()=>[a(' Das RSE-Modul "'+f(s.rippleControlReceiver.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(l(),g("div",fe,[n(m,{subtype:"warning"},{default:o(()=>[a(' Es wurde keine Konfigurationsseite für das RSE-Modul "'+f(s.rippleControlReceiver.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(r,{title:"Konfiguration",subtype:"json","model-value":s.rippleControlReceiver.configuration,"onUpdate:modelValue":t[0]||(t[0]=v=>p.updateConfiguration(v,"configuration"))},{help:o(()=>[a(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ")]),_:1},8,["model-value"]),n(m,{subtype:"info"},{default:o(()=>[u("pre",null,f(JSON.stringify(s.rippleControlReceiver.configuration,void 0,2)),1)]),_:1})]))])}const he=B(ce,[["render",_e],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/ripple_control_receivers/OpenwbRippleControlReceiverConfigFallback.vue"]]),ve={name:"OpenwbRippleControlReceiverProxy",emits:["update:configuration","sendCommand"],props:{rippleControlReceiver:{type:Object,required:!0}},computed:{myComponent(){return console.debug(`loading backup cloud: ${this.rippleControlReceiver.type}`),I({loader:()=>j(Object.assign({"./dimm_kit/ripple_control_receiver.vue":()=>U(()=>import("./ripple_control_receiver-51e952e1.js"),["assets/ripple_control_receiver-51e952e1.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./gpio/ripple_control_receiver.vue":()=>U(()=>import("./ripple_control_receiver-7a1236a4.js"),["assets/ripple_control_receiver-7a1236a4.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"])}),`./${this.rippleControlReceiver.type}/ripple_control_receiver.vue`),errorComponent:he})}},methods:{updateConfiguration(e){this.$emit("update:configuration",e)},sendCommand(e){this.$emit("sendCommand",e)}}};function we(e,t,s,W,y,p){const m=c("openwb-base-heading");return l(),g(G,null,[n(m,null,{default:o(()=>[a(' Einstellungen für RSE-Modul "'+f(s.rippleControlReceiver.name)+'" ',1)]),_:1}),(l(),h(M(p.myComponent),{rippleControlReceiver:s.rippleControlReceiver,"onUpdate:configuration":t[0]||(t[0]=r=>p.updateConfiguration(r)),onSendCommand:t[1]||(t[1]=r=>p.sendCommand(r))},null,40,["rippleControlReceiver"]))],64)}const Be=B(ve,[["render",we],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/ripple_control_receivers/OpenwbRippleControlReceiverProxy.vue"]]);J.add(Y,ee,te,ne,oe,ae);const We={name:"OpenwbGeneralConfigView",mixins:[re],components:{OpenwbWebThemeProxy:me,OpenwbRippleControlReceiverProxy:Be,FontAwesomeIcon:F},props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},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/ripple_control_receiver/module","openWB/general/web_theme","openWB/system/configurable/ripple_control_receivers","openWB/system/configurable/web_themes","openWB/system/ip_address"]}},computed:{webThemeList:{get(){return this.$store.state.mqtt["openWB/system/configurable/web_themes"]}},webThemeGroupList:{get(){let e=[{label:"openWB",options:[]},{label:"Community",options:[]}];return this.webThemeList.forEach(t=>{t.official===!0?e[0].options.push(t):e[1].options.push(t)}),e}},rippleControlReceiverList(){return this.$store.state.mqtt["openWB/system/configurable/ripple_control_receivers"]}},methods:{getIpAddress(){return this.$store.state.mqtt["openWB/system/ip_address"]},getWebThemeDefaults(e){const t=this.webThemeList.find(s=>s.value==e);return Object.prototype.hasOwnProperty.call(t,"defaults")?{...JSON.parse(JSON.stringify(t.defaults))}:(console.warn("no default configuration found for web theme type!",e),{})},updateSelectedWebTheme(e){this.updateState("openWB/general/web_theme",this.getWebThemeDefaults(e))},updateConfiguration(e,t){console.debug("updateConfiguration",e,t),this.updateState(e,t.value,t.object)},getRippleControlReceiverDefaultConfiguration(e){const t=this.rippleControlReceiverList.find(s=>s.value==e);return Object.prototype.hasOwnProperty.call(t,"defaults")?{...t.defaults}:(console.warn("no default configuration found for electricity tariff type!",e),{})},updateSelectedRippleControlReceiverModule(e){this.updateState("openWB/general/ripple_control_receiver/module",e,"type"),this.updateState("openWB/general/ripple_control_receiver/module",this.getRippleControlReceiverDefaultConfiguration(e))}}},ye={class:"generalConfig"},Se={name:"generalConfigForm"},ke=u("p",null,' Wird für den Steuerungsmodus "primary" gewählt, übernimmt diese openWB die alleinige Regelung und steuert ggf. vorhandene weitere openWB (z.B. externe openWB im Steuermodus secondary, openWB Pro, Satellit u.a.) fern. Sie werden in den Ladepunkt-Einstellungen der primary-openWB hinzugefügt. ',-1),Ve=u("p",null,[a(' 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.'),u("br"),a(" Eine bebilderte Anleitung zur Konfiguration der Ladepunkte findest Du auf der "),u("a",{href:"https://openwb.de/main/?page_id=1025",target:"_blank",rel:"noopener noreferrer"}," Homepage "),a(". ")],-1),Ce={key:0},Re=u("a",{href:"https://openwb.de/main/wp-content/uploads/2023/10/ModbusTCP-openWB-series2-Pro-1.pdf",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),Te={key:1},qe={key:1},$e=u("p",null," Mit der HTTP-API kann man den Wert eines MQTT-Topics per HTTPs (Port 8443) abfragen oder neu setzen. Topics können über GET oder POST abgefragt, neue Werte nur mit POST gesetzt werden. ",-1),De=u("p",null," Beispiel 1: Abfrage des aktuellen Systemzeitstempels ",-1),ze=u("br",null,null,-1),Oe=u("br",null,null,-1),Ee=u("p",null," Die zurückgegebenen Daten sind im JSON-Format. Der Inhalt ist nach folgendem Schema aufgebaut: ",-1),Ne={class:"border border-info w-100 p-1"},xe=u("p",null,' Im Fehlerfall wird der Status auf "failed" gesetzt und eine Fehlermeldung zurückgegeben. ',-1),Ae=u("p",null,"Beispiel 2: integriertes Display abschalten",-1),Le=u("br",null,null,-1),Pe=u("p",null," Die zurückgegebenen Daten sind im JSON-Format. Der Inhalt ist nach folgendem Schema aufgebaut: ",-1),Ue={class:"border border-info w-100 p-1"},Je={key:0},Fe={key:1},je={key:0},Ie=u("br",null,null,-1),Me=u("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),Ge=u("br",null,null,-1),Ke=u("span",{class:"text-danger"}," Die Option ist nur aktiv, wenn der EVU-Zähler die Frequenz übermittelt. ",-1),He=u("hr",null,null,-1),Ze={key:2},Xe={key:0},Qe={key:0},Ye={key:1},et={key:0},tt={key:0},nt={key:1};function ot(e,t,s,W,y,p){const m=c("openwb-base-alert"),r=c("openwb-base-button-group-input"),v=c("openwb-base-copy-to-clipboard"),w=c("openwb-base-card"),S=c("openwb-base-heading"),k=c("openwb-base-select-input"),K=c("openwb-ripple-control-receiver-proxy"),H=c("openwb-web-theme-proxy"),b=c("font-awesome-icon"),Z=c("openwb-base-submit-buttons");return l(),g("div",ye,[u("form",Se,[n(w,{title:"Steuerungsmodus"},{default:o(()=>[n(m,{subtype:"info"},{default:o(()=>[ke,Ve]),_:1}),n(r,{title:"Steuerungsmodus",buttons:[{buttonValue:!1,text:"primary",class:"btn-outline-danger"},{buttonValue:!0,text:"secondary",class:"btn-outline-success"}],"model-value":e.$store.state.mqtt["openWB/general/extern"],"onUpdate:modelValue":t[0]||(t[0]=d=>e.updateState("openWB/general/extern",d))},null,8,["model-value"]),s.installAssistantActive?_("",!0):(l(),g("div",Ce,[e.$store.state.mqtt["openWB/general/extern"]===!0?(l(),h(r,{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":e.$store.state.mqtt["openWB/general/modbus_control"],"onUpdate:modelValue":t[1]||(t[1]=d=>e.updateState("openWB/general/modbus_control",d))},{help:o(()=>[a(" Im secondary-Modus kann die openWB über die Modbus-Schnittstelle gesteuert werden. Die Register sind "),Re,a(" dokumentiert. Bei aktivierter Modbus-Schnittstelle darf die openWB nicht von einer primary-openWB gesteuert werden. ")]),_:1},8,["model-value"])):_("",!0),e.$store.state.mqtt["openWB/general/extern"]===!0&&e.$store.state.mqtt["openWB/general/modbus_control"]!==!0?(l(),g("div",Te,[n(m,{subtype:"info"},{default:o(()=>[a(' Wenn die Steuerung über Modbus auf "Aus" geändert wird, muss danach ein Neustart durchgeführt werden! ')]),_:1})])):_("",!0)])),s.installAssistantActive?_("",!0):(l(),g("div",qe,[n(r,{title:"HTTP-API",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":e.$store.state.mqtt["openWB/general/http_api"],"onUpdate:modelValue":t[2]||(t[2]=d=>e.updateState("openWB/general/http_api",d))},{help:o(()=>[$e,De,u("ul",null,[u("li",null,[a(" GET-Request:"),ze,n(v,{class:"text-info",tooltip:"URL kopieren"},{default:o(()=>[a(" https://"+f(p.getIpAddress())+":8443/v1/?topic=openWB/system/time ",1)]),_:1})]),u("li",null,[a(" POST-Request über 'curl' mit privatem SSL-Zertifikat und Verarbeitung durch 'jq':"),Oe,n(v,{class:"text-info",tooltip:"Befehl kopieren"},{default:o(()=>[a(` curl -k -s -X POST --data '{"topic":"openWB/system/time"}' https://`+f(p.getIpAddress())+":8443/v1/ | jq . ",1)]),_:1})])]),Ee,u("pre",Ne,f(JSON.stringify({status:"success",topic:"openWB/system/time",message:1721287000646975e-6},null,4)),1),xe,Ae,u("ul",null,[u("li",null,[a(" POST-Request über 'curl' mit privatem SSL-Zertifikat und Verarbeitung durch 'jq':"),Le,n(v,{class:"text-info",tooltip:"Befehl kopieren"},{default:o(()=>[a(` curl -k -s -X POST --data '{"topic": "openWB/set/optional/int_display/active", "message": false}' https://`+f(p.getIpAddress())+":8443/v1/ | jq . ",1)]),_:1})])]),Pe,u("pre",Ue,f(JSON.stringify({status:"success",topic:"openWB/set/optional/int_display/active",message:!1},null,4)),1)]),_:1},8,["model-value"])]))]),_:1}),n(w,{title:"Hardware"},{default:o(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(l(),g("div",Je,[n(m,{subtype:"info"},{default:o(()=>[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):_("",!0),s.installAssistantActive?_("",!0):(l(),g("div",Fe,[e.$store.state.mqtt["openWB/general/extern"]===!1?(l(),g("div",je,[n(r,{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":e.$store.state.mqtt["openWB/general/control_interval"],"onUpdate:modelValue":t[3]||(t[3]=d=>e.updateState("openWB/general/control_interval",d))},{help:o(()=>[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.'),Ie,Me]),_:1},8,["model-value"]),n(r,{title:"Netzschutz",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":e.$store.state.mqtt["openWB/general/grid_protection_configured"],"onUpdate:modelValue":t[4]||(t[4]=d=>e.updateState("openWB/general/grid_protection_configured",d))},{help:o(()=>[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.'),Ge,Ke]),_:1},8,["model-value"])])):_("",!0),He])),e.$store.state.mqtt["openWB/general/extern"]===!1?(l(),g("div",Ze,[n(S,{class:"mt-0"},{default:o(()=>[a(" Steuerbare Verbrauchseinrichtung ")]),_:1}),n(m,{sub_type:"info"},{default:o(()=>[a(' Aktuell unterstützt openWB die eingehende Steuerung als "Steuerbare Verbrauchseinrichtung" nur über potentialfreie Kontakte (Rundsteuerempfänger, RSE). Ebenfalls können derzeit bei Auslösung des RSE nur alle Ladevorgänge komplett beendet werden. Die Unterstützung von "Dimmung" im Sinne von §14a EnWG wird umgesetzt, sobald wir weitere Informationen von den Netzbetreibern erhalten, wie die Ansteuerung technisch umgesetzt wird. ')]),_:1}),n(k,{class:"mb-2",title:"Anbindung RSE-Kontakt",options:p.rippleControlReceiverList,"model-value":e.$store.state.mqtt["openWB/general/ripple_control_receiver/module"]?e.$store.state.mqtt["openWB/general/ripple_control_receiver/module"].type:"","onUpdate:modelValue":t[5]||(t[5]=d=>p.updateSelectedRippleControlReceiverModule(d))},null,8,["options","model-value"]),e.$store.state.mqtt["openWB/general/ripple_control_receiver/module"]&&e.$store.state.mqtt["openWB/general/ripple_control_receiver/module"].type?(l(),g("div",Xe,[n(K,{rippleControlReceiver:e.$store.state.mqtt["openWB/general/ripple_control_receiver/module"],"onUpdate:configuration":t[6]||(t[6]=d=>p.updateConfiguration("openWB/general/ripple_control_receiver/module",d))},null,8,["rippleControlReceiver"])])):_("",!0)])):_("",!0)]),_:1}),s.installAssistantActive?_("",!0):(l(),h(w,{key:0,title:"Darstellung"},{default:o(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(l(),g("div",Qe,[n(m,{subtype:"info"},{default:o(()=>[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(l(),g("div",Ye,[n(S,{class:"mt-0"},{default:o(()=>[a(" Hauptseite ")]),_:1}),e.$store.state.mqtt["openWB/general/web_theme"]!==void 0?(l(),g("div",et,[n(k,{class:"mb-2",title:"Theme",groups:p.webThemeGroupList,"model-value":e.$store.state.mqtt["openWB/general/web_theme"].type,"onUpdate:modelValue":t[7]||(t[7]=d=>p.updateSelectedWebTheme(d))},null,8,["groups","model-value"]),e.$store.state.mqtt["openWB/general/web_theme"].type?(l(),h(H,{key:0,webTheme:e.$store.state.mqtt["openWB/general/web_theme"],"onUpdate:configuration":t[8]||(t[8]=d=>p.updateConfiguration("openWB/general/web_theme",d))},null,8,["webTheme"])):_("",!0)])):_("",!0)]))]),_:1})),s.installAssistantActive?_("",!0):(l(),h(w,{key:1,title:"Lade-Log"},{default:o(()=>{var d,V,C,R,T,q,$,D,z,O,E,N,x,A,L,P;return[e.$store.state.mqtt["openWB/general/extern"]===!0?(l(),g("div",tt,[n(m,{subtype:"info"},{default:o(()=>[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(l(),g("div",nt,[n(r,{title:"Einheit für Entfernungen","model-value":e.$store.state.mqtt["openWB/general/range_unit"],"onUpdate:modelValue":t[9]||(t[9]=i=>e.updateState("openWB/general/range_unit",i)),buttons:[{buttonValue:"km",text:"Kilometer"},{buttonValue:"mi",text:"Meilen"}]},null,8,["model-value"]),n(S,null,{default:o(()=>[a(" Auswahl der Datenfelder ")]),_:1}),n(r,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(d=e.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:d.time_begin,"onUpdate:modelValue":t[10]||(t[10]=i=>e.updateState("openWB/general/charge_log_data_config",i,"time_begin"))},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","calendar"]}),a(" Beginn ")]),_:1},8,["model-value"]),n(r,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(V=e.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:V.time_end,"onUpdate:modelValue":t[11]||(t[11]=i=>e.updateState("openWB/general/charge_log_data_config",i,"time_end"))},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","calendar"]}),a(" Ende ")]),_:1},8,["model-value"]),n(r,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(C=e.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:C.time_time_charged,"onUpdate:modelValue":t[12]||(t[12]=i=>e.updateState("openWB/general/charge_log_data_config",i,"time_time_charged"))},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","clock"]}),a(" Dauer ")]),_:1},8,["model-value"]),n(r,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(R=e.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:R.data_costs,"onUpdate:modelValue":t[13]||(t[13]=i=>e.updateState("openWB/general/charge_log_data_config",i,"data_costs"))},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","coins"]}),a(" Kosten ")]),_:1},8,["model-value"]),n(r,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(T=e.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:T.data_power_source,"onUpdate:modelValue":t[14]||(t[14]=i=>e.updateState("openWB/general/charge_log_data_config",i,"data_power_source"))},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","pie-chart"]}),a(" Energieaufteilung ")]),_:1},8,["model-value"]),n(r,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(q=e.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:q.vehicle_name,"onUpdate:modelValue":t[15]||(t[15]=i=>e.updateState("openWB/general/charge_log_data_config",i,"vehicle_name"))},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","car"]}),a(" Name ")]),_:1},8,["model-value"]),n(r,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":($=e.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:$.vehicle_chargemode,"onUpdate:modelValue":t[16]||(t[16]=i=>e.updateState("openWB/general/charge_log_data_config",i,"vehicle_chargemode"))},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","car"]}),a(" Lademodus ")]),_:1},8,["model-value"]),n(r,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(D=e.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:D.vehicle_prio,"onUpdate:modelValue":t[17]||(t[17]=i=>e.updateState("openWB/general/charge_log_data_config",i,"vehicle_prio"))},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","car"]}),a(" Priorität ")]),_:1},8,["model-value"]),n(r,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(z=e.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:z.vehicle_rfid,"onUpdate:modelValue":t[18]||(t[18]=i=>e.updateState("openWB/general/charge_log_data_config",i,"vehicle_rfid"))},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","car"]}),a(" ID-Tag ")]),_:1},8,["model-value"]),n(r,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(O=e.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:O.vehicle_soc_at_start,"onUpdate:modelValue":t[19]||(t[19]=i=>e.updateState("openWB/general/charge_log_data_config",i,"vehicle_soc_at_start"))},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","car"]}),a(" SoC bei Ladebeginn ")]),_:1},8,["model-value"]),n(r,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(E=e.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:E.vehicle_soc_at_end,"onUpdate:modelValue":t[20]||(t[20]=i=>e.updateState("openWB/general/charge_log_data_config",i,"vehicle_soc_at_end"))},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","car"]}),a(" SoC bei Ladende ")]),_:1},8,["model-value"]),n(r,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(N=e.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:N.chargepoint_name,"onUpdate:modelValue":t[21]||(t[21]=i=>e.updateState("openWB/general/charge_log_data_config",i,"chargepoint_name"))},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","charging-station"]}),a(" Name ")]),_:1},8,["model-value"]),n(r,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(x=e.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:x.chargepoint_serial_number,"onUpdate:modelValue":t[22]||(t[22]=i=>e.updateState("openWB/general/charge_log_data_config",i,"chargepoint_serial_number"))},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","charging-station"]}),a(" Seriennummer ")]),_:1},8,["model-value"]),n(r,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(A=e.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:A.data_imported_since_mode_switch,"onUpdate:modelValue":t[23]||(t[23]=i=>e.updateState("openWB/general/charge_log_data_config",i,"data_imported_since_mode_switch"))},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","charging-station"]}),a(" Geladene Energie ")]),_:1},8,["model-value"]),n(r,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(L=e.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:L.chargepoint_imported_at_start,"onUpdate:modelValue":t[24]||(t[24]=i=>e.updateState("openWB/general/charge_log_data_config",i,"chargepoint_imported_at_start"))},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","charging-station"]}),a(" Zählerstand bei Ladebeginn ")]),_:1},8,["model-value"]),n(r,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(P=e.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:P.chargepoint_imported_at_end,"onUpdate:modelValue":t[25]||(t[25]=i=>e.updateState("openWB/general/charge_log_data_config",i,"chargepoint_imported_at_end"))},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","charging-station"]}),a(" Zählerstand bei Ladeende ")]),_:1},8,["model-value"])]))]}),_:1})),n(Z,{formName:"generalConfigForm",onSave:t[26]||(t[26]=d=>e.$emit("save")),onReset:t[27]||(t[27]=d=>e.$emit("reset")),onDefaults:t[28]||(t[28]=d=>e.$emit("defaults"))})])])}const gt=B(We,[["render",ot],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralConfig.vue"]]);export{gt as default}; +import{l as J,X,Y as Q,F,R as Y,K as ee,z as te,a4 as ne,a5 as oe,a6 as ae}from"./vendor-fortawesome-71546160.js";import{_ as U,C as re}from"./index-88a2073c.js";import{_ as j}from"./dynamic-import-helper-be004503.js";import{_ as B,u as c,k as l,l as g,A as h,N as o,y as a,z as f,D as n,x as u,a2 as I,a3 as M,J as G,B as _}from"./vendor-f2b8aa6f.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const ie={name:"WebThemeFallback",emits:["update:configuration"],props:{webTheme:{type:Object,required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},le={class:"web-theme-fallback"},se={key:1};function ue(e,t,s,W,y,p){const m=c("openwb-base-alert"),r=c("openwb-base-textarea");return l(),g("div",le,[Object.keys(s.webTheme.configuration).length==0?(l(),h(m,{key:0,subtype:"info"},{default:o(()=>[a(' Das Web Theme "'+f(s.webTheme.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(l(),g("div",se,[n(m,{subtype:"warning"},{default:o(()=>[a(' Es wurde keine Konfigurationsseite für das Web Theme "'+f(s.webTheme.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(r,{title:"Theme Konfiguration",subtype:"json","model-value":s.webTheme.configuration,"onUpdate:modelValue":t[0]||(t[0]=v=>p.updateConfiguration(v,"configuration"))},{help:o(()=>[a(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ")]),_:1},8,["model-value"]),n(m,{subtype:"info"},{default:o(()=>[u("pre",null,f(JSON.stringify(s.webTheme.configuration,void 0,2)),1)]),_:1})]))])}const de=B(ie,[["render",ue],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeFallback.vue"]]);J.add(X,Q);const pe={name:"OpenwbWebThemeProxy",emits:["update:configuration"],props:{webTheme:{type:Object,required:!0}},components:{FontAwesomeIcon:F},computed:{myComponent(){return console.debug(`loading web theme: ${this.webTheme.name}`),I({loader:()=>j(Object.assign({}),`./${this.webTheme.type}/webTheme.vue`),errorComponent:de})}},methods:{updateConfiguration(e){this.$emit("update:configuration",e)}}};function ge(e,t,s,W,y,p){const m=c("font-awesome-icon"),r=c("openwb-base-alert"),v=c("openwb-base-heading");return l(),g(G,null,[s.webTheme.official?(l(),h(r,{key:0,subtype:"success"},{default:o(()=>[n(m,{"fixed-width":"",icon:["fas","certificate"]}),a(' Das ausgewählte Web Theme "'+f(s.webTheme.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(l(),h(r,{key:1,subtype:"info"},{default:o(()=>[n(m,{"fixed-width":"",icon:["fas","people-group"]}),a(" Das ausgewählte Theme wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ")]),_:1})),n(v,null,{default:o(()=>[a(' Einstellungen für Web Theme "'+f(s.webTheme.name)+'" ',1)]),_:1}),(l(),h(M(p.myComponent),{webTheme:s.webTheme,"onUpdate:configuration":t[0]||(t[0]=w=>p.updateConfiguration(w))},null,40,["webTheme"]))],64)}const me=B(pe,[["render",ge],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeProxy.vue"]]),ce={name:"RippleControlReceiverConfigFallback",emits:["update:configuration"],props:{rippleControlReceiver:{type:Object,required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},be={class:"ripple-control-receiver-fallback"},fe={key:1};function _e(e,t,s,W,y,p){const m=c("openwb-base-alert"),r=c("openwb-base-textarea");return l(),g("div",be,[Object.keys(s.rippleControlReceiver.configuration).length==0?(l(),h(m,{key:0,subtype:"info"},{default:o(()=>[a(' Das RSE-Modul "'+f(s.rippleControlReceiver.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(l(),g("div",fe,[n(m,{subtype:"warning"},{default:o(()=>[a(' Es wurde keine Konfigurationsseite für das RSE-Modul "'+f(s.rippleControlReceiver.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(r,{title:"Konfiguration",subtype:"json","model-value":s.rippleControlReceiver.configuration,"onUpdate:modelValue":t[0]||(t[0]=v=>p.updateConfiguration(v,"configuration"))},{help:o(()=>[a(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ")]),_:1},8,["model-value"]),n(m,{subtype:"info"},{default:o(()=>[u("pre",null,f(JSON.stringify(s.rippleControlReceiver.configuration,void 0,2)),1)]),_:1})]))])}const he=B(ce,[["render",_e],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/ripple_control_receivers/OpenwbRippleControlReceiverConfigFallback.vue"]]),ve={name:"OpenwbRippleControlReceiverProxy",emits:["update:configuration","sendCommand"],props:{rippleControlReceiver:{type:Object,required:!0}},computed:{myComponent(){return console.debug(`loading backup cloud: ${this.rippleControlReceiver.type}`),I({loader:()=>j(Object.assign({"./dimm_kit/ripple_control_receiver.vue":()=>U(()=>import("./ripple_control_receiver-51e952e1.js"),["assets/ripple_control_receiver-51e952e1.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./gpio/ripple_control_receiver.vue":()=>U(()=>import("./ripple_control_receiver-7a1236a4.js"),["assets/ripple_control_receiver-7a1236a4.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"])}),`./${this.rippleControlReceiver.type}/ripple_control_receiver.vue`),errorComponent:he})}},methods:{updateConfiguration(e){this.$emit("update:configuration",e)},sendCommand(e){this.$emit("sendCommand",e)}}};function we(e,t,s,W,y,p){const m=c("openwb-base-heading");return l(),g(G,null,[n(m,null,{default:o(()=>[a(' Einstellungen für RSE-Modul "'+f(s.rippleControlReceiver.name)+'" ',1)]),_:1}),(l(),h(M(p.myComponent),{rippleControlReceiver:s.rippleControlReceiver,"onUpdate:configuration":t[0]||(t[0]=r=>p.updateConfiguration(r)),onSendCommand:t[1]||(t[1]=r=>p.sendCommand(r))},null,40,["rippleControlReceiver"]))],64)}const Be=B(ve,[["render",we],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/ripple_control_receivers/OpenwbRippleControlReceiverProxy.vue"]]);J.add(Y,ee,te,ne,oe,ae);const We={name:"OpenwbGeneralConfigView",mixins:[re],components:{OpenwbWebThemeProxy:me,OpenwbRippleControlReceiverProxy:Be,FontAwesomeIcon:F},props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},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/ripple_control_receiver/module","openWB/general/web_theme","openWB/system/configurable/ripple_control_receivers","openWB/system/configurable/web_themes","openWB/system/ip_address"]}},computed:{webThemeList:{get(){return this.$store.state.mqtt["openWB/system/configurable/web_themes"]}},webThemeGroupList:{get(){let e=[{label:"openWB",options:[]},{label:"Community",options:[]}];return this.webThemeList.forEach(t=>{t.official===!0?e[0].options.push(t):e[1].options.push(t)}),e}},rippleControlReceiverList(){return this.$store.state.mqtt["openWB/system/configurable/ripple_control_receivers"]}},methods:{getIpAddress(){return this.$store.state.mqtt["openWB/system/ip_address"]},getWebThemeDefaults(e){const t=this.webThemeList.find(s=>s.value==e);return Object.prototype.hasOwnProperty.call(t,"defaults")?{...JSON.parse(JSON.stringify(t.defaults))}:(console.warn("no default configuration found for web theme type!",e),{})},updateSelectedWebTheme(e){this.updateState("openWB/general/web_theme",this.getWebThemeDefaults(e))},updateConfiguration(e,t){console.debug("updateConfiguration",e,t),this.updateState(e,t.value,t.object)},getRippleControlReceiverDefaultConfiguration(e){const t=this.rippleControlReceiverList.find(s=>s.value==e);return Object.prototype.hasOwnProperty.call(t,"defaults")?{...t.defaults}:(console.warn("no default configuration found for electricity tariff type!",e),{})},updateSelectedRippleControlReceiverModule(e){this.updateState("openWB/general/ripple_control_receiver/module",e,"type"),this.updateState("openWB/general/ripple_control_receiver/module",this.getRippleControlReceiverDefaultConfiguration(e))}}},ye={class:"generalConfig"},Se={name:"generalConfigForm"},ke=u("p",null,' Wird für den Steuerungsmodus "primary" gewählt, übernimmt diese openWB die alleinige Regelung und steuert ggf. vorhandene weitere openWB (z.B. externe openWB im Steuermodus secondary, openWB Pro, Satellit u.a.) fern. Sie werden in den Ladepunkt-Einstellungen der primary-openWB hinzugefügt. ',-1),Ve=u("p",null,[a(' 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.'),u("br"),a(" Eine bebilderte Anleitung zur Konfiguration der Ladepunkte findest Du auf der "),u("a",{href:"https://openwb.de/main/?page_id=1025",target:"_blank",rel:"noopener noreferrer"}," Homepage "),a(". ")],-1),Ce={key:0},Re=u("a",{href:"https://openwb.de/main/wp-content/uploads/2023/10/ModbusTCP-openWB-series2-Pro-1.pdf",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),Te={key:1},qe={key:1},$e=u("p",null," Mit der HTTP-API kann man den Wert eines MQTT-Topics per HTTPs (Port 8443) abfragen oder neu setzen. Topics können über GET oder POST abgefragt, neue Werte nur mit POST gesetzt werden. ",-1),De=u("p",null," Beispiel 1: Abfrage des aktuellen Systemzeitstempels ",-1),ze=u("br",null,null,-1),Oe=u("br",null,null,-1),Ee=u("p",null," Die zurückgegebenen Daten sind im JSON-Format. Der Inhalt ist nach folgendem Schema aufgebaut: ",-1),Ne={class:"border border-info w-100 p-1"},xe=u("p",null,' Im Fehlerfall wird der Status auf "failed" gesetzt und eine Fehlermeldung zurückgegeben. ',-1),Ae=u("p",null,"Beispiel 2: integriertes Display abschalten",-1),Le=u("br",null,null,-1),Pe=u("p",null," Die zurückgegebenen Daten sind im JSON-Format. Der Inhalt ist nach folgendem Schema aufgebaut: ",-1),Ue={class:"border border-info w-100 p-1"},Je={key:0},Fe={key:1},je={key:0},Ie=u("br",null,null,-1),Me=u("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),Ge=u("br",null,null,-1),Ke=u("span",{class:"text-danger"}," Die Option ist nur aktiv, wenn der EVU-Zähler die Frequenz übermittelt. ",-1),He=u("hr",null,null,-1),Ze={key:2},Xe={key:0},Qe={key:0},Ye={key:1},et={key:0},tt={key:0},nt={key:1};function ot(e,t,s,W,y,p){const m=c("openwb-base-alert"),r=c("openwb-base-button-group-input"),v=c("openwb-base-copy-to-clipboard"),w=c("openwb-base-card"),S=c("openwb-base-heading"),k=c("openwb-base-select-input"),K=c("openwb-ripple-control-receiver-proxy"),H=c("openwb-web-theme-proxy"),b=c("font-awesome-icon"),Z=c("openwb-base-submit-buttons");return l(),g("div",ye,[u("form",Se,[n(w,{title:"Steuerungsmodus"},{default:o(()=>[n(m,{subtype:"info"},{default:o(()=>[ke,Ve]),_:1}),n(r,{title:"Steuerungsmodus",buttons:[{buttonValue:!1,text:"primary",class:"btn-outline-danger"},{buttonValue:!0,text:"secondary",class:"btn-outline-success"}],"model-value":e.$store.state.mqtt["openWB/general/extern"],"onUpdate:modelValue":t[0]||(t[0]=d=>e.updateState("openWB/general/extern",d))},null,8,["model-value"]),s.installAssistantActive?_("",!0):(l(),g("div",Ce,[e.$store.state.mqtt["openWB/general/extern"]===!0?(l(),h(r,{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":e.$store.state.mqtt["openWB/general/modbus_control"],"onUpdate:modelValue":t[1]||(t[1]=d=>e.updateState("openWB/general/modbus_control",d))},{help:o(()=>[a(" Im secondary-Modus kann die openWB über die Modbus-Schnittstelle gesteuert werden. Die Register sind "),Re,a(" dokumentiert. Bei aktivierter Modbus-Schnittstelle darf die openWB nicht von einer primary-openWB gesteuert werden. ")]),_:1},8,["model-value"])):_("",!0),e.$store.state.mqtt["openWB/general/extern"]===!0&&e.$store.state.mqtt["openWB/general/modbus_control"]!==!0?(l(),g("div",Te,[n(m,{subtype:"info"},{default:o(()=>[a(' Wenn die Steuerung über Modbus auf "Aus" geändert wird, muss danach ein Neustart durchgeführt werden! ')]),_:1})])):_("",!0)])),s.installAssistantActive?_("",!0):(l(),g("div",qe,[n(r,{title:"HTTP-API",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":e.$store.state.mqtt["openWB/general/http_api"],"onUpdate:modelValue":t[2]||(t[2]=d=>e.updateState("openWB/general/http_api",d))},{help:o(()=>[$e,De,u("ul",null,[u("li",null,[a(" GET-Request:"),ze,n(v,{class:"text-info",tooltip:"URL kopieren"},{default:o(()=>[a(" https://"+f(p.getIpAddress())+":8443/v1/?topic=openWB/system/time ",1)]),_:1})]),u("li",null,[a(" POST-Request über 'curl' mit privatem SSL-Zertifikat und Verarbeitung durch 'jq':"),Oe,n(v,{class:"text-info",tooltip:"Befehl kopieren"},{default:o(()=>[a(` curl -k -s -X POST --data '{"topic":"openWB/system/time"}' https://`+f(p.getIpAddress())+":8443/v1/ | jq . ",1)]),_:1})])]),Ee,u("pre",Ne,f(JSON.stringify({status:"success",topic:"openWB/system/time",message:1721287000646975e-6},null,4)),1),xe,Ae,u("ul",null,[u("li",null,[a(" POST-Request über 'curl' mit privatem SSL-Zertifikat und Verarbeitung durch 'jq':"),Le,n(v,{class:"text-info",tooltip:"Befehl kopieren"},{default:o(()=>[a(` curl -k -s -X POST --data '{"topic": "openWB/set/optional/int_display/active", "message": false}' https://`+f(p.getIpAddress())+":8443/v1/ | jq . ",1)]),_:1})])]),Pe,u("pre",Ue,f(JSON.stringify({status:"success",topic:"openWB/set/optional/int_display/active",message:!1},null,4)),1)]),_:1},8,["model-value"])]))]),_:1}),n(w,{title:"Hardware"},{default:o(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(l(),g("div",Je,[n(m,{subtype:"info"},{default:o(()=>[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):_("",!0),s.installAssistantActive?_("",!0):(l(),g("div",Fe,[e.$store.state.mqtt["openWB/general/extern"]===!1?(l(),g("div",je,[n(r,{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":e.$store.state.mqtt["openWB/general/control_interval"],"onUpdate:modelValue":t[3]||(t[3]=d=>e.updateState("openWB/general/control_interval",d))},{help:o(()=>[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.'),Ie,Me]),_:1},8,["model-value"]),n(r,{title:"Netzschutz",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":e.$store.state.mqtt["openWB/general/grid_protection_configured"],"onUpdate:modelValue":t[4]||(t[4]=d=>e.updateState("openWB/general/grid_protection_configured",d))},{help:o(()=>[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.'),Ge,Ke]),_:1},8,["model-value"])])):_("",!0),He])),e.$store.state.mqtt["openWB/general/extern"]===!1?(l(),g("div",Ze,[n(S,{class:"mt-0"},{default:o(()=>[a(" Steuerbare Verbrauchseinrichtung ")]),_:1}),n(m,{sub_type:"info"},{default:o(()=>[a(' Aktuell unterstützt openWB die eingehende Steuerung als "Steuerbare Verbrauchseinrichtung" nur über potentialfreie Kontakte (Rundsteuerempfänger, RSE). Ebenfalls können derzeit bei Auslösung des RSE nur alle Ladevorgänge komplett beendet werden. Die Unterstützung von "Dimmung" im Sinne von §14a EnWG wird umgesetzt, sobald wir weitere Informationen von den Netzbetreibern erhalten, wie die Ansteuerung technisch umgesetzt wird. ')]),_:1}),n(k,{class:"mb-2",title:"Anbindung RSE-Kontakt",options:p.rippleControlReceiverList,"model-value":e.$store.state.mqtt["openWB/general/ripple_control_receiver/module"]?e.$store.state.mqtt["openWB/general/ripple_control_receiver/module"].type:"","onUpdate:modelValue":t[5]||(t[5]=d=>p.updateSelectedRippleControlReceiverModule(d))},null,8,["options","model-value"]),e.$store.state.mqtt["openWB/general/ripple_control_receiver/module"]&&e.$store.state.mqtt["openWB/general/ripple_control_receiver/module"].type?(l(),g("div",Xe,[n(K,{rippleControlReceiver:e.$store.state.mqtt["openWB/general/ripple_control_receiver/module"],"onUpdate:configuration":t[6]||(t[6]=d=>p.updateConfiguration("openWB/general/ripple_control_receiver/module",d))},null,8,["rippleControlReceiver"])])):_("",!0)])):_("",!0)]),_:1}),s.installAssistantActive?_("",!0):(l(),h(w,{key:0,title:"Darstellung"},{default:o(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(l(),g("div",Qe,[n(m,{subtype:"info"},{default:o(()=>[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(l(),g("div",Ye,[n(S,{class:"mt-0"},{default:o(()=>[a(" Hauptseite ")]),_:1}),e.$store.state.mqtt["openWB/general/web_theme"]!==void 0?(l(),g("div",et,[n(k,{class:"mb-2",title:"Theme",groups:p.webThemeGroupList,"model-value":e.$store.state.mqtt["openWB/general/web_theme"].type,"onUpdate:modelValue":t[7]||(t[7]=d=>p.updateSelectedWebTheme(d))},null,8,["groups","model-value"]),e.$store.state.mqtt["openWB/general/web_theme"].type?(l(),h(H,{key:0,webTheme:e.$store.state.mqtt["openWB/general/web_theme"],"onUpdate:configuration":t[8]||(t[8]=d=>p.updateConfiguration("openWB/general/web_theme",d))},null,8,["webTheme"])):_("",!0)])):_("",!0)]))]),_:1})),s.installAssistantActive?_("",!0):(l(),h(w,{key:1,title:"Lade-Log"},{default:o(()=>{var d,V,C,R,T,q,$,D,z,O,E,N,x,A,L,P;return[e.$store.state.mqtt["openWB/general/extern"]===!0?(l(),g("div",tt,[n(m,{subtype:"info"},{default:o(()=>[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(l(),g("div",nt,[n(r,{title:"Einheit für Entfernungen","model-value":e.$store.state.mqtt["openWB/general/range_unit"],"onUpdate:modelValue":t[9]||(t[9]=i=>e.updateState("openWB/general/range_unit",i)),buttons:[{buttonValue:"km",text:"Kilometer"},{buttonValue:"mi",text:"Meilen"}]},null,8,["model-value"]),n(S,null,{default:o(()=>[a(" Auswahl der Datenfelder ")]),_:1}),n(r,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(d=e.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:d.time_begin,"onUpdate:modelValue":t[10]||(t[10]=i=>e.updateState("openWB/general/charge_log_data_config",i,"time_begin"))},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","calendar"]}),a(" Beginn ")]),_:1},8,["model-value"]),n(r,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(V=e.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:V.time_end,"onUpdate:modelValue":t[11]||(t[11]=i=>e.updateState("openWB/general/charge_log_data_config",i,"time_end"))},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","calendar"]}),a(" Ende ")]),_:1},8,["model-value"]),n(r,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(C=e.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:C.time_time_charged,"onUpdate:modelValue":t[12]||(t[12]=i=>e.updateState("openWB/general/charge_log_data_config",i,"time_time_charged"))},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","clock"]}),a(" Dauer ")]),_:1},8,["model-value"]),n(r,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(R=e.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:R.data_costs,"onUpdate:modelValue":t[13]||(t[13]=i=>e.updateState("openWB/general/charge_log_data_config",i,"data_costs"))},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","coins"]}),a(" Kosten ")]),_:1},8,["model-value"]),n(r,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(T=e.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:T.data_power_source,"onUpdate:modelValue":t[14]||(t[14]=i=>e.updateState("openWB/general/charge_log_data_config",i,"data_power_source"))},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","pie-chart"]}),a(" Energieaufteilung ")]),_:1},8,["model-value"]),n(r,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(q=e.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:q.vehicle_name,"onUpdate:modelValue":t[15]||(t[15]=i=>e.updateState("openWB/general/charge_log_data_config",i,"vehicle_name"))},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","car"]}),a(" Name ")]),_:1},8,["model-value"]),n(r,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":($=e.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:$.vehicle_chargemode,"onUpdate:modelValue":t[16]||(t[16]=i=>e.updateState("openWB/general/charge_log_data_config",i,"vehicle_chargemode"))},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","car"]}),a(" Lademodus ")]),_:1},8,["model-value"]),n(r,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(D=e.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:D.vehicle_prio,"onUpdate:modelValue":t[17]||(t[17]=i=>e.updateState("openWB/general/charge_log_data_config",i,"vehicle_prio"))},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","car"]}),a(" Priorität ")]),_:1},8,["model-value"]),n(r,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(z=e.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:z.vehicle_rfid,"onUpdate:modelValue":t[18]||(t[18]=i=>e.updateState("openWB/general/charge_log_data_config",i,"vehicle_rfid"))},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","car"]}),a(" ID-Tag ")]),_:1},8,["model-value"]),n(r,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(O=e.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:O.vehicle_soc_at_start,"onUpdate:modelValue":t[19]||(t[19]=i=>e.updateState("openWB/general/charge_log_data_config",i,"vehicle_soc_at_start"))},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","car"]}),a(" SoC bei Ladebeginn ")]),_:1},8,["model-value"]),n(r,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(E=e.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:E.vehicle_soc_at_end,"onUpdate:modelValue":t[20]||(t[20]=i=>e.updateState("openWB/general/charge_log_data_config",i,"vehicle_soc_at_end"))},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","car"]}),a(" SoC bei Ladende ")]),_:1},8,["model-value"]),n(r,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(N=e.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:N.chargepoint_name,"onUpdate:modelValue":t[21]||(t[21]=i=>e.updateState("openWB/general/charge_log_data_config",i,"chargepoint_name"))},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","charging-station"]}),a(" Name ")]),_:1},8,["model-value"]),n(r,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(x=e.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:x.chargepoint_serial_number,"onUpdate:modelValue":t[22]||(t[22]=i=>e.updateState("openWB/general/charge_log_data_config",i,"chargepoint_serial_number"))},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","charging-station"]}),a(" Seriennummer ")]),_:1},8,["model-value"]),n(r,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(A=e.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:A.data_imported_since_mode_switch,"onUpdate:modelValue":t[23]||(t[23]=i=>e.updateState("openWB/general/charge_log_data_config",i,"data_imported_since_mode_switch"))},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","charging-station"]}),a(" Geladene Energie ")]),_:1},8,["model-value"]),n(r,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(L=e.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:L.chargepoint_imported_at_start,"onUpdate:modelValue":t[24]||(t[24]=i=>e.updateState("openWB/general/charge_log_data_config",i,"chargepoint_imported_at_start"))},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","charging-station"]}),a(" Zählerstand bei Ladebeginn ")]),_:1},8,["model-value"]),n(r,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":(P=e.$store.state.mqtt["openWB/general/charge_log_data_config"])==null?void 0:P.chargepoint_imported_at_end,"onUpdate:modelValue":t[25]||(t[25]=i=>e.updateState("openWB/general/charge_log_data_config",i,"chargepoint_imported_at_end"))},{default:o(()=>[n(b,{"fixed-width":"",icon:["fas","charging-station"]}),a(" Zählerstand bei Ladeende ")]),_:1},8,["model-value"])]))]}),_:1})),n(Z,{formName:"generalConfigForm",onSave:t[26]||(t[26]=d=>e.$emit("save")),onReset:t[27]||(t[27]=d=>e.$emit("reset")),onDefaults:t[28]||(t[28]=d=>e.$emit("defaults"))})])])}const gt=B(We,[["render",ot],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralConfig.vue"]]);export{gt as default}; diff --git a/web/settings/assets/HardwareInstallation-b6072dfb.js b/web/settings/assets/HardwareInstallation-912044d0.js similarity index 99% rename from web/settings/assets/HardwareInstallation-b6072dfb.js rename to web/settings/assets/HardwareInstallation-912044d0.js index d30efee257..6214c2bb21 100644 --- a/web/settings/assets/HardwareInstallation-b6072dfb.js +++ b/web/settings/assets/HardwareInstallation-912044d0.js @@ -1 +1 @@ -import{l as N,d as U,t as G,a7 as F,a0 as H,P as J,O as Z,N as Q,F as X}from"./vendor-fortawesome-71546160.js";import{_ as e,C as Y}from"./index-ba5cf04c.js";import{_ as M}from"./dynamic-import-helper-be004503.js";import{_ as y,u as m,k as u,l as p,A as E,N as o,z as l,y as a,D as v,x as c,a2 as W,a3 as $,B as P,J as L,K as h,q as w,S as ee,U as _e}from"./vendor-f2b8aa6f.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const te={name:"DeviceFallback",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},deviceType:String,componentId:{default:void 0},componentType:String},methods:{updateConfiguration(_,i=void 0){this.$emit("update:configuration",{value:_,object:i})}}},oe={class:"device-fallback"},ie={key:0},re={key:1},ne={key:1},ue={key:0},ve={key:1};function de(_,i,r,O,s,n){const T=m("openwb-base-alert"),g=m("openwb-base-textarea");return u(),p("div",oe,[Object.keys(r.configuration).length==0?(u(),E(T,{key:0,subtype:"info"},{default:o(()=>[r.componentType?(u(),p("span",ie,' Der Komponenten-Typ "'+l(r.componentType)+'" ',1)):(u(),p("span",re,'Der Gerät-Typ "'+l(r.deviceType)+'"',1)),a(" bietet keine Einstellungen. ")]),_:1})):(u(),p("div",ne,[v(T,{subtype:"warning"},{default:o(()=>[a(" Es wurde keine Konfigurationsseite für den "),r.componentType?(u(),p("span",ue,' Komponenten-Typ "'+l(r.componentType)+'" ',1)):(u(),p("span",ve,'Geräte-Typ "'+l(r.deviceType)+'"',1)),a(" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ")]),_:1}),v(g,{title:"Konfiguration",subtype:"json","model-value":r.configuration,"onUpdate:modelValue":i[0]||(i[0]=D=>n.updateConfiguration(D,"configuration"))},{help:o(()=>[a(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ")]),_:1},8,["model-value"]),v(T,{subtype:"info"},{default:o(()=>[c("pre",null,l(JSON.stringify(r.configuration,void 0,2)),1)]),_:1})]))])}const S=y(te,[["render",de],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbDeviceConfigFallback.vue"]]),ae={name:"OpenwbConfigProxy",emits:["update:configuration"],props:{deviceId:{required:!0},deviceType:{type:String,required:!0},componentId:{default:void 0},componentType:{type:String,default:void 0},configuration:{type:Object,required:!0}},computed:{myComponent(){return console.debug(`loading component: ${this.deviceType} / ${this.componentType}`),this.componentType!==void 0?W({loader:()=>M(Object.assign({"./alpha_ess/bat.vue":()=>e(()=>import("./bat-a3dcba33.js"),["assets/bat-a3dcba33.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./alpha_ess/counter.vue":()=>e(()=>import("./counter-7dd04de5.js"),["assets/counter-7dd04de5.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./alpha_ess/device.vue":()=>e(()=>import("./device-79947814.js"),["assets/device-79947814.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./alpha_ess/inverter.vue":()=>e(()=>import("./inverter-45617c87.js"),["assets/inverter-45617c87.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./azzurro_sofar/bat.vue":()=>e(()=>import("./bat-03b2886a.js"),["assets/bat-03b2886a.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./azzurro_sofar/counter.vue":()=>e(()=>import("./counter-1aa978fe.js"),["assets/counter-1aa978fe.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./azzurro_sofar/device.vue":()=>e(()=>import("./device-1ea206ee.js"),["assets/device-1ea206ee.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./azzurro_sofar/inverter.vue":()=>e(()=>import("./inverter-a3685d5a.js"),["assets/inverter-a3685d5a.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./azzurro_zcs/bat.vue":()=>e(()=>import("./bat-03f52267.js"),["assets/bat-03f52267.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./azzurro_zcs/counter.vue":()=>e(()=>import("./counter-18904432.js"),["assets/counter-18904432.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./azzurro_zcs/device.vue":()=>e(()=>import("./device-8ebdd328.js"),["assets/device-8ebdd328.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./azzurro_zcs/inverter.vue":()=>e(()=>import("./inverter-6429eef9.js"),["assets/inverter-6429eef9.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./batterx/bat.vue":()=>e(()=>import("./bat-31e29792.js"),["assets/bat-31e29792.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./batterx/counter.vue":()=>e(()=>import("./counter-10685234.js"),["assets/counter-10685234.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./batterx/device.vue":()=>e(()=>import("./device-c3a7fe4c.js"),["assets/device-c3a7fe4c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./batterx/external_inverter.vue":()=>e(()=>import("./external_inverter-c36c81de.js"),["assets/external_inverter-c36c81de.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./batterx/inverter.vue":()=>e(()=>import("./inverter-aba0125a.js"),["assets/inverter-aba0125a.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./benning/device.vue":()=>e(()=>import("./device-e70fb123.js"),["assets/device-e70fb123.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./benning/inverter.vue":()=>e(()=>import("./inverter-a269797d.js"),["assets/inverter-a269797d.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./byd/bat.vue":()=>e(()=>import("./bat-ced626fd.js"),["assets/bat-ced626fd.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./byd/device.vue":()=>e(()=>import("./device-7bcef0cb.js"),["assets/device-7bcef0cb.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./carlo_gavazzi/counter.vue":()=>e(()=>import("./counter-ccf41c41.js"),["assets/counter-ccf41c41.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./carlo_gavazzi/device.vue":()=>e(()=>import("./device-6513a22e.js"),["assets/device-6513a22e.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./deye/bat.vue":()=>e(()=>import("./bat-12d70573.js"),["assets/bat-12d70573.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./deye/counter.vue":()=>e(()=>import("./counter-f98b9cbf.js"),["assets/counter-f98b9cbf.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./deye/device.vue":()=>e(()=>import("./device-a7f7c6ed.js"),["assets/device-a7f7c6ed.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./deye/inverter.vue":()=>e(()=>import("./inverter-0e6faf4b.js"),["assets/inverter-0e6faf4b.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./discovergy/counter.vue":()=>e(()=>import("./counter-3e87edf3.js"),["assets/counter-3e87edf3.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./discovergy/device.vue":()=>e(()=>import("./device-e10d0dda.js"),["assets/device-e10d0dda.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./discovergy/inverter.vue":()=>e(()=>import("./inverter-a5b2e2f6.js"),["assets/inverter-a5b2e2f6.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./e3dc/bat.vue":()=>e(()=>import("./bat-15d35f20.js"),["assets/bat-15d35f20.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./e3dc/counter.vue":()=>e(()=>import("./counter-94b37ec5.js"),["assets/counter-94b37ec5.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./e3dc/device.vue":()=>e(()=>import("./device-78545a1c.js"),["assets/device-78545a1c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./e3dc/external_inverter.vue":()=>e(()=>import("./external_inverter-034918bb.js"),["assets/external_inverter-034918bb.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./e3dc/inverter.vue":()=>e(()=>import("./inverter-09efda14.js"),["assets/inverter-09efda14.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./enphase/counter.vue":()=>e(()=>import("./counter-54421a1c.js"),["assets/counter-54421a1c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./enphase/device.vue":()=>e(()=>import("./device-c95ddafe.js"),["assets/device-c95ddafe.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./enphase/inverter.vue":()=>e(()=>import("./inverter-d25e077f.js"),["assets/inverter-d25e077f.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fems/bat.vue":()=>e(()=>import("./bat-d619a60e.js"),["assets/bat-d619a60e.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fems/counter.vue":()=>e(()=>import("./counter-1cc10b54.js"),["assets/counter-1cc10b54.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fems/device.vue":()=>e(()=>import("./device-8bcc2213.js"),["assets/device-8bcc2213.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fems/inverter.vue":()=>e(()=>import("./inverter-cb19d4d9.js"),["assets/inverter-cb19d4d9.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fox_ess/bat.vue":()=>e(()=>import("./bat-cd57b824.js"),["assets/bat-cd57b824.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fox_ess/counter.vue":()=>e(()=>import("./counter-36a6d397.js"),["assets/counter-36a6d397.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fox_ess/device.vue":()=>e(()=>import("./device-c5df5aff.js"),["assets/device-c5df5aff.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fox_ess/inverter.vue":()=>e(()=>import("./inverter-1111bf45.js"),["assets/inverter-1111bf45.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fronius/bat.vue":()=>e(()=>import("./bat-6cf0ead4.js"),["assets/bat-6cf0ead4.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fronius/counter_s0.vue":()=>e(()=>import("./counter_s0-860ec468.js"),["assets/counter_s0-860ec468.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fronius/counter_sm.vue":()=>e(()=>import("./counter_sm-a94a3e01.js"),["assets/counter_sm-a94a3e01.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fronius/device.vue":()=>e(()=>import("./device-6e379819.js"),["assets/device-6e379819.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fronius/inverter.vue":()=>e(()=>import("./inverter-f09f6954.js"),["assets/inverter-f09f6954.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fronius/inverter_secondary.vue":()=>e(()=>import("./inverter_secondary-ec1119a3.js"),["assets/inverter_secondary-ec1119a3.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./good_we/bat.vue":()=>e(()=>import("./bat-a0fe622c.js"),["assets/bat-a0fe622c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./good_we/counter.vue":()=>e(()=>import("./counter-bdaa3d40.js"),["assets/counter-bdaa3d40.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./good_we/device.vue":()=>e(()=>import("./device-6454a372.js"),["assets/device-6454a372.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./good_we/inverter.vue":()=>e(()=>import("./inverter-2e1e52a7.js"),["assets/inverter-2e1e52a7.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./http/bat.vue":()=>e(()=>import("./bat-1eb4a7db.js"),["assets/bat-1eb4a7db.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./http/counter.vue":()=>e(()=>import("./counter-70b2a64c.js"),["assets/counter-70b2a64c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./http/device.vue":()=>e(()=>import("./device-983fa414.js"),["assets/device-983fa414.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./http/inverter.vue":()=>e(()=>import("./inverter-c4e9e5f0.js"),["assets/inverter-c4e9e5f0.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./huawei/bat.vue":()=>e(()=>import("./bat-5425fafc.js"),["assets/bat-5425fafc.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./huawei/counter.vue":()=>e(()=>import("./counter-e1b176cd.js"),["assets/counter-e1b176cd.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./huawei/device.vue":()=>e(()=>import("./device-85bbc3b6.js"),["assets/device-85bbc3b6.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./huawei/inverter.vue":()=>e(()=>import("./inverter-0950a8cb.js"),["assets/inverter-0950a8cb.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./huawei_smartlogger/bat.vue":()=>e(()=>import("./bat-a6d57bec.js"),["assets/bat-a6d57bec.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./huawei_smartlogger/counter.vue":()=>e(()=>import("./counter-e32214a7.js"),["assets/counter-e32214a7.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./huawei_smartlogger/device.vue":()=>e(()=>import("./device-5ee1f362.js"),["assets/device-5ee1f362.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./huawei_smartlogger/inverter.vue":()=>e(()=>import("./inverter-39667dd3.js"),["assets/inverter-39667dd3.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./janitza/counter.vue":()=>e(()=>import("./counter-bb73dd30.js"),["assets/counter-bb73dd30.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./janitza/device.vue":()=>e(()=>import("./device-968f2783.js"),["assets/device-968f2783.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./json/bat.vue":()=>e(()=>import("./bat-8c16e92a.js"),["assets/bat-8c16e92a.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./json/counter.vue":()=>e(()=>import("./counter-7ec871ef.js"),["assets/counter-7ec871ef.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./json/device.vue":()=>e(()=>import("./device-c1bc98d9.js"),["assets/device-c1bc98d9.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./json/inverter.vue":()=>e(()=>import("./inverter-5213cff7.js"),["assets/inverter-5213cff7.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_piko/counter.vue":()=>e(()=>import("./counter-43080cd3.js"),["assets/counter-43080cd3.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_piko/device.vue":()=>e(()=>import("./device-e62fefa8.js"),["assets/device-e62fefa8.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_piko/inverter.vue":()=>e(()=>import("./inverter-ff52ec92.js"),["assets/inverter-ff52ec92.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_piko_old/device.vue":()=>e(()=>import("./device-7d0443e1.js"),["assets/device-7d0443e1.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_piko_old/inverter.vue":()=>e(()=>import("./inverter-4a61fc24.js"),["assets/inverter-4a61fc24.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_plenticore/bat.vue":()=>e(()=>import("./bat-5521391f.js"),["assets/bat-5521391f.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_plenticore/counter.vue":()=>e(()=>import("./counter-96cdc611.js"),["assets/counter-96cdc611.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_plenticore/device.vue":()=>e(()=>import("./device-32f3515c.js"),["assets/device-32f3515c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_plenticore/inverter.vue":()=>e(()=>import("./inverter-d280d9cc.js"),["assets/inverter-d280d9cc.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_sem/counter.vue":()=>e(()=>import("./counter-9f443962.js"),["assets/counter-9f443962.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_sem/device.vue":()=>e(()=>import("./device-b21e02e9.js"),["assets/device-b21e02e9.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_steca/device.vue":()=>e(()=>import("./device-f408fff0.js"),["assets/device-f408fff0.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_steca/inverter.vue":()=>e(()=>import("./inverter-0ffd0b65.js"),["assets/inverter-0ffd0b65.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./lg/bat.vue":()=>e(()=>import("./bat-69046b0c.js"),["assets/bat-69046b0c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./lg/counter.vue":()=>e(()=>import("./counter-e2353bc1.js"),["assets/counter-e2353bc1.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./lg/device.vue":()=>e(()=>import("./device-e6134b3a.js"),["assets/device-e6134b3a.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./lg/inverter.vue":()=>e(()=>import("./inverter-508ccdbf.js"),["assets/inverter-508ccdbf.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./mqtt/bat.vue":()=>e(()=>import("./bat-2eaaeb62.js"),["assets/bat-2eaaeb62.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./mqtt/counter.vue":()=>e(()=>import("./counter-7baa2b31.js"),["assets/counter-7baa2b31.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./mqtt/device.vue":()=>e(()=>import("./device-88b475f8.js"),["assets/device-88b475f8.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./mqtt/inverter.vue":()=>e(()=>import("./inverter-78807591.js"),["assets/inverter-78807591.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./mtec/bat.vue":()=>e(()=>import("./bat-12bba3ed.js"),["assets/bat-12bba3ed.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./mtec/counter.vue":()=>e(()=>import("./counter-3069a051.js"),["assets/counter-3069a051.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./mtec/device.vue":()=>e(()=>import("./device-bde30920.js"),["assets/device-bde30920.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./mtec/inverter.vue":()=>e(()=>import("./inverter-d568cbbe.js"),["assets/inverter-d568cbbe.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./opendtu/device.vue":()=>e(()=>import("./device-969e7e37.js"),["assets/device-969e7e37.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./opendtu/inverter.vue":()=>e(()=>import("./inverter-f58294c9.js"),["assets/inverter-f58294c9.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_bat_kit/bat.vue":()=>e(()=>import("./bat-992c1fad.js"),["assets/bat-992c1fad.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_bat_kit/device.vue":()=>e(()=>import("./device-f30e2b4f.js"),["assets/device-f30e2b4f.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_evu_kit/bat.vue":()=>e(()=>import("./bat-e274125f.js"),["assets/bat-e274125f.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_evu_kit/counter.vue":()=>e(()=>import("./counter-971740d4.js"),["assets/counter-971740d4.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_evu_kit/device.vue":()=>e(()=>import("./device-973a766d.js"),["assets/device-973a766d.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_evu_kit/inverter.vue":()=>e(()=>import("./inverter-62ab631a.js"),["assets/inverter-62ab631a.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_flex/bat.vue":()=>e(()=>import("./bat-07a8e221.js"),["assets/bat-07a8e221.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_flex/consumption_counter.vue":()=>e(()=>import("./consumption_counter-7ddecd31.js"),["assets/consumption_counter-7ddecd31.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_flex/counter.vue":()=>e(()=>import("./counter-b55f01eb.js"),["assets/counter-b55f01eb.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_flex/device.vue":()=>e(()=>import("./device-c6cc93a1.js"),["assets/device-c6cc93a1.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_flex/inverter.vue":()=>e(()=>import("./inverter-2eb2f36e.js"),["assets/inverter-2eb2f36e.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_pv_kit/device.vue":()=>e(()=>import("./device-03024a15.js"),["assets/device-03024a15.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_pv_kit/inverter.vue":()=>e(()=>import("./inverter-b1fa1dd4.js"),["assets/inverter-b1fa1dd4.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./powerdog/counter.vue":()=>e(()=>import("./counter-7f7c6971.js"),["assets/counter-7f7c6971.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./powerdog/device.vue":()=>e(()=>import("./device-b0052907.js"),["assets/device-b0052907.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./powerdog/inverter.vue":()=>e(()=>import("./inverter-2d49a3aa.js"),["assets/inverter-2d49a3aa.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./powerfox/counter.vue":()=>e(()=>import("./counter-a3858d9d.js"),["assets/counter-a3858d9d.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./powerfox/device.vue":()=>e(()=>import("./device-3968fce4.js"),["assets/device-3968fce4.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./powerfox/inverter.vue":()=>e(()=>import("./inverter-0c59320c.js"),["assets/inverter-0c59320c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./qcells/bat.vue":()=>e(()=>import("./bat-dde41be1.js"),["assets/bat-dde41be1.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./qcells/counter.vue":()=>e(()=>import("./counter-be7695ff.js"),["assets/counter-be7695ff.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./qcells/device.vue":()=>e(()=>import("./device-b37a9e8d.js"),["assets/device-b37a9e8d.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./qcells/inverter.vue":()=>e(()=>import("./inverter-001a7dc5.js"),["assets/inverter-001a7dc5.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./rct/bat.vue":()=>e(()=>import("./bat-e3476b6f.js"),["assets/bat-e3476b6f.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./rct/counter.vue":()=>e(()=>import("./counter-c9328771.js"),["assets/counter-c9328771.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./rct/device.vue":()=>e(()=>import("./device-4e0ae06c.js"),["assets/device-4e0ae06c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./rct/inverter.vue":()=>e(()=>import("./inverter-9fcabcbf.js"),["assets/inverter-9fcabcbf.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./saxpower/bat.vue":()=>e(()=>import("./bat-fa2d3a69.js"),["assets/bat-fa2d3a69.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./saxpower/device.vue":()=>e(()=>import("./device-c6a1db4d.js"),["assets/device-c6a1db4d.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./shelly/bat.vue":()=>e(()=>import("./bat-743c3fdf.js"),["assets/bat-743c3fdf.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./shelly/counter.vue":()=>e(()=>import("./counter-e306bbd8.js"),["assets/counter-e306bbd8.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./shelly/device.vue":()=>e(()=>import("./device-f386c17f.js"),["assets/device-f386c17f.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./shelly/inverter.vue":()=>e(()=>import("./inverter-0528aae6.js"),["assets/inverter-0528aae6.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./siemens/bat.vue":()=>e(()=>import("./bat-a18245a1.js"),["assets/bat-a18245a1.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./siemens/counter.vue":()=>e(()=>import("./counter-a7ce2e13.js"),["assets/counter-a7ce2e13.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./siemens/device.vue":()=>e(()=>import("./device-7513ccc0.js"),["assets/device-7513ccc0.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./siemens/inverter.vue":()=>e(()=>import("./inverter-e62bcc2d.js"),["assets/inverter-e62bcc2d.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./siemens_sentron/counter.vue":()=>e(()=>import("./counter-3a0288d3.js"),["assets/counter-3a0288d3.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./siemens_sentron/device.vue":()=>e(()=>import("./device-23a82284.js"),["assets/device-23a82284.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sma_shm/counter.vue":()=>e(()=>import("./counter-425920df.js"),["assets/counter-425920df.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sma_shm/device.vue":()=>e(()=>import("./device-9c5030b4.js"),["assets/device-9c5030b4.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sma_shm/inverter.vue":()=>e(()=>import("./inverter-90d810a4.js"),["assets/inverter-90d810a4.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sma_sunny_boy/bat.vue":()=>e(()=>import("./bat-cccaeec9.js"),["assets/bat-cccaeec9.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sma_sunny_boy/bat_smart_energy.vue":()=>e(()=>import("./bat_smart_energy-c274185e.js"),["assets/bat_smart_energy-c274185e.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sma_sunny_boy/counter.vue":()=>e(()=>import("./counter-f95e981c.js"),["assets/counter-f95e981c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sma_sunny_boy/device.vue":()=>e(()=>import("./device-20c840b8.js"),["assets/device-20c840b8.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sma_sunny_boy/inverter.vue":()=>e(()=>import("./inverter-620c2cc3.js"),["assets/inverter-620c2cc3.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sma_sunny_island/bat.vue":()=>e(()=>import("./bat-af818069.js"),["assets/bat-af818069.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sma_sunny_island/device.vue":()=>e(()=>import("./device-5c5eff36.js"),["assets/device-5c5eff36.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sma_webbox/device.vue":()=>e(()=>import("./device-1ffb41f0.js"),["assets/device-1ffb41f0.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sma_webbox/inverter.vue":()=>e(()=>import("./inverter-f46c6992.js"),["assets/inverter-f46c6992.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./smart_me/counter.vue":()=>e(()=>import("./counter-3430ef92.js"),["assets/counter-3430ef92.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./smart_me/device.vue":()=>e(()=>import("./device-ca6e69b3.js"),["assets/device-ca6e69b3.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./smart_me/inverter.vue":()=>e(()=>import("./inverter-c4ca2aa1.js"),["assets/inverter-c4ca2aa1.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./smartfox/counter.vue":()=>e(()=>import("./counter-1e285dde.js"),["assets/counter-1e285dde.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./smartfox/device.vue":()=>e(()=>import("./device-9d8b0b7b.js"),["assets/device-9d8b0b7b.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_log/counter.vue":()=>e(()=>import("./counter-95d74ce1.js"),["assets/counter-95d74ce1.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_log/device.vue":()=>e(()=>import("./device-a7f6d1af.js"),["assets/device-a7f6d1af.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_log/inverter.vue":()=>e(()=>import("./inverter-7b31a11f.js"),["assets/inverter-7b31a11f.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_view/counter.vue":()=>e(()=>import("./counter-67f38979.js"),["assets/counter-67f38979.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_view/device.vue":()=>e(()=>import("./device-d89c28aa.js"),["assets/device-d89c28aa.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_view/inverter.vue":()=>e(()=>import("./inverter-b3883b88.js"),["assets/inverter-b3883b88.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_watt/bat.vue":()=>e(()=>import("./bat-0070e79c.js"),["assets/bat-0070e79c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_watt/counter.vue":()=>e(()=>import("./counter-246eef5f.js"),["assets/counter-246eef5f.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_watt/device.vue":()=>e(()=>import("./device-cdd190a8.js"),["assets/device-cdd190a8.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_watt/inverter.vue":()=>e(()=>import("./inverter-ea12e7e4.js"),["assets/inverter-ea12e7e4.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_world/counter.vue":()=>e(()=>import("./counter-50558177.js"),["assets/counter-50558177.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_world/device.vue":()=>e(()=>import("./device-decb34ec.js"),["assets/device-decb34ec.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_world/inverter.vue":()=>e(()=>import("./inverter-b10ff0aa.js"),["assets/inverter-b10ff0aa.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solaredge/bat.vue":()=>e(()=>import("./bat-502cd078.js"),["assets/bat-502cd078.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solaredge/counter.vue":()=>e(()=>import("./counter-b83de018.js"),["assets/counter-b83de018.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solaredge/device.vue":()=>e(()=>import("./device-27b7a3b2.js"),["assets/device-27b7a3b2.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solaredge/external_inverter.vue":()=>e(()=>import("./external_inverter-53c24f18.js"),["assets/external_inverter-53c24f18.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solaredge/inverter.vue":()=>e(()=>import("./inverter-39d17978.js"),["assets/inverter-39d17978.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solarmax/bat.vue":()=>e(()=>import("./bat-abfe5184.js"),["assets/bat-abfe5184.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solarmax/device.vue":()=>e(()=>import("./device-978a39c6.js"),["assets/device-978a39c6.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solarmax/inverter.vue":()=>e(()=>import("./inverter-858c070d.js"),["assets/inverter-858c070d.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solax/bat.vue":()=>e(()=>import("./bat-f0682b3b.js"),["assets/bat-f0682b3b.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solax/counter.vue":()=>e(()=>import("./counter-5fea2f2b.js"),["assets/counter-5fea2f2b.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solax/device.vue":()=>e(()=>import("./device-9953198a.js"),["assets/device-9953198a.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solax/inverter.vue":()=>e(()=>import("./inverter-5ab60482.js"),["assets/inverter-5ab60482.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sonnenbatterie/bat.vue":()=>e(()=>import("./bat-00ebc725.js"),["assets/bat-00ebc725.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sonnenbatterie/counter.vue":()=>e(()=>import("./counter-e63ef9d1.js"),["assets/counter-e63ef9d1.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sonnenbatterie/device.vue":()=>e(()=>import("./device-fb0c3879.js"),["assets/device-fb0c3879.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sonnenbatterie/inverter.vue":()=>e(()=>import("./inverter-3b913d29.js"),["assets/inverter-3b913d29.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./studer/bat.vue":()=>e(()=>import("./bat-6181c19b.js"),["assets/bat-6181c19b.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./studer/device.vue":()=>e(()=>import("./device-03c90ad8.js"),["assets/device-03c90ad8.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./studer/inverter.vue":()=>e(()=>import("./inverter-aa1e9ea5.js"),["assets/inverter-aa1e9ea5.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sungrow/bat.vue":()=>e(()=>import("./bat-10c5131f.js"),["assets/bat-10c5131f.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sungrow/counter.vue":()=>e(()=>import("./counter-25d13278.js"),["assets/counter-25d13278.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sungrow/device.vue":()=>e(()=>import("./device-d2cb5a1c.js"),["assets/device-d2cb5a1c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sungrow/inverter.vue":()=>e(()=>import("./inverter-281b7a65.js"),["assets/inverter-281b7a65.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sunways/device.vue":()=>e(()=>import("./device-fca4d491.js"),["assets/device-fca4d491.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sunways/inverter.vue":()=>e(()=>import("./inverter-c2367805.js"),["assets/inverter-c2367805.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./tasmota/counter.vue":()=>e(()=>import("./counter-cd4f14cb.js"),["assets/counter-cd4f14cb.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./tasmota/device.vue":()=>e(()=>import("./device-a1360448.js"),["assets/device-a1360448.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./tesla/bat.vue":()=>e(()=>import("./bat-fbd92ad1.js"),["assets/bat-fbd92ad1.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./tesla/counter.vue":()=>e(()=>import("./counter-160f6b42.js"),["assets/counter-160f6b42.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./tesla/device.vue":()=>e(()=>import("./device-aeda6c46.js"),["assets/device-aeda6c46.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./tesla/inverter.vue":()=>e(()=>import("./inverter-ce73b653.js"),["assets/inverter-ce73b653.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./varta/bat_api.vue":()=>e(()=>import("./bat_api-c6cfe543.js"),["assets/bat_api-c6cfe543.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./varta/bat_modbus.vue":()=>e(()=>import("./bat_modbus-06ac44e9.js"),["assets/bat_modbus-06ac44e9.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./varta/counter.vue":()=>e(()=>import("./counter-e6c4238b.js"),["assets/counter-e6c4238b.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./varta/device.vue":()=>e(()=>import("./device-d35b0355.js"),["assets/device-d35b0355.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./victron/bat.vue":()=>e(()=>import("./bat-fa44fb17.js"),["assets/bat-fa44fb17.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./victron/counter.vue":()=>e(()=>import("./counter-94b6802e.js"),["assets/counter-94b6802e.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./victron/device.vue":()=>e(()=>import("./device-558befc9.js"),["assets/device-558befc9.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./victron/inverter.vue":()=>e(()=>import("./inverter-395b265b.js"),["assets/inverter-395b265b.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./virtual/counter.vue":()=>e(()=>import("./counter-a647164b.js"),["assets/counter-a647164b.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./virtual/device.vue":()=>e(()=>import("./device-66c1386d.js"),["assets/device-66c1386d.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./vzlogger/counter.vue":()=>e(()=>import("./counter-c92f088c.js"),["assets/counter-c92f088c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./vzlogger/device.vue":()=>e(()=>import("./device-f969614a.js"),["assets/device-f969614a.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./vzlogger/inverter.vue":()=>e(()=>import("./inverter-c6690fa5.js"),["assets/inverter-c6690fa5.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./youless/device.vue":()=>e(()=>import("./device-bff08244.js"),["assets/device-bff08244.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./youless/inverter.vue":()=>e(()=>import("./inverter-9dc89f1d.js"),["assets/inverter-9dc89f1d.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"])}),`./${this.deviceType}/${this.componentType}.vue`),errorComponent:S}):W({loader:()=>M(Object.assign({"./alpha_ess/device.vue":()=>e(()=>import("./device-79947814.js"),["assets/device-79947814.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./azzurro_sofar/device.vue":()=>e(()=>import("./device-1ea206ee.js"),["assets/device-1ea206ee.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./azzurro_zcs/device.vue":()=>e(()=>import("./device-8ebdd328.js"),["assets/device-8ebdd328.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./batterx/device.vue":()=>e(()=>import("./device-c3a7fe4c.js"),["assets/device-c3a7fe4c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./benning/device.vue":()=>e(()=>import("./device-e70fb123.js"),["assets/device-e70fb123.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./byd/device.vue":()=>e(()=>import("./device-7bcef0cb.js"),["assets/device-7bcef0cb.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./carlo_gavazzi/device.vue":()=>e(()=>import("./device-6513a22e.js"),["assets/device-6513a22e.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./deye/device.vue":()=>e(()=>import("./device-a7f7c6ed.js"),["assets/device-a7f7c6ed.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./discovergy/device.vue":()=>e(()=>import("./device-e10d0dda.js"),["assets/device-e10d0dda.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./e3dc/device.vue":()=>e(()=>import("./device-78545a1c.js"),["assets/device-78545a1c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./enphase/device.vue":()=>e(()=>import("./device-c95ddafe.js"),["assets/device-c95ddafe.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fems/device.vue":()=>e(()=>import("./device-8bcc2213.js"),["assets/device-8bcc2213.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fox_ess/device.vue":()=>e(()=>import("./device-c5df5aff.js"),["assets/device-c5df5aff.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fronius/device.vue":()=>e(()=>import("./device-6e379819.js"),["assets/device-6e379819.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./good_we/device.vue":()=>e(()=>import("./device-6454a372.js"),["assets/device-6454a372.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./http/device.vue":()=>e(()=>import("./device-983fa414.js"),["assets/device-983fa414.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./huawei/device.vue":()=>e(()=>import("./device-85bbc3b6.js"),["assets/device-85bbc3b6.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./huawei_smartlogger/device.vue":()=>e(()=>import("./device-5ee1f362.js"),["assets/device-5ee1f362.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./janitza/device.vue":()=>e(()=>import("./device-968f2783.js"),["assets/device-968f2783.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./json/device.vue":()=>e(()=>import("./device-c1bc98d9.js"),["assets/device-c1bc98d9.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_piko/device.vue":()=>e(()=>import("./device-e62fefa8.js"),["assets/device-e62fefa8.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_piko_old/device.vue":()=>e(()=>import("./device-7d0443e1.js"),["assets/device-7d0443e1.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_plenticore/device.vue":()=>e(()=>import("./device-32f3515c.js"),["assets/device-32f3515c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_sem/device.vue":()=>e(()=>import("./device-b21e02e9.js"),["assets/device-b21e02e9.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_steca/device.vue":()=>e(()=>import("./device-f408fff0.js"),["assets/device-f408fff0.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./lg/device.vue":()=>e(()=>import("./device-e6134b3a.js"),["assets/device-e6134b3a.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./mqtt/device.vue":()=>e(()=>import("./device-88b475f8.js"),["assets/device-88b475f8.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./mtec/device.vue":()=>e(()=>import("./device-bde30920.js"),["assets/device-bde30920.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./opendtu/device.vue":()=>e(()=>import("./device-969e7e37.js"),["assets/device-969e7e37.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_bat_kit/device.vue":()=>e(()=>import("./device-f30e2b4f.js"),["assets/device-f30e2b4f.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_evu_kit/device.vue":()=>e(()=>import("./device-973a766d.js"),["assets/device-973a766d.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_flex/device.vue":()=>e(()=>import("./device-c6cc93a1.js"),["assets/device-c6cc93a1.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_pv_kit/device.vue":()=>e(()=>import("./device-03024a15.js"),["assets/device-03024a15.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./powerdog/device.vue":()=>e(()=>import("./device-b0052907.js"),["assets/device-b0052907.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./powerfox/device.vue":()=>e(()=>import("./device-3968fce4.js"),["assets/device-3968fce4.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./qcells/device.vue":()=>e(()=>import("./device-b37a9e8d.js"),["assets/device-b37a9e8d.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./rct/device.vue":()=>e(()=>import("./device-4e0ae06c.js"),["assets/device-4e0ae06c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./saxpower/device.vue":()=>e(()=>import("./device-c6a1db4d.js"),["assets/device-c6a1db4d.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./shelly/device.vue":()=>e(()=>import("./device-f386c17f.js"),["assets/device-f386c17f.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./siemens/device.vue":()=>e(()=>import("./device-7513ccc0.js"),["assets/device-7513ccc0.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./siemens_sentron/device.vue":()=>e(()=>import("./device-23a82284.js"),["assets/device-23a82284.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sma_shm/device.vue":()=>e(()=>import("./device-9c5030b4.js"),["assets/device-9c5030b4.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sma_sunny_boy/device.vue":()=>e(()=>import("./device-20c840b8.js"),["assets/device-20c840b8.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sma_sunny_island/device.vue":()=>e(()=>import("./device-5c5eff36.js"),["assets/device-5c5eff36.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sma_webbox/device.vue":()=>e(()=>import("./device-1ffb41f0.js"),["assets/device-1ffb41f0.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./smart_me/device.vue":()=>e(()=>import("./device-ca6e69b3.js"),["assets/device-ca6e69b3.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./smartfox/device.vue":()=>e(()=>import("./device-9d8b0b7b.js"),["assets/device-9d8b0b7b.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_log/device.vue":()=>e(()=>import("./device-a7f6d1af.js"),["assets/device-a7f6d1af.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_view/device.vue":()=>e(()=>import("./device-d89c28aa.js"),["assets/device-d89c28aa.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_watt/device.vue":()=>e(()=>import("./device-cdd190a8.js"),["assets/device-cdd190a8.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_world/device.vue":()=>e(()=>import("./device-decb34ec.js"),["assets/device-decb34ec.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solaredge/device.vue":()=>e(()=>import("./device-27b7a3b2.js"),["assets/device-27b7a3b2.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solarmax/device.vue":()=>e(()=>import("./device-978a39c6.js"),["assets/device-978a39c6.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solax/device.vue":()=>e(()=>import("./device-9953198a.js"),["assets/device-9953198a.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sonnenbatterie/device.vue":()=>e(()=>import("./device-fb0c3879.js"),["assets/device-fb0c3879.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./studer/device.vue":()=>e(()=>import("./device-03c90ad8.js"),["assets/device-03c90ad8.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sungrow/device.vue":()=>e(()=>import("./device-d2cb5a1c.js"),["assets/device-d2cb5a1c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sunways/device.vue":()=>e(()=>import("./device-fca4d491.js"),["assets/device-fca4d491.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./tasmota/device.vue":()=>e(()=>import("./device-a1360448.js"),["assets/device-a1360448.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./tesla/device.vue":()=>e(()=>import("./device-aeda6c46.js"),["assets/device-aeda6c46.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./varta/device.vue":()=>e(()=>import("./device-d35b0355.js"),["assets/device-d35b0355.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./victron/device.vue":()=>e(()=>import("./device-558befc9.js"),["assets/device-558befc9.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./virtual/device.vue":()=>e(()=>import("./device-66c1386d.js"),["assets/device-66c1386d.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./vzlogger/device.vue":()=>e(()=>import("./device-f969614a.js"),["assets/device-f969614a.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./youless/device.vue":()=>e(()=>import("./device-bff08244.js"),["assets/device-bff08244.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"])}),`./${this.deviceType}/device.vue`),errorComponent:S})}},methods:{updateConfiguration(_){this.$emit("update:configuration",_)}}};function se(_,i,r,O,s,n){return u(),E($(n.myComponent),{configuration:r.configuration,deviceId:r.deviceId,deviceType:r.deviceType,componentId:r.componentId,componentType:r.componentType,"onUpdate:configuration":i[0]||(i[0]=T=>n.updateConfiguration(T))},null,40,["configuration","deviceId","deviceType","componentId","componentType"])}const me=y(ae,[["render",se],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbConfigProxy.vue"]]);N.add(U,G,F,H,J,Z,Q);const pe={name:"OpenwbHardwareInstallationView",mixins:[Y],emits:["sendCommand"],components:{FontAwesomeIcon:X,OpenwbConfigProxy:me},props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/counter/get/hierarchy","openWB/system/device/+/config","openWB/system/device/+/component/+/config","openWB/system/configurable/devices_components"],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")}}},methods:{getComponentTypeClass(_){return _.match(/^(.+_)?counter(_.+)?$/)?"danger":_.match(/^(.+_)?inverter(_.+)?$/)?"success":_.match(/^(.+_)?bat(_.+)?$/)?"warning":"dark"},getComponentTypeIcon(_){return _.match(/^(.+_)?counter(_.+)?$/)?["fas","fa-gauge-high"]:_.match(/^(.+_)?inverter(_.+)?$/)?["fas","fa-solar-panel"]:_.match(/^(.+_)?bat(_.+)?$/)?["fas","fa-car-battery"]:["fas","fa-microchip"]},getMyInstalledComponents(_){return this.getWildcardTopics("openWB/system/device/"+_+"/component/+/config")},deviceHasConfiguredComponents(_){return Object.keys(this.getMyInstalledComponents(_)).length>0},addDevice(){this.$emit("sendCommand",{command:"addDevice",data:{type:this.deviceToAdd}})},removeDeviceModal(_,i,r){r.stopPropagation(),this.modalDevice=_,this.modalDeviceName=i,this.showDeviceRemoveModal=!0},removeDevice(_){this.showDeviceRemoveModal=!1,_=="confirm"&&(console.info("request removal of device '"+this.modalDevice+"'"),this.$emit("sendCommand",{command:"removeDevice",data:{id:this.modalDevice}}))},getDeviceList(){return this.$store.state.mqtt["openWB/system/configurable/devices_components"]},addComponent(_,i,r){this.$emit("sendCommand",{command:"addComponent",data:{deviceId:_,deviceType:i,type:r}})},removeComponentModal(_,i,r,O,s){s.stopPropagation(),this.modalComponent={deviceId:_,id:i,type:r},this.modalComponentName=O,this.showComponentRemoveModal=!0},removeComponent(_){this.showComponentRemoveModal=!1,_=="confirm"&&(console.info("request removal of component '"+this.modalComponent.id+"' from device '"+this.modalComponent.deviceId+"' type '"+this.modalComponent.type+"'"),this.$emit("sendCommand",{command:"removeComponent",data:this.modalComponent}))},getComponentList(_){return _===void 0?[]:(console.debug("finding components for '"+_+"'"),this.$store.state.mqtt["openWB/system/configurable/devices_components"].find(r=>r.value===_).component)},updateConfiguration(_,i){console.debug("updateConfiguration",_,i),this.updateState(_,i.value,i.object)}}},A=_=>(ee("data-v-8595d6ae"),_=_(),_e(),_),ce={class:"hardwareInstallation"},Ee={name:"hardwareInstallationForm"},le={key:0},Te={key:1},Ie={key:1},Ve=A(()=>c("hr",null,null,-1)),Ae=A(()=>c("hr",null,null,-1)),De=A(()=>c("hr",null,null,-1)),Re=A(()=>c("hr",null,null,-1)),Oe={class:"col-1"},Pe={key:0},Le={class:"col-1"},ge=A(()=>c("p",null,[a(' Die openWB-Regelung ist auf Werte von Messpunkten (Zähler, Energy Meter usw.) angewiesen. Hierfür werden "Geräte" und "Komponenten" verwendet.'),c("br"),a(' 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)),fe=A(()=>c("p",null,[a(' 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"),a(' Verfügt dagegen jeder Messpunkt über eine eigene IP-Adresse, wird jeder Messpunkt als eigenes "Gerät" mit nur einer "Komponente" angelegt. ')],-1)),be=A(()=>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));function he(_,i,r,O,s,n){const T=m("openwb-base-modal-dialog"),g=m("router-link"),D=m("openwb-base-alert"),V=m("font-awesome-icon"),f=m("openwb-base-avatar"),k=m("openwb-base-text-input"),C=m("openwb-config-proxy"),q=m("openwb-base-heading"),b=m("openwb-base-card"),x=m("openwb-base-click-button"),z=m("openwb-base-select-input"),j=m("openwb-base-submit-buttons");return u(),p(L,null,[v(T,{show:s.showDeviceRemoveModal,title:"Gerät löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:n.removeDevice},{default:o(()=>[a(' Wollen Sie das Gerät "'+l(s.modalDeviceName)+'" inklusive aller Komponenten wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),v(T,{show:s.showComponentRemoveModal,title:"Komponente löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:n.removeComponent},{default:o(()=>[a(' Wollen Sie die Komponente "'+l(s.modalComponentName)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),c("div",ce,[c("form",Ee,[r.installAssistantActive?P("",!0):(u(),E(D,{key:0,subtype:"info"},{default:o(()=>[a(" Wenn neue Komponenten - insbesondere Zähler - konfiguriert wurden, ist auch das "),v(g,{to:"/LoadManagementConfiguration"},{default:o(()=>[a(" Lastmanagement ")]),_:1}),a(" zu prüfen! ")]),_:1})),v(b,{title:"Geräte und Komponenten"},{default:o(()=>[_.$store.state.mqtt["openWB/general/extern"]===!0?(u(),p("div",le,[v(D,{subtype:"info"},{default:o(()=>[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(u(),p("div",Te,[(u(!0),p(L,null,h(n.installedDevices,(t,B)=>(u(),E(b,{key:t.id,collapsible:!0,collapsed:!0,subtype:"dark"},{header:o(()=>[v(V,{"fixed-width":"",icon:["fas","network-wired"]}),a(" "+l(t.name),1)]),actions:o(d=>[d.collapsed?(u(),p("div",Ie,[(u(!0),p(L,null,h(n.getMyInstalledComponents(t.id),I=>(u(),E(f,{key:I.id,class:w("ml-1 bg-"+n.getComponentTypeClass(I.type))},{default:o(()=>[v(V,{"fixed-width":"",icon:n.getComponentTypeIcon(I.type)},null,8,["icon"])]),_:2},1032,["class"]))),128))])):(u(),E(f,{key:0,class:"bg-danger clickable",onClick:I=>n.removeDeviceModal(t.id,t.name,I)},{default:o(()=>[v(V,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:o(()=>[v(k,{title:"Bezeichnung",subtype:"text","model-value":t.name,"onUpdate:modelValue":d=>_.updateState(B,d,"name")},null,8,["model-value","onUpdate:modelValue"]),Ve,v(C,{deviceId:t.id,deviceType:t.type,configuration:t.configuration,"onUpdate:configuration":d=>n.updateConfiguration(B,d)},null,8,["deviceId","deviceType","configuration","onUpdate:configuration"]),Ae,v(q,null,{default:o(()=>[a("Komponenten")]),_:1}),n.deviceHasConfiguredComponents(t.id)?P("",!0):(u(),E(D,{key:0,subtype:"warning"},{default:o(()=>[a(" Es wurden noch keine Komponenten zu diesem Gerät angelegt. ")]),_:1})),(u(!0),p(L,null,h(n.getMyInstalledComponents(t.id),(d,I)=>(u(),E(b,{key:d.id,collapsible:!0,collapsed:!0,subtype:n.getComponentTypeClass(d.type)},{header:o(()=>[v(V,{"fixed-width":"",icon:n.getComponentTypeIcon(d.type)},null,8,["icon"]),a(" "+l(d.name),1)]),actions:o(R=>[R.collapsed?P("",!0):(u(),E(f,{key:0,class:"bg-danger clickable",onClick:K=>n.removeComponentModal(t.id,d.id,d.type,d.name,K)},{default:o(()=>[v(V,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:o(()=>[v(k,{title:"Bezeichnung",subtype:"text","model-value":d.name,"onUpdate:modelValue":R=>_.updateState(I,R,"name")},null,8,["model-value","onUpdate:modelValue"]),De,v(C,{deviceId:t.id,deviceType:t.type,componentId:d.id,componentType:d.type,configuration:d.configuration,"onUpdate:configuration":R=>n.updateConfiguration(I,R)},null,8,["deviceId","deviceType","componentId","componentType","configuration","onUpdate:configuration"])]),_:2},1032,["subtype"]))),128)),Re,n.getComponentList(t.type).length?(u(),E(z,{key:1,class:"mb-2",title:"Verfügbare Komponenten",notSelected:"Bitte auswählen",options:n.getComponentList(t.type),"model-value":s.componentToAdd[t.id],"onUpdate:modelValue":d=>s.componentToAdd[t.id]=d},{append:o(()=>[c("span",Oe,[v(x,{class:w(s.componentToAdd[t.id]===void 0?"btn-outline-success":"btn-success clickable"),disabled:s.componentToAdd[t.id]===void 0,onButtonClicked:d=>n.addComponent(t.id,t.type,s.componentToAdd[t.id])},{default:o(()=>[v(V,{"fixed-width":"",icon:["fas","plus"]})]),_:2},1032,["class","disabled","onButtonClicked"])])]),help:o(()=>[a(" 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. ")]),_:2},1032,["options","model-value","onUpdate:modelValue"])):(u(),E(D,{key:2,subtype:"info"},{default:o(()=>[a(" Dieses System bietet keine Komponenten zur Installation an. ")]),_:1}))]),_:2},1024))),128)),Object.keys(n.installedDevices).length>0?(u(),p("hr",Pe)):P("",!0),v(z,{class:"mb-2",title:"Verfügbare Geräte",notSelected:"Bitte auswählen",options:n.getDeviceList(),"model-value":s.deviceToAdd,"onUpdate:modelValue":i[0]||(i[0]=t=>s.deviceToAdd=t)},{append:o(()=>[c("span",Le,[v(x,{class:w(s.deviceToAdd===void 0?"btn-outline-success":"btn-success clickable"),disabled:s.deviceToAdd===void 0,onButtonClicked:n.addDevice},{default:o(()=>[v(V,{"fixed-width":"",icon:["fas","plus"]})]),_:1},8,["class","disabled","onButtonClicked"])])]),help:o(()=>[ge,fe,be]),_:1},8,["options","model-value"])]))]),_:1}),v(j,{formName:"hardwareInstallationForm",onSave:i[1]||(i[1]=t=>_.$emit("save")),onReset:i[2]||(i[2]=t=>_.$emit("reset")),onDefaults:i[3]||(i[3]=t=>_.$emit("defaults"))})])])],64)}const We=y(pe,[["render",he],["__scopeId","data-v-8595d6ae"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/HardwareInstallation.vue"]]);export{We as default}; +import{l as N,d as U,t as G,a7 as F,a0 as H,P as J,O as Z,N as Q,F as X}from"./vendor-fortawesome-71546160.js";import{_ as e,C as Y}from"./index-88a2073c.js";import{_ as M}from"./dynamic-import-helper-be004503.js";import{_ as y,u as m,k as u,l as p,A as E,N as o,z as l,y as a,D as v,x as c,a2 as W,a3 as $,B as P,J as L,K as h,q as w,S as ee,U as _e}from"./vendor-f2b8aa6f.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const te={name:"DeviceFallback",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0},deviceType:String,componentId:{default:void 0},componentType:String},methods:{updateConfiguration(_,i=void 0){this.$emit("update:configuration",{value:_,object:i})}}},oe={class:"device-fallback"},ie={key:0},re={key:1},ne={key:1},ue={key:0},ve={key:1};function de(_,i,r,O,s,n){const T=m("openwb-base-alert"),g=m("openwb-base-textarea");return u(),p("div",oe,[Object.keys(r.configuration).length==0?(u(),E(T,{key:0,subtype:"info"},{default:o(()=>[r.componentType?(u(),p("span",ie,' Der Komponenten-Typ "'+l(r.componentType)+'" ',1)):(u(),p("span",re,'Der Gerät-Typ "'+l(r.deviceType)+'"',1)),a(" bietet keine Einstellungen. ")]),_:1})):(u(),p("div",ne,[v(T,{subtype:"warning"},{default:o(()=>[a(" Es wurde keine Konfigurationsseite für den "),r.componentType?(u(),p("span",ue,' Komponenten-Typ "'+l(r.componentType)+'" ',1)):(u(),p("span",ve,'Geräte-Typ "'+l(r.deviceType)+'"',1)),a(" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ")]),_:1}),v(g,{title:"Konfiguration",subtype:"json","model-value":r.configuration,"onUpdate:modelValue":i[0]||(i[0]=D=>n.updateConfiguration(D,"configuration"))},{help:o(()=>[a(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ")]),_:1},8,["model-value"]),v(T,{subtype:"info"},{default:o(()=>[c("pre",null,l(JSON.stringify(r.configuration,void 0,2)),1)]),_:1})]))])}const S=y(te,[["render",de],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbDeviceConfigFallback.vue"]]),ae={name:"OpenwbConfigProxy",emits:["update:configuration"],props:{deviceId:{required:!0},deviceType:{type:String,required:!0},componentId:{default:void 0},componentType:{type:String,default:void 0},configuration:{type:Object,required:!0}},computed:{myComponent(){return console.debug(`loading component: ${this.deviceType} / ${this.componentType}`),this.componentType!==void 0?W({loader:()=>M(Object.assign({"./alpha_ess/bat.vue":()=>e(()=>import("./bat-a3dcba33.js"),["assets/bat-a3dcba33.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./alpha_ess/counter.vue":()=>e(()=>import("./counter-7dd04de5.js"),["assets/counter-7dd04de5.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./alpha_ess/device.vue":()=>e(()=>import("./device-79947814.js"),["assets/device-79947814.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./alpha_ess/inverter.vue":()=>e(()=>import("./inverter-45617c87.js"),["assets/inverter-45617c87.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./azzurro_sofar/bat.vue":()=>e(()=>import("./bat-03b2886a.js"),["assets/bat-03b2886a.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./azzurro_sofar/counter.vue":()=>e(()=>import("./counter-1aa978fe.js"),["assets/counter-1aa978fe.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./azzurro_sofar/device.vue":()=>e(()=>import("./device-1ea206ee.js"),["assets/device-1ea206ee.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./azzurro_sofar/inverter.vue":()=>e(()=>import("./inverter-a3685d5a.js"),["assets/inverter-a3685d5a.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./azzurro_zcs/bat.vue":()=>e(()=>import("./bat-03f52267.js"),["assets/bat-03f52267.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./azzurro_zcs/counter.vue":()=>e(()=>import("./counter-18904432.js"),["assets/counter-18904432.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./azzurro_zcs/device.vue":()=>e(()=>import("./device-8ebdd328.js"),["assets/device-8ebdd328.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./azzurro_zcs/inverter.vue":()=>e(()=>import("./inverter-6429eef9.js"),["assets/inverter-6429eef9.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./batterx/bat.vue":()=>e(()=>import("./bat-31e29792.js"),["assets/bat-31e29792.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./batterx/counter.vue":()=>e(()=>import("./counter-10685234.js"),["assets/counter-10685234.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./batterx/device.vue":()=>e(()=>import("./device-c3a7fe4c.js"),["assets/device-c3a7fe4c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./batterx/external_inverter.vue":()=>e(()=>import("./external_inverter-c36c81de.js"),["assets/external_inverter-c36c81de.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./batterx/inverter.vue":()=>e(()=>import("./inverter-aba0125a.js"),["assets/inverter-aba0125a.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./benning/device.vue":()=>e(()=>import("./device-e70fb123.js"),["assets/device-e70fb123.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./benning/inverter.vue":()=>e(()=>import("./inverter-a269797d.js"),["assets/inverter-a269797d.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./byd/bat.vue":()=>e(()=>import("./bat-ced626fd.js"),["assets/bat-ced626fd.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./byd/device.vue":()=>e(()=>import("./device-7bcef0cb.js"),["assets/device-7bcef0cb.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./carlo_gavazzi/counter.vue":()=>e(()=>import("./counter-ccf41c41.js"),["assets/counter-ccf41c41.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./carlo_gavazzi/device.vue":()=>e(()=>import("./device-6513a22e.js"),["assets/device-6513a22e.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./deye/bat.vue":()=>e(()=>import("./bat-12d70573.js"),["assets/bat-12d70573.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./deye/counter.vue":()=>e(()=>import("./counter-f98b9cbf.js"),["assets/counter-f98b9cbf.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./deye/device.vue":()=>e(()=>import("./device-7c73cd7c.js"),["assets/device-7c73cd7c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./deye/inverter.vue":()=>e(()=>import("./inverter-0e6faf4b.js"),["assets/inverter-0e6faf4b.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./discovergy/counter.vue":()=>e(()=>import("./counter-3e87edf3.js"),["assets/counter-3e87edf3.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./discovergy/device.vue":()=>e(()=>import("./device-e10d0dda.js"),["assets/device-e10d0dda.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./discovergy/inverter.vue":()=>e(()=>import("./inverter-a5b2e2f6.js"),["assets/inverter-a5b2e2f6.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./e3dc/bat.vue":()=>e(()=>import("./bat-15d35f20.js"),["assets/bat-15d35f20.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./e3dc/counter.vue":()=>e(()=>import("./counter-94b37ec5.js"),["assets/counter-94b37ec5.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./e3dc/device.vue":()=>e(()=>import("./device-78545a1c.js"),["assets/device-78545a1c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./e3dc/external_inverter.vue":()=>e(()=>import("./external_inverter-034918bb.js"),["assets/external_inverter-034918bb.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./e3dc/inverter.vue":()=>e(()=>import("./inverter-09efda14.js"),["assets/inverter-09efda14.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./enphase/counter.vue":()=>e(()=>import("./counter-54421a1c.js"),["assets/counter-54421a1c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./enphase/device.vue":()=>e(()=>import("./device-c95ddafe.js"),["assets/device-c95ddafe.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./enphase/inverter.vue":()=>e(()=>import("./inverter-d25e077f.js"),["assets/inverter-d25e077f.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fems/bat.vue":()=>e(()=>import("./bat-d619a60e.js"),["assets/bat-d619a60e.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fems/counter.vue":()=>e(()=>import("./counter-1cc10b54.js"),["assets/counter-1cc10b54.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fems/device.vue":()=>e(()=>import("./device-8bcc2213.js"),["assets/device-8bcc2213.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fems/inverter.vue":()=>e(()=>import("./inverter-cb19d4d9.js"),["assets/inverter-cb19d4d9.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fox_ess/bat.vue":()=>e(()=>import("./bat-cd57b824.js"),["assets/bat-cd57b824.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fox_ess/counter.vue":()=>e(()=>import("./counter-36a6d397.js"),["assets/counter-36a6d397.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fox_ess/device.vue":()=>e(()=>import("./device-c5df5aff.js"),["assets/device-c5df5aff.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fox_ess/inverter.vue":()=>e(()=>import("./inverter-1111bf45.js"),["assets/inverter-1111bf45.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fronius/bat.vue":()=>e(()=>import("./bat-6cf0ead4.js"),["assets/bat-6cf0ead4.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fronius/counter_s0.vue":()=>e(()=>import("./counter_s0-860ec468.js"),["assets/counter_s0-860ec468.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fronius/counter_sm.vue":()=>e(()=>import("./counter_sm-a94a3e01.js"),["assets/counter_sm-a94a3e01.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fronius/device.vue":()=>e(()=>import("./device-6e379819.js"),["assets/device-6e379819.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fronius/inverter.vue":()=>e(()=>import("./inverter-f09f6954.js"),["assets/inverter-f09f6954.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fronius/inverter_secondary.vue":()=>e(()=>import("./inverter_secondary-ec1119a3.js"),["assets/inverter_secondary-ec1119a3.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./good_we/bat.vue":()=>e(()=>import("./bat-a0fe622c.js"),["assets/bat-a0fe622c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./good_we/counter.vue":()=>e(()=>import("./counter-bdaa3d40.js"),["assets/counter-bdaa3d40.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./good_we/device.vue":()=>e(()=>import("./device-26a38357.js"),["assets/device-26a38357.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./good_we/inverter.vue":()=>e(()=>import("./inverter-2e1e52a7.js"),["assets/inverter-2e1e52a7.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./http/bat.vue":()=>e(()=>import("./bat-1eb4a7db.js"),["assets/bat-1eb4a7db.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./http/counter.vue":()=>e(()=>import("./counter-70b2a64c.js"),["assets/counter-70b2a64c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./http/device.vue":()=>e(()=>import("./device-983fa414.js"),["assets/device-983fa414.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./http/inverter.vue":()=>e(()=>import("./inverter-c4e9e5f0.js"),["assets/inverter-c4e9e5f0.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./huawei/bat.vue":()=>e(()=>import("./bat-5425fafc.js"),["assets/bat-5425fafc.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./huawei/counter.vue":()=>e(()=>import("./counter-e1b176cd.js"),["assets/counter-e1b176cd.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./huawei/device.vue":()=>e(()=>import("./device-85bbc3b6.js"),["assets/device-85bbc3b6.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./huawei/inverter.vue":()=>e(()=>import("./inverter-0950a8cb.js"),["assets/inverter-0950a8cb.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./huawei_smartlogger/bat.vue":()=>e(()=>import("./bat-a6d57bec.js"),["assets/bat-a6d57bec.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./huawei_smartlogger/counter.vue":()=>e(()=>import("./counter-e32214a7.js"),["assets/counter-e32214a7.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./huawei_smartlogger/device.vue":()=>e(()=>import("./device-5ee1f362.js"),["assets/device-5ee1f362.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./huawei_smartlogger/inverter.vue":()=>e(()=>import("./inverter-39667dd3.js"),["assets/inverter-39667dd3.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./janitza/counter.vue":()=>e(()=>import("./counter-bb73dd30.js"),["assets/counter-bb73dd30.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./janitza/device.vue":()=>e(()=>import("./device-968f2783.js"),["assets/device-968f2783.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./json/bat.vue":()=>e(()=>import("./bat-8c16e92a.js"),["assets/bat-8c16e92a.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./json/counter.vue":()=>e(()=>import("./counter-7ec871ef.js"),["assets/counter-7ec871ef.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./json/device.vue":()=>e(()=>import("./device-c1bc98d9.js"),["assets/device-c1bc98d9.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./json/inverter.vue":()=>e(()=>import("./inverter-5213cff7.js"),["assets/inverter-5213cff7.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_piko/counter.vue":()=>e(()=>import("./counter-43080cd3.js"),["assets/counter-43080cd3.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_piko/device.vue":()=>e(()=>import("./device-e62fefa8.js"),["assets/device-e62fefa8.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_piko/inverter.vue":()=>e(()=>import("./inverter-ff52ec92.js"),["assets/inverter-ff52ec92.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_piko_old/device.vue":()=>e(()=>import("./device-7d0443e1.js"),["assets/device-7d0443e1.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_piko_old/inverter.vue":()=>e(()=>import("./inverter-4a61fc24.js"),["assets/inverter-4a61fc24.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_plenticore/bat.vue":()=>e(()=>import("./bat-5521391f.js"),["assets/bat-5521391f.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_plenticore/counter.vue":()=>e(()=>import("./counter-96cdc611.js"),["assets/counter-96cdc611.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_plenticore/device.vue":()=>e(()=>import("./device-32f3515c.js"),["assets/device-32f3515c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_plenticore/inverter.vue":()=>e(()=>import("./inverter-d280d9cc.js"),["assets/inverter-d280d9cc.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_sem/counter.vue":()=>e(()=>import("./counter-9f443962.js"),["assets/counter-9f443962.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_sem/device.vue":()=>e(()=>import("./device-b21e02e9.js"),["assets/device-b21e02e9.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_steca/device.vue":()=>e(()=>import("./device-f408fff0.js"),["assets/device-f408fff0.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_steca/inverter.vue":()=>e(()=>import("./inverter-0ffd0b65.js"),["assets/inverter-0ffd0b65.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./lg/bat.vue":()=>e(()=>import("./bat-69046b0c.js"),["assets/bat-69046b0c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./lg/counter.vue":()=>e(()=>import("./counter-e2353bc1.js"),["assets/counter-e2353bc1.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./lg/device.vue":()=>e(()=>import("./device-e6134b3a.js"),["assets/device-e6134b3a.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./lg/inverter.vue":()=>e(()=>import("./inverter-508ccdbf.js"),["assets/inverter-508ccdbf.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./mqtt/bat.vue":()=>e(()=>import("./bat-2eaaeb62.js"),["assets/bat-2eaaeb62.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./mqtt/counter.vue":()=>e(()=>import("./counter-7baa2b31.js"),["assets/counter-7baa2b31.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./mqtt/device.vue":()=>e(()=>import("./device-88b475f8.js"),["assets/device-88b475f8.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./mqtt/inverter.vue":()=>e(()=>import("./inverter-78807591.js"),["assets/inverter-78807591.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./mtec/bat.vue":()=>e(()=>import("./bat-12bba3ed.js"),["assets/bat-12bba3ed.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./mtec/counter.vue":()=>e(()=>import("./counter-3069a051.js"),["assets/counter-3069a051.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./mtec/device.vue":()=>e(()=>import("./device-bde30920.js"),["assets/device-bde30920.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./mtec/inverter.vue":()=>e(()=>import("./inverter-d568cbbe.js"),["assets/inverter-d568cbbe.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./opendtu/device.vue":()=>e(()=>import("./device-969e7e37.js"),["assets/device-969e7e37.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./opendtu/inverter.vue":()=>e(()=>import("./inverter-f58294c9.js"),["assets/inverter-f58294c9.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_bat_kit/bat.vue":()=>e(()=>import("./bat-992c1fad.js"),["assets/bat-992c1fad.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_bat_kit/device.vue":()=>e(()=>import("./device-f30e2b4f.js"),["assets/device-f30e2b4f.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_evu_kit/bat.vue":()=>e(()=>import("./bat-e274125f.js"),["assets/bat-e274125f.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_evu_kit/counter.vue":()=>e(()=>import("./counter-971740d4.js"),["assets/counter-971740d4.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_evu_kit/device.vue":()=>e(()=>import("./device-973a766d.js"),["assets/device-973a766d.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_evu_kit/inverter.vue":()=>e(()=>import("./inverter-62ab631a.js"),["assets/inverter-62ab631a.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_flex/bat.vue":()=>e(()=>import("./bat-07a8e221.js"),["assets/bat-07a8e221.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_flex/consumption_counter.vue":()=>e(()=>import("./consumption_counter-7ddecd31.js"),["assets/consumption_counter-7ddecd31.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_flex/counter.vue":()=>e(()=>import("./counter-b55f01eb.js"),["assets/counter-b55f01eb.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_flex/device.vue":()=>e(()=>import("./device-c6cc93a1.js"),["assets/device-c6cc93a1.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_flex/inverter.vue":()=>e(()=>import("./inverter-2eb2f36e.js"),["assets/inverter-2eb2f36e.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_pv_kit/device.vue":()=>e(()=>import("./device-03024a15.js"),["assets/device-03024a15.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_pv_kit/inverter.vue":()=>e(()=>import("./inverter-b1fa1dd4.js"),["assets/inverter-b1fa1dd4.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./powerdog/counter.vue":()=>e(()=>import("./counter-7f7c6971.js"),["assets/counter-7f7c6971.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./powerdog/device.vue":()=>e(()=>import("./device-b0052907.js"),["assets/device-b0052907.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./powerdog/inverter.vue":()=>e(()=>import("./inverter-2d49a3aa.js"),["assets/inverter-2d49a3aa.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./powerfox/counter.vue":()=>e(()=>import("./counter-a3858d9d.js"),["assets/counter-a3858d9d.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./powerfox/device.vue":()=>e(()=>import("./device-3968fce4.js"),["assets/device-3968fce4.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./powerfox/inverter.vue":()=>e(()=>import("./inverter-0c59320c.js"),["assets/inverter-0c59320c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./qcells/bat.vue":()=>e(()=>import("./bat-dde41be1.js"),["assets/bat-dde41be1.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./qcells/counter.vue":()=>e(()=>import("./counter-be7695ff.js"),["assets/counter-be7695ff.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./qcells/device.vue":()=>e(()=>import("./device-b37a9e8d.js"),["assets/device-b37a9e8d.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./qcells/inverter.vue":()=>e(()=>import("./inverter-001a7dc5.js"),["assets/inverter-001a7dc5.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./rct/bat.vue":()=>e(()=>import("./bat-e3476b6f.js"),["assets/bat-e3476b6f.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./rct/counter.vue":()=>e(()=>import("./counter-c9328771.js"),["assets/counter-c9328771.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./rct/device.vue":()=>e(()=>import("./device-4e0ae06c.js"),["assets/device-4e0ae06c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./rct/inverter.vue":()=>e(()=>import("./inverter-9fcabcbf.js"),["assets/inverter-9fcabcbf.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./saxpower/bat.vue":()=>e(()=>import("./bat-fa2d3a69.js"),["assets/bat-fa2d3a69.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./saxpower/device.vue":()=>e(()=>import("./device-c6a1db4d.js"),["assets/device-c6a1db4d.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./shelly/bat.vue":()=>e(()=>import("./bat-743c3fdf.js"),["assets/bat-743c3fdf.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./shelly/counter.vue":()=>e(()=>import("./counter-e306bbd8.js"),["assets/counter-e306bbd8.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./shelly/device.vue":()=>e(()=>import("./device-f386c17f.js"),["assets/device-f386c17f.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./shelly/inverter.vue":()=>e(()=>import("./inverter-0528aae6.js"),["assets/inverter-0528aae6.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./siemens/bat.vue":()=>e(()=>import("./bat-a18245a1.js"),["assets/bat-a18245a1.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./siemens/counter.vue":()=>e(()=>import("./counter-a7ce2e13.js"),["assets/counter-a7ce2e13.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./siemens/device.vue":()=>e(()=>import("./device-7513ccc0.js"),["assets/device-7513ccc0.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./siemens/inverter.vue":()=>e(()=>import("./inverter-e62bcc2d.js"),["assets/inverter-e62bcc2d.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./siemens_sentron/counter.vue":()=>e(()=>import("./counter-3a0288d3.js"),["assets/counter-3a0288d3.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./siemens_sentron/device.vue":()=>e(()=>import("./device-23a82284.js"),["assets/device-23a82284.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sma_shm/counter.vue":()=>e(()=>import("./counter-425920df.js"),["assets/counter-425920df.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sma_shm/device.vue":()=>e(()=>import("./device-9c5030b4.js"),["assets/device-9c5030b4.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sma_shm/inverter.vue":()=>e(()=>import("./inverter-90d810a4.js"),["assets/inverter-90d810a4.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sma_sunny_boy/bat.vue":()=>e(()=>import("./bat-cccaeec9.js"),["assets/bat-cccaeec9.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sma_sunny_boy/bat_smart_energy.vue":()=>e(()=>import("./bat_smart_energy-c274185e.js"),["assets/bat_smart_energy-c274185e.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sma_sunny_boy/counter.vue":()=>e(()=>import("./counter-f95e981c.js"),["assets/counter-f95e981c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sma_sunny_boy/device.vue":()=>e(()=>import("./device-20c840b8.js"),["assets/device-20c840b8.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sma_sunny_boy/inverter.vue":()=>e(()=>import("./inverter-620c2cc3.js"),["assets/inverter-620c2cc3.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sma_sunny_island/bat.vue":()=>e(()=>import("./bat-af818069.js"),["assets/bat-af818069.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sma_sunny_island/device.vue":()=>e(()=>import("./device-5c5eff36.js"),["assets/device-5c5eff36.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sma_webbox/device.vue":()=>e(()=>import("./device-1ffb41f0.js"),["assets/device-1ffb41f0.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sma_webbox/inverter.vue":()=>e(()=>import("./inverter-f46c6992.js"),["assets/inverter-f46c6992.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./smart_me/counter.vue":()=>e(()=>import("./counter-3430ef92.js"),["assets/counter-3430ef92.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./smart_me/device.vue":()=>e(()=>import("./device-ca6e69b3.js"),["assets/device-ca6e69b3.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./smart_me/inverter.vue":()=>e(()=>import("./inverter-c4ca2aa1.js"),["assets/inverter-c4ca2aa1.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./smartfox/counter.vue":()=>e(()=>import("./counter-1e285dde.js"),["assets/counter-1e285dde.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./smartfox/device.vue":()=>e(()=>import("./device-9d8b0b7b.js"),["assets/device-9d8b0b7b.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_log/counter.vue":()=>e(()=>import("./counter-95d74ce1.js"),["assets/counter-95d74ce1.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_log/device.vue":()=>e(()=>import("./device-a7f6d1af.js"),["assets/device-a7f6d1af.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_log/inverter.vue":()=>e(()=>import("./inverter-7b31a11f.js"),["assets/inverter-7b31a11f.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_view/counter.vue":()=>e(()=>import("./counter-67f38979.js"),["assets/counter-67f38979.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_view/device.vue":()=>e(()=>import("./device-d89c28aa.js"),["assets/device-d89c28aa.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_view/inverter.vue":()=>e(()=>import("./inverter-b3883b88.js"),["assets/inverter-b3883b88.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_watt/bat.vue":()=>e(()=>import("./bat-0070e79c.js"),["assets/bat-0070e79c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_watt/counter.vue":()=>e(()=>import("./counter-246eef5f.js"),["assets/counter-246eef5f.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_watt/device.vue":()=>e(()=>import("./device-cdd190a8.js"),["assets/device-cdd190a8.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_watt/inverter.vue":()=>e(()=>import("./inverter-ea12e7e4.js"),["assets/inverter-ea12e7e4.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_world/counter.vue":()=>e(()=>import("./counter-50558177.js"),["assets/counter-50558177.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_world/device.vue":()=>e(()=>import("./device-decb34ec.js"),["assets/device-decb34ec.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_world/inverter.vue":()=>e(()=>import("./inverter-b10ff0aa.js"),["assets/inverter-b10ff0aa.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solaredge/bat.vue":()=>e(()=>import("./bat-502cd078.js"),["assets/bat-502cd078.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solaredge/counter.vue":()=>e(()=>import("./counter-b83de018.js"),["assets/counter-b83de018.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solaredge/device.vue":()=>e(()=>import("./device-27b7a3b2.js"),["assets/device-27b7a3b2.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solaredge/external_inverter.vue":()=>e(()=>import("./external_inverter-53c24f18.js"),["assets/external_inverter-53c24f18.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solaredge/inverter.vue":()=>e(()=>import("./inverter-39d17978.js"),["assets/inverter-39d17978.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solarmax/bat.vue":()=>e(()=>import("./bat-abfe5184.js"),["assets/bat-abfe5184.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solarmax/device.vue":()=>e(()=>import("./device-978a39c6.js"),["assets/device-978a39c6.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solarmax/inverter.vue":()=>e(()=>import("./inverter-858c070d.js"),["assets/inverter-858c070d.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solax/bat.vue":()=>e(()=>import("./bat-f0682b3b.js"),["assets/bat-f0682b3b.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solax/counter.vue":()=>e(()=>import("./counter-5fea2f2b.js"),["assets/counter-5fea2f2b.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solax/device.vue":()=>e(()=>import("./device-9953198a.js"),["assets/device-9953198a.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solax/inverter.vue":()=>e(()=>import("./inverter-5ab60482.js"),["assets/inverter-5ab60482.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sonnenbatterie/bat.vue":()=>e(()=>import("./bat-00ebc725.js"),["assets/bat-00ebc725.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sonnenbatterie/counter.vue":()=>e(()=>import("./counter-e63ef9d1.js"),["assets/counter-e63ef9d1.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sonnenbatterie/device.vue":()=>e(()=>import("./device-fb0c3879.js"),["assets/device-fb0c3879.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sonnenbatterie/inverter.vue":()=>e(()=>import("./inverter-3b913d29.js"),["assets/inverter-3b913d29.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./studer/bat.vue":()=>e(()=>import("./bat-6181c19b.js"),["assets/bat-6181c19b.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./studer/device.vue":()=>e(()=>import("./device-03c90ad8.js"),["assets/device-03c90ad8.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./studer/inverter.vue":()=>e(()=>import("./inverter-aa1e9ea5.js"),["assets/inverter-aa1e9ea5.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sungrow/bat.vue":()=>e(()=>import("./bat-10c5131f.js"),["assets/bat-10c5131f.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sungrow/counter.vue":()=>e(()=>import("./counter-25d13278.js"),["assets/counter-25d13278.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sungrow/device.vue":()=>e(()=>import("./device-d2cb5a1c.js"),["assets/device-d2cb5a1c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sungrow/inverter.vue":()=>e(()=>import("./inverter-281b7a65.js"),["assets/inverter-281b7a65.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sunways/device.vue":()=>e(()=>import("./device-fca4d491.js"),["assets/device-fca4d491.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sunways/inverter.vue":()=>e(()=>import("./inverter-c2367805.js"),["assets/inverter-c2367805.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./tasmota/counter.vue":()=>e(()=>import("./counter-cd4f14cb.js"),["assets/counter-cd4f14cb.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./tasmota/device.vue":()=>e(()=>import("./device-a1360448.js"),["assets/device-a1360448.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./tesla/bat.vue":()=>e(()=>import("./bat-fbd92ad1.js"),["assets/bat-fbd92ad1.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./tesla/counter.vue":()=>e(()=>import("./counter-160f6b42.js"),["assets/counter-160f6b42.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./tesla/device.vue":()=>e(()=>import("./device-aeda6c46.js"),["assets/device-aeda6c46.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./tesla/inverter.vue":()=>e(()=>import("./inverter-ce73b653.js"),["assets/inverter-ce73b653.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./varta/bat_api.vue":()=>e(()=>import("./bat_api-c6cfe543.js"),["assets/bat_api-c6cfe543.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./varta/bat_modbus.vue":()=>e(()=>import("./bat_modbus-06ac44e9.js"),["assets/bat_modbus-06ac44e9.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./varta/counter.vue":()=>e(()=>import("./counter-e6c4238b.js"),["assets/counter-e6c4238b.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./varta/device.vue":()=>e(()=>import("./device-d35b0355.js"),["assets/device-d35b0355.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./victron/bat.vue":()=>e(()=>import("./bat-fa44fb17.js"),["assets/bat-fa44fb17.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./victron/counter.vue":()=>e(()=>import("./counter-94b6802e.js"),["assets/counter-94b6802e.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./victron/device.vue":()=>e(()=>import("./device-558befc9.js"),["assets/device-558befc9.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./victron/inverter.vue":()=>e(()=>import("./inverter-395b265b.js"),["assets/inverter-395b265b.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./virtual/counter.vue":()=>e(()=>import("./counter-a647164b.js"),["assets/counter-a647164b.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./virtual/device.vue":()=>e(()=>import("./device-66c1386d.js"),["assets/device-66c1386d.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./vzlogger/counter.vue":()=>e(()=>import("./counter-c92f088c.js"),["assets/counter-c92f088c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./vzlogger/device.vue":()=>e(()=>import("./device-f969614a.js"),["assets/device-f969614a.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./vzlogger/inverter.vue":()=>e(()=>import("./inverter-c6690fa5.js"),["assets/inverter-c6690fa5.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./youless/device.vue":()=>e(()=>import("./device-bff08244.js"),["assets/device-bff08244.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./youless/inverter.vue":()=>e(()=>import("./inverter-9dc89f1d.js"),["assets/inverter-9dc89f1d.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"])}),`./${this.deviceType}/${this.componentType}.vue`),errorComponent:S}):W({loader:()=>M(Object.assign({"./alpha_ess/device.vue":()=>e(()=>import("./device-79947814.js"),["assets/device-79947814.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./azzurro_sofar/device.vue":()=>e(()=>import("./device-1ea206ee.js"),["assets/device-1ea206ee.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./azzurro_zcs/device.vue":()=>e(()=>import("./device-8ebdd328.js"),["assets/device-8ebdd328.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./batterx/device.vue":()=>e(()=>import("./device-c3a7fe4c.js"),["assets/device-c3a7fe4c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./benning/device.vue":()=>e(()=>import("./device-e70fb123.js"),["assets/device-e70fb123.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./byd/device.vue":()=>e(()=>import("./device-7bcef0cb.js"),["assets/device-7bcef0cb.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./carlo_gavazzi/device.vue":()=>e(()=>import("./device-6513a22e.js"),["assets/device-6513a22e.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./deye/device.vue":()=>e(()=>import("./device-7c73cd7c.js"),["assets/device-7c73cd7c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./discovergy/device.vue":()=>e(()=>import("./device-e10d0dda.js"),["assets/device-e10d0dda.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./e3dc/device.vue":()=>e(()=>import("./device-78545a1c.js"),["assets/device-78545a1c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./enphase/device.vue":()=>e(()=>import("./device-c95ddafe.js"),["assets/device-c95ddafe.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fems/device.vue":()=>e(()=>import("./device-8bcc2213.js"),["assets/device-8bcc2213.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fox_ess/device.vue":()=>e(()=>import("./device-c5df5aff.js"),["assets/device-c5df5aff.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./fronius/device.vue":()=>e(()=>import("./device-6e379819.js"),["assets/device-6e379819.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./good_we/device.vue":()=>e(()=>import("./device-26a38357.js"),["assets/device-26a38357.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./http/device.vue":()=>e(()=>import("./device-983fa414.js"),["assets/device-983fa414.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./huawei/device.vue":()=>e(()=>import("./device-85bbc3b6.js"),["assets/device-85bbc3b6.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./huawei_smartlogger/device.vue":()=>e(()=>import("./device-5ee1f362.js"),["assets/device-5ee1f362.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./janitza/device.vue":()=>e(()=>import("./device-968f2783.js"),["assets/device-968f2783.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./json/device.vue":()=>e(()=>import("./device-c1bc98d9.js"),["assets/device-c1bc98d9.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_piko/device.vue":()=>e(()=>import("./device-e62fefa8.js"),["assets/device-e62fefa8.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_piko_old/device.vue":()=>e(()=>import("./device-7d0443e1.js"),["assets/device-7d0443e1.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_plenticore/device.vue":()=>e(()=>import("./device-32f3515c.js"),["assets/device-32f3515c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_sem/device.vue":()=>e(()=>import("./device-b21e02e9.js"),["assets/device-b21e02e9.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kostal_steca/device.vue":()=>e(()=>import("./device-f408fff0.js"),["assets/device-f408fff0.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./lg/device.vue":()=>e(()=>import("./device-e6134b3a.js"),["assets/device-e6134b3a.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./mqtt/device.vue":()=>e(()=>import("./device-88b475f8.js"),["assets/device-88b475f8.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./mtec/device.vue":()=>e(()=>import("./device-bde30920.js"),["assets/device-bde30920.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./opendtu/device.vue":()=>e(()=>import("./device-969e7e37.js"),["assets/device-969e7e37.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_bat_kit/device.vue":()=>e(()=>import("./device-f30e2b4f.js"),["assets/device-f30e2b4f.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_evu_kit/device.vue":()=>e(()=>import("./device-973a766d.js"),["assets/device-973a766d.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_flex/device.vue":()=>e(()=>import("./device-c6cc93a1.js"),["assets/device-c6cc93a1.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./openwb_pv_kit/device.vue":()=>e(()=>import("./device-03024a15.js"),["assets/device-03024a15.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./powerdog/device.vue":()=>e(()=>import("./device-b0052907.js"),["assets/device-b0052907.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./powerfox/device.vue":()=>e(()=>import("./device-3968fce4.js"),["assets/device-3968fce4.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./qcells/device.vue":()=>e(()=>import("./device-b37a9e8d.js"),["assets/device-b37a9e8d.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./rct/device.vue":()=>e(()=>import("./device-4e0ae06c.js"),["assets/device-4e0ae06c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./saxpower/device.vue":()=>e(()=>import("./device-c6a1db4d.js"),["assets/device-c6a1db4d.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./shelly/device.vue":()=>e(()=>import("./device-f386c17f.js"),["assets/device-f386c17f.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./siemens/device.vue":()=>e(()=>import("./device-7513ccc0.js"),["assets/device-7513ccc0.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./siemens_sentron/device.vue":()=>e(()=>import("./device-23a82284.js"),["assets/device-23a82284.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sma_shm/device.vue":()=>e(()=>import("./device-9c5030b4.js"),["assets/device-9c5030b4.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sma_sunny_boy/device.vue":()=>e(()=>import("./device-20c840b8.js"),["assets/device-20c840b8.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sma_sunny_island/device.vue":()=>e(()=>import("./device-5c5eff36.js"),["assets/device-5c5eff36.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sma_webbox/device.vue":()=>e(()=>import("./device-1ffb41f0.js"),["assets/device-1ffb41f0.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./smart_me/device.vue":()=>e(()=>import("./device-ca6e69b3.js"),["assets/device-ca6e69b3.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./smartfox/device.vue":()=>e(()=>import("./device-9d8b0b7b.js"),["assets/device-9d8b0b7b.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_log/device.vue":()=>e(()=>import("./device-a7f6d1af.js"),["assets/device-a7f6d1af.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_view/device.vue":()=>e(()=>import("./device-d89c28aa.js"),["assets/device-d89c28aa.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_watt/device.vue":()=>e(()=>import("./device-cdd190a8.js"),["assets/device-cdd190a8.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solar_world/device.vue":()=>e(()=>import("./device-decb34ec.js"),["assets/device-decb34ec.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solaredge/device.vue":()=>e(()=>import("./device-27b7a3b2.js"),["assets/device-27b7a3b2.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solarmax/device.vue":()=>e(()=>import("./device-978a39c6.js"),["assets/device-978a39c6.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./solax/device.vue":()=>e(()=>import("./device-9953198a.js"),["assets/device-9953198a.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sonnenbatterie/device.vue":()=>e(()=>import("./device-fb0c3879.js"),["assets/device-fb0c3879.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./studer/device.vue":()=>e(()=>import("./device-03c90ad8.js"),["assets/device-03c90ad8.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sungrow/device.vue":()=>e(()=>import("./device-d2cb5a1c.js"),["assets/device-d2cb5a1c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./sunways/device.vue":()=>e(()=>import("./device-fca4d491.js"),["assets/device-fca4d491.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./tasmota/device.vue":()=>e(()=>import("./device-a1360448.js"),["assets/device-a1360448.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./tesla/device.vue":()=>e(()=>import("./device-aeda6c46.js"),["assets/device-aeda6c46.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./varta/device.vue":()=>e(()=>import("./device-d35b0355.js"),["assets/device-d35b0355.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./victron/device.vue":()=>e(()=>import("./device-558befc9.js"),["assets/device-558befc9.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./virtual/device.vue":()=>e(()=>import("./device-66c1386d.js"),["assets/device-66c1386d.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./vzlogger/device.vue":()=>e(()=>import("./device-f969614a.js"),["assets/device-f969614a.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./youless/device.vue":()=>e(()=>import("./device-bff08244.js"),["assets/device-bff08244.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"])}),`./${this.deviceType}/device.vue`),errorComponent:S})}},methods:{updateConfiguration(_){this.$emit("update:configuration",_)}}};function se(_,i,r,O,s,n){return u(),E($(n.myComponent),{configuration:r.configuration,deviceId:r.deviceId,deviceType:r.deviceType,componentId:r.componentId,componentType:r.componentType,"onUpdate:configuration":i[0]||(i[0]=T=>n.updateConfiguration(T))},null,40,["configuration","deviceId","deviceType","componentId","componentType"])}const me=y(ae,[["render",se],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbConfigProxy.vue"]]);N.add(U,G,F,H,J,Z,Q);const pe={name:"OpenwbHardwareInstallationView",mixins:[Y],emits:["sendCommand"],components:{FontAwesomeIcon:X,OpenwbConfigProxy:me},props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/counter/get/hierarchy","openWB/system/device/+/config","openWB/system/device/+/component/+/config","openWB/system/configurable/devices_components"],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")}}},methods:{getComponentTypeClass(_){return _.match(/^(.+_)?counter(_.+)?$/)?"danger":_.match(/^(.+_)?inverter(_.+)?$/)?"success":_.match(/^(.+_)?bat(_.+)?$/)?"warning":"dark"},getComponentTypeIcon(_){return _.match(/^(.+_)?counter(_.+)?$/)?["fas","fa-gauge-high"]:_.match(/^(.+_)?inverter(_.+)?$/)?["fas","fa-solar-panel"]:_.match(/^(.+_)?bat(_.+)?$/)?["fas","fa-car-battery"]:["fas","fa-microchip"]},getMyInstalledComponents(_){return this.getWildcardTopics("openWB/system/device/"+_+"/component/+/config")},deviceHasConfiguredComponents(_){return Object.keys(this.getMyInstalledComponents(_)).length>0},addDevice(){this.$emit("sendCommand",{command:"addDevice",data:{type:this.deviceToAdd}})},removeDeviceModal(_,i,r){r.stopPropagation(),this.modalDevice=_,this.modalDeviceName=i,this.showDeviceRemoveModal=!0},removeDevice(_){this.showDeviceRemoveModal=!1,_=="confirm"&&(console.info("request removal of device '"+this.modalDevice+"'"),this.$emit("sendCommand",{command:"removeDevice",data:{id:this.modalDevice}}))},getDeviceList(){return this.$store.state.mqtt["openWB/system/configurable/devices_components"]},addComponent(_,i,r){this.$emit("sendCommand",{command:"addComponent",data:{deviceId:_,deviceType:i,type:r}})},removeComponentModal(_,i,r,O,s){s.stopPropagation(),this.modalComponent={deviceId:_,id:i,type:r},this.modalComponentName=O,this.showComponentRemoveModal=!0},removeComponent(_){this.showComponentRemoveModal=!1,_=="confirm"&&(console.info("request removal of component '"+this.modalComponent.id+"' from device '"+this.modalComponent.deviceId+"' type '"+this.modalComponent.type+"'"),this.$emit("sendCommand",{command:"removeComponent",data:this.modalComponent}))},getComponentList(_){return _===void 0?[]:(console.debug("finding components for '"+_+"'"),this.$store.state.mqtt["openWB/system/configurable/devices_components"].find(r=>r.value===_).component)},updateConfiguration(_,i){console.debug("updateConfiguration",_,i),this.updateState(_,i.value,i.object)}}},A=_=>(ee("data-v-8595d6ae"),_=_(),_e(),_),ce={class:"hardwareInstallation"},Ee={name:"hardwareInstallationForm"},le={key:0},Te={key:1},Ie={key:1},Ve=A(()=>c("hr",null,null,-1)),Ae=A(()=>c("hr",null,null,-1)),De=A(()=>c("hr",null,null,-1)),Re=A(()=>c("hr",null,null,-1)),Oe={class:"col-1"},Pe={key:0},Le={class:"col-1"},ge=A(()=>c("p",null,[a(' Die openWB-Regelung ist auf Werte von Messpunkten (Zähler, Energy Meter usw.) angewiesen. Hierfür werden "Geräte" und "Komponenten" verwendet.'),c("br"),a(' 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)),fe=A(()=>c("p",null,[a(' 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"),a(' Verfügt dagegen jeder Messpunkt über eine eigene IP-Adresse, wird jeder Messpunkt als eigenes "Gerät" mit nur einer "Komponente" angelegt. ')],-1)),be=A(()=>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));function he(_,i,r,O,s,n){const T=m("openwb-base-modal-dialog"),g=m("router-link"),D=m("openwb-base-alert"),V=m("font-awesome-icon"),f=m("openwb-base-avatar"),k=m("openwb-base-text-input"),C=m("openwb-config-proxy"),q=m("openwb-base-heading"),b=m("openwb-base-card"),x=m("openwb-base-click-button"),z=m("openwb-base-select-input"),j=m("openwb-base-submit-buttons");return u(),p(L,null,[v(T,{show:s.showDeviceRemoveModal,title:"Gerät löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:n.removeDevice},{default:o(()=>[a(' Wollen Sie das Gerät "'+l(s.modalDeviceName)+'" inklusive aller Komponenten wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),v(T,{show:s.showComponentRemoveModal,title:"Komponente löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:n.removeComponent},{default:o(()=>[a(' Wollen Sie die Komponente "'+l(s.modalComponentName)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),c("div",ce,[c("form",Ee,[r.installAssistantActive?P("",!0):(u(),E(D,{key:0,subtype:"info"},{default:o(()=>[a(" Wenn neue Komponenten - insbesondere Zähler - konfiguriert wurden, ist auch das "),v(g,{to:"/LoadManagementConfiguration"},{default:o(()=>[a(" Lastmanagement ")]),_:1}),a(" zu prüfen! ")]),_:1})),v(b,{title:"Geräte und Komponenten"},{default:o(()=>[_.$store.state.mqtt["openWB/general/extern"]===!0?(u(),p("div",le,[v(D,{subtype:"info"},{default:o(()=>[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(u(),p("div",Te,[(u(!0),p(L,null,h(n.installedDevices,(t,B)=>(u(),E(b,{key:t.id,collapsible:!0,collapsed:!0,subtype:"dark"},{header:o(()=>[v(V,{"fixed-width":"",icon:["fas","network-wired"]}),a(" "+l(t.name),1)]),actions:o(d=>[d.collapsed?(u(),p("div",Ie,[(u(!0),p(L,null,h(n.getMyInstalledComponents(t.id),I=>(u(),E(f,{key:I.id,class:w("ml-1 bg-"+n.getComponentTypeClass(I.type))},{default:o(()=>[v(V,{"fixed-width":"",icon:n.getComponentTypeIcon(I.type)},null,8,["icon"])]),_:2},1032,["class"]))),128))])):(u(),E(f,{key:0,class:"bg-danger clickable",onClick:I=>n.removeDeviceModal(t.id,t.name,I)},{default:o(()=>[v(V,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:o(()=>[v(k,{title:"Bezeichnung",subtype:"text","model-value":t.name,"onUpdate:modelValue":d=>_.updateState(B,d,"name")},null,8,["model-value","onUpdate:modelValue"]),Ve,v(C,{deviceId:t.id,deviceType:t.type,configuration:t.configuration,"onUpdate:configuration":d=>n.updateConfiguration(B,d)},null,8,["deviceId","deviceType","configuration","onUpdate:configuration"]),Ae,v(q,null,{default:o(()=>[a("Komponenten")]),_:1}),n.deviceHasConfiguredComponents(t.id)?P("",!0):(u(),E(D,{key:0,subtype:"warning"},{default:o(()=>[a(" Es wurden noch keine Komponenten zu diesem Gerät angelegt. ")]),_:1})),(u(!0),p(L,null,h(n.getMyInstalledComponents(t.id),(d,I)=>(u(),E(b,{key:d.id,collapsible:!0,collapsed:!0,subtype:n.getComponentTypeClass(d.type)},{header:o(()=>[v(V,{"fixed-width":"",icon:n.getComponentTypeIcon(d.type)},null,8,["icon"]),a(" "+l(d.name),1)]),actions:o(R=>[R.collapsed?P("",!0):(u(),E(f,{key:0,class:"bg-danger clickable",onClick:K=>n.removeComponentModal(t.id,d.id,d.type,d.name,K)},{default:o(()=>[v(V,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),default:o(()=>[v(k,{title:"Bezeichnung",subtype:"text","model-value":d.name,"onUpdate:modelValue":R=>_.updateState(I,R,"name")},null,8,["model-value","onUpdate:modelValue"]),De,v(C,{deviceId:t.id,deviceType:t.type,componentId:d.id,componentType:d.type,configuration:d.configuration,"onUpdate:configuration":R=>n.updateConfiguration(I,R)},null,8,["deviceId","deviceType","componentId","componentType","configuration","onUpdate:configuration"])]),_:2},1032,["subtype"]))),128)),Re,n.getComponentList(t.type).length?(u(),E(z,{key:1,class:"mb-2",title:"Verfügbare Komponenten",notSelected:"Bitte auswählen",options:n.getComponentList(t.type),"model-value":s.componentToAdd[t.id],"onUpdate:modelValue":d=>s.componentToAdd[t.id]=d},{append:o(()=>[c("span",Oe,[v(x,{class:w(s.componentToAdd[t.id]===void 0?"btn-outline-success":"btn-success clickable"),disabled:s.componentToAdd[t.id]===void 0,onButtonClicked:d=>n.addComponent(t.id,t.type,s.componentToAdd[t.id])},{default:o(()=>[v(V,{"fixed-width":"",icon:["fas","plus"]})]),_:2},1032,["class","disabled","onButtonClicked"])])]),help:o(()=>[a(" 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. ")]),_:2},1032,["options","model-value","onUpdate:modelValue"])):(u(),E(D,{key:2,subtype:"info"},{default:o(()=>[a(" Dieses System bietet keine Komponenten zur Installation an. ")]),_:1}))]),_:2},1024))),128)),Object.keys(n.installedDevices).length>0?(u(),p("hr",Pe)):P("",!0),v(z,{class:"mb-2",title:"Verfügbare Geräte",notSelected:"Bitte auswählen",options:n.getDeviceList(),"model-value":s.deviceToAdd,"onUpdate:modelValue":i[0]||(i[0]=t=>s.deviceToAdd=t)},{append:o(()=>[c("span",Le,[v(x,{class:w(s.deviceToAdd===void 0?"btn-outline-success":"btn-success clickable"),disabled:s.deviceToAdd===void 0,onButtonClicked:n.addDevice},{default:o(()=>[v(V,{"fixed-width":"",icon:["fas","plus"]})]),_:1},8,["class","disabled","onButtonClicked"])])]),help:o(()=>[ge,fe,be]),_:1},8,["options","model-value"])]))]),_:1}),v(j,{formName:"hardwareInstallationForm",onSave:i[1]||(i[1]=t=>_.$emit("save")),onReset:i[2]||(i[2]=t=>_.$emit("reset")),onDefaults:i[3]||(i[3]=t=>_.$emit("defaults"))})])])],64)}const We=y(pe,[["render",he],["__scopeId","data-v-8595d6ae"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/HardwareInstallation.vue"]]);export{We as default}; diff --git a/web/settings/assets/InstallAssistant-3b33de2f.js b/web/settings/assets/InstallAssistant-d68215c6.js similarity index 69% rename from web/settings/assets/InstallAssistant-3b33de2f.js rename to web/settings/assets/InstallAssistant-d68215c6.js index b96c26414b..5a05909384 100644 --- a/web/settings/assets/InstallAssistant-3b33de2f.js +++ b/web/settings/assets/InstallAssistant-d68215c6.js @@ -1 +1 @@ -import{C as r,_ as t}from"./index-ba5cf04c.js";import{_}from"./dynamic-import-helper-be004503.js";import{_ as m,a2 as p,u as d,k as i,l as u,D as A,N as v,A as c,a3 as E,y as I}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const P={name:"InstallAssistantView",mixins:[r],emits:["sendCommand","save","reset","defaults"],data(){return{currentPage:0,lastPage:10,showEndAssistantModal:!1}},computed:{myStepComponent(){return console.debug(`loading assistant page: ${this.currentPage}`),p({loader:()=>_(Object.assign({"../components/install_assistant/InstallAssistantStep0.vue":()=>t(()=>import("./InstallAssistantStep0-00bfcb75.js"),["assets/InstallAssistantStep0-00bfcb75.js","assets/index-ba5cf04c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/index-b3227821.css","assets/InstallAssistantStepTemplate-e18733fc.js","assets/InstallAssistantStepTemplate-ff479f80.css"]),"../components/install_assistant/InstallAssistantStep1.vue":()=>t(()=>import("./InstallAssistantStep1-e96672e3.js"),["assets/InstallAssistantStep1-e96672e3.js","assets/index-ba5cf04c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/index-b3227821.css","assets/InstallAssistantStepTemplate-e18733fc.js","assets/InstallAssistantStepTemplate-ff479f80.css","assets/DataManagement-8e5bac9a.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep10.vue":()=>t(()=>import("./InstallAssistantStep10-509dd8d5.js"),["assets/InstallAssistantStep10-509dd8d5.js","assets/index-ba5cf04c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/index-b3227821.css","assets/InstallAssistantStepTemplate-e18733fc.js","assets/InstallAssistantStepTemplate-ff479f80.css"]),"../components/install_assistant/InstallAssistantStep2.vue":()=>t(()=>import("./InstallAssistantStep2-d28f6b53.js"),["assets/InstallAssistantStep2-d28f6b53.js","assets/index-ba5cf04c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/index-b3227821.css","assets/InstallAssistantStepTemplate-e18733fc.js","assets/InstallAssistantStepTemplate-ff479f80.css","assets/System-5f853f95.js","assets/System-0f1d217b.css"]),"../components/install_assistant/InstallAssistantStep3.vue":()=>t(()=>import("./InstallAssistantStep3-0b86cf0f.js"),["assets/InstallAssistantStep3-0b86cf0f.js","assets/index-ba5cf04c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/index-b3227821.css","assets/InstallAssistantStepTemplate-e18733fc.js","assets/InstallAssistantStepTemplate-ff479f80.css","assets/GeneralConfig-9cb055aa.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep4.vue":()=>t(()=>import("./InstallAssistantStep4-cb68c0eb.js"),["assets/InstallAssistantStep4-cb68c0eb.js","assets/index-ba5cf04c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/index-b3227821.css","assets/InstallAssistantStepTemplate-e18733fc.js","assets/InstallAssistantStepTemplate-ff479f80.css","assets/ChargePointInstallation-6bdc7310.js","assets/dynamic-import-helper-be004503.js","assets/ChargePointInstallation-ed6a5c7e.css"]),"../components/install_assistant/InstallAssistantStep5.vue":()=>t(()=>import("./InstallAssistantStep5-411e6e9d.js"),["assets/InstallAssistantStep5-411e6e9d.js","assets/index-ba5cf04c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/index-b3227821.css","assets/InstallAssistantStepTemplate-e18733fc.js","assets/InstallAssistantStepTemplate-ff479f80.css","assets/HardwareInstallation-b6072dfb.js","assets/dynamic-import-helper-be004503.js","assets/HardwareInstallation-1ee9693f.css"]),"../components/install_assistant/InstallAssistantStep6.vue":()=>t(()=>import("./InstallAssistantStep6-cd1941b1.js"),["assets/InstallAssistantStep6-cd1941b1.js","assets/index-ba5cf04c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/index-b3227821.css","assets/InstallAssistantStepTemplate-e18733fc.js","assets/InstallAssistantStepTemplate-ff479f80.css","assets/ChargePointInstallation-6bdc7310.js","assets/dynamic-import-helper-be004503.js","assets/ChargePointInstallation-ed6a5c7e.css"]),"../components/install_assistant/InstallAssistantStep7.vue":()=>t(()=>import("./InstallAssistantStep7-6d705988.js"),["assets/InstallAssistantStep7-6d705988.js","assets/index-ba5cf04c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/index-b3227821.css","assets/InstallAssistantStepTemplate-e18733fc.js","assets/InstallAssistantStepTemplate-ff479f80.css","assets/LoadManagementConfig-ad848400.js","assets/OpenwbSortableList-641f6bb4.js","assets/OpenwbSortableList-7ba533e4.css"]),"../components/install_assistant/InstallAssistantStep8.vue":()=>t(()=>import("./InstallAssistantStep8-e7350c4d.js"),["assets/InstallAssistantStep8-e7350c4d.js","assets/index-ba5cf04c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/index-b3227821.css","assets/InstallAssistantStepTemplate-e18733fc.js","assets/InstallAssistantStepTemplate-ff479f80.css","assets/VehicleConfig-c67651ce.js","assets/dynamic-import-helper-be004503.js","assets/VehicleConfig-4aeda6ca.css"]),"../components/install_assistant/InstallAssistantStep9.vue":()=>t(()=>import("./InstallAssistantStep9-ac8d21eb.js"),["assets/InstallAssistantStep9-ac8d21eb.js","assets/index-ba5cf04c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/index-b3227821.css","assets/InstallAssistantStepTemplate-e18733fc.js","assets/InstallAssistantStepTemplate-ff479f80.css","assets/DataManagement-8e5bac9a.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStepTemplate.vue":()=>t(()=>import("./InstallAssistantStepTemplate-e18733fc.js"),["assets/InstallAssistantStepTemplate-e18733fc.js","assets/index-ba5cf04c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/index-b3227821.css","assets/InstallAssistantStepTemplate-ff479f80.css"])}),`../components/install_assistant/InstallAssistantStep${this.currentPage}.vue`)})}},methods:{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,e,f,g,o,n){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:n.endAssistant},{default:v(()=>[I(" Wollen Sie den Assistenten wirklich vorzeitig beenden? ")]),_:1},8,["show","onModalResult"]),(i(),c(E(n.myStepComponent),{onSendCommand:e[0]||(e[0]=a=>s.$emit("sendCommand",a)),onSave:e[1]||(e[1]=a=>s.$emit("save")),onReset:e[2]||(e[2]=a=>s.$emit("reset")),onDefaults:e[3]||(e[3]=a=>s.$emit("defaults")),onSwitchPage:n.switchPage,onEndAssistant:n.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}; +import{C as r,_ as t}from"./index-88a2073c.js";import{_}from"./dynamic-import-helper-be004503.js";import{_ as m,a2 as p,u as d,k as i,l as u,D as A,N as v,A as c,a3 as E,y as I}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const P={name:"InstallAssistantView",mixins:[r],emits:["sendCommand","save","reset","defaults"],data(){return{currentPage:0,lastPage:10,showEndAssistantModal:!1}},computed:{myStepComponent(){return console.debug(`loading assistant page: ${this.currentPage}`),p({loader:()=>_(Object.assign({"../components/install_assistant/InstallAssistantStep0.vue":()=>t(()=>import("./InstallAssistantStep0-e814ffaf.js"),["assets/InstallAssistantStep0-e814ffaf.js","assets/index-88a2073c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/index-b3227821.css","assets/InstallAssistantStepTemplate-0f7d9f62.js","assets/InstallAssistantStepTemplate-ff479f80.css"]),"../components/install_assistant/InstallAssistantStep1.vue":()=>t(()=>import("./InstallAssistantStep1-82e8d797.js"),["assets/InstallAssistantStep1-82e8d797.js","assets/index-88a2073c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/index-b3227821.css","assets/InstallAssistantStepTemplate-0f7d9f62.js","assets/InstallAssistantStepTemplate-ff479f80.css","assets/DataManagement-f4b0feef.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep10.vue":()=>t(()=>import("./InstallAssistantStep10-4b6a0cf4.js"),["assets/InstallAssistantStep10-4b6a0cf4.js","assets/index-88a2073c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/index-b3227821.css","assets/InstallAssistantStepTemplate-0f7d9f62.js","assets/InstallAssistantStepTemplate-ff479f80.css"]),"../components/install_assistant/InstallAssistantStep2.vue":()=>t(()=>import("./InstallAssistantStep2-fcfe7b66.js"),["assets/InstallAssistantStep2-fcfe7b66.js","assets/index-88a2073c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/index-b3227821.css","assets/InstallAssistantStepTemplate-0f7d9f62.js","assets/InstallAssistantStepTemplate-ff479f80.css","assets/System-4ed50969.js","assets/System-0f1d217b.css"]),"../components/install_assistant/InstallAssistantStep3.vue":()=>t(()=>import("./InstallAssistantStep3-77359403.js"),["assets/InstallAssistantStep3-77359403.js","assets/index-88a2073c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/index-b3227821.css","assets/InstallAssistantStepTemplate-0f7d9f62.js","assets/InstallAssistantStepTemplate-ff479f80.css","assets/GeneralConfig-aecc1081.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStep4.vue":()=>t(()=>import("./InstallAssistantStep4-d653e2b0.js"),["assets/InstallAssistantStep4-d653e2b0.js","assets/index-88a2073c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/index-b3227821.css","assets/InstallAssistantStepTemplate-0f7d9f62.js","assets/InstallAssistantStepTemplate-ff479f80.css","assets/ChargePointInstallation-66ab99c9.js","assets/dynamic-import-helper-be004503.js","assets/ChargePointInstallation-ed6a5c7e.css"]),"../components/install_assistant/InstallAssistantStep5.vue":()=>t(()=>import("./InstallAssistantStep5-554bfc9c.js"),["assets/InstallAssistantStep5-554bfc9c.js","assets/index-88a2073c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/index-b3227821.css","assets/InstallAssistantStepTemplate-0f7d9f62.js","assets/InstallAssistantStepTemplate-ff479f80.css","assets/HardwareInstallation-912044d0.js","assets/dynamic-import-helper-be004503.js","assets/HardwareInstallation-1ee9693f.css"]),"../components/install_assistant/InstallAssistantStep6.vue":()=>t(()=>import("./InstallAssistantStep6-a19e04f9.js"),["assets/InstallAssistantStep6-a19e04f9.js","assets/index-88a2073c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/index-b3227821.css","assets/InstallAssistantStepTemplate-0f7d9f62.js","assets/InstallAssistantStepTemplate-ff479f80.css","assets/ChargePointInstallation-66ab99c9.js","assets/dynamic-import-helper-be004503.js","assets/ChargePointInstallation-ed6a5c7e.css"]),"../components/install_assistant/InstallAssistantStep7.vue":()=>t(()=>import("./InstallAssistantStep7-f896ccc9.js"),["assets/InstallAssistantStep7-f896ccc9.js","assets/index-88a2073c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/index-b3227821.css","assets/InstallAssistantStepTemplate-0f7d9f62.js","assets/InstallAssistantStepTemplate-ff479f80.css","assets/LoadManagementConfig-380e9c4d.js","assets/OpenwbSortableList-641f6bb4.js","assets/OpenwbSortableList-7ba533e4.css"]),"../components/install_assistant/InstallAssistantStep8.vue":()=>t(()=>import("./InstallAssistantStep8-86a4cd0e.js"),["assets/InstallAssistantStep8-86a4cd0e.js","assets/index-88a2073c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/index-b3227821.css","assets/InstallAssistantStepTemplate-0f7d9f62.js","assets/InstallAssistantStepTemplate-ff479f80.css","assets/VehicleConfig-99736f29.js","assets/dynamic-import-helper-be004503.js","assets/VehicleConfig-4aeda6ca.css"]),"../components/install_assistant/InstallAssistantStep9.vue":()=>t(()=>import("./InstallAssistantStep9-4da82ba8.js"),["assets/InstallAssistantStep9-4da82ba8.js","assets/index-88a2073c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/index-b3227821.css","assets/InstallAssistantStepTemplate-0f7d9f62.js","assets/InstallAssistantStepTemplate-ff479f80.css","assets/DataManagement-f4b0feef.js","assets/dynamic-import-helper-be004503.js"]),"../components/install_assistant/InstallAssistantStepTemplate.vue":()=>t(()=>import("./InstallAssistantStepTemplate-0f7d9f62.js"),["assets/InstallAssistantStepTemplate-0f7d9f62.js","assets/index-88a2073c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/index-b3227821.css","assets/InstallAssistantStepTemplate-ff479f80.css"])}),`../components/install_assistant/InstallAssistantStep${this.currentPage}.vue`)})}},methods:{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,e,f,g,o,n){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:n.endAssistant},{default:v(()=>[I(" Wollen Sie den Assistenten wirklich vorzeitig beenden? ")]),_:1},8,["show","onModalResult"]),(i(),c(E(n.myStepComponent),{onSendCommand:e[0]||(e[0]=a=>s.$emit("sendCommand",a)),onSave:e[1]||(e[1]=a=>s.$emit("save")),onReset:e[2]||(e[2]=a=>s.$emit("reset")),onDefaults:e[3]||(e[3]=a=>s.$emit("defaults")),onSwitchPage:n.switchPage,onEndAssistant:n.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-00bfcb75.js b/web/settings/assets/InstallAssistantStep0-e814ffaf.js similarity index 95% rename from web/settings/assets/InstallAssistantStep0-00bfcb75.js rename to web/settings/assets/InstallAssistantStep0-e814ffaf.js index 9139f6b88d..68f532802b 100644 --- a/web/settings/assets/InstallAssistantStep0-00bfcb75.js +++ b/web/settings/assets/InstallAssistantStep0-e814ffaf.js @@ -1 +1 @@ -import{C as d}from"./index-ba5cf04c.js";import u from"./InstallAssistantStepTemplate-e18733fc.js";import{_ as c,u as i,k as h,A as p,N as a,D as m,y as g,x as e}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const _={name:"InstallAssistantStep0",mixins:[d],emits:["switchPage","endAssistant"],components:{InstallAssistantStepTemplate:u},data:()=>({mqttTopicsToSubscribe:[],showModalWarning:!1}),methods:{requestNextPage(){this.showModalWarning=!0},nextPage(n){this.showModalWarning=!1,n==="confirm"&&this.$emit("switchPage",1)},previousPage(){},endAssistant(){this.$emit("endAssistant")}}},f=e("h2",null,"Vielen Dank, dass Du Dich für openWB entschieden hast.",-1),A=e("p",null," Dieser Assistent führt Dich durch die Konfiguration der einzelnen Module: ",-1),b=e("ol",null,[e("li",null,"Datensicherung - Eine Sicherung erstellen"),e("li",null,"Aktualisierung des Systems"),e("li",null," Allgemeine Einstellungen: Auswahl des Betriebsmodus primary / secondary ")],-1),w=e("p",null," Wird diese openWB als secondary betrieben, dann werden nur noch die lokalen Ladepunkte eingerichtet. Im Betriebsmodus primary werden die folgenden zusätzlichen Schritte durchlaufen: ",-1),P=e("ol",{start:"4"},[e("li",null,"Energiesystem - Geräte und Komponenten einrichten"),e("li",null,"Einrichten der Ladepunkte (openWB als primary)"),e("li",null,"Konfiguration des Lastmanagements"),e("li",null,"Einrichten der Fahrzeuge"),e("li",null,"Datensicherung - Eine Sicherung erstellen")],-1),S=e("p",null,"Danach ist die Grundkonfiguration abgeschlossen.",-1);function k(n,s,v,x,y,t){const o=i("openwb-base-modal-dialog"),l=i("InstallAssistantStepTemplate");return h(),p(l,{title:"Start",onNextPage:t.requestNextPage,onPreviousPage:t.previousPage,onEndAssistant:t.endAssistant,hidePrevious:!0},{content:a(()=>[m(o,{show:n.showModalWarning,title:"Achtung!",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"success"}],onModalResult:s[0]||(s[0]=r=>t.nextPage(r))},{default:a(()=>[g(" 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},8,["show"]),f,A,b,w,P,S]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const M=c(_,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep0.vue"]]);export{M as default}; +import{C as d}from"./index-88a2073c.js";import u from"./InstallAssistantStepTemplate-0f7d9f62.js";import{_ as c,u as i,k as h,A as p,N as a,D as m,y as g,x as e}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const _={name:"InstallAssistantStep0",mixins:[d],emits:["switchPage","endAssistant"],components:{InstallAssistantStepTemplate:u},data:()=>({mqttTopicsToSubscribe:[],showModalWarning:!1}),methods:{requestNextPage(){this.showModalWarning=!0},nextPage(n){this.showModalWarning=!1,n==="confirm"&&this.$emit("switchPage",1)},previousPage(){},endAssistant(){this.$emit("endAssistant")}}},f=e("h2",null,"Vielen Dank, dass Du Dich für openWB entschieden hast.",-1),A=e("p",null," Dieser Assistent führt Dich durch die Konfiguration der einzelnen Module: ",-1),b=e("ol",null,[e("li",null,"Datensicherung - Eine Sicherung erstellen"),e("li",null,"Aktualisierung des Systems"),e("li",null," Allgemeine Einstellungen: Auswahl des Betriebsmodus primary / secondary ")],-1),w=e("p",null," Wird diese openWB als secondary betrieben, dann werden nur noch die lokalen Ladepunkte eingerichtet. Im Betriebsmodus primary werden die folgenden zusätzlichen Schritte durchlaufen: ",-1),P=e("ol",{start:"4"},[e("li",null,"Energiesystem - Geräte und Komponenten einrichten"),e("li",null,"Einrichten der Ladepunkte (openWB als primary)"),e("li",null,"Konfiguration des Lastmanagements"),e("li",null,"Einrichten der Fahrzeuge"),e("li",null,"Datensicherung - Eine Sicherung erstellen")],-1),S=e("p",null,"Danach ist die Grundkonfiguration abgeschlossen.",-1);function k(n,s,v,x,y,t){const o=i("openwb-base-modal-dialog"),l=i("InstallAssistantStepTemplate");return h(),p(l,{title:"Start",onNextPage:t.requestNextPage,onPreviousPage:t.previousPage,onEndAssistant:t.endAssistant,hidePrevious:!0},{content:a(()=>[m(o,{show:n.showModalWarning,title:"Achtung!",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"success"}],onModalResult:s[0]||(s[0]=r=>t.nextPage(r))},{default:a(()=>[g(" 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},8,["show"]),f,A,b,w,P,S]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const M=c(_,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep0.vue"]]);export{M as default}; diff --git a/web/settings/assets/InstallAssistantStep1-e96672e3.js b/web/settings/assets/InstallAssistantStep1-82e8d797.js similarity index 89% rename from web/settings/assets/InstallAssistantStep1-e96672e3.js rename to web/settings/assets/InstallAssistantStep1-82e8d797.js index ed680ef5ab..4d2805c644 100644 --- a/web/settings/assets/InstallAssistantStep1-e96672e3.js +++ b/web/settings/assets/InstallAssistantStep1-82e8d797.js @@ -1 +1 @@ -import{C as m}from"./index-ba5cf04c.js";import p from"./InstallAssistantStepTemplate-e18733fc.js";import l from"./DataManagement-8e5bac9a.js";import{_ as d,u as a,k as u,A as g,N as i,D as f,x as c}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";import"./dynamic-import-helper-be004503.js";const A={name:"InstallAssistantStep1",mixins:[m],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],components:{InstallAssistantStepTemplate:p,DataManagement:l},data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",2)},previousPage(){this.$emit("switchPage",0)},endAssistant(){this.$emit("endAssistant")}}},v=c("p",null," Wir empfehlen an dieser Stelle eine Sicherung der openWB zu erzeugen, auf welche später zurückgegriffen werden kann, insbesondere, wenn die openWB schon konfiguriert war und der Assistent nun erneut ausgeführt wird. ",-1);function S(t,e,P,h,w,s){const o=a("DataManagement"),r=a("InstallAssistantStepTemplate");return u(),g(r,{title:"1. Datensicherung - Eine Sicherung erstellen",onNextPage:s.nextPage,onPreviousPage:s.previousPage,onEndAssistant:s.endAssistant},{help:i(()=>[v]),content:i(()=>[f(o,{installAssistantActive:!0,showBackupCloudSection:!1,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 b=d(A,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep1.vue"]]);export{b as default}; +import{C as m}from"./index-88a2073c.js";import p from"./InstallAssistantStepTemplate-0f7d9f62.js";import l from"./DataManagement-f4b0feef.js";import{_ as d,u as a,k as u,A as g,N as i,D as f,x as c}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";import"./dynamic-import-helper-be004503.js";const A={name:"InstallAssistantStep1",mixins:[m],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],components:{InstallAssistantStepTemplate:p,DataManagement:l},data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",2)},previousPage(){this.$emit("switchPage",0)},endAssistant(){this.$emit("endAssistant")}}},v=c("p",null," Wir empfehlen an dieser Stelle eine Sicherung der openWB zu erzeugen, auf welche später zurückgegriffen werden kann, insbesondere, wenn die openWB schon konfiguriert war und der Assistent nun erneut ausgeführt wird. ",-1);function S(t,e,P,h,w,s){const o=a("DataManagement"),r=a("InstallAssistantStepTemplate");return u(),g(r,{title:"1. Datensicherung - Eine Sicherung erstellen",onNextPage:s.nextPage,onPreviousPage:s.previousPage,onEndAssistant:s.endAssistant},{help:i(()=>[v]),content:i(()=>[f(o,{installAssistantActive:!0,showBackupCloudSection:!1,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 b=d(A,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep1.vue"]]);export{b as default}; diff --git a/web/settings/assets/InstallAssistantStep10-509dd8d5.js b/web/settings/assets/InstallAssistantStep10-4b6a0cf4.js similarity index 92% rename from web/settings/assets/InstallAssistantStep10-509dd8d5.js rename to web/settings/assets/InstallAssistantStep10-4b6a0cf4.js index 51a5ce5df4..cec84d3cf4 100644 --- a/web/settings/assets/InstallAssistantStep10-509dd8d5.js +++ b/web/settings/assets/InstallAssistantStep10-4b6a0cf4.js @@ -1 +1 @@ -import{C as i}from"./index-ba5cf04c.js";import a from"./InstallAssistantStepTemplate-e18733fc.js";import{_ as o,u as r,k as l,A as d,N as m,x as s}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const p={name:"InstallAssistantStep10",mixins:[i],emits:["switchPage","endAssistant"],components:{InstallAssistantStepTemplate:a},data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){},previousPage(){this.$emit("switchPage",9)},sendCommand(t){this.$emit("sendCommand",t)},endAssistant(){this.$emit("endAssistant")}}},c=s("h2",null,"Die Grundkonfiguration ist abgeschlossen.",-1),g=s("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 an. Weitere Einstellungen sind für den Betrieb der openWB als secondary nicht notwendig. Detaillierte Einstellungsmöglichkeiten befinden sich in den jeweiligen Konfigurationsseiten. ",-1);function u(t,_,h,f,A,e){const n=r("InstallAssistantStepTemplate");return l(),d(n,{title:"Abgeschlossen",onNextPage:e.nextPage,onPreviousPage:e.previousPage,onEndAssistant:e.endAssistant,hideNext:!0},{content:m(()=>[c,g]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const k=o(p,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep10.vue"]]);export{k as default}; +import{C as i}from"./index-88a2073c.js";import a from"./InstallAssistantStepTemplate-0f7d9f62.js";import{_ as o,u as r,k as l,A as d,N as m,x as s}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const p={name:"InstallAssistantStep10",mixins:[i],emits:["switchPage","endAssistant"],components:{InstallAssistantStepTemplate:a},data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){},previousPage(){this.$emit("switchPage",9)},sendCommand(t){this.$emit("sendCommand",t)},endAssistant(){this.$emit("endAssistant")}}},c=s("h2",null,"Die Grundkonfiguration ist abgeschlossen.",-1),g=s("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 an. Weitere Einstellungen sind für den Betrieb der openWB als secondary nicht notwendig. Detaillierte Einstellungsmöglichkeiten befinden sich in den jeweiligen Konfigurationsseiten. ",-1);function u(t,_,h,f,A,e){const n=r("InstallAssistantStepTemplate");return l(),d(n,{title:"Abgeschlossen",onNextPage:e.nextPage,onPreviousPage:e.previousPage,onEndAssistant:e.endAssistant,hideNext:!0},{content:m(()=>[c,g]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const k=o(p,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep10.vue"]]);export{k as default}; diff --git a/web/settings/assets/InstallAssistantStep2-d28f6b53.js b/web/settings/assets/InstallAssistantStep2-fcfe7b66.js similarity index 89% rename from web/settings/assets/InstallAssistantStep2-d28f6b53.js rename to web/settings/assets/InstallAssistantStep2-fcfe7b66.js index b06c2ae48e..61624df5a0 100644 --- a/web/settings/assets/InstallAssistantStep2-d28f6b53.js +++ b/web/settings/assets/InstallAssistantStep2-fcfe7b66.js @@ -1 +1 @@ -import{C as d}from"./index-ba5cf04c.js";import p from"./InstallAssistantStepTemplate-e18733fc.js";import l from"./System-5f853f95.js";import{_ as u,u as i,k as f,A as g,N as o,D as A,x as a}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const S={name:"InstallAssistantStep2",mixins:[d],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],components:{InstallAssistantStepTemplate:p,SystemView:l},data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",3)},previousPage(){this.$emit("switchPage",1)},endAssistant(){this.$emit("endAssistant")}}},v=a("p",null," Bitte ein System-Update durchführen, um die Software auf den neusten Stand zu bringen. ",-1),c=a("p",null," Das garantiert, dass die openWB mit den neuesten Features und Funktionen ausgestattet ist. ",-1),P=a("p",null," Auf Versions-Informationen / Aktualisierung gehen, Informationen aktualisieren und falls ein Update verfügbar ist, wird der Update button grün und kann gedrückt werden. ",-1);function w(e,t,_,$,k,n){const r=i("SystemView"),m=i("InstallAssistantStepTemplate");return f(),g(m,{title:"2. Aktualisierung des Systems",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>[v,c,P]),content:o(()=>[A(r,{installAssistantActive:!0,onSendCommand:t[0]||(t[0]=s=>e.$emit("sendCommand",s)),onSave:t[1]||(t[1]=s=>e.$emit("save")),onReset:t[2]||(t[2]=s=>e.$emit("reset")),onDefaults:t[3]||(t[3]=s=>e.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const T=u(S,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep2.vue"]]);export{T as default}; +import{C as d}from"./index-88a2073c.js";import p from"./InstallAssistantStepTemplate-0f7d9f62.js";import l from"./System-4ed50969.js";import{_ as u,u as i,k as f,A as g,N as o,D as A,x as a}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const S={name:"InstallAssistantStep2",mixins:[d],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],components:{InstallAssistantStepTemplate:p,SystemView:l},data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",3)},previousPage(){this.$emit("switchPage",1)},endAssistant(){this.$emit("endAssistant")}}},v=a("p",null," Bitte ein System-Update durchführen, um die Software auf den neusten Stand zu bringen. ",-1),c=a("p",null," Das garantiert, dass die openWB mit den neuesten Features und Funktionen ausgestattet ist. ",-1),P=a("p",null," Auf Versions-Informationen / Aktualisierung gehen, Informationen aktualisieren und falls ein Update verfügbar ist, wird der Update button grün und kann gedrückt werden. ",-1);function w(e,t,_,$,k,n){const r=i("SystemView"),m=i("InstallAssistantStepTemplate");return f(),g(m,{title:"2. Aktualisierung des Systems",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>[v,c,P]),content:o(()=>[A(r,{installAssistantActive:!0,onSendCommand:t[0]||(t[0]=s=>e.$emit("sendCommand",s)),onSave:t[1]||(t[1]=s=>e.$emit("save")),onReset:t[2]||(t[2]=s=>e.$emit("reset")),onDefaults:t[3]||(t[3]=s=>e.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const T=u(S,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep2.vue"]]);export{T as default}; diff --git a/web/settings/assets/InstallAssistantStep3-0b86cf0f.js b/web/settings/assets/InstallAssistantStep3-77359403.js similarity index 92% rename from web/settings/assets/InstallAssistantStep3-0b86cf0f.js rename to web/settings/assets/InstallAssistantStep3-77359403.js index a01d84acce..203ed11fb2 100644 --- a/web/settings/assets/InstallAssistantStep3-0b86cf0f.js +++ b/web/settings/assets/InstallAssistantStep3-77359403.js @@ -1 +1 @@ -import{C as d}from"./index-ba5cf04c.js";import p from"./InstallAssistantStepTemplate-e18733fc.js";import m from"./GeneralConfig-9cb055aa.js";import{_ as u,u as r,k as g,A as f,N as a,D as c,x as s}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";import"./dynamic-import-helper-be004503.js";const w={name:"InstallAssistantStep3",mixins:[d],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],components:{InstallAssistantStepTemplate:p,GeneralConfigView:m},data:()=>({mqttTopicsToSubscribe:["openWB/general/extern"]}),methods:{nextPage(){this.$emit("switchPage",this.$store.state.mqtt["openWB/general/extern"]?4:5)},previousPage(){this.$emit("switchPage",2)},endAssistant(){this.$emit("endAssistant")}}},A=s("p",null," Hier wird abgefragt, ob ihr System mit mehreren openWBs oder nur mit einer openWB betrieben wird. Eine openWB kann andere openWBs steuern. ",-1),b=s("p",null,' Zuerst ist im Feld "Steuerungsmodus" festzulegen, 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),k=s("p",null," Eine openWB standalone hat keinen Ladepunkt und arbeitet nur als Steuerteil (primary). Eine openWB Standard(+), custom, Duo und Buchse können sowohl als steuernder primary oder als ferngesteuerte secondary betrieben werden (Duo mit 2 Ladepunkten). Eine openWB Pro und Satellit können nur als s.g. Ladepunkt genutzt werden und benötigen zwingend einen separaten primary als Steuerteil. ",-1),B=s("p",{class:"font-weight-bold"}," Änderungen werden nur bei klicken auf Speichern wirksam! ",-1);function S(t,e,h,P,v,i){const o=r("GeneralConfigView"),l=r("InstallAssistantStepTemplate");return g(),f(l,{title:"3. Allgemeine Einstellungen: Auswahl des Betriebsmodus primary / secondary",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[A,b,k,B]),content:a(()=>[c(o,{installAssistantActive:!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 T=u(w,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep3.vue"]]);export{T as default}; +import{C as d}from"./index-88a2073c.js";import p from"./InstallAssistantStepTemplate-0f7d9f62.js";import m from"./GeneralConfig-aecc1081.js";import{_ as u,u as r,k as g,A as f,N as a,D as c,x as s}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";import"./dynamic-import-helper-be004503.js";const w={name:"InstallAssistantStep3",mixins:[d],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],components:{InstallAssistantStepTemplate:p,GeneralConfigView:m},data:()=>({mqttTopicsToSubscribe:["openWB/general/extern"]}),methods:{nextPage(){this.$emit("switchPage",this.$store.state.mqtt["openWB/general/extern"]?4:5)},previousPage(){this.$emit("switchPage",2)},endAssistant(){this.$emit("endAssistant")}}},A=s("p",null," Hier wird abgefragt, ob ihr System mit mehreren openWBs oder nur mit einer openWB betrieben wird. Eine openWB kann andere openWBs steuern. ",-1),b=s("p",null,' Zuerst ist im Feld "Steuerungsmodus" festzulegen, 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),k=s("p",null," Eine openWB standalone hat keinen Ladepunkt und arbeitet nur als Steuerteil (primary). Eine openWB Standard(+), custom, Duo und Buchse können sowohl als steuernder primary oder als ferngesteuerte secondary betrieben werden (Duo mit 2 Ladepunkten). Eine openWB Pro und Satellit können nur als s.g. Ladepunkt genutzt werden und benötigen zwingend einen separaten primary als Steuerteil. ",-1),B=s("p",{class:"font-weight-bold"}," Änderungen werden nur bei klicken auf Speichern wirksam! ",-1);function S(t,e,h,P,v,i){const o=r("GeneralConfigView"),l=r("InstallAssistantStepTemplate");return g(),f(l,{title:"3. Allgemeine Einstellungen: Auswahl des Betriebsmodus primary / secondary",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[A,b,k,B]),content:a(()=>[c(o,{installAssistantActive:!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 T=u(w,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep3.vue"]]);export{T as default}; diff --git a/web/settings/assets/InstallAssistantStep4-cb68c0eb.js b/web/settings/assets/InstallAssistantStep4-d653e2b0.js similarity index 92% rename from web/settings/assets/InstallAssistantStep4-cb68c0eb.js rename to web/settings/assets/InstallAssistantStep4-d653e2b0.js index 5cfa92012b..6c62b94d1d 100644 --- a/web/settings/assets/InstallAssistantStep4-cb68c0eb.js +++ b/web/settings/assets/InstallAssistantStep4-d653e2b0.js @@ -1 +1 @@ -import{C as l}from"./index-ba5cf04c.js";import p from"./InstallAssistantStepTemplate-e18733fc.js";import u from"./ChargePointInstallation-6bdc7310.js";import{_ as m,u as o,k as g,A as c,N as a,D as f,x as n}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";import"./dynamic-import-helper-be004503.js";const h={name:"InstallAssistantStep4",mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],components:{InstallAssistantStepTemplate:p,ChargePointInstallationView:u},data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",9)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}},w=n("p",null,' Diese hier vorzukonfigurierende openWB wurde als "secondary" eingestellt und wird von einer anderen openWB oder standalone ferngesteuert. ',-1),k=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),B=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 (+) oder Buchse) aus. ',-1),_=n("p",null," Wenn eine openWB Duo gewählt wird, so sind zwei Ladepunkte mit Ladepunkt-Nummer 1 und 2 zu konfigurieren. Bei der openWB Pro und Satellit sind keine Einstellungen notwendig. ",-1),v=n("p",null," Weitere Einstellungen sind bei der Vorkonfiguration einer secondary nicht notwendig. ",-1),P=n("p",null," Bitte lesen Sie auch die Hinweistexte, welche durch Klicken auf das Fragezeichensymbol erscheinen. Hier sind weiterführende Informationen zu den Eingabefeldern zu finden. ",-1),S=n("p",{class:"font-weight-bold"}," Änderungen werden nur bei klicken auf Speichern wirksam! ",-1);function A(t,e,b,W,I,i){const r=o("ChargePointInstallationView"),d=o("InstallAssistantStepTemplate");return g(),c(d,{title:"4. Einrichten der Ladepunkte (openWB als secondary)",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[w,k,B,_,v,P,S]),content:a(()=>[f(r,{installAssistantActive:!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 y=m(h,[["render",A],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep4.vue"]]);export{y as default}; +import{C as l}from"./index-88a2073c.js";import p from"./InstallAssistantStepTemplate-0f7d9f62.js";import u from"./ChargePointInstallation-66ab99c9.js";import{_ as m,u as o,k as g,A as c,N as a,D as f,x as n}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";import"./dynamic-import-helper-be004503.js";const h={name:"InstallAssistantStep4",mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],components:{InstallAssistantStepTemplate:p,ChargePointInstallationView:u},data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",9)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}},w=n("p",null,' Diese hier vorzukonfigurierende openWB wurde als "secondary" eingestellt und wird von einer anderen openWB oder standalone ferngesteuert. ',-1),k=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),B=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 (+) oder Buchse) aus. ',-1),_=n("p",null," Wenn eine openWB Duo gewählt wird, so sind zwei Ladepunkte mit Ladepunkt-Nummer 1 und 2 zu konfigurieren. Bei der openWB Pro und Satellit sind keine Einstellungen notwendig. ",-1),v=n("p",null," Weitere Einstellungen sind bei der Vorkonfiguration einer secondary nicht notwendig. ",-1),P=n("p",null," Bitte lesen Sie auch die Hinweistexte, welche durch Klicken auf das Fragezeichensymbol erscheinen. Hier sind weiterführende Informationen zu den Eingabefeldern zu finden. ",-1),S=n("p",{class:"font-weight-bold"}," Änderungen werden nur bei klicken auf Speichern wirksam! ",-1);function A(t,e,b,W,I,i){const r=o("ChargePointInstallationView"),d=o("InstallAssistantStepTemplate");return g(),c(d,{title:"4. Einrichten der Ladepunkte (openWB als secondary)",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[w,k,B,_,v,P,S]),content:a(()=>[f(r,{installAssistantActive:!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 y=m(h,[["render",A],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep4.vue"]]);export{y as default}; diff --git a/web/settings/assets/InstallAssistantStep5-411e6e9d.js b/web/settings/assets/InstallAssistantStep5-554bfc9c.js similarity index 93% rename from web/settings/assets/InstallAssistantStep5-411e6e9d.js rename to web/settings/assets/InstallAssistantStep5-554bfc9c.js index ae22575465..6551831ad7 100644 --- a/web/settings/assets/InstallAssistantStep5-411e6e9d.js +++ b/web/settings/assets/InstallAssistantStep5-554bfc9c.js @@ -1 +1 @@ -import{C as l}from"./index-ba5cf04c.js";import m from"./InstallAssistantStepTemplate-e18733fc.js";import u from"./HardwareInstallation-b6072dfb.js";import{_ as p,u as r,k as g,A as f,N as a,D as h,x as n}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";import"./dynamic-import-helper-be004503.js";const c={name:"InstallAssistantStep5",mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],components:{InstallAssistantStepTemplate:m,HardwareInstallationView:u},data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",6)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}},w=n("p",null,' Diese openWB wurde als "primary" konfiguriert und übernimmt die Steuerung anderer openWBs, falls vorhanden, sowie die alleinige Regelung des Systems. Dazu müssen im Folgenden die Geräte und Komponenten eingerichtet werden. ',-1),v=n("p",null," Sofern das System nicht zurückgesetzt wurde, ist im Auslieferungszustand für erste Ladetests nach der WB-Montage ein virtueller Zähler vorkonfiguriert. Dieser muss zuerst gelöscht werden, wenn das im Gebäude installierte Energiesystem bestehend aus EVU-Zähler, PV-Anlage und ggf. Speicher in openWB konfiguriert wird. ",-1),A=n("p",null," Jedes verfügbare Gerät wird durch eine eigene IP-Adresse definiert. 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=n("p",null," Bitte lesen Sie auch die Hinweistexte, welche durch Klicken auf das Fragezeichensymbol erscheinen. Hier sind weiterführende Informationen zu den Eingabefeldern zu finden. ",-1),b=n("p",{class:"font-weight-bold"}," Änderungen werden nur bei klicken auf Speichern wirksam! ",-1);function P(t,e,_,k,I,i){const o=r("HardwareInstallationView"),d=r("InstallAssistantStepTemplate");return g(),f(d,{title:"4. Energiesystem - Geräte und Komponenten einrichten",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[w,v,A,S,b]),content:a(()=>[h(o,{installAssistantActive:!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 H=p(c,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep5.vue"]]);export{H as default}; +import{C as l}from"./index-88a2073c.js";import m from"./InstallAssistantStepTemplate-0f7d9f62.js";import u from"./HardwareInstallation-912044d0.js";import{_ as p,u as r,k as g,A as f,N as a,D as h,x as n}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";import"./dynamic-import-helper-be004503.js";const c={name:"InstallAssistantStep5",mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],components:{InstallAssistantStepTemplate:m,HardwareInstallationView:u},data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",6)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}},w=n("p",null,' Diese openWB wurde als "primary" konfiguriert und übernimmt die Steuerung anderer openWBs, falls vorhanden, sowie die alleinige Regelung des Systems. Dazu müssen im Folgenden die Geräte und Komponenten eingerichtet werden. ',-1),v=n("p",null," Sofern das System nicht zurückgesetzt wurde, ist im Auslieferungszustand für erste Ladetests nach der WB-Montage ein virtueller Zähler vorkonfiguriert. Dieser muss zuerst gelöscht werden, wenn das im Gebäude installierte Energiesystem bestehend aus EVU-Zähler, PV-Anlage und ggf. Speicher in openWB konfiguriert wird. ",-1),A=n("p",null," Jedes verfügbare Gerät wird durch eine eigene IP-Adresse definiert. 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=n("p",null," Bitte lesen Sie auch die Hinweistexte, welche durch Klicken auf das Fragezeichensymbol erscheinen. Hier sind weiterführende Informationen zu den Eingabefeldern zu finden. ",-1),b=n("p",{class:"font-weight-bold"}," Änderungen werden nur bei klicken auf Speichern wirksam! ",-1);function P(t,e,_,k,I,i){const o=r("HardwareInstallationView"),d=r("InstallAssistantStepTemplate");return g(),f(d,{title:"4. Energiesystem - Geräte und Komponenten einrichten",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[w,v,A,S,b]),content:a(()=>[h(o,{installAssistantActive:!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 H=p(c,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep5.vue"]]);export{H as default}; diff --git a/web/settings/assets/InstallAssistantStep6-cd1941b1.js b/web/settings/assets/InstallAssistantStep6-a19e04f9.js similarity index 94% rename from web/settings/assets/InstallAssistantStep6-cd1941b1.js rename to web/settings/assets/InstallAssistantStep6-a19e04f9.js index 3e8739e8fe..9eb211a7e9 100644 --- a/web/settings/assets/InstallAssistantStep6-cd1941b1.js +++ b/web/settings/assets/InstallAssistantStep6-a19e04f9.js @@ -1 +1 @@ -import{C as l}from"./index-ba5cf04c.js";import u from"./InstallAssistantStepTemplate-e18733fc.js";import p from"./ChargePointInstallation-6bdc7310.js";import{_ as m,u as a,k as h,A as g,N as r,D as c,x as n}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";import"./dynamic-import-helper-be004503.js";const w={name:"InstallAssistantStep6",mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],components:{InstallAssistantStepTemplate:u,ChargePointInstallationView:p},data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",7)},previousPage(){this.$emit("switchPage",5)},endAssistant(){this.$emit("endAssistant")}}},P=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 Externe openWB (als secondary konfigurierte openWB) oder andere WB-Typen wie Pro, Satellit eingebunden. ',-1),f=n("p",null," Bei openWBs ab Werk kann hier bereits ein Ladepunkt eingetragen sein. ",-1),k=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 openWB's 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),b=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),A=n("p",null," Im grauen Menü 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),B=n("p",{class:"font-weight-bold"}," Änderungen werden nur bei klicken auf Speichern wirksam! ",-1);function S(t,e,_,v,L,i){const o=a("ChargePointInstallationView"),d=a("InstallAssistantStepTemplate");return h(),g(d,{title:"5. Einrichten der Ladepunkte (openWB als primary)",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:r(()=>[P,f,k,b,A,B]),content:r(()=>[c(o,{installAssistantActive:!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 D=m(w,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep6.vue"]]);export{D as default}; +import{C as l}from"./index-88a2073c.js";import u from"./InstallAssistantStepTemplate-0f7d9f62.js";import p from"./ChargePointInstallation-66ab99c9.js";import{_ as m,u as a,k as h,A as g,N as r,D as c,x as n}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";import"./dynamic-import-helper-be004503.js";const w={name:"InstallAssistantStep6",mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],components:{InstallAssistantStepTemplate:u,ChargePointInstallationView:p},data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",7)},previousPage(){this.$emit("switchPage",5)},endAssistant(){this.$emit("endAssistant")}}},P=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 Externe openWB (als secondary konfigurierte openWB) oder andere WB-Typen wie Pro, Satellit eingebunden. ',-1),f=n("p",null," Bei openWBs ab Werk kann hier bereits ein Ladepunkt eingetragen sein. ",-1),k=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 openWB's 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),b=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),A=n("p",null," Im grauen Menü 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),B=n("p",{class:"font-weight-bold"}," Änderungen werden nur bei klicken auf Speichern wirksam! ",-1);function S(t,e,_,v,L,i){const o=a("ChargePointInstallationView"),d=a("InstallAssistantStepTemplate");return h(),g(d,{title:"5. Einrichten der Ladepunkte (openWB als primary)",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:r(()=>[P,f,k,b,A,B]),content:r(()=>[c(o,{installAssistantActive:!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 D=m(w,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep6.vue"]]);export{D as default}; diff --git a/web/settings/assets/InstallAssistantStep7-6d705988.js b/web/settings/assets/InstallAssistantStep7-f896ccc9.js similarity index 93% rename from web/settings/assets/InstallAssistantStep7-6d705988.js rename to web/settings/assets/InstallAssistantStep7-f896ccc9.js index 88925e2996..c9319b8c92 100644 --- a/web/settings/assets/InstallAssistantStep7-6d705988.js +++ b/web/settings/assets/InstallAssistantStep7-f896ccc9.js @@ -1 +1 @@ -import{C as l}from"./index-ba5cf04c.js";import m from"./InstallAssistantStepTemplate-e18733fc.js";import p from"./LoadManagementConfig-ad848400.js";import{_ as u,u as r,k as h,A as g,N as a,D as c,x as n}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";import"./OpenwbSortableList-641f6bb4.js";const f={name:"InstallAssistantStep7",mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],components:{InstallAssistantStepTemplate:m,LoadManagementConfigView:p},data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",8)},previousPage(){this.$emit("switchPage",6)},endAssistant(){this.$emit("endAssistant")}}},b=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),A=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),S=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),w=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. Externe 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),P=n("p",null,null,-1),_=n("p",{class:"font-weight-bold"}," Änderungen werden nur bei klicken auf Speichern wirksam! ",-1);function k(t,e,v,V,x,i){const o=r("LoadManagementConfigView"),d=r("InstallAssistantStepTemplate");return h(),g(d,{title:"6. Konfiguration des Lastmanagements",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[b,A,S,w,P,_]),content:a(()=>[c(o,{installAssistantActive:!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(f,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep7.vue"]]);export{N as default}; +import{C as l}from"./index-88a2073c.js";import m from"./InstallAssistantStepTemplate-0f7d9f62.js";import p from"./LoadManagementConfig-380e9c4d.js";import{_ as u,u as r,k as h,A as g,N as a,D as c,x as n}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";import"./OpenwbSortableList-641f6bb4.js";const f={name:"InstallAssistantStep7",mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],components:{InstallAssistantStepTemplate:m,LoadManagementConfigView:p},data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",8)},previousPage(){this.$emit("switchPage",6)},endAssistant(){this.$emit("endAssistant")}}},b=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),A=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),S=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),w=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. Externe 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),P=n("p",null,null,-1),_=n("p",{class:"font-weight-bold"}," Änderungen werden nur bei klicken auf Speichern wirksam! ",-1);function k(t,e,v,V,x,i){const o=r("LoadManagementConfigView"),d=r("InstallAssistantStepTemplate");return h(),g(d,{title:"6. Konfiguration des Lastmanagements",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[b,A,S,w,P,_]),content:a(()=>[c(o,{installAssistantActive:!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(f,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep7.vue"]]);export{N as default}; diff --git a/web/settings/assets/InstallAssistantStep8-e7350c4d.js b/web/settings/assets/InstallAssistantStep8-86a4cd0e.js similarity index 93% rename from web/settings/assets/InstallAssistantStep8-e7350c4d.js rename to web/settings/assets/InstallAssistantStep8-86a4cd0e.js index 6a6ef2130b..462031a697 100644 --- a/web/settings/assets/InstallAssistantStep8-e7350c4d.js +++ b/web/settings/assets/InstallAssistantStep8-86a4cd0e.js @@ -1 +1 @@ -import{C as l}from"./index-ba5cf04c.js";import u from"./InstallAssistantStepTemplate-e18733fc.js";import m from"./VehicleConfig-c67651ce.js";import{_ as h,u as r,k as g,A as p,N as a,D as c,x as n}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";import"./dynamic-import-helper-be004503.js";const f={name:"InstallAssistantStep8",mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],components:{InstallAssistantStepTemplate:u,VehicleConfigView:m},data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",9)},previousPage(){this.$emit("switchPage",7)},endAssistant(){this.$emit("endAssistant")}}},z=n("p",null," Vor dem eigentlichen Fahrzeug werden zuerst die Fahrzeug- und Lade-Profile konfiguriert. ",-1),P=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),w=n("p",{class:"font-weight-bold"},' Wichtig: Die "Angaben zur Handhabung von Phasen" des Fahrzeugs ist richtig einzutragen! ',-1),A=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),v=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),F=n("p",{class:"font-weight-bold"}," Änderungen werden nur bei klicken auf Speichern wirksam! ",-1);function _(t,e,S,b,V,i){const o=r("VehicleConfigView"),d=r("InstallAssistantStepTemplate");return g(),p(d,{title:"7. Einrichten der Fahrzeuge",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[z,P,w,A,v,F]),content:a(()=>[c(o,{installAssistantActive:!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=h(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep8.vue"]]);export{T as default}; +import{C as l}from"./index-88a2073c.js";import u from"./InstallAssistantStepTemplate-0f7d9f62.js";import m from"./VehicleConfig-99736f29.js";import{_ as h,u as r,k as g,A as p,N as a,D as c,x as n}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";import"./dynamic-import-helper-be004503.js";const f={name:"InstallAssistantStep8",mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],components:{InstallAssistantStepTemplate:u,VehicleConfigView:m},data:()=>({mqttTopicsToSubscribe:[]}),methods:{nextPage(){this.$emit("switchPage",9)},previousPage(){this.$emit("switchPage",7)},endAssistant(){this.$emit("endAssistant")}}},z=n("p",null," Vor dem eigentlichen Fahrzeug werden zuerst die Fahrzeug- und Lade-Profile konfiguriert. ",-1),P=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),w=n("p",{class:"font-weight-bold"},' Wichtig: Die "Angaben zur Handhabung von Phasen" des Fahrzeugs ist richtig einzutragen! ',-1),A=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),v=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),F=n("p",{class:"font-weight-bold"}," Änderungen werden nur bei klicken auf Speichern wirksam! ",-1);function _(t,e,S,b,V,i){const o=r("VehicleConfigView"),d=r("InstallAssistantStepTemplate");return g(),p(d,{title:"7. Einrichten der Fahrzeuge",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[z,P,w,A,v,F]),content:a(()=>[c(o,{installAssistantActive:!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=h(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep8.vue"]]);export{T as default}; diff --git a/web/settings/assets/InstallAssistantStep9-ac8d21eb.js b/web/settings/assets/InstallAssistantStep9-4da82ba8.js similarity index 91% rename from web/settings/assets/InstallAssistantStep9-ac8d21eb.js rename to web/settings/assets/InstallAssistantStep9-4da82ba8.js index 25fb00005d..973c4a196d 100644 --- a/web/settings/assets/InstallAssistantStep9-ac8d21eb.js +++ b/web/settings/assets/InstallAssistantStep9-4da82ba8.js @@ -1 +1 @@ -import{C as l}from"./index-ba5cf04c.js";import p from"./InstallAssistantStepTemplate-e18733fc.js";import u from"./DataManagement-8e5bac9a.js";import{_ as d,u as i,k as g,A as c,N as o,D as f,x as a}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";import"./dynamic-import-helper-be004503.js";const h={name:"InstallAssistantStep9",mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],components:{InstallAssistantStepTemplate:p,DataManagement:u},data:()=>({mqttTopicsToSubscribe:["openWB/general/extern"]}),computed:{stepNumber(){return this.$store.state.mqtt["openWB/general/extern"]?5:8}},methods:{nextPage(){this.$emit("switchPage",10)},previousPage(){this.$emit("switchPage",this.$store.state.mqtt["openWB/general/extern"]?4:8)},endAssistant(){this.$emit("endAssistant")}}},v=a("p",null," Wir empfehlen an dieser Stelle eine Sicherung der openWB zu erzeugen. ",-1),A=a("p",null," Dieser Vorgang sollte regelmäßig durchgeführt werden, um gegebenenfalls auf eine ältere Konfiguration zurückgreifen zu können. ",-1),S=a("p",null,' Die Sicherung kann automatisiert durch die openWB auf einem Cloud-Dienst gespeichert werden. Dazu bitte im unteren Bereich "Backup-Cloud" die entsprechenden Einstellungen vornehmen. ',-1);function P(t,e,$,B,_,n){const r=i("DataManagement"),m=i("InstallAssistantStepTemplate");return g(),c(m,{title:`${n.stepNumber}. Datensicherung - Eine Sicherung erstellen`,onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>[v,A,S]),content:o(()=>[f(r,{installAssistantActive:!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 T=d(h,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep9.vue"]]);export{T as default}; +import{C as l}from"./index-88a2073c.js";import p from"./InstallAssistantStepTemplate-0f7d9f62.js";import u from"./DataManagement-f4b0feef.js";import{_ as d,u as i,k as g,A as c,N as o,D as f,x as a}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";import"./dynamic-import-helper-be004503.js";const h={name:"InstallAssistantStep9",mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],components:{InstallAssistantStepTemplate:p,DataManagement:u},data:()=>({mqttTopicsToSubscribe:["openWB/general/extern"]}),computed:{stepNumber(){return this.$store.state.mqtt["openWB/general/extern"]?5:8}},methods:{nextPage(){this.$emit("switchPage",10)},previousPage(){this.$emit("switchPage",this.$store.state.mqtt["openWB/general/extern"]?4:8)},endAssistant(){this.$emit("endAssistant")}}},v=a("p",null," Wir empfehlen an dieser Stelle eine Sicherung der openWB zu erzeugen. ",-1),A=a("p",null," Dieser Vorgang sollte regelmäßig durchgeführt werden, um gegebenenfalls auf eine ältere Konfiguration zurückgreifen zu können. ",-1),S=a("p",null,' Die Sicherung kann automatisiert durch die openWB auf einem Cloud-Dienst gespeichert werden. Dazu bitte im unteren Bereich "Backup-Cloud" die entsprechenden Einstellungen vornehmen. ',-1);function P(t,e,$,B,_,n){const r=i("DataManagement"),m=i("InstallAssistantStepTemplate");return g(),c(m,{title:`${n.stepNumber}. Datensicherung - Eine Sicherung erstellen`,onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>[v,A,S]),content:o(()=>[f(r,{installAssistantActive:!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 T=d(h,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep9.vue"]]);export{T as default}; diff --git a/web/settings/assets/InstallAssistantStepTemplate-e18733fc.js b/web/settings/assets/InstallAssistantStepTemplate-0f7d9f62.js similarity index 97% rename from web/settings/assets/InstallAssistantStepTemplate-e18733fc.js rename to web/settings/assets/InstallAssistantStepTemplate-0f7d9f62.js index bf781adef7..2dd0aa7722 100644 --- a/web/settings/assets/InstallAssistantStepTemplate-e18733fc.js +++ b/web/settings/assets/InstallAssistantStepTemplate-0f7d9f62.js @@ -1 +1 @@ -import{C as v}from"./index-ba5cf04c.js";import{l as g,ak as h,al as w,F as y}from"./vendor-fortawesome-71546160.js";import{_ as x,u as r,k as i,l,D as s,N as n,x as o,y as p,B as _,m as f,S as k,U as B}from"./vendor-f2b8aa6f.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const S="/openWB/web/settings/img/openWB_logo_light.png";g.add(h,w);const A={name:"InstallAssistantStepTemplate",mixins:[v],emits:["previousPage","nextPage","endAssistant"],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}},components:{FontAwesomeIcon:y},methods:{nextPage(){window.scrollTo(0,0),this.$emit("nextPage")},previousPage(){window.scrollTo(0,0),this.$emit("previousPage")},endAssistant(){this.$emit("endAssistant")}}},C=e=>(k("data-v-db9e78cb"),e=e(),B(),e),P={class:"row justify-content-center mb-1"},I={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},N={key:1,class:"col-md-4 d-flex py-1 justify-content-center"},T={key:2,class:"col-md-4 d-flex py-1 justify-content-center"},$={class:"row justify-content-center"},j={class:"page-help-text col-md-3 py-2"},W=C(()=>o("img",{src:S,alt:"openWB Logo",class:"w-100"},null,-1)),q={class:"col py-2"};function V(e,t,a,E,F,d){const u=r("font-awesome-icon"),c=r("openwb-base-click-button"),b=r("openwb-base-card");return i(),l("div",null,[s(b,{title:a.title,class:"p-0 mx-3"},{footer:n(()=>[o("div",P,[a.hidePrevious?_("",!0):(i(),l("div",I,[s(c,{class:"btn-block btn-warning",onButtonClicked:t[0]||(t[0]=m=>d.previousPage())},{default:n(()=>[s(u,{"fixed-width":"",icon:["fas","caret-left"]}),p(" Zurück ")]),_:1})])),a.hideNext?_("",!0):(i(),l("div",N,[s(c,{class:"btn-block btn-success",onButtonClicked:t[1]||(t[1]=m=>d.nextPage())},{default:n(()=>[p(" Weiter "),s(u,{"fixed-width":"",icon:["fas","caret-right"]})]),_:1})])),a.hideEnd?_("",!0):(i(),l("div",T,[s(c,{class:"btn-block btn-danger",onButtonClicked:t[2]||(t[2]=m=>d.endAssistant())},{default:n(()=>[p(" Assistent beenden ")]),_:1})]))])]),default:n(()=>[o("div",$,[o("div",j,[f(e.$slots,"help",{},()=>[W],!0)]),o("div",q,[f(e.$slots,"content",{},void 0,!0)])])]),_:3},8,["title"])])}const H=x(A,[["render",V],["__scopeId","data-v-db9e78cb"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStepTemplate.vue"]]);export{H as default}; +import{C as v}from"./index-88a2073c.js";import{l as g,ak as h,al as w,F as y}from"./vendor-fortawesome-71546160.js";import{_ as x,u as r,k as i,l,D as s,N as n,x as o,y as p,B as _,m as f,S as k,U as B}from"./vendor-f2b8aa6f.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const S="/openWB/web/settings/img/openWB_logo_light.png";g.add(h,w);const A={name:"InstallAssistantStepTemplate",mixins:[v],emits:["previousPage","nextPage","endAssistant"],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}},components:{FontAwesomeIcon:y},methods:{nextPage(){window.scrollTo(0,0),this.$emit("nextPage")},previousPage(){window.scrollTo(0,0),this.$emit("previousPage")},endAssistant(){this.$emit("endAssistant")}}},C=e=>(k("data-v-db9e78cb"),e=e(),B(),e),P={class:"row justify-content-center mb-1"},I={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},N={key:1,class:"col-md-4 d-flex py-1 justify-content-center"},T={key:2,class:"col-md-4 d-flex py-1 justify-content-center"},$={class:"row justify-content-center"},j={class:"page-help-text col-md-3 py-2"},W=C(()=>o("img",{src:S,alt:"openWB Logo",class:"w-100"},null,-1)),q={class:"col py-2"};function V(e,t,a,E,F,d){const u=r("font-awesome-icon"),c=r("openwb-base-click-button"),b=r("openwb-base-card");return i(),l("div",null,[s(b,{title:a.title,class:"p-0 mx-3"},{footer:n(()=>[o("div",P,[a.hidePrevious?_("",!0):(i(),l("div",I,[s(c,{class:"btn-block btn-warning",onButtonClicked:t[0]||(t[0]=m=>d.previousPage())},{default:n(()=>[s(u,{"fixed-width":"",icon:["fas","caret-left"]}),p(" Zurück ")]),_:1})])),a.hideNext?_("",!0):(i(),l("div",N,[s(c,{class:"btn-block btn-success",onButtonClicked:t[1]||(t[1]=m=>d.nextPage())},{default:n(()=>[p(" Weiter "),s(u,{"fixed-width":"",icon:["fas","caret-right"]})]),_:1})])),a.hideEnd?_("",!0):(i(),l("div",T,[s(c,{class:"btn-block btn-danger",onButtonClicked:t[2]||(t[2]=m=>d.endAssistant())},{default:n(()=>[p(" Assistent beenden ")]),_:1})]))])]),default:n(()=>[o("div",$,[o("div",j,[f(e.$slots,"help",{},()=>[W],!0)]),o("div",q,[f(e.$slots,"content",{},void 0,!0)])])]),_:3},8,["title"])])}const H=x(A,[["render",V],["__scopeId","data-v-db9e78cb"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStepTemplate.vue"]]);export{H as default}; diff --git a/web/settings/assets/InstantChargeConfig-252a508f.js b/web/settings/assets/InstantChargeConfig-17057c0d.js similarity index 96% rename from web/settings/assets/InstantChargeConfig-252a508f.js rename to web/settings/assets/InstantChargeConfig-17057c0d.js index 22bafa5227..932f544d07 100644 --- a/web/settings/assets/InstantChargeConfig-252a508f.js +++ b/web/settings/assets/InstantChargeConfig-17057c0d.js @@ -1 +1 @@ -import{C as l}from"./index-ba5cf04c.js";import{_,u as o,k as a,l as i,x as b,D as s,N as r,y as u}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const h={name:"OpenwbInstantChargeConfigView",mixins:[l],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/chargemode_config/instant_charging/phases_to_use"]}}},c={class:"instantChargeConfig"},f={name:"instantChargeConfigForm"},v={key:0},w={key:1};function C(t,e,$,B,k,V){const p=o("openwb-base-alert"),m=o("openwb-base-button-group-input"),g=o("openwb-base-card"),d=o("openwb-base-submit-buttons");return a(),i("div",c,[b("form",f,[s(g,{title:"Phasenumschaltung"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),i("div",v,[s(p,{subtype:"info"},{default:r(()=>[u(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(a(),i("div",w,[s(m,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/instant_charging/phases_to_use"],"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateState("openWB/general/chargemode_config/instant_charging/phases_to_use",n))},{help:r(()=>[u(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Sofortladen" mit nur 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},8,["model-value"])]))]),_:1}),s(d,{formName:"instantChargeConfigForm",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"))})])])}const D=_(h,[["render",C],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/InstantChargeConfig.vue"]]);export{D as default}; +import{C as l}from"./index-88a2073c.js";import{_,u as o,k as a,l as i,x as b,D as s,N as r,y as u}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const h={name:"OpenwbInstantChargeConfigView",mixins:[l],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/chargemode_config/instant_charging/phases_to_use"]}}},c={class:"instantChargeConfig"},f={name:"instantChargeConfigForm"},v={key:0},w={key:1};function C(t,e,$,B,k,V){const p=o("openwb-base-alert"),m=o("openwb-base-button-group-input"),g=o("openwb-base-card"),d=o("openwb-base-submit-buttons");return a(),i("div",c,[b("form",f,[s(g,{title:"Phasenumschaltung"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),i("div",v,[s(p,{subtype:"info"},{default:r(()=>[u(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(a(),i("div",w,[s(m,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/instant_charging/phases_to_use"],"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateState("openWB/general/chargemode_config/instant_charging/phases_to_use",n))},{help:r(()=>[u(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Sofortladen" mit nur 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},8,["model-value"])]))]),_:1}),s(d,{formName:"instantChargeConfigForm",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"))})])])}const D=_(h,[["render",C],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/InstantChargeConfig.vue"]]);export{D as default}; diff --git a/web/settings/assets/LegalSettings-f66efb7a.js b/web/settings/assets/LegalSettings-7d6a7592.js similarity index 97% rename from web/settings/assets/LegalSettings-f66efb7a.js rename to web/settings/assets/LegalSettings-7d6a7592.js index e6cec05eab..4bbdcdaad2 100644 --- a/web/settings/assets/LegalSettings-f66efb7a.js +++ b/web/settings/assets/LegalSettings-7d6a7592.js @@ -1 +1 @@ -import{l as f,a3 as k,F as h}from"./vendor-fortawesome-71546160.js";import{C as y}from"./index-ba5cf04c.js";import{_ as v,u as n,k as r,l as B,x as i,D as o,N as a,A as m,y as d,B as c}from"./vendor-f2b8aa6f.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";f.add(k);const S={name:"OpenwbDataProtectionView",components:{FontAwesomeIcon:h},mixins:[y],emits:["sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/system/dataprotection_acknowledged"]}},methods:{sendSystemCommand(t,e={}){this.$emit("sendCommand",{command:t,data:e})}}},$={class:"dataProtection"},z={name:"dataProtectionForm"},C=i("iframe",{src:"dataProtection-usageTerms.html",width:"100%",height:"400px",class:"bg-light"},null,-1),V=i("hr",null,null,-1),W={class:"row justify-content-center"},N={class:"col-md-4 d-flex justify-content-center"};function x(t,e,A,D,P,p){const u=n("openwb-base-button-group-input"),b=n("font-awesome-icon"),_=n("openwb-base-click-button"),l=n("openwb-base-alert"),g=n("openwb-base-submit-buttons"),w=n("openwb-base-card");return r(),B("div",$,[i("form",z,[o(w,{title:"Nutzungsbedingungen & Datenschutzerklärung"},{footer:a(()=>[o(g,{formName:"dataProtectionForm",hideReset:!0,hideDefaults:!0,onSave:e[3]||(e[3]=s=>t.$emit("save"))})]),default:a(()=>[C,V,o(u,{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"]?c("",!0):(r(),m(l,{key:0,subtype:"danger",class:"mb-1"},{default:a(()=>[d(" Sie müssen die Nutzungsbedingungen akzeptieren, bevor openWB eingesetzt werden kann. "),i("div",W,[i("div",N,[o(_,{class:"btn-danger",onButtonClicked:e[1]||(e[1]=s=>p.sendSystemCommand("systemShutdown"))},{default:a(()=>[d(" Nicht akzeptieren und ausschalten "),o(b,{"fixed-width":"",icon:["fas","power-off"]})]),_:1})])])]),_:1})),o(u,{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"]?c("",!0):(r(),m(l,{key:1,subtype:"warning"},{default:a(()=>[d(" Wenn sie nicht einwilligen, 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})])])}const U=v(S,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LegalSettings.vue"]]);export{U as default}; +import{l as f,a3 as k,F as h}from"./vendor-fortawesome-71546160.js";import{C as y}from"./index-88a2073c.js";import{_ as v,u as n,k as r,l as B,x as i,D as o,N as a,A as m,y as d,B as c}from"./vendor-f2b8aa6f.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";f.add(k);const S={name:"OpenwbDataProtectionView",components:{FontAwesomeIcon:h},mixins:[y],emits:["sendCommand"],data(){return{mqttTopicsToSubscribe:["openWB/system/dataprotection_acknowledged"]}},methods:{sendSystemCommand(t,e={}){this.$emit("sendCommand",{command:t,data:e})}}},$={class:"dataProtection"},z={name:"dataProtectionForm"},C=i("iframe",{src:"dataProtection-usageTerms.html",width:"100%",height:"400px",class:"bg-light"},null,-1),V=i("hr",null,null,-1),W={class:"row justify-content-center"},N={class:"col-md-4 d-flex justify-content-center"};function x(t,e,A,D,P,p){const u=n("openwb-base-button-group-input"),b=n("font-awesome-icon"),_=n("openwb-base-click-button"),l=n("openwb-base-alert"),g=n("openwb-base-submit-buttons"),w=n("openwb-base-card");return r(),B("div",$,[i("form",z,[o(w,{title:"Nutzungsbedingungen & Datenschutzerklärung"},{footer:a(()=>[o(g,{formName:"dataProtectionForm",hideReset:!0,hideDefaults:!0,onSave:e[3]||(e[3]=s=>t.$emit("save"))})]),default:a(()=>[C,V,o(u,{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"]?c("",!0):(r(),m(l,{key:0,subtype:"danger",class:"mb-1"},{default:a(()=>[d(" Sie müssen die Nutzungsbedingungen akzeptieren, bevor openWB eingesetzt werden kann. "),i("div",W,[i("div",N,[o(_,{class:"btn-danger",onButtonClicked:e[1]||(e[1]=s=>p.sendSystemCommand("systemShutdown"))},{default:a(()=>[d(" Nicht akzeptieren und ausschalten "),o(b,{"fixed-width":"",icon:["fas","power-off"]})]),_:1})])])]),_:1})),o(u,{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"]?c("",!0):(r(),m(l,{key:1,subtype:"warning"},{default:a(()=>[d(" Wenn sie nicht einwilligen, 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})])])}const U=v(S,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LegalSettings.vue"]]);export{U as default}; diff --git a/web/settings/assets/LoadManagementConfig-380e9c4d.js b/web/settings/assets/LoadManagementConfig-380e9c4d.js new file mode 100644 index 0000000000..f47d2c451b --- /dev/null +++ b/web/settings/assets/LoadManagementConfig-380e9c4d.js @@ -0,0 +1 @@ +import{l as z,O as C,N as x,F as L}from"./vendor-fortawesome-71546160.js";import{C as V}from"./index-88a2073c.js";import{S as $}from"./OpenwbSortableList-641f6bb4.js";import{_ as Z,u as l,k as u,l as m,x as d,D as s,N as i,y as r,J as _,K as w,A as v,z as W}from"./vendor-f2b8aa6f.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";z.add(C,x);const q={name:"OpenwbLoadManagementConfigView",mixins:[V],emits:["sendCommand"],components:{SortableList:$,FontAwesomeIcon:L},props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},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_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 e=this.getWildcardTopics("openWB/system/device/+/component/+/config");return Object.keys(e).filter(t=>e[t].type.includes("counter")).reduce((t,o)=>({...t,[o]:e[o]}),{})}},counterOptions(){var e=[];for(const t of Object.values(this.componentConfigurations))this.isComponentType(t.type,"counter")&&e.push({value:t.id,text:t.name});return e.sort((t,o)=>t.text==o.text?0:t.text>o.text?1:-1)},inverterConfigs:{get(){let e=this.getWildcardTopics("openWB/system/device/+/component/+/config");return Object.keys(e).filter(t=>e[t].type.includes("inverter")).reduce((t,o)=>({...t,[o]:e[o]}),{})}},hierarchyLabels:{get(){let e={};for(const t of Object.values(this.$store.state.mqtt["openWB/counter/get/hierarchy"]))e={...e,...this.getElementTreeNames(t)};return e}},getHcSourceIdOptions(){let e=[{value:null,text:"von openWB berechnen"}],t=[{label:"Eingerichtete Zähler-Komponenten",options:[...this.counterOptions]}];return{options:e,groups:t}}},methods:{getElementTreeNames(e){let t={};if(e.type=="cp"){let o=this.getChargePoint(e.id);o&&(t[e.id]=o.name)}else{let o=this.getComponent(e.id);o&&(t[e.id]=o.name)}return e.children.forEach(o=>{t={...t,...this.getElementTreeNames(o)}}),t},getComponent(e){let t;return Object.keys(this.$store.state.mqtt).forEach(o=>{o.match("^openWB/system/device/[0-9]+/component/"+e+"/config$")&&(t=this.$store.state.mqtt[o])}),t},getChargePoint(e){let t;return Object.keys(this.$store.state.mqtt).forEach(o=>{o.match("^openWB/chargepoint/"+e+"/config$")&&(t=this.$store.state.mqtt[o])}),t},isComponentType(e,t){return e.split("_").includes(t)}}},M={class:"loadManagementConfig"},A={name:"loadManagementConfigForm"},U={key:0},D={key:1},E=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),O=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),F=d("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"}," Wiki ",-1),H=d("br",null,null,-1),N={key:0},P={key:1},T=d("br",null,null,-1),j=d("br",null,null,-1),K=d("br",null,null,-1);function I(e,t,o,R,G,c){const h=l("openwb-base-alert"),k=l("openwb-base-button-group-input"),B=l("openwb-base-select-input"),f=l("openwb-base-heading"),b=l("font-awesome-icon"),p=l("openwb-base-number-input"),g=l("openwb-base-card"),S=l("sortable-list"),y=l("openwb-base-submit-buttons");return u(),m("div",M,[d("form",A,[s(g,{title:"Einstellungen",collapsible:!0,collapsed:!1},{default:i(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(u(),m("div",U,[s(h,{subtype:"info"},{default:i(()=>[r(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(u(),m("div",D,[s(k,{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":e.$store.state.mqtt["openWB/counter/config/consider_less_charging"],"onUpdate:modelValue":t[0]||(t[0]=n=>e.updateState("openWB/counter/config/consider_less_charging",n))},{help:i(()=>[E,O]),_:1},8,["model-value"]),s(B,{title:"Hausverbrauch",options:c.getHcSourceIdOptions.options,groups:c.getHcSourceIdOptions.groups,"model-value":e.$store.state.mqtt["openWB/counter/config/home_consumption_source_id"],"onUpdate:modelValue":t[1]||(t[1]=n=>e.updateState("openWB/counter/config/home_consumption_source_id",n))},{help:i(()=>[r(" 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 "),F,r(" beschrieben anordnen und hier den Hausverbrauchszähler auswählen. Dann wird dieser Wert abzüglich der Ladeleistung als Hausverbrauch erfasst. ")]),_:1},8,["options","groups","model-value"]),s(f,null,{default:i(()=>[r(" Vorhandene Zählermodule ")]),_:1}),s(h,{subtype:"info"},{default:i(()=>[r(" 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."),H,r(" Überlicherweise sind Hausanschlüsse mit 24kW und 3*35A bzw. 43kW und 3*63A abgesichert. ")]),_:1}),(u(!0),m(_,null,w(c.counterConfigs,n=>(u(),v(g,{key:n.id,collapsible:!0,collapsed:!0,subtype:"danger"},{header:i(()=>[s(b,{"fixed-width":"",icon:["fas","gauge-high"]}),r(" "+W(n.name),1)]),default:i(()=>[s(p,{title:"Maximale Leistung",min:1,step:1,unit:"kW","model-value":e.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_total_power"]/1e3,"onUpdate:modelValue":a=>e.updateState("openWB/counter/"+n.id+"/config/max_total_power",a*1e3)},{help:i(()=>[r(" Maximal zulässige Leistung für diesen (Zwischen-)Zähler. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximaler Strom L1",min:16,step:1,unit:"A","model-value":e.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_currents"][0],"onUpdate:modelValue":a=>e.updateState("openWB/counter/"+n.id+"/config/max_currents",a,"0")},{help:i(()=>[r(" Maximal zulässiger Strom für die Phase 1 dieses (Zwischen-)Zählers. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximaler Strom L2",min:16,step:1,unit:"A","model-value":e.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_currents"][1],"onUpdate:modelValue":a=>e.updateState("openWB/counter/"+n.id+"/config/max_currents",a,"1")},{help:i(()=>[r(" Maximal zulässiger Strom für die Phase 2 dieses (Zwischen-)Zählers. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),s(p,{title:"Maximaler Strom L3",min:16,step:1,unit:"A","model-value":e.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_currents"][2],"onUpdate:modelValue":a=>e.updateState("openWB/counter/"+n.id+"/config/max_currents",a,"2")},{help:i(()=>[r(" Maximal zulässiger Strom für die Phase 3 dieses (Zwischen-)Zählers. ")]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1024))),128)),s(f,null,{default:i(()=>[r(" Vorhandene Wechselrichtermodule ")]),_:1}),(u(!0),m(_,null,w(c.inverterConfigs,n=>(u(),v(g,{key:n.id,collapsible:!0,collapsed:!0,subtype:"success"},{header:i(()=>[s(b,{"fixed-width":"",icon:["fas","solar-panel"]}),r(" "+W(n.name),1)]),default:i(()=>[s(p,{title:"Maximale Ausgangsleistung des Wechselrichters",min:0,step:.1,unit:"kW","model-value":e.$store.state.mqtt["openWB/pv/"+n.id+"/config/max_ac_out"]/1e3,"onUpdate:modelValue":a=>e.updateState("openWB/pv/"+n.id+"/config/max_ac_out",a*1e3)},{help:i(()=>[r(" Relevant bei Hybrid-Systemen mit DC-Speicher. ")]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1024))),128))]))]),_:1}),s(g,{title:"Struktur",collapsible:!0,collapsed:!0},{default:i(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(u(),m("div",N,[s(h,{subtype:"info"},{default:i(()=>[r(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(u(),m("div",P,[s(S,{title:"Anordnung der Komponenten","model-value":e.$store.state.mqtt["openWB/counter/get/hierarchy"],"onUpdate:modelValue":t[2]||(t[2]=n=>e.updateState("openWB/counter/get/hierarchy",n)),labels:c.hierarchyLabels},{help:i(()=>[r(" Durch die Anordnung der Komponenten werden Abhängigkeiten abgebildet."),T,r(" An erster Stelle muss eine Zählerkomponente stehen, die den Netzanschlusspunkt erfasst. Dafür kann auch ein virtueller Zähler genutzt werden."),j,r(" Die weiteren Komponenten müssen hierarchisch so angeordnet werden, wie sie auch physisch im Stromnetz angeschlossen werden."),K,r(" 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},8,["model-value","labels"])]))]),_:1}),s(y,{formName:"loadManagementConfigForm",onSave:t[3]||(t[3]=n=>e.$emit("save")),onReset:t[4]||(t[4]=n=>e.$emit("reset")),onDefaults:t[5]||(t[5]=n=>e.$emit("defaults"))})])])}const ie=Z(q,[["render",I],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LoadManagementConfig.vue"]]);export{ie as default}; diff --git a/web/settings/assets/LoadManagementConfig-ad848400.js b/web/settings/assets/LoadManagementConfig-ad848400.js deleted file mode 100644 index 435a214561..0000000000 --- a/web/settings/assets/LoadManagementConfig-ad848400.js +++ /dev/null @@ -1 +0,0 @@ -import{l as z,O as C,N as x,F as L}from"./vendor-fortawesome-71546160.js";import{C as V}from"./index-ba5cf04c.js";import{S as $}from"./OpenwbSortableList-641f6bb4.js";import{_ as Z,u as l,k as u,l as m,x as d,D as r,N as i,y as s,J as _,K as w,A as v,z as W}from"./vendor-f2b8aa6f.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";z.add(C,x);const q={name:"OpenwbLoadManagementConfigView",mixins:[V],emits:["sendCommand"],components:{SortableList:$,FontAwesomeIcon:L},props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},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_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 e=this.getWildcardTopics("openWB/system/device/+/component/+/config");return Object.keys(e).filter(t=>e[t].type.includes("counter")).reduce((t,o)=>({...t,[o]:e[o]}),{})}},counterOptions(){var e=[];for(const t of Object.values(this.componentConfigurations))this.isComponentType(t.type,"counter")&&e.push({value:t.id,text:t.name});return e.sort((t,o)=>t.text==o.text?0:t.text>o.text?1:-1)},inverterConfigs:{get(){let e=this.getWildcardTopics("openWB/system/device/+/component/+/config");return Object.keys(e).filter(t=>e[t].type.includes("inverter")).reduce((t,o)=>({...t,[o]:e[o]}),{})}},hierarchyLabels:{get(){let e={};for(const t of Object.values(this.$store.state.mqtt["openWB/counter/get/hierarchy"]))e={...e,...this.getElementTreeNames(t)};return e}},getHcSourceIdOptions(){let e=[{value:null,text:"von openWB berechnen"}],t=[{label:"Eingerichtete Zähler-Komponenten",options:[...this.counterOptions]}];return{options:e,groups:t}}},methods:{getElementTreeNames(e){let t={};if(e.type=="cp"){let o=this.getChargePoint(e.id);o&&(t[e.id]=o.name)}else{let o=this.getComponent(e.id);o&&(t[e.id]=o.name)}return e.children.forEach(o=>{t={...t,...this.getElementTreeNames(o)}}),t},getComponent(e){let t;return Object.keys(this.$store.state.mqtt).forEach(o=>{o.match("^openWB/system/device/[0-9]+/component/"+e+"/config$")&&(t=this.$store.state.mqtt[o])}),t},getChargePoint(e){let t;return Object.keys(this.$store.state.mqtt).forEach(o=>{o.match("^openWB/chargepoint/"+e+"/config$")&&(t=this.$store.state.mqtt[o])}),t},isComponentType(e,t){return e.split("_").includes(t)}}},M={class:"loadManagementConfig"},A={name:"loadManagementConfigForm"},U={key:0},D={key:1},E=d("p",null," Wenn angesteckte Fahrzeuge, die nicht ode 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),O=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),F=d("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"}," Wiki ",-1),H=d("br",null,null,-1),N={key:0},P={key:1},T=d("br",null,null,-1),j=d("br",null,null,-1),K=d("br",null,null,-1);function I(e,t,o,R,G,c){const h=l("openwb-base-alert"),k=l("openwb-base-button-group-input"),B=l("openwb-base-select-input"),f=l("openwb-base-heading"),b=l("font-awesome-icon"),p=l("openwb-base-number-input"),g=l("openwb-base-card"),S=l("sortable-list"),y=l("openwb-base-submit-buttons");return u(),m("div",M,[d("form",A,[r(g,{title:"Einstellungen",collapsible:!0,collapsed:!1},{default:i(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(u(),m("div",U,[r(h,{subtype:"info"},{default:i(()=>[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(u(),m("div",D,[r(k,{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":e.$store.state.mqtt["openWB/counter/config/consider_less_charging"],"onUpdate:modelValue":t[0]||(t[0]=n=>e.updateState("openWB/counter/config/consider_less_charging",n))},{help:i(()=>[E,O]),_:1},8,["model-value"]),r(B,{title:"Hausverbrauch",options:c.getHcSourceIdOptions.options,groups:c.getHcSourceIdOptions.groups,"model-value":e.$store.state.mqtt["openWB/counter/config/home_consumption_source_id"],"onUpdate:modelValue":t[1]||(t[1]=n=>e.updateState("openWB/counter/config/home_consumption_source_id",n))},{help:i(()=>[s(" 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 "),F,s(" beschrieben anordnen und hier den Hausverbrauchszähler auswählen. Dann wird dieser Wert abzüglich der Ladeleistung als Hausverbrauch erfasst. ")]),_:1},8,["options","groups","model-value"]),r(f,null,{default:i(()=>[s(" Vorhandene Zählermodule ")]),_:1}),r(h,{subtype:"info"},{default:i(()=>[s(" 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."),H,s(" Überlicherweise sind Hausanschlüsse mit 24kW und 3*35A bzw. 43kW und 3*63A abgesichert. ")]),_:1}),(u(!0),m(_,null,w(c.counterConfigs,n=>(u(),v(g,{key:n.id,collapsible:!0,collapsed:!0,subtype:"danger"},{header:i(()=>[r(b,{"fixed-width":"",icon:["fas","gauge-high"]}),s(" "+W(n.name),1)]),default:i(()=>[r(p,{title:"Maximale Leistung",min:1,step:1,unit:"kW","model-value":e.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_total_power"]/1e3,"onUpdate:modelValue":a=>e.updateState("openWB/counter/"+n.id+"/config/max_total_power",a*1e3)},{help:i(()=>[s(" Maximal zulässige Leistung für diesen (Zwischen-)Zähler. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),r(p,{title:"Maximaler Strom L1",min:16,step:1,unit:"A","model-value":e.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_currents"][0],"onUpdate:modelValue":a=>e.updateState("openWB/counter/"+n.id+"/config/max_currents",a,"0")},{help:i(()=>[s(" Maximal zulässiger Strom für die Phase 1 dieses (Zwischen-)Zählers. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),r(p,{title:"Maximaler Strom L2",min:16,step:1,unit:"A","model-value":e.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_currents"][1],"onUpdate:modelValue":a=>e.updateState("openWB/counter/"+n.id+"/config/max_currents",a,"1")},{help:i(()=>[s(" Maximal zulässiger Strom für die Phase 2 dieses (Zwischen-)Zählers. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),r(p,{title:"Maximaler Strom L3",min:16,step:1,unit:"A","model-value":e.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_currents"][2],"onUpdate:modelValue":a=>e.updateState("openWB/counter/"+n.id+"/config/max_currents",a,"2")},{help:i(()=>[s(" Maximal zulässiger Strom für die Phase 3 dieses (Zwischen-)Zählers. ")]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1024))),128)),r(f,null,{default:i(()=>[s(" Vorhandene Wechselrichtermodule ")]),_:1}),(u(!0),m(_,null,w(c.inverterConfigs,n=>(u(),v(g,{key:n.id,collapsible:!0,collapsed:!0,subtype:"success"},{header:i(()=>[r(b,{"fixed-width":"",icon:["fas","solar-panel"]}),s(" "+W(n.name),1)]),default:i(()=>[r(p,{title:"Maximale Ausgangsleistung des Wechselrichters",min:0,step:.1,unit:"kW","model-value":e.$store.state.mqtt["openWB/pv/"+n.id+"/config/max_ac_out"]/1e3,"onUpdate:modelValue":a=>e.updateState("openWB/pv/"+n.id+"/config/max_ac_out",a*1e3)},{help:i(()=>[s(" Relevant bei Hybrid-Systemen mit DC-Speicher. ")]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1024))),128))]))]),_:1}),r(g,{title:"Struktur",collapsible:!0,collapsed:!0},{default:i(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(u(),m("div",N,[r(h,{subtype:"info"},{default:i(()=>[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(u(),m("div",P,[r(S,{title:"Anordnung der Komponenten","model-value":e.$store.state.mqtt["openWB/counter/get/hierarchy"],"onUpdate:modelValue":t[2]||(t[2]=n=>e.updateState("openWB/counter/get/hierarchy",n)),labels:c.hierarchyLabels},{help:i(()=>[s(" Durch die Anordnung der Komponenten werden Abhängigkeiten abgebildet."),T,s(" An erster Stelle muss eine Zählerkomponente stehen, die den Netzanschlusspunkt erfasst. Dafür kann auch ein virtueller Zähler genutzt werden."),j,s(" Die weiteren Komponenten müssen hierarchisch so angeordnet werden, wie sie auch physisch im Stromnetz angeschlossen werden."),K,s(" 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},8,["model-value","labels"])]))]),_:1}),r(y,{formName:"loadManagementConfigForm",onSave:t[3]||(t[3]=n=>e.$emit("save")),onReset:t[4]||(t[4]=n=>e.$emit("reset")),onDefaults:t[5]||(t[5]=n=>e.$emit("defaults"))})])])}const ie=Z(q,[["render",I],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LoadManagementConfig.vue"]]);export{ie as default}; diff --git a/web/settings/assets/MqttBridgeConfig-a79c288e.js b/web/settings/assets/MqttBridgeConfig-b16c88cd.js similarity index 99% rename from web/settings/assets/MqttBridgeConfig-a79c288e.js rename to web/settings/assets/MqttBridgeConfig-b16c88cd.js index f43d71bfef..73ded8dae0 100644 --- a/web/settings/assets/MqttBridgeConfig-a79c288e.js +++ b/web/settings/assets/MqttBridgeConfig-b16c88cd.js @@ -1 +1 @@ -import{l as C,d as A,a0 as q,F as D}from"./vendor-fortawesome-71546160.js";import{C as z}from"./index-ba5cf04c.js";import{_ as I,u as r,k as m,l as c,D as n,N as o,x as b,J as M,y as s,z as y,A as T,B as S,K as W,S as E,U as N}from"./vendor-f2b8aa6f.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";C.add(A,q);const P={name:"OpenwbMqttBridgeConfigurationView",mixins:[z],emits:["sendCommand"],components:{FontAwesomeIcon:D},data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/mqtt/bridge/+"],showMqttBridgeModal:!1,modalMqttBridgeIndex:void 0}},computed:{configuredMqttBridges:{get(){let e=this.getWildcardTopics("openWB/system/mqtt/bridge/+");for(const[u,g]of Object.entries(e))g.remote.is_openwb_cloud&&delete e[u];return e}}},methods:{addMqttBridge(e){e.stopPropagation(),this.$emit("sendCommand",{command:"addMqttBridge",data:{}})},getMqttBridgeIndex(e){return parseInt(e.match(/(?:\/)(\d+)$/)[1])},removeMqttBridgeModal(e,u){u.stopPropagation(),this.modalMqttBridgeIndex=this.getMqttBridgeIndex(e),this.showMqttBridgeModal=!0},removeMqttBridge(e,u){this.showMqttBridgeModal=!1,u=="confirm"&&(console.info("request removal of mqtt bridge '"+e+"'"),this.$emit("sendCommand",{command:"removeMqttBridge",data:{bridge:e}}))},getMqttBridgeName(e){return this.$store.state.mqtt["openWB/system/mqtt/bridge/"+e]?this.$store.state.mqtt["openWB/system/mqtt/bridge/"+e].name:e}}},_=e=>(E("data-v-1ec2f2f5"),e=e(),N(),e),Q={class:"mqttBridgeConfiguration"},Z=_(()=>b("br",null,null,-1)),F={key:0},L={key:1},$=["name"],O=_(()=>b("hr",null,null,-1)),j=_(()=>b("hr",null,null,-1));function R(e,u,g,J,f,i){const U=r("openwb-base-modal-dialog"),h=r("openwb-base-alert"),v=r("font-awesome-icon"),w=r("openwb-base-avatar"),p=r("openwb-base-text-input"),d=r("openwb-base-button-group-input"),V=r("openwb-base-heading"),B=r("openwb-base-number-input"),x=r("openwb-base-submit-buttons"),k=r("openwb-base-card");return m(),c(M,null,[n(U,{show:f.showMqttBridgeModal,title:"MQTT-Brücke löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:u[0]||(u[0]=l=>i.removeMqttBridge(f.modalMqttBridgeIndex,l))},{default:o(()=>[s(' Wollen Sie die MQTT-Brücke "'+y(i.getMqttBridgeName(f.modalMqttBridgeIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),b("div",Q,[n(h,{subtype:"danger"},{default:o(()=>[s(" ACHTUNG: Die Konfiguration einer MQTT-Brücke erlaubt allen Nutzern mit Zugang zum entfernten MQTT-Server alle weitergeleiteten Daten dieser openWB einzusehen!"),Z,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-Thema unterhalb von "Entfernter Präfix") zu aktivieren! ')]),_:1}),n(k,{title:"Konfigurierte MQTT-Brücken"},{actions:o(()=>[e.$store.state.mqtt["openWB/general/extern"]===!1?(m(),T(w,{key:0,class:"bg-success clickable",onClick:i.addMqttBridge},{default:o(()=>[n(v,{"fixed-width":"",icon:["fas","plus"]})]),_:1},8,["onClick"])):S("",!0)]),default:o(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(m(),c("div",F,[n(h,{subtype:"info"},{default:o(()=>[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(m(),c("div",L,[Object.keys(i.configuredMqttBridges).length===0?(m(),T(h,{key:0,subtype:"info"},{default:o(()=>[s(" Es wurde noch keine MQTT Brücke konfiguriert. ")]),_:1})):S("",!0),(m(!0),c(M,null,W(i.configuredMqttBridges,(l,a)=>(m(),c("form",{key:a,name:"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(a)},[n(k,{title:l.name,collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(()=>[n(w,{class:"bg-danger clickable",onClick:t=>i.removeMqttBridgeModal(a,t)},{default:o(()=>[n(v,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"])]),footer:o(()=>[n(x,{formName:"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(a),hideDefaults:!0,onSave:t=>e.$emit("save",[a]),onReset:t=>e.$emit("reset",[a])},null,8,["formName","onSave","onReset"])]),default:o(()=>[n(p,{title:"Bezeichnung",subtype:"text",required:"",pattern:"[A-Za-z0-9]+","model-value":l.name,"onUpdate:modelValue":t=>e.updateState(a,t,"name")},{help:o(()=>[s(" Die Bezeichnung darf nur aus Buchstaben ohne Umlaute und Zahlen bestehen. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(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":t=>e.updateState(a,t,"active")},null,8,["model-value","onUpdate:modelValue"]),O,n(V,null,{default:o(()=>[s(" Einstellungen zur Verbindung ")]),_:1}),n(p,{title:"Entfernter Server",subtype:"host",required:"","model-value":l.remote.host,"onUpdate:modelValue":t=>e.updateState(a,t,"remote.host")},null,8,["model-value","onUpdate:modelValue"]),n(B,{title:"Entfernter Port",required:"",min:1,max:65535,"model-value":l.remote.port,"onUpdate:modelValue":t=>e.updateState(a,t,"remote.port")},null,8,["model-value","onUpdate:modelValue"]),n(p,{title:"Benutzername",subtype:"user",required:"",pattern:"[a-zA-Z0-9_\\-+.]+","model-value":l.remote.username,"onUpdate:modelValue":t=>e.updateState(a,t,"remote.username")},null,8,["model-value","onUpdate:modelValue"]),n(p,{title:"Passwort",subtype:"password",required:"","model-value":l.remote.password,"onUpdate:modelValue":t=>e.updateState(a,t,"remote.password")},null,8,["model-value","onUpdate:modelValue"]),n(p,{title:"Präfix",subtype:"text",pattern:"[A-Za-z0-9_\\-]+(\\/[A-Za-z0-9_\\-]+)?\\/","model-value":l.remote.prefix,"onUpdate:modelValue":t=>e.updateState(a,t,"remote.prefix")},{help:o(()=>[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äfix muss ein Schrägstrich "/" stehen. ')]),_:2},1032,["model-value","onUpdate:modelValue"]),n(p,{title:"Client ID",subtype:"text",required:"",pattern:"[A-Za-z0-9_\\-]+","model-value":l.remote.client_id,"onUpdate:modelValue":t=>e.updateState(a,t,"remote.client_id")},{help:o(()=>[s(" Die Client ID darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(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":t=>e.updateState(a,t,"remote.protocol")},null,8,["model-value","onUpdate:modelValue"]),n(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":t=>e.updateState(a,t,"remote.tls_version")},{help:o(()=>[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. ')]),_:2},1032,["model-value","onUpdate:modelValue"]),n(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":t=>e.updateState(a,t,"remote.try_private")},{help:o(()=>[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. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),j,n(V,null,{default:o(()=>[s("Datenübertragung")]),_:1}),n(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":t=>e.updateState(a,t,"data_transfer.status")},{help:o(()=>[s("ToDo...")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(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":t=>e.updateState(a,t,"data_transfer.graph")},{help:o(()=>[s("ToDo...")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(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":t=>e.updateState(a,t,"data_transfer.configuration")},{help:o(()=>[s("ToDo...")]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1032,["title"])],8,$))),128))]))]),_:1})])],64)}const ne=I(P,[["render",R],["__scopeId","data-v-1ec2f2f5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/MqttBridgeConfig.vue"]]);export{ne as default}; +import{l as C,d as A,a0 as q,F as D}from"./vendor-fortawesome-71546160.js";import{C as z}from"./index-88a2073c.js";import{_ as I,u as r,k as m,l as c,D as n,N as o,x as b,J as M,y as s,z as y,A as T,B as S,K as W,S as E,U as N}from"./vendor-f2b8aa6f.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";C.add(A,q);const P={name:"OpenwbMqttBridgeConfigurationView",mixins:[z],emits:["sendCommand"],components:{FontAwesomeIcon:D},data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/mqtt/bridge/+"],showMqttBridgeModal:!1,modalMqttBridgeIndex:void 0}},computed:{configuredMqttBridges:{get(){let e=this.getWildcardTopics("openWB/system/mqtt/bridge/+");for(const[u,g]of Object.entries(e))g.remote.is_openwb_cloud&&delete e[u];return e}}},methods:{addMqttBridge(e){e.stopPropagation(),this.$emit("sendCommand",{command:"addMqttBridge",data:{}})},getMqttBridgeIndex(e){return parseInt(e.match(/(?:\/)(\d+)$/)[1])},removeMqttBridgeModal(e,u){u.stopPropagation(),this.modalMqttBridgeIndex=this.getMqttBridgeIndex(e),this.showMqttBridgeModal=!0},removeMqttBridge(e,u){this.showMqttBridgeModal=!1,u=="confirm"&&(console.info("request removal of mqtt bridge '"+e+"'"),this.$emit("sendCommand",{command:"removeMqttBridge",data:{bridge:e}}))},getMqttBridgeName(e){return this.$store.state.mqtt["openWB/system/mqtt/bridge/"+e]?this.$store.state.mqtt["openWB/system/mqtt/bridge/"+e].name:e}}},_=e=>(E("data-v-1ec2f2f5"),e=e(),N(),e),Q={class:"mqttBridgeConfiguration"},Z=_(()=>b("br",null,null,-1)),F={key:0},L={key:1},$=["name"],O=_(()=>b("hr",null,null,-1)),j=_(()=>b("hr",null,null,-1));function R(e,u,g,J,f,i){const U=r("openwb-base-modal-dialog"),h=r("openwb-base-alert"),v=r("font-awesome-icon"),w=r("openwb-base-avatar"),p=r("openwb-base-text-input"),d=r("openwb-base-button-group-input"),V=r("openwb-base-heading"),B=r("openwb-base-number-input"),x=r("openwb-base-submit-buttons"),k=r("openwb-base-card");return m(),c(M,null,[n(U,{show:f.showMqttBridgeModal,title:"MQTT-Brücke löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:u[0]||(u[0]=l=>i.removeMqttBridge(f.modalMqttBridgeIndex,l))},{default:o(()=>[s(' Wollen Sie die MQTT-Brücke "'+y(i.getMqttBridgeName(f.modalMqttBridgeIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),b("div",Q,[n(h,{subtype:"danger"},{default:o(()=>[s(" ACHTUNG: Die Konfiguration einer MQTT-Brücke erlaubt allen Nutzern mit Zugang zum entfernten MQTT-Server alle weitergeleiteten Daten dieser openWB einzusehen!"),Z,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-Thema unterhalb von "Entfernter Präfix") zu aktivieren! ')]),_:1}),n(k,{title:"Konfigurierte MQTT-Brücken"},{actions:o(()=>[e.$store.state.mqtt["openWB/general/extern"]===!1?(m(),T(w,{key:0,class:"bg-success clickable",onClick:i.addMqttBridge},{default:o(()=>[n(v,{"fixed-width":"",icon:["fas","plus"]})]),_:1},8,["onClick"])):S("",!0)]),default:o(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(m(),c("div",F,[n(h,{subtype:"info"},{default:o(()=>[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(m(),c("div",L,[Object.keys(i.configuredMqttBridges).length===0?(m(),T(h,{key:0,subtype:"info"},{default:o(()=>[s(" Es wurde noch keine MQTT Brücke konfiguriert. ")]),_:1})):S("",!0),(m(!0),c(M,null,W(i.configuredMqttBridges,(l,a)=>(m(),c("form",{key:a,name:"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(a)},[n(k,{title:l.name,collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(()=>[n(w,{class:"bg-danger clickable",onClick:t=>i.removeMqttBridgeModal(a,t)},{default:o(()=>[n(v,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"])]),footer:o(()=>[n(x,{formName:"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(a),hideDefaults:!0,onSave:t=>e.$emit("save",[a]),onReset:t=>e.$emit("reset",[a])},null,8,["formName","onSave","onReset"])]),default:o(()=>[n(p,{title:"Bezeichnung",subtype:"text",required:"",pattern:"[A-Za-z0-9]+","model-value":l.name,"onUpdate:modelValue":t=>e.updateState(a,t,"name")},{help:o(()=>[s(" Die Bezeichnung darf nur aus Buchstaben ohne Umlaute und Zahlen bestehen. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(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":t=>e.updateState(a,t,"active")},null,8,["model-value","onUpdate:modelValue"]),O,n(V,null,{default:o(()=>[s(" Einstellungen zur Verbindung ")]),_:1}),n(p,{title:"Entfernter Server",subtype:"host",required:"","model-value":l.remote.host,"onUpdate:modelValue":t=>e.updateState(a,t,"remote.host")},null,8,["model-value","onUpdate:modelValue"]),n(B,{title:"Entfernter Port",required:"",min:1,max:65535,"model-value":l.remote.port,"onUpdate:modelValue":t=>e.updateState(a,t,"remote.port")},null,8,["model-value","onUpdate:modelValue"]),n(p,{title:"Benutzername",subtype:"user",required:"",pattern:"[a-zA-Z0-9_\\-+.]+","model-value":l.remote.username,"onUpdate:modelValue":t=>e.updateState(a,t,"remote.username")},null,8,["model-value","onUpdate:modelValue"]),n(p,{title:"Passwort",subtype:"password",required:"","model-value":l.remote.password,"onUpdate:modelValue":t=>e.updateState(a,t,"remote.password")},null,8,["model-value","onUpdate:modelValue"]),n(p,{title:"Präfix",subtype:"text",pattern:"[A-Za-z0-9_\\-]+(\\/[A-Za-z0-9_\\-]+)?\\/","model-value":l.remote.prefix,"onUpdate:modelValue":t=>e.updateState(a,t,"remote.prefix")},{help:o(()=>[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äfix muss ein Schrägstrich "/" stehen. ')]),_:2},1032,["model-value","onUpdate:modelValue"]),n(p,{title:"Client ID",subtype:"text",required:"",pattern:"[A-Za-z0-9_\\-]+","model-value":l.remote.client_id,"onUpdate:modelValue":t=>e.updateState(a,t,"remote.client_id")},{help:o(()=>[s(" Die Client ID darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(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":t=>e.updateState(a,t,"remote.protocol")},null,8,["model-value","onUpdate:modelValue"]),n(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":t=>e.updateState(a,t,"remote.tls_version")},{help:o(()=>[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. ')]),_:2},1032,["model-value","onUpdate:modelValue"]),n(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":t=>e.updateState(a,t,"remote.try_private")},{help:o(()=>[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. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),j,n(V,null,{default:o(()=>[s("Datenübertragung")]),_:1}),n(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":t=>e.updateState(a,t,"data_transfer.status")},{help:o(()=>[s("ToDo...")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(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":t=>e.updateState(a,t,"data_transfer.graph")},{help:o(()=>[s("ToDo...")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(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":t=>e.updateState(a,t,"data_transfer.configuration")},{help:o(()=>[s("ToDo...")]),_:2},1032,["model-value","onUpdate:modelValue"])]),_:2},1032,["title"])],8,$))),128))]))]),_:1})])],64)}const ne=I(P,[["render",R],["__scopeId","data-v-1ec2f2f5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/MqttBridgeConfig.vue"]]);export{ne as default}; diff --git a/web/settings/assets/OptionalComponents-5a24a6aa.js b/web/settings/assets/OptionalComponents-4599d69d.js similarity index 99% rename from web/settings/assets/OptionalComponents-5a24a6aa.js rename to web/settings/assets/OptionalComponents-4599d69d.js index 07ca5200f2..676ca8c1b8 100644 --- a/web/settings/assets/OptionalComponents-5a24a6aa.js +++ b/web/settings/assets/OptionalComponents-4599d69d.js @@ -1,2 +1,2 @@ -import{_ as $,C}from"./index-ba5cf04c.js";import{_ as S}from"./dynamic-import-helper-be004503.js";import{l as z,X as O,Y as V,F as L}from"./vendor-fortawesome-71546160.js";import{_ as y,u as p,k as s,l as d,A as _,N as o,y as a,z as c,D as n,x as r,a2 as I,a3 as E,J as q,B as f}from"./vendor-f2b8aa6f.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const F={name:"DisplayThemeFallback",emits:["update:configuration"],props:{displayTheme:{type:Object,required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},N={class:"display-theme-fallback"},x={key:1};function A(e,t,l,v,w,m){const u=p("openwb-base-alert"),b=p("openwb-base-textarea");return s(),d("div",N,[Object.keys(l.displayTheme.configuration).length==0?(s(),_(u,{key:0,subtype:"info"},{default:o(()=>[a(' Das Display-Theme "'+c(l.displayTheme.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(s(),d("div",x,[n(u,{subtype:"warning"},{default:o(()=>[a(' Es wurde keine Konfigurationsseite für das Display-Theme "'+c(l.displayTheme.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(b,{title:"Konfiguration",subtype:"json","model-value":l.displayTheme.configuration,"onUpdate:modelValue":t[0]||(t[0]=g=>m.updateConfiguration(g,"configuration"))},{help:o(()=>[a(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ")]),_:1},8,["model-value"]),n(u,{subtype:"info"},{default:o(()=>[r("pre",null,c(JSON.stringify(l.displayTheme.configuration,void 0,2)),1)]),_:1})]))])}const j=y(F,[["render",A],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeFallback.vue"]]);z.add(O,V);const M={name:"OpenwbDisplayThemeProxy",emits:["update:configuration"],props:{displayTheme:{type:Object,required:!0}},components:{FontAwesomeIcon:L},computed:{myComponent(){return console.debug(`loading display theme: ${this.displayTheme.type}`),I({loader:()=>S(Object.assign({"./cards/displayTheme.vue":()=>$(()=>import("./displayTheme-28647fcd.js"),["assets/displayTheme-28647fcd.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"])}),`./${this.displayTheme.type}/displayTheme.vue`),errorComponent:j})}},methods:{updateConfiguration(e){this.$emit("update:configuration",e)}}};function P(e,t,l,v,w,m){const u=p("font-awesome-icon"),b=p("openwb-base-alert"),g=p("openwb-base-heading");return s(),d(q,null,[l.displayTheme.official?(s(),_(b,{key:0,subtype:"success"},{default:o(()=>[n(u,{"fixed-width":"",icon:["fas","certificate"]}),a(' Das ausgewählte Display Theme "'+c(l.displayTheme.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(s(),_(b,{key:1,subtype:"info"},{default:o(()=>[n(u,{"fixed-width":"",icon:["fas","people-group"]}),a(' Das ausgewählte Display Theme "'+c(l.displayTheme.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),n(g,null,{default:o(()=>[a(' Einstellungen für Display Theme "'+c(l.displayTheme.name)+'" ',1)]),_:1}),(s(),_(E(m.myComponent),{displayTheme:l.displayTheme,"onUpdate:configuration":t[0]||(t[0]=h=>m.updateConfiguration(h))},null,40,["displayTheme"]))],64)}const U=y(M,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeProxy.vue"]]),H={name:"OpenwbOptionalComponentsView",mixins:[C],components:{OpenwbDisplayThemeProxy:U},data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/chargepoint/+/config","openWB/chargepoint/+/get/rfid","openWB/chargepoint/+/get/rfid_timestamp","openWB/chargepoint/+/set/rfid","openWB/optional/rfid/active","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/standby","openWB/optional/int_display/rotation","openWB/optional/int_display/on_if_plugged_in","openWB/optional/int_display/pin_active","openWB/optional/int_display/pin_code","openWB/optional/int_display/theme","openWB/optional/int_display/only_local_charge_points","openWB/system/configurable/display_themes","openWB/optional/et/active","openWB/optional/et/config/provider","openWB/optional/et/config/max_price"],tempIdTagList:{}}},computed:{idTagList(){return Object.values(this.updateIdTagList())},displayThemeList(){return this.$store.state.mqtt["openWB/system/configurable/display_themes"]},displayThemeGroupList(){let e=[{label:"openWB",options:[]},{label:"Community",options:[]}];return this.displayThemeList.forEach(t=>{t.official===!0?e[0].options.push(t):e[1].options.push(t)}),e}},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$",!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},getDisplayThemeDefaults(e){const t=this.displayThemeList.find(l=>l.value==e);return Object.prototype.hasOwnProperty.call(t,"defaults")?{...JSON.parse(JSON.stringify(t.defaults))}:(console.warn("no default configuration found for display theme type!",e),{})},updateSelectedDisplayTheme(e){this.updateState("openWB/optional/int_display/theme",this.getDisplayThemeDefaults(e))},updateConfiguration(e,t){console.debug("updateConfiguration",e,t),this.updateState(e,t.value,t.object)}}},R={class:"optionalComponents"},J={name:"optionalComponentsForm"},G={key:0},K={key:1},Z=r("ul",null,[r("li",null," Über einen in der openWB verbauten RFID-Reader (optional, z.B. anhand des Lieferscheins prüfen). "),r("li",null," Durch die automatische Erkennung an einer openWB Pro (muss in den Einstellungen aktiviert werden). "),r("li",null," Durch manuelle Eingabe einer ID am Display einer openWB. ")],-1),X={key:0},Y=r("br",null,null,-1),Q=r("br",null,null,-1),ee=["innerHTML"],te={key:0},ne=r("br",null,null,-1),oe=r("hr",null,null,-1),ae={key:1},ie=r("hr",null,null,-1),se={key:2},le=r("hr",null,null,-1),pe=r("hr",null,null,-1),re={key:0};function de(e,t,l,v,w,m){const u=p("openwb-base-alert"),b=p("openwb-base-button-group-input"),g=p("openwb-base-textarea"),h=p("openwb-base-card"),T=p("openwb-base-heading"),B=p("openwb-base-range-input"),D=p("openwb-base-select-input"),W=p("openwb-display-theme-proxy"),k=p("openwb-base-submit-buttons");return s(),d("div",R,[r("form",J,[n(h,{title:"Identifikation"},{default:o(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(s(),d("div",G,[n(u,{subtype:"info"},{default:o(()=>[a(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(s(),d("div",K,[n(b,{title:"Identifikation aktivieren","model-value":e.$store.state.mqtt["openWB/optional/rfid/active"],"onUpdate:modelValue":t[0]||(t[0]=i=>e.updateState("openWB/optional/rfid/active",i)),buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},{help:o(()=>[a(" Die Identifikation kann zum Entsperren von Ladepunkten und/oder zur Zuordnung von Fahrzeugen genutzt werden und kann auf mehreren Wegen erfolgen: "),Z]),_:1},8,["model-value"]),e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(s(),d("div",X,[n(u,{subtype:"info",class:"mb-1"},{default:o(()=>[a(" Die ID-Tags müssen in den Einstellungen der Fahrzeuge diesen zugeordnet werden."),Y,a(" Es kann zuerst das Fahrzeug angesteckt und dann der ID-Tag erfasst werden oder anders herum. Im letzten Fall muss innerhalb von 5 Minuten ein Fahrzeug angesteckt werden, sonst wird der ID-Tag verworfen. Das Fahrzeug wird erst nach dem Anstecken zugeordnet."),Q,r("span",{innerHTML:e.$store.state.text.rfidWiki},null,8,ee)]),_:1}),n(g,{title:"Erkannte ID-Tags",readonly:"",disabled:"","model-value":m.idTagList.join(` +import{_ as $,C}from"./index-88a2073c.js";import{_ as S}from"./dynamic-import-helper-be004503.js";import{l as z,X as O,Y as V,F as L}from"./vendor-fortawesome-71546160.js";import{_ as y,u as p,k as s,l as d,A as _,N as o,y as a,z as c,D as n,x as r,a2 as I,a3 as E,J as q,B as f}from"./vendor-f2b8aa6f.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const F={name:"DisplayThemeFallback",emits:["update:configuration"],props:{displayTheme:{type:Object,required:!0}},methods:{updateConfiguration(e,t=void 0){this.$emit("update:configuration",{value:e,object:t})}}},N={class:"display-theme-fallback"},x={key:1};function A(e,t,l,v,w,m){const u=p("openwb-base-alert"),b=p("openwb-base-textarea");return s(),d("div",N,[Object.keys(l.displayTheme.configuration).length==0?(s(),_(u,{key:0,subtype:"info"},{default:o(()=>[a(' Das Display-Theme "'+c(l.displayTheme.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(s(),d("div",x,[n(u,{subtype:"warning"},{default:o(()=>[a(' Es wurde keine Konfigurationsseite für das Display-Theme "'+c(l.displayTheme.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(b,{title:"Konfiguration",subtype:"json","model-value":l.displayTheme.configuration,"onUpdate:modelValue":t[0]||(t[0]=g=>m.updateConfiguration(g,"configuration"))},{help:o(()=>[a(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ")]),_:1},8,["model-value"]),n(u,{subtype:"info"},{default:o(()=>[r("pre",null,c(JSON.stringify(l.displayTheme.configuration,void 0,2)),1)]),_:1})]))])}const j=y(F,[["render",A],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeFallback.vue"]]);z.add(O,V);const M={name:"OpenwbDisplayThemeProxy",emits:["update:configuration"],props:{displayTheme:{type:Object,required:!0}},components:{FontAwesomeIcon:L},computed:{myComponent(){return console.debug(`loading display theme: ${this.displayTheme.type}`),I({loader:()=>S(Object.assign({"./cards/displayTheme.vue":()=>$(()=>import("./displayTheme-28647fcd.js"),["assets/displayTheme-28647fcd.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"])}),`./${this.displayTheme.type}/displayTheme.vue`),errorComponent:j})}},methods:{updateConfiguration(e){this.$emit("update:configuration",e)}}};function P(e,t,l,v,w,m){const u=p("font-awesome-icon"),b=p("openwb-base-alert"),g=p("openwb-base-heading");return s(),d(q,null,[l.displayTheme.official?(s(),_(b,{key:0,subtype:"success"},{default:o(()=>[n(u,{"fixed-width":"",icon:["fas","certificate"]}),a(' Das ausgewählte Display Theme "'+c(l.displayTheme.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(s(),_(b,{key:1,subtype:"info"},{default:o(()=>[n(u,{"fixed-width":"",icon:["fas","people-group"]}),a(' Das ausgewählte Display Theme "'+c(l.displayTheme.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),n(g,null,{default:o(()=>[a(' Einstellungen für Display Theme "'+c(l.displayTheme.name)+'" ',1)]),_:1}),(s(),_(E(m.myComponent),{displayTheme:l.displayTheme,"onUpdate:configuration":t[0]||(t[0]=h=>m.updateConfiguration(h))},null,40,["displayTheme"]))],64)}const U=y(M,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeProxy.vue"]]),H={name:"OpenwbOptionalComponentsView",mixins:[C],components:{OpenwbDisplayThemeProxy:U},data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/chargepoint/+/config","openWB/chargepoint/+/get/rfid","openWB/chargepoint/+/get/rfid_timestamp","openWB/chargepoint/+/set/rfid","openWB/optional/rfid/active","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/standby","openWB/optional/int_display/rotation","openWB/optional/int_display/on_if_plugged_in","openWB/optional/int_display/pin_active","openWB/optional/int_display/pin_code","openWB/optional/int_display/theme","openWB/optional/int_display/only_local_charge_points","openWB/system/configurable/display_themes","openWB/optional/et/active","openWB/optional/et/config/provider","openWB/optional/et/config/max_price"],tempIdTagList:{}}},computed:{idTagList(){return Object.values(this.updateIdTagList())},displayThemeList(){return this.$store.state.mqtt["openWB/system/configurable/display_themes"]},displayThemeGroupList(){let e=[{label:"openWB",options:[]},{label:"Community",options:[]}];return this.displayThemeList.forEach(t=>{t.official===!0?e[0].options.push(t):e[1].options.push(t)}),e}},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$",!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},getDisplayThemeDefaults(e){const t=this.displayThemeList.find(l=>l.value==e);return Object.prototype.hasOwnProperty.call(t,"defaults")?{...JSON.parse(JSON.stringify(t.defaults))}:(console.warn("no default configuration found for display theme type!",e),{})},updateSelectedDisplayTheme(e){this.updateState("openWB/optional/int_display/theme",this.getDisplayThemeDefaults(e))},updateConfiguration(e,t){console.debug("updateConfiguration",e,t),this.updateState(e,t.value,t.object)}}},R={class:"optionalComponents"},J={name:"optionalComponentsForm"},G={key:0},K={key:1},Z=r("ul",null,[r("li",null," Über einen in der openWB verbauten RFID-Reader (optional, z.B. anhand des Lieferscheins prüfen). "),r("li",null," Durch die automatische Erkennung an einer openWB Pro (muss in den Einstellungen aktiviert werden). "),r("li",null," Durch manuelle Eingabe einer ID am Display einer openWB. ")],-1),X={key:0},Y=r("br",null,null,-1),Q=r("br",null,null,-1),ee=["innerHTML"],te={key:0},ne=r("br",null,null,-1),oe=r("hr",null,null,-1),ae={key:1},ie=r("hr",null,null,-1),se={key:2},le=r("hr",null,null,-1),pe=r("hr",null,null,-1),re={key:0};function de(e,t,l,v,w,m){const u=p("openwb-base-alert"),b=p("openwb-base-button-group-input"),g=p("openwb-base-textarea"),h=p("openwb-base-card"),T=p("openwb-base-heading"),B=p("openwb-base-range-input"),D=p("openwb-base-select-input"),W=p("openwb-display-theme-proxy"),k=p("openwb-base-submit-buttons");return s(),d("div",R,[r("form",J,[n(h,{title:"Identifikation"},{default:o(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(s(),d("div",G,[n(u,{subtype:"info"},{default:o(()=>[a(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(s(),d("div",K,[n(b,{title:"Identifikation aktivieren","model-value":e.$store.state.mqtt["openWB/optional/rfid/active"],"onUpdate:modelValue":t[0]||(t[0]=i=>e.updateState("openWB/optional/rfid/active",i)),buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},{help:o(()=>[a(" Die Identifikation kann zum Entsperren von Ladepunkten und/oder zur Zuordnung von Fahrzeugen genutzt werden und kann auf mehreren Wegen erfolgen: "),Z]),_:1},8,["model-value"]),e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(s(),d("div",X,[n(u,{subtype:"info",class:"mb-1"},{default:o(()=>[a(" Die ID-Tags müssen in den Einstellungen der Fahrzeuge diesen zugeordnet werden."),Y,a(" Es kann zuerst das Fahrzeug angesteckt und dann der ID-Tag erfasst werden oder anders herum. Im letzten Fall muss innerhalb von 5 Minuten ein Fahrzeug angesteckt werden, sonst wird der ID-Tag verworfen. Das Fahrzeug wird erst nach dem Anstecken zugeordnet."),Q,r("span",{innerHTML:e.$store.state.text.rfidWiki},null,8,ee)]),_:1}),n(g,{title:"Erkannte ID-Tags",readonly:"",disabled:"","model-value":m.idTagList.join(` `)},{help:o(()=>[a(" Solange diese Seite geöffnet ist, werden alle erfassten ID-Tags in dieser Liste aufgeführt. ")]),_:1},8,["model-value"])])):f("",!0)]))]),_:1}),n(h,{title:"Display (intern oder extern)"},{default:o(()=>[n(b,{title:"Integriertes Display","model-value":e.$store.state.mqtt["openWB/optional/int_display/active"],"onUpdate:modelValue":t[1]||(t[1]=i=>e.updateState("openWB/optional/int_display/active",i)),buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},{help:o(()=>[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},8,["model-value"]),e.$store.state.mqtt["openWB/optional/int_display/active"]==!0?(s(),d("div",te,[n(b,{title:"Orientierung","model-value":e.$store.state.mqtt["openWB/optional/int_display/rotation"],"onUpdate:modelValue":t[2]||(t[2]=i=>e.updateState("openWB/optional/int_display/rotation",i)),buttons:[{buttonValue:0,text:"0°"},{buttonValue:90,text:"90°"},{buttonValue:180,text:"180°"},{buttonValue:270,text:"270°"}]},{help:o(()=>[a(" Mit dieser Einstellung kann das Display im Uhrzeigersinn gedreht werden, falls erforderlich. Nach einer Änderung ist ein Neustart erforderlich!"),ne,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},8,["model-value"]),oe,n(T,null,{default:o(()=>[a(" Display Standby ")]),_:1}),n(B,{title:"Ausschaltzeit",min:0,max:12,step:1,"model-value":e.$store.state.mqtt["openWB/optional/int_display/standby"],"onUpdate:modelValue":t[3]||(t[3]=i=>e.updateState("openWB/optional/int_display/standby",i)),unit:"Sek",labels:[{label:"Immer an",value:0},{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}]},{help:o(()=>[a(" Hier kann eine Zeitspanne angegeben werden, nach der das Display ausgeschaltet wird. ")]),_:1},8,["model-value"])])):f("",!0),e.$store.state.mqtt["openWB/general/extern"]===!0?(s(),d("div",ae,[ie,n(u,{subtype:"info"},{default:o(()=>[a(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(s(),d("div",se,[le,n(b,{title:"Ladepunkte auf externen openWB","model-value":e.$store.state.mqtt["openWB/optional/int_display/only_local_charge_points"],"onUpdate:modelValue":t[4]||(t[4]=i=>e.updateState("openWB/optional/int_display/only_local_charge_points",i)),buttons:[{buttonValue:!1,text:"Alle",class:"btn-outline-danger"},{buttonValue:!0,text:"Nur Lokale",class:"btn-outline-success"}]},{help:o(()=>[a(" Hiermit kann festgelegt werden, ob an angebundenen externen openWB alle oder nur die jeweils lokalen Ladepunkte angezeigt werden sollen. ")]),_:1},8,["model-value"]),pe,e.$store.state.mqtt["openWB/optional/int_display/theme"]!==void 0?(s(),d("div",re,[n(D,{class:"mb-2",title:"Theme des Displays",groups:m.displayThemeGroupList,"model-value":e.$store.state.mqtt["openWB/optional/int_display/theme"].type,"onUpdate:modelValue":t[5]||(t[5]=i=>m.updateSelectedDisplayTheme(i))},{help:o(()=>[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},8,["groups","model-value"]),e.$store.state.mqtt["openWB/optional/int_display/theme"].type?(s(),_(W,{key:0,displayTheme:e.$store.state.mqtt["openWB/optional/int_display/theme"],"onUpdate:configuration":t[6]||(t[6]=i=>m.updateConfiguration("openWB/optional/int_display/theme",i))},null,8,["displayTheme"])):f("",!0)])):f("",!0)]))]),_:1}),n(k,{formName:"optionalComponentsForm",onSave:t[7]||(t[7]=i=>e.$emit("save")),onReset:t[8]||(t[8]=i=>e.$emit("reset")),onDefaults:t[9]||(t[9]=i=>e.$emit("defaults"))})])])}const ye=y(H,[["render",de],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/OptionalComponents.vue"]]);export{ye as default}; diff --git a/web/settings/assets/PVChargeConfig-260d31b6.js b/web/settings/assets/PVChargeConfig-d62a1759.js similarity index 99% rename from web/settings/assets/PVChargeConfig-260d31b6.js rename to web/settings/assets/PVChargeConfig-d62a1759.js index a6d9e75ad7..f476575762 100644 --- a/web/settings/assets/PVChargeConfig-260d31b6.js +++ b/web/settings/assets/PVChargeConfig-d62a1759.js @@ -1 +1 @@ -import{C as B}from"./index-ba5cf04c.js";import{l as S,P as V,Z as k,_ as z,F as y}from"./vendor-fortawesome-71546160.js";import{_ as E,u as g,k as s,l as u,x as o,D as i,N as a,y as r,A as f,B as b}from"./vendor-f2b8aa6f.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";S.add(V,k,z);const C={name:"OpenwbPVChargeConfigView",mixins:[B],components:{FontAwesomeIcon:y},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 h="individual";return typeof e<"u"&&(e[0]===-230&&e[1]===0?h="export":e[0]===0&&e[1]===230?h="import":e[0]===-115&&e[1]===115?h="balanced":h="individual"),h},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}}},batMode(){return this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_mode"]}},watch:{controlMode(n){this.calculatedControlMode=n}}},M={class:"pvChargeConfig"},q={name:"pvChargeConfigForm"},L={key:0},A={key:1},P=o("br",null,null,-1),R=o("br",null,null,-1),$=o("hr",null,null,-1),U=o("br",null,null,-1),F=o("br",null,null,-1),D=o("hr",null,null,-1),N=o("br",null,null,-1),I=o("br",null,null,-1),Z=o("hr",null,null,-1),O=o("br",null,null,-1),T=o("br",null,null,-1),G=o("br",null,null,-1),H=o("br",null,null,-1),J={key:0},j={key:1},K={key:0},Q={key:1},X=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),Y={key:0},x=o("br",null,null,-1);function ee(n,e,h,ne,te,d){const m=g("openwb-base-alert"),p=g("openwb-base-button-group-input"),l=g("openwb-base-number-input"),_=g("openwb-base-card"),c=g("font-awesome-icon"),w=g("openwb-base-range-input"),v=g("openwb-base-heading"),W=g("openwb-base-submit-buttons");return s(),u("div",M,[o("form",q,[i(_,{title:"Regelparameter"},{default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(s(),u("div",L,[i(m,{subtype:"info"},{default:a(()=>[r(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(s(),u("div",A,[i(p,{title:"Regelmodus",buttons:[{buttonValue:"export",text:"Einspeisung"},{buttonValue:"import",text:"Bezug"},{buttonValue:"balanced",text:"Ausgewogen"},{buttonValue:"individual",text:"Individuell"}],modelValue:d.controlMode,"onUpdate:modelValue":e[0]||(e[0]=t=>d.controlMode=t)},{help:a(()=>[r(" 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."),P,r(" Bei Speichervorrang erzeugt die Regelung bei Bedarf unabhängig vom eingestellten Regelmodus Einspeisung, damit der Speicher seine Ladeleistung erhöht."),R,r(" Achtung: bei unlogischen Einstellungen kann die Regelung gestört werden! Im Zweifel bitte unsere vordefinierten Modi verwenden. ")]),_:1},8,["modelValue"]),i(l,{disabled:d.controlMode!=="individual",readonly:d.controlMode!=="individual",title:"Minimum",step:.005,unit:"kW","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]=t=>n.updateState("openWB/general/chargemode_config/pv_charging/control_range",t*1e3,"0"))},{help:a(()=>[r(" Untere Grenze des Regelbereichs. ")]),_:1},8,["disabled","readonly","model-value"]),i(l,{disabled:d.controlMode!=="individual",readonly:d.controlMode!=="individual",title:"Maximum",step:.005,unit:"kW","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]=t=>n.updateState("openWB/general/chargemode_config/pv_charging/control_range",t*1e3,"1"))},{help:a(()=>[r("Obere Grenze des Regelbereichs.")]),_:1},8,["disabled","readonly","model-value"]),$,i(l,{title:"Einschaltschwelle",min:0,step:.05,unit:"kW","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_threshold"]/1e3,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_on_threshold",t*1e3))},{help:a(()=>[r(" Wird der Regelbereich in Richtung Einspeisung um diese Leistung überschritten, so wird der Ladevorgang gestartet."),U,r(" Dieser Wert wird pro Phase genutzt und ist daher immer für eine Phase anzugeben. ")]),_:1},8,["model-value"]),i(l,{title:"Einschaltverzögerung",min:0,step:1,unit:"s","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_delay"],"onUpdate:modelValue":e[4]||(e[4]=t=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_on_delay",t))},{help:a(()=>[r(" Die Einschaltschwelle muss für die hier angegebene Zeit dauerhaft überschritten werden, bevor ein Ladevorgang gestartet wird."),F,r(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird weiter geladen, wenn die Abschaltschwelle nicht unterschritten wird. ")]),_:1},8,["model-value"]),D,i(l,{title:"Abschaltschwelle",step:.05,unit:"kW","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]/1e3,"onUpdate:modelValue":e[5]||(e[5]=t=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_off_threshold",t*1e3))},{help:a(()=>[r(" Wird der Regelbereich in Richtung Netzbezug um diese Leistung überschritten, so wird der Ladevorgang beendet. Wenn ein Speicher im System vorhanden ist, gilt die Abschaltschwelle auch für die Speicherentladung. Die Abschaltschwelle übersteuert den Mindest-SoC des Speichers (siehe Speicher-Beachtung unten)."),N,r(" Dieser Wert ist unabhängig von der Anzahl genutzter Phasen. ")]),_:1},8,["model-value"]),i(l,{title:"Abschaltverzögerung",min:0,step:1,unit:"s","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_delay"],"onUpdate:modelValue":e[6]||(e[6]=t=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_off_delay",t))},{help:a(()=>[r(" Die Abschaltschwelle muss für die hier angegebene Zeit dauerhaft unterschritten werden, bevor ein Ladevorgang beendet wird."),I,r(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird die Ladung sofort beendet, wenn die Abschaltschwelle unterschritten wird. ")]),_:1},8,["model-value"]),Z,i(l,{title:"Regelpunkt Einspeisegrenze",min:0,step:.05,unit:"kW","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/feed_in_yield"]/1e3,"onUpdate:modelValue":e[7]||(e[7]=t=>n.updateState("openWB/general/chargemode_config/pv_charging/feed_in_yield",t*1e3))},{help:a(()=>[r(" Ein Wert größer 0kW bewirkt, dass weniger PV-Leistung zum Laden benutzt wird."),O,r(" 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)."),T,r(' 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).'),G,r(' 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.'),H,r(" 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},8,["model-value"])]))]),_:1}),i(_,{title:"Phasenumschaltung"},{default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(s(),u("div",J,[i(m,{subtype:"info"},{default:a(()=>[r(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(s(),u("div",j,[i(p,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/phases_to_use"],"onUpdate:modelValue":e[8]||(e[8]=t=>n.updateState("openWB/general/chargemode_config/pv_charging/phases_to_use",t))},{help:a(()=>[r(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "PV-Laden" 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 den verfügbaren Überschuss in die Fahrzeuge zu laden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (s.g. 1p3p). ')]),_:1},8,["model-value"])]))]),_:1}),i(_,{title:"Speicher-Beachtung"},{default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(s(),u("div",K,[i(m,{subtype:"info"},{default:a(()=>[r(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(s(),u("div",Q,[i(p,{title:"Laden mit Überschuss",buttons:[{buttonValue:"ev_mode"},{buttonValue:"bat_mode"},{buttonValue:"min_soc_bat_mode"}],modelValue:d.batMode,"onUpdate:modelValue":[e[9]||(e[9]=t=>d.batMode=t),e[10]||(e[10]=t=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_mode",t))],"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_mode"]},{"label-ev_mode":a(()=>[i(c,{"fixed-width":"",icon:["fas","car-side"]}),r(" Fahrzeuge ")]),"label-bat_mode":a(()=>[i(c,{"fixed-width":"",icon:["fas","fa-car-battery"]}),r(" Speicher ")]),"label-min_soc_bat_mode":a(()=>[i(c,{"fixed-width":"",icon:["fas","fa-battery-half"]}),r(" Mindest-SoC des Speichers ")]),help:a(()=>[X,o("p",null,[r(' Bei Auswahl " '),i(c,{"fixed-width":"",icon:["fas","car-side"]}),r(' 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. ')]),o("p",null,[r(' Bei Auswahl " '),i(c,{"fixed-width":"",icon:["fas","fa-car-battery"]}),r(' 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. ')]),o("p",null,[r(' Bei Auswahl " '),i(c,{"fixed-width":"",icon:["fas","fa-battery-half"]}),r(' 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},8,["modelValue","model-value"]),d.batMode==="min_soc_bat_mode"?(s(),u("div",Y,[i(w,{title:"Mindest-SoC des Speichers",min:0,max:100,step:1,unit:"%",required:n.required,"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"],"onUpdate:modelValue":e[11]||(e[11]=t=>n.updateState("openWB/general/chargemode_config/pv_charging/min_bat_soc",t))},null,8,["required","model-value"]),i(v,null,{default:a(()=>[r("Speicher-SoC unterhalb Mindest-SoC")]),_:1}),i(p,{title:"Ladeleistung für Speicher reservieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],modelValue:n.batPowerReserveActive,"onUpdate:modelValue":[e[12]||(e[12]=t=>n.batPowerReserveActive=t),e[13]||(e[13]=t=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_reserve_active",t))],"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"]},{help:a(()=>[r("ACHTUNG: Der hier eingestellte Wert darf die maximale Ladeleistung des Speichers nicht überschreiten."),x,r(" Wird der Mindest-SoC des Speichers nicht erreicht, wird der Speicher mit der hier eingestellte Leistung geladen. Mit dem verbleibenden Überschuss werden die Fahrzeuge geladen.")]),_:1},8,["modelValue","model-value"]),n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"]?(s(),f(l,{key:0,title:"Reserve Ladeleistung",min:.1,step:.1,unit:"kW",required:n.required,"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve"]/1e3,"onUpdate:modelValue":e[14]||(e[14]=t=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_reserve",t*1e3))},null,8,["required","model-value"])):b("",!0),i(v,null,{default:a(()=>[r("Speicher-SoC oberhalb Mindest-SoC")]),_:1}),i(p,{title:"Entladung des Speichers erlauben",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],modelValue:n.batPowerReserveActive,"onUpdate:modelValue":[e[15]||(e[15]=t=>n.batPowerReserveActive=t),e[16]||(e[16]=t=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_discharge_active",t))],"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"]},{help:a(()=>[r("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},8,["modelValue","model-value"]),n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"]?(s(),f(l,{key:1,title:"Erlaubte Entladeleistung",min:.1,step:.1,unit:"kW",required:n.required,"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge"]/1e3,"onUpdate:modelValue":e[17]||(e[17]=t=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_discharge",t*1e3))},null,8,["required","model-value"])):b("",!0)])):b("",!0)]))]),_:1}),i(W,{formName:"pvChargeConfigForm",onSave:e[18]||(e[18]=t=>n.$emit("save")),onReset:e[19]||(e[19]=t=>n.$emit("reset")),onDefaults:e[20]||(e[20]=t=>n.$emit("defaults"))})])])}const ge=E(C,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/PVChargeConfig.vue"]]);export{ge as default}; +import{C as B}from"./index-88a2073c.js";import{l as S,P as V,Z as k,_ as z,F as y}from"./vendor-fortawesome-71546160.js";import{_ as E,u as g,k as s,l as u,x as o,D as i,N as a,y as r,A as f,B as b}from"./vendor-f2b8aa6f.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";S.add(V,k,z);const C={name:"OpenwbPVChargeConfigView",mixins:[B],components:{FontAwesomeIcon:y},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 h="individual";return typeof e<"u"&&(e[0]===-230&&e[1]===0?h="export":e[0]===0&&e[1]===230?h="import":e[0]===-115&&e[1]===115?h="balanced":h="individual"),h},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}}},batMode(){return this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_mode"]}},watch:{controlMode(n){this.calculatedControlMode=n}}},M={class:"pvChargeConfig"},q={name:"pvChargeConfigForm"},L={key:0},A={key:1},P=o("br",null,null,-1),R=o("br",null,null,-1),$=o("hr",null,null,-1),U=o("br",null,null,-1),F=o("br",null,null,-1),D=o("hr",null,null,-1),N=o("br",null,null,-1),I=o("br",null,null,-1),Z=o("hr",null,null,-1),O=o("br",null,null,-1),T=o("br",null,null,-1),G=o("br",null,null,-1),H=o("br",null,null,-1),J={key:0},j={key:1},K={key:0},Q={key:1},X=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),Y={key:0},x=o("br",null,null,-1);function ee(n,e,h,ne,te,d){const m=g("openwb-base-alert"),p=g("openwb-base-button-group-input"),l=g("openwb-base-number-input"),_=g("openwb-base-card"),c=g("font-awesome-icon"),w=g("openwb-base-range-input"),v=g("openwb-base-heading"),W=g("openwb-base-submit-buttons");return s(),u("div",M,[o("form",q,[i(_,{title:"Regelparameter"},{default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(s(),u("div",L,[i(m,{subtype:"info"},{default:a(()=>[r(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(s(),u("div",A,[i(p,{title:"Regelmodus",buttons:[{buttonValue:"export",text:"Einspeisung"},{buttonValue:"import",text:"Bezug"},{buttonValue:"balanced",text:"Ausgewogen"},{buttonValue:"individual",text:"Individuell"}],modelValue:d.controlMode,"onUpdate:modelValue":e[0]||(e[0]=t=>d.controlMode=t)},{help:a(()=>[r(" 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."),P,r(" Bei Speichervorrang erzeugt die Regelung bei Bedarf unabhängig vom eingestellten Regelmodus Einspeisung, damit der Speicher seine Ladeleistung erhöht."),R,r(" Achtung: bei unlogischen Einstellungen kann die Regelung gestört werden! Im Zweifel bitte unsere vordefinierten Modi verwenden. ")]),_:1},8,["modelValue"]),i(l,{disabled:d.controlMode!=="individual",readonly:d.controlMode!=="individual",title:"Minimum",step:.005,unit:"kW","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]=t=>n.updateState("openWB/general/chargemode_config/pv_charging/control_range",t*1e3,"0"))},{help:a(()=>[r(" Untere Grenze des Regelbereichs. ")]),_:1},8,["disabled","readonly","model-value"]),i(l,{disabled:d.controlMode!=="individual",readonly:d.controlMode!=="individual",title:"Maximum",step:.005,unit:"kW","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]=t=>n.updateState("openWB/general/chargemode_config/pv_charging/control_range",t*1e3,"1"))},{help:a(()=>[r("Obere Grenze des Regelbereichs.")]),_:1},8,["disabled","readonly","model-value"]),$,i(l,{title:"Einschaltschwelle",min:0,step:.05,unit:"kW","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_threshold"]/1e3,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_on_threshold",t*1e3))},{help:a(()=>[r(" Wird der Regelbereich in Richtung Einspeisung um diese Leistung überschritten, so wird der Ladevorgang gestartet."),U,r(" Dieser Wert wird pro Phase genutzt und ist daher immer für eine Phase anzugeben. ")]),_:1},8,["model-value"]),i(l,{title:"Einschaltverzögerung",min:0,step:1,unit:"s","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_delay"],"onUpdate:modelValue":e[4]||(e[4]=t=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_on_delay",t))},{help:a(()=>[r(" Die Einschaltschwelle muss für die hier angegebene Zeit dauerhaft überschritten werden, bevor ein Ladevorgang gestartet wird."),F,r(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird weiter geladen, wenn die Abschaltschwelle nicht unterschritten wird. ")]),_:1},8,["model-value"]),D,i(l,{title:"Abschaltschwelle",step:.05,unit:"kW","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]/1e3,"onUpdate:modelValue":e[5]||(e[5]=t=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_off_threshold",t*1e3))},{help:a(()=>[r(" Wird der Regelbereich in Richtung Netzbezug um diese Leistung überschritten, so wird der Ladevorgang beendet. Wenn ein Speicher im System vorhanden ist, gilt die Abschaltschwelle auch für die Speicherentladung. Die Abschaltschwelle übersteuert den Mindest-SoC des Speichers (siehe Speicher-Beachtung unten)."),N,r(" Dieser Wert ist unabhängig von der Anzahl genutzter Phasen. ")]),_:1},8,["model-value"]),i(l,{title:"Abschaltverzögerung",min:0,step:1,unit:"s","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_delay"],"onUpdate:modelValue":e[6]||(e[6]=t=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_off_delay",t))},{help:a(()=>[r(" Die Abschaltschwelle muss für die hier angegebene Zeit dauerhaft unterschritten werden, bevor ein Ladevorgang beendet wird."),I,r(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird die Ladung sofort beendet, wenn die Abschaltschwelle unterschritten wird. ")]),_:1},8,["model-value"]),Z,i(l,{title:"Regelpunkt Einspeisegrenze",min:0,step:.05,unit:"kW","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/feed_in_yield"]/1e3,"onUpdate:modelValue":e[7]||(e[7]=t=>n.updateState("openWB/general/chargemode_config/pv_charging/feed_in_yield",t*1e3))},{help:a(()=>[r(" Ein Wert größer 0kW bewirkt, dass weniger PV-Leistung zum Laden benutzt wird."),O,r(" 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)."),T,r(' 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).'),G,r(' 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.'),H,r(" 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},8,["model-value"])]))]),_:1}),i(_,{title:"Phasenumschaltung"},{default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(s(),u("div",J,[i(m,{subtype:"info"},{default:a(()=>[r(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(s(),u("div",j,[i(p,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/phases_to_use"],"onUpdate:modelValue":e[8]||(e[8]=t=>n.updateState("openWB/general/chargemode_config/pv_charging/phases_to_use",t))},{help:a(()=>[r(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "PV-Laden" 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 den verfügbaren Überschuss in die Fahrzeuge zu laden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (s.g. 1p3p). ')]),_:1},8,["model-value"])]))]),_:1}),i(_,{title:"Speicher-Beachtung"},{default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(s(),u("div",K,[i(m,{subtype:"info"},{default:a(()=>[r(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(s(),u("div",Q,[i(p,{title:"Laden mit Überschuss",buttons:[{buttonValue:"ev_mode"},{buttonValue:"bat_mode"},{buttonValue:"min_soc_bat_mode"}],modelValue:d.batMode,"onUpdate:modelValue":[e[9]||(e[9]=t=>d.batMode=t),e[10]||(e[10]=t=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_mode",t))],"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_mode"]},{"label-ev_mode":a(()=>[i(c,{"fixed-width":"",icon:["fas","car-side"]}),r(" Fahrzeuge ")]),"label-bat_mode":a(()=>[i(c,{"fixed-width":"",icon:["fas","fa-car-battery"]}),r(" Speicher ")]),"label-min_soc_bat_mode":a(()=>[i(c,{"fixed-width":"",icon:["fas","fa-battery-half"]}),r(" Mindest-SoC des Speichers ")]),help:a(()=>[X,o("p",null,[r(' Bei Auswahl " '),i(c,{"fixed-width":"",icon:["fas","car-side"]}),r(' 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. ')]),o("p",null,[r(' Bei Auswahl " '),i(c,{"fixed-width":"",icon:["fas","fa-car-battery"]}),r(' 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. ')]),o("p",null,[r(' Bei Auswahl " '),i(c,{"fixed-width":"",icon:["fas","fa-battery-half"]}),r(' 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},8,["modelValue","model-value"]),d.batMode==="min_soc_bat_mode"?(s(),u("div",Y,[i(w,{title:"Mindest-SoC des Speichers",min:0,max:100,step:1,unit:"%",required:n.required,"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"],"onUpdate:modelValue":e[11]||(e[11]=t=>n.updateState("openWB/general/chargemode_config/pv_charging/min_bat_soc",t))},null,8,["required","model-value"]),i(v,null,{default:a(()=>[r("Speicher-SoC unterhalb Mindest-SoC")]),_:1}),i(p,{title:"Ladeleistung für Speicher reservieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],modelValue:n.batPowerReserveActive,"onUpdate:modelValue":[e[12]||(e[12]=t=>n.batPowerReserveActive=t),e[13]||(e[13]=t=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_reserve_active",t))],"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"]},{help:a(()=>[r("ACHTUNG: Der hier eingestellte Wert darf die maximale Ladeleistung des Speichers nicht überschreiten."),x,r(" Wird der Mindest-SoC des Speichers nicht erreicht, wird der Speicher mit der hier eingestellte Leistung geladen. Mit dem verbleibenden Überschuss werden die Fahrzeuge geladen.")]),_:1},8,["modelValue","model-value"]),n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"]?(s(),f(l,{key:0,title:"Reserve Ladeleistung",min:.1,step:.1,unit:"kW",required:n.required,"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve"]/1e3,"onUpdate:modelValue":e[14]||(e[14]=t=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_reserve",t*1e3))},null,8,["required","model-value"])):b("",!0),i(v,null,{default:a(()=>[r("Speicher-SoC oberhalb Mindest-SoC")]),_:1}),i(p,{title:"Entladung des Speichers erlauben",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],modelValue:n.batPowerReserveActive,"onUpdate:modelValue":[e[15]||(e[15]=t=>n.batPowerReserveActive=t),e[16]||(e[16]=t=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_discharge_active",t))],"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"]},{help:a(()=>[r("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},8,["modelValue","model-value"]),n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"]?(s(),f(l,{key:1,title:"Erlaubte Entladeleistung",min:.1,step:.1,unit:"kW",required:n.required,"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge"]/1e3,"onUpdate:modelValue":e[17]||(e[17]=t=>n.updateState("openWB/general/chargemode_config/pv_charging/bat_power_discharge",t*1e3))},null,8,["required","model-value"])):b("",!0)])):b("",!0)]))]),_:1}),i(W,{formName:"pvChargeConfigForm",onSave:e[18]||(e[18]=t=>n.$emit("save")),onReset:e[19]||(e[19]=t=>n.$emit("reset")),onDefaults:e[20]||(e[20]=t=>n.$emit("defaults"))})])])}const ge=E(C,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/PVChargeConfig.vue"]]);export{ge as default}; diff --git a/web/settings/assets/ScheduledChargeConfig-b2a3d789.js b/web/settings/assets/ScheduledChargeConfig-a3ebfb4e.js similarity index 97% rename from web/settings/assets/ScheduledChargeConfig-b2a3d789.js rename to web/settings/assets/ScheduledChargeConfig-a3ebfb4e.js index 67e8fa5642..8b7cad7c31 100644 --- a/web/settings/assets/ScheduledChargeConfig-b2a3d789.js +++ b/web/settings/assets/ScheduledChargeConfig-a3ebfb4e.js @@ -1 +1 @@ -import{C as p}from"./index-ba5cf04c.js";import{_ as c,u as s,k as i,l as u,x as l,D as o,N as a,y as r}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const _={name:"OpenwbScheduledChargeConfigView",mixins:[p],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/chargemode_config/scheduled_charging/phases_to_use","openWB/general/chargemode_config/scheduled_charging/phases_to_use_pv"]}}},b={class:"scheduledChargeConfig"},f={name:"scheduledChargeConfigForm"},v={key:0},w={key:1},k=l("hr",null,null,-1);function C(t,e,V,B,$,z){const g=s("openwb-base-alert"),d=s("openwb-base-button-group-input"),m=s("openwb-base-card"),h=s("openwb-base-submit-buttons");return i(),u("div",b,[l("form",f,[o(m,{title:"Phasenumschaltung"},{default:a(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(i(),u("div",v,[o(g,{subtype:"info"},{default:a(()=>[r(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(i(),u("div",w,[o(d,{title:"Anzahl Phasen Zielladen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/scheduled_charging/phases_to_use"],"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateState("openWB/general/chargemode_config/scheduled_charging/phases_to_use",n))},{help:a(()=>[r(' 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 (s.g. 1p3p). ')]),_:1},8,["model-value"]),k,o(d,{title:"Anzahl Phasen bei PV-Überschuss",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/scheduled_charging/phases_to_use_pv"],"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateState("openWB/general/chargemode_config/scheduled_charging/phases_to_use_pv",n))},{help:a(()=>[r(' 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 (s.g. 1p3p). ')]),_:1},8,["model-value"])]))]),_:1}),o(h,{formName:"scheduledChargeConfigForm",onSave:e[2]||(e[2]=n=>t.$emit("save")),onReset:e[3]||(e[3]=n=>t.$emit("reset")),onDefaults:e[4]||(e[4]=n=>t.$emit("defaults"))})])])}const y=c(_,[["render",C],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ScheduledChargeConfig.vue"]]);export{y as default}; +import{C as p}from"./index-88a2073c.js";import{_ as c,u as s,k as i,l as u,x as l,D as o,N as a,y as r}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const _={name:"OpenwbScheduledChargeConfigView",mixins:[p],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/chargemode_config/scheduled_charging/phases_to_use","openWB/general/chargemode_config/scheduled_charging/phases_to_use_pv"]}}},b={class:"scheduledChargeConfig"},f={name:"scheduledChargeConfigForm"},v={key:0},w={key:1},k=l("hr",null,null,-1);function C(t,e,V,B,$,z){const g=s("openwb-base-alert"),d=s("openwb-base-button-group-input"),m=s("openwb-base-card"),h=s("openwb-base-submit-buttons");return i(),u("div",b,[l("form",f,[o(m,{title:"Phasenumschaltung"},{default:a(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(i(),u("div",v,[o(g,{subtype:"info"},{default:a(()=>[r(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(i(),u("div",w,[o(d,{title:"Anzahl Phasen Zielladen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/scheduled_charging/phases_to_use"],"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateState("openWB/general/chargemode_config/scheduled_charging/phases_to_use",n))},{help:a(()=>[r(' 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 (s.g. 1p3p). ')]),_:1},8,["model-value"]),k,o(d,{title:"Anzahl Phasen bei PV-Überschuss",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/scheduled_charging/phases_to_use_pv"],"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateState("openWB/general/chargemode_config/scheduled_charging/phases_to_use_pv",n))},{help:a(()=>[r(' 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 (s.g. 1p3p). ')]),_:1},8,["model-value"])]))]),_:1}),o(h,{formName:"scheduledChargeConfigForm",onSave:e[2]||(e[2]=n=>t.$emit("save")),onReset:e[3]||(e[3]=n=>t.$emit("reset")),onDefaults:e[4]||(e[4]=n=>t.$emit("defaults"))})])])}const y=c(_,[["render",C],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ScheduledChargeConfig.vue"]]);export{y as default}; diff --git a/web/settings/assets/Status-d562c100.js b/web/settings/assets/Status-3ed5f34f.js similarity index 99% rename from web/settings/assets/Status-d562c100.js rename to web/settings/assets/Status-3ed5f34f.js index 4d11dde139..92db8753eb 100644 --- a/web/settings/assets/Status-d562c100.js +++ b/web/settings/assets/Status-3ed5f34f.js @@ -1 +1 @@ -import{C as y}from"./index-ba5cf04c.js";import{l as w,K as L,F as x,L as k,M as C,c as T,N as z,O as S,P as A,Q as E,R as M,S as V}from"./vendor-fortawesome-71546160.js";import{_ as W,u as n,k as a,A as s,N as u,D as t,y as c,z as g,x as v,B as q,S as H,U as Z,l as I,J as P,K as $}from"./vendor-f2b8aa6f.js";import{C as K,p as F,a as J,L as U,b as G,P as Q,c as X,T as Y,i as ee,d as te,e as ne}from"./vendor-chartjs-35992f4a.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";import"./vendor-luxon-8ddd27a0.js";w.add(L);const oe={name:"ChargePointSumCard",mixins:[y],components:{FontAwesomeIcon:x}};function ae(e,_,o,h,m,r){const l=n("font-awesome-icon"),p=n("openwb-base-text-input"),d=n("openwb-base-heading"),i=n("openwb-base-card");return a(),s(i,{subtype:"primary",collapsible:!0,collapsed:!0},{header:u(()=>[t(l,{"fixed-width":"",icon:["fas","charging-station"]}),c(" Alle Ladepunkte ")]),default:u(()=>[t(p,{title:"Leistung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kW","model-value":e.formatNumberTopic("openWB/chargepoint/get/power",3,3,.001)},null,8,["model-value"]),t(p,{title:"Zählerstand laden",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/chargepoint/get/imported",3,3,.001)},null,8,["model-value"]),t(p,{title:"Zählerstand entladen",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/chargepoint/get/exported",3,3,.001)},null,8,["model-value"]),t(d,null,{default:u(()=>[c("Historie")]),_:1}),t(p,{title:"Heute geladen",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/chargepoint/get/daily_imported",3,3,.001)},null,8,["model-value"]),t(p,{title:"Heute entladen",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/chargepoint/get/daily_exported",3,3,.001)},null,8,["model-value"])]),_:1})}const re=W(oe,[["render",ae],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ChargePointSumCard.vue"]]);w.add(k,C,T,L);const se={name:"ChargePointCard",mixins:[y],components:{FontAwesomeIcon:x},props:{installedChargePointKey:String,installedChargePoint:Object},data(){return{statusLevel:["success","warning","danger"]}},computed:{chargePointIndex:{get(){return parseInt(this.installedChargePointKey.match(/(?:\/)(\d+)(?=\/)/)[1])}}}},le=v("br",null,null,-1),ie=v("br",null,null,-1);function ce(e,_,o,h,m,r){const l=n("font-awesome-icon"),p=n("openwb-base-alert"),d=n("openwb-base-checkbox-input"),i=n("openwb-base-text-input"),f=n("openwb-base-heading"),B=n("openwb-base-card");return a(),s(B,{subtype:"primary",collapsible:!0,collapsed:!0},{header:u(()=>[t(l,{"fixed-width":"",icon:["fas","charging-station"]}),c(" "+g(o.installedChargePoint.name)+" (ID: "+g(r.chargePointIndex)+") ",1)]),default:u(()=>[t(p,{subtype:m.statusLevel[e.$store.state.mqtt["openWB/chargepoint/"+r.chargePointIndex+"/get/fault_state"]]},{default:u(()=>[e.$store.state.mqtt["openWB/chargepoint/"+r.chargePointIndex+"/get/fault_state"]==1?(a(),s(l,{key:0,"fixed-width":"",icon:["fas","exclamation-triangle"]})):e.$store.state.mqtt["openWB/chargepoint/"+r.chargePointIndex+"/get/fault_state"]==2?(a(),s(l,{key:1,"fixed-width":"",icon:["fas","times-circle"]})):(a(),s(l,{key:2,"fixed-width":"",icon:["fas","check-circle"]})),c(" Modulmeldung:"),le,c(" "+g(e.$store.state.mqtt["openWB/chargepoint/"+r.chargePointIndex+"/get/fault_str"]),1)]),_:1},8,["subtype"]),t(p,{subtype:"info"},{default:u(()=>[c(" Statusmeldung:"),ie,c(" "+g(e.$store.state.mqtt["openWB/chargepoint/"+r.chargePointIndex+"/get/state_str"]),1)]),_:1}),t(d,{title:"Fahrzeug angesteckt",disabled:"","model-value":e.$store.state.mqtt["openWB/chargepoint/"+r.chargePointIndex+"/get/plug_state"]==1},null,8,["model-value"]),t(d,{title:"Ladevorgang aktiv",disabled:"","model-value":e.$store.state.mqtt["openWB/chargepoint/"+r.chargePointIndex+"/get/charge_state"]==1},null,8,["model-value"]),t(i,{title:"Zählerstand laden",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/chargepoint/"+r.chargePointIndex+"/get/imported",3,3,.001)},null,8,["model-value"]),t(i,{title:"Zählerstand entladen",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/chargepoint/"+r.chargePointIndex+"/get/exported",3,3,.001)},null,8,["model-value"]),t(i,{title:"Heute geladen",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/chargepoint/"+r.chargePointIndex+"/get/daily_imported",3,3,.001)},null,8,["model-value"]),t(i,{title:"Heute entladen",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/chargepoint/"+r.chargePointIndex+"/get/daily_exported",3,3,.001)},null,8,["model-value"]),t(i,{title:"Wirkleistung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kW","model-value":e.formatNumberTopic("openWB/chargepoint/"+r.chargePointIndex+"/get/power",3,3,.001)},null,8,["model-value"]),t(i,{title:"Ladestromvorgabe",readonly:"",class:"text-right text-monospace",step:"0.01",unit:"A","model-value":e.formatNumberTopic("openWB/chargepoint/"+r.chargePointIndex+"/set/current",2)},null,8,["model-value"]),t(i,{title:"Netzfrequenz",readonly:"",class:"text-right text-monospace",step:"0.01",unit:"Hz","model-value":e.formatNumberTopic("openWB/chargepoint/"+r.chargePointIndex+"/get/frequency",2)},null,8,["model-value"]),t(f,null,{default:u(()=>[c("Werte pro Phase")]),_:1}),t(i,{title:"Spannung",readonly:"",class:"text-right text-monospace",unit:"V","model-value":e.formatPhaseArrayNumberTopic("openWB/chargepoint/"+r.chargePointIndex+"/get/voltages",1)},null,8,["model-value"]),t(i,{title:"Strom",readonly:"",class:"text-right text-monospace",unit:"A","model-value":e.formatPhaseArrayNumberTopic("openWB/chargepoint/"+r.chargePointIndex+"/get/currents",2)},null,8,["model-value"]),t(i,{title:"Wirkleistung",readonly:"",class:"text-right text-monospace",unit:"kW","model-value":e.formatPhaseArrayNumberTopic("openWB/chargepoint/"+r.chargePointIndex+"/get/powers",3,3,.001)},null,8,["model-value"]),t(i,{title:"Leistungsfaktor",readonly:"",class:"text-right text-monospace","model-value":e.formatPhaseArrayNumberTopic("openWB/chargepoint/"+r.chargePointIndex+"/get/power_factors",2)},null,8,["model-value"]),t(f,null,{default:u(()=>[c("Phasen")]),_:1}),e.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s(i,{key:0,title:"Vorgabe",readonly:"",class:"text-right text-monospace","model-value":e.formatNumberTopic("openWB/internal_chargepoint/"+r.chargePointIndex+"/data/phases_to_use")},null,8,["model-value"])):(a(),s(i,{key:1,title:"Vorgabe",readonly:"",class:"text-right text-monospace","model-value":e.formatNumberTopic("openWB/chargepoint/"+r.chargePointIndex+"/set/phases_to_use")},null,8,["model-value"])),t(i,{title:"Aktuell",readonly:"",class:"text-right text-monospace","model-value":e.formatNumberTopic("openWB/chargepoint/"+r.chargePointIndex+"/get/phases_in_use")},null,8,["model-value"])]),_:1})}const ue=W(se,[["render",ce],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ChargePointCard.vue"]]);w.add(k,C,T,z);const de={name:"CounterCard",mixins:[y],components:{FontAwesomeIcon:x},props:{counter:Object},data(){return{statusLevel:["success","warning","danger"]}}},pe=v("br",null,null,-1),me=v("br",null,null,-1);function ge(e,_,o,h,m,r){const l=n("font-awesome-icon"),p=n("openwb-base-alert"),d=n("openwb-base-heading"),i=n("openwb-base-text-input"),f=n("openwb-base-card");return a(),s(f,{subtype:"danger",collapsible:!0,collapsed:!0},{header:u(()=>[t(l,{"fixed-width":"",icon:["fas","gauge-high"]}),c(" "+g(o.counter.name)+" (ID: "+g(o.counter.id)+") ",1)]),default:u(()=>[t(p,{subtype:m.statusLevel[e.$store.state.mqtt["openWB/counter/"+o.counter.id+"/get/fault_state"]]},{default:u(()=>[e.$store.state.mqtt["openWB/counter/"+o.counter.id+"/get/fault_state"]==1?(a(),s(l,{key:0,"fixed-width":"",icon:["fas","exclamation-triangle"]})):e.$store.state.mqtt["openWB/counter/"+o.counter.id+"/get/fault_state"]==2?(a(),s(l,{key:1,"fixed-width":"",icon:["fas","times-circle"]})):(a(),s(l,{key:2,"fixed-width":"",icon:["fas","check-circle"]})),c(" Modulmeldung:"),pe,c(" "+g(e.$store.state.mqtt["openWB/counter/"+o.counter.id+"/get/fault_str"]),1)]),_:1},8,["subtype"]),e.$store.state.mqtt["openWB/counter/"+o.counter.id+"/get/state_str"]!=null?(a(),s(p,{key:0,subtype:"info"},{default:u(()=>[c(" Statusmeldung:"),me,c(" "+g(e.$store.state.mqtt["openWB/counter/"+o.counter.id+"/get/state_str"]),1)]),_:1})):q("",!0),t(d,null,{default:u(()=>[c("Zählerstände")]),_:1}),t(i,{title:"Export",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/counter/"+o.counter.id+"/get/exported",3,3,.001)},null,8,["model-value"]),t(i,{title:"Import",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/counter/"+o.counter.id+"/get/imported",3,3,.001)},null,8,["model-value"]),t(d,null,{default:u(()=>[c("Saldierte Werte")]),_:1}),t(i,{title:"Wirkleistung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kW","model-value":e.formatNumberTopic("openWB/counter/"+o.counter.id+"/get/power",3,3,.001)},null,8,["model-value"]),t(i,{title:"Netzfrequenz",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"Hz","model-value":e.formatNumberTopic("openWB/counter/"+o.counter.id+"/get/frequency",3)},null,8,["model-value"]),t(d,null,{default:u(()=>[c("Werte pro Phase")]),_:1}),t(i,{title:"Spannung",readonly:"",class:"text-right text-monospace",unit:"V","model-value":e.formatPhaseArrayNumberTopic("openWB/counter/"+o.counter.id+"/get/voltages",1)},null,8,["model-value"]),t(i,{title:"Strom",readonly:"",class:"text-right text-monospace",unit:"A","model-value":e.formatPhaseArrayNumberTopic("openWB/counter/"+o.counter.id+"/get/currents",2)},null,8,["model-value"]),t(i,{title:"Wirkleistung",readonly:"",class:"text-right text-monospace",unit:"kW","model-value":e.formatPhaseArrayNumberTopic("openWB/counter/"+o.counter.id+"/get/powers",3,3,.001)},null,8,["model-value"]),t(i,{title:"Leistungsfaktor",readonly:"",class:"text-right text-monospace","model-value":e.formatPhaseArrayNumberTopic("openWB/counter/"+o.counter.id+"/get/power_factors",2)},null,8,["model-value"])]),_:1})}const _e=W(de,[["render",ge],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/CounterCard.vue"]]);w.add(k,C,T,S);const he={name:"InverterSumCard",mixins:[y],components:{FontAwesomeIcon:x},data(){return{statusLevel:["success","warning","danger"]}}},fe=v("br",null,null,-1);function be(e,_,o,h,m,r){const l=n("font-awesome-icon"),p=n("openwb-base-alert"),d=n("openwb-base-text-input"),i=n("openwb-base-heading"),f=n("openwb-base-card");return a(),s(f,{subtype:"success",collapsible:!0,collapsed:!0},{header:u(()=>[t(l,{"fixed-width":"",icon:["fas","solar-panel"]}),c(" Alle Wechselrichter ")]),default:u(()=>[t(p,{subtype:m.statusLevel[e.$store.state.mqtt["openWB/pv/get/fault_state"]]},{default:u(()=>[e.$store.state.mqtt["openWB/pv/get/fault_state"]==1?(a(),s(l,{key:0,"fixed-width":"",icon:["fas","exclamation-triangle"]})):e.$store.state.mqtt["openWB/pv/get/fault_state"]==2?(a(),s(l,{key:1,"fixed-width":"",icon:["fas","times-circle"]})):(a(),s(l,{key:2,"fixed-width":"",icon:["fas","check-circle"]})),c(" Modulmeldung:"),fe,c(" "+g(e.$store.state.mqtt["openWB/pv/get/fault_str"]),1)]),_:1},8,["subtype"]),t(d,{title:"Zählerstand",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/pv/get/exported",3,3,.001)},null,8,["model-value"]),t(d,{title:"Leistung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kW","model-value":e.formatNumberTopic("openWB/pv/get/power",3,3,.001)},null,8,["model-value"]),t(i,null,{default:u(()=>[c("Erträge")]),_:1}),t(d,{title:"Heute",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/pv/get/daily_exported",3,3,.001)},null,8,["model-value"]),t(d,{title:"Dieser Monat",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/pv/get/monthly_exported",3,3,.001)},null,8,["model-value"]),t(d,{title:"Dieses Jahr",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/pv/get/yearly_exported",3,3,.001)},null,8,["model-value"])]),_:1})}const ve=W(he,[["render",be],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/InverterSumCard.vue"]]);w.add(k,C,T,S);const ye={name:"InverterCard",mixins:[y],components:{FontAwesomeIcon:x},props:{inverter:Object},data(){return{statusLevel:["success","warning","danger"]}}},We=v("br",null,null,-1);function we(e,_,o,h,m,r){const l=n("font-awesome-icon"),p=n("openwb-base-alert"),d=n("openwb-base-text-input"),i=n("openwb-base-heading"),f=n("openwb-base-card");return a(),s(f,{subtype:"success",collapsible:!0,collapsed:!0},{header:u(()=>[t(l,{"fixed-width":"",icon:["fas","solar-panel"]}),c(" "+g(o.inverter.name)+" (ID: "+g(o.inverter.id)+") ",1)]),default:u(()=>[t(p,{subtype:m.statusLevel[e.$store.state.mqtt["openWB/pv/"+o.inverter.id+"/get/fault_state"]]},{default:u(()=>[e.$store.state.mqtt["openWB/pv/"+o.inverter.id+"/get/fault_state"]==1?(a(),s(l,{key:0,"fixed-width":"",icon:["fas","exclamation-triangle"]})):e.$store.state.mqtt["openWB/pv/"+o.inverter.id+"/get/fault_state"]==2?(a(),s(l,{key:1,"fixed-width":"",icon:["fas","times-circle"]})):(a(),s(l,{key:2,"fixed-width":"",icon:["fas","check-circle"]})),c(" Modulmeldung:"),We,c(" "+g(e.$store.state.mqtt["openWB/pv/"+o.inverter.id+"/get/fault_str"]),1)]),_:1},8,["subtype"]),t(d,{title:"Zählerstand",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/pv/"+o.inverter.id+"/get/exported",3,3,.001)},null,8,["model-value"]),t(d,{title:"Leistung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kW","model-value":e.formatNumberTopic("openWB/pv/"+o.inverter.id+"/get/power",3,3,.001)},null,8,["model-value"]),t(i,null,{default:u(()=>[c("Erträge")]),_:1}),t(d,{title:"Heute",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/pv/"+o.inverter.id+"/get/daily_exported",3,3,.001)},null,8,["model-value"]),t(d,{title:"Dieser Monat",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/pv/"+o.inverter.id+"/get/monthly_exported",3,3,.001)},null,8,["model-value"]),t(d,{title:"Dieses Jahr",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/pv/"+o.inverter.id+"/get/yearly_exported",3,3,.001)},null,8,["model-value"])]),_:1})}const xe=W(ye,[["render",we],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/InverterCard.vue"]]);w.add(k,C,T,A);const Be={name:"BatterySumCard",mixins:[y],components:{FontAwesomeIcon:x},data(){return{statusLevel:["success","warning","danger"]}}},ke=v("br",null,null,-1);function Ce(e,_,o,h,m,r){const l=n("font-awesome-icon"),p=n("openwb-base-alert"),d=n("openwb-base-heading"),i=n("openwb-base-text-input"),f=n("openwb-base-number-input"),B=n("openwb-base-card");return a(),s(B,{subtype:"warning",collapsible:!0,collapsed:!0},{header:u(()=>[t(l,{"fixed-width":"",icon:["fas","car-battery"]}),c(" Alle Speicher ")]),default:u(()=>[t(p,{subtype:m.statusLevel[e.$store.state.mqtt["openWB/bat/get/fault_state"]]},{default:u(()=>[e.$store.state.mqtt["openWB/bat/get/fault_state"]==1?(a(),s(l,{key:0,"fixed-width":"",icon:["fas","exclamation-triangle"]})):e.$store.state.mqtt["openWB/bat/get/fault_state"]==2?(a(),s(l,{key:1,"fixed-width":"",icon:["fas","times-circle"]})):(a(),s(l,{key:2,"fixed-width":"",icon:["fas","check-circle"]})),c(" Modulmeldung:"),ke,c(" "+g(e.$store.state.mqtt["openWB/bat/get/fault_str"]),1)]),_:1},8,["subtype"]),t(d,null,{default:u(()=>[c("Zählerstände")]),_:1}),t(i,{title:"Ladung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/bat/get/imported",3,3,.001)},null,8,["model-value"]),t(i,{title:"Entladung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/bat/get/exported",3,3,.001)},null,8,["model-value"]),t(d,null,{default:u(()=>[c("Tageswerte")]),_:1}),t(i,{title:"Ladung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/bat/get/daily_imported",3,3,.001)},null,8,["model-value"]),t(i,{title:"Entladung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/bat/get/daily_exported",3,3,.001)},null,8,["model-value"]),t(d,null,{default:u(()=>[c("Saldierte Werte")]),_:1}),t(i,{title:"Leistung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kW","model-value":e.formatNumberTopic("openWB/bat/get/power",3,3,.001)},null,8,["model-value"]),t(f,{title:"Ladestand",readonly:"",class:"text-right text-monospace",unit:"%","model-value":e.$store.state.mqtt["openWB/bat/get/soc"]},null,8,["model-value"])]),_:1})}const Te=W(Be,[["render",Ce],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/BatterySumCard.vue"]]);w.add(k,C,T,A);const qe={name:"InverterCard",mixins:[y],components:{FontAwesomeIcon:x},props:{battery:Object},data(){return{statusLevel:["success","warning","danger"]}}},Ie=v("br",null,null,-1);function Ne(e,_,o,h,m,r){const l=n("font-awesome-icon"),p=n("openwb-base-alert"),d=n("openwb-base-heading"),i=n("openwb-base-text-input"),f=n("openwb-base-number-input"),B=n("openwb-base-card");return a(),s(B,{subtype:"warning",collapsible:!0,collapsed:!0},{header:u(()=>[t(l,{"fixed-width":"",icon:["fas","car-battery"]}),c(" "+g(o.battery.name)+" (ID: "+g(o.battery.id)+") ",1)]),default:u(()=>[t(p,{subtype:m.statusLevel[e.$store.state.mqtt["openWB/bat/"+o.battery.id+"/get/fault_state"]]},{default:u(()=>[e.$store.state.mqtt["openWB/bat/"+o.battery.id+"/get/fault_state"]==1?(a(),s(l,{key:0,"fixed-width":"",icon:["fas","exclamation-triangle"]})):e.$store.state.mqtt["openWB/bat/"+o.battery.id+"/get/fault_state"]==2?(a(),s(l,{key:1,"fixed-width":"",icon:["fas","times-circle"]})):(a(),s(l,{key:2,"fixed-width":"",icon:["fas","check-circle"]})),c(" Modulmeldung:"),Ie,c(" "+g(e.$store.state.mqtt["openWB/bat/"+o.battery.id+"/get/fault_str"]),1)]),_:1},8,["subtype"]),t(d,null,{default:u(()=>[c("Aktuelle Werte")]),_:1}),t(i,{title:"Leistung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kW","model-value":e.formatNumberTopic("openWB/bat/"+o.battery.id+"/get/power",3,3,.001)},null,8,["model-value"]),t(f,{title:"Ladestand",readonly:"",class:"text-right text-monospace",unit:"%","model-value":e.$store.state.mqtt["openWB/bat/"+o.battery.id+"/get/soc"]},null,8,["model-value"]),t(d,null,{default:u(()=>[c("Zählerstände")]),_:1}),t(i,{title:"Ladung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/bat/"+o.battery.id+"/get/imported",3,3,.001)},null,8,["model-value"]),t(i,{title:"Entladung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/bat/"+o.battery.id+"/get/exported",3,3,.001)},null,8,["model-value"])]),_:1})}const Pe=W(qe,[["render",Ne],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/BatteryCard.vue"]]);w.add(k,C,T,E);const $e={name:"RippleControlReceiverCard",mixins:[y],components:{FontAwesomeIcon:x},data(){return{mqttTopicsToSubscribe:["openWB/general/ripple_control_receiver/get/fault_state","openWB/general/ripple_control_receiver/get/fault_str","openWB/general/ripple_control_receiver/get/override_value","openWB/general/ripple_control_receiver/module"],statusLevel:["success","warning","danger"]}}},Le=v("br",null,null,-1);function Se(e,_,o,h,m,r){const l=n("font-awesome-icon"),p=n("openwb-base-alert"),d=n("openwb-base-text-input"),i=n("openwb-base-card");return e.$store.state.mqtt["openWB/general/ripple_control_receiver/module"]&&e.$store.state.mqtt["openWB/general/ripple_control_receiver/module"].type?(a(),s(i,{key:0,subtype:"secondary",collapsible:!0,collapsed:!0},{header:u(()=>[t(l,{icon:["fas","tower-broadcast"]}),c(" Steuerbare Verbrauchseinrichtung (RSE) ")]),default:u(()=>[t(p,{subtype:m.statusLevel[e.$store.state.mqtt["openWB/general/ripple_control_receiver/get/fault_state"]]},{default:u(()=>[e.$store.state.mqtt["openWB/general/ripple_control_receiver/get/fault_state"]==1?(a(),s(l,{key:0,"fixed-width":"",icon:["fas","exclamation-triangle"]})):e.$store.state.mqtt["openWB/general/ripple_control_receiver/get/fault_state"]==2?(a(),s(l,{key:1,"fixed-width":"",icon:["fas","times-circle"]})):(a(),s(l,{key:2,"fixed-width":"",icon:["fas","check-circle"]})),c(" Modulmeldung:"),Le,c(" "+g(e.$store.state.mqtt["openWB/general/ripple_control_receiver/get/fault_str"]),1)]),_:1},8,["subtype"]),t(d,{title:"Status",readonly:"","model-value":e.$store.state.mqtt["openWB/general/ripple_control_receiver/get/override_value"]==0?"Laden gesperrt":"Laden erlaubt ("+e.$store.state.mqtt["openWB/general/ripple_control_receiver/get/override_value"]+"%)"},null,8,["model-value"])]),_:1})):q("",!0)}const Ae=W($e,[["render",Se],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/RippleControlReceiver.vue"]]);w.add(k,C,T,M);const Oe={name:"VehicleCard",mixins:[y],components:{FontAwesomeIcon:x},props:{vehicle:Object,vehicleKey:String,vehicleName:String},data(){return{statusLevel:["success","warning","danger"]}},computed:{vehicleIndex:{get(){return parseInt(this.vehicleKey.match(/(?:\/)(\d+)(?=\/)/)[1])}},socTimestamp:{get(){return this.$store.state.mqtt["openWB/vehicle/"+this.vehicleIndex+"/get/soc_timestamp"]!==void 0?new Date(this.$store.state.mqtt["openWB/vehicle/"+this.vehicleIndex+"/get/soc_timestamp"]*1e3).toLocaleString():"-"}},socRange:{get(){return this.$store.state.mqtt["openWB/vehicle/"+this.vehicleIndex+"/get/range"]!==void 0?Math.round(this.$store.state.mqtt["openWB/vehicle/"+this.vehicleIndex+"/get/range"]):0}}}},je=v("br",null,null,-1);function De(e,_,o,h,m,r){const l=n("font-awesome-icon"),p=n("openwb-base-alert"),d=n("openwb-base-heading"),i=n("openwb-base-number-input"),f=n("openwb-base-text-input"),B=n("openwb-base-card");return a(),s(B,{subtype:"info",collapsible:!0,collapsed:!0},{header:u(()=>[t(l,{"fixed-width":"",icon:["fas","car"]}),c(" "+g(o.vehicleName)+" (ID: "+g(r.vehicleIndex)+") ",1)]),default:u(()=>[e.$store.state.mqtt["openWB/vehicle/"+r.vehicleIndex+"/get/fault_state"]!==void 0?(a(),s(p,{key:0,subtype:m.statusLevel[e.$store.state.mqtt["openWB/vehicle/"+r.vehicleIndex+"/get/fault_state"]]},{default:u(()=>[e.$store.state.mqtt["openWB/vehicle/"+r.vehicleIndex+"/get/fault_state"]==1?(a(),s(l,{key:0,"fixed-width":"",icon:["fas","exclamation-triangle"]})):e.$store.state.mqtt["openWB/vehicle/"+r.vehicleIndex+"/get/fault_state"]==2?(a(),s(l,{key:1,"fixed-width":"",icon:["fas","times-circle"]})):(a(),s(l,{key:2,"fixed-width":"",icon:["fas","check-circle"]})),c(" Modulmeldung:"),je,c(" "+g(e.$store.state.mqtt["openWB/vehicle/"+r.vehicleIndex+"/get/fault_str"]),1)]),_:1},8,["subtype"])):q("",!0),t(d,null,{default:u(()=>[c("Fahrzeugdaten")]),_:1}),t(i,{title:"Ladestand",readonly:"",class:"text-right text-monospace",unit:"%","model-value":e.$store.state.mqtt["openWB/vehicle/"+r.vehicleIndex+"/get/soc"]},null,8,["model-value"]),t(i,{title:"Reichweite",readonly:"",class:"text-right text-monospace",unit:"km","model-value":r.socRange},null,8,["model-value"]),t(f,{title:"Letzter Zeitstempel",readonly:"",class:"text-right text-monospace","model-value":r.socTimestamp},null,8,["model-value"])]),_:1})}const Re=W(Oe,[["render",De],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/VehicleCard.vue"]]);w.add(k,C,T,V);K.register(F,J,U,G,Q,X,Y,ee,te);const ze={name:"ElectricityTariffCard",mixins:[y],components:{ChartjsLine:ne,FontAwesomeIcon:x},data(){return{mqttTopicsToSubscribe:["openWB/optional/et/provider","openWB/optional/et/get/fault_state","openWB/optional/et/get/fault_str","openWB/optional/et/get/prices"],statusLevel:["success","warning","danger"],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 e=this.$store.state.mqtt["openWB/optional/et/provider"];return e!==void 0?e.type!==null:!1},chartDataRead(){return this.chartDataObject.datasets[0].data!=null},chartDataObject(){if(this.$store.state.mqtt["openWB/optional/et/get/prices"]){var e=this.$store.state.mqtt["openWB/optional/et/get/prices"],_=[];for(const[m,r]of Object.entries(e))_.push({timestamp:m*1e3,price:r*1e5});const h=_.slice(-1)[0];_.push({timestamp:h.timestamp+(60*60-1)*1e3,price:h.price})}const o=this.chartDatasets;return o.datasets[0].data=_,o}}},Ee=e=>(H("data-v-f4769d2f"),e=e(),Z(),e),Me=Ee(()=>v("br",null,null,-1)),Ve={class:"openwb-chart"};function He(e,_,o,h,m,r){const l=n("font-awesome-icon"),p=n("openwb-base-alert"),d=n("openwb-base-text-input"),i=n("chartjs-line"),f=n("openwb-base-card");return r.electricityTariffConfigured?(a(),s(f,{key:0,subtype:"secondary",collapsible:!0,collapsed:!0},{header:u(()=>[t(l,{"fixed-width":"",icon:["fas","ranking-star"]}),c(" Variabler Stromtarif ")]),default:u(()=>[t(p,{subtype:m.statusLevel[e.$store.state.mqtt["openWB/optional/et/get/fault_state"]]},{default:u(()=>[e.$store.state.mqtt["openWB/optional/et/get/fault_state"]==1?(a(),s(l,{key:0,"fixed-width":"",icon:["fas","exclamation-triangle"]})):e.$store.state.mqtt["openWB/optional/et/get/fault_state"]==2?(a(),s(l,{key:1,"fixed-width":"",icon:["fas","times-circle"]})):(a(),s(l,{key:2,"fixed-width":"",icon:["fas","check-circle"]})),c(" Modulmeldung:"),Me,c(" "+g(e.$store.state.mqtt["openWB/optional/et/get/fault_str"]),1)]),_:1},8,["subtype"]),t(d,{title:"Anbieter",readonly:"","model-value":e.$store.state.mqtt["openWB/optional/et/provider"].name},null,8,["model-value"]),v("div",Ve,[r.chartDataRead?(a(),s(i,{key:0,ref:"myChart",data:r.chartDataObject,options:m.chartOptions},null,8,["data","options"])):q("",!0)])]),_:1})):q("",!0)}const Ze=W(ze,[["render",He],["__scopeId","data-v-f4769d2f"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ElectricityTariffCard.vue"]]);const Ke={name:"OpenwbStatusView",mixins:[y],components:{ChargePointSumCard:re,ChargePointCard:ue,CounterCard:_e,InverterSumCard:ve,InverterCard:xe,BatterySumCard:Te,BatteryCard:Pe,RippleControlReceiverCard:Ae,VehicleCard:Re,ElectricityTariffCard:Ze},data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/chargepoint/get/power","openWB/chargepoint/get/imported","openWB/chargepoint/get/exported","openWB/chargepoint/get/daily_imported","openWB/chargepoint/get/daily_exported","openWB/chargepoint/+/config","openWB/chargepoint/+/get/+","openWB/chargepoint/+/get/connected_vehicle/info","openWB/chargepoint/+/set/+","openWB/internal_chargepoint/+/data/phases_to_use","openWB/system/device/+/component/+/config","openWB/counter/+/get/+","openWB/pv/get/+","openWB/pv/+/get/+","openWB/bat/get/+","openWB/bat/+/get/+","openWB/vehicle/+/name","openWB/vehicle/+/get/+"]}},computed:{installedChargePoints:{get(){let e=this.getWildcardTopics("openWB/chargepoint/+/config"),_={};for(const[o,h]of Object.entries(e))(h.type==="internal_openwb"||this.$store.state.mqtt["openWB/general/extern"]===!1)&&(_[o]=h);return _}},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")}},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(e,_){return Object.keys(e).filter(o=>e[o].type.includes(_)).reduce((o,h)=>({...o,[h]:e[h]}),{})}}},Fe={class:"status"};function Je(e,_,o,h,m,r){const l=n("charge-point-sum-card"),p=n("charge-point-card"),d=n("counter-card"),i=n("inverter-sum-card"),f=n("inverter-card"),B=n("battery-sum-card"),O=n("battery-card"),j=n("vehicle-card"),D=n("electricity-tariff-card"),R=n("ripple-control-receiver-card");return a(),I("div",Fe,[r.numChargePointsInstalled>1&&e.$store.state.mqtt["openWB/general/extern"]===!1?(a(),s(l,{key:0})):q("",!0),(a(!0),I(P,null,$(r.installedChargePoints,(b,N)=>(a(),s(p,{key:N,installedChargePoint:b,installedChargePointKey:N},null,8,["installedChargePoint","installedChargePointKey"]))),128)),(a(!0),I(P,null,$(r.counterConfigs,b=>(a(),s(d,{key:b.id,counter:b},null,8,["counter"]))),128)),r.numInvertersInstalled>1&&e.$store.state.mqtt["openWB/general/extern"]===!1?(a(),s(i,{key:1})):q("",!0),(a(!0),I(P,null,$(r.inverterConfigs,b=>(a(),s(f,{key:b.id,inverter:b},null,8,["inverter"]))),128)),r.numBatteriesInstalled>1&&e.$store.state.mqtt["openWB/general/extern"]===!1?(a(),s(B,{key:2})):q("",!0),(a(!0),I(P,null,$(r.batteryConfigs,b=>(a(),s(O,{key:b.id,battery:b},null,8,["battery"]))),128)),(a(!0),I(P,null,$(r.vehicleNames,(b,N)=>(a(),s(j,{key:N,vehicleKey:N,vehicleName:b},null,8,["vehicleKey","vehicleName"]))),128)),t(D),t(R)])}const at=W(Ke,[["render",Je],["__scopeId","data-v-051028a3"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Status.vue"]]);export{at as default}; +import{C as y}from"./index-88a2073c.js";import{l as w,K as L,F as x,L as k,M as C,c as T,N as z,O as S,P as A,Q as E,R as M,S as V}from"./vendor-fortawesome-71546160.js";import{_ as W,u as n,k as a,A as s,N as u,D as t,y as c,z as g,x as v,B as q,S as H,U as Z,l as I,J as P,K as $}from"./vendor-f2b8aa6f.js";import{C as K,p as F,a as J,L as U,b as G,P as Q,c as X,T as Y,i as ee,d as te,e as ne}from"./vendor-chartjs-35992f4a.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";import"./vendor-luxon-8ddd27a0.js";w.add(L);const oe={name:"ChargePointSumCard",mixins:[y],components:{FontAwesomeIcon:x}};function ae(e,_,o,h,m,r){const l=n("font-awesome-icon"),p=n("openwb-base-text-input"),d=n("openwb-base-heading"),i=n("openwb-base-card");return a(),s(i,{subtype:"primary",collapsible:!0,collapsed:!0},{header:u(()=>[t(l,{"fixed-width":"",icon:["fas","charging-station"]}),c(" Alle Ladepunkte ")]),default:u(()=>[t(p,{title:"Leistung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kW","model-value":e.formatNumberTopic("openWB/chargepoint/get/power",3,3,.001)},null,8,["model-value"]),t(p,{title:"Zählerstand laden",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/chargepoint/get/imported",3,3,.001)},null,8,["model-value"]),t(p,{title:"Zählerstand entladen",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/chargepoint/get/exported",3,3,.001)},null,8,["model-value"]),t(d,null,{default:u(()=>[c("Historie")]),_:1}),t(p,{title:"Heute geladen",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/chargepoint/get/daily_imported",3,3,.001)},null,8,["model-value"]),t(p,{title:"Heute entladen",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/chargepoint/get/daily_exported",3,3,.001)},null,8,["model-value"])]),_:1})}const re=W(oe,[["render",ae],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ChargePointSumCard.vue"]]);w.add(k,C,T,L);const se={name:"ChargePointCard",mixins:[y],components:{FontAwesomeIcon:x},props:{installedChargePointKey:String,installedChargePoint:Object},data(){return{statusLevel:["success","warning","danger"]}},computed:{chargePointIndex:{get(){return parseInt(this.installedChargePointKey.match(/(?:\/)(\d+)(?=\/)/)[1])}}}},le=v("br",null,null,-1),ie=v("br",null,null,-1);function ce(e,_,o,h,m,r){const l=n("font-awesome-icon"),p=n("openwb-base-alert"),d=n("openwb-base-checkbox-input"),i=n("openwb-base-text-input"),f=n("openwb-base-heading"),B=n("openwb-base-card");return a(),s(B,{subtype:"primary",collapsible:!0,collapsed:!0},{header:u(()=>[t(l,{"fixed-width":"",icon:["fas","charging-station"]}),c(" "+g(o.installedChargePoint.name)+" (ID: "+g(r.chargePointIndex)+") ",1)]),default:u(()=>[t(p,{subtype:m.statusLevel[e.$store.state.mqtt["openWB/chargepoint/"+r.chargePointIndex+"/get/fault_state"]]},{default:u(()=>[e.$store.state.mqtt["openWB/chargepoint/"+r.chargePointIndex+"/get/fault_state"]==1?(a(),s(l,{key:0,"fixed-width":"",icon:["fas","exclamation-triangle"]})):e.$store.state.mqtt["openWB/chargepoint/"+r.chargePointIndex+"/get/fault_state"]==2?(a(),s(l,{key:1,"fixed-width":"",icon:["fas","times-circle"]})):(a(),s(l,{key:2,"fixed-width":"",icon:["fas","check-circle"]})),c(" Modulmeldung:"),le,c(" "+g(e.$store.state.mqtt["openWB/chargepoint/"+r.chargePointIndex+"/get/fault_str"]),1)]),_:1},8,["subtype"]),t(p,{subtype:"info"},{default:u(()=>[c(" Statusmeldung:"),ie,c(" "+g(e.$store.state.mqtt["openWB/chargepoint/"+r.chargePointIndex+"/get/state_str"]),1)]),_:1}),t(d,{title:"Fahrzeug angesteckt",disabled:"","model-value":e.$store.state.mqtt["openWB/chargepoint/"+r.chargePointIndex+"/get/plug_state"]==1},null,8,["model-value"]),t(d,{title:"Ladevorgang aktiv",disabled:"","model-value":e.$store.state.mqtt["openWB/chargepoint/"+r.chargePointIndex+"/get/charge_state"]==1},null,8,["model-value"]),t(i,{title:"Zählerstand laden",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/chargepoint/"+r.chargePointIndex+"/get/imported",3,3,.001)},null,8,["model-value"]),t(i,{title:"Zählerstand entladen",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/chargepoint/"+r.chargePointIndex+"/get/exported",3,3,.001)},null,8,["model-value"]),t(i,{title:"Heute geladen",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/chargepoint/"+r.chargePointIndex+"/get/daily_imported",3,3,.001)},null,8,["model-value"]),t(i,{title:"Heute entladen",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/chargepoint/"+r.chargePointIndex+"/get/daily_exported",3,3,.001)},null,8,["model-value"]),t(i,{title:"Wirkleistung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kW","model-value":e.formatNumberTopic("openWB/chargepoint/"+r.chargePointIndex+"/get/power",3,3,.001)},null,8,["model-value"]),t(i,{title:"Ladestromvorgabe",readonly:"",class:"text-right text-monospace",step:"0.01",unit:"A","model-value":e.formatNumberTopic("openWB/chargepoint/"+r.chargePointIndex+"/set/current",2)},null,8,["model-value"]),t(i,{title:"Netzfrequenz",readonly:"",class:"text-right text-monospace",step:"0.01",unit:"Hz","model-value":e.formatNumberTopic("openWB/chargepoint/"+r.chargePointIndex+"/get/frequency",2)},null,8,["model-value"]),t(f,null,{default:u(()=>[c("Werte pro Phase")]),_:1}),t(i,{title:"Spannung",readonly:"",class:"text-right text-monospace",unit:"V","model-value":e.formatPhaseArrayNumberTopic("openWB/chargepoint/"+r.chargePointIndex+"/get/voltages",1)},null,8,["model-value"]),t(i,{title:"Strom",readonly:"",class:"text-right text-monospace",unit:"A","model-value":e.formatPhaseArrayNumberTopic("openWB/chargepoint/"+r.chargePointIndex+"/get/currents",2)},null,8,["model-value"]),t(i,{title:"Wirkleistung",readonly:"",class:"text-right text-monospace",unit:"kW","model-value":e.formatPhaseArrayNumberTopic("openWB/chargepoint/"+r.chargePointIndex+"/get/powers",3,3,.001)},null,8,["model-value"]),t(i,{title:"Leistungsfaktor",readonly:"",class:"text-right text-monospace","model-value":e.formatPhaseArrayNumberTopic("openWB/chargepoint/"+r.chargePointIndex+"/get/power_factors",2)},null,8,["model-value"]),t(f,null,{default:u(()=>[c("Phasen")]),_:1}),e.$store.state.mqtt["openWB/general/extern"]===!0?(a(),s(i,{key:0,title:"Vorgabe",readonly:"",class:"text-right text-monospace","model-value":e.formatNumberTopic("openWB/internal_chargepoint/"+r.chargePointIndex+"/data/phases_to_use")},null,8,["model-value"])):(a(),s(i,{key:1,title:"Vorgabe",readonly:"",class:"text-right text-monospace","model-value":e.formatNumberTopic("openWB/chargepoint/"+r.chargePointIndex+"/set/phases_to_use")},null,8,["model-value"])),t(i,{title:"Aktuell",readonly:"",class:"text-right text-monospace","model-value":e.formatNumberTopic("openWB/chargepoint/"+r.chargePointIndex+"/get/phases_in_use")},null,8,["model-value"])]),_:1})}const ue=W(se,[["render",ce],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ChargePointCard.vue"]]);w.add(k,C,T,z);const de={name:"CounterCard",mixins:[y],components:{FontAwesomeIcon:x},props:{counter:Object},data(){return{statusLevel:["success","warning","danger"]}}},pe=v("br",null,null,-1),me=v("br",null,null,-1);function ge(e,_,o,h,m,r){const l=n("font-awesome-icon"),p=n("openwb-base-alert"),d=n("openwb-base-heading"),i=n("openwb-base-text-input"),f=n("openwb-base-card");return a(),s(f,{subtype:"danger",collapsible:!0,collapsed:!0},{header:u(()=>[t(l,{"fixed-width":"",icon:["fas","gauge-high"]}),c(" "+g(o.counter.name)+" (ID: "+g(o.counter.id)+") ",1)]),default:u(()=>[t(p,{subtype:m.statusLevel[e.$store.state.mqtt["openWB/counter/"+o.counter.id+"/get/fault_state"]]},{default:u(()=>[e.$store.state.mqtt["openWB/counter/"+o.counter.id+"/get/fault_state"]==1?(a(),s(l,{key:0,"fixed-width":"",icon:["fas","exclamation-triangle"]})):e.$store.state.mqtt["openWB/counter/"+o.counter.id+"/get/fault_state"]==2?(a(),s(l,{key:1,"fixed-width":"",icon:["fas","times-circle"]})):(a(),s(l,{key:2,"fixed-width":"",icon:["fas","check-circle"]})),c(" Modulmeldung:"),pe,c(" "+g(e.$store.state.mqtt["openWB/counter/"+o.counter.id+"/get/fault_str"]),1)]),_:1},8,["subtype"]),e.$store.state.mqtt["openWB/counter/"+o.counter.id+"/get/state_str"]!=null?(a(),s(p,{key:0,subtype:"info"},{default:u(()=>[c(" Statusmeldung:"),me,c(" "+g(e.$store.state.mqtt["openWB/counter/"+o.counter.id+"/get/state_str"]),1)]),_:1})):q("",!0),t(d,null,{default:u(()=>[c("Zählerstände")]),_:1}),t(i,{title:"Export",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/counter/"+o.counter.id+"/get/exported",3,3,.001)},null,8,["model-value"]),t(i,{title:"Import",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/counter/"+o.counter.id+"/get/imported",3,3,.001)},null,8,["model-value"]),t(d,null,{default:u(()=>[c("Saldierte Werte")]),_:1}),t(i,{title:"Wirkleistung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kW","model-value":e.formatNumberTopic("openWB/counter/"+o.counter.id+"/get/power",3,3,.001)},null,8,["model-value"]),t(i,{title:"Netzfrequenz",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"Hz","model-value":e.formatNumberTopic("openWB/counter/"+o.counter.id+"/get/frequency",3)},null,8,["model-value"]),t(d,null,{default:u(()=>[c("Werte pro Phase")]),_:1}),t(i,{title:"Spannung",readonly:"",class:"text-right text-monospace",unit:"V","model-value":e.formatPhaseArrayNumberTopic("openWB/counter/"+o.counter.id+"/get/voltages",1)},null,8,["model-value"]),t(i,{title:"Strom",readonly:"",class:"text-right text-monospace",unit:"A","model-value":e.formatPhaseArrayNumberTopic("openWB/counter/"+o.counter.id+"/get/currents",2)},null,8,["model-value"]),t(i,{title:"Wirkleistung",readonly:"",class:"text-right text-monospace",unit:"kW","model-value":e.formatPhaseArrayNumberTopic("openWB/counter/"+o.counter.id+"/get/powers",3,3,.001)},null,8,["model-value"]),t(i,{title:"Leistungsfaktor",readonly:"",class:"text-right text-monospace","model-value":e.formatPhaseArrayNumberTopic("openWB/counter/"+o.counter.id+"/get/power_factors",2)},null,8,["model-value"])]),_:1})}const _e=W(de,[["render",ge],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/CounterCard.vue"]]);w.add(k,C,T,S);const he={name:"InverterSumCard",mixins:[y],components:{FontAwesomeIcon:x},data(){return{statusLevel:["success","warning","danger"]}}},fe=v("br",null,null,-1);function be(e,_,o,h,m,r){const l=n("font-awesome-icon"),p=n("openwb-base-alert"),d=n("openwb-base-text-input"),i=n("openwb-base-heading"),f=n("openwb-base-card");return a(),s(f,{subtype:"success",collapsible:!0,collapsed:!0},{header:u(()=>[t(l,{"fixed-width":"",icon:["fas","solar-panel"]}),c(" Alle Wechselrichter ")]),default:u(()=>[t(p,{subtype:m.statusLevel[e.$store.state.mqtt["openWB/pv/get/fault_state"]]},{default:u(()=>[e.$store.state.mqtt["openWB/pv/get/fault_state"]==1?(a(),s(l,{key:0,"fixed-width":"",icon:["fas","exclamation-triangle"]})):e.$store.state.mqtt["openWB/pv/get/fault_state"]==2?(a(),s(l,{key:1,"fixed-width":"",icon:["fas","times-circle"]})):(a(),s(l,{key:2,"fixed-width":"",icon:["fas","check-circle"]})),c(" Modulmeldung:"),fe,c(" "+g(e.$store.state.mqtt["openWB/pv/get/fault_str"]),1)]),_:1},8,["subtype"]),t(d,{title:"Zählerstand",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/pv/get/exported",3,3,.001)},null,8,["model-value"]),t(d,{title:"Leistung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kW","model-value":e.formatNumberTopic("openWB/pv/get/power",3,3,.001)},null,8,["model-value"]),t(i,null,{default:u(()=>[c("Erträge")]),_:1}),t(d,{title:"Heute",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/pv/get/daily_exported",3,3,.001)},null,8,["model-value"]),t(d,{title:"Dieser Monat",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/pv/get/monthly_exported",3,3,.001)},null,8,["model-value"]),t(d,{title:"Dieses Jahr",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/pv/get/yearly_exported",3,3,.001)},null,8,["model-value"])]),_:1})}const ve=W(he,[["render",be],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/InverterSumCard.vue"]]);w.add(k,C,T,S);const ye={name:"InverterCard",mixins:[y],components:{FontAwesomeIcon:x},props:{inverter:Object},data(){return{statusLevel:["success","warning","danger"]}}},We=v("br",null,null,-1);function we(e,_,o,h,m,r){const l=n("font-awesome-icon"),p=n("openwb-base-alert"),d=n("openwb-base-text-input"),i=n("openwb-base-heading"),f=n("openwb-base-card");return a(),s(f,{subtype:"success",collapsible:!0,collapsed:!0},{header:u(()=>[t(l,{"fixed-width":"",icon:["fas","solar-panel"]}),c(" "+g(o.inverter.name)+" (ID: "+g(o.inverter.id)+") ",1)]),default:u(()=>[t(p,{subtype:m.statusLevel[e.$store.state.mqtt["openWB/pv/"+o.inverter.id+"/get/fault_state"]]},{default:u(()=>[e.$store.state.mqtt["openWB/pv/"+o.inverter.id+"/get/fault_state"]==1?(a(),s(l,{key:0,"fixed-width":"",icon:["fas","exclamation-triangle"]})):e.$store.state.mqtt["openWB/pv/"+o.inverter.id+"/get/fault_state"]==2?(a(),s(l,{key:1,"fixed-width":"",icon:["fas","times-circle"]})):(a(),s(l,{key:2,"fixed-width":"",icon:["fas","check-circle"]})),c(" Modulmeldung:"),We,c(" "+g(e.$store.state.mqtt["openWB/pv/"+o.inverter.id+"/get/fault_str"]),1)]),_:1},8,["subtype"]),t(d,{title:"Zählerstand",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/pv/"+o.inverter.id+"/get/exported",3,3,.001)},null,8,["model-value"]),t(d,{title:"Leistung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kW","model-value":e.formatNumberTopic("openWB/pv/"+o.inverter.id+"/get/power",3,3,.001)},null,8,["model-value"]),t(i,null,{default:u(()=>[c("Erträge")]),_:1}),t(d,{title:"Heute",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/pv/"+o.inverter.id+"/get/daily_exported",3,3,.001)},null,8,["model-value"]),t(d,{title:"Dieser Monat",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/pv/"+o.inverter.id+"/get/monthly_exported",3,3,.001)},null,8,["model-value"]),t(d,{title:"Dieses Jahr",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/pv/"+o.inverter.id+"/get/yearly_exported",3,3,.001)},null,8,["model-value"])]),_:1})}const xe=W(ye,[["render",we],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/InverterCard.vue"]]);w.add(k,C,T,A);const Be={name:"BatterySumCard",mixins:[y],components:{FontAwesomeIcon:x},data(){return{statusLevel:["success","warning","danger"]}}},ke=v("br",null,null,-1);function Ce(e,_,o,h,m,r){const l=n("font-awesome-icon"),p=n("openwb-base-alert"),d=n("openwb-base-heading"),i=n("openwb-base-text-input"),f=n("openwb-base-number-input"),B=n("openwb-base-card");return a(),s(B,{subtype:"warning",collapsible:!0,collapsed:!0},{header:u(()=>[t(l,{"fixed-width":"",icon:["fas","car-battery"]}),c(" Alle Speicher ")]),default:u(()=>[t(p,{subtype:m.statusLevel[e.$store.state.mqtt["openWB/bat/get/fault_state"]]},{default:u(()=>[e.$store.state.mqtt["openWB/bat/get/fault_state"]==1?(a(),s(l,{key:0,"fixed-width":"",icon:["fas","exclamation-triangle"]})):e.$store.state.mqtt["openWB/bat/get/fault_state"]==2?(a(),s(l,{key:1,"fixed-width":"",icon:["fas","times-circle"]})):(a(),s(l,{key:2,"fixed-width":"",icon:["fas","check-circle"]})),c(" Modulmeldung:"),ke,c(" "+g(e.$store.state.mqtt["openWB/bat/get/fault_str"]),1)]),_:1},8,["subtype"]),t(d,null,{default:u(()=>[c("Zählerstände")]),_:1}),t(i,{title:"Ladung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/bat/get/imported",3,3,.001)},null,8,["model-value"]),t(i,{title:"Entladung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/bat/get/exported",3,3,.001)},null,8,["model-value"]),t(d,null,{default:u(()=>[c("Tageswerte")]),_:1}),t(i,{title:"Ladung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/bat/get/daily_imported",3,3,.001)},null,8,["model-value"]),t(i,{title:"Entladung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/bat/get/daily_exported",3,3,.001)},null,8,["model-value"]),t(d,null,{default:u(()=>[c("Saldierte Werte")]),_:1}),t(i,{title:"Leistung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kW","model-value":e.formatNumberTopic("openWB/bat/get/power",3,3,.001)},null,8,["model-value"]),t(f,{title:"Ladestand",readonly:"",class:"text-right text-monospace",unit:"%","model-value":e.$store.state.mqtt["openWB/bat/get/soc"]},null,8,["model-value"])]),_:1})}const Te=W(Be,[["render",Ce],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/BatterySumCard.vue"]]);w.add(k,C,T,A);const qe={name:"InverterCard",mixins:[y],components:{FontAwesomeIcon:x},props:{battery:Object},data(){return{statusLevel:["success","warning","danger"]}}},Ie=v("br",null,null,-1);function Ne(e,_,o,h,m,r){const l=n("font-awesome-icon"),p=n("openwb-base-alert"),d=n("openwb-base-heading"),i=n("openwb-base-text-input"),f=n("openwb-base-number-input"),B=n("openwb-base-card");return a(),s(B,{subtype:"warning",collapsible:!0,collapsed:!0},{header:u(()=>[t(l,{"fixed-width":"",icon:["fas","car-battery"]}),c(" "+g(o.battery.name)+" (ID: "+g(o.battery.id)+") ",1)]),default:u(()=>[t(p,{subtype:m.statusLevel[e.$store.state.mqtt["openWB/bat/"+o.battery.id+"/get/fault_state"]]},{default:u(()=>[e.$store.state.mqtt["openWB/bat/"+o.battery.id+"/get/fault_state"]==1?(a(),s(l,{key:0,"fixed-width":"",icon:["fas","exclamation-triangle"]})):e.$store.state.mqtt["openWB/bat/"+o.battery.id+"/get/fault_state"]==2?(a(),s(l,{key:1,"fixed-width":"",icon:["fas","times-circle"]})):(a(),s(l,{key:2,"fixed-width":"",icon:["fas","check-circle"]})),c(" Modulmeldung:"),Ie,c(" "+g(e.$store.state.mqtt["openWB/bat/"+o.battery.id+"/get/fault_str"]),1)]),_:1},8,["subtype"]),t(d,null,{default:u(()=>[c("Aktuelle Werte")]),_:1}),t(i,{title:"Leistung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kW","model-value":e.formatNumberTopic("openWB/bat/"+o.battery.id+"/get/power",3,3,.001)},null,8,["model-value"]),t(f,{title:"Ladestand",readonly:"",class:"text-right text-monospace",unit:"%","model-value":e.$store.state.mqtt["openWB/bat/"+o.battery.id+"/get/soc"]},null,8,["model-value"]),t(d,null,{default:u(()=>[c("Zählerstände")]),_:1}),t(i,{title:"Ladung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/bat/"+o.battery.id+"/get/imported",3,3,.001)},null,8,["model-value"]),t(i,{title:"Entladung",readonly:"",class:"text-right text-monospace",step:"0.001",unit:"kWh","model-value":e.formatNumberTopic("openWB/bat/"+o.battery.id+"/get/exported",3,3,.001)},null,8,["model-value"])]),_:1})}const Pe=W(qe,[["render",Ne],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/BatteryCard.vue"]]);w.add(k,C,T,E);const $e={name:"RippleControlReceiverCard",mixins:[y],components:{FontAwesomeIcon:x},data(){return{mqttTopicsToSubscribe:["openWB/general/ripple_control_receiver/get/fault_state","openWB/general/ripple_control_receiver/get/fault_str","openWB/general/ripple_control_receiver/get/override_value","openWB/general/ripple_control_receiver/module"],statusLevel:["success","warning","danger"]}}},Le=v("br",null,null,-1);function Se(e,_,o,h,m,r){const l=n("font-awesome-icon"),p=n("openwb-base-alert"),d=n("openwb-base-text-input"),i=n("openwb-base-card");return e.$store.state.mqtt["openWB/general/ripple_control_receiver/module"]&&e.$store.state.mqtt["openWB/general/ripple_control_receiver/module"].type?(a(),s(i,{key:0,subtype:"secondary",collapsible:!0,collapsed:!0},{header:u(()=>[t(l,{icon:["fas","tower-broadcast"]}),c(" Steuerbare Verbrauchseinrichtung (RSE) ")]),default:u(()=>[t(p,{subtype:m.statusLevel[e.$store.state.mqtt["openWB/general/ripple_control_receiver/get/fault_state"]]},{default:u(()=>[e.$store.state.mqtt["openWB/general/ripple_control_receiver/get/fault_state"]==1?(a(),s(l,{key:0,"fixed-width":"",icon:["fas","exclamation-triangle"]})):e.$store.state.mqtt["openWB/general/ripple_control_receiver/get/fault_state"]==2?(a(),s(l,{key:1,"fixed-width":"",icon:["fas","times-circle"]})):(a(),s(l,{key:2,"fixed-width":"",icon:["fas","check-circle"]})),c(" Modulmeldung:"),Le,c(" "+g(e.$store.state.mqtt["openWB/general/ripple_control_receiver/get/fault_str"]),1)]),_:1},8,["subtype"]),t(d,{title:"Status",readonly:"","model-value":e.$store.state.mqtt["openWB/general/ripple_control_receiver/get/override_value"]==0?"Laden gesperrt":"Laden erlaubt ("+e.$store.state.mqtt["openWB/general/ripple_control_receiver/get/override_value"]+"%)"},null,8,["model-value"])]),_:1})):q("",!0)}const Ae=W($e,[["render",Se],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/RippleControlReceiver.vue"]]);w.add(k,C,T,M);const Oe={name:"VehicleCard",mixins:[y],components:{FontAwesomeIcon:x},props:{vehicle:Object,vehicleKey:String,vehicleName:String},data(){return{statusLevel:["success","warning","danger"]}},computed:{vehicleIndex:{get(){return parseInt(this.vehicleKey.match(/(?:\/)(\d+)(?=\/)/)[1])}},socTimestamp:{get(){return this.$store.state.mqtt["openWB/vehicle/"+this.vehicleIndex+"/get/soc_timestamp"]!==void 0?new Date(this.$store.state.mqtt["openWB/vehicle/"+this.vehicleIndex+"/get/soc_timestamp"]*1e3).toLocaleString():"-"}},socRange:{get(){return this.$store.state.mqtt["openWB/vehicle/"+this.vehicleIndex+"/get/range"]!==void 0?Math.round(this.$store.state.mqtt["openWB/vehicle/"+this.vehicleIndex+"/get/range"]):0}}}},je=v("br",null,null,-1);function De(e,_,o,h,m,r){const l=n("font-awesome-icon"),p=n("openwb-base-alert"),d=n("openwb-base-heading"),i=n("openwb-base-number-input"),f=n("openwb-base-text-input"),B=n("openwb-base-card");return a(),s(B,{subtype:"info",collapsible:!0,collapsed:!0},{header:u(()=>[t(l,{"fixed-width":"",icon:["fas","car"]}),c(" "+g(o.vehicleName)+" (ID: "+g(r.vehicleIndex)+") ",1)]),default:u(()=>[e.$store.state.mqtt["openWB/vehicle/"+r.vehicleIndex+"/get/fault_state"]!==void 0?(a(),s(p,{key:0,subtype:m.statusLevel[e.$store.state.mqtt["openWB/vehicle/"+r.vehicleIndex+"/get/fault_state"]]},{default:u(()=>[e.$store.state.mqtt["openWB/vehicle/"+r.vehicleIndex+"/get/fault_state"]==1?(a(),s(l,{key:0,"fixed-width":"",icon:["fas","exclamation-triangle"]})):e.$store.state.mqtt["openWB/vehicle/"+r.vehicleIndex+"/get/fault_state"]==2?(a(),s(l,{key:1,"fixed-width":"",icon:["fas","times-circle"]})):(a(),s(l,{key:2,"fixed-width":"",icon:["fas","check-circle"]})),c(" Modulmeldung:"),je,c(" "+g(e.$store.state.mqtt["openWB/vehicle/"+r.vehicleIndex+"/get/fault_str"]),1)]),_:1},8,["subtype"])):q("",!0),t(d,null,{default:u(()=>[c("Fahrzeugdaten")]),_:1}),t(i,{title:"Ladestand",readonly:"",class:"text-right text-monospace",unit:"%","model-value":e.$store.state.mqtt["openWB/vehicle/"+r.vehicleIndex+"/get/soc"]},null,8,["model-value"]),t(i,{title:"Reichweite",readonly:"",class:"text-right text-monospace",unit:"km","model-value":r.socRange},null,8,["model-value"]),t(f,{title:"Letzter Zeitstempel",readonly:"",class:"text-right text-monospace","model-value":r.socTimestamp},null,8,["model-value"])]),_:1})}const Re=W(Oe,[["render",De],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/VehicleCard.vue"]]);w.add(k,C,T,V);K.register(F,J,U,G,Q,X,Y,ee,te);const ze={name:"ElectricityTariffCard",mixins:[y],components:{ChartjsLine:ne,FontAwesomeIcon:x},data(){return{mqttTopicsToSubscribe:["openWB/optional/et/provider","openWB/optional/et/get/fault_state","openWB/optional/et/get/fault_str","openWB/optional/et/get/prices"],statusLevel:["success","warning","danger"],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 e=this.$store.state.mqtt["openWB/optional/et/provider"];return e!==void 0?e.type!==null:!1},chartDataRead(){return this.chartDataObject.datasets[0].data!=null},chartDataObject(){if(this.$store.state.mqtt["openWB/optional/et/get/prices"]){var e=this.$store.state.mqtt["openWB/optional/et/get/prices"],_=[];for(const[m,r]of Object.entries(e))_.push({timestamp:m*1e3,price:r*1e5});const h=_.slice(-1)[0];_.push({timestamp:h.timestamp+(60*60-1)*1e3,price:h.price})}const o=this.chartDatasets;return o.datasets[0].data=_,o}}},Ee=e=>(H("data-v-f4769d2f"),e=e(),Z(),e),Me=Ee(()=>v("br",null,null,-1)),Ve={class:"openwb-chart"};function He(e,_,o,h,m,r){const l=n("font-awesome-icon"),p=n("openwb-base-alert"),d=n("openwb-base-text-input"),i=n("chartjs-line"),f=n("openwb-base-card");return r.electricityTariffConfigured?(a(),s(f,{key:0,subtype:"secondary",collapsible:!0,collapsed:!0},{header:u(()=>[t(l,{"fixed-width":"",icon:["fas","ranking-star"]}),c(" Variabler Stromtarif ")]),default:u(()=>[t(p,{subtype:m.statusLevel[e.$store.state.mqtt["openWB/optional/et/get/fault_state"]]},{default:u(()=>[e.$store.state.mqtt["openWB/optional/et/get/fault_state"]==1?(a(),s(l,{key:0,"fixed-width":"",icon:["fas","exclamation-triangle"]})):e.$store.state.mqtt["openWB/optional/et/get/fault_state"]==2?(a(),s(l,{key:1,"fixed-width":"",icon:["fas","times-circle"]})):(a(),s(l,{key:2,"fixed-width":"",icon:["fas","check-circle"]})),c(" Modulmeldung:"),Me,c(" "+g(e.$store.state.mqtt["openWB/optional/et/get/fault_str"]),1)]),_:1},8,["subtype"]),t(d,{title:"Anbieter",readonly:"","model-value":e.$store.state.mqtt["openWB/optional/et/provider"].name},null,8,["model-value"]),v("div",Ve,[r.chartDataRead?(a(),s(i,{key:0,ref:"myChart",data:r.chartDataObject,options:m.chartOptions},null,8,["data","options"])):q("",!0)])]),_:1})):q("",!0)}const Ze=W(ze,[["render",He],["__scopeId","data-v-f4769d2f"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ElectricityTariffCard.vue"]]);const Ke={name:"OpenwbStatusView",mixins:[y],components:{ChargePointSumCard:re,ChargePointCard:ue,CounterCard:_e,InverterSumCard:ve,InverterCard:xe,BatterySumCard:Te,BatteryCard:Pe,RippleControlReceiverCard:Ae,VehicleCard:Re,ElectricityTariffCard:Ze},data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/chargepoint/get/power","openWB/chargepoint/get/imported","openWB/chargepoint/get/exported","openWB/chargepoint/get/daily_imported","openWB/chargepoint/get/daily_exported","openWB/chargepoint/+/config","openWB/chargepoint/+/get/+","openWB/chargepoint/+/get/connected_vehicle/info","openWB/chargepoint/+/set/+","openWB/internal_chargepoint/+/data/phases_to_use","openWB/system/device/+/component/+/config","openWB/counter/+/get/+","openWB/pv/get/+","openWB/pv/+/get/+","openWB/bat/get/+","openWB/bat/+/get/+","openWB/vehicle/+/name","openWB/vehicle/+/get/+"]}},computed:{installedChargePoints:{get(){let e=this.getWildcardTopics("openWB/chargepoint/+/config"),_={};for(const[o,h]of Object.entries(e))(h.type==="internal_openwb"||this.$store.state.mqtt["openWB/general/extern"]===!1)&&(_[o]=h);return _}},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")}},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(e,_){return Object.keys(e).filter(o=>e[o].type.includes(_)).reduce((o,h)=>({...o,[h]:e[h]}),{})}}},Fe={class:"status"};function Je(e,_,o,h,m,r){const l=n("charge-point-sum-card"),p=n("charge-point-card"),d=n("counter-card"),i=n("inverter-sum-card"),f=n("inverter-card"),B=n("battery-sum-card"),O=n("battery-card"),j=n("vehicle-card"),D=n("electricity-tariff-card"),R=n("ripple-control-receiver-card");return a(),I("div",Fe,[r.numChargePointsInstalled>1&&e.$store.state.mqtt["openWB/general/extern"]===!1?(a(),s(l,{key:0})):q("",!0),(a(!0),I(P,null,$(r.installedChargePoints,(b,N)=>(a(),s(p,{key:N,installedChargePoint:b,installedChargePointKey:N},null,8,["installedChargePoint","installedChargePointKey"]))),128)),(a(!0),I(P,null,$(r.counterConfigs,b=>(a(),s(d,{key:b.id,counter:b},null,8,["counter"]))),128)),r.numInvertersInstalled>1&&e.$store.state.mqtt["openWB/general/extern"]===!1?(a(),s(i,{key:1})):q("",!0),(a(!0),I(P,null,$(r.inverterConfigs,b=>(a(),s(f,{key:b.id,inverter:b},null,8,["inverter"]))),128)),r.numBatteriesInstalled>1&&e.$store.state.mqtt["openWB/general/extern"]===!1?(a(),s(B,{key:2})):q("",!0),(a(!0),I(P,null,$(r.batteryConfigs,b=>(a(),s(O,{key:b.id,battery:b},null,8,["battery"]))),128)),(a(!0),I(P,null,$(r.vehicleNames,(b,N)=>(a(),s(j,{key:N,vehicleKey:N,vehicleName:b},null,8,["vehicleKey","vehicleName"]))),128)),t(D),t(R)])}const at=W(Ke,[["render",Je],["__scopeId","data-v-051028a3"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Status.vue"]]);export{at as default}; diff --git a/web/settings/assets/Support-56e00a88.js b/web/settings/assets/Support-1d4bc359.js similarity index 98% rename from web/settings/assets/Support-56e00a88.js rename to web/settings/assets/Support-1d4bc359.js index d46ab0c09b..834f3594cd 100644 --- a/web/settings/assets/Support-56e00a88.js +++ b/web/settings/assets/Support-1d4bc359.js @@ -1 +1 @@ -import{l as w,g as y,F as V}from"./vendor-fortawesome-71546160.js";import{C as B}from"./index-ba5cf04c.js";import{_ as v,u as a,k as l,l as c,x as r,A as h,N as t,D as s,a4 as F,B as g,y as e,q as x}from"./vendor-f2b8aa6f.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";w.add(y);const z={name:"OpenwbSupportView",mixins:[B],emits:["sendCommand"],components:{FontAwesomeIcon:V},data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/dataprotection_acknowledged"],sendDebugData:{email:"",serialNumber:"",installedComponents:"",vehicles:"",message:""},enableSendDebugButton:!0}},methods:{sendDebugMessage(){if(document.forms.supportForm.reportValidity())this.$emit("sendCommand",{command:"sendDebug",data:this.sendDebugData}),this.enableSendDebugButton=!1;else{console.warn("form invalid");return}}}},C={class:"support"},A={name:"supportForm"},q={key:1},N={key:0},W=r("li",null,' Vergewissern Sie sich, dass mindestens die aktuelle "Release" Version installiert ist. ',-1),M=r("li",null," Stellen Sie 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=r("li",null," Stellen Sie sicher, dass der Lademodus korrekt gewählt ist und im Falle von nicht ladenden Fahrzeugen, dass der Ladepunkt auch entsperrt wurde. ",-1),L=r("li",null," Das Auslesen der Systemkonfiguration erfolgt direkt nach den Klick auf Absenden und kann einige Zeit in Anspruch nehmen. Sie erhalten 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 ihnen. Bitte kontrollieren Sie daher immer auch den Spam Ordner auf eingehende Nachrichten. Erhalten Sie trotzdem keine Ticketnummer, ist das Versenden des Systemberichtes fehlgeschlagen. ",-1),U={class:"row justify-content-center"};function G(d,o,T,H,n,_){const p=a("router-link"),u=a("openwb-base-alert"),f=a("FontAwesomeIcon"),b=a("openwb-base-text-input"),m=a("openwb-base-textarea"),S=a("openwb-base-click-button"),k=a("openwb-base-card"),D=a("font-awesome-icon");return l(),c("div",C,[r("form",A,[d.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(l(),h(u,{key:0,subtype:"danger"},{default:t(()=>[e(" Sie müssen der "),s(p,{to:"/System/LegalSettings"},{default:t(()=>[e(" Datenschutzerklärung ")]),_:1}),e(" zustimmen, um einen Systembericht senden zu können. ")]),_:1})):(l(),c("div",q,[s(u,{subtype:"success"},{default:t(()=>[e(" Sie haben der "),s(p,{to:"/System/LegalSettings"},{default:t(()=>[e(" Datenschutzerklärung ")]),_:1}),e(" zugestimmt und können Systemberichte senden. ")]),_:1}),s(k,{title:"Systembericht"},F({default:t(()=>[d.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?(l(),c("div",N,[s(u,{subtype:"info"},{default:t(()=>[r("ul",null,[r("li",null,[e(" Lesen Sie den Hilfetext, der durch Klick auf das "),s(f,{icon:["far","question-circle"]}),e(" angezeigt wird. Nehmen Sie das Wiki zur Hilfe. ")]),W,M,E,L])]),_:1}),s(b,{title:"E-Mail",required:"",subtype:"email",modelValue:n.sendDebugData.email,"onUpdate:modelValue":o[0]||(o[0]=i=>n.sendDebugData.email=i)},{help:t(()=>[e(" Deine E-Mail-Adresse, an die der Support Dir antwortet. ")]),_:1},8,["modelValue"]),s(b,{title:"openWB Seriennummer",required:"",modelValue:n.sendDebugData.serialNumber,"onUpdate:modelValue":o[1]||(o[1]=i=>n.sendDebugData.serialNumber=i)},{help:t(()=>[e(" Die Seriennummer der openWB finden Sie außen am Gehäuse - bei Älteren innen im Gehäuse. Sie können uns aber auch eine Bestellnummer oder Rechnungsnummer übermitteln. Das Gehäuse muss nicht extra geöffnet werden! ")]),_:1},8,["modelValue"]),s(m,{title:"Verwendete Komponenten",required:"",minlength:"3",maxlength:"500",modelValue:n.sendDebugData.installedComponents,"onUpdate:modelValue":o[2]||(o[2]=i=>n.sendDebugData.installedComponents=i)},{help:t(()=>[e(" Geben Sie hier möglichst detailliert an, welche Anlagenkomponenten (EVU, PV, Speicher) angebunden sind. ")]),_:1},8,["modelValue"]),s(m,{title:"Fahrzeuge",required:"",minlength:"3",maxlength:"500",modelValue:n.sendDebugData.vehicles,"onUpdate:modelValue":o[3]||(o[3]=i=>n.sendDebugData.vehicles=i)},{help:t(()=>[e(" Geben Sie hier an, welche Fahrzeuge geladen werden (Hersteller, Modell, Baujahr). ")]),_:1},8,["modelValue"]),s(m,{title:"Problembeschreibung",required:"",minlength:"20",maxlength:"500",modelValue:n.sendDebugData.message,"onUpdate:modelValue":o[4]||(o[4]=i=>n.sendDebugData.message=i)},null,8,["modelValue"])])):g("",!0)]),_:2},[d.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:t(()=>[r("div",U,[s(S,{class:x(["col-4",n.enableSendDebugButton?"btn-success":"btn-outline-success"]),disabled:!n.enableSendDebugButton,onButtonClicked:_.sendDebugMessage},{default:t(()=>[e(" Absenden ")]),_:1},8,["class","disabled","onButtonClicked"])])]),key:"0"}:void 0]),1024),n.enableSendDebugButton?g("",!0):(l(),h(u,{key:0,subtype:"success"},{default:t(()=>[e(" Die Daten für den Fehlerbericht werden im Hintergrund zusammengestellt. Sie können diese Seite jetzt verlassen. "),s(D,{"fixed-width":"",icon:["fas","check"]})]),_:1}))]))])])}const J=v(z,[["render",G],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Support.vue"]]);export{J as default}; +import{l as w,g as y,F as V}from"./vendor-fortawesome-71546160.js";import{C as B}from"./index-88a2073c.js";import{_ as v,u as a,k as l,l as c,x as r,A as h,N as t,D as s,a4 as F,B as g,y as e,q as x}from"./vendor-f2b8aa6f.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";w.add(y);const z={name:"OpenwbSupportView",mixins:[B],emits:["sendCommand"],components:{FontAwesomeIcon:V},data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/system/dataprotection_acknowledged"],sendDebugData:{email:"",serialNumber:"",installedComponents:"",vehicles:"",message:""},enableSendDebugButton:!0}},methods:{sendDebugMessage(){if(document.forms.supportForm.reportValidity())this.$emit("sendCommand",{command:"sendDebug",data:this.sendDebugData}),this.enableSendDebugButton=!1;else{console.warn("form invalid");return}}}},C={class:"support"},A={name:"supportForm"},q={key:1},N={key:0},W=r("li",null,' Vergewissern Sie sich, dass mindestens die aktuelle "Release" Version installiert ist. ',-1),M=r("li",null," Stellen Sie 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=r("li",null," Stellen Sie sicher, dass der Lademodus korrekt gewählt ist und im Falle von nicht ladenden Fahrzeugen, dass der Ladepunkt auch entsperrt wurde. ",-1),L=r("li",null," Das Auslesen der Systemkonfiguration erfolgt direkt nach den Klick auf Absenden und kann einige Zeit in Anspruch nehmen. Sie erhalten 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 ihnen. Bitte kontrollieren Sie daher immer auch den Spam Ordner auf eingehende Nachrichten. Erhalten Sie trotzdem keine Ticketnummer, ist das Versenden des Systemberichtes fehlgeschlagen. ",-1),U={class:"row justify-content-center"};function G(d,o,T,H,n,_){const p=a("router-link"),u=a("openwb-base-alert"),f=a("FontAwesomeIcon"),b=a("openwb-base-text-input"),m=a("openwb-base-textarea"),S=a("openwb-base-click-button"),k=a("openwb-base-card"),D=a("font-awesome-icon");return l(),c("div",C,[r("form",A,[d.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(l(),h(u,{key:0,subtype:"danger"},{default:t(()=>[e(" Sie müssen der "),s(p,{to:"/System/LegalSettings"},{default:t(()=>[e(" Datenschutzerklärung ")]),_:1}),e(" zustimmen, um einen Systembericht senden zu können. ")]),_:1})):(l(),c("div",q,[s(u,{subtype:"success"},{default:t(()=>[e(" Sie haben der "),s(p,{to:"/System/LegalSettings"},{default:t(()=>[e(" Datenschutzerklärung ")]),_:1}),e(" zugestimmt und können Systemberichte senden. ")]),_:1}),s(k,{title:"Systembericht"},F({default:t(()=>[d.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?(l(),c("div",N,[s(u,{subtype:"info"},{default:t(()=>[r("ul",null,[r("li",null,[e(" Lesen Sie den Hilfetext, der durch Klick auf das "),s(f,{icon:["far","question-circle"]}),e(" angezeigt wird. Nehmen Sie das Wiki zur Hilfe. ")]),W,M,E,L])]),_:1}),s(b,{title:"E-Mail",required:"",subtype:"email",modelValue:n.sendDebugData.email,"onUpdate:modelValue":o[0]||(o[0]=i=>n.sendDebugData.email=i)},{help:t(()=>[e(" Deine E-Mail-Adresse, an die der Support Dir antwortet. ")]),_:1},8,["modelValue"]),s(b,{title:"openWB Seriennummer",required:"",modelValue:n.sendDebugData.serialNumber,"onUpdate:modelValue":o[1]||(o[1]=i=>n.sendDebugData.serialNumber=i)},{help:t(()=>[e(" Die Seriennummer der openWB finden Sie außen am Gehäuse - bei Älteren innen im Gehäuse. Sie können uns aber auch eine Bestellnummer oder Rechnungsnummer übermitteln. Das Gehäuse muss nicht extra geöffnet werden! ")]),_:1},8,["modelValue"]),s(m,{title:"Verwendete Komponenten",required:"",minlength:"3",maxlength:"500",modelValue:n.sendDebugData.installedComponents,"onUpdate:modelValue":o[2]||(o[2]=i=>n.sendDebugData.installedComponents=i)},{help:t(()=>[e(" Geben Sie hier möglichst detailliert an, welche Anlagenkomponenten (EVU, PV, Speicher) angebunden sind. ")]),_:1},8,["modelValue"]),s(m,{title:"Fahrzeuge",required:"",minlength:"3",maxlength:"500",modelValue:n.sendDebugData.vehicles,"onUpdate:modelValue":o[3]||(o[3]=i=>n.sendDebugData.vehicles=i)},{help:t(()=>[e(" Geben Sie hier an, welche Fahrzeuge geladen werden (Hersteller, Modell, Baujahr). ")]),_:1},8,["modelValue"]),s(m,{title:"Problembeschreibung",required:"",minlength:"20",maxlength:"500",modelValue:n.sendDebugData.message,"onUpdate:modelValue":o[4]||(o[4]=i=>n.sendDebugData.message=i)},null,8,["modelValue"])])):g("",!0)]),_:2},[d.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:t(()=>[r("div",U,[s(S,{class:x(["col-4",n.enableSendDebugButton?"btn-success":"btn-outline-success"]),disabled:!n.enableSendDebugButton,onButtonClicked:_.sendDebugMessage},{default:t(()=>[e(" Absenden ")]),_:1},8,["class","disabled","onButtonClicked"])])]),key:"0"}:void 0]),1024),n.enableSendDebugButton?g("",!0):(l(),h(u,{key:0,subtype:"success"},{default:t(()=>[e(" Die Daten für den Fehlerbericht werden im Hintergrund zusammengestellt. Sie können diese Seite jetzt verlassen. "),s(D,{"fixed-width":"",icon:["fas","check"]})]),_:1}))]))])])}const J=v(z,[["render",G],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Support.vue"]]);export{J as default}; diff --git a/web/settings/assets/System-5f853f95.js b/web/settings/assets/System-4ed50969.js similarity index 98% rename from web/settings/assets/System-5f853f95.js rename to web/settings/assets/System-4ed50969.js index ac04063d3d..8e6930f0be 100644 --- a/web/settings/assets/System-5f853f95.js +++ b/web/settings/assets/System-4ed50969.js @@ -1 +1 @@ -import{l as A,ae as q,p as S,a3 as C,U as x,af as U,F as $}from"./vendor-fortawesome-71546160.js";import{C as z}from"./index-ba5cf04c.js";import{_ as E,u as p,k as m,l as _,A as V,N as a,B as y,x as r,D as s,y as d,q as B,J as F,K as j,z as T,S as D,U as I}from"./vendor-f2b8aa6f.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";A.add(q,S,C,x,U);const L={name:"OpenwbSystemView",mixins:[z],emits:["sendCommand"],components:{FontAwesomeIcon:$},data(){return{mqttTopicsToSubscribe:["openWB/system/optionBackup","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"],warningAcknowledged:!1,selectedTag:"*HEAD*"}},props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},computed:{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}},methods:{sendSystemCommand(t,e={}){this.$emit("sendCommand",{command:t,data:e})},getBranchGroups(){const t="Release",e="Beta",u="master",v=[t,e],h=(l,i)=>l.value==i.value?0:l.value==t?-1:i.value==t?1:l.value==e?-1:i.value==e?1:l.value==u?-1:i.value==u||l.value>i.value?1:l.value(D("data-v-059847f6"),t=t(),I(),t),N={class:"system"},O=g(()=>r("h2",null,"Achtung!",-1)),Z=g(()=>r("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={key:1},P={name:"versionInfoForm"},J={class:"missing-commits"},G={class:"row justify-content-center"},H={class:"col-md-4 d-flex py-1 justify-content-center"},K={class:"col-md-4 d-flex py-1 justify-content-center"},M={key:0,name:"powerForm"},Q={class:"row justify-content-center"},X={class:"col-md-4 d-flex py-1 justify-content-center"},Y={class:"col-md-4 d-flex py-1 justify-content-center"},ee={key:1,name:"releaseChangeForm"},te=g(()=>r("br",null,null,-1)),se=g(()=>r("br",null,null,-1)),ne=g(()=>r("br",null,null,-1)),ae=g(()=>r("br",null,null,-1)),oe={class:"row justify-content-center"},le={class:"col-md-4 d-flex py-1 justify-content-center"};function re(t,e,u,v,h,o){const b=p("openwb-base-button-group-input"),c=p("openwb-base-alert"),l=p("openwb-base-text-input"),i=p("openwb-base-card"),f=p("font-awesome-icon"),w=p("openwb-base-click-button"),k=p("openwb-base-select-input");return m(),_("div",N,[u.installAssistantActive?y("",!0):(m(),V(c,{key:0,subtype:"danger"},{default:a(()=>[O,Z,s(b,{title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],modelValue:this.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=n=>this.warningAcknowledged=n)},null,8,["modelValue"])]),_:1})),h.warningAcknowledged||u.installAssistantActive?(m(),_("div",R,[r("form",P,[s(i,{title:"Versions-Informationen / Aktualisierung",subtype:"success",collapsible:!0,collapsed:!u.installAssistantActive},{footer:a(()=>[r("div",G,[r("div",H,[s(w,{class:"btn-info",onButtonClicked:e[5]||(e[5]=n=>o.sendSystemCommand("systemFetchVersions"))},{default:a(()=>[d(" Informationen aktualisieren "),s(f,{"fixed-width":"",icon:["fas","download"]})]),_:1})]),r("div",K,[s(w,{class:B(o.updateAvailable?"btn-success clickable":"btn-outline-success"),disabled:!o.updateAvailable,onButtonClicked:e[6]||(e[6]=n=>o.systemUpdate())},{default:a(()=>[d(" Update "),s(f,{"fixed-width":"",icon:["fas","arrow-alt-circle-up"]})]),_:1},8,["class","disabled"])])])]),default:a(()=>[s(l,{title:"Entwicklungszweig",readonly:"",modelValue:t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[1]||(e[1]=n=>t.$store.state.mqtt["openWB/system/current_branch"]=n)},null,8,["modelValue"]),s(l,{title:"Bezeichnung",readonly:"",modelValue:t.$store.state.mqtt["openWB/system/version"],"onUpdate:modelValue":e[2]||(e[2]=n=>t.$store.state.mqtt["openWB/system/version"]=n)},null,8,["modelValue"]),s(l,{title:"installierte Version",readonly:"",class:B(o.updateAvailable?"text-danger":"text-success"),modelValue:t.$store.state.mqtt["openWB/system/current_commit"],"onUpdate:modelValue":e[3]||(e[3]=n=>t.$store.state.mqtt["openWB/system/current_commit"]=n)},null,8,["class","modelValue"]),s(l,{title:"aktuellste Version",readonly:"",modelValue:t.$store.state.mqtt["openWB/system/current_branch_commit"],"onUpdate:modelValue":e[4]||(e[4]=n=>t.$store.state.mqtt["openWB/system/current_branch_commit"]=n)},null,8,["modelValue"]),o.updateAvailable?(m(),V(i,{key:0,title:"Änderungen",subtype:"info",collapsible:!0,collapsed:!0},{default:a(()=>[r("ul",J,[(m(!0),_(F,null,j(t.$store.state.mqtt["openWB/system/current_missing_commits"],(n,W)=>(m(),_("li",{key:W},T(n),1))),128))])]),_:1})):y("",!0),s(c,{subtype:"danger"},{default:a(()=>[d(" Nach einem Update wird die Ladestation direkt neu gestartet! Es werden alle eventuell vorhandenen lokalen Änderungen am Programmcode mit dem Update verworfen! ")]),_:1})]),_:1},8,["collapsed"])]),u.installAssistantActive?y("",!0):(m(),_("form",M,[s(i,{title:"Betrieb",collapsible:!0,collapsed:!0},{footer:a(()=>[r("div",Q,[r("div",X,[s(w,{class:"btn-warning",onButtonClicked:e[7]||(e[7]=n=>o.sendSystemCommand("systemReboot"))},{default:a(()=>[d(" Neustart "),s(f,{"fixed-width":"",icon:["fas","undo"]})]),_:1})]),r("div",Y,[s(w,{class:"btn-danger",onButtonClicked:e[8]||(e[8]=n=>o.sendSystemCommand("systemShutdown"))},{default:a(()=>[d(" Ausschalten "),s(f,{"fixed-width":"",icon:["fas","power-off"]})]),_:1})])])]),default:a(()=>[s(c,{subtype:"danger"},{default:a(()=>[d(" 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})])),u.installAssistantActive?y("",!0):(m(),_("form",ee,[s(i,{title:"Entwicklungszweig",subtype:"danger",collapsible:!0,collapsed:!0},{footer:a(()=>[r("div",oe,[r("div",le,[s(w,{class:B(o.releaseChangeValid?"btn-danger clickable":"btn-outline-danger"),disabled:!o.releaseChangeValid,onButtonClicked:e[11]||(e[11]=n=>o.switchBranch())},{default:a(()=>[s(f,{"fixed-width":"",icon:["fas","skull-crossbones"]}),d(" Branch und Tag wechseln "),s(f,{"fixed-width":"",icon:["fas","skull-crossbones"]})]),_:1},8,["class","disabled"])])])]),default:a(()=>[s(c,{subtype:"danger"},{default:a(()=>[d(" Nach einem Wechsel wird die Ladestation direkt neu gestartet! Es werden alle lokalen Änderungen mit dem Wechsel verworfen! ")]),_:1}),s(c,{subtype:"warning"},{default:a(()=>[d(" 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."),te,d(' Für den normalen Betrieb wird der Zweig "Release" empfohlen. Der Softwarestand wurde ausgiebig getestet, sodass ein Fehlverhalten relativ unwahrscheinlich ist.'),se,d(' 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.'),ne,d(' Die aktuelle Softwareentwicklung findet im Zweig "master" statt. Die enthaltenen Anpassungen sind teilweise noch nicht getestet und enthalten potentiell Fehler.'),ae,d(' Einträge, die mit "feature" beginnen, sind experimentelle Entwicklungszweige, die nicht für den allgemeinen Gebrauch gedacht sind. ')]),_:1}),s(k,{title:"Entwicklungszweig",groups:o.getBranchGroups(),"model-value":t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[9]||(e[9]=n=>t.updateState("openWB/system/current_branch",n))},null,8,["groups","model-value"]),s(k,{title:"Tag",options:o.getBranchTagOptions(),modelValue:h.selectedTag,"onUpdate:modelValue":e[10]||(e[10]=n=>h.selectedTag=n)},null,8,["options","modelValue"])]),_:1})]))])):y("",!0)])}const be=E(L,[["render",re],["__scopeId","data-v-059847f6"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/System.vue"]]);export{be as default}; +import{l as A,ae as q,p as S,a3 as C,U as x,af as U,F as $}from"./vendor-fortawesome-71546160.js";import{C as z}from"./index-88a2073c.js";import{_ as E,u as p,k as m,l as _,A as V,N as a,B as y,x as r,D as s,y as d,q as B,J as F,K as j,z as T,S as D,U as I}from"./vendor-f2b8aa6f.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";A.add(q,S,C,x,U);const L={name:"OpenwbSystemView",mixins:[z],emits:["sendCommand"],components:{FontAwesomeIcon:$},data(){return{mqttTopicsToSubscribe:["openWB/system/optionBackup","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"],warningAcknowledged:!1,selectedTag:"*HEAD*"}},props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},computed:{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}},methods:{sendSystemCommand(t,e={}){this.$emit("sendCommand",{command:t,data:e})},getBranchGroups(){const t="Release",e="Beta",u="master",v=[t,e],h=(l,i)=>l.value==i.value?0:l.value==t?-1:i.value==t?1:l.value==e?-1:i.value==e?1:l.value==u?-1:i.value==u||l.value>i.value?1:l.value(D("data-v-059847f6"),t=t(),I(),t),N={class:"system"},O=g(()=>r("h2",null,"Achtung!",-1)),Z=g(()=>r("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={key:1},P={name:"versionInfoForm"},J={class:"missing-commits"},G={class:"row justify-content-center"},H={class:"col-md-4 d-flex py-1 justify-content-center"},K={class:"col-md-4 d-flex py-1 justify-content-center"},M={key:0,name:"powerForm"},Q={class:"row justify-content-center"},X={class:"col-md-4 d-flex py-1 justify-content-center"},Y={class:"col-md-4 d-flex py-1 justify-content-center"},ee={key:1,name:"releaseChangeForm"},te=g(()=>r("br",null,null,-1)),se=g(()=>r("br",null,null,-1)),ne=g(()=>r("br",null,null,-1)),ae=g(()=>r("br",null,null,-1)),oe={class:"row justify-content-center"},le={class:"col-md-4 d-flex py-1 justify-content-center"};function re(t,e,u,v,h,o){const b=p("openwb-base-button-group-input"),c=p("openwb-base-alert"),l=p("openwb-base-text-input"),i=p("openwb-base-card"),f=p("font-awesome-icon"),w=p("openwb-base-click-button"),k=p("openwb-base-select-input");return m(),_("div",N,[u.installAssistantActive?y("",!0):(m(),V(c,{key:0,subtype:"danger"},{default:a(()=>[O,Z,s(b,{title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],modelValue:this.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=n=>this.warningAcknowledged=n)},null,8,["modelValue"])]),_:1})),h.warningAcknowledged||u.installAssistantActive?(m(),_("div",R,[r("form",P,[s(i,{title:"Versions-Informationen / Aktualisierung",subtype:"success",collapsible:!0,collapsed:!u.installAssistantActive},{footer:a(()=>[r("div",G,[r("div",H,[s(w,{class:"btn-info",onButtonClicked:e[5]||(e[5]=n=>o.sendSystemCommand("systemFetchVersions"))},{default:a(()=>[d(" Informationen aktualisieren "),s(f,{"fixed-width":"",icon:["fas","download"]})]),_:1})]),r("div",K,[s(w,{class:B(o.updateAvailable?"btn-success clickable":"btn-outline-success"),disabled:!o.updateAvailable,onButtonClicked:e[6]||(e[6]=n=>o.systemUpdate())},{default:a(()=>[d(" Update "),s(f,{"fixed-width":"",icon:["fas","arrow-alt-circle-up"]})]),_:1},8,["class","disabled"])])])]),default:a(()=>[s(l,{title:"Entwicklungszweig",readonly:"",modelValue:t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[1]||(e[1]=n=>t.$store.state.mqtt["openWB/system/current_branch"]=n)},null,8,["modelValue"]),s(l,{title:"Bezeichnung",readonly:"",modelValue:t.$store.state.mqtt["openWB/system/version"],"onUpdate:modelValue":e[2]||(e[2]=n=>t.$store.state.mqtt["openWB/system/version"]=n)},null,8,["modelValue"]),s(l,{title:"installierte Version",readonly:"",class:B(o.updateAvailable?"text-danger":"text-success"),modelValue:t.$store.state.mqtt["openWB/system/current_commit"],"onUpdate:modelValue":e[3]||(e[3]=n=>t.$store.state.mqtt["openWB/system/current_commit"]=n)},null,8,["class","modelValue"]),s(l,{title:"aktuellste Version",readonly:"",modelValue:t.$store.state.mqtt["openWB/system/current_branch_commit"],"onUpdate:modelValue":e[4]||(e[4]=n=>t.$store.state.mqtt["openWB/system/current_branch_commit"]=n)},null,8,["modelValue"]),o.updateAvailable?(m(),V(i,{key:0,title:"Änderungen",subtype:"info",collapsible:!0,collapsed:!0},{default:a(()=>[r("ul",J,[(m(!0),_(F,null,j(t.$store.state.mqtt["openWB/system/current_missing_commits"],(n,W)=>(m(),_("li",{key:W},T(n),1))),128))])]),_:1})):y("",!0),s(c,{subtype:"danger"},{default:a(()=>[d(" Nach einem Update wird die Ladestation direkt neu gestartet! Es werden alle eventuell vorhandenen lokalen Änderungen am Programmcode mit dem Update verworfen! ")]),_:1})]),_:1},8,["collapsed"])]),u.installAssistantActive?y("",!0):(m(),_("form",M,[s(i,{title:"Betrieb",collapsible:!0,collapsed:!0},{footer:a(()=>[r("div",Q,[r("div",X,[s(w,{class:"btn-warning",onButtonClicked:e[7]||(e[7]=n=>o.sendSystemCommand("systemReboot"))},{default:a(()=>[d(" Neustart "),s(f,{"fixed-width":"",icon:["fas","undo"]})]),_:1})]),r("div",Y,[s(w,{class:"btn-danger",onButtonClicked:e[8]||(e[8]=n=>o.sendSystemCommand("systemShutdown"))},{default:a(()=>[d(" Ausschalten "),s(f,{"fixed-width":"",icon:["fas","power-off"]})]),_:1})])])]),default:a(()=>[s(c,{subtype:"danger"},{default:a(()=>[d(" 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})])),u.installAssistantActive?y("",!0):(m(),_("form",ee,[s(i,{title:"Entwicklungszweig",subtype:"danger",collapsible:!0,collapsed:!0},{footer:a(()=>[r("div",oe,[r("div",le,[s(w,{class:B(o.releaseChangeValid?"btn-danger clickable":"btn-outline-danger"),disabled:!o.releaseChangeValid,onButtonClicked:e[11]||(e[11]=n=>o.switchBranch())},{default:a(()=>[s(f,{"fixed-width":"",icon:["fas","skull-crossbones"]}),d(" Branch und Tag wechseln "),s(f,{"fixed-width":"",icon:["fas","skull-crossbones"]})]),_:1},8,["class","disabled"])])])]),default:a(()=>[s(c,{subtype:"danger"},{default:a(()=>[d(" Nach einem Wechsel wird die Ladestation direkt neu gestartet! Es werden alle lokalen Änderungen mit dem Wechsel verworfen! ")]),_:1}),s(c,{subtype:"warning"},{default:a(()=>[d(" 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."),te,d(' Für den normalen Betrieb wird der Zweig "Release" empfohlen. Der Softwarestand wurde ausgiebig getestet, sodass ein Fehlverhalten relativ unwahrscheinlich ist.'),se,d(' 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.'),ne,d(' Die aktuelle Softwareentwicklung findet im Zweig "master" statt. Die enthaltenen Anpassungen sind teilweise noch nicht getestet und enthalten potentiell Fehler.'),ae,d(' Einträge, die mit "feature" beginnen, sind experimentelle Entwicklungszweige, die nicht für den allgemeinen Gebrauch gedacht sind. ')]),_:1}),s(k,{title:"Entwicklungszweig",groups:o.getBranchGroups(),"model-value":t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[9]||(e[9]=n=>t.updateState("openWB/system/current_branch",n))},null,8,["groups","model-value"]),s(k,{title:"Tag",options:o.getBranchTagOptions(),modelValue:h.selectedTag,"onUpdate:modelValue":e[10]||(e[10]=n=>h.selectedTag=n)},null,8,["options","modelValue"])]),_:1})]))])):y("",!0)])}const be=E(L,[["render",re],["__scopeId","data-v-059847f6"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/System.vue"]]);export{be as default}; diff --git a/web/settings/assets/TestingStore-5dd38b00.js b/web/settings/assets/TestingStore-5a64ca39.js similarity index 99% rename from web/settings/assets/TestingStore-5dd38b00.js rename to web/settings/assets/TestingStore-5a64ca39.js index 2c50c7f845..4c7593371d 100644 --- a/web/settings/assets/TestingStore-5dd38b00.js +++ b/web/settings/assets/TestingStore-5a64ca39.js @@ -1 +1 @@ -import{C as V}from"./index-ba5cf04c.js";import{S as U}from"./OpenwbSortableList-641f6bb4.js";import{_ as y,u as s,k as E,l as k,x as u,D as o,N as a,y as n,z as v}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const T={name:"OpenwbTestingStoreView",mixins:[V],components:{SortableList:U},data(){return{mqttTopicsToSubscribe:[]}}},_={class:"testingStore"},N={name:"testingStoreForm"},z=u("hr",null,null,-1),O=u("br",null,null,-1),Z=u("br",null,null,-1),j=u("hr",null,null,-1),D=u("hr",null,null,-1),B=u("hr",null,null,-1),J=u("hr",null,null,-1),L=u("span",{style:{"text-decoration":"underline","font-style":"italic"}},[n(" Styled "),u("span",{style:{"font-weight":"initial"}},"Header"),n(" Slot ")],-1);function W(e,t,G,R,H,A){const p=s("openwb-base-text-input"),m=s("openwb-base-number-input"),g=s("openwb-base-textarea"),i=s("openwb-base-card"),r=s("openwb-base-range-input"),b=s("openwb-base-select-input"),f=s("openwb-base-button-group-input"),S=s("openwb-base-checkbox-input"),h=s("openwb-base-array-input"),w=s("openwb-base-heading"),d=s("openwb-base-alert"),x=s("sortable-list"),$=s("openwb-base-submit-buttons");return E(),k("div",_,[u("form",N,[o(i,{title:"Einfache Eingabefelder"},{default:a(()=>[o(p,{title:"1. Text","model-value":e.$store.state.examples.text1,"onUpdate:modelValue":t[0]||(t[0]=l=>e.updateState("text1",l))},{help:a(()=>[n("Einfacher Text")]),_:1},8,["model-value"]),o(p,{title:"2. Text (E-Mail)",subtype:"email","model-value":e.$store.state.examples.text2,"onUpdate:modelValue":t[1]||(t[1]=l=>e.updateState("text2",l))},{help:a(()=>[n("Eingabefeld für E-Mailadressen")]),_:1},8,["model-value"]),o(p,{title:"3. Text (Host)",subtype:"host","model-value":e.$store.state.examples.text3,"onUpdate:modelValue":t[2]||(t[2]=l=>e.updateState("text3",l))},{help:a(()=>[n(" Eingabefeld für Hosts (IP oder Namen) ")]),_:1},8,["model-value"]),o(p,{title:"4. Text (URL)",subtype:"url","model-value":e.$store.state.examples.text4,"onUpdate:modelValue":t[3]||(t[3]=l=>e.updateState("text4",l))},{help:a(()=>[n("Eingabefeld für URLs")]),_:1},8,["model-value"]),o(p,{title:"5. Text (User)",subtype:"user","model-value":e.$store.state.examples.text5,"onUpdate:modelValue":t[4]||(t[4]=l=>e.updateState("text5",l))},{help:a(()=>[n("Eingabefeld für Benutzernamen")]),_:1},8,["model-value"]),o(p,{title:"6. Text (Time)",subtype:"time","model-value":e.$store.state.examples.text6,"onUpdate:modelValue":t[5]||(t[5]=l=>e.updateState("text6",l))},{help:a(()=>[n("Eingabefeld für Zeiten")]),_:1},8,["model-value"]),o(p,{title:"7. Text (Date)",subtype:"date","model-value":e.$store.state.examples.text7,"onUpdate:modelValue":t[6]||(t[6]=l=>e.updateState("text7",l))},{help:a(()=>[n("Eingabefeld für ein Datum")]),_:1},8,["model-value"]),z,o(m,{title:"1. Zahl",min:5,max:9,step:2,unit:"kW","model-value":e.$store.state.examples.number1,"onUpdate:modelValue":t[7]||(t[7]=l=>e.updateState("number1",l))},{help:a(()=>[n("Zahl mit Einheit")]),_:1},8,["model-value"]),o(m,{title:"2. Zahl",min:10,max:32,step:2,"model-value":e.$store.state.examples.number2,"onUpdate:modelValue":t[8]||(t[8]=l=>e.updateState("number2",l))},{help:a(()=>[n("Eingabefeld für Zahlen ohne Einheit")]),_:1},8,["model-value"]),o(m,{title:"3. Zahl",min:-30,max:30,step:.01,precision:2,unit:"ct/kWh","model-value":e.$store.state.examples.number3*1e5,"onUpdate:modelValue":t[9]||(t[9]=l=>e.updateState("number3",parseFloat((l/1e5).toFixed(7))))},{help:a(()=>[n(" Eingabefeld für Zahlen mit Einheit und Nachkommastellen"),O,n(' Zusätzlich zum optionalen Parameter "step" sollte immer auch "precision" gesetzt sein, um unvermeidbare Darstellungsfehler zu vermeiden.'),Z,n(" 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},8,["model-value"]),o(p,{title:"1. Passwort",subtype:"password","model-value":e.$store.state.examples.password1,"onUpdate:modelValue":t[10]||(t[10]=l=>e.updateState("password1",l))},{help:a(()=>[n(" Das Passwort kann per Klick auf das Auge angezeigt werden. ")]),_:1},8,["model-value"]),j,o(g,{title:"1. Textarea",maxlength:"50","model-value":e.$store.state.examples.textarea1,"onUpdate:modelValue":t[11]||(t[11]=l=>e.updateState("textarea1",l))},{help:a(()=>[n(" Textarea mit maximaler Länge von 50 Zeichen. ")]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Spezielle Elemente"},{default:a(()=>[o(r,{title:"1. Range",min:6,max:32,step:1,unit:"A","model-value":e.$store.state.examples.range1,"onUpdate:modelValue":t[12]||(t[12]=l=>e.updateState("range1",l))},{help:a(()=>[n("Range ohne spezielle Labels")]),_:1},8,["model-value"]),o(r,{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":e.$store.state.examples.range2,"onUpdate:modelValue":t[13]||(t[13]=l=>e.updateState("range2",l))},{help:a(()=>[n("Range mit speziellen Labels")]),_:1},8,["model-value"]),D,o(b,{title:"1. Select",notSelected:"Bitte auswählen",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}],"model-value":e.$store.state.examples.select1,"onUpdate:modelValue":t[14]||(t[14]=l=>e.updateState("select1",l))},{help:a(()=>[n("Select mit einfachen Optionen")]),_:1},8,["model-value"]),o(b,{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"}]}],"model-value":e.$store.state.examples.select2,"onUpdate:modelValue":t[15]||(t[15]=l=>e.updateState("select2",l))},{help:a(()=>[n("Select mit Gruppen")]),_:1},8,["model-value"]),B,o(f,{title:"1. Button-Group",buttons:[{buttonValue:1,text:"Eins"},{buttonValue:2,text:"Zwei"}],"model-value":e.$store.state.examples.buttonGroup1,"onUpdate:modelValue":t[16]||(t[16]=l=>e.updateState("buttonGroup1",l))},{help:a(()=>[n("Hilfetext")]),_:1},8,["model-value"]),J,o(S,{title:"1. Checkbox","model-value":e.$store.state.examples.checkbox1,"onUpdate:modelValue":t[17]||(t[17]=l=>e.updateState("checkbox1",l))},{help:a(()=>[n("Hilfetext")]),_:1},8,["model-value"])]),_:1}),o(i,{title:"JSON Gruppe"},{default:a(()=>[o(p,{title:"JSON 1",subtype:"json","model-value":e.$store.state.examples.json1,"onUpdate:modelValue":t[18]||(t[18]=l=>e.updateState("json1",l))},{help:a(()=>[n("JSON Objekt")]),_:1},8,["model-value"]),o(p,{title:"JSON 1 Text","model-value":e.$store.state.examples.json1.text,"onUpdate:modelValue":t[19]||(t[19]=l=>e.updateState("json1",l,"text"))},{help:a(()=>[n("Text im JSON Objekt")]),_:1},8,["model-value"]),o(m,{title:"JSON 1 Zahl","model-value":e.$store.state.examples.json1.number,"onUpdate:modelValue":t[20]||(t[20]=l=>e.updateState("json1",l,"number"))},{help:a(()=>[n("Zahl im JSON Objekt")]),_:1},8,["model-value"]),o(h,{title:"Tag Array","model-value":e.$store.state.examples.tags,"onUpdate:modelValue":t[21]||(t[21]=l=>e.updateState("tags",l))},{help:a(()=>[u("pre",null,v(JSON.stringify(e.$store.state.examples.tags,void 0,2)),1)]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Meldungen"},{header:a(()=>[L]),default:a(()=>[o(w,null,{help:a(()=>[n(" Es sind auch Hilfetexte im #help Slot möglich. ")]),default:a(()=>[n(" Das ist eine Überschrift ")]),_:1}),o(d,null,{default:a(()=>[n(" Meldung ohne speziellen Subtype. ")]),_:1}),o(d,{subtype:"info"},{default:a(()=>[n("Infomeldung")]),_:1}),o(d,{subtype:"warning"},{default:a(()=>[n("Warnmeldung")]),_:1}),o(d,{subtype:"danger"},{default:a(()=>[n(" Fehlermeldung ")]),_:1})]),_:1}),o(i,{title:"Listen"},{default:a(()=>[o(x,{title:"Liste 1",modelValue:e.$store.state.examples.hierarchy1,"onUpdate:modelValue":t[22]||(t[22]=l=>e.$store.state.examples.hierarchy1=l),labels:e.$store.state.examples.hierarchy1Labels},{help:a(()=>[u("pre",null,v(JSON.stringify(e.$store.state.examples.hierarchy1,void 0,2)),1)]),_:1},8,["modelValue","labels"])]),_:1}),o($,{formName:"testingStoreForm",onSave:t[23]||(t[23]=l=>e.$emit("save")),onReset:t[24]||(t[24]=l=>e.$emit("reset")),onDefaults:t[25]||(t[25]=l=>e.$emit("defaults"))})])])}const X=y(T,[["render",W],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/TestingStore.vue"]]);export{X as default}; +import{C as V}from"./index-88a2073c.js";import{S as U}from"./OpenwbSortableList-641f6bb4.js";import{_ as y,u as s,k as E,l as k,x as u,D as o,N as a,y as n,z as v}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const T={name:"OpenwbTestingStoreView",mixins:[V],components:{SortableList:U},data(){return{mqttTopicsToSubscribe:[]}}},_={class:"testingStore"},N={name:"testingStoreForm"},z=u("hr",null,null,-1),O=u("br",null,null,-1),Z=u("br",null,null,-1),j=u("hr",null,null,-1),D=u("hr",null,null,-1),B=u("hr",null,null,-1),J=u("hr",null,null,-1),L=u("span",{style:{"text-decoration":"underline","font-style":"italic"}},[n(" Styled "),u("span",{style:{"font-weight":"initial"}},"Header"),n(" Slot ")],-1);function W(e,t,G,R,H,A){const p=s("openwb-base-text-input"),m=s("openwb-base-number-input"),g=s("openwb-base-textarea"),i=s("openwb-base-card"),r=s("openwb-base-range-input"),b=s("openwb-base-select-input"),f=s("openwb-base-button-group-input"),S=s("openwb-base-checkbox-input"),h=s("openwb-base-array-input"),w=s("openwb-base-heading"),d=s("openwb-base-alert"),x=s("sortable-list"),$=s("openwb-base-submit-buttons");return E(),k("div",_,[u("form",N,[o(i,{title:"Einfache Eingabefelder"},{default:a(()=>[o(p,{title:"1. Text","model-value":e.$store.state.examples.text1,"onUpdate:modelValue":t[0]||(t[0]=l=>e.updateState("text1",l))},{help:a(()=>[n("Einfacher Text")]),_:1},8,["model-value"]),o(p,{title:"2. Text (E-Mail)",subtype:"email","model-value":e.$store.state.examples.text2,"onUpdate:modelValue":t[1]||(t[1]=l=>e.updateState("text2",l))},{help:a(()=>[n("Eingabefeld für E-Mailadressen")]),_:1},8,["model-value"]),o(p,{title:"3. Text (Host)",subtype:"host","model-value":e.$store.state.examples.text3,"onUpdate:modelValue":t[2]||(t[2]=l=>e.updateState("text3",l))},{help:a(()=>[n(" Eingabefeld für Hosts (IP oder Namen) ")]),_:1},8,["model-value"]),o(p,{title:"4. Text (URL)",subtype:"url","model-value":e.$store.state.examples.text4,"onUpdate:modelValue":t[3]||(t[3]=l=>e.updateState("text4",l))},{help:a(()=>[n("Eingabefeld für URLs")]),_:1},8,["model-value"]),o(p,{title:"5. Text (User)",subtype:"user","model-value":e.$store.state.examples.text5,"onUpdate:modelValue":t[4]||(t[4]=l=>e.updateState("text5",l))},{help:a(()=>[n("Eingabefeld für Benutzernamen")]),_:1},8,["model-value"]),o(p,{title:"6. Text (Time)",subtype:"time","model-value":e.$store.state.examples.text6,"onUpdate:modelValue":t[5]||(t[5]=l=>e.updateState("text6",l))},{help:a(()=>[n("Eingabefeld für Zeiten")]),_:1},8,["model-value"]),o(p,{title:"7. Text (Date)",subtype:"date","model-value":e.$store.state.examples.text7,"onUpdate:modelValue":t[6]||(t[6]=l=>e.updateState("text7",l))},{help:a(()=>[n("Eingabefeld für ein Datum")]),_:1},8,["model-value"]),z,o(m,{title:"1. Zahl",min:5,max:9,step:2,unit:"kW","model-value":e.$store.state.examples.number1,"onUpdate:modelValue":t[7]||(t[7]=l=>e.updateState("number1",l))},{help:a(()=>[n("Zahl mit Einheit")]),_:1},8,["model-value"]),o(m,{title:"2. Zahl",min:10,max:32,step:2,"model-value":e.$store.state.examples.number2,"onUpdate:modelValue":t[8]||(t[8]=l=>e.updateState("number2",l))},{help:a(()=>[n("Eingabefeld für Zahlen ohne Einheit")]),_:1},8,["model-value"]),o(m,{title:"3. Zahl",min:-30,max:30,step:.01,precision:2,unit:"ct/kWh","model-value":e.$store.state.examples.number3*1e5,"onUpdate:modelValue":t[9]||(t[9]=l=>e.updateState("number3",parseFloat((l/1e5).toFixed(7))))},{help:a(()=>[n(" Eingabefeld für Zahlen mit Einheit und Nachkommastellen"),O,n(' Zusätzlich zum optionalen Parameter "step" sollte immer auch "precision" gesetzt sein, um unvermeidbare Darstellungsfehler zu vermeiden.'),Z,n(" 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},8,["model-value"]),o(p,{title:"1. Passwort",subtype:"password","model-value":e.$store.state.examples.password1,"onUpdate:modelValue":t[10]||(t[10]=l=>e.updateState("password1",l))},{help:a(()=>[n(" Das Passwort kann per Klick auf das Auge angezeigt werden. ")]),_:1},8,["model-value"]),j,o(g,{title:"1. Textarea",maxlength:"50","model-value":e.$store.state.examples.textarea1,"onUpdate:modelValue":t[11]||(t[11]=l=>e.updateState("textarea1",l))},{help:a(()=>[n(" Textarea mit maximaler Länge von 50 Zeichen. ")]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Spezielle Elemente"},{default:a(()=>[o(r,{title:"1. Range",min:6,max:32,step:1,unit:"A","model-value":e.$store.state.examples.range1,"onUpdate:modelValue":t[12]||(t[12]=l=>e.updateState("range1",l))},{help:a(()=>[n("Range ohne spezielle Labels")]),_:1},8,["model-value"]),o(r,{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":e.$store.state.examples.range2,"onUpdate:modelValue":t[13]||(t[13]=l=>e.updateState("range2",l))},{help:a(()=>[n("Range mit speziellen Labels")]),_:1},8,["model-value"]),D,o(b,{title:"1. Select",notSelected:"Bitte auswählen",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}],"model-value":e.$store.state.examples.select1,"onUpdate:modelValue":t[14]||(t[14]=l=>e.updateState("select1",l))},{help:a(()=>[n("Select mit einfachen Optionen")]),_:1},8,["model-value"]),o(b,{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"}]}],"model-value":e.$store.state.examples.select2,"onUpdate:modelValue":t[15]||(t[15]=l=>e.updateState("select2",l))},{help:a(()=>[n("Select mit Gruppen")]),_:1},8,["model-value"]),B,o(f,{title:"1. Button-Group",buttons:[{buttonValue:1,text:"Eins"},{buttonValue:2,text:"Zwei"}],"model-value":e.$store.state.examples.buttonGroup1,"onUpdate:modelValue":t[16]||(t[16]=l=>e.updateState("buttonGroup1",l))},{help:a(()=>[n("Hilfetext")]),_:1},8,["model-value"]),J,o(S,{title:"1. Checkbox","model-value":e.$store.state.examples.checkbox1,"onUpdate:modelValue":t[17]||(t[17]=l=>e.updateState("checkbox1",l))},{help:a(()=>[n("Hilfetext")]),_:1},8,["model-value"])]),_:1}),o(i,{title:"JSON Gruppe"},{default:a(()=>[o(p,{title:"JSON 1",subtype:"json","model-value":e.$store.state.examples.json1,"onUpdate:modelValue":t[18]||(t[18]=l=>e.updateState("json1",l))},{help:a(()=>[n("JSON Objekt")]),_:1},8,["model-value"]),o(p,{title:"JSON 1 Text","model-value":e.$store.state.examples.json1.text,"onUpdate:modelValue":t[19]||(t[19]=l=>e.updateState("json1",l,"text"))},{help:a(()=>[n("Text im JSON Objekt")]),_:1},8,["model-value"]),o(m,{title:"JSON 1 Zahl","model-value":e.$store.state.examples.json1.number,"onUpdate:modelValue":t[20]||(t[20]=l=>e.updateState("json1",l,"number"))},{help:a(()=>[n("Zahl im JSON Objekt")]),_:1},8,["model-value"]),o(h,{title:"Tag Array","model-value":e.$store.state.examples.tags,"onUpdate:modelValue":t[21]||(t[21]=l=>e.updateState("tags",l))},{help:a(()=>[u("pre",null,v(JSON.stringify(e.$store.state.examples.tags,void 0,2)),1)]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Meldungen"},{header:a(()=>[L]),default:a(()=>[o(w,null,{help:a(()=>[n(" Es sind auch Hilfetexte im #help Slot möglich. ")]),default:a(()=>[n(" Das ist eine Überschrift ")]),_:1}),o(d,null,{default:a(()=>[n(" Meldung ohne speziellen Subtype. ")]),_:1}),o(d,{subtype:"info"},{default:a(()=>[n("Infomeldung")]),_:1}),o(d,{subtype:"warning"},{default:a(()=>[n("Warnmeldung")]),_:1}),o(d,{subtype:"danger"},{default:a(()=>[n(" Fehlermeldung ")]),_:1})]),_:1}),o(i,{title:"Listen"},{default:a(()=>[o(x,{title:"Liste 1",modelValue:e.$store.state.examples.hierarchy1,"onUpdate:modelValue":t[22]||(t[22]=l=>e.$store.state.examples.hierarchy1=l),labels:e.$store.state.examples.hierarchy1Labels},{help:a(()=>[u("pre",null,v(JSON.stringify(e.$store.state.examples.hierarchy1,void 0,2)),1)]),_:1},8,["modelValue","labels"])]),_:1}),o($,{formName:"testingStoreForm",onSave:t[23]||(t[23]=l=>e.$emit("save")),onReset:t[24]||(t[24]=l=>e.$emit("reset")),onDefaults:t[25]||(t[25]=l=>e.$emit("defaults"))})])])}const X=y(T,[["render",W],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/TestingStore.vue"]]);export{X as default}; diff --git a/web/settings/assets/TimeChargeConfig-7d17c070.js b/web/settings/assets/TimeChargeConfig-b85503dd.js similarity index 96% rename from web/settings/assets/TimeChargeConfig-7d17c070.js rename to web/settings/assets/TimeChargeConfig-b85503dd.js index d144bb4156..6b624d7ef1 100644 --- a/web/settings/assets/TimeChargeConfig-7d17c070.js +++ b/web/settings/assets/TimeChargeConfig-b85503dd.js @@ -1 +1 @@ -import{C as l}from"./index-ba5cf04c.js";import{_,u as o,k as a,l as i,x as b,D as s,N as r,y as m}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const h={name:"OpenwbTimeChargeConfigView",mixins:[l],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/chargemode_config/time_charging/phases_to_use"]}}},c={class:"timeChargeConfig"},f={name:"timeChargeConfigForm"},v={key:0},w={key:1};function C(t,e,$,B,k,V){const u=o("openwb-base-alert"),p=o("openwb-base-button-group-input"),g=o("openwb-base-card"),d=o("openwb-base-submit-buttons");return a(),i("div",c,[b("form",f,[s(g,{title:"Phasenumschaltung"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),i("div",v,[s(u,{subtype:"info"},{default:r(()=>[m(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(a(),i("div",w,[s(p,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/time_charging/phases_to_use"],"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateState("openWB/general/chargemode_config/time_charging/phases_to_use",n))},{help:r(()=>[m(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zeitladen" mit nur 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},8,["model-value"])]))]),_:1}),s(d,{formName:"timeChargeConfigForm",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"))})])])}const q=_(h,[["render",C],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/TimeChargeConfig.vue"]]);export{q as default}; +import{C as l}from"./index-88a2073c.js";import{_,u as o,k as a,l as i,x as b,D as s,N as r,y as m}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const h={name:"OpenwbTimeChargeConfigView",mixins:[l],data(){return{mqttTopicsToSubscribe:["openWB/general/extern","openWB/general/chargemode_config/time_charging/phases_to_use"]}}},c={class:"timeChargeConfig"},f={name:"timeChargeConfigForm"},v={key:0},w={key:1};function C(t,e,$,B,k,V){const u=o("openwb-base-alert"),p=o("openwb-base-button-group-input"),g=o("openwb-base-card"),d=o("openwb-base-submit-buttons");return a(),i("div",c,[b("form",f,[s(g,{title:"Phasenumschaltung"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),i("div",v,[s(u,{subtype:"info"},{default:r(()=>[m(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(a(),i("div",w,[s(p,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/time_charging/phases_to_use"],"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateState("openWB/general/chargemode_config/time_charging/phases_to_use",n))},{help:r(()=>[m(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zeitladen" mit nur 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},8,["model-value"])]))]),_:1}),s(d,{formName:"timeChargeConfigForm",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"))})])])}const q=_(h,[["render",C],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/TimeChargeConfig.vue"]]);export{q as default}; diff --git a/web/settings/assets/VehicleConfig-99736f29.js b/web/settings/assets/VehicleConfig-99736f29.js new file mode 100644 index 0000000000..ee0b6a121d --- /dev/null +++ b/web/settings/assets/VehicleConfig-99736f29.js @@ -0,0 +1 @@ +import{l as j,d as J,a0 as $,A as G,a9 as Q,aa as X,z as Y,P as K,ac as ee,R as te,ab as ne,ad as ae,F as le,I as ie}from"./vendor-fortawesome-71546160.js";import{_ as V,C as oe}from"./index-88a2073c.js";import{_ as de}from"./dynamic-import-helper-be004503.js";import{_ as Z,u as C,k as r,l as c,A as v,N as a,y as l,z as S,D as n,x as g,a2 as re,a3 as ue,J as A,B as m,K as B,a4 as q,P as N,q as I,S as se,U as me}from"./vendor-f2b8aa6f.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const ce={name:"VehicleConfigFallback",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},vehicleId:{default:void 0},vehicleType:String},methods:{updateConfiguration(e,d=void 0){this.$emit("update:configuration",{value:e,object:d})}}},he={class:"vehicle-fallback"},ge={key:1};function pe(e,d,h,F,f,s){const W=C("openwb-base-alert"),b=C("openwb-base-textarea");return r(),c("div",he,[Object.keys(h.configuration).length==0?(r(),v(W,{key:0,subtype:"info"},{default:a(()=>[l(' Der Fahrzeug-Typ "'+S(h.vehicleType)+'" bietet keine Einstellungen. ',1)]),_:1})):(r(),c("div",ge,[n(W,{subtype:"warning"},{default:a(()=>[l(' Es wurde keine Konfigurationsseite für den Fahrzeug-Typ "'+S(h.vehicleType)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(b,{title:"Konfiguration",subtype:"json","model-value":h.configuration,"onUpdate:modelValue":d[0]||(d[0]=U=>s.updateConfiguration(U,"configuration"))},{help:a(()=>[l(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ")]),_:1},8,["model-value"]),n(W,{subtype:"info"},{default:a(()=>[g("pre",null,S(JSON.stringify(h.configuration,void 0,2)),1)]),_:1})]))])}const be=Z(ce,[["render",pe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleConfigFallback.vue"]]),ve={name:"OpenwbVehicleProxy",emits:["update:configuration"],props:{vehicleId:{required:!0},vehicle:{type:Object,required:!0}},computed:{myComponent(){return console.debug(`loading vehicle: ${this.vehicle.type}`),re({loader:()=>de(Object.assign({"./bmw/vehicle.vue":()=>V(()=>import("./vehicle-1e7f87e2.js"),["assets/vehicle-1e7f87e2.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./bmwbc/vehicle.vue":()=>V(()=>import("./vehicle-4452f15b.js"),["assets/vehicle-4452f15b.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./evcc/vehicle.vue":()=>V(()=>import("./vehicle-cea9d72d.js"),["assets/vehicle-cea9d72d.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./evnotify/vehicle.vue":()=>V(()=>import("./vehicle-f67e18a5.js"),["assets/vehicle-f67e18a5.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./http/vehicle.vue":()=>V(()=>import("./vehicle-e84c6485.js"),["assets/vehicle-e84c6485.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kia/vehicle.vue":()=>V(()=>import("./vehicle-4ca53182.js"),["assets/vehicle-4ca53182.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./manual/vehicle.vue":()=>V(()=>import("./vehicle-b04d281c.js"),["assets/vehicle-b04d281c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./mercedeseq/vehicle.vue":()=>V(()=>import("./vehicle-891d5eff.js"),["assets/vehicle-891d5eff.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./mqtt/vehicle.vue":()=>V(()=>import("./vehicle-b28cb25d.js"),["assets/vehicle-b28cb25d.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./ovms/vehicle.vue":()=>V(()=>import("./vehicle-fc0096d3.js"),["assets/vehicle-fc0096d3.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./psa/vehicle.vue":()=>V(()=>import("./vehicle-836328f6.js"),["assets/vehicle-836328f6.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./renault/vehicle.vue":()=>V(()=>import("./vehicle-951b0c53.js"),["assets/vehicle-951b0c53.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./skodaconnect/vehicle.vue":()=>V(()=>import("./vehicle-5ad6c2de.js"),["assets/vehicle-5ad6c2de.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./smarteq/vehicle.vue":()=>V(()=>import("./vehicle-47636774.js"),["assets/vehicle-47636774.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./smarthello/vehicle.vue":()=>V(()=>import("./vehicle-b1a2ecd4.js"),["assets/vehicle-b1a2ecd4.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./tesla/vehicle.vue":()=>V(()=>import("./vehicle-ef8ce1de.js"),["assets/vehicle-ef8ce1de.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-axios-65ecee4b.js","assets/index-88a2073c.js","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/index-b3227821.css"]),"./tronity/vehicle.vue":()=>V(()=>import("./vehicle-6605520f.js"),["assets/vehicle-6605520f.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./vwid/vehicle.vue":()=>V(()=>import("./vehicle-63ef87a5.js"),["assets/vehicle-63ef87a5.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"])}),`./${this.vehicle.type}/vehicle.vue`),errorComponent:be})}},methods:{updateConfiguration(e){this.$emit("update:configuration",e)}}};function _e(e,d,h,F,f,s){const W=C("openwb-base-heading");return r(),c(A,null,[n(W,null,{default:a(()=>[l(' Einstellungen für SoC-Modul "'+S(h.vehicle.name)+'" ',1)]),_:1}),(r(),v(ue(s.myComponent),{vehicleId:h.vehicleId,vehicle:h.vehicle,configuration:h.vehicle.configuration,vehicleType:h.vehicle.type,"onUpdate:configuration":d[0]||(d[0]=b=>s.updateConfiguration(b))},null,40,["vehicleId","vehicle","configuration","vehicleType"]))],64)}const fe=Z(ve,[["render",_e],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleProxy.vue"]]);j.add(J,$,G,Q,X,Y,K,ee,te,ne,ae);const we={name:"OpenwbVehicleConfigView",mixins:[oe],emits:["sendCommand"],components:{FontAwesomeIcon:le,FontAwesomeLayers:ie,OpenwbVehicleProxy:fe},props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},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/+/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,showChargeTemplateSchedulePlanModal:!1,modalChargeTemplateSchedulePlanIndex:void 0,showChargeTemplateTimeChargingPlanModal:!1,modalChargeTemplateTimeChargingPlanIndex: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 e=[];return Object.keys(this.evTemplates).forEach(d=>{let h=parseInt(d.match(/([0-9]+)$/g)[0]),F=this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+h].name;e.push({value:h,text:F})}),e}},chargeTemplates:{get(){return this.getWildcardTopics("openWB/vehicle/template/charge_template/+")}},chargeTemplateList:{get(){let e=[];return Object.keys(this.chargeTemplates).forEach(d=>{let h=parseInt(d.match(/([0-9]+)$/g)[0]),F=this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+h].name;e.push({value:h,text:F})}),e}},socModuleList:{get(){return this.$store.state.mqtt["openWB/system/configurable/soc_modules"]}}},methods:{getChargeTemplateScheduledChargingPlans(e){let d=e.match(/([^/]+)$/)[0];return this.getWildcardTopics("openWB/vehicle/template/charge_template/"+d+"/chargemode/scheduled_charging/plans/+")},getChargeTemplateTimeChargingPlans(e){let d=e.match(/([^/]+)$/)[0];return this.getWildcardTopics("openWB/vehicle/template/charge_template/"+d+"/time_charging/plans/+")},addVehicle(e){e.stopPropagation(),console.info("requesting new vehicle..."),this.$emit("sendCommand",{command:"addVehicle",data:{}})},removeVehicleModal(e,d){d.stopPropagation(),this.modalVehicleIndex=e,this.showVehicleModal=!0},removeVehicle(e,d){this.showVehicleModal=!1,d=="confirm"&&(console.info("request removal of vehicle '"+e+"'"),this.$emit("sendCommand",{command:"removeVehicle",data:{id:e}}))},getVehicleName(e){return this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]?this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]:"Fahrzeug "+e},getSocDefaultConfiguration(e){const d=this.socModuleList.find(h=>h.value==e);return Object.prototype.hasOwnProperty.call(d,"defaults")?{...JSON.parse(JSON.stringify(d.defaults))}:(console.warn("no default configuration found for soc type!",e),{})},updateSelectedSocModule(e,d){this.updateState("openWB/vehicle/"+e+"/soc_module/config",d,"type"),this.updateState("openWB/vehicle/"+e+"/soc_module/config",this.getSocDefaultConfiguration(d))},updateConfiguration(e,d){console.debug("updateConfiguration",e,d),this.updateState(e,d.value,d.object)},addEvTemplate(e){e.stopPropagation(),console.info("requesting new ev template..."),this.$emit("sendCommand",{command:"addEvTemplate",data:{}})},removeEvTemplateModal(e,d){d.stopPropagation(),this.modalEvTemplateIndex=parseInt(e.match(/([^/]+)$/)[0]),this.showEvTemplateModal=!0},removeEvTemplate(e,d){this.showEvTemplateModal=!1,d=="confirm"&&(console.info("request removal of ev template '"+e+"'"),this.$emit("sendCommand",{command:"removeEvTemplate",data:{id:e}}))},getEvTemplateName(e){return this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+e]?this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+e].name:"Fahrzeug-Profil "+e},addChargeTemplate(e){e.stopPropagation(),console.info("requesting new charge template..."),this.$emit("sendCommand",{command:"addChargeTemplate",data:{}})},getChargeTemplateIndex(e){return parseInt(e.match(/([^/]+)$/)[0])},removeChargeTemplateModal(e,d){d.stopPropagation(),this.modalChargeTemplateIndex=this.getChargeTemplateIndex(e),this.showChargeTemplateModal=!0},removeChargeTemplate(e,d){this.showChargeTemplateModal=!1,d=="confirm"&&(console.info("request removal of charge template '"+e+"'"),this.$emit("sendCommand",{command:"removeChargeTemplate",data:{id:e}}))},getChargeTemplateName(e){return this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e]?this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e].name:"Lade-Profil "+e},getChargeTemplateSchedulePlanName(e,d){return this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e+"/chargemode/scheduled_charging/plans/"+d]?this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e+"/chargemode/scheduled_charging/plans/"+d].name:"Zielladen Zeitplan "+e+"/"+d},addChargeTemplateSchedulePlan(e,d){d.stopPropagation(),console.info("requesting new charge template schedule plan...");let h=parseInt(e.match(/([^/]+)$/)[0]);this.$emit("sendCommand",{command:"addChargeTemplateSchedulePlan",data:{template:h}})},removeChargeTemplateSchedulePlanModal(e,d,h){h.stopPropagation(),this.modalChargeTemplateIndex=parseInt(e.match(/([^/]+)$/)[0]),this.modalChargeTemplateSchedulePlanIndex=parseInt(d.match(/([^/]+)$/)[0]),this.showChargeTemplateSchedulePlanModal=!0},removeChargeTemplateSchedulePlan(e,d,h){this.showChargeTemplateSchedulePlanModal=!1,h=="confirm"&&(console.info("request removal of charge template '"+e+"' schedule plan '"+d+"'"),this.$emit("sendCommand",{command:"removeChargeTemplateSchedulePlan",data:{template:e,plan:d}}))},getChargeTemplateTimeChargingPlanName(e,d){return this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e+"/time_charging/plans/"+d]?this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e+"/time_charging/plans/"+d].name:"Zeitladen Zeitplan "+e+"/"+d},addChargeTemplateTimeChargingPlan(e,d){d.stopPropagation(),console.info("requesting new charge template time charging plan...");let h=parseInt(e.match(/([^/]+)$/)[0]);this.$emit("sendCommand",{command:"addChargeTemplateTimeChargingPlan",data:{template:h}})},removeChargeTemplateTimeChargingPlanModal(e,d,h){h.stopPropagation(),this.modalChargeTemplateIndex=parseInt(e.match(/([^/]+)$/)[0]),this.modalChargeTemplateTimeChargingPlanIndex=parseInt(d.match(/([^/]+)$/)[0]),this.showChargeTemplateTimeChargingPlanModal=!0},removeChargeTemplateTimeChargingPlan(e,d,h){this.showChargeTemplateTimeChargingPlanModal=!1,h=="confirm"&&(console.info("request removal of charge template '"+e+"' time charging plan '"+d+"'"),this.$emit("sendCommand",{command:"removeChargeTemplateTimeChargingPlan",data:{template:e,plan:d}}))}}},_=e=>(se("data-v-d7193cf0"),e=e(),me(),e),ke={class:"vehicleConfig"},Ve={name:"vehicleConfigForm"},Ce={key:0},Se={key:1},ze=_(()=>g("hr",null,null,-1)),Te={key:0},Ue=_(()=>g("br",null,null,-1)),We=["innerHTML"],Le=_(()=>g("hr",null,null,-1)),Pe=_(()=>g("br",null,null,-1)),Ae=_(()=>g("br",null,null,-1)),ye=_(()=>g("br",null,null,-1)),Ee={key:1},Be=_(()=>g("hr",{class:"border-secondary"},null,-1)),Fe={key:0},qe={key:1},Me=_(()=>g("span",{class:"text-uppercase font-weight-bold"}," nach dem Abstecken ",-1)),De={key:0},Ze=_(()=>g("br",null,null,-1)),xe=_(()=>g("br",null,null,-1)),Ne=_(()=>g("br",null,null,-1)),Ie=_(()=>g("br",null,null,-1)),Oe={key:1},Re={key:0},He={key:0},je={key:3},Je={key:0},$e={key:1},Ge=_(()=>g("br",null,null,-1)),Qe=_(()=>g("br",null,null,-1)),Xe=_(()=>g("ol",null,[g("li",null," Zielladen (Sofortladen) mit Priorität "),g("li",null,"Zielladen (Sofortladen)"),g("li",null,"Zeitladen mit Priorität"),g("li",null,"Zeitladen"),g("li",null,"Sofortladen mit Priorität"),g("li",null,"Sofortladen"),g("li",null,"PV (Min-Anteil) mit Priorität"),g("li",null,"PV (Min-Anteil)"),g("li",null,"Zielladen (PV) mit Priorität"),g("li",null,"Zielladen (PV)"),g("li",null,"PV (PV-Anteil) mit Priorität"),g("li",null,"PV (PV-Anteil)")],-1)),Ye={key:0},Ke={key:0},et={key:0},tt=_(()=>g("hr",null,null,-1)),nt=_(()=>g("hr",null,null,-1)),at=_(()=>g("br",null,null,-1)),lt=_(()=>g("br",null,null,-1)),it=_(()=>g("hr",null,null,-1)),ot=_(()=>g("br",null,null,-1)),dt=_(()=>g("br",null,null,-1)),rt=["onClick"],ut={key:0},st={key:1},mt={key:2},ct={key:3},ht={key:4},gt={key:5},pt={key:4},bt=_(()=>g("hr",null,null,-1)),vt=["onClick"],_t={key:0},ft={key:1},wt={key:2},kt={key:3},Vt={key:4},Ct={key:5};function St(e,d,h,F,f,s){const W=C("openwb-base-modal-dialog"),b=C("font-awesome-icon"),U=C("openwb-base-avatar"),E=C("openwb-base-alert"),L=C("openwb-base-text-input"),M=C("openwb-base-select-input"),O=C("openwb-base-array-input"),w=C("openwb-base-button-group-input"),P=C("openwb-base-heading"),k=C("openwb-base-number-input"),R=C("openwb-vehicle-proxy"),y=C("openwb-base-card"),x=C("font-awesome-layers"),z=C("openwb-base-range-input"),H=C("openwb-base-submit-buttons");return r(),c(A,null,[n(W,{show:f.showVehicleModal,title:"Fahrzeug löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:d[0]||(d[0]=i=>s.removeVehicle(f.modalVehicleIndex,i))},{default:a(()=>[l(' Wollen Sie das Fahrzeug "'+S(s.getVehicleName(f.modalVehicleIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),n(W,{show:f.showEvTemplateModal,title:"Fahrzeug-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:d[1]||(d[1]=i=>s.removeEvTemplate(f.modalEvTemplateIndex,i))},{default:a(()=>[l(' Wollen Sie das Fahrzeug-Profil "'+S(s.getEvTemplateName(f.modalEvTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),n(W,{show:f.showChargeTemplateModal,title:"Lade-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:d[2]||(d[2]=i=>s.removeChargeTemplate(f.modalChargeTemplateIndex,i))},{default:a(()=>[l(' Wollen Sie das Lade-Profil "'+S(s.getChargeTemplateName(f.modalChargeTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),n(W,{show:f.showChargeTemplateSchedulePlanModal,title:"Zielladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:d[3]||(d[3]=i=>s.removeChargeTemplateSchedulePlan(f.modalChargeTemplateIndex,f.modalChargeTemplateSchedulePlanIndex,i))},{default:a(()=>[l(' Wollen Sie den Zielladen Zeitplan "'+S(s.getChargeTemplateSchedulePlanName(f.modalChargeTemplateIndex,f.modalChargeTemplateSchedulePlanIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),n(W,{show:f.showChargeTemplateTimeChargingPlanModal,title:"Zeitladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:d[4]||(d[4]=i=>s.removeChargeTemplateTimeChargingPlan(f.modalChargeTemplateIndex,f.modalChargeTemplateTimeChargingPlanIndex,i))},{default:a(()=>[l(' Wollen Sie den Zeitladen Zeitplan "'+S(s.getChargeTemplateTimeChargingPlanName(f.modalChargeTemplateIndex,f.modalChargeTemplateTimeChargingPlanIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),g("div",ke,[g("form",Ve,[n(y,{subtype:"info",collapsible:!0,collapsed:e.$route.params.section!="vehicle"},{header:a(()=>[n(b,{"fixed-width":"",icon:["fas","car"]}),l(" Fahrzeuge ")]),actions:a(()=>[e.$store.state.mqtt["openWB/general/extern"]===!1?(r(),v(U,{key:0,class:"bg-success clickable",onClick:s.addVehicle},{default:a(()=>[n(b,{"fixed-width":"",icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(r(),c("div",Ce,[n(E,{subtype:"info"},{default:a(()=>[l(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(r(),c("div",Se,[(r(!0),c(A,null,B(s.vehicleIndexes,i=>(r(),v(y,{key:i,title:s.getVehicleName(i),collapsible:!0,collapsed:!(e.$route.params.section=="vehicle"&&parseInt(e.$route.params.section_index)==i),subtype:"info"},q({default:a(()=>[n(L,{title:"Bezeichnung","model-value":e.$store.state.mqtt["openWB/vehicle/"+i+"/name"],"onUpdate:modelValue":o=>e.updateState("openWB/vehicle/"+i+"/name",o),disabled:i===0},q({_:2},[i===0?{name:"help",fn:a(()=>[l(" Das Standard-Fahrzeug kann nicht umbenannt werden. ")]),key:"0"}:void 0]),1032,["model-value","onUpdate:modelValue","disabled"]),n(E,{subtype:"info"},{default:a(()=>[l(" 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}),n(M,{title:"Fahrzeug-Profil",options:s.evTemplateList,"model-value":e.$store.state.mqtt["openWB/vehicle/"+i+"/ev_template"],"onUpdate:modelValue":o=>e.updateState("openWB/vehicle/"+i+"/ev_template",o)},null,8,["options","model-value","onUpdate:modelValue"]),n(M,{title:"Lade-Profil",options:s.chargeTemplateList,"model-value":e.$store.state.mqtt["openWB/vehicle/"+i+"/charge_template"],"onUpdate:modelValue":o=>e.updateState("openWB/vehicle/"+i+"/charge_template",o)},null,8,["options","model-value","onUpdate:modelValue"]),ze,e.$store.state.mqtt["openWB/optional/rfid/active"]===!0&&!h.installAssistantActive?(r(),c("div",Te,[n(O,{title:"Zugeordnete ID-Tags","model-value":e.$store.state.mqtt["openWB/vehicle/"+i+"/tag_id"],"onUpdate:modelValue":o=>e.updateState("openWB/vehicle/"+i+"/tag_id",o)},null,8,["model-value","onUpdate:modelValue"]),n(E,{subtype:"info"},{default:a(()=>[l(" Die hier eingetragenen ID-Tags dienen ausschließlich der Fahrzeugzuordnung."),Ue,g("span",{innerHTML:e.$store.state.text.rfidWiki},null,8,We)]),_:1}),Le])):m("",!0),n(M,{class:"mb-2",title:"SoC-Modul des Fahrzeugs",options:s.socModuleList,"model-value":e.$store.state.mqtt["openWB/vehicle/"+i+"/soc_module/config"].type,"onUpdate:modelValue":o=>s.updateSelectedSocModule(i,o)},{help:a(()=>[l(" 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)."),Pe,l(" 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."),Ae,l(" 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."),ye,l(" 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. ")]),_:2},1032,["options","model-value","onUpdate:modelValue"]),e.$store.state.mqtt["openWB/vehicle/"+i+"/soc_module/config"].type?(r(),c("div",Ee,[n(w,{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":e.$store.state.mqtt["openWB/vehicle/"+i+"/soc_module/general_config"].use_soc_from_cp,"onUpdate:modelValue":o=>e.updateState("openWB/vehicle/"+i+"/soc_module/general_config",o,"use_soc_from_cp")},{help:a(()=>[l(" 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. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(P,null,{help:a(()=>[l(" 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. ")]),default:a(()=>[l(" Aktualisierung der Fahrzeugdaten ")]),_:1}),n(k,{title:"Während der Ladung",unit:"Min.","model-value":e.$store.state.mqtt["openWB/vehicle/"+i+"/soc_module/general_config"].request_interval_charging/60,"onUpdate:modelValue":o=>e.updateState("openWB/vehicle/"+i+"/soc_module/general_config",o*60,"request_interval_charging")},{help:a(()=>[l(" Der Ladestand des Fahrzeugs (SoC) wird bei einem laufenden Ladevorgang in dem hier eingestellten Intervall in Minuten abgefragt. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(k,{title:"Ohne laufende Ladung",unit:"Min.","model-value":e.$store.state.mqtt["openWB/vehicle/"+i+"/soc_module/general_config"].request_interval_not_charging/60,"onUpdate:modelValue":o=>e.updateState("openWB/vehicle/"+i+"/soc_module/general_config",o*60,"request_interval_not_charging")},{help:a(()=>[l(" Der Ladestand des Fahrzeugs (SoC) wird in dem hier eingestellten Intervall in Minuten abgefragt, falls kein Ladevorgang aktiv ist. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(w,{title:"Nur aktualisieren wenn angesteckt",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/"+i+"/soc_module/general_config"].request_only_plugged,"onUpdate:modelValue":o=>e.updateState("openWB/vehicle/"+i+"/soc_module/general_config",o,"request_only_plugged")},{help:a(()=>[l(' Wird hier "Ja" ausgewählt, dann wird der Ladestand des Fahrzeugs nur abgefragt, wenn das Ladekabel angesteckt ist. ')]),_:2},1032,["model-value","onUpdate:modelValue"]),n(R,{vehicleId:i,vehicle:e.$store.state.mqtt["openWB/vehicle/"+i+"/soc_module/config"],"onUpdate:configuration":o=>s.updateConfiguration("openWB/vehicle/"+i+"/soc_module/config",o)},null,8,["vehicleId","vehicle","onUpdate:configuration"])])):m("",!0)]),_:2},[i!==0?{name:"actions",fn:a(o=>[o.collapsed?m("",!0):(r(),v(U,{key:0,class:"bg-danger clickable",onClick:t=>s.removeVehicleModal(i,t)},{default:a(()=>[n(b,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),key:"0"}:void 0]),1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),Be,n(P,null,{default:a(()=>[l("Profile")]),_:1}),n(y,{collapsible:!0,collapsed:!0},{header:a(()=>[n(x,{"fixed-width":"",class:"fa-lg"},{default:a(()=>[n(b,{"fixed-width":"",icon:["far","file"]}),n(b,{"fixed-width":"",icon:["fas","car"],transform:"shrink-8"})]),_:1}),l(" Fahrzeug-Profile ")]),actions:a(()=>[e.$store.state.mqtt["openWB/general/extern"]===!1?(r(),v(U,{key:0,class:"bg-success clickable",onClick:s.addEvTemplate},{default:a(()=>[n(b,{"fixed-width":"",icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(r(),c("div",Fe,[n(E,{subtype:"info"},{default:a(()=>[l(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(r(),c("div",qe,[n(E,{subtype:"info"},{default:a(()=>[l(" Ein anderes Fahrzeug-Profil wird erst "),Me,l(" übernommen, da es sonst durch die Änderung bestimmter Einstellungen im laufenden Ladevorgang zu Widersprüchen kommen kann. ")]),_:1}),(r(!0),c(A,null,B(s.evTemplates,(i,o)=>(r(),v(y,{key:o,title:i.name?i.name:o,collapsible:!0,collapsed:!0},q({default:a(()=>[n(L,{title:"Bezeichnung","model-value":i.name,"onUpdate:modelValue":t=>e.updateState(o,t,"name"),disabled:o.endsWith("/0")},q({_:2},[o.endsWith("/0")?{name:"help",fn:a(()=>[l(" Das Standard-Profil kann nicht umbenannt werden. ")]),key:"0"}:void 0]),1032,["model-value","onUpdate:modelValue","disabled"]),n(P,null,{default:a(()=>[l(" Angaben zur Batterie ")]),_:1}),n(k,{title:"Kapazität der Batterie",unit:"kWh",min:1,step:1,"model-value":i.battery_capacity/1e3,"onUpdate:modelValue":t=>e.updateState(o,t*1e3,"battery_capacity")},{help:a(()=>[l(" 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. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),h.installAssistantActive?m("",!0):(r(),c("div",De,[n(k,{title:"Wirkungsgrad der Ladeelektronik",unit:"%",required:"","model-value":i.efficiency,"onUpdate:modelValue":t=>e.updateState(o,t,"efficiency")},{help:a(()=>[l(" 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."),Ze,l(" Liegen die Angaben der Wallbox und des Fahrzeugs nach der Ladung mehrere Prozent auseinander, dann kann mit dieser Einstellung eine Feinabstimmung erfolgen: "),xe,l(" SoC an der Wallbox zu hoch: Wirkungsgrad um ein paar Prozent reduzieren"),Ne,l(" SoC an der Wallbox zu gering: Wirkungsgrad um ein paar Prozent erhöhen"),Ie]),_:2},1032,["model-value","onUpdate:modelValue"])])),n(k,{title:"Durchschnittsverbrauch",unit:"kWh / 100km",min:0,step:.1,"model-value":i.average_consump/1e3,"onUpdate:modelValue":t=>e.updateState(o,t*1e3,"average_consump")},null,8,["model-value","onUpdate:modelValue"]),s.dcChargingEnabled===!0?(r(),c("div",Oe,[n(P,null,{default:a(()=>[l(" Angaben zur Ladeleistung (DC) ")]),_:1}),n(k,{title:"Mindestleistung",min:5,unit:"kW","model-value":e.ac_current2dc_power(i.dc_min_current),"onUpdate:modelValue":t=>e.updateState(o,e.dc_power2ac_current(t),"dc_min_current")},null,8,["model-value","onUpdate:modelValue"]),n(k,{title:"Maximalleistung",unit:"kW","model-value":e.ac_current2dc_power(i.dc_max_current),"onUpdate:modelValue":t=>e.updateState(o,e.dc_power2ac_current(t),"dc_max_current")},null,8,["model-value","onUpdate:modelValue"])])):m("",!0),n(P,null,{default:a(()=>[l(" Angaben zum Ladestrom "),s.dcChargingEnabled===!0?(r(),c("span",Re," (AC) ")):m("",!0)]),_:1}),n(z,{title:"Mindeststrom",min:6,max:16,step:1,unit:"A","model-value":i.min_current,"onUpdate:modelValue":t=>e.updateState(o,t,"min_current")},null,8,["model-value","onUpdate:modelValue"]),n(z,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":i.max_current_single_phase,"onUpdate:modelValue":t=>e.updateState(o,t,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),n(z,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":i.max_current_multi_phases,"onUpdate:modelValue":t=>e.updateState(o,t,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"]),n(k,{title:"Erlaubte Stromabweichung",step:.1,unit:"A","model-value":i.nominal_difference,"onUpdate:modelValue":t=>e.updateState(o,t,"nominal_difference")},{help:a(()=>[l(" 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. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(P,null,{default:a(()=>[l(" Angaben zur Handhabung von Phasen "),s.dcChargingEnabled===!0?(r(),c("span",He," (AC) ")):m("",!0)]),_:1}),n(w,{title:"Unterstützte Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":i.max_phases,"onUpdate:modelValue":t=>e.updateState(o,t,"max_phases")},{help:a(()=>[l(" Anzahl der Phasen, die der Fahrzeuglader (s.g. OBC - OnboardCharger) bereitstellt. Plugin-Hybride haben meist nur eine Phase, reine E-Autos meist 2 bis 3 Phasen. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(w,{title:"CP-Unterbrechung",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":i.control_pilot_interruption,"onUpdate:modelValue":t=>e.updateState(o,t,"control_pilot_interruption")},{help:a(()=>[l(' Erläuterung siehe "Konfiguration - Ladepunkte" -> Hardware-Optionen ')]),_:2},1032,["model-value","onUpdate:modelValue"]),i.control_pilot_interruption?(r(),v(k,{key:2,title:"Dauer der CP-Unterbrechung",min:4,step:1,unit:"s","model-value":i.control_pilot_interruption_duration,"onUpdate:modelValue":t=>e.updateState(o,t,"control_pilot_interruption_duration")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),n(w,{title:"Phasenumschaltung blockieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":i.prevent_phase_switch,"onUpdate:modelValue":t=>e.updateState(o,t,"prevent_phase_switch")},{help:a(()=>[l(' Erläuterung zu 1p3p siehe "Ladeeinstellungen" ')]),_:2},1032,["model-value","onUpdate:modelValue"]),n(w,{title:"Ladung aktiv halten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":i.prevent_charge_stop,"onUpdate:modelValue":t=>e.updateState(o,t,"prevent_charge_stop")},{help:a(()=>[l(" 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. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(k,{title:"Pause bei Phasenumschaltung",unit:"s",min:2,step:1,"model-value":i.phase_switch_pause,"onUpdate:modelValue":t=>e.updateState(o,t,"phase_switch_pause")},null,8,["model-value","onUpdate:modelValue"]),h.installAssistantActive?m("",!0):(r(),c("div",je,[n(k,{title:"Mindestzeit zwischen Umschaltungen",unit:"s",min:2,step:1,"model-value":i.keep_charge_active_duration,"onUpdate:modelValue":t=>e.updateState(o,t,"keep_charge_active_duration")},{help:a(()=>[l(" 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. ")]),_:2},1032,["model-value","onUpdate:modelValue"])]))]),_:2},[o.endsWith("/0")?void 0:{name:"actions",fn:a(t=>[e.$store.state.mqtt["openWB/general/extern"]===!1&&!t.collapsed?(r(),v(U,{key:0,class:"bg-danger clickable",onClick:p=>s.removeEvTemplateModal(o,p)},{default:a(()=>[n(b,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"])):m("",!0)]),key:"0"}]),1032,["title"]))),128))]))]),_:1}),n(y,{collapsible:!0,collapsed:e.$route.params.section!="charge_template"},{header:a(()=>[n(x,{"fixed-width":"",class:"fa-lg"},{default:a(()=>[n(b,{"fixed-width":"",icon:["far","file"]}),n(b,{"fixed-width":"",icon:["fas","plug"],transform:"shrink-8"})]),_:1}),l(" Lade-Profile ")]),actions:a(()=>[e.$store.state.mqtt["openWB/general/extern"]===!1?(r(),v(U,{key:0,class:"bg-success clickable",onClick:s.addChargeTemplate},{default:a(()=>[n(b,{"fixed-width":"",icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(r(),c("div",Je,[n(E,{subtype:"info"},{default:a(()=>[l(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(r(),c("div",$e,[(r(!0),c(A,null,B(s.chargeTemplates,(i,o)=>(r(),v(y,{key:o,title:i.name?i.name:o,collapsible:!0,collapsed:!(e.$route.params.section=="charge_template"&&parseInt(e.$route.params.section_index)==s.getChargeTemplateIndex(o))},q({default:a(()=>[n(L,{title:"Bezeichnung","model-value":i.name,"onUpdate:modelValue":t=>e.updateState(o,t,"name"),disabled:o.endsWith("/0")},q({_:2},[o.endsWith("/0")?{name:"help",fn:a(()=>[l(" Das Standard-Profil kann nicht umbenannt werden. ")]),key:"0"}:void 0]),1032,["model-value","onUpdate:modelValue","disabled"]),n(P,null,{default:a(()=>[l(" Allgemeine Optionen ")]),_:1}),n(w,{title:"Aktiver Lademodus",buttons:[{buttonValue:"instant_charging",text:"Sofortladen",class:"btn-outline-danger"},{buttonValue:"pv_charging",text:"PV",class:"btn-outline-success"},{buttonValue:"scheduled_charging",text:"Zielladen",class:"btn-outline-primary"},{buttonValue:"standby",text:"Standby",class:"btn-outline-secondary"},{buttonValue:"stop",text:"Stop",class:"btn-outline-dark"}],"model-value":i.chargemode.selected,"onUpdate:modelValue":t=>e.updateState(o,t,"chargemode.selected")},{help:a(()=>[l(" Diese Einstellung entspricht dem gewählten Lademodus auf der Hauptseite und ist aktiv, wenn ein zugehöriges Fahrzeug angesteckt ist."),Ge,l(" Die zur Verfügung stehende Leistung wird intern anhand folgender Prioritätenliste auf die Fahrzeuge bzw. Ladepunkte verteilt:"),Qe,Xe]),_:2},1032,["model-value","onUpdate:modelValue"]),h.installAssistantActive?m("",!0):(r(),c("div",Ye,[n(w,{title:"Priorität",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":i.prio,"onUpdate:modelValue":t=>e.updateState(o,t,"prio")},{help:a(()=>[l(" 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. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(w,{title:"Zeitladen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":i.time_charging.active,"onUpdate:modelValue":t=>e.updateState(o,t,"time_charging.active")},{help:a(()=>[l(' Der Lademodus Zeitladen 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. ')]),_:2},1032,["model-value","onUpdate:modelValue"]),n(w,{title:"Standard nach Abstecken",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":i.load_default,"onUpdate:modelValue":t=>e.updateState(o,t,"load_default")},{help:a(()=>[l(" Falls diese Option aktiviert ist, wird der betroffene Ladepunkt nach dem Abstecken auf das Standard Fahrzeug zurückgesetzt. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(w,{title:"Strompreisbasiert Laden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":i.et.active,"onUpdate:modelValue":t=>e.updateState(o,t,"et.active")},null,8,["model-value","onUpdate:modelValue"]),i.et.active==!0?(r(),c("div",Ke,[!e.$store.state.mqtt["openWB/optional/et/provider"]||!e.$store.state.mqtt["openWB/optional/et/provider"].type?(r(),c("div",et,[n(E,{subtype:"danger"},{default:a(()=>[l(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. ")]),_:1})])):m("",!0),n(k,{title:"Preisgrenze für Zeit- & Sofortladen",min:"-80",max:"80",step:"0.01",precision:2,unit:"ct/kWh","model-value":i.et.max_price*1e5,"onUpdate:modelValue":t=>e.updateState(o,parseFloat((t/1e5).toFixed(7)),"et.max_price")},{help:a(()=>[l(" Für Zielladen werden die günstigsten Stunden ermittelt. ")]),_:2},1032,["model-value","onUpdate:modelValue"])])):m("",!0),tt])),n(P,null,{default:a(()=>[l("Sofortladen")]),_:1}),n(z,{title:"Soll-Ladestrom"+(s.dcChargingEnabled?" (AC)":""),min:6,max:32,step:1,unit:"A","model-value":i.chargemode.instant_charging.current,"onUpdate:modelValue":t=>e.updateState(o,t,"chargemode.instant_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),s.dcChargingEnabled===!0?(r(),v(k,{key:1,title:"Soll-Ladeleistung (DC)",unit:"kW",min:0,"model-value":e.ac_current2dc_power(i.chargemode.instant_charging.dc_current),"onUpdate:modelValue":t=>e.updateState(o,e.dc_power2ac_current(t),"chargemode.instant_charging.dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),n(w,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":i.chargemode.instant_charging.limit.selected,"onUpdate:modelValue":t=>e.updateState(o,t,"chargemode.instant_charging.limit.selected")},{help:a(()=>[l(" 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. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(z,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":i.chargemode.instant_charging.limit.soc,"onUpdate:modelValue":t=>e.updateState(o,t,"chargemode.instant_charging.limit.soc")},{help:a(()=>[l(' 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"). ')]),_:2},1032,["model-value","onUpdate:modelValue"]),n(k,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":i.chargemode.instant_charging.limit.amount/1e3,"onUpdate:modelValue":t=>e.updateState(o,t*1e3,"chargemode.instant_charging.limit.amount")},{help:a(()=>[l(" Die geladene Energiemenge wird beim Wechsel des Lademodus oder nach dem Anstecken, wenn Sofortladen schon ausgewählt ist, neu gezählt. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),nt,n(P,null,{default:a(()=>[l("PV-Laden")]),_:1}),n(z,{title:"Minimaler Dauerstrom"+(s.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":i.chargemode.pv_charging.min_current,"onUpdate:modelValue":t=>e.updateState(o,t,"chargemode.pv_charging.min_current")},{help:a(()=>[l(' 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. ')]),_:2},1032,["title","model-value","onUpdate:modelValue"]),s.dcChargingEnabled===!0?(r(),v(k,{key:2,title:"Minimale Dauerleistung (DC)",unit:"kW",min:0,"model-value":e.ac_current2dc_power(i.chargemode.pv_charging.dc_min_current),"onUpdate:modelValue":t=>e.updateState(o,e.dc_power2ac_current(t),"chargemode.pv_charging.dc_min_current")},{help:a(()=>[l(" 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. ")]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),n(z,{title:"SoC-Limit für das Fahrzeug",min:0,max:20,step:1,unit:"%",labels:[{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},{label:100,value:100},{label:"Aus",value:101}],"model-value":i.chargemode.pv_charging.max_soc,"onUpdate:modelValue":t=>e.updateState(o,t,"chargemode.pv_charging.max_soc")},{help:a(()=>[l(' Bei der Einstellung "100%" wird die Ladung sofort mit Erreichen der 100% beendet. Dadurch erfolgt KEIN Balancing der Batteriezellen. Ist dies gewünscht (sollte ab und an durchgeführt werden), muss hier "Aus" gewählt werden (Schieberegler ganz nach rechts stellen), um die Ladung MIT Balancing bis zur Beendigung durch das Fahrzeug weiterlaufen zu lassen.'),at,l(' 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"). ')]),_:2},1032,["model-value","onUpdate:modelValue"]),n(z,{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":i.chargemode.pv_charging.min_soc,"onUpdate:modelValue":t=>e.updateState(o,t,"chargemode.pv_charging.min_soc")},{help:a(()=>[l(' 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.'),lt,l(' 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"). ')]),_:2},1032,["model-value","onUpdate:modelValue"]),n(z,{title:"Mindest-SoC-Strom"+(s.dcChargingEnabled?" (AC)":""),min:6,max:32,step:1,unit:"A","model-value":i.chargemode.pv_charging.min_soc_current,"onUpdate:modelValue":t=>e.updateState(o,t,"chargemode.pv_charging.min_soc_current")},{help:a(()=>[l(' 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). ')]),_:2},1032,["title","model-value","onUpdate:modelValue"]),s.dcChargingEnabled===!0?(r(),v(k,{key:3,title:"Mindest-SoC-Leistung (DC)",unit:"kW",min:0,"model-value":e.ac_current2dc_power(i.chargemode.pv_charging.dc_min_soc_current),"onUpdate:modelValue":t=>e.updateState(o,e.dc_power2ac_current(t),"chargemode.pv_charging.dc_min_soc_current")},{help:a(()=>[l(' 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). ')]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),n(w,{title:"Einspeisegrenze beachten",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":i.chargemode.pv_charging.feed_in_limit,"onUpdate:modelValue":t=>e.updateState(o,t,"chargemode.pv_charging.feed_in_limit")},{help:a(()=>[l(' Erläuterung siehe "Ladeeinstellungen" -> "PV-Laden" -> "Regelparameter" -> "Regelpunkt Einspeisegrenze" ')]),_:2},1032,["model-value","onUpdate:modelValue"]),it,n(P,null,{actions:a(()=>[n(U,{class:"bg-success clickable",onClick:t=>s.addChargeTemplateSchedulePlan(o,t)},{default:a(()=>[n(b,{"fixed-width":"",icon:["fas","plus"]})]),_:2},1032,["onClick"])]),help:a(()=>[l(' 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.'),ot,l(' 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.'),dt,l(" Kann der Ziel-SoC bzw. die Energiemenge NICHT erreicht werden, z.B. weil das Auto zu spät angesteckt wurde oder das Lastmanagement eingegriffen hat, wird bis 20 Minuten nach dem angegebenen Termin mit der Maximalstromstärke geladen. Danach wird der Termin verworfen und mit Überschuss geladen. ")]),default:a(()=>[l(" Zielladen ")]),_:2},1024),(r(!0),c(A,null,B(s.getChargeTemplateScheduledChargingPlans(o),(t,p)=>(r(),v(y,{key:p,title:t.name,collapsible:!0,collapsed:!0},{actions:a(u=>[u.collapsed==!0?(r(),c("span",{key:0,onClick:N(T=>e.updateState(p,!t.active,"active"),["stop"]),class:I(["subheader pill clickable",t.active?"bg-success":"bg-danger"])},[t.limit.selected=="soc"?(r(),c("span",ut,[n(b,{"fixed-width":"",icon:["fas","car-battery"]}),l(" "+S(t.limit.soc_scheduled)+"% ",1)])):m("",!0),t.limit.selected=="amount"?(r(),c("span",st,[n(b,{"fixed-width":"",icon:["fas","bolt"]}),l(" "+S(t.limit.amount/1e3)+"kWh ",1)])):m("",!0),n(b,{"fixed-width":"",icon:["fas","clock"]}),l(" "+S(t.time)+" ",1),t.frequency.selected=="once"?(r(),c("span",mt,[n(b,{"fixed-width":"",icon:["fas","calendar-day"]}),l(" "+S(e.formatDate(t.frequency.once)),1)])):m("",!0),t.frequency.selected=="daily"?(r(),c("span",ct,[n(b,{"fixed-width":"",icon:["fas","calendar-week"]})])):m("",!0),t.frequency.selected=="weekly"?(r(),c("span",ht,[n(b,{"fixed-width":"",icon:["fas","calendar-alt"]})])):m("",!0)],10,rt)):m("",!0),u.collapsed==!1?(r(),v(U,{key:1,class:"bg-danger clickable",onClick:T=>s.removeChargeTemplateSchedulePlanModal(o,p,T)},{default:a(()=>[n(b,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"])):m("",!0)]),default:a(()=>[n(L,{title:"Bezeichnung","model-value":t.name,"onUpdate:modelValue":u=>e.updateState(p,u,"name")},null,8,["model-value","onUpdate:modelValue"]),n(w,{title:"Zeitpunkt aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.active,"onUpdate:modelValue":u=>e.updateState(p,u,"active")},null,8,["model-value","onUpdate:modelValue"]),n(L,{title:"Ziel-Uhrzeit",subtype:"time","model-value":t.time,"onUpdate:modelValue":u=>e.updateState(p,u,"time")},{help:a(()=>[l(" Hier ist die gewünschte Uhrzeit einzustellen, zu welcher das Fahrzeug den gewünschten SoC bzw. die zu ladende Energiemenge BEREITS ERREICHT haben soll. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(z,{title:"Ladestrom"+(s.dcChargingEnabled?" (AC)":""),min:6,max:32,step:1,unit:"A","model-value":t.current,"onUpdate:modelValue":u=>e.updateState(p,u,"current")},{help:a(()=>[l(" 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. ")]),_:2},1032,["title","model-value","onUpdate:modelValue"]),s.dcChargingEnabled===!0?(r(),v(k,{key:0,title:"Ladeleistung (DC)",unit:"kW",min:0,"model-value":e.ac_current2dc_power(t.dc_current),"onUpdate:modelValue":u=>e.updateState(p,e.dc_power2ac_current(u),"dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),n(w,{title:"Ziel",buttons:[{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":t.limit.selected,"onUpdate:modelValue":u=>e.updateState(p,u,"limit.selected")},{help:a(()=>[l(" Bestimmt die Art der Grenze für den Ladevorgang. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),t.limit.selected=="soc"?(r(),v(z,{key:1,title:"Fahrzeug-SoC zum Zielzeitpunkt",min:5,max:100,step:5,unit:"%","model-value":t.limit.soc_scheduled,"onUpdate:modelValue":u=>e.updateState(p,u,"limit.soc_scheduled")},{help:a(()=>[l(" SoC, der zum angegebenen Zeitpunkt erreicht werden soll (Ziel-SoC). ")]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),t.limit.selected=="soc"?(r(),v(z,{key:2,title:"Fahrzeug-SoC mit Überschuss",min:5,max:100,step:5,unit:"%","model-value":t.limit.soc_limit,"onUpdate:modelValue":u=>e.updateState(p,u,"limit.soc_limit")},{help:a(()=>[l(" 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! ")]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),t.limit.selected=="amount"?(r(),v(k,{key:3,title:"Ziel-Energie",unit:"kWh",min:1,step:.5,"model-value":t.limit.amount/1e3,"onUpdate:modelValue":u=>e.updateState(p,u*1e3,"limit.amount")},{help:a(()=>[l(" Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zielladen schon ausgewählt ist, neu gezählt. ")]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),n(w,{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"}],"model-value":t.frequency.selected,"onUpdate:modelValue":u=>e.updateState(p,u,"frequency.selected")},null,8,["model-value","onUpdate:modelValue"]),t.frequency.selected=="once"?(r(),v(L,{key:4,title:"Datum",subtype:"date","model-value":t.frequency.once,"onUpdate:modelValue":u=>e.updateState(p,u,"frequency.once")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),t.frequency.selected=="weekly"?(r(),c("div",gt,[(r(!0),c(A,null,B(e.weekdays,(u,T)=>(r(),v(w,{key:T,title:u,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.frequency.weekly[T],"onUpdate:modelValue":D=>e.updateState(p,D,"frequency.weekly."+T)},null,8,["title","model-value","onUpdate:modelValue"]))),128))])):m("",!0)]),_:2},1032,["title"]))),128)),h.installAssistantActive?m("",!0):(r(),c("div",pt,[bt,n(P,null,{actions:a(()=>[n(U,{class:"bg-success clickable",onClick:t=>s.addChargeTemplateTimeChargingPlan(o,t)},{default:a(()=>[n(b,{"fixed-width":"",icon:["fas","plus"]})]),_:2},1032,["onClick"])]),help:a(()=>[l(" 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). ")]),default:a(()=>[l(" Laden nach Zeitplan ")]),_:2},1024)])),(r(!0),c(A,null,B(s.getChargeTemplateTimeChargingPlans(o),(t,p)=>(r(),v(y,{key:p,title:t.name,collapsible:!0,collapsed:!0},{actions:a(u=>[u.collapsed==!0?(r(),c("span",{key:0,onClick:N(T=>e.updateState(p,!t.active,"active"),["stop"]),class:I(["subheader pill clickable",t.active?"bg-success":"bg-danger"])},[t.limit.selected=="soc"?(r(),c("span",_t,[n(b,{"fixed-width":"",icon:["fas","car-battery"]}),l(" "+S(t.limit.soc)+"% ",1)])):m("",!0),t.limit.selected=="amount"?(r(),c("span",ft,[n(b,{"fixed-width":"",icon:["fas","bolt"]}),l(" "+S(t.limit.amount/1e3)+"kWh ",1)])):m("",!0),n(b,{"fixed-width":"",icon:["fas","clock"]}),l(" "+S(t.time[0])+" - "+S(t.time[1])+" ",1),t.frequency.selected=="once"?(r(),c("span",wt,[n(b,{"fixed-width":"",icon:["fas","calendar-day"]}),l(" "+S(e.formatDate(t.frequency.once[0])==e.formatDate(t.frequency.once[1])?e.formatDate(t.frequency.once[0]):e.formatDate(t.frequency.once[0])+" - "+e.formatDate(t.frequency.once[1])),1)])):m("",!0),t.frequency.selected=="daily"?(r(),c("span",kt,[n(b,{"fixed-width":"",icon:["fas","calendar-week"]})])):m("",!0),t.frequency.selected=="weekly"?(r(),c("span",Vt,[n(b,{"fixed-width":"",icon:["fas","calendar-alt"]})])):m("",!0)],10,vt)):m("",!0),u.collapsed==!1?(r(),v(U,{key:1,class:"bg-danger clickable",onClick:T=>s.removeChargeTemplateTimeChargingPlanModal(o,p,T)},{default:a(()=>[n(b,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"])):m("",!0)]),default:a(()=>[n(L,{title:"Bezeichnung","model-value":t.name,"onUpdate:modelValue":u=>e.updateState(p,u,"name")},null,8,["model-value","onUpdate:modelValue"]),n(w,{title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.active,"onUpdate:modelValue":u=>e.updateState(p,u,"active")},null,8,["model-value","onUpdate:modelValue"]),n(z,{title:"Ladestrom"+(s.dcChargingEnabled?" (AC)":""),min:6,max:32,step:1,unit:"A","model-value":t.current,"onUpdate:modelValue":u=>e.updateState(p,u,"current")},null,8,["title","model-value","onUpdate:modelValue"]),s.dcChargingEnabled===!0?(r(),v(k,{key:0,title:"Ladeleistung (DC)",unit:"kW",min:0,"model-value":e.ac_current2dc_power(t.dc_current),"onUpdate:modelValue":u=>e.updateState(p,e.dc_power2ac_current(u),"dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),n(w,{title:"Ziel",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":t.limit.selected,"onUpdate:modelValue":u=>e.updateState(p,u,"limit.selected")},{help:a(()=>[l(" Bestimmt die Art der Grenze für den Ladevorgang. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),t.limit.selected=="soc"?(r(),v(z,{key:1,title:"Ziel-SoC für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":t.limit.soc,"onUpdate:modelValue":u=>e.updateState(p,u,"limit.soc")},{help:a(()=>[l(" Ladestand des Akku (State of Charge, SoC), bis zu welchem maximal geladen werden soll. ")]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),t.limit.selected=="amount"?(r(),v(k,{key:2,title:"Ziel-Energie",unit:"kWh",min:1,step:.5,"model-value":t.limit.amount/1e3,"onUpdate:modelValue":u=>e.updateState(p,u*1e3,"limit.amount")},{help:a(()=>[l(" 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. ")]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),n(L,{title:"Zeitpunkt des Ladebeginns",subtype:"time","model-value":t.time[0],"onUpdate:modelValue":u=>e.updateState(p,u,"time.0")},null,8,["model-value","onUpdate:modelValue"]),n(L,{title:"Zeitpunkt des Ladeendes",subtype:"time","model-value":t.time[1],"onUpdate:modelValue":u=>e.updateState(p,u,"time.1")},null,8,["model-value","onUpdate:modelValue"]),n(w,{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"}],"model-value":t.frequency.selected,"onUpdate:modelValue":u=>e.updateState(p,u,"frequency.selected")},null,8,["model-value","onUpdate:modelValue"]),t.frequency.selected=="once"?(r(),v(L,{key:3,title:"Gültig ab",subtype:"date","model-value":t.frequency.once[0],"onUpdate:modelValue":u=>e.updateState(p,u,"frequency.once.0")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),t.frequency.selected=="once"?(r(),v(L,{key:4,title:"Gültig bis",subtype:"date",min:t.frequency.once[0],"model-value":t.frequency.once[1],"onUpdate:modelValue":u=>e.updateState(p,u,"frequency.once.1")},null,8,["min","model-value","onUpdate:modelValue"])):m("",!0),t.frequency.selected=="weekly"?(r(),c("div",Ct,[(r(!0),c(A,null,B(e.weekdays,(u,T)=>(r(),v(w,{key:T,title:u,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.frequency.weekly[T],"onUpdate:modelValue":D=>e.updateState(p,D,"frequency.weekly."+T)},null,8,["title","model-value","onUpdate:modelValue"]))),128))])):m("",!0)]),_:2},1032,["title"]))),128))]),_:2},[o.endsWith("/0")?void 0:{name:"actions",fn:a(t=>[t.collapsed?m("",!0):(r(),v(U,{key:0,class:"bg-danger clickable",onClick:p=>s.removeChargeTemplateModal(o,p)},{default:a(()=>[n(b,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),key:"0"}]),1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),n(H,{formName:"vehicleConfigForm",onSave:d[5]||(d[5]=i=>e.$emit("save")),onReset:d[6]||(d[6]=i=>e.$emit("reset")),onDefaults:d[7]||(d[7]=i=>e.$emit("defaults"))})])])],64)}const Et=Z(we,[["render",St],["__scopeId","data-v-d7193cf0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/VehicleConfig.vue"]]);export{Et as default}; diff --git a/web/settings/assets/VehicleConfig-c67651ce.js b/web/settings/assets/VehicleConfig-c67651ce.js deleted file mode 100644 index 644eb9e463..0000000000 --- a/web/settings/assets/VehicleConfig-c67651ce.js +++ /dev/null @@ -1 +0,0 @@ -import{l as j,d as J,a0 as $,A as G,a9 as Q,aa as X,z as Y,P as K,ac as ee,R as te,ab as ne,ad as ae,F as le,I as ie}from"./vendor-fortawesome-71546160.js";import{_ as S,C as oe}from"./index-ba5cf04c.js";import{_ as de}from"./dynamic-import-helper-be004503.js";import{_ as Z,u as V,k as r,l as c,A as v,N as a,y as l,z as C,D as n,x as g,a2 as re,a3 as ue,J as A,B as m,K as B,a4 as q,P as N,q as I,S as se,U as me}from"./vendor-f2b8aa6f.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const ce={name:"VehicleConfigFallback",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},vehicleId:{default:void 0},vehicleType:String},methods:{updateConfiguration(e,d=void 0){this.$emit("update:configuration",{value:e,object:d})}}},he={class:"vehicle-fallback"},ge={key:1};function pe(e,d,h,F,_,s){const W=V("openwb-base-alert"),b=V("openwb-base-textarea");return r(),c("div",he,[Object.keys(h.configuration).length==0?(r(),v(W,{key:0,subtype:"info"},{default:a(()=>[l(' Der Fahrzeug-Typ "'+C(h.vehicleType)+'" bietet keine Einstellungen. ',1)]),_:1})):(r(),c("div",ge,[n(W,{subtype:"warning"},{default:a(()=>[l(' Es wurde keine Konfigurationsseite für den Fahrzeug-Typ "'+C(h.vehicleType)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(b,{title:"Konfiguration",subtype:"json","model-value":h.configuration,"onUpdate:modelValue":d[0]||(d[0]=U=>s.updateConfiguration(U,"configuration"))},{help:a(()=>[l(" Bitte prüfen Sie, ob die Eingaben richtig interpretiert werden. ")]),_:1},8,["model-value"]),n(W,{subtype:"info"},{default:a(()=>[g("pre",null,C(JSON.stringify(h.configuration,void 0,2)),1)]),_:1})]))])}const be=Z(ce,[["render",pe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleConfigFallback.vue"]]),ve={name:"OpenwbVehicleProxy",emits:["update:configuration"],props:{vehicleId:{required:!0},vehicle:{type:Object,required:!0}},computed:{myComponent(){return console.debug(`loading vehicle: ${this.vehicle.type}`),re({loader:()=>de(Object.assign({"./bmw/vehicle.vue":()=>S(()=>import("./vehicle-1e7f87e2.js"),["assets/vehicle-1e7f87e2.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./bmwbc/vehicle.vue":()=>S(()=>import("./vehicle-4452f15b.js"),["assets/vehicle-4452f15b.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./evcc/vehicle.vue":()=>S(()=>import("./vehicle-cea9d72d.js"),["assets/vehicle-cea9d72d.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./evnotify/vehicle.vue":()=>S(()=>import("./vehicle-f67e18a5.js"),["assets/vehicle-f67e18a5.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./http/vehicle.vue":()=>S(()=>import("./vehicle-e84c6485.js"),["assets/vehicle-e84c6485.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./kia/vehicle.vue":()=>S(()=>import("./vehicle-4ca53182.js"),["assets/vehicle-4ca53182.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./manual/vehicle.vue":()=>S(()=>import("./vehicle-b04d281c.js"),["assets/vehicle-b04d281c.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./mercedeseq/vehicle.vue":()=>S(()=>import("./vehicle-891d5eff.js"),["assets/vehicle-891d5eff.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./mqtt/vehicle.vue":()=>S(()=>import("./vehicle-b28cb25d.js"),["assets/vehicle-b28cb25d.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./psa/vehicle.vue":()=>S(()=>import("./vehicle-836328f6.js"),["assets/vehicle-836328f6.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./renault/vehicle.vue":()=>S(()=>import("./vehicle-951b0c53.js"),["assets/vehicle-951b0c53.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./skodaconnect/vehicle.vue":()=>S(()=>import("./vehicle-5ad6c2de.js"),["assets/vehicle-5ad6c2de.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./smarteq/vehicle.vue":()=>S(()=>import("./vehicle-47636774.js"),["assets/vehicle-47636774.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./smarthello/vehicle.vue":()=>S(()=>import("./vehicle-b1a2ecd4.js"),["assets/vehicle-b1a2ecd4.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./tesla/vehicle.vue":()=>S(()=>import("./vehicle-5eb1661e.js"),["assets/vehicle-5eb1661e.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-axios-65ecee4b.js","assets/index-ba5cf04c.js","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/index-b3227821.css"]),"./tronity/vehicle.vue":()=>S(()=>import("./vehicle-6605520f.js"),["assets/vehicle-6605520f.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"]),"./vwid/vehicle.vue":()=>S(()=>import("./vehicle-63ef87a5.js"),["assets/vehicle-63ef87a5.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css"])}),`./${this.vehicle.type}/vehicle.vue`),errorComponent:be})}},methods:{updateConfiguration(e){this.$emit("update:configuration",e)}}};function fe(e,d,h,F,_,s){const W=V("openwb-base-heading");return r(),c(A,null,[n(W,null,{default:a(()=>[l(' Einstellungen für SoC-Modul "'+C(h.vehicle.name)+'" ',1)]),_:1}),(r(),v(ue(s.myComponent),{vehicleId:h.vehicleId,vehicle:h.vehicle,configuration:h.vehicle.configuration,vehicleType:h.vehicle.type,"onUpdate:configuration":d[0]||(d[0]=b=>s.updateConfiguration(b))},null,40,["vehicleId","vehicle","configuration","vehicleType"]))],64)}const _e=Z(ve,[["render",fe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleProxy.vue"]]);j.add(J,$,G,Q,X,Y,K,ee,te,ne,ae);const we={name:"OpenwbVehicleConfigView",mixins:[oe],emits:["sendCommand"],components:{FontAwesomeIcon:le,FontAwesomeLayers:ie,OpenwbVehicleProxy:_e},props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},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/+/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,showChargeTemplateSchedulePlanModal:!1,modalChargeTemplateSchedulePlanIndex:void 0,showChargeTemplateTimeChargingPlanModal:!1,modalChargeTemplateTimeChargingPlanIndex: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 e=[];return Object.keys(this.evTemplates).forEach(d=>{let h=parseInt(d.match(/([0-9]+)$/g)[0]),F=this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+h].name;e.push({value:h,text:F})}),e}},chargeTemplates:{get(){return this.getWildcardTopics("openWB/vehicle/template/charge_template/+")}},chargeTemplateList:{get(){let e=[];return Object.keys(this.chargeTemplates).forEach(d=>{let h=parseInt(d.match(/([0-9]+)$/g)[0]),F=this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+h].name;e.push({value:h,text:F})}),e}},socModuleList:{get(){return this.$store.state.mqtt["openWB/system/configurable/soc_modules"]}}},methods:{getChargeTemplateScheduledChargingPlans(e){let d=e.match(/([^/]+)$/)[0];return this.getWildcardTopics("openWB/vehicle/template/charge_template/"+d+"/chargemode/scheduled_charging/plans/+")},getChargeTemplateTimeChargingPlans(e){let d=e.match(/([^/]+)$/)[0];return this.getWildcardTopics("openWB/vehicle/template/charge_template/"+d+"/time_charging/plans/+")},addVehicle(e){e.stopPropagation(),console.info("requesting new vehicle..."),this.$emit("sendCommand",{command:"addVehicle",data:{}})},removeVehicleModal(e,d){d.stopPropagation(),this.modalVehicleIndex=e,this.showVehicleModal=!0},removeVehicle(e,d){this.showVehicleModal=!1,d=="confirm"&&(console.info("request removal of vehicle '"+e+"'"),this.$emit("sendCommand",{command:"removeVehicle",data:{id:e}}))},getVehicleName(e){return this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]?this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]:"Fahrzeug "+e},getSocDefaultConfiguration(e){const d=this.socModuleList.find(h=>h.value==e);return Object.prototype.hasOwnProperty.call(d,"defaults")?{...JSON.parse(JSON.stringify(d.defaults))}:(console.warn("no default configuration found for soc type!",e),{})},updateSelectedSocModule(e,d){this.updateState("openWB/vehicle/"+e+"/soc_module/config",d,"type"),this.updateState("openWB/vehicle/"+e+"/soc_module/config",this.getSocDefaultConfiguration(d))},updateConfiguration(e,d){console.debug("updateConfiguration",e,d),this.updateState(e,d.value,d.object)},addEvTemplate(e){e.stopPropagation(),console.info("requesting new ev template..."),this.$emit("sendCommand",{command:"addEvTemplate",data:{}})},removeEvTemplateModal(e,d){d.stopPropagation(),this.modalEvTemplateIndex=parseInt(e.match(/([^/]+)$/)[0]),this.showEvTemplateModal=!0},removeEvTemplate(e,d){this.showEvTemplateModal=!1,d=="confirm"&&(console.info("request removal of ev template '"+e+"'"),this.$emit("sendCommand",{command:"removeEvTemplate",data:{id:e}}))},getEvTemplateName(e){return this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+e]?this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+e].name:"Fahrzeug-Profil "+e},addChargeTemplate(e){e.stopPropagation(),console.info("requesting new charge template..."),this.$emit("sendCommand",{command:"addChargeTemplate",data:{}})},getChargeTemplateIndex(e){return parseInt(e.match(/([^/]+)$/)[0])},removeChargeTemplateModal(e,d){d.stopPropagation(),this.modalChargeTemplateIndex=this.getChargeTemplateIndex(e),this.showChargeTemplateModal=!0},removeChargeTemplate(e,d){this.showChargeTemplateModal=!1,d=="confirm"&&(console.info("request removal of charge template '"+e+"'"),this.$emit("sendCommand",{command:"removeChargeTemplate",data:{id:e}}))},getChargeTemplateName(e){return this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e]?this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e].name:"Lade-Profil "+e},getChargeTemplateSchedulePlanName(e,d){return this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e+"/chargemode/scheduled_charging/plans/"+d]?this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e+"/chargemode/scheduled_charging/plans/"+d].name:"Zielladen Zeitplan "+e+"/"+d},addChargeTemplateSchedulePlan(e,d){d.stopPropagation(),console.info("requesting new charge template schedule plan...");let h=parseInt(e.match(/([^/]+)$/)[0]);this.$emit("sendCommand",{command:"addChargeTemplateSchedulePlan",data:{template:h}})},removeChargeTemplateSchedulePlanModal(e,d,h){h.stopPropagation(),this.modalChargeTemplateIndex=parseInt(e.match(/([^/]+)$/)[0]),this.modalChargeTemplateSchedulePlanIndex=parseInt(d.match(/([^/]+)$/)[0]),this.showChargeTemplateSchedulePlanModal=!0},removeChargeTemplateSchedulePlan(e,d,h){this.showChargeTemplateSchedulePlanModal=!1,h=="confirm"&&(console.info("request removal of charge template '"+e+"' schedule plan '"+d+"'"),this.$emit("sendCommand",{command:"removeChargeTemplateSchedulePlan",data:{template:e,plan:d}}))},getChargeTemplateTimeChargingPlanName(e,d){return this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e+"/time_charging/plans/"+d]?this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e+"/time_charging/plans/"+d].name:"Zeitladen Zeitplan "+e+"/"+d},addChargeTemplateTimeChargingPlan(e,d){d.stopPropagation(),console.info("requesting new charge template time charging plan...");let h=parseInt(e.match(/([^/]+)$/)[0]);this.$emit("sendCommand",{command:"addChargeTemplateTimeChargingPlan",data:{template:h}})},removeChargeTemplateTimeChargingPlanModal(e,d,h){h.stopPropagation(),this.modalChargeTemplateIndex=parseInt(e.match(/([^/]+)$/)[0]),this.modalChargeTemplateTimeChargingPlanIndex=parseInt(d.match(/([^/]+)$/)[0]),this.showChargeTemplateTimeChargingPlanModal=!0},removeChargeTemplateTimeChargingPlan(e,d,h){this.showChargeTemplateTimeChargingPlanModal=!1,h=="confirm"&&(console.info("request removal of charge template '"+e+"' time charging plan '"+d+"'"),this.$emit("sendCommand",{command:"removeChargeTemplateTimeChargingPlan",data:{template:e,plan:d}}))}}},f=e=>(se("data-v-d7193cf0"),e=e(),me(),e),ke={class:"vehicleConfig"},Ve={name:"vehicleConfigForm"},Ce={key:0},Se={key:1},ze=f(()=>g("hr",null,null,-1)),Te={key:0},Ue=f(()=>g("br",null,null,-1)),We=["innerHTML"],Le=f(()=>g("hr",null,null,-1)),Pe=f(()=>g("br",null,null,-1)),Ae=f(()=>g("br",null,null,-1)),ye=f(()=>g("br",null,null,-1)),Ee={key:1},Be=f(()=>g("hr",{class:"border-secondary"},null,-1)),Fe={key:0},qe={key:1},Me=f(()=>g("span",{class:"text-uppercase font-weight-bold"}," nach dem Abstecken ",-1)),De={key:0},Ze=f(()=>g("br",null,null,-1)),xe=f(()=>g("br",null,null,-1)),Ne=f(()=>g("br",null,null,-1)),Ie=f(()=>g("br",null,null,-1)),Oe={key:1},Re={key:0},He={key:0},je={key:3},Je={key:0},$e={key:1},Ge=f(()=>g("br",null,null,-1)),Qe=f(()=>g("br",null,null,-1)),Xe=f(()=>g("ol",null,[g("li",null," Zielladen (Sofortladen) mit Priorität "),g("li",null,"Zielladen (Sofortladen)"),g("li",null,"Zeitladen mit Priorität"),g("li",null,"Zeitladen"),g("li",null,"Sofortladen mit Priorität"),g("li",null,"Sofortladen"),g("li",null,"PV (Min-Anteil) mit Priorität"),g("li",null,"PV (Min-Anteil)"),g("li",null,"Zielladen (PV) mit Priorität"),g("li",null,"Zielladen (PV)"),g("li",null,"PV (PV-Anteil) mit Priorität"),g("li",null,"PV (PV-Anteil)")],-1)),Ye={key:0},Ke={key:0},et={key:0},tt=f(()=>g("hr",null,null,-1)),nt=f(()=>g("hr",null,null,-1)),at=f(()=>g("br",null,null,-1)),lt=f(()=>g("br",null,null,-1)),it=f(()=>g("hr",null,null,-1)),ot=f(()=>g("br",null,null,-1)),dt=f(()=>g("br",null,null,-1)),rt=["onClick"],ut={key:0},st={key:1},mt={key:2},ct={key:3},ht={key:4},gt={key:5},pt={key:4},bt=f(()=>g("hr",null,null,-1)),vt=["onClick"],ft={key:0},_t={key:1},wt={key:2},kt={key:3},Vt={key:4},Ct={key:5};function St(e,d,h,F,_,s){const W=V("openwb-base-modal-dialog"),b=V("font-awesome-icon"),U=V("openwb-base-avatar"),E=V("openwb-base-alert"),L=V("openwb-base-text-input"),M=V("openwb-base-select-input"),O=V("openwb-base-array-input"),w=V("openwb-base-button-group-input"),P=V("openwb-base-heading"),k=V("openwb-base-number-input"),R=V("openwb-vehicle-proxy"),y=V("openwb-base-card"),x=V("font-awesome-layers"),z=V("openwb-base-range-input"),H=V("openwb-base-submit-buttons");return r(),c(A,null,[n(W,{show:_.showVehicleModal,title:"Fahrzeug löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:d[0]||(d[0]=i=>s.removeVehicle(_.modalVehicleIndex,i))},{default:a(()=>[l(' Wollen Sie das Fahrzeug "'+C(s.getVehicleName(_.modalVehicleIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),n(W,{show:_.showEvTemplateModal,title:"Fahrzeug-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:d[1]||(d[1]=i=>s.removeEvTemplate(_.modalEvTemplateIndex,i))},{default:a(()=>[l(' Wollen Sie das Fahrzeug-Profil "'+C(s.getEvTemplateName(_.modalEvTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),n(W,{show:_.showChargeTemplateModal,title:"Lade-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:d[2]||(d[2]=i=>s.removeChargeTemplate(_.modalChargeTemplateIndex,i))},{default:a(()=>[l(' Wollen Sie das Lade-Profil "'+C(s.getChargeTemplateName(_.modalChargeTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),n(W,{show:_.showChargeTemplateSchedulePlanModal,title:"Zielladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:d[3]||(d[3]=i=>s.removeChargeTemplateSchedulePlan(_.modalChargeTemplateIndex,_.modalChargeTemplateSchedulePlanIndex,i))},{default:a(()=>[l(' Wollen Sie den Zielladen Zeitplan "'+C(s.getChargeTemplateSchedulePlanName(_.modalChargeTemplateIndex,_.modalChargeTemplateSchedulePlanIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),n(W,{show:_.showChargeTemplateTimeChargingPlanModal,title:"Zeitladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:d[4]||(d[4]=i=>s.removeChargeTemplateTimeChargingPlan(_.modalChargeTemplateIndex,_.modalChargeTemplateTimeChargingPlanIndex,i))},{default:a(()=>[l(' Wollen Sie den Zeitladen Zeitplan "'+C(s.getChargeTemplateTimeChargingPlanName(_.modalChargeTemplateIndex,_.modalChargeTemplateTimeChargingPlanIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),g("div",ke,[g("form",Ve,[n(y,{subtype:"info",collapsible:!0,collapsed:e.$route.params.section!="vehicle"},{header:a(()=>[n(b,{"fixed-width":"",icon:["fas","car"]}),l(" Fahrzeuge ")]),actions:a(()=>[e.$store.state.mqtt["openWB/general/extern"]===!1?(r(),v(U,{key:0,class:"bg-success clickable",onClick:s.addVehicle},{default:a(()=>[n(b,{"fixed-width":"",icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(r(),c("div",Ce,[n(E,{subtype:"info"},{default:a(()=>[l(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(r(),c("div",Se,[(r(!0),c(A,null,B(s.vehicleIndexes,i=>(r(),v(y,{key:i,title:s.getVehicleName(i),collapsible:!0,collapsed:!(e.$route.params.section=="vehicle"&&parseInt(e.$route.params.section_index)==i),subtype:"info"},q({default:a(()=>[n(L,{title:"Bezeichnung","model-value":e.$store.state.mqtt["openWB/vehicle/"+i+"/name"],"onUpdate:modelValue":o=>e.updateState("openWB/vehicle/"+i+"/name",o),disabled:i===0},q({_:2},[i===0?{name:"help",fn:a(()=>[l(" Das Standard-Fahrzeug kann nicht umbenannt werden. ")]),key:"0"}:void 0]),1032,["model-value","onUpdate:modelValue","disabled"]),n(E,{subtype:"info"},{default:a(()=>[l(" 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}),n(M,{title:"Fahrzeug-Profil",options:s.evTemplateList,"model-value":e.$store.state.mqtt["openWB/vehicle/"+i+"/ev_template"],"onUpdate:modelValue":o=>e.updateState("openWB/vehicle/"+i+"/ev_template",o)},null,8,["options","model-value","onUpdate:modelValue"]),n(M,{title:"Lade-Profil",options:s.chargeTemplateList,"model-value":e.$store.state.mqtt["openWB/vehicle/"+i+"/charge_template"],"onUpdate:modelValue":o=>e.updateState("openWB/vehicle/"+i+"/charge_template",o)},null,8,["options","model-value","onUpdate:modelValue"]),ze,e.$store.state.mqtt["openWB/optional/rfid/active"]===!0&&!h.installAssistantActive?(r(),c("div",Te,[n(O,{title:"Zugeordnete ID-Tags","model-value":e.$store.state.mqtt["openWB/vehicle/"+i+"/tag_id"],"onUpdate:modelValue":o=>e.updateState("openWB/vehicle/"+i+"/tag_id",o)},null,8,["model-value","onUpdate:modelValue"]),n(E,{subtype:"info"},{default:a(()=>[l(" Die hier eingetragenen ID-Tags dienen ausschließlich der Fahrzeugzuordnung."),Ue,g("span",{innerHTML:e.$store.state.text.rfidWiki},null,8,We)]),_:1}),Le])):m("",!0),n(M,{class:"mb-2",title:"SoC-Modul des Fahrzeugs",options:s.socModuleList,"model-value":e.$store.state.mqtt["openWB/vehicle/"+i+"/soc_module/config"].type,"onUpdate:modelValue":o=>s.updateSelectedSocModule(i,o)},{help:a(()=>[l(" 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)."),Pe,l(" 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."),Ae,l(" 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."),ye,l(" 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. ")]),_:2},1032,["options","model-value","onUpdate:modelValue"]),e.$store.state.mqtt["openWB/vehicle/"+i+"/soc_module/config"].type?(r(),c("div",Ee,[n(w,{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":e.$store.state.mqtt["openWB/vehicle/"+i+"/soc_module/general_config"].use_soc_from_cp,"onUpdate:modelValue":o=>e.updateState("openWB/vehicle/"+i+"/soc_module/general_config",o,"use_soc_from_cp")},{help:a(()=>[l(" 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. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(P,null,{help:a(()=>[l(" 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. ")]),default:a(()=>[l(" Aktualisierung der Fahrzeugdaten ")]),_:1}),n(k,{title:"Während der Ladung",unit:"Min.","model-value":e.$store.state.mqtt["openWB/vehicle/"+i+"/soc_module/general_config"].request_interval_charging/60,"onUpdate:modelValue":o=>e.updateState("openWB/vehicle/"+i+"/soc_module/general_config",o*60,"request_interval_charging")},{help:a(()=>[l(" Der Ladestand des Fahrzeugs (SoC) wird bei einem laufenden Ladevorgang in dem hier eingestellten Intervall in Minuten abgefragt. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(k,{title:"Ohne laufende Ladung",unit:"Min.","model-value":e.$store.state.mqtt["openWB/vehicle/"+i+"/soc_module/general_config"].request_interval_not_charging/60,"onUpdate:modelValue":o=>e.updateState("openWB/vehicle/"+i+"/soc_module/general_config",o*60,"request_interval_not_charging")},{help:a(()=>[l(" Der Ladestand des Fahrzeugs (SoC) wird in dem hier eingestellten Intervall in Minuten abgefragt, falls kein Ladevorgang aktiv ist. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(w,{title:"Nur aktualisieren wenn angesteckt",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/"+i+"/soc_module/general_config"].request_only_plugged,"onUpdate:modelValue":o=>e.updateState("openWB/vehicle/"+i+"/soc_module/general_config",o,"request_only_plugged")},{help:a(()=>[l(' Wird hier "Ja" ausgewählt, dann wird der Ladestand des Fahrzeugs nur abgefragt, wenn das Ladekabel angesteckt ist. ')]),_:2},1032,["model-value","onUpdate:modelValue"]),n(R,{vehicleId:i,vehicle:e.$store.state.mqtt["openWB/vehicle/"+i+"/soc_module/config"],"onUpdate:configuration":o=>s.updateConfiguration("openWB/vehicle/"+i+"/soc_module/config",o)},null,8,["vehicleId","vehicle","onUpdate:configuration"])])):m("",!0)]),_:2},[i!==0?{name:"actions",fn:a(o=>[o.collapsed?m("",!0):(r(),v(U,{key:0,class:"bg-danger clickable",onClick:t=>s.removeVehicleModal(i,t)},{default:a(()=>[n(b,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),key:"0"}:void 0]),1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),Be,n(P,null,{default:a(()=>[l("Profile")]),_:1}),n(y,{collapsible:!0,collapsed:!0},{header:a(()=>[n(x,{"fixed-width":"",class:"fa-lg"},{default:a(()=>[n(b,{"fixed-width":"",icon:["far","file"]}),n(b,{"fixed-width":"",icon:["fas","car"],transform:"shrink-8"})]),_:1}),l(" Fahrzeug-Profile ")]),actions:a(()=>[e.$store.state.mqtt["openWB/general/extern"]===!1?(r(),v(U,{key:0,class:"bg-success clickable",onClick:s.addEvTemplate},{default:a(()=>[n(b,{"fixed-width":"",icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(r(),c("div",Fe,[n(E,{subtype:"info"},{default:a(()=>[l(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(r(),c("div",qe,[n(E,{subtype:"info"},{default:a(()=>[l(" Ein anderes Fahrzeug-Profil wird erst "),Me,l(" übernommen, da es sonst durch die Änderung bestimmter Einstellungen im laufenden Ladevorgang zu Widersprüchen kommen kann. ")]),_:1}),(r(!0),c(A,null,B(s.evTemplates,(i,o)=>(r(),v(y,{key:o,title:i.name?i.name:o,collapsible:!0,collapsed:!0},q({default:a(()=>[n(L,{title:"Bezeichnung","model-value":i.name,"onUpdate:modelValue":t=>e.updateState(o,t,"name"),disabled:o.endsWith("/0")},q({_:2},[o.endsWith("/0")?{name:"help",fn:a(()=>[l(" Das Standard-Profil kann nicht umbenannt werden. ")]),key:"0"}:void 0]),1032,["model-value","onUpdate:modelValue","disabled"]),n(P,null,{default:a(()=>[l(" Angaben zur Batterie ")]),_:1}),n(k,{title:"Kapazität der Batterie",unit:"kWh",min:1,step:1,"model-value":i.battery_capacity/1e3,"onUpdate:modelValue":t=>e.updateState(o,t*1e3,"battery_capacity")},{help:a(()=>[l(" 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. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),h.installAssistantActive?m("",!0):(r(),c("div",De,[n(k,{title:"Wirkungsgrad der Ladeelektronik",unit:"%",required:"","model-value":i.efficiency,"onUpdate:modelValue":t=>e.updateState(o,t,"efficiency")},{help:a(()=>[l(" 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."),Ze,l(" Liegen die Angaben der Wallbox und des Fahrzeugs nach der Ladung mehrere Prozent auseinander, dann kann mit dieser Einstellung eine Feinabstimmung erfolgen: "),xe,l(" SoC an der Wallbox zu hoch: Wirkungsgrad um ein paar Prozent reduzieren"),Ne,l(" SoC an der Wallbox zu gering: Wirkungsgrad um ein paar Prozent erhöhen"),Ie]),_:2},1032,["model-value","onUpdate:modelValue"])])),n(k,{title:"Durchschnittsverbrauch",unit:"kWh / 100km",min:0,step:.1,"model-value":i.average_consump/1e3,"onUpdate:modelValue":t=>e.updateState(o,t*1e3,"average_consump")},null,8,["model-value","onUpdate:modelValue"]),s.dcChargingEnabled===!0?(r(),c("div",Oe,[n(P,null,{default:a(()=>[l(" Angaben zur Ladeleistung (DC) ")]),_:1}),n(k,{title:"Mindestleistung",min:5,unit:"kW","model-value":e.ac_current2dc_power(i.dc_min_current),"onUpdate:modelValue":t=>e.updateState(o,e.dc_power2ac_current(t),"dc_min_current")},null,8,["model-value","onUpdate:modelValue"]),n(k,{title:"Maximalleistung",unit:"kW","model-value":e.ac_current2dc_power(i.dc_max_current),"onUpdate:modelValue":t=>e.updateState(o,e.dc_power2ac_current(t),"dc_max_current")},null,8,["model-value","onUpdate:modelValue"])])):m("",!0),n(P,null,{default:a(()=>[l(" Angaben zum Ladestrom "),s.dcChargingEnabled===!0?(r(),c("span",Re," (AC) ")):m("",!0)]),_:1}),n(z,{title:"Mindeststrom",min:6,max:16,step:1,unit:"A","model-value":i.min_current,"onUpdate:modelValue":t=>e.updateState(o,t,"min_current")},null,8,["model-value","onUpdate:modelValue"]),n(z,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":i.max_current_single_phase,"onUpdate:modelValue":t=>e.updateState(o,t,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),n(z,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":i.max_current_multi_phases,"onUpdate:modelValue":t=>e.updateState(o,t,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"]),n(k,{title:"Erlaubte Stromabweichung",step:.1,unit:"A","model-value":i.nominal_difference,"onUpdate:modelValue":t=>e.updateState(o,t,"nominal_difference")},{help:a(()=>[l(" 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. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(P,null,{default:a(()=>[l(" Angaben zur Handhabung von Phasen "),s.dcChargingEnabled===!0?(r(),c("span",He," (AC) ")):m("",!0)]),_:1}),n(w,{title:"Unterstützte Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":i.max_phases,"onUpdate:modelValue":t=>e.updateState(o,t,"max_phases")},{help:a(()=>[l(" Anzahl der Phasen, die der Fahrzeuglader (s.g. OBC - OnboardCharger) bereitstellt. Plugin-Hybride haben meist nur eine Phase, reine E-Autos meist 2 bis 3 Phasen. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(w,{title:"CP-Unterbrechung",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":i.control_pilot_interruption,"onUpdate:modelValue":t=>e.updateState(o,t,"control_pilot_interruption")},{help:a(()=>[l(' Erläuterung siehe "Konfiguration - Ladepunkte" -> Hardware-Optionen ')]),_:2},1032,["model-value","onUpdate:modelValue"]),i.control_pilot_interruption?(r(),v(k,{key:2,title:"Dauer der CP-Unterbrechung",min:4,step:1,unit:"s","model-value":i.control_pilot_interruption_duration,"onUpdate:modelValue":t=>e.updateState(o,t,"control_pilot_interruption_duration")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),n(w,{title:"Phasenumschaltung blockieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":i.prevent_phase_switch,"onUpdate:modelValue":t=>e.updateState(o,t,"prevent_phase_switch")},{help:a(()=>[l(' Erläuterung zu 1p3p siehe "Ladeeinstellungen" ')]),_:2},1032,["model-value","onUpdate:modelValue"]),n(w,{title:"Ladung aktiv halten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":i.prevent_charge_stop,"onUpdate:modelValue":t=>e.updateState(o,t,"prevent_charge_stop")},{help:a(()=>[l(" 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. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(k,{title:"Pause bei Phasenumschaltung",unit:"s",min:2,step:1,"model-value":i.phase_switch_pause,"onUpdate:modelValue":t=>e.updateState(o,t,"phase_switch_pause")},null,8,["model-value","onUpdate:modelValue"]),h.installAssistantActive?m("",!0):(r(),c("div",je,[n(k,{title:"Mindestzeit zwischen Umschaltungen",unit:"s",min:2,step:1,"model-value":i.keep_charge_active_duration,"onUpdate:modelValue":t=>e.updateState(o,t,"keep_charge_active_duration")},{help:a(()=>[l(" 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. ")]),_:2},1032,["model-value","onUpdate:modelValue"])]))]),_:2},[o.endsWith("/0")?void 0:{name:"actions",fn:a(t=>[e.$store.state.mqtt["openWB/general/extern"]===!1&&!t.collapsed?(r(),v(U,{key:0,class:"bg-danger clickable",onClick:p=>s.removeEvTemplateModal(o,p)},{default:a(()=>[n(b,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"])):m("",!0)]),key:"0"}]),1032,["title"]))),128))]))]),_:1}),n(y,{collapsible:!0,collapsed:e.$route.params.section!="charge_template"},{header:a(()=>[n(x,{"fixed-width":"",class:"fa-lg"},{default:a(()=>[n(b,{"fixed-width":"",icon:["far","file"]}),n(b,{"fixed-width":"",icon:["fas","plug"],transform:"shrink-8"})]),_:1}),l(" Lade-Profile ")]),actions:a(()=>[e.$store.state.mqtt["openWB/general/extern"]===!1?(r(),v(U,{key:0,class:"bg-success clickable",onClick:s.addChargeTemplate},{default:a(()=>[n(b,{"fixed-width":"",icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(r(),c("div",Je,[n(E,{subtype:"info"},{default:a(()=>[l(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ')]),_:1})])):(r(),c("div",$e,[(r(!0),c(A,null,B(s.chargeTemplates,(i,o)=>(r(),v(y,{key:o,title:i.name?i.name:o,collapsible:!0,collapsed:!(e.$route.params.section=="charge_template"&&parseInt(e.$route.params.section_index)==s.getChargeTemplateIndex(o))},q({default:a(()=>[n(L,{title:"Bezeichnung","model-value":i.name,"onUpdate:modelValue":t=>e.updateState(o,t,"name"),disabled:o.endsWith("/0")},q({_:2},[o.endsWith("/0")?{name:"help",fn:a(()=>[l(" Das Standard-Profil kann nicht umbenannt werden. ")]),key:"0"}:void 0]),1032,["model-value","onUpdate:modelValue","disabled"]),n(P,null,{default:a(()=>[l(" Allgemeine Optionen ")]),_:1}),n(w,{title:"Aktiver Lademodus",buttons:[{buttonValue:"instant_charging",text:"Sofortladen",class:"btn-outline-danger"},{buttonValue:"pv_charging",text:"PV",class:"btn-outline-success"},{buttonValue:"scheduled_charging",text:"Zielladen",class:"btn-outline-primary"},{buttonValue:"standby",text:"Standby",class:"btn-outline-secondary"},{buttonValue:"stop",text:"Stop",class:"btn-outline-dark"}],"model-value":i.chargemode.selected,"onUpdate:modelValue":t=>e.updateState(o,t,"chargemode.selected")},{help:a(()=>[l(" Diese Einstellung entspricht dem gewählten Lademodus auf der Hauptseite und ist aktiv, wenn ein zugehöriges Fahrzeug angesteckt ist."),Ge,l(" Die zur Verfügung stehende Leistung wird intern anhand folgender Prioritätenliste auf die Fahrzeuge bzw. Ladepunkte verteilt:"),Qe,Xe]),_:2},1032,["model-value","onUpdate:modelValue"]),h.installAssistantActive?m("",!0):(r(),c("div",Ye,[n(w,{title:"Priorität",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":i.prio,"onUpdate:modelValue":t=>e.updateState(o,t,"prio")},{help:a(()=>[l(" 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. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(w,{title:"Zeitladen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":i.time_charging.active,"onUpdate:modelValue":t=>e.updateState(o,t,"time_charging.active")},{help:a(()=>[l(' Der Lademodus Zeitladen 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. ')]),_:2},1032,["model-value","onUpdate:modelValue"]),n(w,{title:"Standard nach Abstecken",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":i.load_default,"onUpdate:modelValue":t=>e.updateState(o,t,"load_default")},{help:a(()=>[l(" Falls diese Option aktiviert ist, wird der betroffene Ladepunkt nach dem Abstecken auf das Standard Fahrzeug zurückgesetzt. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(w,{title:"Strompreisbasiert Laden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":i.et.active,"onUpdate:modelValue":t=>e.updateState(o,t,"et.active")},null,8,["model-value","onUpdate:modelValue"]),i.et.active==!0?(r(),c("div",Ke,[!e.$store.state.mqtt["openWB/optional/et/provider"]||!e.$store.state.mqtt["openWB/optional/et/provider"].type?(r(),c("div",et,[n(E,{subtype:"danger"},{default:a(()=>[l(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. ")]),_:1})])):m("",!0),n(k,{title:"Preisgrenze für Zeit- & Sofortladen",min:"-80",max:"80",step:"0.01",precision:2,unit:"ct/kWh","model-value":i.et.max_price*1e5,"onUpdate:modelValue":t=>e.updateState(o,parseFloat((t/1e5).toFixed(7)),"et.max_price")},{help:a(()=>[l(" Für Zielladen werden die günstigsten Stunden ermittelt. ")]),_:2},1032,["model-value","onUpdate:modelValue"])])):m("",!0),tt])),n(P,null,{default:a(()=>[l("Sofortladen")]),_:1}),n(z,{title:"Soll-Ladestrom"+(s.dcChargingEnabled?" (AC)":""),min:6,max:32,step:1,unit:"A","model-value":i.chargemode.instant_charging.current,"onUpdate:modelValue":t=>e.updateState(o,t,"chargemode.instant_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),s.dcChargingEnabled===!0?(r(),v(k,{key:1,title:"Soll-Ladeleistung (DC)",unit:"kW",min:0,"model-value":e.ac_current2dc_power(i.chargemode.instant_charging.dc_current),"onUpdate:modelValue":t=>e.updateState(o,e.dc_power2ac_current(t),"chargemode.instant_charging.dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),n(w,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":i.chargemode.instant_charging.limit.selected,"onUpdate:modelValue":t=>e.updateState(o,t,"chargemode.instant_charging.limit.selected")},{help:a(()=>[l(" 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. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(z,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":i.chargemode.instant_charging.limit.soc,"onUpdate:modelValue":t=>e.updateState(o,t,"chargemode.instant_charging.limit.soc")},{help:a(()=>[l(' 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"). ')]),_:2},1032,["model-value","onUpdate:modelValue"]),n(k,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":i.chargemode.instant_charging.limit.amount/1e3,"onUpdate:modelValue":t=>e.updateState(o,t*1e3,"chargemode.instant_charging.limit.amount")},{help:a(()=>[l(" Die geladene Energiemenge wird beim Wechsel des Lademodus oder nach dem Anstecken, wenn Sofortladen schon ausgewählt ist, neu gezählt. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),nt,n(P,null,{default:a(()=>[l("PV-Laden")]),_:1}),n(z,{title:"Minimaler Dauerstrom"+(s.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":i.chargemode.pv_charging.min_current,"onUpdate:modelValue":t=>e.updateState(o,t,"chargemode.pv_charging.min_current")},{help:a(()=>[l(' 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. ')]),_:2},1032,["title","model-value","onUpdate:modelValue"]),s.dcChargingEnabled===!0?(r(),v(k,{key:2,title:"Minimale Dauerleistung (DC)",unit:"kW",min:0,"model-value":e.ac_current2dc_power(i.chargemode.pv_charging.dc_min_current),"onUpdate:modelValue":t=>e.updateState(o,e.dc_power2ac_current(t),"chargemode.pv_charging.dc_min_current")},{help:a(()=>[l(" 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. ")]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),n(z,{title:"SoC-Limit für das Fahrzeug",min:0,max:20,step:1,unit:"%",labels:[{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},{label:100,value:100},{label:"Aus",value:101}],"model-value":i.chargemode.pv_charging.max_soc,"onUpdate:modelValue":t=>e.updateState(o,t,"chargemode.pv_charging.max_soc")},{help:a(()=>[l(' Bei der Einstellung "100%" wird die Ladung sofort mit Erreichen der 100% beendet. Dadurch erfolgt KEIN Balancing der Batteriezellen. Ist dies gewünscht (sollte ab und an durchgeführt werden), muss hier "Aus" gewählt werden (Schieberegler ganz nach rechts stellen), um die Ladung MIT Balancing bis zur Beendigung durch das Fahrzeug weiterlaufen zu lassen.'),at,l(' 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"). ')]),_:2},1032,["model-value","onUpdate:modelValue"]),n(z,{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":i.chargemode.pv_charging.min_soc,"onUpdate:modelValue":t=>e.updateState(o,t,"chargemode.pv_charging.min_soc")},{help:a(()=>[l(' 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.'),lt,l(' 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"). ')]),_:2},1032,["model-value","onUpdate:modelValue"]),n(z,{title:"Mindest-SoC-Strom"+(s.dcChargingEnabled?" (AC)":""),min:6,max:32,step:1,unit:"A","model-value":i.chargemode.pv_charging.min_soc_current,"onUpdate:modelValue":t=>e.updateState(o,t,"chargemode.pv_charging.min_soc_current")},{help:a(()=>[l(' 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). ')]),_:2},1032,["title","model-value","onUpdate:modelValue"]),s.dcChargingEnabled===!0?(r(),v(k,{key:3,title:"Mindest-SoC-Leistung (DC)",unit:"kW",min:0,"model-value":e.ac_current2dc_power(i.chargemode.pv_charging.dc_min_soc_current),"onUpdate:modelValue":t=>e.updateState(o,e.dc_power2ac_current(t),"chargemode.pv_charging.dc_min_soc_current")},{help:a(()=>[l(' 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). ')]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),n(w,{title:"Einspeisegrenze beachten",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":i.chargemode.pv_charging.feed_in_limit,"onUpdate:modelValue":t=>e.updateState(o,t,"chargemode.pv_charging.feed_in_limit")},{help:a(()=>[l(' Erläuterung siehe "Ladeeinstellungen" -> "PV-Laden" -> "Regelparameter" -> "Regelpunkt Einspeisegrenze" ')]),_:2},1032,["model-value","onUpdate:modelValue"]),it,n(P,null,{actions:a(()=>[n(U,{class:"bg-success clickable",onClick:t=>s.addChargeTemplateSchedulePlan(o,t)},{default:a(()=>[n(b,{"fixed-width":"",icon:["fas","plus"]})]),_:2},1032,["onClick"])]),help:a(()=>[l(' 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.'),ot,l(' 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.'),dt,l(" Kann der Ziel-SoC bzw. die Energiemenge NICHT erreicht werden, z.B. weil das Auto zu spät angesteckt wurde oder das Lastmanagement eingegriffen hat, wird bis 20 Minuten nach dem angegebenen Termin mit der Maximalstromstärke geladen. Danach wird der Termin verworfen und mit Überschuss geladen. ")]),default:a(()=>[l(" Zielladen ")]),_:2},1024),(r(!0),c(A,null,B(s.getChargeTemplateScheduledChargingPlans(o),(t,p)=>(r(),v(y,{key:p,title:t.name,collapsible:!0,collapsed:!0},{actions:a(u=>[u.collapsed==!0?(r(),c("span",{key:0,onClick:N(T=>e.updateState(p,!t.active,"active"),["stop"]),class:I(["subheader pill clickable",t.active?"bg-success":"bg-danger"])},[t.limit.selected=="soc"?(r(),c("span",ut,[n(b,{"fixed-width":"",icon:["fas","car-battery"]}),l(" "+C(t.limit.soc_scheduled)+"% ",1)])):m("",!0),t.limit.selected=="amount"?(r(),c("span",st,[n(b,{"fixed-width":"",icon:["fas","bolt"]}),l(" "+C(t.limit.amount/1e3)+"kWh ",1)])):m("",!0),n(b,{"fixed-width":"",icon:["fas","clock"]}),l(" "+C(t.time)+" ",1),t.frequency.selected=="once"?(r(),c("span",mt,[n(b,{"fixed-width":"",icon:["fas","calendar-day"]}),l(" "+C(e.formatDate(t.frequency.once)),1)])):m("",!0),t.frequency.selected=="daily"?(r(),c("span",ct,[n(b,{"fixed-width":"",icon:["fas","calendar-week"]})])):m("",!0),t.frequency.selected=="weekly"?(r(),c("span",ht,[n(b,{"fixed-width":"",icon:["fas","calendar-alt"]})])):m("",!0)],10,rt)):m("",!0),u.collapsed==!1?(r(),v(U,{key:1,class:"bg-danger clickable",onClick:T=>s.removeChargeTemplateSchedulePlanModal(o,p,T)},{default:a(()=>[n(b,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"])):m("",!0)]),default:a(()=>[n(L,{title:"Bezeichnung","model-value":t.name,"onUpdate:modelValue":u=>e.updateState(p,u,"name")},null,8,["model-value","onUpdate:modelValue"]),n(w,{title:"Zeitpunkt aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.active,"onUpdate:modelValue":u=>e.updateState(p,u,"active")},null,8,["model-value","onUpdate:modelValue"]),n(L,{title:"Ziel-Uhrzeit",subtype:"time","model-value":t.time,"onUpdate:modelValue":u=>e.updateState(p,u,"time")},{help:a(()=>[l(" Hier ist die gewünschte Uhrzeit einzustellen, zu welcher das Fahrzeug den gewünschten SoC bzw. die zu ladende Energiemenge BEREITS ERREICHT haben soll. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),n(z,{title:"Ladestrom"+(s.dcChargingEnabled?" (AC)":""),min:6,max:32,step:1,unit:"A","model-value":t.current,"onUpdate:modelValue":u=>e.updateState(p,u,"current")},{help:a(()=>[l(" 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. ")]),_:2},1032,["title","model-value","onUpdate:modelValue"]),s.dcChargingEnabled===!0?(r(),v(k,{key:0,title:"Ladeleistung (DC)",unit:"kW",min:0,"model-value":e.ac_current2dc_power(t.dc_current),"onUpdate:modelValue":u=>e.updateState(p,e.dc_power2ac_current(u),"dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),n(w,{title:"Ziel",buttons:[{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":t.limit.selected,"onUpdate:modelValue":u=>e.updateState(p,u,"limit.selected")},{help:a(()=>[l(" Bestimmt die Art der Grenze für den Ladevorgang. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),t.limit.selected=="soc"?(r(),v(z,{key:1,title:"Fahrzeug-SoC zum Zielzeitpunkt",min:5,max:100,step:5,unit:"%","model-value":t.limit.soc_scheduled,"onUpdate:modelValue":u=>e.updateState(p,u,"limit.soc_scheduled")},{help:a(()=>[l(" SoC, der zum angegebenen Zeitpunkt erreicht werden soll (Ziel-SoC). ")]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),t.limit.selected=="soc"?(r(),v(z,{key:2,title:"Fahrzeug-SoC mit Überschuss",min:5,max:100,step:5,unit:"%","model-value":t.limit.soc_limit,"onUpdate:modelValue":u=>e.updateState(p,u,"limit.soc_limit")},{help:a(()=>[l(" 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! ")]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),t.limit.selected=="amount"?(r(),v(k,{key:3,title:"Ziel-Energie",unit:"kWh",min:1,step:.5,"model-value":t.limit.amount/1e3,"onUpdate:modelValue":u=>e.updateState(p,u*1e3,"limit.amount")},{help:a(()=>[l(" Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zielladen schon ausgewählt ist, neu gezählt. ")]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),n(w,{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"}],"model-value":t.frequency.selected,"onUpdate:modelValue":u=>e.updateState(p,u,"frequency.selected")},null,8,["model-value","onUpdate:modelValue"]),t.frequency.selected=="once"?(r(),v(L,{key:4,title:"Datum",subtype:"date","model-value":t.frequency.once,"onUpdate:modelValue":u=>e.updateState(p,u,"frequency.once")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),t.frequency.selected=="weekly"?(r(),c("div",gt,[(r(!0),c(A,null,B(e.weekdays,(u,T)=>(r(),v(w,{key:T,title:u,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.frequency.weekly[T],"onUpdate:modelValue":D=>e.updateState(p,D,"frequency.weekly."+T)},null,8,["title","model-value","onUpdate:modelValue"]))),128))])):m("",!0)]),_:2},1032,["title"]))),128)),h.installAssistantActive?m("",!0):(r(),c("div",pt,[bt,n(P,null,{actions:a(()=>[n(U,{class:"bg-success clickable",onClick:t=>s.addChargeTemplateTimeChargingPlan(o,t)},{default:a(()=>[n(b,{"fixed-width":"",icon:["fas","plus"]})]),_:2},1032,["onClick"])]),help:a(()=>[l(" 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). ")]),default:a(()=>[l(" Laden nach Zeitplan ")]),_:2},1024)])),(r(!0),c(A,null,B(s.getChargeTemplateTimeChargingPlans(o),(t,p)=>(r(),v(y,{key:p,title:t.name,collapsible:!0,collapsed:!0},{actions:a(u=>[u.collapsed==!0?(r(),c("span",{key:0,onClick:N(T=>e.updateState(p,!t.active,"active"),["stop"]),class:I(["subheader pill clickable",t.active?"bg-success":"bg-danger"])},[t.limit.selected=="soc"?(r(),c("span",ft,[n(b,{"fixed-width":"",icon:["fas","car-battery"]}),l(" "+C(t.limit.soc)+"% ",1)])):m("",!0),t.limit.selected=="amount"?(r(),c("span",_t,[n(b,{"fixed-width":"",icon:["fas","bolt"]}),l(" "+C(t.limit.amount/1e3)+"kWh ",1)])):m("",!0),n(b,{"fixed-width":"",icon:["fas","clock"]}),l(" "+C(t.time[0])+" - "+C(t.time[1])+" ",1),t.frequency.selected=="once"?(r(),c("span",wt,[n(b,{"fixed-width":"",icon:["fas","calendar-day"]}),l(" "+C(e.formatDate(t.frequency.once[0])==e.formatDate(t.frequency.once[1])?e.formatDate(t.frequency.once[0]):e.formatDate(t.frequency.once[0])+" - "+e.formatDate(t.frequency.once[1])),1)])):m("",!0),t.frequency.selected=="daily"?(r(),c("span",kt,[n(b,{"fixed-width":"",icon:["fas","calendar-week"]})])):m("",!0),t.frequency.selected=="weekly"?(r(),c("span",Vt,[n(b,{"fixed-width":"",icon:["fas","calendar-alt"]})])):m("",!0)],10,vt)):m("",!0),u.collapsed==!1?(r(),v(U,{key:1,class:"bg-danger clickable",onClick:T=>s.removeChargeTemplateTimeChargingPlanModal(o,p,T)},{default:a(()=>[n(b,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"])):m("",!0)]),default:a(()=>[n(L,{title:"Bezeichnung","model-value":t.name,"onUpdate:modelValue":u=>e.updateState(p,u,"name")},null,8,["model-value","onUpdate:modelValue"]),n(w,{title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.active,"onUpdate:modelValue":u=>e.updateState(p,u,"active")},null,8,["model-value","onUpdate:modelValue"]),n(z,{title:"Ladestrom"+(s.dcChargingEnabled?" (AC)":""),min:6,max:32,step:1,unit:"A","model-value":t.current,"onUpdate:modelValue":u=>e.updateState(p,u,"current")},null,8,["title","model-value","onUpdate:modelValue"]),s.dcChargingEnabled===!0?(r(),v(k,{key:0,title:"Ladeleistung (DC)",unit:"kW",min:0,"model-value":e.ac_current2dc_power(t.dc_current),"onUpdate:modelValue":u=>e.updateState(p,e.dc_power2ac_current(u),"dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),n(w,{title:"Ziel",buttons:[{buttonValue:"none",text:"Aus"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":t.limit.selected,"onUpdate:modelValue":u=>e.updateState(p,u,"limit.selected")},{help:a(()=>[l(" Bestimmt die Art der Grenze für den Ladevorgang. ")]),_:2},1032,["model-value","onUpdate:modelValue"]),t.limit.selected=="soc"?(r(),v(z,{key:1,title:"Ziel-SoC für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":t.limit.soc,"onUpdate:modelValue":u=>e.updateState(p,u,"limit.soc")},{help:a(()=>[l(" Ladestand des Akku (State of Charge, SoC), bis zu welchem maximal geladen werden soll. ")]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),t.limit.selected=="amount"?(r(),v(k,{key:2,title:"Ziel-Energie",unit:"kWh",min:1,step:.5,"model-value":t.limit.amount/1e3,"onUpdate:modelValue":u=>e.updateState(p,u*1e3,"limit.amount")},{help:a(()=>[l(" 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. ")]),_:2},1032,["model-value","onUpdate:modelValue"])):m("",!0),n(L,{title:"Zeitpunkt des Ladebeginns",subtype:"time","model-value":t.time[0],"onUpdate:modelValue":u=>e.updateState(p,u,"time.0")},null,8,["model-value","onUpdate:modelValue"]),n(L,{title:"Zeitpunkt des Ladeendes",subtype:"time","model-value":t.time[1],"onUpdate:modelValue":u=>e.updateState(p,u,"time.1")},null,8,["model-value","onUpdate:modelValue"]),n(w,{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"}],"model-value":t.frequency.selected,"onUpdate:modelValue":u=>e.updateState(p,u,"frequency.selected")},null,8,["model-value","onUpdate:modelValue"]),t.frequency.selected=="once"?(r(),v(L,{key:3,title:"Gültig ab",subtype:"date","model-value":t.frequency.once[0],"onUpdate:modelValue":u=>e.updateState(p,u,"frequency.once.0")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),t.frequency.selected=="once"?(r(),v(L,{key:4,title:"Gültig bis",subtype:"date",min:t.frequency.once[0],"model-value":t.frequency.once[1],"onUpdate:modelValue":u=>e.updateState(p,u,"frequency.once.1")},null,8,["min","model-value","onUpdate:modelValue"])):m("",!0),t.frequency.selected=="weekly"?(r(),c("div",Ct,[(r(!0),c(A,null,B(e.weekdays,(u,T)=>(r(),v(w,{key:T,title:u,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.frequency.weekly[T],"onUpdate:modelValue":D=>e.updateState(p,D,"frequency.weekly."+T)},null,8,["title","model-value","onUpdate:modelValue"]))),128))])):m("",!0)]),_:2},1032,["title"]))),128))]),_:2},[o.endsWith("/0")?void 0:{name:"actions",fn:a(t=>[t.collapsed?m("",!0):(r(),v(U,{key:0,class:"bg-danger clickable",onClick:p=>s.removeChargeTemplateModal(o,p)},{default:a(()=>[n(b,{"fixed-width":"",icon:["fas","trash"]})]),_:2},1032,["onClick"]))]),key:"0"}]),1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),n(H,{formName:"vehicleConfigForm",onSave:d[5]||(d[5]=i=>e.$emit("save")),onReset:d[6]||(d[6]=i=>e.$emit("reset")),onDefaults:d[7]||(d[7]=i=>e.$emit("defaults"))})])])],64)}const Et=Z(we,[["render",St],["__scopeId","data-v-d7193cf0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/VehicleConfig.vue"]]);export{Et as default}; diff --git a/web/settings/assets/device-26a38357.js b/web/settings/assets/device-26a38357.js new file mode 100644 index 0000000000..b38f186e5c --- /dev/null +++ b/web/settings/assets/device-26a38357.js @@ -0,0 +1 @@ +import{_ as f,u as a,k as _,l as b,D as t,N as u,y as d,x as g,z as v}from"./vendor-f2b8aa6f.js";import"./vendor-sortablejs-2f1828d0.js";const w={name:"DeviceGoodWe",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(s,e=void 0){this.$emit("update:configuration",{value:s,object:e})}}},h={class:"device-goodwe"},W={class:"small"};function x(s,e,o,V,D,i){const p=a("openwb-base-heading"),m=a("openwb-base-alert"),c=a("openwb-base-text-input"),l=a("openwb-base-number-input"),r=a("openwb-base-select-input");return _(),b("div",h,[t(p,null,{default:u(()=>[d(" Einstellungen für GoodWe "),g("span",W,"(Modul: "+v(s.$options.name)+")",1)]),_:1}),t(m,{subtype:"info"},{default:u(()=>[d(" 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}),t(c,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>i.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(l,{title:"Port",required:"",min:1,max:65535,"model-value":o.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>i.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(l,{title:"Modbus ID",required:"","model-value":o.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>i.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),t(r,{title:"API-Version",notSelected:"Bitte auswählen",options:[{value:"v_1_7",text:"v1.7"},{value:"v_1_1",text:"v1.0/ v1.1"}],"model-value":o.configuration.version,"onUpdate:modelValue":e[3]||(e[3]=n=>i.updateConfiguration(n,"configuration.version"))},{help:u(()=>[d(" Die Wahl der API-Version beeinflusst die Auslesung der Speicherleistung und der Import/ Export Werte des Zählers. ")]),_:1},8,["model-value"]),t(r,{title:"Firmware",notSelected:"Bitte auswählen",options:[{value:8,text:"ARM < 9.0"},{value:9,text:"ARM ab 9.0"}],"model-value":o.configuration.firmware,"onUpdate:modelValue":e[4]||(e[4]=n=>i.updateConfiguration(n,"configuration.firmware"))},{help:u(()=>[d(" Die Auswahl der Firmware-Version beeinflusst die Auslesung der Wirkleistung und der Phasenströme des Zählers. ")]),_:1},8,["model-value"])])}const B=f(w,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/device.vue"]]);export{B as default}; diff --git a/web/settings/assets/device-6454a372.js b/web/settings/assets/device-6454a372.js deleted file mode 100644 index 9e58b79e3c..0000000000 --- a/web/settings/assets/device-6454a372.js +++ /dev/null @@ -1 +0,0 @@ -import{_,u as a,k as c,l as b,D as t,N as u,y as d,x as g,z as v}from"./vendor-f2b8aa6f.js";import"./vendor-sortablejs-2f1828d0.js";const w={name:"DeviceGoodWe",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(l,e=void 0){this.$emit("update:configuration",{value:l,object:e})}}},x={class:"device-goodwe"},h={class:"small"};function V(l,e,o,W,D,i){const p=a("openwb-base-heading"),m=a("openwb-base-alert"),f=a("openwb-base-text-input"),s=a("openwb-base-number-input"),r=a("openwb-base-select-input");return c(),b("div",x,[t(p,null,{default:u(()=>[d(" Einstellungen für GoodWe "),g("span",h,"(Modul: "+v(l.$options.name)+")",1)]),_:1}),t(m,{subtype:"info"},{default:u(()=>[d(" GoodWe-Wechselrichter verfügen über 2 Dongel: WiFi und Wifi/Lan. Die Einbindung über dieses Modul ist nur mit dem Wifi/Lan-Dongle möglich. ")]),_:1}),t(f,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>i.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>i.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>i.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),t(r,{title:"API-Version",notSelected:"Bitte auswählen",options:[{value:"v_1_7",text:"v1.7"},{value:"v_1_1",text:"v1.0/ v1.1"}],"model-value":o.configuration.version,"onUpdate:modelValue":e[3]||(e[3]=n=>i.updateConfiguration(n,"configuration.version"))},{help:u(()=>[d(" Die Wahl der API-Version beeinflusst die Auslesung der Speicherleistung und der Import/ Export Werte des Zählers. ")]),_:1},8,["model-value"]),t(r,{title:"Firmware",notSelected:"Bitte auswählen",options:[{value:8,text:"ARM < 9.0"},{value:9,text:"ARM ab 9.0"}],"model-value":o.configuration.firmware,"onUpdate:modelValue":e[4]||(e[4]=n=>i.updateConfiguration(n,"configuration.firmware"))},{help:u(()=>[d(" Die Auswahl der Firmware-Version beeinflusst die Auslesung der Wirkleistung und der Phasenströme des Zählers. ")]),_:1},8,["model-value"])])}const B=_(w,[["render",V],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/device.vue"]]);export{B as default}; diff --git a/web/settings/assets/device-7c73cd7c.js b/web/settings/assets/device-7c73cd7c.js new file mode 100644 index 0000000000..ebc807d51a --- /dev/null +++ b/web/settings/assets/device-7c73cd7c.js @@ -0,0 +1 @@ +import{_,u as t,k as m,l as b,D as n,N as d,y as f,x as r,z as g}from"./vendor-f2b8aa6f.js";import"./vendor-sortablejs-2f1828d0.js";const v={name:"DeviceDeye",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(o,e=void 0){this.$emit("update:configuration",{value:o,object:e})}}},w={class:"device-deye"},y={class:"small"},h=r("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);function x(o,e,i,C,D,s){const u=t("openwb-base-heading"),l=t("openwb-base-alert"),p=t("openwb-base-text-input"),c=t("openwb-base-number-input");return m(),b("div",w,[n(u,null,{default:d(()=>[f(" Einstellungen für Deye "),r("span",y,"(Modul: "+g(o.$options.name)+")",1)]),_:1}),n(l,{subtype:"info"},{default:d(()=>[h]),_:1}),n(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>s.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"]),n(c,{title:"Port",required:"",min:1,max:65535,"model-value":i.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=a=>s.updateConfiguration(a,"configuration.port"))},null,8,["model-value"])])}const k=_(v,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/device.vue"]]);export{k as default}; diff --git a/web/settings/assets/device-a7f7c6ed.js b/web/settings/assets/device-a7f7c6ed.js deleted file mode 100644 index f9654864f9..0000000000 --- a/web/settings/assets/device-a7f7c6ed.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as p,u as o,k as l,l as c,D as a,N as m,y as _,x as f,z as b}from"./vendor-f2b8aa6f.js";import"./vendor-sortablejs-2f1828d0.js";const g={name:"DeviceDeye",emits:["update:configuration"],props:{configuration:{type:Object,required:!0},deviceId:{default:void 0}},methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},v={class:"device-deye"},w={class:"small"};function x(t,e,i,y,h,s){const d=o("openwb-base-heading"),u=o("openwb-base-text-input"),r=o("openwb-base-number-input");return l(),c("div",v,[a(d,null,{default:m(()=>[_(" Einstellungen für Deye "),f("span",w,"(Modul: "+b(t.$options.name)+")",1)]),_:1}),a(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>s.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),a(r,{title:"Port",required:"",min:1,max:65535,"model-value":i.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>s.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const V=p(g,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/device.vue"]]);export{V as default}; diff --git a/web/settings/assets/electricity_tariff-b90a64df.js b/web/settings/assets/electricity_tariff-5204ab68.js similarity index 97% rename from web/settings/assets/electricity_tariff-b90a64df.js rename to web/settings/assets/electricity_tariff-5204ab68.js index 5857a1cade..8d10c949c6 100644 --- a/web/settings/assets/electricity_tariff-b90a64df.js +++ b/web/settings/assets/electricity_tariff-5204ab68.js @@ -1 +1 @@ -import{C as p}from"./index-ba5cf04c.js";import{_ as f,u as n,k as m,l as g,D as r,N as u,y as i,x as h}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const _={name:"ElectricityTariffEnergyCharts",mixins:[p],emits:["update:configuration"],props:{electricityTariff:{type:Object,required:!0}},data(){return{}},methods:{updateConfiguration(a,e=void 0){this.$emit("update:configuration",{value:a,object:e})}}},b={class:"electricity-tariff-energycharts"},y=h("br",null,null,-1);function w(a,e,o,v,x,s){const l=n("openwb-base-alert"),c=n("openwb-base-select-input"),d=n("openwb-base-number-input");return m(),g("div",b,[r(l,{subtype:"info"},{default:u(()=>[i(" Börsenstrompreise von Energy Charts (energy-charts.info)"),y,i(" 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}),r(c,{title:"Land",notSelected:"Bitte auswählen",options:[{value:"DE-LU",text:"Deutschland"},{value:"AT",text:"Österreich"},{value:"CH",text:"Schweiz"}],"model-value":o.electricityTariff.configuration.country,"onUpdate:modelValue":e[0]||(e[0]=t=>s.updateConfiguration(t,"configuration.country"))},null,8,["model-value"]),r(d,{title:"Aufschlag zum Börsenstrompreis",min:0,step:.001,precision:3,unit:"ct/kWh","model-value":o.electricityTariff.configuration.surcharge,"onUpdate:modelValue":e[1]||(e[1]=t=>s.updateConfiguration(parseFloat(t.toFixed(3)),"configuration.surcharge"))},{help:u(()=>[i(" 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},8,["model-value"])])}const z=f(_,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/energycharts/electricity_tariff.vue"]]);export{z as default}; +import{C as p}from"./index-88a2073c.js";import{_ as f,u as n,k as m,l as g,D as r,N as u,y as i,x as h}from"./vendor-f2b8aa6f.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";import"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";const _={name:"ElectricityTariffEnergyCharts",mixins:[p],emits:["update:configuration"],props:{electricityTariff:{type:Object,required:!0}},data(){return{}},methods:{updateConfiguration(a,e=void 0){this.$emit("update:configuration",{value:a,object:e})}}},b={class:"electricity-tariff-energycharts"},y=h("br",null,null,-1);function w(a,e,o,v,x,s){const l=n("openwb-base-alert"),c=n("openwb-base-select-input"),d=n("openwb-base-number-input");return m(),g("div",b,[r(l,{subtype:"info"},{default:u(()=>[i(" Börsenstrompreise von Energy Charts (energy-charts.info)"),y,i(" 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}),r(c,{title:"Land",notSelected:"Bitte auswählen",options:[{value:"DE-LU",text:"Deutschland"},{value:"AT",text:"Österreich"},{value:"CH",text:"Schweiz"}],"model-value":o.electricityTariff.configuration.country,"onUpdate:modelValue":e[0]||(e[0]=t=>s.updateConfiguration(t,"configuration.country"))},null,8,["model-value"]),r(d,{title:"Aufschlag zum Börsenstrompreis",min:0,step:.001,precision:3,unit:"ct/kWh","model-value":o.electricityTariff.configuration.surcharge,"onUpdate:modelValue":e[1]||(e[1]=t=>s.updateConfiguration(parseFloat(t.toFixed(3)),"configuration.surcharge"))},{help:u(()=>[i(" 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},8,["model-value"])])}const z=f(_,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_tariffs/energycharts/electricity_tariff.vue"]]);export{z as default}; diff --git a/web/settings/assets/index-ba5cf04c.js b/web/settings/assets/index-88a2073c.js similarity index 96% rename from web/settings/assets/index-ba5cf04c.js rename to web/settings/assets/index-88a2073c.js index 9f876f6997..a3fadf93ea 100644 --- a/web/settings/assets/index-ba5cf04c.js +++ b/web/settings/assets/index-88a2073c.js @@ -1 +1 @@ -import{_ as w,k as r,l as d,m as h,q as k,u as f,x as o,y as p,z as b,A as g,B as u,D as m,E as C,F as I,G as S,I as Y,J as x,K as D,L as Z,M as X,N as _,O as ee,P as te,T as U,Q as se,R as N,S as E,U as L,V as ne,W as oe,X as ae,Y as ie,Z as le,$ as re,a0 as de}from"./vendor-f2b8aa6f.js";import{l as B,f as T,a as V,b as ce,c as ue,d as pe,e as me,F as O,g as j,h as _e,i as fe,j as he,k as ge,m as be,n as ve,o as we,p as ye,q as ke,r as Se,s as Ce,t as Be,u as Oe,v as $e,w as Ie,x as xe,y as Te,z as Ve,A as Me,B as Ae,C as Pe,D as He,E as De,G as qe,H as Ee,I as Le,J as je}from"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import{p as We,a as Re}from"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";import"./vendor-jquery-d3cb8fad.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))c(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const a of s.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&c(a)}).observe(document,{childList:!0,subtree:!0});function n(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function c(i){if(i.ep)return;i.ep=!0;const s=n(i);fetch(i.href,s)}})();const Ne={name:"OpenwbAlert",props:{subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}}};function Fe(e,t,n,c,i,s){return r(),d("div",{class:k(["card-text alert","alert-"+n.subtype])},[h(e.$slots,"default")],2)}const Ue=w(Ne,[["render",Fe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAlert.vue"]]),ze=Object.freeze(Object.defineProperty({__proto__:null,default:Ue},Symbol.toStringTag,{value:"Module"}));B.add(T,V,ce,ue,pe,me);const Ge={name:"OpenwbArrayInput",inheritAttrs:!1,props:{title:String,modelValue:{type:Array,default:()=>[]},noElementsMessage:{type:String,default:()=>"Keine Elemente zugeordnet."}},emits:["update:modelValue"],data(){return{newTag:"",showHelp:!1}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},newTagValid:{get(){return this.newTag.length>0&&this.value.indexOf(this.newTag)==-1}}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0},addTag(){if(this.newTagValid){let e=this.value;e.push(this.newTag),e.sort(),this.value=e,this.newTag=""}this.$refs.tagInput.focus()},removeTag(e){let t=this.value;t.splice(e,1),this.value=t}},components:{FontAwesomeIcon:O}},Je={class:"form-row mb-1"},Ke={class:"col-md-8"},Qe={class:"form-row"},Ye={class:"input-group"},Ze={class:"input-group-prepend"},Xe={class:"input-group-text"},et={class:"input-group-append"},tt={class:"form-row tagList mt-1"},st={key:0,class:"noTag"},nt={key:0,class:"form-row alert alert-info my-1 small"};function ot(e,t,n,c,i,s){const a=f("font-awesome-icon");return r(),d("div",Je,[o("label",{onClick:t[0]||(t[0]=(...l)=>s.toggleHelp&&s.toggleHelp(...l)),class:"col-md-4 col-form-label"},[p(b(n.title)+" ",1),e.$slots.help?(r(),g(a,{key:0,icon:i.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(i.showHelp?"text-info":"")},null,8,["icon","class"])):u("",!0)]),o("div",Ke,[o("div",Qe,[o("div",Ye,[o("div",Ze,[o("div",Xe,[h(e.$slots,"input-prefix",{},()=>[m(a,{"fixed-width":"",icon:["fas","tag"]})],!0)])]),C(o("input",S({ref:"tagInput",type:"text",class:"form-control","onUpdate:modelValue":t[1]||(t[1]=l=>i.newTag=l)},e.$attrs,{onKeyup:t[2]||(t[2]=Y((...l)=>s.addTag&&s.addTag(...l),["enter"]))}),null,16),[[I,i.newTag]]),o("div",et,[o("div",{class:k(["input-group-text",s.newTagValid?"bg-success clickable":"notClickable"]),onClick:t[3]||(t[3]=(...l)=>s.addTag&&s.addTag(...l))},[h(e.$slots,"input-add",{},()=>[m(a,{"fixed-width":"",icon:["fas","plus"]})],!0)],2)])])]),o("div",tt,[s.value.length==0?(r(),d("span",st,[m(a,{icon:["fas","info-circle"]}),p(" "+b(n.noElementsMessage),1)])):u("",!0),(r(!0),d(x,null,D(s.value,(l,v)=>(r(),d("span",{class:"tag",key:v},[h(e.$slots,"element-prefix",{},()=>[m(a,{icon:["fas","tag"]})],!0),p(" "+b(l)+" ",1),m(a,{class:"clickable remove-element",icon:["fas","times-circle"],onClick:$=>s.removeTag(v)},null,8,["onClick"])]))),128))]),i.showHelp?(r(),d("span",nt,[h(e.$slots,"help",{},void 0,!0)])):u("",!0)])])}const at=w(Ge,[["render",ot],["__scopeId","data-v-9de93d37"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseArrayInput.vue"]]),it=Object.freeze(Object.defineProperty({__proto__:null,default:at},Symbol.toStringTag,{value:"Module"}));const lt={name:"OpenwbAvatar"},rt={class:"avatar"};function dt(e,t,n,c,i,s){return r(),d("div",rt,[h(e.$slots,"default",{},()=>[p("?")],!0)])}const ct=w(lt,[["render",dt],["__scopeId","data-v-06082a1a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAvatar.vue"]]),ut=Object.freeze(Object.defineProperty({__proto__:null,default:ct},Symbol.toStringTag,{value:"Module"}));B.add(T,V,j);const pt={name:"OpenwbButtonGroupInput",inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Number,Boolean]},buttons:Object},emits:["update:modelValue"],data(){return{showHelp:!1}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}},components:{FontAwesomeIcon:O}},mt={class:"form-row mb-1"},_t={class:"col-md-8"},ft={class:"form-row"},ht={class:"btn-group btn-block btn-group-toggle"},gt=["value"],bt={key:0,class:"form-row alert alert-info my-1 small"};function vt(e,t,n,c,i,s){const a=f("font-awesome-icon");return r(),d("div",mt,[o("label",{onClick:t[0]||(t[0]=(...l)=>s.toggleHelp&&s.toggleHelp(...l)),class:"col-md-4 col-form-label"},[h(e.$slots,"default",{},()=>[p(b(n.title),1)]),e.$slots.help?(r(),g(a,{key:0,"fixed-width":"",icon:i.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(i.showHelp?"text-info":"")},null,8,["icon","class"])):u("",!0)]),o("div",_t,[o("div",ft,[o("div",ht,[(r(!0),d(x,null,D(n.buttons,l=>(r(),d("label",{key:l.value,class:k(["btn",[s.value==l.buttonValue?"active":"",l.class?l.class:"btn-outline-info"]])},[C(o("input",S({type:"radio","onUpdate:modelValue":t[1]||(t[1]=v=>s.value=v),value:l.buttonValue,ref_for:!0},e.$attrs),null,16,gt),[[Z,s.value]]),h(e.$slots,"label-"+l.buttonValue,{},()=>[p(b(l.text),1)]),m(a,{icon:["fas","check"],style:X([s.value==l.buttonValue?"visibility: visible":"visibility: hidden"])},null,8,["style"])],2))),128))])]),i.showHelp?(r(),d("span",bt,[h(e.$slots,"help")])):u("",!0)])])}const wt=w(pt,[["render",vt],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonGroupInput.vue"]]),yt=Object.freeze(Object.defineProperty({__proto__:null,default:wt},Symbol.toStringTag,{value:"Module"}));B.add(T,V);const kt={name:"OpenwbButtonInput",inheritAttrs:!1,props:{title:String,buttonText:String,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"}},data(){return{showHelp:!1}},emits:["buttonClicked"],methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0},handleClick(e){this.$emit("buttonClicked",e)}},components:{FontAwesomeIcon:O}},St={class:"form-row mb-1"},Ct={class:"col-md-8"},Bt={class:"form-row"},Ot={key:0,class:"form-row alert alert-info my-1 small"};function $t(e,t,n,c,i,s){const a=f("font-awesome-icon"),l=f("openwb-base-click-button");return r(),d("div",St,[o("label",{onClick:t[0]||(t[0]=(...v)=>s.toggleHelp&&s.toggleHelp(...v)),class:"col-md-4 col-form-label"},[p(b(n.title)+" ",1),e.$slots.help?(r(),g(a,{key:0,icon:i.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(i.showHelp?"text-info":"")},null,8,["icon","class"])):u("",!0)]),o("div",Ct,[o("div",Bt,[m(l,S({class:(n.disabled?"btn-outline-":"btn-")+n.subtype,disabled:n.disabled},e.$attrs,{onButtonClicked:s.handleClick}),{default:_(()=>[h(e.$slots,"default",{},()=>[p(b(n.buttonText),1)])]),_:3},16,["class","disabled","onButtonClicked"])]),i.showHelp?(r(),d("span",Ot,[h(e.$slots,"help")])):u("",!0)])])}const It=w(kt,[["render",$t],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonInput.vue"]]),xt=Object.freeze(Object.defineProperty({__proto__:null,default:It},Symbol.toStringTag,{value:"Module"}));B.add(_e,fe);const Tt={name:"OpenwbCard",inheritAttrs:!1,components:{FontAwesomeIcon:O},props:{title:{type:String,default:"# no title set #"},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark","pink"].indexOf(e)!==-1},default:"secondary"},collapsible:{type:Boolean,default:!1},collapsed:{type:Boolean,default:!1}},data(){return{isCollapsed:this.collapsible&&this.collapsed}},methods:{toggleBody(){this.collapsible===!0&&(this.isCollapsed=!this.isCollapsed)}}},Vt={class:"form-group mb-0"},Mt={class:"form-row vaRow mb-0 py-2"},At={class:"col"},Pt={class:"card-actions ml-4"},Ht={key:0,class:"card-actions mr-4"},Dt={key:1,class:"card-footer"};function qt(e,t,n,c,i,s){const a=f("font-awesome-icon");return r(),d("div",{class:k(["card","border-"+n.subtype])},[o("div",{class:k(["card-header py-1","bg-"+n.subtype]),onClick:t[0]||(t[0]=(...l)=>s.toggleBody&&s.toggleBody(...l))},[o("div",Vt,[o("div",Mt,[o("div",At,[h(e.$slots,"header",{collapsed:i.isCollapsed},()=>[p(b(n.title),1)])])])]),o("span",Pt,[e.$slots.actions?(r(),d("span",Ht,[h(e.$slots,"actions",{collapsed:i.isCollapsed})])):u("",!0),n.collapsible?(r(),g(a,{key:1,"fixed-width":"",icon:i.isCollapsed?["fas","chevron-right"]:["fas","chevron-down"]},null,8,["icon"])):u("",!0)])],2),i.isCollapsed===!1?(r(),d("div",S({key:0,class:"card-body"},e.$attrs),[h(e.$slots,"default")],16)):u("",!0),e.$slots.footer&&i.isCollapsed===!1?(r(),d("div",Dt,[h(e.$slots,"footer")])):u("",!0)],2)}const Et=w(Tt,[["render",qt],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCard.vue"]]),Lt=Object.freeze(Object.defineProperty({__proto__:null,default:Et},Symbol.toStringTag,{value:"Module"}));B.add(T,V);const jt={name:"OpenwbCheckboxInput",inheritAttrs:!1,props:{title:String,modelValue:{type:Boolean}},emits:["update:modelValue"],data(){return{showHelp:!1}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}},components:{FontAwesomeIcon:O}},Wt={class:"form-row mb-1"},Rt={class:"col-md-8"},Nt={class:"form-row"},Ft={key:0,class:"form-row alert alert-info my-1 small"};function Ut(e,t,n,c,i,s){const a=f("font-awesome-icon");return r(),d("div",Wt,[o("label",{onClick:t[0]||(t[0]=(...l)=>s.toggleHelp&&s.toggleHelp(...l)),class:"col-md-4 col-form-label"},[p(b(n.title)+" ",1),e.$slots.help?(r(),g(a,{key:0,icon:i.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(i.showHelp?"text-info":"")},null,8,["icon","class"])):u("",!0)]),o("div",Rt,[o("div",Nt,[C(o("input",S({class:"form-control",type:"checkbox","onUpdate:modelValue":t[1]||(t[1]=l=>s.value=l)},e.$attrs),null,16),[[ee,s.value]])]),i.showHelp?(r(),d("span",Ft,[h(e.$slots,"help")])):u("",!0)])])}const zt=w(jt,[["render",Ut],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCheckboxInput.vue"]]),Gt=Object.freeze(Object.defineProperty({__proto__:null,default:zt},Symbol.toStringTag,{value:"Module"}));const Jt={name:"OpenwbClickButton",props:{title:String},emits:["buttonClicked"],methods:{click(e){this.$emit("buttonClicked",e)}}};function Kt(e,t,n,c,i,s){return r(),d("button",{type:"button",class:"btn btn-block",onClick:t[0]||(t[0]=te((...a)=>s.click&&s.click(...a),["prevent"]))},[h(e.$slots,"default",{},()=>[p(b(n.title),1)],!0)])}const Qt=w(Jt,[["render",Kt],["__scopeId","data-v-2e9c095b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseClickButton.vue"]]),Yt=Object.freeze(Object.defineProperty({__proto__:null,default:Qt},Symbol.toStringTag,{value:"Module"}));B.add(he,ge);const Zt={name:"OpenwbCopyToClipboard",components:{FontAwesomeIcon:O},props:{tooltip:{type:String,default:"Wert kopieren"}},data(){return{clipboardApiAvailable:navigator.clipboard!=null,isCopied:!1}},methods:{click(){if(console.debug(this.$refs["slot-wrapper"].innerText),this.clipboardApiAvailable)navigator.clipboard.writeText(this.$refs["slot-wrapper"].innerText).then(()=>{this.isCopied=!0},()=>{console.error("copy to clipboard failed")});else{if(console.debug("clipboard api not supported/enabled, fallback to select"),window.getSelection){console.debug("using 'window.getSelection'");const e=window.getSelection(),t=document.createRange();t.selectNodeContents(this.$refs["slot-wrapper"]),e.removeAllRanges(),e.addRange(t);return}if(document.body.createTextRange){console.debug("using 'document.body.createTextRange'");const e=document.body.createTextRange();e.moveToElementText(this.$refs["slot-wrapper"]),e.select()}else console.warn("could not select text, unsupported browser")}}}},Xt=["title"];function es(e,t,n,c,i,s){const a=f("font-awesome-icon");return r(),d("span",{ref:"slot-wrapper",title:n.tooltip,class:"copy-me",onClick:t[0]||(t[0]=(...l)=>s.click&&s.click(...l))},[h(e.$slots,"default",{},void 0,!0),m(a,{"fixed-width":"",icon:i.isCopied?["fas","clipboard-check"]:["fas","clipboard"]},null,8,["icon"])],8,Xt)}const ts=w(Zt,[["render",es],["__scopeId","data-v-81826ebe"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCopyToClipboard.vue"]]),ss=Object.freeze(Object.defineProperty({__proto__:null,default:ts},Symbol.toStringTag,{value:"Module"}));B.add(T,V,j);const ns={name:"OpenwbHeading",inheritAttrs:!1,components:{FontAwesomeIcon:O},data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},os={key:0,class:"actions"},as={class:""},is={key:0,class:"form-row alert alert-info small"};function ls(e,t,n,c,i,s){const a=f("font-awesome-icon");return r(),d(x,null,[o("div",S({class:"card-text card-text-heading"},e.$attrs),[o("div",{class:"heading-text",onClick:t[0]||(t[0]=(...l)=>s.toggleHelp&&s.toggleHelp(...l))},[h(e.$slots,"default",{},void 0,!0),e.$slots.help?(r(),g(a,{key:0,icon:i.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(i.showHelp?"text-info":"")},null,8,["icon","class"])):u("",!0)]),e.$slots.actions?(r(),d("span",os,[h(e.$slots,"actions",{},void 0,!0)])):u("",!0)],16),o("div",as,[i.showHelp?(r(),d("span",is,[h(e.$slots,"help",{},void 0,!0)])):u("",!0)])],64)}const rs=w(ns,[["render",ls],["__scopeId","data-v-cbe4e96e"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseHeading.vue"]]),ds=Object.freeze(Object.defineProperty({__proto__:null,default:rs},Symbol.toStringTag,{value:"Module"})),cs={name:"OpenwbModalDialog",emits:["modal-result"],props:{title:String,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}},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)}}},us=o("div",{class:"modal-backdrop fade show"},null,-1),ps={class:"modal-dialog modal-dialog-centered modal-dialog-scrollable",role:"document"},ms={class:"modal-content"},_s={class:"modal-title"},fs={class:"modal-body"},hs=["data-event"];function gs(e,t,n,c,i,s){return n.show?(r(),g(U,{key:0,to:"body"},[us,o("div",{class:"modal fade d-block show",role:"dialog",onClick:t[2]||(t[2]=(...a)=>s.handleClick&&s.handleClick(...a))},[o("div",ps,[o("div",ms,[o("div",{class:k(["modal-header","bg-"+n.subtype])},[o("h4",_s,b(n.title),1),n.preventClose?u("",!0):(r(),d("button",{key:0,type:"button",class:"close",onClick:t[0]||(t[0]=(...a)=>s.handleClick&&s.handleClick(...a))}," × "))],2),o("div",fs,[h(e.$slots,"default",{},()=>[p("# Body #")])]),s.myButtons.length>0?(r(),d("div",{key:0,class:k(["modal-footer d-flex","justify-content-"+n.footerAlignment])},[(r(!0),d(x,null,D(s.myButtons,a=>(r(),d("button",{key:a.text,type:"button",class:k(["btn",a.subtype?"btn-"+a.subtype:"btn-secondary"]),"data-dismiss":"modal","data-event":a.event?a.event:"close",onClick:t[1]||(t[1]=(...l)=>s.handleClick&&s.handleClick(...l))},b(a.text),11,hs))),128))],2)):u("",!0)])])])])):u("",!0)}const bs=w(cs,[["render",gs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseModalDialog.vue"]]),vs=Object.freeze(Object.defineProperty({__proto__:null,default:bs},Symbol.toStringTag,{value:"Module"}));B.add(T,V,be);const ws={name:"OpenwbNumberInput",inheritAttrs:!1,props:{title:String,modelValue:{type:Number},unit:String,precision:{type:Number,default:void 0},emptyValue:{required:!1,default:null}},emits:["update:modelValue"],data(){return{showHelp:!1}},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)}}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}},components:{FontAwesomeIcon:O}},ys={class:"form-row mb-1"},ks={class:"col-md-8"},Ss={class:"form-row"},Cs={class:"input-group"},Bs={class:"input-group-prepend"},Os={class:"input-group-text"},$s={key:0,class:"input-group-append"},Is={class:"input-group-text"},xs={key:0,class:"form-row alert alert-info my-1 small"};function Ts(e,t,n,c,i,s){const a=f("font-awesome-icon");return r(),d("div",ys,[o("label",{onClick:t[0]||(t[0]=(...l)=>s.toggleHelp&&s.toggleHelp(...l)),class:"col-md-4 col-form-label"},[p(b(n.title)+" ",1),e.$slots.help?(r(),g(a,{key:0,icon:i.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(i.showHelp?"text-info":"")},null,8,["icon","class"])):u("",!0)]),o("div",ks,[o("div",Ss,[o("div",Cs,[o("div",Bs,[o("div",Os,[m(a,{"fixed-width":"",icon:["fas","calculator"]})])]),C(o("input",S({type:"number",class:"form-control","onUpdate:modelValue":t[1]||(t[1]=l=>s.value=l)},e.$attrs),null,16),[[I,s.value,void 0,{number:!0}]]),n.unit?(r(),d("div",$s,[o("div",Is,b(n.unit),1)])):u("",!0)])]),i.showHelp?(r(),d("span",xs,[h(e.$slots,"help",{},void 0,!0)])):u("",!0)])])}const Vs=w(ws,[["render",Ts],["__scopeId","data-v-c2fb7eef"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseNumberInput.vue"]]),Ms=Object.freeze(Object.defineProperty({__proto__:null,default:Vs},Symbol.toStringTag,{value:"Module"}));B.add(T,V,ve,we);const As={name:"OpenwbRangeInput",inheritAttrs:!1,props:{title:String,modelValue:{type:Number},unit:String,min:{type:Number,default:0},max:{type:Number,default:100},step:{type:Number,default:1},labels:{type:Array}},emits:["update:modelValue"],data(){return{showHelp:!1}},computed:{label(){var e;return this.labels&&this.sliderValue!=null?this.sliderValues.toggleHelp&&s.toggleHelp(...l)),class:"col-md-4 col-form-label"},[p(b(n.title)+" ",1),e.$slots.help?(r(),g(a,{key:0,icon:i.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(i.showHelp?"text-info":"")},null,8,["icon","class"])):u("",!0)]),o("div",Hs,[o("div",Ds,[s.label?(r(),d("label",qs,b(s.label),1)):u("",!0),o("button",{class:"col-1 btn btn-block btn-info",type:"button",onClick:t[1]||(t[1]=(...l)=>s.decrement&&s.decrement(...l))},[m(a,{icon:["fas","step-backward"]})]),o("div",Es,[C(o("input",S({type:"range",class:"form-control-range rangeInput",min:n.min,max:n.max,step:n.step,"onUpdate:modelValue":t[2]||(t[2]=l=>s.sliderValue=l)},e.$attrs),null,16,Ls),[[I,s.sliderValue,void 0,{number:!0}]])]),o("button",{class:"col-1 btn btn-block btn-info",type:"button",onClick:t[3]||(t[3]=(...l)=>s.increment&&s.increment(...l))},[m(a,{icon:["fas","step-forward"]})])]),i.showHelp?(r(),d("div",js,[o("div",Ws,[h(e.$slots,"help",{},void 0,!0)])])):u("",!0)])])}const Ns=w(As,[["render",Rs],["__scopeId","data-v-449fb0a5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseRangeInput.vue"]]),Fs=Object.freeze(Object.defineProperty({__proto__:null,default:Ns},Symbol.toStringTag,{value:"Module"}));B.add(T,V);const Us={name:"OpenwbSelectInput",inheritAttrs:!1,props:{title:String,modelValue:{type:[String,Number,Array]},groups:Object,options:Object,notSelected:{type:String,default:void 0}},emits:["update:modelValue"],data(){return{showHelp:!1}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}},components:{FontAwesomeIcon:O}},zs={class:"form-row mb-1"},Gs={class:"col-md-8"},Js={class:"form-row"},Ks={key:0,value:void 0,disabled:""},Qs=["value"],Ys=["label"],Zs=["value"],Xs={key:0,class:"form-row alert alert-info my-1 small"};function en(e,t,n,c,i,s){const a=f("font-awesome-icon");return r(),d("div",zs,[o("label",{onClick:t[0]||(t[0]=(...l)=>s.toggleHelp&&s.toggleHelp(...l)),class:"col-md-4 col-form-label"},[p(b(n.title)+" ",1),e.$slots.help?(r(),g(a,{key:0,icon:i.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(i.showHelp?"text-info":"")},null,8,["icon","class"])):u("",!0)]),o("div",Gs,[o("div",Js,[C(o("select",S({class:"col form-control","onUpdate:modelValue":t[1]||(t[1]=l=>s.value=l)},e.$attrs),[n.notSelected!==void 0?(r(),d("option",Ks," -- "+b(n.notSelected)+" -- ",1)):u("",!0),(r(!0),d(x,null,D(n.options,l=>(r(),d("option",{key:l.value,value:l.value},b(l.text),9,Qs))),128)),(r(!0),d(x,null,D(n.groups,l=>(r(),d("optgroup",{key:l.label,label:l.label},[(r(!0),d(x,null,D(l.options,v=>(r(),d("option",{key:v.value,value:v.value},b(v.text),9,Zs))),128))],8,Ys))),128))],16),[[se,s.value]]),h(e.$slots,"append")]),i.showHelp?(r(),d("span",Xs,[h(e.$slots,"help")])):u("",!0)])])}const tn=w(Us,[["render",en],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSelectInput.vue"]]),sn=Object.freeze(Object.defineProperty({__proto__:null,default:tn},Symbol.toStringTag,{value:"Module"}));B.add(j,ye,ke);const nn={name:"OpenwbSubmitButtons",components:{FontAwesomeIcon:O},props:{formName:{type:String,default:void 0},hideReset:{type:Boolean,default:!1},hideDefaults:{type:Boolean,default:!0}},data(){return{showModalReset:!1,showModalDefaults:!1}},emits:["reset","defaults","save"],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")}}},on={class:"row justify-content-center mb-1"},an={class:"col-md-4 d-flex py-1 justify-content-center"},ln={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},rn={key:1,class:"col-md-4 d-flex py-1 justify-content-center"};function dn(e,t,n,c,i,s){const a=f("openwb-base-modal-dialog"),l=f("font-awesome-icon");return r(),d(x,null,[m(a,{show:s.showModalSave,title:"Speichern",subtype:"success",preventClose:!0},{default:_(()=>[p(" Einstellungen werden gespeichert... ")]),_:1},8,["show"]),m(a,{show:i.showModalReset,title:"Änderungen verwerfen",subtype:"warning",buttons:[{text:"Ok",event:"confirm",subtype:"warning"}],onModalResult:s.handleModalReset},{default:_(()=>[p(" Wollen Sie die nicht gespeicherten Änderungen wirklich verwerfen? ")]),_:1},8,["show","onModalResult"]),m(a,{show:i.showModalDefaults,title:"Werkseinstellungen",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"danger"}],onModalResult:s.handleModalDefaults},{default:_(()=>[p(" Wollen Sie wirklich alle Werte dieser Seite auf die Werkseinstellungen zurücksetzen? ")]),_:1},8,["show","onModalResult"]),o("div",on,[o("div",an,[o("button",{id:"saveSettingsBtn",type:"button",class:"btn btn-block btn-success",onClick:t[0]||(t[0]=(...v)=>s.saveSettings&&s.saveSettings(...v))},[p(" Speichern "),m(l,{"fixed-width":"",icon:["fas","check"]})])]),n.hideReset?u("",!0):(r(),d("div",ln,[o("button",{id:"modalResetBtn",type:"button",class:"btn btn-block btn-warning",onClick:t[1]||(t[1]=(...v)=>s.showResetModal&&s.showResetModal(...v))},[p(" Änderungen verwerfen "),m(l,{"fixed-width":"",icon:["fas","undo"]})])])),n.hideDefaults?u("",!0):(r(),d("div",rn,[o("button",{id:"modalDefaultsBtn",type:"button",class:"btn btn-block btn-danger",onClick:t[2]||(t[2]=(...v)=>s.showDefaultsModal&&s.showDefaultsModal(...v))},[p(" Werkseinstellungen "),m(l,{"fixed-width":"",icon:["fas","times"]})])]))])],64)}const cn=w(nn,[["render",dn],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSubmitButtons.vue"]]),un=Object.freeze(Object.defineProperty({__proto__:null,default:cn},Symbol.toStringTag,{value:"Module"}));B.add(T,V,Se,Ce,Be,Oe,$e,Ie,xe,Te,Ve,Me,Ae,Pe);const pn={name:"OpenwbTextInput",inheritAttrs:!1,props:{title:String,modelValue:{type:[String,Object]},subtype:{validator:function(e){return["text","email","host","url","user","json","password","time","date","month","year"].indexOf(e)!==-1},default:"text"},pattern:String,unit:String,emptyValue:{required:!1,default:null},showQuickButtons:{type:Boolean,default:!1}},emits:["update:modelValue"],data(){return{showHelp:!1,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{console.error("parsing JSON failed: "+e),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}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0},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(E("data-v-6927d479"),e=e(),L(),e),mn={class:"form-row mb-1"},_n={class:"col-md-8"},fn={class:"form-row"},hn={class:"input-group"},gn={class:"input-group-prepend"},bn={class:"input-group-text"},vn=["pattern"],wn=["pattern"],yn=["type","pattern"],kn=["type"],Sn={key:9,class:"input-group-append"},Cn={class:"input-group-text"},Bn={class:"input-group-text"},On=z(()=>o("div",{class:"input-group-text"},"-",-1)),$n=[On],In=z(()=>o("div",{class:"input-group-text"},"+",-1)),xn=[In],Tn={key:0,class:"form-row alert alert-info my-1 small"};function Vn(e,t,n,c,i,s){const a=f("font-awesome-icon");return r(),d("div",mn,[o("label",{onClick:t[0]||(t[0]=(...l)=>s.toggleHelp&&s.toggleHelp(...l)),class:"col-md-4 col-form-label"},[p(b(n.title)+" ",1),e.$slots.help?(r(),g(a,{key:0,icon:i.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(i.showHelp?"text-info":"")},null,8,["icon","class"])):u("",!0)]),o("div",_n,[o("div",fn,[o("div",hn,[o("div",gn,[o("div",bn,[n.subtype=="text"?(r(),g(a,{key:0,"fixed-width":"",icon:["fas","keyboard"]})):u("",!0),n.subtype=="email"?(r(),g(a,{key:1,"fixed-width":"",icon:["fas","envelope"]})):u("",!0),n.subtype=="host"?(r(),g(a,{key:2,"fixed-width":"",icon:["fas","network-wired"]})):u("",!0),n.subtype=="url"?(r(),g(a,{key:3,"fixed-width":"",icon:["fas","globe"]})):u("",!0),n.subtype=="user"?(r(),g(a,{key:4,"fixed-width":"",icon:["fas","user"]})):u("",!0),n.subtype=="json"?(r(),g(a,{key:5,"fixed-width":"",icon:["fas","code"]})):u("",!0),n.subtype=="password"?(r(),g(a,{key:6,"fixed-width":"",icon:i.showPassword?["fas","unlock"]:["fas","lock"]},null,8,["icon"])):u("",!0),n.subtype=="time"?(r(),g(a,{key:7,"fixed-width":"",icon:["fas","clock"]})):u("",!0),n.subtype=="date"||n.subtype=="month"||n.subtype=="year"?(r(),g(a,{key:8,"fixed-width":"",icon:["fas","calendar-day"]})):u("",!0)])]),["text","user"].includes(n.subtype)?C((r(),d("input",S({key:0,ref:"textInput",type:"text",class:["form-control",{invalid:i.inputInvalid}],"onUpdate:modelValue":t[1]||(t[1]=l=>s.value=l)},e.$attrs,{pattern:n.pattern}),null,16,vn)),[[I,s.value]]):u("",!0),n.subtype=="json"?C((r(),d("input",S({key:1,ref:"jsonInput",type:"text",class:"form-control","onUpdate:modelValue":t[2]||(t[2]=l=>s.value=l)},e.$attrs,{pattern:n.pattern}),null,16,wn)),[[I,s.value]]):u("",!0),n.subtype=="password"?C((r(),d("input",S({key:2,ref:"passwordInput",type:i.showPassword?"text":"password",class:"form-control","onUpdate:modelValue":t[3]||(t[3]=l=>s.value=l)},e.$attrs,{pattern:n.pattern}),null,16,yn)),[[N,s.value]]):u("",!0),n.subtype=="host"?C((r(),d("input",S({key:3,ref:"hostInput",type:"text",class:"form-control","onUpdate:modelValue":t[4]||(t[4]=l=>s.value=l)},e.$attrs),null,16)),[[I,s.value]]):u("",!0),["email","url"].includes(n.subtype)?C((r(),d("input",S({key:4,refs:"urlInput",type:n.subtype,class:"form-control","onUpdate:modelValue":t[5]||(t[5]=l=>s.value=l)},e.$attrs),null,16,kn)),[[N,s.value]]):u("",!0),n.subtype=="time"?C((r(),d("input",S({key:5,ref:"timeInput",type:"time",class:"form-control","onUpdate:modelValue":t[6]||(t[6]=l=>s.value=l)},e.$attrs),null,16)),[[I,s.value]]):u("",!0),n.subtype=="date"?C((r(),d("input",S({key:6,type:"date",ref:"dateInput",class:"form-control","onUpdate:modelValue":t[7]||(t[7]=l=>s.value=l)},e.$attrs),null,16)),[[I,s.value]]):u("",!0),n.subtype=="month"?C((r(),d("input",S({key:7,type:"month",ref:"monthInput",class:"form-control","onUpdate:modelValue":t[8]||(t[8]=l=>s.value=l)},e.$attrs),null,16)),[[I,s.value]]):u("",!0),n.subtype=="year"?C((r(),d("input",S({key:8,type:"number",ref:"yearInput",class:"form-control","onUpdate:modelValue":t[9]||(t[9]=l=>s.value=l)},e.$attrs),null,16)),[[I,s.value]]):u("",!0),n.unit?(r(),d("div",Sn,[o("div",Cn,b(n.unit),1)])):u("",!0),n.subtype=="password"?(r(),d("div",{key:10,class:"input-group-append clickable",onClick:t[10]||(t[10]=(...l)=>s.togglePassword&&s.togglePassword(...l))},[o("div",Bn,[m(a,{"fixed-width":"",icon:i.showPassword?["far","eye"]:["far","eye-slash"]},null,8,["icon"])])])):u("",!0),n.showQuickButtons&&(n.subtype=="date"||n.subtype=="month"||n.subtype=="year")?(r(),d("div",{key:11,class:"input-group-append clickable",onClick:t[11]||(t[11]=l=>s.modify(-1))},[...$n])):u("",!0),n.showQuickButtons&&(n.subtype=="date"||n.subtype=="month"||n.subtype=="year")?(r(),d("div",{key:12,class:"input-group-append clickable",onClick:t[12]||(t[12]=l=>s.modify(1))},[...xn])):u("",!0)])]),i.showHelp?(r(),d("span",Tn,[h(e.$slots,"help",{},void 0,!0)])):u("",!0)])])}const Mn=w(pn,[["render",Vn],["__scopeId","data-v-6927d479"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextInput.vue"]]),An=Object.freeze(Object.defineProperty({__proto__:null,default:Mn},Symbol.toStringTag,{value:"Module"}));B.add(T,V);const Pn={name:"OpenwbTextareaInput",inheritAttrs:!1,props:{title:String,modelValue:{String,Object},subtype:{validator:function(e){return["text","json"].indexOf(e)!==-1},default:"text"}},emits:["update:modelValue"],data(){return{showHelp:!1,inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.debug("returning invalid 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{console.warn("parsing JSON failed: "+e),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}}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}},components:{FontAwesomeIcon:O}},Hn={class:"form-row mb-1"},Dn={class:"col-md-8"},qn={class:"form-row"},En={class:"input-group"},Ln={class:"input-group-prepend"},jn={class:"input-group-text"},Wn={key:2,class:"input-group-append"},Rn={class:"input-group-text"},Nn={class:"form-text text-muted text-right"},Fn={key:0,class:"form-row alert alert-info my-1 small"};function Un(e,t,n,c,i,s){const a=f("font-awesome-icon");return r(),d("div",Hn,[o("label",{onClick:t[0]||(t[0]=(...l)=>s.toggleHelp&&s.toggleHelp(...l)),class:"col-md-4 col-form-label"},[p(b(n.title)+" ",1),e.$slots.help?(r(),g(a,{key:0,icon:i.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(i.showHelp?"text-info":"")},null,8,["icon","class"])):u("",!0)]),o("div",Dn,[o("div",qn,[o("div",En,[o("div",Ln,[o("div",jn,[n.subtype=="text"?(r(),g(a,{key:0,"fixed-width":"",icon:["fas","keyboard"]})):u("",!0),n.subtype=="json"?(r(),g(a,{key:1,"fixed-width":"",icon:["fas","code"]})):u("",!0)])]),n.subtype==="json"?C((r(),d("textarea",S({key:0,ref:"jsonInput",class:"form-control","onUpdate:modelValue":t[1]||(t[1]=l=>s.value=l)},e.$attrs),null,16)),[[I,s.value,void 0,{lazy:!0}]]):C((r(),d("textarea",S({key:1,class:"form-control","onUpdate:modelValue":t[2]||(t[2]=l=>s.value=l)},e.$attrs),null,16)),[[I,s.value]]),e.$attrs.maxlength?(r(),d("div",Wn,[o("div",Rn,[o("small",Nn,b(s.length)+" / "+b(e.$attrs.maxlength),1)])])):u("",!0)])]),i.showHelp?(r(),d("span",Fn,[h(e.$slots,"help",{},void 0,!0)])):u("",!0)])])}const zn=w(Pn,[["render",Un],["__scopeId","data-v-3d93046b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextarea.vue"]]),Gn=Object.freeze(Object.defineProperty({__proto__:null,default:zn},Symbol.toStringTag,{value:"Module"}));const Jn={name:"OpenwbToast",emits:["dismiss","hide"],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:{validator:function(e){return["system","client","command"].indexOf(e)!==-1}},timestamp:{type:Number}},data(){return{handle:void 0,relativeTime:void 0,hidden:!1}},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 c=new Date-this.timestamp*1e3;for(var i in e)if(Math.abs(c)>e[i]){this.relativeTime=t.format(Math.round(-c/e[i]),i);break}c>10*1e3&&!this.hidden&&(this.hidden=!0,this.$emit("hide",{topic:this.topic}))}},mounted(){this.handle=window.setInterval(this.updateRelativeTime,1e3)},unmounted(){window.clearInterval(this.handle)}},G=e=>(E("data-v-c51b5764"),e=e(),L(),e),Kn=G(()=>o("strong",{class:"pr-2 mr-auto"},"OpenWB",-1)),Qn={key:0,class:"time-diff"},Yn=G(()=>o("span",{"aria-hidden":"true"},"×",-1)),Zn=[Yn],Xn={class:"toast-body"};function eo(e,t,n,c,i,s){return r(),d("div",{class:k(["toast","border-"+n.subtype]),role:"alert"},[o("div",{class:k(["toast-header","bg-"+n.subtype])},[Kn,n.timestamp?(r(),d("small",Qn,b(i.relativeTime),1)):u("",!0),o("button",{type:"button",class:"ml-2 mb-1 close","data-dismiss":"toast","aria-label":"Close",onClick:t[0]||(t[0]=(...a)=>s.dismiss&&s.dismiss(...a))},[...Zn])],2),o("div",Xn,[h(e.$slots,"default",{},void 0,!0)])],2)}const to=w(Jn,[["render",eo],["__scopeId","data-v-c51b5764"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseToast.vue"]]),so=Object.freeze(Object.defineProperty({__proto__:null,default:to},Symbol.toStringTag,{value:"Module"}));B.add(He);const no={name:"OpenwbNavBar",components:{FontAwesomeIcon:O},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)}}},A=e=>(E("data-v-e7a6d0c0"),e=e(),L(),e),oo={class:"navbar navbar-expand-lg bg-dark navbar-dark fixed-top"},ao=A(()=>o("a",{class:"navbar-brand",href:"/openWB/web/"},[o("span",null,"openWB")],-1)),io={class:"navbar-toggler mr-5",type:"button","data-toggle":"collapse","data-target":"#collapsibleNavbar",ref:"navbarButton"},lo=A(()=>o("span",{class:"navbar-toggler-icon"},null,-1)),ro=[lo],co={class:"collapse navbar-collapse navbar-nav-scroll",id:"collapsibleNavbar",ref:"collapsibleNavbar"},uo={class:"navbar-nav"},po={class:"nav-item"},mo={class:"nav-item dropdown nav-separator-after"},_o=A(()=>o("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Auswertungen ",-1)),fo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},ho={class:"nav-item dropdown"},go=A(()=>o("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Einstellungen ",-1)),bo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},vo={class:"nav-item dropdown"},wo=A(()=>o("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Ladeeinstellungen ",-1)),yo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},ko={class:"nav-item dropdown"},So=A(()=>o("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Konfiguration ",-1)),Co={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},Bo=A(()=>o("div",{class:"dropdown-divider"},null,-1)),Oo=A(()=>o("a",{href:"modules/legacy_smart_home/smarthomeconfig.php",class:"dropdown-item",target:"_blank"}," SmartHome ",-1)),$o={class:"nav-item dropdown"},Io=A(()=>o("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," System ",-1)),xo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},To={class:"nav-item nav-separator-before"},Vo={class:"nav-link",href:"https://github.com/openWB/core/wiki",target:"_blank"};function Mo(e,t,n,c,i,s){const a=f("router-link"),l=f("font-awesome-icon");return r(),d("nav",oo,[ao,o("button",io,[...ro],512),o("div",co,[o("ul",uo,[o("li",po,[m(a,{to:"/Status",class:"nav-link","active-class":"active disabled"},{default:_(()=>[p(" Status ")]),_:1})]),o("li",mo,[_o,o("div",fo,[m(a,{to:"/Logging/ChargeLog",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Ladeprotokoll ")]),_:1}),m(a,{to:"/Logging/Chart",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Diagramme ")]),_:1})])]),o("li",ho,[go,o("div",bo,[m(a,{to:"/GeneralConfig",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Allgemein ")]),_:1}),m(a,{to:"/OptionalComponents",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Optionale Hardware ")]),_:1})])]),o("li",vo,[wo,o("div",yo,[m(a,{to:"/GeneralChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Übergreifendes ")]),_:1}),m(a,{to:"/InstantChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Sofortladen ")]),_:1}),m(a,{to:"/PVChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" PV-Laden ")]),_:1}),m(a,{to:"/TimeChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Zeitladen ")]),_:1}),m(a,{to:"/ScheduledChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Zielladen ")]),_:1})])]),o("li",ko,[So,o("div",Co,[m(a,{to:"/HardwareInstallation",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Geräte und Komponenten ")]),_:1}),m(a,{to:"/LoadManagementConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Lastmanagement ")]),_:1}),m(a,{to:"/ChargePointInstallation",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Ladepunkte ")]),_:1}),m(a,{to:"/VehicleConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Fahrzeuge ")]),_:1}),Bo,Oo])]),o("li",$o,[Io,o("div",xo,[m(a,{to:"/System/InstallAssistant",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Einrichtungsassistent ")]),_:1}),m(a,{to:"/System/CloudConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" openWB Cloud ")]),_:1}),m(a,{to:"/System/MqttBridgeConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" MQTT-Brücken ")]),_:1}),m(a,{to:"/System/DebugConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Fehlersuche ")]),_:1}),m(a,{to:"/System/Support",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Support ")]),_:1}),m(a,{to:"/System/DataManagement",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Datenverwaltung ")]),_:1}),m(a,{to:"/System/SystemConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" System ")]),_:1}),m(a,{to:"/System/LegalSettings",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Rechtliches ")]),_:1})])]),o("li",To,[o("a",Vo,[p(" Wiki "),m(l,{"fixed-width":"",icon:["fas","external-link-alt"]})])])])],512)])}const Ao=w(no,[["render",Mo],["__scopeId","data-v-e7a6d0c0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageNavbar.vue"]]);const Po={name:"OpenwbPageFooter"},Ho={id:"footer",class:"footer bg-dark text-light font-small"},Do={class:"container text-center"};function qo(e,t,n,c,i,s){return r(),d("footer",Ho,[o("div",Do,[o("small",null," Sie befinden sich hier: Einstellungen / "+b(e.$route.meta.heading),1)])])}const Eo=w(Po,[["render",qo],["__scopeId","data-v-3c9a239a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageFooter.vue"]]);B.add(De);const Lo={name:"OpenwbDonationBanner",components:{FontAwesomeIcon:O}},jo={class:"mt-3 alert alert-dark text-center"},Wo=o("br",null,null,-1),Ro=o("br",null,null,-1),No={action:"https://www.paypal.com/cgi-bin/webscr",method:"post",target:"_blank"},Fo=o("input",{type:"hidden",name:"cmd",value:"_s-xclick"},null,-1),Uo=o("input",{type:"hidden",name:"hosted_button_id",value:"2K8C4Y2JTGH7U"},null,-1),zo={type:"submit",class:"btn btn-primary"};function Go(e,t,n,c,i,s){const a=f("font-awesome-icon");return r(),d("div",jo,[p(" Open Source made with love!"),Wo,p(" Jede Spende hilft die Weiterentwicklung von openWB voranzutreiben"),Ro,o("form",No,[Fo,Uo,o("button",zo,[p(" Spenden "),m(a,{icon:["fab","paypal"]})])])])}const Jo=w(Lo,[["render",Go],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageDonationBanner.vue"]]),Ko={name:"ComponentState",data(){return{mqttTopicsToSubscribe:[]}},emits:["reset","defaults","save"],computed:{weekdays(){return["Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag"]},chargeModes(){return["instant_charging","pv_charging","scheduled_charging","time_charging","standby","stop"]}},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(2))},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 c=Object.keys(this.$store.state.mqtt).filter(i=>i.match(n));return c.forEach((i,s,a)=>{a[s]=parseInt(i.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,""))}),c},getWildcardTopics(e,t=!1){let n=e;return t||(n="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(this.$store.state.mqtt).filter(c=>c.match(n)).reduce((c,i)=>({...c,[i]:this.$store.state.mqtt[i]}),{})},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,c=1){if(!(e==null||isNaN(e)))return(e*c).toLocaleString(void 0,{minimumFractionDigits:t,maximumFractionDigits:n})},formatNumberTopic(e,t=0,n=t,c=1){return this.$store.state.mqtt[e]?this.formatNumber(this.$store.state.mqtt[e],t,n,c):"-"},formatPhaseArrayNumberTopic(e,t=0,n=t,c=1){return this.$store.state.mqtt[e]?this.$store.state.mqtt[e].map(i=>this.formatNumber(i,t,n,c)).join(" / "):"- / - / -"},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"standby":return"Standby";case"stop":return"Stop";default:return console.warn("unknown charge mode:",e),e}}},mounted(){this.mqttTopicsToSubscribe.length>0&&this.$root.doSubscribe(this.mqttTopicsToSubscribe)},unmounted(){this.mqttTopicsToSubscribe.length>0&&this.$root.doUnsubscribe(this.mqttTopicsToSubscribe)}},J=w(Ko,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/mixins/ComponentState.vue"]]);B.add(qe,Ee);const Qo={name:"OpenwbPageMessages",mixins:[J],components:{FontAwesomeIcon:O,FontAwesomeLayers:Le,FontAwesomeLayersText:je},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,c]of Object.entries(e))t.push({topic:n,...c});return t},clientMessages(){let e=this.getWildcardTopics("openWB/command/"+this.$root.mqttClientId+"/messages/+");var t=[];for(const[n,c]of Object.entries(e))t.push({topic:n,...c});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)}}},Yo=["innerHTML"];function Zo(e,t,n,c,i,s){const a=f("font-awesome-icon"),l=f("font-awesome-layers-text"),v=f("font-awesome-layers"),$=f("openwb-base-alert"),M=f("openwb-base-click-button"),P=f("openwb-base-toast");return r(),d(x,null,[(r(),g(U,{to:"body"},[o("div",{id:"message-indicator",class:k(["text-light mt-1 p-2 mr-1 clickable",i.showAllMessages?"active":""]),onClick:t[0]||(t[0]=(...H)=>s.toggleAllMessages&&s.toggleAllMessages(...H))},[m(v,{"full-width":"",style:{"font-size":"175%"}},{default:_(()=>[m(a,{"fixed-width":"",icon:i.showAllMessages?["fas","bell"]:["far","bell"],class:k(s.messageIndicatorClass)},null,8,["icon","class"]),s.messages.length>0?(r(),g(l,{key:0,counter:"",value:s.messages.length,position:"top-right",class:"message-counter bg-light text-dark"},null,8,["value"])):u("",!0)]),_:1})],2)])),s.recentMessages.length>0||i.showAllMessages?(r(),d("div",{key:0,class:k(["openwb-toast-container",i.showAllMessages?"full-height":""])},[s.recentMessages.length==0?(r(),g($,{key:0,subtype:"info"},{default:_(()=>[p(" Keine Nachrichten vorhanden. ")]),_:1})):i.showAllMessages?(r(),g(M,{key:1,class:"btn-sm btn-secondary mb-1",onButtonClicked:s.dismissAllMessages},{default:_(()=>[p(" Alle Nachrichten löschen ")]),_:1},8,["onButtonClicked"])):u("",!0),(r(!0),d(x,null,D(s.recentMessages,H=>(r(),g(P,{key:H.topic,topic:H.topic,source:H.source,subtype:H.type,timestamp:H.timestamp,onDismiss:s.dismissMessage,onHide:s.hideMessage},{default:_(()=>[o("span",{innerHTML:H.message},null,8,Yo)]),_:2},1032,["topic","source","subtype","timestamp","onDismiss","onHide"]))),128))],2)):u("",!0)],64)}const Xo=w(Qo,[["render",Zo],["__scopeId","data-v-2c25f0d0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageMessages.vue"]]),ea={name:"OpenwbPageBlocker",mixins:[J],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)}}},ta={class:"openwb-blocker"},sa={key:0},na={key:1},oa={key:2},aa={key:3};function ia(e,t,n,c,i,s){const a=f("openwb-base-modal-dialog");return r(),d("div",ta,[m(a,{show:s.showModalBlocker,title:s.title,subtype:"dark",preventClose:!0,buttons:s.myButtons,onModalResult:t[0]||(t[0]=l=>s.handleModalResult(l))},{default:_(()=>[s.bootInProgress?(r(),d("p",sa," Der Systemstart ist noch nicht abgeschlossen. ")):u("",!0),s.updateInProgress?(r(),d("p",na," Es wird eine Systemaktualisierung ausgeführt. ")):u("",!0),!(s.bootInProgress||s.updateInProgress)&&s.reloadRequired?(r(),d("p",oa," Bitte die Seite neu laden. ")):(r(),d("p",aa,"Bitte warten..."))]),_:1},8,["show","title","buttons"])])}const la=w(ea,[["render",ia],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageBlocker.vue"]]);const ra={name:"OpenwbSettingsApp",components:{NavBar:Ao,PageFooter:Eo,DonationBanner:Jo,Messages:Xo,Blocker:la},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{return}},topicList(){return Object.keys(this.$store.state.mqtt)}},methods:{async saveValues(e=void 0){function t(c){return new Promise(i=>setTimeout(i,c))}console.debug("saving values..."),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(c=>{n[c]=this.$store.state.mqtt[c]}):console.error("expected array, got ",typeof e);for(const[c,i]of Object.entries(n)){let s=c.replace("openWB/","openWB/set/");console.debug("saving data:",s,i),this.doPublish(s,i),await t(100)}console.debug("done saving data"),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){this.doPublish("openWB/set/command/"+this.client.options.clientId+"/todo",e,!1)},createConnection(){const{protocol:e,host:t,port:n,endpoint:c,...i}=this.connection,s=`${e}://${t}:${n}${c}`;console.debug("connecting to broker:",s);try{this.client=ne.connect(s,i)}catch(a){console.error("mqtt.connect error",a)}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",a=>{console.error("Connection failed",a)}),this.client.on("message",(a,l)=>{if(l.toString().length>0){let v;try{v=JSON.parse(l.toString())}catch{console.debug("Json parsing failed, fallback to string: ",a),v=l.toString()}this.$store.commit("updateTopic",{topic:a,payload:v})}else this.$store.commit("removeTopic",a)})},doSubscribe(e){console.debug("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){console.debug("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,c=2){let i={qos:c,retain:n};this.client.publish(e,JSON.stringify(t),i,s=>{s&&console.error("Publish error",s)})},postClientMessage(e,t="secondary"){console.debug("postMessage:",e,t);const n=Date.now(),c="openWB/command/"+this.mqttClientId+"/messages/"+n;this.$store.commit({type:"addTopic",topic:c,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(c=>c.match(n)).reduce((c,i)=>({...c,[i]:this.$store.state.mqtt[i]}),{})}},created(){this.createConnection()}},da={role:"main",class:"container"},ca={id:"content"};function ua(e,t,n,c,i,s){const a=f("nav-bar"),l=f("router-view"),v=f("donation-banner"),$=f("page-footer"),M=f("messages"),P=f("blocker");return r(),d(x,null,[o("header",null,[m(a)]),o("div",da,[o("div",ca,[o("h1",null,b(e.$route.meta.heading),1),m(l,{onSave:s.saveValues,onReset:s.resetValues,onDefaults:s.setDefaultValues,onSendCommand:s.sendCommand},null,8,["onSave","onReset","onDefaults","onSendCommand"])]),m(v)]),m($),m(M),m(P)],64)}const pa=w(ra,[["render",ua],["__file","/opt/openWB-dev/openwb-ui-settings/src/App.vue"]]),ma="modulepreload",_a=function(e){return"/openWB/web/settings/"+e},F={},y=function(t,n,c){if(!n||n.length===0)return t();const i=document.getElementsByTagName("link");return Promise.all(n.map(s=>{if(s=_a(s),s in F)return;F[s]=!0;const a=s.endsWith(".css"),l=a?'[rel="stylesheet"]':"";if(!!c)for(let M=i.length-1;M>=0;M--){const P=i[M];if(P.href===s&&(!a||P.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${s}"]${l}`))return;const $=document.createElement("link");if($.rel=a?"stylesheet":ma,a||($.as="script",$.crossOrigin=""),$.href=s,document.head.appendChild($),a)return new Promise((M,P)=>{$.addEventListener("load",M),$.addEventListener("error",()=>P(new Error(`Unable to preload CSS for ${s}`)))})})).then(()=>t()).catch(s=>{const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=s,window.dispatchEvent(a),!a.defaultPrevented)throw s})};let K={mqtt:{},mqttSubscriptions:{},local:{reloadRequired:!1,savingData:!1},text:{rfidWiki:'Bitte auch hiervon abhängige Einstellungen beachten. Eine Übersicht gibt es im Wiki.'}};K.examples={text1:"Text...",text2:"mail@domain.com",text3:"openwb.local",text4:"http://www.openwb.de",text5:"Benutzername",text6:"12:34",text7:"2021-10-31",number1:5,number2:10,number3:28e-5,password1:"GeHeiM!",textarea1:"Langer Text...",range1:6,range2:10,select1:1,select2:"three",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"]};const q=oe({state:K,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=(c,i,s)=>i.split(".").reduce((a,l,v)=>a[l]=i.split(".").length===++v?s:a[l]||{},c);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,c;n=setTimeout(()=>{clearInterval(c),t(!1)},5e3),c=setInterval(()=>{e.mqtt["openWB/system/usage_terms_acknowledged"]!==void 0&&(clearTimeout(n),clearInterval(c),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,c;n=setTimeout(()=>{clearInterval(c),t(!1)},5e3),c=setInterval(()=>{e.mqtt["openWB/system/installAssistantDone"]!==void 0&&(clearTimeout(n),clearInterval(c),t(e.mqtt["openWB/system/installAssistantDone"]))},100)}})},subscriptionCount:e=>t=>e.mqttSubscriptions[t]||0}}),Q=[{path:"/",redirect:"/GeneralConfig"},{path:"/Status",name:"Status",meta:{heading:"Status"},component:()=>y(()=>import("./Status-d562c100.js"),["assets/Status-d562c100.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-chartjs-35992f4a.js","assets/vendor-luxon-8ddd27a0.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/Status-6557de7c.css"])},{path:"/Logging/ChargeLog",name:"ChargeLog",meta:{heading:"Auswertungen - Ladeprotokoll"},component:()=>y(()=>import("./ChargeLog-582cb159.js"),["assets/ChargeLog-582cb159.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/ChargeLog-1fb3fa68.css"])},{path:"/Logging/Chart/:chartRange?/:initialDate?",name:"DailyChart",meta:{heading:"Auswertungen - Diagramme"},component:()=>y(()=>import("./Chart-3fbd17e3.js"),["assets/Chart-3fbd17e3.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-chartjs-35992f4a.js","assets/vendor-luxon-8ddd27a0.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/Chart-e20451b4.css"])},{path:"/GeneralConfig",name:"GeneralConfig",meta:{heading:"Einstellungen - Allgemein"},component:()=>y(()=>import("./GeneralConfig-9cb055aa.js"),["assets/GeneralConfig-9cb055aa.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/dynamic-import-helper-be004503.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js"])},{path:"/OptionalComponents",name:"OptionalComponents",meta:{heading:"Einstellungen - Optionale Hardware"},component:()=>y(()=>import("./OptionalComponents-5a24a6aa.js"),["assets/OptionalComponents-5a24a6aa.js","assets/dynamic-import-helper-be004503.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js"])},{path:"/GeneralChargeConfig",name:"GeneralChargeConfig",meta:{heading:"Ladeeinstellungen - Übergreifendes"},component:()=>y(()=>import("./GeneralChargeConfig-7e106509.js"),["assets/GeneralChargeConfig-7e106509.js","assets/dynamic-import-helper-be004503.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js"])},{path:"/InstantChargeConfig",name:"InstantChargeConfig",meta:{heading:"Ladeeinstellungen - Sofortladen"},component:()=>y(()=>import("./InstantChargeConfig-252a508f.js"),["assets/InstantChargeConfig-252a508f.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js"])},{path:"/PVChargeConfig",name:"PVChargeConfig",meta:{heading:"Ladeeinstellungen - PV-Laden"},component:()=>y(()=>import("./PVChargeConfig-260d31b6.js"),["assets/PVChargeConfig-260d31b6.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js"])},{path:"/TimeChargeConfig",name:"TimeChargeConfig",meta:{heading:"Ladeeinstellungen - Zeitladen"},component:()=>y(()=>import("./TimeChargeConfig-7d17c070.js"),["assets/TimeChargeConfig-7d17c070.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js"])},{path:"/ScheduledChargeConfig",name:"ScheduledChargeConfig",meta:{heading:"Ladeeinstellungen - Zielladen"},component:()=>y(()=>import("./ScheduledChargeConfig-b2a3d789.js"),["assets/ScheduledChargeConfig-b2a3d789.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js"])},{path:"/HardwareInstallation",name:"HardwareInstallation",meta:{heading:"Konfiguration - Geräte und Komponenten"},component:()=>y(()=>import("./HardwareInstallation-b6072dfb.js"),["assets/HardwareInstallation-b6072dfb.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/dynamic-import-helper-be004503.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/HardwareInstallation-1ee9693f.css"])},{path:"/LoadManagementConfiguration",name:"LoadManagementConfiguration",meta:{heading:"Konfiguration - Lastmanagement"},component:()=>y(()=>import("./LoadManagementConfig-ad848400.js"),["assets/LoadManagementConfig-ad848400.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/OpenwbSortableList-641f6bb4.js","assets/OpenwbSortableList-7ba533e4.css","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js"])},{path:"/ChargePointInstallation",name:"ChargePointInstallation",meta:{heading:"Konfiguration - Ladepunkte"},component:()=>y(()=>import("./ChargePointInstallation-6bdc7310.js"),["assets/ChargePointInstallation-6bdc7310.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/dynamic-import-helper-be004503.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/ChargePointInstallation-ed6a5c7e.css"])},{path:"/VehicleConfiguration/:section?/:section_index?/:section_part?/:action?",name:"VehicleConfiguration",meta:{heading:"Konfiguration - Fahrzeuge"},component:()=>y(()=>import("./VehicleConfig-c67651ce.js"),["assets/VehicleConfig-c67651ce.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/dynamic-import-helper-be004503.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/VehicleConfig-4aeda6ca.css"])},{path:"/System/CloudConfiguration",name:"CloudConfig",meta:{heading:"System - openWB Cloud"},component:()=>y(()=>import("./CloudConfig-2dc63c4a.js"),["assets/CloudConfig-2dc63c4a.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js"])},{path:"/System/MqttBridgeConfiguration",name:"MqttBridgeConfig",meta:{heading:"System - MQTT-Brücken"},component:()=>y(()=>import("./MqttBridgeConfig-a79c288e.js"),["assets/MqttBridgeConfig-a79c288e.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/MqttBridgeConfig-3471079a.css"])},{path:"/System/DebugConfiguration",name:"Debugging",meta:{heading:"System - Fehlersuche"},component:()=>y(()=>import("./DebugConfig-c12bb15b.js"),["assets/DebugConfig-c12bb15b.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/DebugConfig-e21ab72c.css"])},{path:"/System/Support",name:"Support",meta:{heading:"System - Support"},component:()=>y(()=>import("./Support-56e00a88.js"),["assets/Support-56e00a88.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js"])},{path:"/System/LegalSettings",name:"LegalSettings",meta:{heading:"System - Rechtliches"},component:()=>y(()=>import("./LegalSettings-f66efb7a.js"),["assets/LegalSettings-f66efb7a.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js"])},{path:"/System/SystemConfiguration",name:"SystemConfig",meta:{heading:"System - System"},component:()=>y(()=>import("./System-5f853f95.js"),["assets/System-5f853f95.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/System-0f1d217b.css"])},{path:"/System/DataManagement",name:"DataManagement",meta:{heading:"System - Datenverwaltung"},component:()=>y(()=>import("./DataManagement-8e5bac9a.js"),["assets/DataManagement-8e5bac9a.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/dynamic-import-helper-be004503.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js"])},{path:"/System/InstallAssistant",name:"InstallAssistant",meta:{heading:"System - Einrichtungsassistent"},component:()=>y(()=>import("./InstallAssistant-3b33de2f.js"),["assets/InstallAssistant-3b33de2f.js","assets/dynamic-import-helper-be004503.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js"])}];Q.push({path:"/TestingStore",name:"VUEX Store",meta:{heading:"Beispiele - VUEX Store"},component:()=>y(()=>import("./TestingStore-5dd38b00.js"),["assets/TestingStore-5dd38b00.js","assets/OpenwbSortableList-641f6bb4.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/OpenwbSortableList-7ba533e4.css","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js"])});const W=ae({history:ie(),routes:Q});W.beforeEach(async e=>{if(await q.getters.usageTermsAcknowledged){if(!await q.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=le(pa);R.use(q).use(W).use(We,Re);const fa=Object.assign({"./components/OpenwbBaseAlert.vue":ze,"./components/OpenwbBaseArrayInput.vue":it,"./components/OpenwbBaseAvatar.vue":ut,"./components/OpenwbBaseButtonGroupInput.vue":yt,"./components/OpenwbBaseButtonInput.vue":xt,"./components/OpenwbBaseCard.vue":Lt,"./components/OpenwbBaseCheckboxInput.vue":Gt,"./components/OpenwbBaseClickButton.vue":Yt,"./components/OpenwbBaseCopyToClipboard.vue":ss,"./components/OpenwbBaseHeading.vue":ds,"./components/OpenwbBaseModalDialog.vue":vs,"./components/OpenwbBaseNumberInput.vue":Ms,"./components/OpenwbBaseRangeInput.vue":Fs,"./components/OpenwbBaseSelectInput.vue":sn,"./components/OpenwbBaseSubmitButtons.vue":un,"./components/OpenwbBaseTextInput.vue":An,"./components/OpenwbBaseTextarea.vue":Gn,"./components/OpenwbBaseToast.vue":so});Object.entries(fa).forEach(([e,t])=>{const n=re(de(e.split("/").pop().replace(/\.\w+$/,"")));R.component(n,t.default)});R.mount("#app");export{J as C,y as _}; +import{_ as w,k as r,l as d,m as h,q as k,u as f,x as o,y as p,z as b,A as g,B as u,D as m,E as C,F as I,G as S,I as Y,J as x,K as D,L as Z,M as X,N as _,O as ee,P as te,T as U,Q as se,R as N,S as E,U as L,V as ne,W as oe,X as ae,Y as ie,Z as le,$ as re,a0 as de}from"./vendor-f2b8aa6f.js";import{l as B,f as T,a as V,b as ce,c as ue,d as pe,e as me,F as O,g as j,h as _e,i as fe,j as he,k as ge,m as be,n as ve,o as we,p as ye,q as ke,r as Se,s as Ce,t as Be,u as Oe,v as $e,w as Ie,x as xe,y as Te,z as Ve,A as Me,B as Ae,C as Pe,D as He,E as De,G as qe,H as Ee,I as Le,J as je}from"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import{p as We,a as Re}from"./vendor-axios-65ecee4b.js";import"./vendor-sortablejs-2f1828d0.js";import"./vendor-jquery-d3cb8fad.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))c(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const a of s.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&c(a)}).observe(document,{childList:!0,subtree:!0});function n(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function c(i){if(i.ep)return;i.ep=!0;const s=n(i);fetch(i.href,s)}})();const Ne={name:"OpenwbAlert",props:{subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}}};function Fe(e,t,n,c,i,s){return r(),d("div",{class:k(["card-text alert","alert-"+n.subtype])},[h(e.$slots,"default")],2)}const Ue=w(Ne,[["render",Fe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAlert.vue"]]),ze=Object.freeze(Object.defineProperty({__proto__:null,default:Ue},Symbol.toStringTag,{value:"Module"}));B.add(T,V,ce,ue,pe,me);const Ge={name:"OpenwbArrayInput",inheritAttrs:!1,props:{title:String,modelValue:{type:Array,default:()=>[]},noElementsMessage:{type:String,default:()=>"Keine Elemente zugeordnet."}},emits:["update:modelValue"],data(){return{newTag:"",showHelp:!1}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},newTagValid:{get(){return this.newTag.length>0&&this.value.indexOf(this.newTag)==-1}}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0},addTag(){if(this.newTagValid){let e=this.value;e.push(this.newTag),e.sort(),this.value=e,this.newTag=""}this.$refs.tagInput.focus()},removeTag(e){let t=this.value;t.splice(e,1),this.value=t}},components:{FontAwesomeIcon:O}},Je={class:"form-row mb-1"},Ke={class:"col-md-8"},Qe={class:"form-row"},Ye={class:"input-group"},Ze={class:"input-group-prepend"},Xe={class:"input-group-text"},et={class:"input-group-append"},tt={class:"form-row tagList mt-1"},st={key:0,class:"noTag"},nt={key:0,class:"form-row alert alert-info my-1 small"};function ot(e,t,n,c,i,s){const a=f("font-awesome-icon");return r(),d("div",Je,[o("label",{onClick:t[0]||(t[0]=(...l)=>s.toggleHelp&&s.toggleHelp(...l)),class:"col-md-4 col-form-label"},[p(b(n.title)+" ",1),e.$slots.help?(r(),g(a,{key:0,icon:i.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(i.showHelp?"text-info":"")},null,8,["icon","class"])):u("",!0)]),o("div",Ke,[o("div",Qe,[o("div",Ye,[o("div",Ze,[o("div",Xe,[h(e.$slots,"input-prefix",{},()=>[m(a,{"fixed-width":"",icon:["fas","tag"]})],!0)])]),C(o("input",S({ref:"tagInput",type:"text",class:"form-control","onUpdate:modelValue":t[1]||(t[1]=l=>i.newTag=l)},e.$attrs,{onKeyup:t[2]||(t[2]=Y((...l)=>s.addTag&&s.addTag(...l),["enter"]))}),null,16),[[I,i.newTag]]),o("div",et,[o("div",{class:k(["input-group-text",s.newTagValid?"bg-success clickable":"notClickable"]),onClick:t[3]||(t[3]=(...l)=>s.addTag&&s.addTag(...l))},[h(e.$slots,"input-add",{},()=>[m(a,{"fixed-width":"",icon:["fas","plus"]})],!0)],2)])])]),o("div",tt,[s.value.length==0?(r(),d("span",st,[m(a,{icon:["fas","info-circle"]}),p(" "+b(n.noElementsMessage),1)])):u("",!0),(r(!0),d(x,null,D(s.value,(l,v)=>(r(),d("span",{class:"tag",key:v},[h(e.$slots,"element-prefix",{},()=>[m(a,{icon:["fas","tag"]})],!0),p(" "+b(l)+" ",1),m(a,{class:"clickable remove-element",icon:["fas","times-circle"],onClick:$=>s.removeTag(v)},null,8,["onClick"])]))),128))]),i.showHelp?(r(),d("span",nt,[h(e.$slots,"help",{},void 0,!0)])):u("",!0)])])}const at=w(Ge,[["render",ot],["__scopeId","data-v-9de93d37"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseArrayInput.vue"]]),it=Object.freeze(Object.defineProperty({__proto__:null,default:at},Symbol.toStringTag,{value:"Module"}));const lt={name:"OpenwbAvatar"},rt={class:"avatar"};function dt(e,t,n,c,i,s){return r(),d("div",rt,[h(e.$slots,"default",{},()=>[p("?")],!0)])}const ct=w(lt,[["render",dt],["__scopeId","data-v-06082a1a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAvatar.vue"]]),ut=Object.freeze(Object.defineProperty({__proto__:null,default:ct},Symbol.toStringTag,{value:"Module"}));B.add(T,V,j);const pt={name:"OpenwbButtonGroupInput",inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Number,Boolean]},buttons:Object},emits:["update:modelValue"],data(){return{showHelp:!1}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}},components:{FontAwesomeIcon:O}},mt={class:"form-row mb-1"},_t={class:"col-md-8"},ft={class:"form-row"},ht={class:"btn-group btn-block btn-group-toggle"},gt=["value"],bt={key:0,class:"form-row alert alert-info my-1 small"};function vt(e,t,n,c,i,s){const a=f("font-awesome-icon");return r(),d("div",mt,[o("label",{onClick:t[0]||(t[0]=(...l)=>s.toggleHelp&&s.toggleHelp(...l)),class:"col-md-4 col-form-label"},[h(e.$slots,"default",{},()=>[p(b(n.title),1)]),e.$slots.help?(r(),g(a,{key:0,"fixed-width":"",icon:i.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(i.showHelp?"text-info":"")},null,8,["icon","class"])):u("",!0)]),o("div",_t,[o("div",ft,[o("div",ht,[(r(!0),d(x,null,D(n.buttons,l=>(r(),d("label",{key:l.value,class:k(["btn",[s.value==l.buttonValue?"active":"",l.class?l.class:"btn-outline-info"]])},[C(o("input",S({type:"radio","onUpdate:modelValue":t[1]||(t[1]=v=>s.value=v),value:l.buttonValue,ref_for:!0},e.$attrs),null,16,gt),[[Z,s.value]]),h(e.$slots,"label-"+l.buttonValue,{},()=>[p(b(l.text),1)]),m(a,{icon:["fas","check"],style:X([s.value==l.buttonValue?"visibility: visible":"visibility: hidden"])},null,8,["style"])],2))),128))])]),i.showHelp?(r(),d("span",bt,[h(e.$slots,"help")])):u("",!0)])])}const wt=w(pt,[["render",vt],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonGroupInput.vue"]]),yt=Object.freeze(Object.defineProperty({__proto__:null,default:wt},Symbol.toStringTag,{value:"Module"}));B.add(T,V);const kt={name:"OpenwbButtonInput",inheritAttrs:!1,props:{title:String,buttonText:String,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"}},data(){return{showHelp:!1}},emits:["buttonClicked"],methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0},handleClick(e){this.$emit("buttonClicked",e)}},components:{FontAwesomeIcon:O}},St={class:"form-row mb-1"},Ct={class:"col-md-8"},Bt={class:"form-row"},Ot={key:0,class:"form-row alert alert-info my-1 small"};function $t(e,t,n,c,i,s){const a=f("font-awesome-icon"),l=f("openwb-base-click-button");return r(),d("div",St,[o("label",{onClick:t[0]||(t[0]=(...v)=>s.toggleHelp&&s.toggleHelp(...v)),class:"col-md-4 col-form-label"},[p(b(n.title)+" ",1),e.$slots.help?(r(),g(a,{key:0,icon:i.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(i.showHelp?"text-info":"")},null,8,["icon","class"])):u("",!0)]),o("div",Ct,[o("div",Bt,[m(l,S({class:(n.disabled?"btn-outline-":"btn-")+n.subtype,disabled:n.disabled},e.$attrs,{onButtonClicked:s.handleClick}),{default:_(()=>[h(e.$slots,"default",{},()=>[p(b(n.buttonText),1)])]),_:3},16,["class","disabled","onButtonClicked"])]),i.showHelp?(r(),d("span",Ot,[h(e.$slots,"help")])):u("",!0)])])}const It=w(kt,[["render",$t],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonInput.vue"]]),xt=Object.freeze(Object.defineProperty({__proto__:null,default:It},Symbol.toStringTag,{value:"Module"}));B.add(_e,fe);const Tt={name:"OpenwbCard",inheritAttrs:!1,components:{FontAwesomeIcon:O},props:{title:{type:String,default:"# no title set #"},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark","pink"].indexOf(e)!==-1},default:"secondary"},collapsible:{type:Boolean,default:!1},collapsed:{type:Boolean,default:!1}},data(){return{isCollapsed:this.collapsible&&this.collapsed}},methods:{toggleBody(){this.collapsible===!0&&(this.isCollapsed=!this.isCollapsed)}}},Vt={class:"form-group mb-0"},Mt={class:"form-row vaRow mb-0 py-2"},At={class:"col"},Pt={class:"card-actions ml-4"},Ht={key:0,class:"card-actions mr-4"},Dt={key:1,class:"card-footer"};function qt(e,t,n,c,i,s){const a=f("font-awesome-icon");return r(),d("div",{class:k(["card","border-"+n.subtype])},[o("div",{class:k(["card-header py-1","bg-"+n.subtype]),onClick:t[0]||(t[0]=(...l)=>s.toggleBody&&s.toggleBody(...l))},[o("div",Vt,[o("div",Mt,[o("div",At,[h(e.$slots,"header",{collapsed:i.isCollapsed},()=>[p(b(n.title),1)])])])]),o("span",Pt,[e.$slots.actions?(r(),d("span",Ht,[h(e.$slots,"actions",{collapsed:i.isCollapsed})])):u("",!0),n.collapsible?(r(),g(a,{key:1,"fixed-width":"",icon:i.isCollapsed?["fas","chevron-right"]:["fas","chevron-down"]},null,8,["icon"])):u("",!0)])],2),i.isCollapsed===!1?(r(),d("div",S({key:0,class:"card-body"},e.$attrs),[h(e.$slots,"default")],16)):u("",!0),e.$slots.footer&&i.isCollapsed===!1?(r(),d("div",Dt,[h(e.$slots,"footer")])):u("",!0)],2)}const Et=w(Tt,[["render",qt],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCard.vue"]]),Lt=Object.freeze(Object.defineProperty({__proto__:null,default:Et},Symbol.toStringTag,{value:"Module"}));B.add(T,V);const jt={name:"OpenwbCheckboxInput",inheritAttrs:!1,props:{title:String,modelValue:{type:Boolean}},emits:["update:modelValue"],data(){return{showHelp:!1}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}},components:{FontAwesomeIcon:O}},Wt={class:"form-row mb-1"},Rt={class:"col-md-8"},Nt={class:"form-row"},Ft={key:0,class:"form-row alert alert-info my-1 small"};function Ut(e,t,n,c,i,s){const a=f("font-awesome-icon");return r(),d("div",Wt,[o("label",{onClick:t[0]||(t[0]=(...l)=>s.toggleHelp&&s.toggleHelp(...l)),class:"col-md-4 col-form-label"},[p(b(n.title)+" ",1),e.$slots.help?(r(),g(a,{key:0,icon:i.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(i.showHelp?"text-info":"")},null,8,["icon","class"])):u("",!0)]),o("div",Rt,[o("div",Nt,[C(o("input",S({class:"form-control",type:"checkbox","onUpdate:modelValue":t[1]||(t[1]=l=>s.value=l)},e.$attrs),null,16),[[ee,s.value]])]),i.showHelp?(r(),d("span",Ft,[h(e.$slots,"help")])):u("",!0)])])}const zt=w(jt,[["render",Ut],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCheckboxInput.vue"]]),Gt=Object.freeze(Object.defineProperty({__proto__:null,default:zt},Symbol.toStringTag,{value:"Module"}));const Jt={name:"OpenwbClickButton",props:{title:String},emits:["buttonClicked"],methods:{click(e){this.$emit("buttonClicked",e)}}};function Kt(e,t,n,c,i,s){return r(),d("button",{type:"button",class:"btn btn-block",onClick:t[0]||(t[0]=te((...a)=>s.click&&s.click(...a),["prevent"]))},[h(e.$slots,"default",{},()=>[p(b(n.title),1)],!0)])}const Qt=w(Jt,[["render",Kt],["__scopeId","data-v-2e9c095b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseClickButton.vue"]]),Yt=Object.freeze(Object.defineProperty({__proto__:null,default:Qt},Symbol.toStringTag,{value:"Module"}));B.add(he,ge);const Zt={name:"OpenwbCopyToClipboard",components:{FontAwesomeIcon:O},props:{tooltip:{type:String,default:"Wert kopieren"}},data(){return{clipboardApiAvailable:navigator.clipboard!=null,isCopied:!1}},methods:{click(){if(console.debug(this.$refs["slot-wrapper"].innerText),this.clipboardApiAvailable)navigator.clipboard.writeText(this.$refs["slot-wrapper"].innerText).then(()=>{this.isCopied=!0},()=>{console.error("copy to clipboard failed")});else{if(console.debug("clipboard api not supported/enabled, fallback to select"),window.getSelection){console.debug("using 'window.getSelection'");const e=window.getSelection(),t=document.createRange();t.selectNodeContents(this.$refs["slot-wrapper"]),e.removeAllRanges(),e.addRange(t);return}if(document.body.createTextRange){console.debug("using 'document.body.createTextRange'");const e=document.body.createTextRange();e.moveToElementText(this.$refs["slot-wrapper"]),e.select()}else console.warn("could not select text, unsupported browser")}}}},Xt=["title"];function es(e,t,n,c,i,s){const a=f("font-awesome-icon");return r(),d("span",{ref:"slot-wrapper",title:n.tooltip,class:"copy-me",onClick:t[0]||(t[0]=(...l)=>s.click&&s.click(...l))},[h(e.$slots,"default",{},void 0,!0),m(a,{"fixed-width":"",icon:i.isCopied?["fas","clipboard-check"]:["fas","clipboard"]},null,8,["icon"])],8,Xt)}const ts=w(Zt,[["render",es],["__scopeId","data-v-81826ebe"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCopyToClipboard.vue"]]),ss=Object.freeze(Object.defineProperty({__proto__:null,default:ts},Symbol.toStringTag,{value:"Module"}));B.add(T,V,j);const ns={name:"OpenwbHeading",inheritAttrs:!1,components:{FontAwesomeIcon:O},data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},os={key:0,class:"actions"},as={class:""},is={key:0,class:"form-row alert alert-info small"};function ls(e,t,n,c,i,s){const a=f("font-awesome-icon");return r(),d(x,null,[o("div",S({class:"card-text card-text-heading"},e.$attrs),[o("div",{class:"heading-text",onClick:t[0]||(t[0]=(...l)=>s.toggleHelp&&s.toggleHelp(...l))},[h(e.$slots,"default",{},void 0,!0),e.$slots.help?(r(),g(a,{key:0,icon:i.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(i.showHelp?"text-info":"")},null,8,["icon","class"])):u("",!0)]),e.$slots.actions?(r(),d("span",os,[h(e.$slots,"actions",{},void 0,!0)])):u("",!0)],16),o("div",as,[i.showHelp?(r(),d("span",is,[h(e.$slots,"help",{},void 0,!0)])):u("",!0)])],64)}const rs=w(ns,[["render",ls],["__scopeId","data-v-cbe4e96e"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseHeading.vue"]]),ds=Object.freeze(Object.defineProperty({__proto__:null,default:rs},Symbol.toStringTag,{value:"Module"})),cs={name:"OpenwbModalDialog",emits:["modal-result"],props:{title:String,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}},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)}}},us=o("div",{class:"modal-backdrop fade show"},null,-1),ps={class:"modal-dialog modal-dialog-centered modal-dialog-scrollable",role:"document"},ms={class:"modal-content"},_s={class:"modal-title"},fs={class:"modal-body"},hs=["data-event"];function gs(e,t,n,c,i,s){return n.show?(r(),g(U,{key:0,to:"body"},[us,o("div",{class:"modal fade d-block show",role:"dialog",onClick:t[2]||(t[2]=(...a)=>s.handleClick&&s.handleClick(...a))},[o("div",ps,[o("div",ms,[o("div",{class:k(["modal-header","bg-"+n.subtype])},[o("h4",_s,b(n.title),1),n.preventClose?u("",!0):(r(),d("button",{key:0,type:"button",class:"close",onClick:t[0]||(t[0]=(...a)=>s.handleClick&&s.handleClick(...a))}," × "))],2),o("div",fs,[h(e.$slots,"default",{},()=>[p("# Body #")])]),s.myButtons.length>0?(r(),d("div",{key:0,class:k(["modal-footer d-flex","justify-content-"+n.footerAlignment])},[(r(!0),d(x,null,D(s.myButtons,a=>(r(),d("button",{key:a.text,type:"button",class:k(["btn",a.subtype?"btn-"+a.subtype:"btn-secondary"]),"data-dismiss":"modal","data-event":a.event?a.event:"close",onClick:t[1]||(t[1]=(...l)=>s.handleClick&&s.handleClick(...l))},b(a.text),11,hs))),128))],2)):u("",!0)])])])])):u("",!0)}const bs=w(cs,[["render",gs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseModalDialog.vue"]]),vs=Object.freeze(Object.defineProperty({__proto__:null,default:bs},Symbol.toStringTag,{value:"Module"}));B.add(T,V,be);const ws={name:"OpenwbNumberInput",inheritAttrs:!1,props:{title:String,modelValue:{type:Number},unit:String,precision:{type:Number,default:void 0},emptyValue:{required:!1,default:null}},emits:["update:modelValue"],data(){return{showHelp:!1}},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)}}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}},components:{FontAwesomeIcon:O}},ys={class:"form-row mb-1"},ks={class:"col-md-8"},Ss={class:"form-row"},Cs={class:"input-group"},Bs={class:"input-group-prepend"},Os={class:"input-group-text"},$s={key:0,class:"input-group-append"},Is={class:"input-group-text"},xs={key:0,class:"form-row alert alert-info my-1 small"};function Ts(e,t,n,c,i,s){const a=f("font-awesome-icon");return r(),d("div",ys,[o("label",{onClick:t[0]||(t[0]=(...l)=>s.toggleHelp&&s.toggleHelp(...l)),class:"col-md-4 col-form-label"},[p(b(n.title)+" ",1),e.$slots.help?(r(),g(a,{key:0,icon:i.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(i.showHelp?"text-info":"")},null,8,["icon","class"])):u("",!0)]),o("div",ks,[o("div",Ss,[o("div",Cs,[o("div",Bs,[o("div",Os,[m(a,{"fixed-width":"",icon:["fas","calculator"]})])]),C(o("input",S({type:"number",class:"form-control","onUpdate:modelValue":t[1]||(t[1]=l=>s.value=l)},e.$attrs),null,16),[[I,s.value,void 0,{number:!0}]]),n.unit?(r(),d("div",$s,[o("div",Is,b(n.unit),1)])):u("",!0)])]),i.showHelp?(r(),d("span",xs,[h(e.$slots,"help",{},void 0,!0)])):u("",!0)])])}const Vs=w(ws,[["render",Ts],["__scopeId","data-v-c2fb7eef"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseNumberInput.vue"]]),Ms=Object.freeze(Object.defineProperty({__proto__:null,default:Vs},Symbol.toStringTag,{value:"Module"}));B.add(T,V,ve,we);const As={name:"OpenwbRangeInput",inheritAttrs:!1,props:{title:String,modelValue:{type:Number},unit:String,min:{type:Number,default:0},max:{type:Number,default:100},step:{type:Number,default:1},labels:{type:Array}},emits:["update:modelValue"],data(){return{showHelp:!1}},computed:{label(){var e;return this.labels&&this.sliderValue!=null?this.sliderValues.toggleHelp&&s.toggleHelp(...l)),class:"col-md-4 col-form-label"},[p(b(n.title)+" ",1),e.$slots.help?(r(),g(a,{key:0,icon:i.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(i.showHelp?"text-info":"")},null,8,["icon","class"])):u("",!0)]),o("div",Hs,[o("div",Ds,[s.label?(r(),d("label",qs,b(s.label),1)):u("",!0),o("button",{class:"col-1 btn btn-block btn-info",type:"button",onClick:t[1]||(t[1]=(...l)=>s.decrement&&s.decrement(...l))},[m(a,{icon:["fas","step-backward"]})]),o("div",Es,[C(o("input",S({type:"range",class:"form-control-range rangeInput",min:n.min,max:n.max,step:n.step,"onUpdate:modelValue":t[2]||(t[2]=l=>s.sliderValue=l)},e.$attrs),null,16,Ls),[[I,s.sliderValue,void 0,{number:!0}]])]),o("button",{class:"col-1 btn btn-block btn-info",type:"button",onClick:t[3]||(t[3]=(...l)=>s.increment&&s.increment(...l))},[m(a,{icon:["fas","step-forward"]})])]),i.showHelp?(r(),d("div",js,[o("div",Ws,[h(e.$slots,"help",{},void 0,!0)])])):u("",!0)])])}const Ns=w(As,[["render",Rs],["__scopeId","data-v-449fb0a5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseRangeInput.vue"]]),Fs=Object.freeze(Object.defineProperty({__proto__:null,default:Ns},Symbol.toStringTag,{value:"Module"}));B.add(T,V);const Us={name:"OpenwbSelectInput",inheritAttrs:!1,props:{title:String,modelValue:{type:[String,Number,Array]},groups:Object,options:Object,notSelected:{type:String,default:void 0}},emits:["update:modelValue"],data(){return{showHelp:!1}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}},components:{FontAwesomeIcon:O}},zs={class:"form-row mb-1"},Gs={class:"col-md-8"},Js={class:"form-row"},Ks={key:0,value:void 0,disabled:""},Qs=["value"],Ys=["label"],Zs=["value"],Xs={key:0,class:"form-row alert alert-info my-1 small"};function en(e,t,n,c,i,s){const a=f("font-awesome-icon");return r(),d("div",zs,[o("label",{onClick:t[0]||(t[0]=(...l)=>s.toggleHelp&&s.toggleHelp(...l)),class:"col-md-4 col-form-label"},[p(b(n.title)+" ",1),e.$slots.help?(r(),g(a,{key:0,icon:i.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(i.showHelp?"text-info":"")},null,8,["icon","class"])):u("",!0)]),o("div",Gs,[o("div",Js,[C(o("select",S({class:"col form-control","onUpdate:modelValue":t[1]||(t[1]=l=>s.value=l)},e.$attrs),[n.notSelected!==void 0?(r(),d("option",Ks," -- "+b(n.notSelected)+" -- ",1)):u("",!0),(r(!0),d(x,null,D(n.options,l=>(r(),d("option",{key:l.value,value:l.value},b(l.text),9,Qs))),128)),(r(!0),d(x,null,D(n.groups,l=>(r(),d("optgroup",{key:l.label,label:l.label},[(r(!0),d(x,null,D(l.options,v=>(r(),d("option",{key:v.value,value:v.value},b(v.text),9,Zs))),128))],8,Ys))),128))],16),[[se,s.value]]),h(e.$slots,"append")]),i.showHelp?(r(),d("span",Xs,[h(e.$slots,"help")])):u("",!0)])])}const tn=w(Us,[["render",en],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSelectInput.vue"]]),sn=Object.freeze(Object.defineProperty({__proto__:null,default:tn},Symbol.toStringTag,{value:"Module"}));B.add(j,ye,ke);const nn={name:"OpenwbSubmitButtons",components:{FontAwesomeIcon:O},props:{formName:{type:String,default:void 0},hideReset:{type:Boolean,default:!1},hideDefaults:{type:Boolean,default:!0}},data(){return{showModalReset:!1,showModalDefaults:!1}},emits:["reset","defaults","save"],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")}}},on={class:"row justify-content-center mb-1"},an={class:"col-md-4 d-flex py-1 justify-content-center"},ln={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},rn={key:1,class:"col-md-4 d-flex py-1 justify-content-center"};function dn(e,t,n,c,i,s){const a=f("openwb-base-modal-dialog"),l=f("font-awesome-icon");return r(),d(x,null,[m(a,{show:s.showModalSave,title:"Speichern",subtype:"success",preventClose:!0},{default:_(()=>[p(" Einstellungen werden gespeichert... ")]),_:1},8,["show"]),m(a,{show:i.showModalReset,title:"Änderungen verwerfen",subtype:"warning",buttons:[{text:"Ok",event:"confirm",subtype:"warning"}],onModalResult:s.handleModalReset},{default:_(()=>[p(" Wollen Sie die nicht gespeicherten Änderungen wirklich verwerfen? ")]),_:1},8,["show","onModalResult"]),m(a,{show:i.showModalDefaults,title:"Werkseinstellungen",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"danger"}],onModalResult:s.handleModalDefaults},{default:_(()=>[p(" Wollen Sie wirklich alle Werte dieser Seite auf die Werkseinstellungen zurücksetzen? ")]),_:1},8,["show","onModalResult"]),o("div",on,[o("div",an,[o("button",{id:"saveSettingsBtn",type:"button",class:"btn btn-block btn-success",onClick:t[0]||(t[0]=(...v)=>s.saveSettings&&s.saveSettings(...v))},[p(" Speichern "),m(l,{"fixed-width":"",icon:["fas","check"]})])]),n.hideReset?u("",!0):(r(),d("div",ln,[o("button",{id:"modalResetBtn",type:"button",class:"btn btn-block btn-warning",onClick:t[1]||(t[1]=(...v)=>s.showResetModal&&s.showResetModal(...v))},[p(" Änderungen verwerfen "),m(l,{"fixed-width":"",icon:["fas","undo"]})])])),n.hideDefaults?u("",!0):(r(),d("div",rn,[o("button",{id:"modalDefaultsBtn",type:"button",class:"btn btn-block btn-danger",onClick:t[2]||(t[2]=(...v)=>s.showDefaultsModal&&s.showDefaultsModal(...v))},[p(" Werkseinstellungen "),m(l,{"fixed-width":"",icon:["fas","times"]})])]))])],64)}const cn=w(nn,[["render",dn],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSubmitButtons.vue"]]),un=Object.freeze(Object.defineProperty({__proto__:null,default:cn},Symbol.toStringTag,{value:"Module"}));B.add(T,V,Se,Ce,Be,Oe,$e,Ie,xe,Te,Ve,Me,Ae,Pe);const pn={name:"OpenwbTextInput",inheritAttrs:!1,props:{title:String,modelValue:{type:[String,Object]},subtype:{validator:function(e){return["text","email","host","url","user","json","password","time","date","month","year"].indexOf(e)!==-1},default:"text"},pattern:String,unit:String,emptyValue:{required:!1,default:null},showQuickButtons:{type:Boolean,default:!1}},emits:["update:modelValue"],data(){return{showHelp:!1,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{console.error("parsing JSON failed: "+e),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}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0},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(E("data-v-6927d479"),e=e(),L(),e),mn={class:"form-row mb-1"},_n={class:"col-md-8"},fn={class:"form-row"},hn={class:"input-group"},gn={class:"input-group-prepend"},bn={class:"input-group-text"},vn=["pattern"],wn=["pattern"],yn=["type","pattern"],kn=["type"],Sn={key:9,class:"input-group-append"},Cn={class:"input-group-text"},Bn={class:"input-group-text"},On=z(()=>o("div",{class:"input-group-text"},"-",-1)),$n=[On],In=z(()=>o("div",{class:"input-group-text"},"+",-1)),xn=[In],Tn={key:0,class:"form-row alert alert-info my-1 small"};function Vn(e,t,n,c,i,s){const a=f("font-awesome-icon");return r(),d("div",mn,[o("label",{onClick:t[0]||(t[0]=(...l)=>s.toggleHelp&&s.toggleHelp(...l)),class:"col-md-4 col-form-label"},[p(b(n.title)+" ",1),e.$slots.help?(r(),g(a,{key:0,icon:i.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(i.showHelp?"text-info":"")},null,8,["icon","class"])):u("",!0)]),o("div",_n,[o("div",fn,[o("div",hn,[o("div",gn,[o("div",bn,[n.subtype=="text"?(r(),g(a,{key:0,"fixed-width":"",icon:["fas","keyboard"]})):u("",!0),n.subtype=="email"?(r(),g(a,{key:1,"fixed-width":"",icon:["fas","envelope"]})):u("",!0),n.subtype=="host"?(r(),g(a,{key:2,"fixed-width":"",icon:["fas","network-wired"]})):u("",!0),n.subtype=="url"?(r(),g(a,{key:3,"fixed-width":"",icon:["fas","globe"]})):u("",!0),n.subtype=="user"?(r(),g(a,{key:4,"fixed-width":"",icon:["fas","user"]})):u("",!0),n.subtype=="json"?(r(),g(a,{key:5,"fixed-width":"",icon:["fas","code"]})):u("",!0),n.subtype=="password"?(r(),g(a,{key:6,"fixed-width":"",icon:i.showPassword?["fas","unlock"]:["fas","lock"]},null,8,["icon"])):u("",!0),n.subtype=="time"?(r(),g(a,{key:7,"fixed-width":"",icon:["fas","clock"]})):u("",!0),n.subtype=="date"||n.subtype=="month"||n.subtype=="year"?(r(),g(a,{key:8,"fixed-width":"",icon:["fas","calendar-day"]})):u("",!0)])]),["text","user"].includes(n.subtype)?C((r(),d("input",S({key:0,ref:"textInput",type:"text",class:["form-control",{invalid:i.inputInvalid}],"onUpdate:modelValue":t[1]||(t[1]=l=>s.value=l)},e.$attrs,{pattern:n.pattern}),null,16,vn)),[[I,s.value]]):u("",!0),n.subtype=="json"?C((r(),d("input",S({key:1,ref:"jsonInput",type:"text",class:"form-control","onUpdate:modelValue":t[2]||(t[2]=l=>s.value=l)},e.$attrs,{pattern:n.pattern}),null,16,wn)),[[I,s.value]]):u("",!0),n.subtype=="password"?C((r(),d("input",S({key:2,ref:"passwordInput",type:i.showPassword?"text":"password",class:"form-control","onUpdate:modelValue":t[3]||(t[3]=l=>s.value=l)},e.$attrs,{pattern:n.pattern}),null,16,yn)),[[N,s.value]]):u("",!0),n.subtype=="host"?C((r(),d("input",S({key:3,ref:"hostInput",type:"text",class:"form-control","onUpdate:modelValue":t[4]||(t[4]=l=>s.value=l)},e.$attrs),null,16)),[[I,s.value]]):u("",!0),["email","url"].includes(n.subtype)?C((r(),d("input",S({key:4,refs:"urlInput",type:n.subtype,class:"form-control","onUpdate:modelValue":t[5]||(t[5]=l=>s.value=l)},e.$attrs),null,16,kn)),[[N,s.value]]):u("",!0),n.subtype=="time"?C((r(),d("input",S({key:5,ref:"timeInput",type:"time",class:"form-control","onUpdate:modelValue":t[6]||(t[6]=l=>s.value=l)},e.$attrs),null,16)),[[I,s.value]]):u("",!0),n.subtype=="date"?C((r(),d("input",S({key:6,type:"date",ref:"dateInput",class:"form-control","onUpdate:modelValue":t[7]||(t[7]=l=>s.value=l)},e.$attrs),null,16)),[[I,s.value]]):u("",!0),n.subtype=="month"?C((r(),d("input",S({key:7,type:"month",ref:"monthInput",class:"form-control","onUpdate:modelValue":t[8]||(t[8]=l=>s.value=l)},e.$attrs),null,16)),[[I,s.value]]):u("",!0),n.subtype=="year"?C((r(),d("input",S({key:8,type:"number",ref:"yearInput",class:"form-control","onUpdate:modelValue":t[9]||(t[9]=l=>s.value=l)},e.$attrs),null,16)),[[I,s.value]]):u("",!0),n.unit?(r(),d("div",Sn,[o("div",Cn,b(n.unit),1)])):u("",!0),n.subtype=="password"?(r(),d("div",{key:10,class:"input-group-append clickable",onClick:t[10]||(t[10]=(...l)=>s.togglePassword&&s.togglePassword(...l))},[o("div",Bn,[m(a,{"fixed-width":"",icon:i.showPassword?["far","eye"]:["far","eye-slash"]},null,8,["icon"])])])):u("",!0),n.showQuickButtons&&(n.subtype=="date"||n.subtype=="month"||n.subtype=="year")?(r(),d("div",{key:11,class:"input-group-append clickable",onClick:t[11]||(t[11]=l=>s.modify(-1))},[...$n])):u("",!0),n.showQuickButtons&&(n.subtype=="date"||n.subtype=="month"||n.subtype=="year")?(r(),d("div",{key:12,class:"input-group-append clickable",onClick:t[12]||(t[12]=l=>s.modify(1))},[...xn])):u("",!0)])]),i.showHelp?(r(),d("span",Tn,[h(e.$slots,"help",{},void 0,!0)])):u("",!0)])])}const Mn=w(pn,[["render",Vn],["__scopeId","data-v-6927d479"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextInput.vue"]]),An=Object.freeze(Object.defineProperty({__proto__:null,default:Mn},Symbol.toStringTag,{value:"Module"}));B.add(T,V);const Pn={name:"OpenwbTextareaInput",inheritAttrs:!1,props:{title:String,modelValue:{String,Object},subtype:{validator:function(e){return["text","json"].indexOf(e)!==-1},default:"text"}},emits:["update:modelValue"],data(){return{showHelp:!1,inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.debug("returning invalid 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{console.warn("parsing JSON failed: "+e),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}}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}},components:{FontAwesomeIcon:O}},Hn={class:"form-row mb-1"},Dn={class:"col-md-8"},qn={class:"form-row"},En={class:"input-group"},Ln={class:"input-group-prepend"},jn={class:"input-group-text"},Wn={key:2,class:"input-group-append"},Rn={class:"input-group-text"},Nn={class:"form-text text-muted text-right"},Fn={key:0,class:"form-row alert alert-info my-1 small"};function Un(e,t,n,c,i,s){const a=f("font-awesome-icon");return r(),d("div",Hn,[o("label",{onClick:t[0]||(t[0]=(...l)=>s.toggleHelp&&s.toggleHelp(...l)),class:"col-md-4 col-form-label"},[p(b(n.title)+" ",1),e.$slots.help?(r(),g(a,{key:0,icon:i.showHelp?["fas","question-circle"]:["far","question-circle"],class:k(i.showHelp?"text-info":"")},null,8,["icon","class"])):u("",!0)]),o("div",Dn,[o("div",qn,[o("div",En,[o("div",Ln,[o("div",jn,[n.subtype=="text"?(r(),g(a,{key:0,"fixed-width":"",icon:["fas","keyboard"]})):u("",!0),n.subtype=="json"?(r(),g(a,{key:1,"fixed-width":"",icon:["fas","code"]})):u("",!0)])]),n.subtype==="json"?C((r(),d("textarea",S({key:0,ref:"jsonInput",class:"form-control","onUpdate:modelValue":t[1]||(t[1]=l=>s.value=l)},e.$attrs),null,16)),[[I,s.value,void 0,{lazy:!0}]]):C((r(),d("textarea",S({key:1,class:"form-control","onUpdate:modelValue":t[2]||(t[2]=l=>s.value=l)},e.$attrs),null,16)),[[I,s.value]]),e.$attrs.maxlength?(r(),d("div",Wn,[o("div",Rn,[o("small",Nn,b(s.length)+" / "+b(e.$attrs.maxlength),1)])])):u("",!0)])]),i.showHelp?(r(),d("span",Fn,[h(e.$slots,"help",{},void 0,!0)])):u("",!0)])])}const zn=w(Pn,[["render",Un],["__scopeId","data-v-3d93046b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextarea.vue"]]),Gn=Object.freeze(Object.defineProperty({__proto__:null,default:zn},Symbol.toStringTag,{value:"Module"}));const Jn={name:"OpenwbToast",emits:["dismiss","hide"],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:{validator:function(e){return["system","client","command"].indexOf(e)!==-1}},timestamp:{type:Number}},data(){return{handle:void 0,relativeTime:void 0,hidden:!1}},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 c=new Date-this.timestamp*1e3;for(var i in e)if(Math.abs(c)>e[i]){this.relativeTime=t.format(Math.round(-c/e[i]),i);break}c>10*1e3&&!this.hidden&&(this.hidden=!0,this.$emit("hide",{topic:this.topic}))}},mounted(){this.handle=window.setInterval(this.updateRelativeTime,1e3)},unmounted(){window.clearInterval(this.handle)}},G=e=>(E("data-v-c51b5764"),e=e(),L(),e),Kn=G(()=>o("strong",{class:"pr-2 mr-auto"},"OpenWB",-1)),Qn={key:0,class:"time-diff"},Yn=G(()=>o("span",{"aria-hidden":"true"},"×",-1)),Zn=[Yn],Xn={class:"toast-body"};function eo(e,t,n,c,i,s){return r(),d("div",{class:k(["toast","border-"+n.subtype]),role:"alert"},[o("div",{class:k(["toast-header","bg-"+n.subtype])},[Kn,n.timestamp?(r(),d("small",Qn,b(i.relativeTime),1)):u("",!0),o("button",{type:"button",class:"ml-2 mb-1 close","data-dismiss":"toast","aria-label":"Close",onClick:t[0]||(t[0]=(...a)=>s.dismiss&&s.dismiss(...a))},[...Zn])],2),o("div",Xn,[h(e.$slots,"default",{},void 0,!0)])],2)}const to=w(Jn,[["render",eo],["__scopeId","data-v-c51b5764"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseToast.vue"]]),so=Object.freeze(Object.defineProperty({__proto__:null,default:to},Symbol.toStringTag,{value:"Module"}));B.add(He);const no={name:"OpenwbNavBar",components:{FontAwesomeIcon:O},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)}}},A=e=>(E("data-v-e7a6d0c0"),e=e(),L(),e),oo={class:"navbar navbar-expand-lg bg-dark navbar-dark fixed-top"},ao=A(()=>o("a",{class:"navbar-brand",href:"/openWB/web/"},[o("span",null,"openWB")],-1)),io={class:"navbar-toggler mr-5",type:"button","data-toggle":"collapse","data-target":"#collapsibleNavbar",ref:"navbarButton"},lo=A(()=>o("span",{class:"navbar-toggler-icon"},null,-1)),ro=[lo],co={class:"collapse navbar-collapse navbar-nav-scroll",id:"collapsibleNavbar",ref:"collapsibleNavbar"},uo={class:"navbar-nav"},po={class:"nav-item"},mo={class:"nav-item dropdown nav-separator-after"},_o=A(()=>o("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Auswertungen ",-1)),fo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},ho={class:"nav-item dropdown"},go=A(()=>o("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Einstellungen ",-1)),bo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},vo={class:"nav-item dropdown"},wo=A(()=>o("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Ladeeinstellungen ",-1)),yo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},ko={class:"nav-item dropdown"},So=A(()=>o("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Konfiguration ",-1)),Co={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},Bo=A(()=>o("div",{class:"dropdown-divider"},null,-1)),Oo=A(()=>o("a",{href:"modules/legacy_smart_home/smarthomeconfig.php",class:"dropdown-item",target:"_blank"}," SmartHome ",-1)),$o={class:"nav-item dropdown"},Io=A(()=>o("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," System ",-1)),xo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},To={class:"nav-item nav-separator-before"},Vo={class:"nav-link",href:"https://github.com/openWB/core/wiki",target:"_blank"};function Mo(e,t,n,c,i,s){const a=f("router-link"),l=f("font-awesome-icon");return r(),d("nav",oo,[ao,o("button",io,[...ro],512),o("div",co,[o("ul",uo,[o("li",po,[m(a,{to:"/Status",class:"nav-link","active-class":"active disabled"},{default:_(()=>[p(" Status ")]),_:1})]),o("li",mo,[_o,o("div",fo,[m(a,{to:"/Logging/ChargeLog",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Ladeprotokoll ")]),_:1}),m(a,{to:"/Logging/Chart",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Diagramme ")]),_:1})])]),o("li",ho,[go,o("div",bo,[m(a,{to:"/GeneralConfig",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Allgemein ")]),_:1}),m(a,{to:"/OptionalComponents",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Optionale Hardware ")]),_:1})])]),o("li",vo,[wo,o("div",yo,[m(a,{to:"/GeneralChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Übergreifendes ")]),_:1}),m(a,{to:"/InstantChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Sofortladen ")]),_:1}),m(a,{to:"/PVChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" PV-Laden ")]),_:1}),m(a,{to:"/TimeChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Zeitladen ")]),_:1}),m(a,{to:"/ScheduledChargeConfig",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Zielladen ")]),_:1})])]),o("li",ko,[So,o("div",Co,[m(a,{to:"/HardwareInstallation",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Geräte und Komponenten ")]),_:1}),m(a,{to:"/LoadManagementConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Lastmanagement ")]),_:1}),m(a,{to:"/ChargePointInstallation",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Ladepunkte ")]),_:1}),m(a,{to:"/VehicleConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Fahrzeuge ")]),_:1}),Bo,Oo])]),o("li",$o,[Io,o("div",xo,[m(a,{to:"/System/InstallAssistant",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Einrichtungsassistent ")]),_:1}),m(a,{to:"/System/CloudConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" openWB Cloud ")]),_:1}),m(a,{to:"/System/MqttBridgeConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" MQTT-Brücken ")]),_:1}),m(a,{to:"/System/DebugConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Fehlersuche ")]),_:1}),m(a,{to:"/System/Support",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Support ")]),_:1}),m(a,{to:"/System/DataManagement",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Datenverwaltung ")]),_:1}),m(a,{to:"/System/SystemConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" System ")]),_:1}),m(a,{to:"/System/LegalSettings",class:"dropdown-item","active-class":"active disabled"},{default:_(()=>[p(" Rechtliches ")]),_:1})])]),o("li",To,[o("a",Vo,[p(" Wiki "),m(l,{"fixed-width":"",icon:["fas","external-link-alt"]})])])])],512)])}const Ao=w(no,[["render",Mo],["__scopeId","data-v-e7a6d0c0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageNavbar.vue"]]);const Po={name:"OpenwbPageFooter"},Ho={id:"footer",class:"footer bg-dark text-light font-small"},Do={class:"container text-center"};function qo(e,t,n,c,i,s){return r(),d("footer",Ho,[o("div",Do,[o("small",null," Sie befinden sich hier: Einstellungen / "+b(e.$route.meta.heading),1)])])}const Eo=w(Po,[["render",qo],["__scopeId","data-v-3c9a239a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageFooter.vue"]]);B.add(De);const Lo={name:"OpenwbDonationBanner",components:{FontAwesomeIcon:O}},jo={class:"mt-3 alert alert-dark text-center"},Wo=o("br",null,null,-1),Ro=o("br",null,null,-1),No={action:"https://www.paypal.com/cgi-bin/webscr",method:"post",target:"_blank"},Fo=o("input",{type:"hidden",name:"cmd",value:"_s-xclick"},null,-1),Uo=o("input",{type:"hidden",name:"hosted_button_id",value:"2K8C4Y2JTGH7U"},null,-1),zo={type:"submit",class:"btn btn-primary"};function Go(e,t,n,c,i,s){const a=f("font-awesome-icon");return r(),d("div",jo,[p(" Open Source made with love!"),Wo,p(" Jede Spende hilft die Weiterentwicklung von openWB voranzutreiben"),Ro,o("form",No,[Fo,Uo,o("button",zo,[p(" Spenden "),m(a,{icon:["fab","paypal"]})])])])}const Jo=w(Lo,[["render",Go],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageDonationBanner.vue"]]),Ko={name:"ComponentState",data(){return{mqttTopicsToSubscribe:[]}},emits:["reset","defaults","save"],computed:{weekdays(){return["Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag"]},chargeModes(){return["instant_charging","pv_charging","scheduled_charging","time_charging","standby","stop"]}},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(2))},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 c=Object.keys(this.$store.state.mqtt).filter(i=>i.match(n));return c.forEach((i,s,a)=>{a[s]=parseInt(i.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,""))}),c},getWildcardTopics(e,t=!1){let n=e;return t||(n="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(this.$store.state.mqtt).filter(c=>c.match(n)).reduce((c,i)=>({...c,[i]:this.$store.state.mqtt[i]}),{})},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,c=1){if(!(e==null||isNaN(e)))return(e*c).toLocaleString(void 0,{minimumFractionDigits:t,maximumFractionDigits:n})},formatNumberTopic(e,t=0,n=t,c=1){return this.$store.state.mqtt[e]?this.formatNumber(this.$store.state.mqtt[e],t,n,c):"-"},formatPhaseArrayNumberTopic(e,t=0,n=t,c=1){return this.$store.state.mqtt[e]?this.$store.state.mqtt[e].map(i=>this.formatNumber(i,t,n,c)).join(" / "):"- / - / -"},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"standby":return"Standby";case"stop":return"Stop";default:return console.warn("unknown charge mode:",e),e}}},mounted(){this.mqttTopicsToSubscribe.length>0&&this.$root.doSubscribe(this.mqttTopicsToSubscribe)},unmounted(){this.mqttTopicsToSubscribe.length>0&&this.$root.doUnsubscribe(this.mqttTopicsToSubscribe)}},J=w(Ko,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/mixins/ComponentState.vue"]]);B.add(qe,Ee);const Qo={name:"OpenwbPageMessages",mixins:[J],components:{FontAwesomeIcon:O,FontAwesomeLayers:Le,FontAwesomeLayersText:je},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,c]of Object.entries(e))t.push({topic:n,...c});return t},clientMessages(){let e=this.getWildcardTopics("openWB/command/"+this.$root.mqttClientId+"/messages/+");var t=[];for(const[n,c]of Object.entries(e))t.push({topic:n,...c});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)}}},Yo=["innerHTML"];function Zo(e,t,n,c,i,s){const a=f("font-awesome-icon"),l=f("font-awesome-layers-text"),v=f("font-awesome-layers"),$=f("openwb-base-alert"),M=f("openwb-base-click-button"),P=f("openwb-base-toast");return r(),d(x,null,[(r(),g(U,{to:"body"},[o("div",{id:"message-indicator",class:k(["text-light mt-1 p-2 mr-1 clickable",i.showAllMessages?"active":""]),onClick:t[0]||(t[0]=(...H)=>s.toggleAllMessages&&s.toggleAllMessages(...H))},[m(v,{"full-width":"",style:{"font-size":"175%"}},{default:_(()=>[m(a,{"fixed-width":"",icon:i.showAllMessages?["fas","bell"]:["far","bell"],class:k(s.messageIndicatorClass)},null,8,["icon","class"]),s.messages.length>0?(r(),g(l,{key:0,counter:"",value:s.messages.length,position:"top-right",class:"message-counter bg-light text-dark"},null,8,["value"])):u("",!0)]),_:1})],2)])),s.recentMessages.length>0||i.showAllMessages?(r(),d("div",{key:0,class:k(["openwb-toast-container",i.showAllMessages?"full-height":""])},[s.recentMessages.length==0?(r(),g($,{key:0,subtype:"info"},{default:_(()=>[p(" Keine Nachrichten vorhanden. ")]),_:1})):i.showAllMessages?(r(),g(M,{key:1,class:"btn-sm btn-secondary mb-1",onButtonClicked:s.dismissAllMessages},{default:_(()=>[p(" Alle Nachrichten löschen ")]),_:1},8,["onButtonClicked"])):u("",!0),(r(!0),d(x,null,D(s.recentMessages,H=>(r(),g(P,{key:H.topic,topic:H.topic,source:H.source,subtype:H.type,timestamp:H.timestamp,onDismiss:s.dismissMessage,onHide:s.hideMessage},{default:_(()=>[o("span",{innerHTML:H.message},null,8,Yo)]),_:2},1032,["topic","source","subtype","timestamp","onDismiss","onHide"]))),128))],2)):u("",!0)],64)}const Xo=w(Qo,[["render",Zo],["__scopeId","data-v-2c25f0d0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageMessages.vue"]]),ea={name:"OpenwbPageBlocker",mixins:[J],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)}}},ta={class:"openwb-blocker"},sa={key:0},na={key:1},oa={key:2},aa={key:3};function ia(e,t,n,c,i,s){const a=f("openwb-base-modal-dialog");return r(),d("div",ta,[m(a,{show:s.showModalBlocker,title:s.title,subtype:"dark",preventClose:!0,buttons:s.myButtons,onModalResult:t[0]||(t[0]=l=>s.handleModalResult(l))},{default:_(()=>[s.bootInProgress?(r(),d("p",sa," Der Systemstart ist noch nicht abgeschlossen. ")):u("",!0),s.updateInProgress?(r(),d("p",na," Es wird eine Systemaktualisierung ausgeführt. ")):u("",!0),!(s.bootInProgress||s.updateInProgress)&&s.reloadRequired?(r(),d("p",oa," Bitte die Seite neu laden. ")):(r(),d("p",aa,"Bitte warten..."))]),_:1},8,["show","title","buttons"])])}const la=w(ea,[["render",ia],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageBlocker.vue"]]);const ra={name:"OpenwbSettingsApp",components:{NavBar:Ao,PageFooter:Eo,DonationBanner:Jo,Messages:Xo,Blocker:la},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{return}},topicList(){return Object.keys(this.$store.state.mqtt)}},methods:{async saveValues(e=void 0){function t(c){return new Promise(i=>setTimeout(i,c))}console.debug("saving values..."),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(c=>{n[c]=this.$store.state.mqtt[c]}):console.error("expected array, got ",typeof e);for(const[c,i]of Object.entries(n)){let s=c.replace("openWB/","openWB/set/");console.debug("saving data:",s,i),this.doPublish(s,i),await t(100)}console.debug("done saving data"),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){this.doPublish("openWB/set/command/"+this.client.options.clientId+"/todo",e,!1)},createConnection(){const{protocol:e,host:t,port:n,endpoint:c,...i}=this.connection,s=`${e}://${t}:${n}${c}`;console.debug("connecting to broker:",s);try{this.client=ne.connect(s,i)}catch(a){console.error("mqtt.connect error",a)}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",a=>{console.error("Connection failed",a)}),this.client.on("message",(a,l)=>{if(l.toString().length>0){let v;try{v=JSON.parse(l.toString())}catch{console.debug("Json parsing failed, fallback to string: ",a),v=l.toString()}this.$store.commit("updateTopic",{topic:a,payload:v})}else this.$store.commit("removeTopic",a)})},doSubscribe(e){console.debug("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){console.debug("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,c=2){let i={qos:c,retain:n};this.client.publish(e,JSON.stringify(t),i,s=>{s&&console.error("Publish error",s)})},postClientMessage(e,t="secondary"){console.debug("postMessage:",e,t);const n=Date.now(),c="openWB/command/"+this.mqttClientId+"/messages/"+n;this.$store.commit({type:"addTopic",topic:c,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(c=>c.match(n)).reduce((c,i)=>({...c,[i]:this.$store.state.mqtt[i]}),{})}},created(){this.createConnection()}},da={role:"main",class:"container"},ca={id:"content"};function ua(e,t,n,c,i,s){const a=f("nav-bar"),l=f("router-view"),v=f("donation-banner"),$=f("page-footer"),M=f("messages"),P=f("blocker");return r(),d(x,null,[o("header",null,[m(a)]),o("div",da,[o("div",ca,[o("h1",null,b(e.$route.meta.heading),1),m(l,{onSave:s.saveValues,onReset:s.resetValues,onDefaults:s.setDefaultValues,onSendCommand:s.sendCommand},null,8,["onSave","onReset","onDefaults","onSendCommand"])]),m(v)]),m($),m(M),m(P)],64)}const pa=w(ra,[["render",ua],["__file","/opt/openWB-dev/openwb-ui-settings/src/App.vue"]]),ma="modulepreload",_a=function(e){return"/openWB/web/settings/"+e},F={},y=function(t,n,c){if(!n||n.length===0)return t();const i=document.getElementsByTagName("link");return Promise.all(n.map(s=>{if(s=_a(s),s in F)return;F[s]=!0;const a=s.endsWith(".css"),l=a?'[rel="stylesheet"]':"";if(!!c)for(let M=i.length-1;M>=0;M--){const P=i[M];if(P.href===s&&(!a||P.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${s}"]${l}`))return;const $=document.createElement("link");if($.rel=a?"stylesheet":ma,a||($.as="script",$.crossOrigin=""),$.href=s,document.head.appendChild($),a)return new Promise((M,P)=>{$.addEventListener("load",M),$.addEventListener("error",()=>P(new Error(`Unable to preload CSS for ${s}`)))})})).then(()=>t()).catch(s=>{const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=s,window.dispatchEvent(a),!a.defaultPrevented)throw s})};let K={mqtt:{},mqttSubscriptions:{},local:{reloadRequired:!1,savingData:!1},text:{rfidWiki:'Bitte auch hiervon abhängige Einstellungen beachten. Eine Übersicht gibt es im Wiki.'}};K.examples={text1:"Text...",text2:"mail@domain.com",text3:"openwb.local",text4:"http://www.openwb.de",text5:"Benutzername",text6:"12:34",text7:"2021-10-31",number1:5,number2:10,number3:28e-5,password1:"GeHeiM!",textarea1:"Langer Text...",range1:6,range2:10,select1:1,select2:"three",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"]};const q=oe({state:K,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=(c,i,s)=>i.split(".").reduce((a,l,v)=>a[l]=i.split(".").length===++v?s:a[l]||{},c);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,c;n=setTimeout(()=>{clearInterval(c),t(!1)},5e3),c=setInterval(()=>{e.mqtt["openWB/system/usage_terms_acknowledged"]!==void 0&&(clearTimeout(n),clearInterval(c),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,c;n=setTimeout(()=>{clearInterval(c),t(!1)},5e3),c=setInterval(()=>{e.mqtt["openWB/system/installAssistantDone"]!==void 0&&(clearTimeout(n),clearInterval(c),t(e.mqtt["openWB/system/installAssistantDone"]))},100)}})},subscriptionCount:e=>t=>e.mqttSubscriptions[t]||0}}),Q=[{path:"/",redirect:"/GeneralConfig"},{path:"/Status",name:"Status",meta:{heading:"Status"},component:()=>y(()=>import("./Status-3ed5f34f.js"),["assets/Status-3ed5f34f.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-chartjs-35992f4a.js","assets/vendor-luxon-8ddd27a0.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/Status-6557de7c.css"])},{path:"/Logging/ChargeLog",name:"ChargeLog",meta:{heading:"Auswertungen - Ladeprotokoll"},component:()=>y(()=>import("./ChargeLog-d71ce4c1.js"),["assets/ChargeLog-d71ce4c1.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/ChargeLog-1fb3fa68.css"])},{path:"/Logging/Chart/:chartRange?/:initialDate?",name:"DailyChart",meta:{heading:"Auswertungen - Diagramme"},component:()=>y(()=>import("./Chart-53af13b6.js"),["assets/Chart-53af13b6.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-chartjs-35992f4a.js","assets/vendor-luxon-8ddd27a0.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/Chart-e20451b4.css"])},{path:"/GeneralConfig",name:"GeneralConfig",meta:{heading:"Einstellungen - Allgemein"},component:()=>y(()=>import("./GeneralConfig-aecc1081.js"),["assets/GeneralConfig-aecc1081.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/dynamic-import-helper-be004503.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js"])},{path:"/OptionalComponents",name:"OptionalComponents",meta:{heading:"Einstellungen - Optionale Hardware"},component:()=>y(()=>import("./OptionalComponents-4599d69d.js"),["assets/OptionalComponents-4599d69d.js","assets/dynamic-import-helper-be004503.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js"])},{path:"/GeneralChargeConfig",name:"GeneralChargeConfig",meta:{heading:"Ladeeinstellungen - Übergreifendes"},component:()=>y(()=>import("./GeneralChargeConfig-be9fdbc5.js"),["assets/GeneralChargeConfig-be9fdbc5.js","assets/dynamic-import-helper-be004503.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js"])},{path:"/InstantChargeConfig",name:"InstantChargeConfig",meta:{heading:"Ladeeinstellungen - Sofortladen"},component:()=>y(()=>import("./InstantChargeConfig-17057c0d.js"),["assets/InstantChargeConfig-17057c0d.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js"])},{path:"/PVChargeConfig",name:"PVChargeConfig",meta:{heading:"Ladeeinstellungen - PV-Laden"},component:()=>y(()=>import("./PVChargeConfig-d62a1759.js"),["assets/PVChargeConfig-d62a1759.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js"])},{path:"/TimeChargeConfig",name:"TimeChargeConfig",meta:{heading:"Ladeeinstellungen - Zeitladen"},component:()=>y(()=>import("./TimeChargeConfig-b85503dd.js"),["assets/TimeChargeConfig-b85503dd.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js"])},{path:"/ScheduledChargeConfig",name:"ScheduledChargeConfig",meta:{heading:"Ladeeinstellungen - Zielladen"},component:()=>y(()=>import("./ScheduledChargeConfig-a3ebfb4e.js"),["assets/ScheduledChargeConfig-a3ebfb4e.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js"])},{path:"/HardwareInstallation",name:"HardwareInstallation",meta:{heading:"Konfiguration - Geräte und Komponenten"},component:()=>y(()=>import("./HardwareInstallation-912044d0.js"),["assets/HardwareInstallation-912044d0.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/dynamic-import-helper-be004503.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/HardwareInstallation-1ee9693f.css"])},{path:"/LoadManagementConfiguration",name:"LoadManagementConfiguration",meta:{heading:"Konfiguration - Lastmanagement"},component:()=>y(()=>import("./LoadManagementConfig-380e9c4d.js"),["assets/LoadManagementConfig-380e9c4d.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/OpenwbSortableList-641f6bb4.js","assets/OpenwbSortableList-7ba533e4.css","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js"])},{path:"/ChargePointInstallation",name:"ChargePointInstallation",meta:{heading:"Konfiguration - Ladepunkte"},component:()=>y(()=>import("./ChargePointInstallation-66ab99c9.js"),["assets/ChargePointInstallation-66ab99c9.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/dynamic-import-helper-be004503.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/ChargePointInstallation-ed6a5c7e.css"])},{path:"/VehicleConfiguration/:section?/:section_index?/:section_part?/:action?",name:"VehicleConfiguration",meta:{heading:"Konfiguration - Fahrzeuge"},component:()=>y(()=>import("./VehicleConfig-99736f29.js"),["assets/VehicleConfig-99736f29.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/dynamic-import-helper-be004503.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/VehicleConfig-4aeda6ca.css"])},{path:"/System/CloudConfiguration",name:"CloudConfig",meta:{heading:"System - openWB Cloud"},component:()=>y(()=>import("./CloudConfig-28061265.js"),["assets/CloudConfig-28061265.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js"])},{path:"/System/MqttBridgeConfiguration",name:"MqttBridgeConfig",meta:{heading:"System - MQTT-Brücken"},component:()=>y(()=>import("./MqttBridgeConfig-b16c88cd.js"),["assets/MqttBridgeConfig-b16c88cd.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/MqttBridgeConfig-3471079a.css"])},{path:"/System/DebugConfiguration",name:"Debugging",meta:{heading:"System - Fehlersuche"},component:()=>y(()=>import("./DebugConfig-957ac5e2.js"),["assets/DebugConfig-957ac5e2.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/DebugConfig-e21ab72c.css"])},{path:"/System/Support",name:"Support",meta:{heading:"System - Support"},component:()=>y(()=>import("./Support-1d4bc359.js"),["assets/Support-1d4bc359.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js"])},{path:"/System/LegalSettings",name:"LegalSettings",meta:{heading:"System - Rechtliches"},component:()=>y(()=>import("./LegalSettings-7d6a7592.js"),["assets/LegalSettings-7d6a7592.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js"])},{path:"/System/SystemConfiguration",name:"SystemConfig",meta:{heading:"System - System"},component:()=>y(()=>import("./System-4ed50969.js"),["assets/System-4ed50969.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js","assets/System-0f1d217b.css"])},{path:"/System/DataManagement",name:"DataManagement",meta:{heading:"System - Datenverwaltung"},component:()=>y(()=>import("./DataManagement-f4b0feef.js"),["assets/DataManagement-f4b0feef.js","assets/vendor-fortawesome-71546160.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/dynamic-import-helper-be004503.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js"])},{path:"/System/InstallAssistant",name:"InstallAssistant",meta:{heading:"System - Einrichtungsassistent"},component:()=>y(()=>import("./InstallAssistant-d68215c6.js"),["assets/InstallAssistant-d68215c6.js","assets/dynamic-import-helper-be004503.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js"])}];Q.push({path:"/TestingStore",name:"VUEX Store",meta:{heading:"Beispiele - VUEX Store"},component:()=>y(()=>import("./TestingStore-5a64ca39.js"),["assets/TestingStore-5a64ca39.js","assets/OpenwbSortableList-641f6bb4.js","assets/vendor-f2b8aa6f.js","assets/vendor-sortablejs-2f1828d0.js","assets/vendor-aab9f734.css","assets/vendor-fortawesome-71546160.js","assets/OpenwbSortableList-7ba533e4.css","assets/vendor-bootstrap-4ad604fa.js","assets/vendor-jquery-d3cb8fad.js","assets/vendor-bootstrap-c4951098.css","assets/vendor-axios-65ecee4b.js"])});const W=ae({history:ie(),routes:Q});W.beforeEach(async e=>{if(await q.getters.usageTermsAcknowledged){if(!await q.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=le(pa);R.use(q).use(W).use(We,Re);const fa=Object.assign({"./components/OpenwbBaseAlert.vue":ze,"./components/OpenwbBaseArrayInput.vue":it,"./components/OpenwbBaseAvatar.vue":ut,"./components/OpenwbBaseButtonGroupInput.vue":yt,"./components/OpenwbBaseButtonInput.vue":xt,"./components/OpenwbBaseCard.vue":Lt,"./components/OpenwbBaseCheckboxInput.vue":Gt,"./components/OpenwbBaseClickButton.vue":Yt,"./components/OpenwbBaseCopyToClipboard.vue":ss,"./components/OpenwbBaseHeading.vue":ds,"./components/OpenwbBaseModalDialog.vue":vs,"./components/OpenwbBaseNumberInput.vue":Ms,"./components/OpenwbBaseRangeInput.vue":Fs,"./components/OpenwbBaseSelectInput.vue":sn,"./components/OpenwbBaseSubmitButtons.vue":un,"./components/OpenwbBaseTextInput.vue":An,"./components/OpenwbBaseTextarea.vue":Gn,"./components/OpenwbBaseToast.vue":so});Object.entries(fa).forEach(([e,t])=>{const n=re(de(e.split("/").pop().replace(/\.\w+$/,"")));R.component(n,t.default)});R.mount("#app");export{J as C,y as _}; diff --git a/web/settings/assets/vehicle-5eb1661e.js b/web/settings/assets/vehicle-ef8ce1de.js similarity index 97% rename from web/settings/assets/vehicle-5eb1661e.js rename to web/settings/assets/vehicle-ef8ce1de.js index f9275f052d..145739eb62 100644 --- a/web/settings/assets/vehicle-5eb1661e.js +++ b/web/settings/assets/vehicle-ef8ce1de.js @@ -1 +1 @@ -import{_ as m,a6 as p,a7 as g,a8 as f,u as l,k as b,l as k,D as a,N as s,y as r,x as v}from"./vendor-f2b8aa6f.js";import{a as w}from"./vendor-axios-65ecee4b.js";import{C as y}from"./index-ba5cf04c.js";import"./vendor-sortablejs-2f1828d0.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";const C={name:"VehicleSocTesla",emits:["update:configuration"],props:{vehicleId:{required:!0,type:Number},vehicle:{required:!0,type:Object}},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}},mixins:[y],methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})},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=p.encode(g.randomBytes(86)).replace(/[^a-zA-Z0-9]/gi,"").substring(0,86);const e=g.createHash("sha256").update(this.code_verifier).digest();this.code_challenge=p.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 t=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",t),this.updateConfiguration({access_token:t.data.access_token,refresh_token:t.data.refresh_token,created_at:t.data.created_at,expires_in:t.data.expires_in},"configuration.token"),this.$root.postClientMessage("Token erfolgreich abgerufen.","success")}catch(t){console.error(t),this.$root.postClientMessage("Beim Abruf der Token ist ein Fehler aufgetreten!
"+t+"
","danger")}}}},T={class:"vehicle-soc-tesla"},x=v("hr",null,null,-1);function U(e,n,t,B,u,i){const d=l("openwb-base-number-input"),h=l("openwb-base-heading"),_=l("openwb-base-button-input"),c=l("openwb-base-text-input");return b(),k("div",T,[a(d,{title:"Fahrzeug-ID",required:"",min:0,"model-value":t.vehicle.configuration.tesla_ev_num,"onUpdate:modelValue":n[0]||(n[0]=o=>i.updateConfiguration(o,"configuration.tesla_ev_num"))},{help:s(()=>[r(' Die ID des Fahrzeugs bei Tesla. Normalerweise "0" bei nur einem Fahrzeug im Konto. ')]),_:1},8,["model-value"]),a(h,null,{default:s(()=>[r("Token abrufen oder eingeben")]),_:1}),a(_,{title:"1. Anmelden",buttonText:"Bei Tesla Anmelden",subtype:"success",onButtonClicked:i.tesla_login_window},{help:s(()=>[r(" Es wird ein neues Browserfenster geöffnet, in dem Sie sich bei Tesla mit Ihren Zugangsdaten anmelden können. ")]),_:1},8,["onButtonClicked"]),a(c,{title:"2. URL kopieren und einfügen",subtype:"url",emptyValue:null,modelValue:u.page_not_found_url,"onUpdate:modelValue":n[1]||(n[1]=o=>u.page_not_found_url=o)},{help:s(()=>[r(' Hier die komplette URL (Text in der Adresszeile) aus dem geöffneten Browserfenster einfügen, wenn dort "Page Not Found" angezeigt wird. ')]),_:1},8,["modelValue"]),a(_,{title:"3. Token abrufen",buttonText:"Jetzt abrufen",subtype:"success",disabled:u.page_not_found_url===null,onButtonClicked:i.tesla_login},{help:s(()=>[r(" 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},8,["disabled","onButtonClicked"]),x,a(c,{title:"Access Token",pattern:"^(ey).*",required:"","model-value":t.vehicle.configuration.token?t.vehicle.configuration.token.access_token:"","onUpdate:modelValue":n[2]||(n[2]=o=>i.updateConfiguration(o,"configuration.token.access_token"))},null,8,["model-value"]),a(c,{title:"Refresh Token",pattern:"^(ey).*",required:"","model-value":t.vehicle.configuration.token?t.vehicle.configuration.token.refresh_token:"","onUpdate:modelValue":n[3]||(n[3]=o=>i.updateConfiguration(o,"configuration.token.refresh_token"))},null,8,["model-value"]),a(d,{title:"Erstellt um",required:"","model-value":t.vehicle.configuration.token?t.vehicle.configuration.token.created_at:0,"onUpdate:modelValue":n[4]||(n[4]=o=>i.updateConfiguration(o,"configuration.token.created_at"))},{help:s(()=>[r(" Unix Timestamp des Zeitpunktes, an dem das Token erzeugt wurde. ")]),_:1},8,["model-value"]),a(d,{title:"Ungültig in",unit:"s",required:"","model-value":t.vehicle.configuration.token?t.vehicle.configuration.token.expires_in:0,"onUpdate:modelValue":n[5]||(n[5]=o=>i.updateConfiguration(o,"configuration.token.expires_in"))},{help:s(()=>[r(" Zeitspanne in Sekunden, nach der das Token ungültig wird. ")]),_:1},8,["model-value"])])}const N=m(C,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/tesla/vehicle.vue"]]);export{N as default}; +import{_ as m,a6 as p,a7 as g,a8 as f,u as l,k as b,l as k,D as a,N as s,y as r,x as v}from"./vendor-f2b8aa6f.js";import{a as w}from"./vendor-axios-65ecee4b.js";import{C as y}from"./index-88a2073c.js";import"./vendor-sortablejs-2f1828d0.js";import"./vendor-fortawesome-71546160.js";import"./vendor-bootstrap-4ad604fa.js";import"./vendor-jquery-d3cb8fad.js";const C={name:"VehicleSocTesla",emits:["update:configuration"],props:{vehicleId:{required:!0,type:Number},vehicle:{required:!0,type:Object}},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}},mixins:[y],methods:{updateConfiguration(e,n=void 0){this.$emit("update:configuration",{value:e,object:n})},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=p.encode(g.randomBytes(86)).replace(/[^a-zA-Z0-9]/gi,"").substring(0,86);const e=g.createHash("sha256").update(this.code_verifier).digest();this.code_challenge=p.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 t=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",t),this.updateConfiguration({access_token:t.data.access_token,refresh_token:t.data.refresh_token,created_at:t.data.created_at,expires_in:t.data.expires_in},"configuration.token"),this.$root.postClientMessage("Token erfolgreich abgerufen.","success")}catch(t){console.error(t),this.$root.postClientMessage("Beim Abruf der Token ist ein Fehler aufgetreten!
"+t+"
","danger")}}}},T={class:"vehicle-soc-tesla"},x=v("hr",null,null,-1);function U(e,n,t,B,u,i){const d=l("openwb-base-number-input"),h=l("openwb-base-heading"),_=l("openwb-base-button-input"),c=l("openwb-base-text-input");return b(),k("div",T,[a(d,{title:"Fahrzeug-ID",required:"",min:0,"model-value":t.vehicle.configuration.tesla_ev_num,"onUpdate:modelValue":n[0]||(n[0]=o=>i.updateConfiguration(o,"configuration.tesla_ev_num"))},{help:s(()=>[r(' Die ID des Fahrzeugs bei Tesla. Normalerweise "0" bei nur einem Fahrzeug im Konto. ')]),_:1},8,["model-value"]),a(h,null,{default:s(()=>[r("Token abrufen oder eingeben")]),_:1}),a(_,{title:"1. Anmelden",buttonText:"Bei Tesla Anmelden",subtype:"success",onButtonClicked:i.tesla_login_window},{help:s(()=>[r(" Es wird ein neues Browserfenster geöffnet, in dem Sie sich bei Tesla mit Ihren Zugangsdaten anmelden können. ")]),_:1},8,["onButtonClicked"]),a(c,{title:"2. URL kopieren und einfügen",subtype:"url",emptyValue:null,modelValue:u.page_not_found_url,"onUpdate:modelValue":n[1]||(n[1]=o=>u.page_not_found_url=o)},{help:s(()=>[r(' Hier die komplette URL (Text in der Adresszeile) aus dem geöffneten Browserfenster einfügen, wenn dort "Page Not Found" angezeigt wird. ')]),_:1},8,["modelValue"]),a(_,{title:"3. Token abrufen",buttonText:"Jetzt abrufen",subtype:"success",disabled:u.page_not_found_url===null,onButtonClicked:i.tesla_login},{help:s(()=>[r(" 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},8,["disabled","onButtonClicked"]),x,a(c,{title:"Access Token",pattern:"^(ey).*",required:"","model-value":t.vehicle.configuration.token?t.vehicle.configuration.token.access_token:"","onUpdate:modelValue":n[2]||(n[2]=o=>i.updateConfiguration(o,"configuration.token.access_token"))},null,8,["model-value"]),a(c,{title:"Refresh Token",pattern:"^(ey).*",required:"","model-value":t.vehicle.configuration.token?t.vehicle.configuration.token.refresh_token:"","onUpdate:modelValue":n[3]||(n[3]=o=>i.updateConfiguration(o,"configuration.token.refresh_token"))},null,8,["model-value"]),a(d,{title:"Erstellt um",required:"","model-value":t.vehicle.configuration.token?t.vehicle.configuration.token.created_at:0,"onUpdate:modelValue":n[4]||(n[4]=o=>i.updateConfiguration(o,"configuration.token.created_at"))},{help:s(()=>[r(" Unix Timestamp des Zeitpunktes, an dem das Token erzeugt wurde. ")]),_:1},8,["model-value"]),a(d,{title:"Ungültig in",unit:"s",required:"","model-value":t.vehicle.configuration.token?t.vehicle.configuration.token.expires_in:0,"onUpdate:modelValue":n[5]||(n[5]=o=>i.updateConfiguration(o,"configuration.token.expires_in"))},{help:s(()=>[r(" Zeitspanne in Sekunden, nach der das Token ungültig wird. ")]),_:1},8,["model-value"])])}const N=m(C,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/tesla/vehicle.vue"]]);export{N as default}; diff --git a/web/settings/assets/vehicle-fc0096d3.js b/web/settings/assets/vehicle-fc0096d3.js new file mode 100644 index 0000000000..b94afa1635 --- /dev/null +++ b/web/settings/assets/vehicle-fc0096d3.js @@ -0,0 +1 @@ +import{_ as s,u as l,k as c,l as m,D as r,N as a,y as u}from"./vendor-f2b8aa6f.js";import"./vendor-sortablejs-2f1828d0.js";const p={name:"VehicleSocOVMS",emits:["update:configuration"],props:{vehicleId:{required:!0,type:Number},vehicle:{required:!0,type:Object}},data(){return{}},methods:{updateConfiguration(d,e=void 0){this.$emit("update:configuration",{value:d,object:e})}}},v={class:"vehicle-soc-ovms"};function f(d,e,o,h,g,n){const i=l("openwb-base-text-input");return c(),m("div",v,[r(i,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.user_id"))},{help:a(()=>[u(" Der Benutzername für die Anmeldung am OVMS-Server https://ovms.dexters-web.de/. ")]),_:1},8,["model-value"]),r(i,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.password"))},{help:a(()=>[u(" Das Passwort für die Anmeldung am OVMS-Server https://ovms.dexters-web.de/. ")]),_:1},8,["model-value"]),r(i,{title:"Vehicle Id",required:"","model-value":o.vehicle.configuration.vehicleId,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.vehicleId"))},{help:a(()=>[u(" Die Id des Fahrzeugs im OVMS, auch Module Id genannt. ")]),_:1},8,["model-value"])])}const w=s(p,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ovms/vehicle.vue"]]);export{w as default}; diff --git a/web/settings/index.html b/web/settings/index.html index d54ac433f7..ec143fa6f5 100644 --- a/web/settings/index.html +++ b/web/settings/index.html @@ -7,7 +7,7 @@ openWB - +